內網滲透測試定位技術總結

歡迎各位作者到MottoIN投稿

想加QQ群或微信群的dalao可以去原文鏈接觀看

原文鏈接:mottoin.com/92978.html

---------------------------------------------------------------------------------------------------------------------------

0x01 前言

說起內網定位,無論針對內網查找資料還是針對特殊人物都是非常實用的一項技術。這裡把目前能夠利用的手段&工具都一一進行講解。

0x02 伺服器(機器)定位

收集域以及域內用戶信息

  • 收集域內域控制器信息
  • 收集域控上域用戶登錄日誌信息
  • 收集域內所有用戶名以及全名、備註等信息
  • 收集域內工作組信息
  • 收集域管理員帳號信息
  • 收集域內網段劃分信息
  • 收集域內組織單位信息

常用收集域信息命令:

Ipconfig /all Tasklist /v Net usenet 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 SettingsAdministratorDesktop>ping -n 1 DC1 -4Pinging DC1.centoso.com [192.168.206.100] with 32 bytes of data:Reply from 192.168.206.100: bytes=32 time<1ms TTL=128Ping 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 offsetlocal 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 文件定位

結合伺服器定位總結出文件定位的大致思路:

  • 定位人力資源主管個人機
  • 定位人力資源相關文檔存放位置
  • 從人力資源文檔中找相關人
  • 定位相關人的機器
  • 監視相關人工作時存放文檔的位置
  • 列出存放文檔伺服器的目錄

文件定位需要注意的點:

  • 產品名稱
  • 內部名稱
  • 項目負責人
  • 項目團隊
  • 生產部(分公司,工廠,代工廠)

經驗

  1. FTP
  2. SMB
  3. DCNETLOGON
  4. 產品管理系統(倉庫管理系統)
  5. 各種資料庫
  6. 其他伺服器(分公司,工廠,代工廠)

定位文件伺服器請參考上一節定位伺服器(機器),定位到文件伺服器和某個人,對於文件定位來說應該會事半功倍。這裡就不過多敘述了。

參考:後滲透攻防的信息收集

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,並且不需要管理員許可權。

參考:

  • nmap載入nse腳本在內網滲透中的使用-上
  • nmap載入nse腳本在內網滲透中的使用-下

Smbexec&Veil-Pillage

然後Smbexec有個 checkda模塊,它可以檢測域管進程和域管登陸。Veil-Pillage有它的 user_hunter 和group_hunter 模塊,這兩個工具都需要管理員許可權。

hunter

hunter是一款利用 Windows API 調用來枚舉跳板機上的用戶登錄信息的工具

Active Directory

你可以通過AD信息來識別一些連接到伺服器的用戶

參考:

  • Trusts You Might Have Missed
  • @sixdub

PowerShell

上面也曾提到針對windows機器,可以考慮用wmi腳本和powershell腳本進行掃描,低頻掃描可以很容易的繞過IDS的規則。PowerShell有很多方法Windows Api並且繞過白名單。

參考:

  • 通過PowerShell訪問Windows Api
  • @mattifestation

PowerView

PowerView 裡面有一些功能可以輔助找尋定位關鍵用戶。要找到目標對應的用戶時Get-UserProperties 將會提取所有用戶的屬性,並且Invoke-UserFieldSearch可以根據通配符來找尋特定用戶的相關屬性。這可以縮小目標搜索範圍。比如說:我們使用這些功能來找Linux管理員組和其相關的成員,就可以追蹤和鍵盤記錄他們的putty/ssh會話。

Invoke-UserHunter 功能可以找到域內特定用戶群。它支持一個用戶名,用戶列表,或域組查詢,並支持一個主機列表或查詢可用的主機域名。它會使用 Get-NetSessions 和Get-NetLoggedon(調用NetSessionEnum和 NetWkstaUserEnum API) 對每個伺服器跑一遍而且會比較結果篩選出目標用戶集。而且這個工具不需要管理員許可權。

命令參考:

Get-NetGroups -> Get-NetGroupGet-UserProperties -> Get-UserPropertyInvoke-UserFieldSearch -> Find-UserFieldGet-NetSessions -> Get-NetSessionInvoke-StealthUserHunter -> Invoke-UserHunter -StealthInvoke-UserProcessHunter -> Invoke-ProcessHunter -Username XGet-NetProcesses -> Get-NetProcessGet-UserLogonEvents -> Get-UserEventInvoke-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 查詢特定用戶在域控上面的登陸日誌,需要域管理許可權。

參考:

  • The Diamond Model and Network Based Threat Replication

其他一些姿勢

  • 內部郵箱

如果你能進某個用戶內部郵箱,也可以從郵件頭提權有用的信息。找尋跟目標用戶來往的郵件,仔細查看郵件頭。「X-Originating-IP」頭經常會出現,這就可以讓你追蹤到目標IP。

  • 查找域管進程

Scott Sutherland (@_nullbind) 2012年寫了篇查找域管進程的文章。 其中詳細講述了如何使用tasklist和nbtscan的批處理來掃描機器及用戶。不過遠程tasklist的時候,需要本地管理員許可權。

參考:

  • hunt for domain admin processes

0x05 總結

內網滲透,不是簡單的耍流氓的說」可內網滲透」或者「內網漫遊」,有著更高更深的責任和需求,有著更多設備和報警及防護軟體(如Bit9,惠普ARCsight,Mandiant等等)的突破,有著更多網路拓撲和結構需要清晰洞察,有著更多的域控和域需要佔領。 定位到內網管理員或者管理員上過的機器或者定位到文件和某個人,對於內網滲透來說應該會事半功倍。

0x06 參考

  • 滲透逼逼叨

後滲透攻防的信息收集

*本文作者:MottoIN TEAM re4lity&寶-寶 ,未經允許禁止轉載!

推薦閱讀:

【快訊】17.5萬台國產攝像頭被曝漏洞
如何看待 2014 年 12 月 25 日網傳 12306 賬號信息泄漏(含明文密碼)一事?

TAG:渗透测试 | 信息收集 | 网络安全 |