17、內網滲透測試定位技術總結
0x01 前言
說起內網定位,無論針對內網查詢資料還是針對特殊人物都是非常實用的一項技術。這裡把目前能夠利用的手段&工具都一一進行講解。
0x02 伺服器(機器)定位
收集域以及域內使用者資訊
- 收集域內域控制器資訊
- 收集域控上域使用者登入日誌資訊
- 收集域內所有使用者名稱以及全名、備註等資訊
- 收集域內工作組資訊
- 收集域管理員帳號資訊
- 收集域內網段劃分資訊
- 收集域內組織單位資訊
常用收集域資訊命令:
Ipconfig /all
Tasklist /v
Net use
net group /domain 獲得所有域使用者組列表
net group “domain admins” /domain 獲得域管理員列表
net group “enterprise admins” /domain 獲得企業管理員列表
net localgroup administrators /domain 獲取域內建administrators組使用者(enterprise admins、domain admins)
net group “domain controllers” /domain 獲得域控制器列表
net group “domain computers” /domain 獲得所有域成員計算機列表
net user /domain 獲得所有域使用者列表
net user someuser /domain 獲得指定賬戶someuser的詳細資訊
net accounts /domain 獲得域密碼策略設定,密碼長短,錯誤鎖定等資訊
nltest /domain_trusts 獲取域信任資訊
Net view
net view 看機器註釋或許能得到當前活動狀態的機器列表,tasklist可以得到當前機器跑著的域賬號。
結構分析
從計算機名獲取ipv4地址:
C:\Documents and Settings\Administrator\Desktop>ping -n 1 DC1 -4 Pinging DC1.centoso.com [192.168.206.100] with 32 bytes of data: Reply from 192.168.206.100: bytes=32 time<1ms TTL=128 Ping statistics for 192.168.206.100: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
如果計算機名很多的時候,可以利用bat批量ping獲取ip:
@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j) ) )
最後可以把所有得到domain admins賬號再net user 下,為這些資訊按內容分別建立檔案進行分析。
例如:
- Users.txt 存放和使用者資訊有關的內容
- Group.txt 存放和分組資訊相關的內容
上述命令都是最基本的,也只能獲取到最基本的資訊。命令就不過多講解了。參考:內網滲透常用命令
資訊收集的姿勢:
- 人事組織結構圖
例如:
像這種人事組織結構圖,很多公司和企業的外部站點上就有。然後結合分析人事資料裡相關員工全稱與域內使用者名稱對應關係,就能很快定位到需要定位的人員使用的機器。
- 內部郵箱
如果你能進某個使用者內部郵箱,也可以從郵件頭提取有用的資訊。找尋跟目標使用者來往的郵件,仔細檢視郵件頭。“X-Originating-IP”頭經常會出現,這就可以讓你追蹤到目標IP。
- 工具
常用工具:Dsquery/Dsget,Ldifde,Csvde,Adexplorer,Adfind,wmi,powershell…
工具使用參考:初級域滲透系列 – 01. 基本介紹&資訊獲取
注:控制掃描的頻率和速度,可以大大降低觸發IDS的風險,針對windows機器,可以考慮用wmi指令碼和powershell指令碼進行掃描,低頻掃描可以很容易的繞過IDS的規則,同時可以考慮使用內網管理工具使用的相同協議進行掃描探測。Tips:
內網無工具掃描
一條 cmd 命令解決:
for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | find /i "ttl"
ping 整個 c 段,只輸出有響應的主機。
% H" g% Q+ _6 q- P7 t
更變態的:
4 o4 g8 X- v9 x& w
域機器對應 IP
FOR /F "eol=- tokens=1 delims=\ " %a IN ('net view') DO @(echo name: %a, ip: & ping %a -w 1 -n 1 | find /i "ttl" & echo.)
把 net view 的結果,挨個 ping 一遍,並輸出機器名和 ip 地址。
找主機名
for /l %i in (1,1,255) do @ping -a 10.0.1.%i -w 1 -n 1 | find /i "Pinging"
B 段查詢
for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i "Pinging"
Win7
for /l %i in (1,1,255) do @ping -a 10.0.1.%i -w 1 -n 1 | find /i "Pinging" for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i "Pinging"
改成
for /l %i in (1,1,255) do @ping -a 10.0.1.%i -w 1 -n 1 | find /i "Ping" for /l %i in (1,1,255) do @ping -a 10.0.%i.1 -w 1 -n 1 | find /i "Ping"
就可以相容 Win7 了。(Win7 ping -a 輸出結果關鍵詞為 “Ping”)
另外findstr /i “pinging” 或 findstr /i “ping” 可以換成 findstr “[” 的 可以適合多語言環境
0x03 檔案定位
結合伺服器定位總結出檔案定位的大致思路:
- 定位人力資源主管個人機
- 定位人力資源相關文件存放位置
- 從人力資源文件中找相關人
- 定位相關人的機器
- 監視相關人工作時存放文件的位置
- 列出存放文件伺服器的目錄
檔案定位需要注意的點:
- 產品名稱
- 內部名稱
- 專案負責人
- 專案團隊
- 生產部(分公司,工廠,代工廠)
經驗
- FTP
- SMB
- DC\NETLOGON\
- 產品管理系統(倉庫管理系統)
- 各種資料庫
- 其他伺服器(分公司,工廠,代工廠)
定位檔案伺服器請參考上一節定位伺服器(機器),定位到檔案伺服器和某個人,對於檔案定位來說應該會事半功倍。這裡就不過多敘述了。
參考:後滲透攻防的資訊收集
0x04 管理員定位
工具
psloggedon.exe
系統自帶工具。通過檢驗登錄檔裡HKEY_USERS的key值來查詢誰登陸過機器,同樣也呼叫到了NetSessionEnum API。某些功能需要管理員許可權
netsess.exe
netsess.exe的原理也是呼叫NetSessionEnum API,並且在遠端主機上無需管理員許可權
PVEFindADUser.exe
用於列舉域使用者以及登陸過特定系統的使用者,需要管理員許可權。工具描述:corelan
netview.exe
使用WinAPI列舉系統,利用 NetSessionEnum 來找尋登陸sessions, 利用NetShareEnum來找尋共享 , 利用 NetWkstaUserEnum 來列舉登陸的使用者。它也能查詢共享入口和有價值使用者,還能使用延遲和抖動。絕大部分功能不需要管理員許可權。
Nmap的Nse指令碼
如果你有域賬戶或者本地賬戶,你可以使用Nmap的smb-enum-sessions.nse 引擎來獲取遠端機器的登入session,並且不需要管理員許可權。
參考:
Smbexec&Veil-Pillage
然後Smbexec有個 checkda模組,它可以檢測域管程式和域管登陸。Veil-Pillage有它的 user_hunter 和group_hunter 模組,這兩個工具都需要管理員許可權。
hunter
hunter是一款利用 Windows API 呼叫來列舉跳板機上的使用者登入資訊的工具
Active Directory
你可以通過AD資訊來識別一些連線到伺服器的使用者
參考:
- http://www.harmj0y.net/blog/redteaming/trusts-you-might-have-missed/
- http://www.sixdub.net/2014/11/offensive-event-parsing-bringing-home-trophies/
PowerShell
上面也曾提到針對windows機器,可以考慮用wmi指令碼和powershell指令碼進行掃描,低頻掃描可以很容易的繞過IDS的規則。PowerShell有很多方法Windows Api並且繞過白名單。
參考:
PowerView
PowerView 裡面有一些功能可以輔助找尋定位關鍵使用者。要找到目標對應的使用者時Get-UserProperties 將會提取所有使用者的屬性,並且Invoke-UserFieldSearch可以根據萬用字元來找尋特定使用者的相關屬性。這可以縮小目標搜尋範圍。比如說:我們使用這些功能來找Linux管理員組和其相關的成員,就可以追蹤和鍵盤記錄他們的putty/ssh會話。
Invoke-UserHunter 功能可以找到域內特定使用者群。它支援一個使用者名稱,使用者列表,或域組查詢,並支援一個主機列表或查詢可用的主機域名。它會使用 Get-NetSessions 和Get-NetLoggedon(呼叫NetSessionEnum和 NetWkstaUserEnum API) 對每個伺服器跑一遍而且會比較結果篩選出目標使用者集。而且這個工具不需要管理員許可權。
命令參考:
Get-NetGroups -> Get-NetGroup Get-UserProperties -> Get-UserProperty Invoke-UserFieldSearch -> Find-UserField Get-NetSessions -> Get-NetSession Invoke-StealthUserHunter -> Invoke-UserHunter -Stealth Invoke-UserProcessHunter -> Invoke-ProcessHunter -Username X Get-NetProcesses -> Get-NetProcess Get-UserLogonEvents -> Get-UserEvent Invoke-UserEventHunter -> Invoke-EventHunter
Invoke-StealthUserHunter 只要一個查詢就可以獲取域內所有使用者, 從user.HomeDirectories提取所有使用者, 並且會對每個伺服器進行Get-NetSessions 獲取。無需使用 Invoke-UserHunter對每臺機器操作,這個辦法的隱蔽性就更高一點,但是涉及到的機器面不一定那麼全。
一般預設使用Invoke-StealthUserHunter ,除非找不到我們所需,才會去使用Invoke-UserHunter方法。
Invoke-UserProcessHunter是PowerView 的新功能。利用Get-NetProcesses cmdlet 來列舉遠端機器的tasklists和程式尋找目標使用者。這個列舉功能需要管理員許可權。
Get-UserLogonEvents cmdlet可以查詢查詢登入事件(如:ID 4624)遠端主機,Invoke-UserEventHunter 查詢特定使用者在域控上面的登陸日誌,需要域管理許可權。
參考:
其他一些姿勢
- 內部郵箱
如果你能進某個使用者內部郵箱,也可以從郵件頭提權有用的資訊。找尋跟目標使用者來往的郵件,仔細檢視郵件頭。“X-Originating-IP”頭經常會出現,這就可以讓你追蹤到目標IP。
- 查詢域管程式
Scott Sutherland (@_nullbind) 2012年寫了篇查詢域管程式的文章。 其中詳細講述瞭如何使用tasklist和nbtscan的批處理來掃描機器及使用者。不過遠端tasklist的時候,需要本地管理員許可權。
參考:
0x05 總結
內網滲透,不是簡單的耍流氓的說”可內網滲透”或者“內網漫遊”,有著更高更深的責任和需求,有著更多裝置和報警及防護軟體(如Bit9,惠普ARCsight,Mandiant等等)的突破,有著更多網路拓撲和結構需要清晰洞察,有著更多的域控和域需要佔領。 定位到內網管理員或者管理員上過的機器或者定位到檔案和某個人,對於內網滲透來說應該會事半功倍。
0x06 參考
相關文章
- 滲透測試常用術語總結
- 滲透測試技巧總結
- metasploit滲透測試筆記(內網滲透篇)筆記內網
- 網站安全滲透測試公司心得總結網站
- 內網滲透測試基礎內網
- 滲透測試——提權方式總結
- 《Web滲透測試技術》簡介Web
- 滲透測試基礎--內網轉發內網
- 工業網際網路網路安全滲透測試技術研究
- 網路安全滲透測試
- beescms網站滲透測試網站
- 內網滲透-初探域滲透內網
- 網路安全滲透測試的型別!滲透測試入門教程型別
- 【彙總】網路安全滲透測試常見面試題!面試題
- 內網滲透測試時,通常的策略和方法如下:內網
- 【乾貨集】超全的滲透測試面試題總結!面試題
- 什麼是滲透測試?網站有必要進行滲透測試嗎?網站
- 滲透測試會用到哪些工具?滲透測試教程
- 什麼是網路滲透測試?網路滲透測試分為幾種型別?型別
- 總結一些滲透測試中資訊收集思路
- 滲透測試之小白的常見web漏洞總結(下)Web
- 滲透測試之小白的常見web漏洞總結(上)Web
- 滲透測試好學嗎?都需要學習哪些技術?
- 網路安全學習要多長時間?滲透測試技術學習
- 網站滲透測試安全檢測漏洞網站
- 網站滲透測試安全檢測方案網站
- 內網滲透工具內網
- Linux內網滲透Linux內網
- 網站安全測試之APP滲透測試漏洞網站APP
- Linux滲透測試Linux
- 5、內網滲透之埠轉發與代理工具總結內網
- 安全技術|一個實驗瞭解多層內網滲透內網
- 什麼是滲透測試?為什麼要做滲透測試?
- 安全滲透測試中日誌分析技術與授權機制
- 網站漏洞滲透測試覆盤檢查結果分析網站
- 網站漏洞滲透測試服務內容詳情見解網站
- 無線滲透總結
- 網站漏洞檢測 滲透測試檢測手法網站