企業級滲透測試服務思考
隨著企業組織的業務規模不斷擴大,信息化運用快速發展,業務與數據安全已經被推上戰爭的高地,成為企業保護自身安全的重中之重,成為企業信息安全官在戰略計劃匯報中不得不謹慎對待的課題。
現階段,全球范圍內的網絡空間對抗加劇,網絡軍事化特征明顯,信息安全正面臨嚴峻的挑戰,國家也愈發重視。今年網絡安全的紅藍對抗為人們安全觀念和意識的轉變帶來了契機,雖然企業安全防御技術爭論不休,但唯一不爭的共識是,企業能夠建立最好的安全防御體系的方式就是通過對抗演練來進行檢驗。
企業市場也不斷涌現紅藍對抗的建設需求,攻防演練得到企業的重視,攻擊視角能幫助防守團隊找到防守視角的盲點,企業級滲透測試服務的采購也成為企業安全團隊思考的問題。
滲透測試服務標準
企業級滲透測試服務,是工程化的項目服務,具有完整的管理流程和標準化服務。盡管滲透測試的方法各不相同,但依然有一些標準化的方法體系規范,而對于企業內部安全部門在提供安全測試服務時,依然有可取之處。
PTES(Penetration Testing Execution Standard)滲透測試執行標準是安全業界在滲透測試技術領域中開發的一個新標準,也是普遍應用比較廣的事實標準,目標是在對滲透測試進行重新定義,新標準的核心理念是通過建立起進行滲透測試所要求的基本準則基線,來定義一次真正的滲透測試過程,已得到安全行業的廣泛認同。
完成更好的滲透測試
高價值的滲透測試活動涉及對現實世界中惡意攻擊者使用的技術進行建模、發現漏洞,并在一定受控環境下,根據提前精心設計的參與規則和協定的范圍,以專業、安全的方式利用這些漏洞。此過程有助于確定業務風險和可能受到攻擊的潛在影響,所有這些都旨在幫助企業組織改善其安全現狀。
以下是安全專家總結的滲透測試某些階段的提示,以幫助您在日常工作中提供更高的業務價值。可以成為安全部門在內部提供標準化服務建設時的成熟小建議,同時也可以作為組織尋求企業級滲透測試服務的標準化要求。
1. 前期交互:
- 前期溝通時使用話術模板來指導語音會話,以確定參與的范圍和規則。
- 對目標系統(MSSP、云提供商、ISP、共享托管環境、邊界路由器、DNS服務器等)進行獲取信息或進行操作時,請確保您獲得了任何第三方的測試書面許可。
- 在與目標系統方人員交流制定您的規則時討論同時使用黑盒與白盒測試,并指出白盒測試通常提供更詳細的結果、更安全,并提供更好的商業價值。
- 與目標系統人員討論他們在其環境中具有的特殊敏感的信息(例如PII),以及如何在不實際下載的情況下測試對其數據的訪問。考慮嘗試使用植入通用的樣本記錄來演示您的訪問權限,而不是實際的敏感數據。
- 每天與目標系統人員進行電話匯報,交流意見和經驗教訓。如果每天太頻繁,可以考慮每周打2-3次電話。(每周留出1-2小時參加各種CTF比賽,保持你的技能熟練程度。這些比賽包括各大CTF網站提供的免費在線比賽或線下賽,以及其他類對抗比賽。)
2. 情報偵察:
- 仔細考慮與第三方服務器和搜索的所有交互(謹慎使用),以確保您不會泄露有關目標的敏感信息或使用他們導致的違反保密協議。您可能需要考慮使用Tor網絡來模糊隱匿您與目標組織的關系。
- 使用谷歌語法搜尋目標網站上常見的辦公類文件,例如(或filetype:):
- site:<TargetDomain> ext:doc |ext:docx | ext:xls | ext:xlsx | ext:pdf
3. 脆弱性分析:
- 掃描目標時,運行tcpdump之類的嗅探器,這樣可以持續驗證掃描器是否仍在正常運行。
- 雖然TCP 445之類的開放端口通常表示目標為一臺Windows機器,但情況并非總是如此。目標可以是Samba守護進程,也可以是另一個基于smb的目標。
- 通過研究如何手動或通過Bash、PowerShell、Nmap腳本 (NSE)或其他腳本檢查問題,驗證發現的漏洞。
- 將根據您已識別的漏洞來確定資產的重要程度,因為這有助于您分配優先級并評估風險。
- 嘗試通過運行不同的探測工具(Nmap、Masscan、Nessus、OpenVAS、PocSuite)來排除誤報,以確認結果。
- 如果您本地正在使用虛擬機進行遠程攻擊,請將其配置為橋接網絡模式,以避免填充NAT表并確保反向shell連接可以成功返回給您。
4. 密碼攻擊:
- 根據其網站上的文字信息創建一個針對目標組織微調的字典列表。
- 根據用戶的社交網絡檔案,創建一個針對用戶進行微調的字典列表。
- 當您使用字符規則成功破解密碼時,請將該密碼添加到字典中,以便對該滲透測試進行進一步的密碼攻擊。這樣,如果您遇到相同的密碼以不同的哈希格式出現,則無需等待單詞爆破才能重新發現該密碼。
- 記住,可以使用各種技術收集密碼,包括通用密碼、社工庫、自動化猜測、破解、嗅探和擊鍵記錄。
- 對于密碼猜測,請始終考慮可能的帳戶鎖定策略,并試圖通過使用密碼噴射技術(大量帳戶和數量很少的密碼)來避免它。
- 一旦從目標中獲取密碼哈希值,就啟動密碼破解程序以嘗試破解確定此密碼。不要讓時間浪費流逝,請立即開始破解你已經得到的哈希。
- 有時您不需要密碼進行身份驗證,因為只需使用哈希即可完成工作,例如針對Windows和SMB目標的傳遞哈希攻擊,以及存儲在某些網站的cookie中的密碼哈希值。
- 如果您的系統上有兼容的GPU,可考慮使用基于GPU的密碼破解工具,例如Hashcat,因為將獲得20-100倍的速度性能。
5. 滲透測試:
- 在創建逃避反惡意軟件的免殺payload時,請不要將惡意樣本提交到在線掃描站點(例如virustotal.com)以檢查能否成功免殺,因為這可能會在分發新簽名更新時破壞您的有效載荷(被反惡意軟件查殺)。
- 設置一個命令或腳本,在攻擊時每隔幾秒檢查一次目標服務的可用性。這樣,如果目標崩潰了,你會很快注意到并且可以聯系目標系統人員一起嘗試重新啟動它。
- 構建有效載荷Payload,以便它們與您建立反向連接shell,從而增加您通過“僅允許出站連接”的防火墻的機會。
- 對于您的有效payload,請使用可能允許從目標環境出站的協議,例如https(具有代理感知的有效載荷,如PowerShell Empire、Metasploit和Veil Framwork中可用的模塊)或DNS(如DNScat工具)。
- 為了降低Windows目標系統和服務崩潰的幾率,一旦您獲得了管理員級別的憑證和SMB訪問權限,使用psexec或類似的Windows特性(WMIC, sc等)來讓它們運行代碼,而不是緩沖區溢出或相關的漏洞。
- 如果您的漏洞利用失敗,請仔細閱讀您的利用工具的輸出信息,以查看錯誤的位置。此外,運行諸如tcpdump之類的嗅探器,以查看它在建立連接、發送exploit載荷以及加載stager和stage之間的差別。如果你的stager工作正常但你的stage無法加載,那么你的反病毒逃避策略可能失敗了(MSF的payload分single、stager、stage三種) 。
6. 后滲透:
(1) 當您獲得對目標計算機的訪問權限時,請不要過早使用它來掃描內網更多目標,因為這會使您過早被檢測到。相反,應根據網絡活動發現其他潛在目標信息:
- DNS緩存(Windows): c:\>ipconfig /displaydns
- ARP緩存:arp -a
- 建立TCP連接:netstat -na
- 路由表:netstat -nr
(2) 當您獲得對目標的訪問權限時,如果計算機上安裝了嗅探器(如tcpdump或Wireshark的tshark工具),則運行它以查找網絡流量以識別其他可能的目標計算機,以及包含敏感或有用信息的明文協議。
(3) 即使沒有目標計算機上的root、system或admin權限,您仍然可以執行非常有用的后滲透活動,包括獲取用戶列表,確定已安裝(可能是易受攻擊)的軟件以及在系統中進行操作。
(4) 當你進入Windows系統時,尋找端口445(SMB)和3389(RDP)的STABLISHED TCP連接,因為這些系統可能是很好的跳板機。使用如屬下列命令:
- c:\> netstat -na | find “EST” | find“:445”
- c:\> netstat -na | find “EST” | find“:3389”
(5) 雖然它們對管理人員演示效果非常有用,但對打開攝像頭并從受感染的目標機器中捕獲音頻,要保持小心謹慎。只有獲得書面許可情況下才能進行這種的侵入性訪問,并由您的法律團隊進行審核,以確保符合當地法律。
7. 編寫報告:
(1) 通過IP地址(如果您擁有IPv4和IPv6)、域名(如果有)和MAC地址(特別是對于使用DHCP的受損客戶機)識別目標。
(2) 不要等到滲透測試結束才開始編寫報告。相反,在滲透測試進行時隨時記錄編寫報告,每天留出時間寫一到三頁,你不但會寫出更好的報告,你的成果也會更好。
(3) 在你的報告中添加截圖,以清楚地說明調查結果。用箭頭和圓圈標注截圖,指出插圖的重要點。
(4) 如果想要為您的修復建議增加額外的價值,請考慮增加操作人員可以采取的易于落地的步驟,以驗證建議的修復是否到位,例如檢查補丁是否存在的命令。對于某些發現的問題,這可能很難做到,所以在這些情況下,建議重新測試給定的問題。
(5) 在報告的每個部分為適當的讀者受眾撰寫不同結構的報告:
- 執行摘要應該適用于分配資源的決策者
- 應根據業務問題從技術角度撰寫調查結果
- 修復建議應充分考慮到運營團隊及其流程