内网渗透学习-Windows信息收集
內(nèi)網(wǎng)滲透學(xué)習(xí)-Windows信息收集
本章內(nèi)容主要介紹在獲取網(wǎng)站服務(wù)器webshell后,怎樣對Windows主機進行信息收集,對其網(wǎng)絡(luò)環(huán)境進行分析和利用,主要是一個思路整理,在后續(xù)的章節(jié)中會整理更詳細的實踐過程。
后滲透中最重要的環(huán)節(jié)就是信息收集。
收集思路
權(quán)限:
網(wǎng)絡(luò):
殺軟:
分析當前網(wǎng)絡(luò)架構(gòu):
另外關(guān)注機器有沒有多網(wǎng)卡,后續(xù)可以跨網(wǎng)段滲透(OxidScan)
針對上述收集到的信息做針對性總結(jié),搞清楚這臺機子究竟是干什么的。
本文重點是針對Windows系統(tǒng)的信息收集,接下來作對兩種不一樣的網(wǎng)絡(luò)架構(gòu)環(huán)境下信息收集的總結(jié)
如何分析是域環(huán)境還是工作組環(huán)境?要做哪些信息收集?
1.分析方法
systeminfo或者net config workstation(如果存在域那么就會顯示工作站域和工作站域DNS等信息)
上述兩條指令執(zhí)行之后如果看到WORKGROUP
就可以判斷是工作組環(huán)境了,反之出現(xiàn)xxx.com等就是域環(huán)境
2.信息收集方法
首先判斷當前機器有什么用戶,用戶的擁有什么程度的權(quán)限,查看當前用戶SID
whoami whoami /user whoami /user && whoami /priv && whoami /all #查看主機權(quán)限(whoami /priv)當前操作系統(tǒng)
wmic OS get Caption,CSDVersion,OSArchitecture,Version 英文版系統(tǒng)用這條命令: systeminfo | findstr /B /C:"OS Nmae" /C:"OS Version" 中文版用: systeminfo | findstr /B /C:“OS 名稱” /C:“OS 版本”查看系統(tǒng)體系結(jié)構(gòu) echo %PROCESSOR_ARCHITECTURE%查看主機用戶,制作用戶字典
net usernet user xxx #查看詳細信息
查看登錄情況
qwinstaqwinsta /SERVER:IP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看遠程登錄情況
然后開始判斷是否有域環(huán)境,看主機DNS后綴
ipconfig /all #查看網(wǎng)關(guān)IP地址、DNS的ip地址、域名、本機是否和DNS服務(wù)器處于同一網(wǎng)段等信息。上圖就是一個域環(huán)境
當然判斷域環(huán)境并不只有這一種方法,后續(xù)會提到
查看系統(tǒng)詳細信息,同時關(guān)注打了什么補丁(方便后續(xù)提權(quán),這里附上一個提權(quán)輔助的工具https://i.hacking8.com/tiquan,可以根據(jù)補丁名字看打了哪些補丁),網(wǎng)絡(luò)連接狀態(tài)
systeminfo #是否加入域,加入了會顯示域的名字,未加入顯示W(wǎng)ORKGROUP wmic qfe get caption,description,hotfixid,installedon #查看補丁查詢補丁信息
wmic qfe get Caption,Description,HotFixID,InstalledOn包括查看當前任務(wù)進程,看用的什么殺軟(一樣可以用剛剛的鏈接來判斷殺軟的類型)
tasklist tasklist /v #輸出任務(wù)的詳細信息,這條指令也可以用來排查后門木馬一類的東西 碰到j(luò)ava.exe,也可以猜測是什么進程,例如weblogic,tomcat tasklist /svc #導(dǎo)出系統(tǒng)的進程信息,顯示每個任務(wù)相關(guān)的服務(wù),可以放到在線殺軟比對中可以看到目標系統(tǒng)安裝了哪些殺毒軟件 wmic process list brief查看當前機器在線的用戶,看管理員在不在線
query user | quser查看當前主機名字,可以從中判斷這臺主機的用處
hostname查看本地密碼策略
net accounts遠程桌面連接歷史記錄,rdp連接,如果有rdp連接記錄,可以想辦法導(dǎo)出憑證記錄,在本地解密
cmdkey /list利用憑據(jù):runas /savecred /user:contoso/administrator cmd.exe
查看遠程機器開啟的共享
netview \\ip netview \\192.168.31.138/All #查看某個IP的機器的所有共享看開放什么端口,對外進行什么連接
netstat -ano路由表(追蹤路由,對內(nèi)網(wǎng)網(wǎng)段進行測繪)
route print #打印本機路由信息,可以看到本機所有的網(wǎng)卡接口 netstat -r #打印本機路由信息,可以看到本機所有的網(wǎng)卡接口,和route print功能 arp -a #查找有價值的內(nèi)網(wǎng)arp通信記錄 netsh int ip delete arpcache #刪除當前機器的arp緩存 tracert 8.8.8.8 #跟蹤本機的出口ip一條指令查殺軟
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:list查看當前安裝的程序,軟件安裝的版本及路徑
wmic product get name,version查看當前主機的共享,如果文件共享對內(nèi)網(wǎng)其他主機開放,可以采取上傳木馬的方式對其他主機進行感染,進一步橫向滲透
net sharewmic share get name,path,status
查看當前會話
net session查看主機開機時間
net statistics workstation查看機器自啟動程序信息
wmic startup get command,caption,user wmic startup get command,caption wmic startup list full 查詢防火墻相關(guān)配置關(guān)閉防火墻
win 2003及之前的版本用這條命令: netsh firewall set opmode disablewin 2003之后的版本用這條命令: netsh advfirewall set allprofiles state off查看防火墻配置
netsh firewall show config修改防火墻配置
win 2003之后的版本用這條: netsh advfirewall firewall add rule name=“pass nc” dir=in action=allow program=“C:\nc.exe”允許指定程序連出,命令如下 netsh advfirewall firewall add rule name=“Allow nc” dir=out action=allow program=“C: \nc.exe”允許 3389 端口放行,命令如下 netsh advfirewall firewall add rule name=“Remote Desktop” protocol=TCP dir=in localport=3389 action=allow自定義防火墻日志儲存位置 netsh advfirewall set currentprofile logging filename “C:\windows\temp\fw.log"查看代理配置情況
reg query “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"探測內(nèi)網(wǎng)存活主機
for /l %i in (1,1,255) do @ping -w 2 -n 1 10.10.10.%i | findstr “TTL=”或者采用上傳工具的方式,例如fscan或者nbtscan(命令格式:nbtscan.exe 10.10.10.0/20)
工作組環(huán)境信息收集
查看機器中的所有組名,了解不同組的職能
net localgroup查看指定組中的成員列表
net localgroup "Administrator" 其他信息的收集都可以參照上面的內(nèi)容域環(huán)境信息收集
域環(huán)境信息收集,主要針對域用戶,域管理員,域控,域機器,服務(wù),exchange郵件服務(wù)器
確定當前內(nèi)網(wǎng)所架設(shè)的域,并且所控制的主機賬戶在域里面,就可以進行域內(nèi)相關(guān)信息的收集了。
因為這些查詢命令本質(zhì)上都是通過 LDAP 協(xié)議去域控制器上查詢的,查詢時候需要經(jīng)過權(quán)限認證,只有域用戶才有這個權(quán)限,所以本地用戶是無法運行以下命令的(system 權(quán)限用戶除外。在域里面,除了普通用戶,所有機器都有一個機器用戶,用戶名為機器名加“$”。system 用戶對應(yīng)的就是域里面的機器用戶,所以 system 權(quán)限用戶是可以運行以下查詢命令的)。(參考https://blog.csdn.net/qq_45290991/article/details/120028595)
在實際情況中,一個域內(nèi)一般有兩臺或者兩臺以上的域控制器,因為一點主域控制器發(fā)生故障,備用域控制器就可以保證域內(nèi)服務(wù)和驗證工作正常運行。
在一個域中,當計算機加入域后,會默認給域管理員組賦予本地系統(tǒng)管理員的權(quán)限。也就是說,在計算機添加到域中,成為域的成員主機后,系統(tǒng)會自動將域管理員組添加到本地系統(tǒng)管理員組中。因此,域管理員組的成員均可訪問本地計算機,而且具備完全控制權(quán)限。
滲透測試人員通常會通過搜集域內(nèi)信息,追蹤域內(nèi)特權(quán)用戶、域管理組用戶的歷史登錄位置、當前登錄位置等。定位域內(nèi)管理員的常規(guī)渠道,一是日志,二是會話。日志是指本地機器的管理員日志,可以使用powershell腳本或 wevtutil 導(dǎo)出查看。會話是指域內(nèi)每個機器的登錄會話,可以匿名查詢,無須權(quán)限,可以使用 netsess.exe 或 PowerView 等工具查詢。
net user /domain #查看域環(huán)境用戶,當前域中的所有用戶名,根據(jù)用戶名總數(shù)大概判斷域的規(guī)模 net user域用戶/domain #獲取某個域用戶的詳細信息 net localgroup administrators #本機管理員[通常含有域用戶] net localgroup administrators /domain #登錄本機的域管理員 net localgroup administrators dcluseroo1 /add #域用戶添加到本機 net user /domain xxX 12345678 #修改域用戶密碼,需要域管理員權(quán)限 net config workstation #查看當前登錄域及域用戶 net time /domain #判斷主域 net view /domain #查看內(nèi)網(wǎng)存在多少個域,所有的域名稱,有時候查詢出錯6118錯誤,是因為 Computer Brower 服務(wù)的問題,把它手動啟動。 Net view /domain:xYz #查看xYz域中的機器列表 net view /domain: 1abtest #查看指定域中在線的計算機列表 net time /domain #查看時間服務(wù)器,一般域控會做時間服務(wù)器 net accounts /domain #查看當前域的域內(nèi)賬戶密碼設(shè)置策略 net config workstation #看看當前的登錄域---以下命令在高版本系統(tǒng)(2012及以后)中會提示只能域控中執(zhí)行--- net group /domain #查看當前域中的所有組名 net group域組名/domain #查詢域組所包含的用戶 net group "domain admins”/domain #查看當前域中的域管賬戶 net group "domain computers" /domain #查看當前域中的所有的計算機名(登錄過該域的計算機)net group "domain controllers”/domain查看域控 net group"enterprise admins”/domain #查看企業(yè)管理組net group "domain guest" /domain net user admin 123456/add /domain #添加域用戶admin,密碼為123456 net group "domain admins" admin /add /domain #將域用戶admin添加到域管理員組domain admins中nltest /DCLIST:主機名[Hacker] #查看域控制器的機器名 Nslookup -type=SRV _ldap._tcp #查看域控制器主機名 net group “Domain Controllers” /domain #查看域控制器##添加域管理員 net user shuteer xy@china110 /ad /domain #添加域用戶 net group "domain admins" shuteer /ad /domain #添加域用戶到域管理員組 net group "domain admins"/domain #查看域管理員組 ##域信任關(guān)系(很少,基本上只有在域樹和域林中才會出現(xiàn))和查找域控 DC上運行的命令 nltest /domain_trusts #查看域內(nèi)信任關(guān)系 dnscmd /zoneexport lab.com dns.txt導(dǎo)出域內(nèi)DNs信息,文件在c: \windows\system32\dns\dns.txt nslookup -q=mx labtest.com #查看域內(nèi)郵件服務(wù)器 nslookup -q=ns labtest.com #查看域內(nèi)DNS服務(wù)器 netdom query pdc #查看域內(nèi)的主域控,僅限win2008及之后的系統(tǒng) nltest /domain_trusts /all_trusts /v /server:192.168.52.2 返回所有信任192.168.52.2的域內(nèi)主機 nltest /dsgetdc:hack /server:192.168.52.2 返回域控和其相應(yīng)的IP地址##搜集spn(掃盲:SPN(Service Principal name) 是服務(wù)在使用 Kerberos 身份驗證的網(wǎng)絡(luò)上的唯一標識符,它由服務(wù)類、主機名和端口組成。) SPN掃描 不同于常規(guī)的tcp/udp端口掃描,由于spn本質(zhì)就是正常的Kerberos請求,所以掃描是非常隱蔽,日前針對此類掃描的檢測暫時也比較少。 大部分win系統(tǒng)默認已自帶spn探測工具即:setspn.exe下列操作無需管理權(quán)限,需要域內(nèi)機器執(zhí)行setspn -T hack -0*/* setspn -T target.com -Q*/* 導(dǎo)出后針對性定位域控##定位域控nslookup -type=all __ldap._tcp.dc._msdcs.rootkit.orgNslookup -type=SRV _ldap._tcp 方法一:net group "domain controllers" /domain #這里查詢結(jié)果后面會多一個$ 方法二:nltest /DCLIST:test.com 方法三:net time /domain 方法五:查看DNS服務(wù)器的地址,一般DNS服務(wù)器的IP就是域控的地址方法六:netdom query pdc #該命令只能在域控上執(zhí)行 方法七:dsquery server #該命令只能在域控上執(zhí)行##定位郵件服務(wù)器 nslookup -qt-MX Yahoo.com##域內(nèi)信息收集dsquery 有些機器無法執(zhí)行,需要自行上傳工具 dsquery user #查找域目錄中的用戶 dsquery computer #查找目錄中的計算機 dsquery contact #查找目錄中的聯(lián)系人 dsquery subnet #查找目錄中的子網(wǎng) dsquery group #查找目錄中的組 dsquery ou #查找目錄中的組織單位 dsquery site #查找目錄中的站點 dsquery server #查找目錄中的AD DC/LDS實例 dsquery user #查找目錄中的用戶 dsquery quota #查找目錄中的配額規(guī)定 dsquery partition #查找目錄中的分區(qū) dsquery * - #用通用的LDAP查詢來查找目錄中的任何對象 #以下命令只能在域控上查詢 dsquery user #查詢目錄中的用戶 dsquery computer #查詢目錄中的主機 dsquery group #查詢目錄中的組, dsquery ou #查詢目錄中的組織單元, dsquery site #查詢目錄中的站點 dsquery server #查詢域控 dsquery contact #查詢目錄中的聯(lián)系人 dsquery subnet #查詢目錄中的子網(wǎng) dsquery quota #查詢目錄中的配額規(guī)定, dsquery partition #查詢目錄中的分區(qū)。 dsquery * #用通用的LDAP查詢來查找目錄中的任何對 dsquery server -domain test.comI dsget server-dnsname -site #搜索域內(nèi)域控制器的DNS主機名和站點名 dsquery computer domainroot -name -xp -limit 10 #搜索域內(nèi)以- xp結(jié)尾的機器10臺 dsquery user domainroot -name admin -limit #搜索域內(nèi)以admin開頭的用戶10個翻找本地文件
在連上目標主機做好權(quán)限維持后,針對主機的各類文件進行翻查
1.看是否在本地留存有密碼本一類的東西(txt文件或者excel表格)
2.瀏覽器密碼,瀏覽器訪問記錄
3.看有無社交軟件(微信,qq),有就找存儲的文件
4.各類配置文件:數(shù)據(jù)庫密碼,access token,access key,api接口,部分api接口的session? key密鑰
java網(wǎng)站:找war包,有配置信息
asp網(wǎng)站:web.config
5.若存在文件共享服務(wù)器,配置文件可能可以找到寫死的密碼
6.網(wǎng)站源碼(很大概率代碼審計一下就可以翻到新漏洞,這樣的話后續(xù)即便對方封鎖了原先的入口刪掉webshell,后續(xù)一樣可以找機會進來)
7.日志文件(主機日志,網(wǎng)站日志等各類日志,不僅僅是為了信息收集,同時也可以做一些消除痕跡的工作,增大后續(xù)管理人員排查入侵的難度)
需要梳理的信息
例如拿下的主機上對外映射的web服務(wù)是一個oa管理系統(tǒng),那么可以對一下信息進行梳理,做進一步滲透,例如指定人員進行釣魚
找到域控后做什么
密碼噴灑:即利用已經(jīng)獲得密碼對所有的域內(nèi)用戶進行探測
?(后續(xù)的學(xué)習(xí)中會詳細整理和實踐)
文章推薦
本文中在總結(jié)的同時,也參考了大量博客文章,這里附上一篇很有參考價值的文章(這篇可能也是轉(zhuǎn)載過來的)
https://blog.csdn.net/qq_45290991/article/details/120028595
在這篇文章中涉及了許多域環(huán)境信息收集的內(nèi)容,同時介紹了很多域信息收集的工具,值得學(xué)習(xí)。
?ps;在本文中認識到了powershell和普通cmd的區(qū)別,填補一些我之前護網(wǎng)面試里的知識空白:
PowerShell可以理解為增強版的”cmd.exe”,打開方式就是:運行->輸入powershell:
如果想執(zhí)行一個Powershell腳本,需要修改Powershell的默認權(quán)限為執(zhí)行權(quán)限。PowerShell常用的執(zhí)行權(quán)限有四種:
Restricted:默認設(shè)置,不允許執(zhí)行任何腳本。Allsigned:只能運行經(jīng)過證書驗證的腳本。
Unrestricted:權(quán)限最高,可以執(zhí)行任意腳本。
RemoteSigned:本地腳本無限制,但是對來自網(wǎng)絡(luò)的腳本必須經(jīng)過簽名。
在PowerShell中輸入Get-ExecutionPolicy,可以查看權(quán)限:
如果想要修改權(quán)限就可以執(zhí)行這條命令,然后選擇Y:
Set-ExecutionPolicy 權(quán)限名總結(jié)
以上是生活随笔為你收集整理的内网渗透学习-Windows信息收集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pygame制作音乐播放器
- 下一篇: 云服务器win10系统搭建ftp,win