內網資訊收集教程
零基礎學黑客,搜公眾號:白帽子左一
進入內網之後,是一種由點到線再到面的測試,先弄清楚當前機器的情況,如在域中角色,提供的服務等資訊;再以此為跳板收集其它機器的資訊,當收集的資訊足夠多,拿下域控的可能型也就越高。
本機資訊收集
為了後續的提權等操作,首先要儘可能拿下當前機器的許可權,所以對當前機器的資訊收集也是必要的。
檢視系統配置資訊
ssysteminfo
檢視系統資訊,但是內容太多在某些時刻無法通過菜刀等工具看到返回的結果,可以將內容輸出到某個檔案,也可以結合findstr
查詢指定內容,如查詢作業系統即軟體的資訊 systeminfo | findstr /B /C:"OS"
該指令輸入的內容是比較多的,除了使用finder
echo %processor_architecture%
檢視系統架構,net statistics workstation
檢視系統啟動時間其中的補丁資訊可以使用
wmic qfe get caption,description,hotfixid,installedon
獲取WMIC擴充套件WMI(Windows Management Instrumentation,Windows管理工具) ,提供了從命令列介面和批命令指令碼執行系統管理的支援。在cmd中有些時候查到的資料不全,如某些程序的pid,這時可以使用wmic進行操作,WMIC提供了大量的全域性開關、別名、動詞、命令和豐富的命令列幫助增強使用者介面。wmic product get name,version
wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname /format:list
查殺軟初次之外,還可以使用
netsh firewall show config
和netsh advfirewall firewall show config
檢視防火牆配置資訊
檢視系統服務資訊
wmic startup get command,caption
,檢視啟動程式資訊wmic service list brief
,查詢本機服務資訊
還可以使用tasklist
schtasks /query /fo LIST /V
,檢視計劃任務
netstat -ano
檢視埠列表
注意,一般檢視程序埠,先查程序pid,在根據pid查埠
檢視系統登入資訊
query user
,登入到系統的使用者資訊
net session
,列出連線會話資訊,但是一般需要高許可權才能執行
自動資訊收集
很多後滲透模組都可以進行資訊收集,這裡不談,分享個嫖到的指令碼
for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A"
wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html
複製為bat
檔案,結果為out.html
儲存在c盤根目錄
,名稱路徑可自行修改。
域內資訊收集
判斷是否存在域
whoami
,如果當前賬戶為域使用者,則返回結果通常為域名\使用者名稱
ipconfig
,如果是雙網絡卡,一般存在內網
systeminfo
,如果在域中,則如圖,否則為workgroup
net config workstation
,在域中,通常計算機全名為計算機名.域名
不在域中如下圖
net time /domain
,檢視時間伺服器,域中機器的dns伺服器和時間伺服器通常為域控機。如下圖則是存在域且當前登入使用者為域使用者
如下圖則表示不在域中
如下圖則表示在域中,但當前使用者非域使用者
除此之外,收集其它內容的時候都能看到,比如系統資訊,使用者資訊等
探測域記憶體主機&埠
探測存活主機和埠平時最容易想到的工具是nmap
,但這個工具太大,直接安裝存在風險,埠轉發受限於網路環境,這裡聊聊其它方法
powershell
powershell
可以在滲透中提供強大的助力,下面這些指令碼使用的時候記得修改 ip地址
掃描存活ip,最前面的1..255
是ip地址的d段,最後範圍是192.168.0.1-255,判斷和修改方式下同
1..255 | % {echo "192.168.0.$_"; ping -n 1 -w 100 192.168.0.$_} | Select-String ttl
判斷主機型別,根據ttl值判斷,範圍192.168.0.1-255
1..255 | % {echo "192.168.0.$_"; ping -n 1 -w 100 192.168.0.$_} | Select-String ttl |% { if ($_ -match "ms") { $ttl = $_.line.split('=')[2] -as [int]; if ($ttl -lt 65) { $os = "linux"} elseif ($ttl -gt 64 -And $ttl -lt 129) { $os = "windows"} else {$os = "cisco"}; write-host "192.168.0.$_ OS:$os" ; echo "192.168.0.$_" >> scan_results.txt }}
掃描埠
24..25 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.1.119",$_)) "Port $_ is open!"} 2>$null
24..25 |% {echo "$_ is "; Test-NetConnection -Port $_ -InformationLevel "Quiet" 192.168.1.119}2>null
掃描指定埠的ip
foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.0.$ip}
arp掃描
在內網裡通常使用mac地址進行機器尋找,其可以通過arp
協議實現
小工具
由很多免安裝的小工具也可以進行掃描,比如nbtscan
,直接傳到目標伺服器上執行即可,工具下載地址:http://www.unixwiz.net/tools/nbtscan.html ,用法:nbtscan.exe 網段
,更多用法參考:nbgtscam.exe /?
含義如下:
|Token|含義|
|——|——|
SHARING|機器正在執行的檔案和列印共享服務,但這並不一定有內容共享
DC|機器可能是Windows NT域控制器,無論是主域還是輔助域。
U=user |機器可能有一個具有指定名稱的登入使用者
IIS |機器可能安裝了Microsoft的Internet資訊伺服器(IIS)
EXCHANGE |機器可能安裝Microsoft Exchange
NOTES |單機器可能安裝Lotus Notes電子郵件客戶端
? |沒有識別出NETBIOS資源
telnet
telnet
常規使用是和伺服器建立連線,也開業用來探測埠是否開放
用法:telnet 主機 埠
,如:telnet dc 3389
。注意:不是所有機器都安裝了此服務。
檢視使用者&機器&會話相關資訊
檢視機器相關資訊
net view /domain
,查詢域資訊,判斷當前機器加入的域
net view /domain:域名
,查詢域內所有主機
在域中,有一類至關重要的機器叫域控制器,簡稱域控,機器名通常為DC
,在實際環境中,域控為一主一備用兩臺。netdom query pdc
,檢視域控名稱
檢視使用者相關資訊
net user
查詢當前機器所有使用者,net user /domain
檢視域使用者
net user 使用者名稱
檢視當前機器內的使用者資訊
net user 使用者名稱 /domain
檢視當前機器內的域使用者資訊
注意對比上述結果的區別,此外net user localgroup
,net user localgroup /domain
和net group /domain
也是有區別的wmic useraccount get /all
,獲取域內使用者的詳細資訊