滲透測試之域內信息收集 Information collection in the domain of intranet pentest來自 :我超怕的 https://www.cnblogs.com/iAmSoScArEd/p/13835618.html
1、查看當前權限
whoami
2、查詢域SID
whoami -all
3、查詢指定用戶的詳細信息
net user 需要查詢的用戶名 /domain
4、查詢是否存在域
(1)使用ipconfig
ipconfig -all
執行命令后將會得到網關IP地址、DNS的IP地址、域名、本機是否與DNS服務器處於同一網段等信息
如果存在主DNS后綴,則可以嘗試對該域名進行反向解析出IP地址,判斷DNS服務器是否與域控制器在同一台服務器上,反向解析命令:
nslookup 域名
#如 nslookup company.com
(2)查詢系統詳細信息
使用命令:
systeminfo
如果結果中 參數 “域” 有具體的值,且登錄服務器為“DC”等域控制器標識,則表示在這個域內。
如果參數“域”為“WORKGROUP”則表示當前服務器不在域內。
(3)查詢當前登錄域及登錄用戶信息
net config workstation
"工作站域"或“工作站域DNS名稱”為“WORKGROUP”則表示當前服務器不在域內。(截圖顯示我不在域中)
"工作站域"表示當前域,“工作站域DNS名稱”顯示域控制器域名。
“登錄域”表示當前登錄的用戶是域用戶還是本地用戶。(截圖顯示我當前為微軟賬號登錄)
(4)判斷主域
net time /domain
通常域服務器也會同時作為時間服務器使用。
若存在域,當前用戶不在域中會提示:發生系統錯誤,拒絕訪問
若存在域,當前用戶在域中會提示:XX域 的當前時間是 xxx
若當前網絡環境不存在域則提示:找不到WORKGROUP的域控制器,請鍵入XXXX
5、探測域內存活主機
(1)利用NetBIOS快速探測內網
NetBIOS是局域網程序使用的一種應用程序編程接口,為程序提供了請求低級別服務的統一命令集,為局域網提供了網絡及其他特殊功能。幾乎所有的局域網都是在NetBIOS協議的基礎上工作的。
nbtscan是一個命令行工具,用於掃描本地或遠程TCP/IP網絡上的開放NetBIOS名稱服務器。
使用方式:將該工具上傳至目標主機中,使用命令運行即可。
下載地址:http://unixwiz.net/tools/nbtscan.html
nbt.exe 192.168.0.1/24 nbt.exe 192.168.0.1-100 nbt.exe 192.168.0.50
運行結果解釋:第一列為存活IP地址,第二列為機器名和所在域的名稱,最后一列為該集齊開啟的服務列表。
常見服務說明:
參數 | 含義 |
SHARING | 該機器存在正在運行的文件和打印共享服務,不一定有內容共享 |
DC | 該機器可能為域控制器 |
U=USER | 該機器中有登錄名為User的用戶(不一定准確) |
IIS | 該機器中可能安裝了IIS服務器 |
EXCHANGE | 該機器中可能安裝了EXCHANGE |
NOTES | 該機器中可能安裝了Lotus Notes電子郵件客戶端 |
? | 沒有是被出該機器的NetBIOS資源 |
(2)利用ICMP協議快速探測內網
可以在內網依次對每個IP進行Ping操作,可以快速找出內網存活的所有主機。可以使用如下命令進行探測。
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
存活主機將會被顯示出來。
或使用VBScript探測(比較慢),結果在C:\Windows\Temp\Results.txt中,需要手動編輯所屬C段
腳本如下,保存為xxx.vbs:
strSubNet = "192.168.0." Set objFSO= CreateObject("Scripting.FileSystemObject") Set objTS = objfso.CreateTextFile("C:\Windows\Temp\Results.txt") For i = 1 To 254 strComputer = strSubNet & i blnResult = Ping(strComputer) If blnResult = True Then objTS.WriteLine strComputer End If Next objTS.Close WScript.Echo "All Done !" Function Ping(strComputer) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address='" & strComputer & "'") For Each objItem In colItems Select case objItem.StatusCode Case 0 Ping = True Case Else Ping = False End select Exit For Next End Function
運行方式為
cscript 文件名
如:cscript ping.vbs
6、通過ARP探測內網
(1)arp-scan工具
windows獲取 地址:https://github.com/QbsuranAlang/arp-scan-windows-
其他系統獲取 地址:https://github.com/royhills/arp-scan
命令如下:
arp.exe -t 192.168.0.1/24 arp.exe -t 192.168.0.5
(2)Empire的arpscan模塊
Empire中內置了arpscan模塊。
在Empire中使用方法如下:
(Empire: xx) > usemodule situational_awareness/network/arpscan (Empire: situational_awareness/network/arpscan) > info (Empire: situational_awareness/network/arpscan) > set Range 192.168.0.1-192.168.0.254 (Empire: situational_awareness/network/arpscan) > info (Empire: situational_awareness/network/arpscan) > execute
(3)Nishang中的Invoke-ARPScan.ps1腳本
7、通過TCP/UDP端口掃描探測內網
ScanLine是一個經典的端口掃描工具,可以在所有版本的windows操作系統中使用,體積小的單個文件。同時支持TCP/UDP掃描。
命令如下:
scanline -h -t 21,22,80,443,445,1433-3306 -u 53,137,139,161 -O c:\windows\temp\results.txt -p 192.168.0.1-254 /b
-t 為TCP掃描端口
-u 為UDP掃描端口