零基礎學黑客,搜公眾號:白帽子左一
進入內網之后,是一種由點到線再到面的測試,先弄清楚當前機器的情況,如在域中角色,提供的服務等信息;再以此為跳板收集其它機器的信息,當收集的信息足夠多,拿下域控的可能型也就越高。
本機信息收集
為了后續的提權等操作,首先要盡可能拿下當前機器的權限,所以對當前機器的信息收集也是必要的。
查看系統配置信息
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
,獲取域內用戶的詳細信息