macOS的15個安全技巧(二)
隱藏桌面上的所有文件
技巧
- chflags hidden ~/Desktop/*
和
- chflags nohidden ~/Desktop/*
介紹
另一個與記錄和報告有關(guān)的技巧是:如果你需要獲取桌面的屏幕截圖或屏幕記錄,那么除了移動或刪除所有雜亂的桌面之外,還有一個替代方法,即使用chflags實用程序臨時隱藏所有桌面文件。
請注意,盡管這與使用Finder使用Keychord Command-Shift-Period顯示/隱藏不可見文件的另一個技巧無關(guān),但是,如果你已使用該Keychord在Finder中啟用了不可見文件,則還需要再次調(diào)用 Finder keychord并將設(shè)置切換為“關(guān)閉”,此技巧才能起作用。
截屏或錄制后,請不要忘記使用nohidden標志來取消隱藏。
編碼/解碼URL字符串
技巧
- alias urldecode='python3 -c "import sys, urllib.parse as ul; print(ul.unquote_plus(sys.argv[1]))"'
和
- alias urlencode='python3 -c "import sys, urllib.parse as ul; print(ul.quote_plus(sys.argv[1]))"'
介紹
百分比編碼的URL字符串非常常見,因此我發(fā)現(xiàn)在我的shell .rc腳本中定義一個別名來處理它們非常有用,特別是用于解碼。盡管這個技巧使用的是Python 3,但是還有許多其他方法可以使用不同的工具來實現(xiàn)這一點:Python 2、Perl、Ruby、純Bash和Zsh等等,精確度各不相同。我個人更喜歡Python 3,因為根據(jù)我的經(jīng)驗,它是最可靠的。

創(chuàng)建一個隨機命名的文件或目錄
技巧
- mktemp -d /tmp/XXXXXXXXXXXX
介紹
使用帶有或不帶-d開關(guān)的mktemp實用程序分別創(chuàng)建一個隨機命名的文件或目錄,不需要指定/private/tmp目錄,你可以同樣使用$TMPDIR目錄或任何其他你希望的目錄:如果沒有路徑前綴,該工具將在當(dāng)前工作目錄中創(chuàng)建隨機命名的文件或目錄。
在防御性編程中,隨機命名的臨時文件非常有用,可以確保攻擊者無法預(yù)測你可能需要定位應(yīng)用程序或程序資源的臨時文件的路徑。類似地,攻擊者使用它們將惡意文件放入臨時目錄和其他具有隨機名稱的位置,以幫助他們規(guī)避簡單的基于路徑的探測啟發(fā)式和YARA規(guī)則,這些規(guī)則試圖通過指定特定位置來減輕資源的負擔(dān)。
在上面的示例中,我使用12 Xs生成一個很難猜測的隨機名稱。但是,防御者和攻擊者可以通過明智地使用正則表達式搜索模式在一定程度上讓這個技巧變得無用。

順便說一下,macOS上使用了許多不同的臨時目錄。雖然/tmp是/private/tmp的別名,但/private/var/tmp和$TMPDIR都是完全不同的位置,如以下圖像中每個列表所證明的。我們從ls -al而不是$ TMPDIR的目錄列表中顯示計數(shù),僅僅是因為那里的文件太多,所以無法方便地將其放入屏幕截圖中。

使用Swift作為腳本語言
技巧
- #!/usr/bin/swift
或
- #!/usr/bin/env swift
介紹
使用Swift作為腳本語言的優(yōu)勢在于,它允許你從文本文件運行代碼,這些文本文件可以本地調(diào)用Apple Cocoa api。通過訪問Foundation、AppKit和其他框架中的代碼,你可以構(gòu)建與本機二進制文件一樣強大的可移植腳本,這對于攻擊者或防御者來說都是理想的。
以這種方式使用Swift取決于目標計算機上Xcode命令行工具的存在,因此這將你的目標主要限制在開發(fā)人員中,相當(dāng)大的一群人通常不愿安裝安全控件,而如果你正在考慮的話,可以選擇一個不錯的目標群體有關(guān)供應(yīng)鏈攻擊和橫向移動的信息或者安裝依賴作為post-exploitation的一部分。通過將腳本轉(zhuǎn)換為自己計算機上的Swift二進制文件,然后將二進制文件導(dǎo)入到目標設(shè)備,可以完全避免依賴關(guān)系。為此,只需從腳本中刪除shebang并使用swiftc編譯器即可快速創(chuàng)建本機Mach-O二進制文件:
swiftc my_script.swift -o my_script
使用Swift作為腳本語言顯然需要了解Swift本身,你可以在Derik Ramirez的網(wǎng)站上找到很好的介紹。

現(xiàn)在,請注意使用#!/usr/bin/env形式的此腳本或任何其他腳本shebang的注意事項。開發(fā)人員通常會推薦這種做法,因為這樣可以確保即使shell程序不在標準路徑中,也不會存在多種版本(例如Python 2,Python 2.7,Python 3等),shell都可以找到該可執(zhí)行文件。但是,從安全角度來看,這會引入潛在的漏洞。由于env將使用指定名稱(例如,Swift)首先出現(xiàn)在用戶$ PATH中的任何可執(zhí)行文件,因此惡意進程可能會在用戶路徑的頂部刪除一個cuckoo二進制文件,并執(zhí)行該文件,而不是真正的Swift二進制文件。出于這個原因,如果需要考慮安全性,我建議始終使用Swift(和其他)二進制文件的絕對路徑。
在截屏?xí)r移動或調(diào)整所選區(qū)域的大小
技巧
用Command-Shift-4選擇區(qū)域時按住空格鍵。
介紹
這是我?guī)讉€月前才學(xué)會的一個奇妙的技巧,盡管我多年來每天都使用screencapture keychordCommand-Shift-4。雖然該辦法可以讓你快速選擇一個自定義區(qū)域,但如果你的起始位置不對,則操作結(jié)果會出現(xiàn)偏差。
使用此技巧,你無需取消Esc并重試。按住鼠標/觸控板以避免拍攝,然后只需按住空格鍵并移動光標即可將所選區(qū)域重新定位到所需位置。重新定位后釋放空格鍵,并根據(jù)需要通過常規(guī)拖動繼續(xù)進行調(diào)整,釋放鼠標/觸控板進行拍攝。

在macOS Catalina 10.15中,還有額外的Command-Shift-5 keychord,它提供了來自HUD風(fēng)格界面的各種選項,包括指定不同的默認保存位置。
將Cocoa時間戳轉(zhuǎn)換為人類可讀的日期
技巧
- date -r $(( + 978307200))
介紹
這是我在前面介紹macOS事件響應(yīng)時提到過的一個技巧,但是值得在這里重復(fù)一遍。從1970年1月1日星期一00:00:00開始的Unix時間戳已在macOS和其他操作系統(tǒng)中廣泛使用,可以在命令行上使用日期實用程序?qū)⑺鼈冝D(zhuǎn)換為人類可讀的形式。
Cocoa時間戳大家可能就不太熟悉了,它采用類似的形式,但通常有一個表示第二個追加部分的小數(shù),如587381138.016775。不過,最重要的區(qū)別是,Cocoa的時間戳開始時間要比Unix 晚31年,即2001年1月1日。因此,要使用日期實用程序轉(zhuǎn)換Cocoa時間戳,我們需要添加31年的差異,即978307200秒。出于大多數(shù)非取證的目的,可以忽略小數(shù)點后一秒的分數(shù)。

本文翻譯自:https://www.sentinelone.com/blog/15-macos-power-tricks-for-security-pros/如若轉(zhuǎn)載,請注明原文地址。