內網滲透 | 內網中的信息收集
無論是通過外網打點,還是水坑釣魚,進入內網后的第一步,也是最重要的一步就是信息收集,而且信息收集往往是一直穿插在整個內網滲透過程中。
工作組和域的區分
1.ipconfig /all 有Primary Dns Suffix(主 DNS 后綴)就說明是域內,空的則當前機器應該在工作組。 2.net config workstation =工作組特征= ------------------------------------------------ 軟件版本 Windows 10 Home China 工作站域 WORKGROUP 登錄域 MicrosoftAccount ------------------------------------------------ =域特征= ------------------------------------------------ 工作站域 HACK7 工作站域 DNS 名稱 hack7.local 登錄域 HACK7 ------------------------------------------------ 3.systeminfo 這里注意字體大小寫,工作組一般都是全大寫,但是遇到的也有小寫的情況,暫時不明白怎么設置的 =工作組特征= ------------------------------------------------ 域: WORKGROUP ------------------------------------------------ =域特征= ------------------------------------------------ 域: hack7.local ------------------------------------------------ 4.net time /domain =工作組特征= ------------------------------------------------ 找不到域 WORKGROUP 的域控制器。 請鍵入 NET HELPMSG 3913 以獲得更多的幫助。 ------------------------------------------------ =域特征=[需要域用戶才能成功查詢] ------------------------------------------------ \\DC.hack7.local的當前時間是2020/7/12 13:21:32 ------------------------------------------------
工作組內信息收集
工作組采取的一般都是常規滲透方法,因為工作組一般都是個人和少數服務器。
通常使用的方法有: 掃描網段中的web服務,常用的有phpstudy,wampserver等,來尋找搭建的服務漏洞 掃描開放端口信息,以及對應的服務,判斷是否存在漏洞。 掃描主機由於沒有更新到最新版本導致的系統漏洞,比如MS17-010,補丁號為KB4013389 hash抓取,hash注入,hash碰撞,口令爆破,IPC登陸,WMI,未授權訪問,文件共享系統。 ARP嗅探/欺騙攻擊(Cain和Ettercap) DNS劫持,會話劫持。 社會工程學 ...
本機信息收集
用戶系統信息收集
1.查看當前用戶權限 whoami /all 2.查看系統信息 systeminfo systeminfo /S 192.168.1.101 /U testlab\test /P "test" 查看遠程機器的系統配置 3.查當前機器的機器名,知道當前機器是干什么的 hostname 4.查看在線用戶,注意管理員此時在不在 quser / query user 5.查當前機器中所有的用戶名,開始搜集准備用戶名字典 net user 6.查當前機器中所有的組名,了解不同組的職能,如:IT,HR,admin,file net localgroup 7.查指定組中的成員列表 net localgroup "Administrators" 8.查詢本機所有的盤符 wmic logicaldisk get description,name,size,freespace /value fsutil fsinfo drives fsutil fsinfo volumeinfo C:|findstr "卷名" 查看卷名稱,需要管理員權限 9.防火牆相關 netsh firewall show state 查看防火牆狀態 netsh firewall show config 查看防火牆配置 設置防火牆日志存儲位置: netsh advfirewall set currentprofile logging filename "C:\Windows\temp\FirewallLOG.log" 關閉防火牆: netsh firewall get opmode disable (WIN2003之前) netsh advfirewall set allprofiles state off (WIN2003之后) 允許某個程序的全連接: netsh firewall add allowdprogram C:\nc.exe "allow nc" enable (WIN2003之前) 允許某個程序連入: netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe" 允許某個程序外連: netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe" 10.其他 set 查看當前機器的環境變量配置,看有沒有我們可以直接利用到的語言環境 ver 查看當前機器的NT內核版本,不彈窗 winver 查看當前機器的NT內核版本,彈窗,在非圖形界面不執行這個命令 fsutil fsinfo drives 列出當前機器上的所有盤符 net share 查看當前機器開啟的共享 driverquery 查看當前機器安裝的驅動列表 net share public_dir="c:\public" /grant:Everyone,Full 設置共享 dir /a-r-d /s /b 找當前用戶可讀寫目錄,可能會很多
網絡連接信息收集
1.查看tcp/udp網絡連接狀態信息 netstat -ano 查看本機所有的tcp,udp端口連接及其對應的pid netstat -anob 查看本機所有的tcp,udp端口連接,pid及其對應的發起程序 netstat -ano | findstr "ESTABLISHED" 查看當前正處於連接狀態的端口及ip netstat -ano | findstr "LISTENING" 查看當前正處於監聽狀態的端口及ip netstat -ano | findstr "TIME_WAIT" 查看當前正處於等待狀態的端口及ip 2.查看網絡配置 ipconfig /all 3.查看本地DNS緩存 ipconfig /displaydns 4.查看路由表 route print 5.查找有價值的內網arp通信記錄 arp -a 6.跟蹤本機出口ip tracert 8.8.8.8
軟件進程信息收集
1.查看殺毒軟件 wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState,pathToSignedProductExe 2.查看本機安裝程序 wmic product get name /value wmic product get name,version 3.查看當前機器的進程信息 tasklist /svc 顯示當前機器所有的進程所對應的服務 [只限於當前用戶有權限看到的進程] tasklist /m 顯示本地所有進程所調用的dll [同樣只限於當前用戶有權限看到的進程] tasklist /v 尋找進程中有無域管啟用的進程,或者殺軟進程 taskkill /im iexplore.exe /f 用指定進程名的方式強行結束指定進程
歷史憑證信息收集
引用自:https://github.com/klionsec/RedTeamer 批量抓取當前機器上的 "各類基礎服務配置文件中保存的各種賬號密碼" 比如,各種數據庫連接配置文件,各類服務自身的配置文件(redis,http basic...)... 想辦法 "控制目標 運維管理 / 技術人員 的單機,從這些機器上去搜集可能保存着各類敏感網絡資產的賬號密碼表" 比如, *.ls,*.doc,*.docx, *.txt.... 抓取各類 "數據庫客戶端工具中保存各種數據庫連接賬號密碼 比如,Navicat,SSMS[MSSQL自帶客戶端管理工具,里面也可能保存的有密碼(加密后的base64)] 抓取當前系統 "注冊表中保存的各類賬號密碼hash" [ Windows ] 抓取當前系統所有 "本地用戶的明文密碼/hash" [ Windows & linux ] 抓取當前系統的所有 "用戶token" [ Windows ] 抓取 "windows憑據管理器中保存的各類連接賬號密碼" 抓取 "MSTSC 客戶端中保存的所有rdp連接賬號密碼" 抓取各類 "VNC客戶端工具中保存的連接密碼" 抓取 "GPP目錄下保存的各類賬號密碼" [ 包括組策略目錄中XML里保存的密碼hash 和 NETLOGON目錄下的某些腳本中保存的賬號密碼 ] 抓取各類 "SSH客戶端工具中保存的各種linux系統連接賬號密碼", SecureCRT,Xshell,WinSCP,putty 抓取各類 "瀏覽器中保存的各種web登錄密碼和cookie信息",Chrome [360瀏覽器],Firefox,IE,QQ瀏覽器 抓取各類 "數據庫表中保存的各類賬號密碼hash" 抓取各類 "FTP客戶端工具中保存的各種ftp登錄賬號密碼", filezila, xftp... 抓取各類 "郵件客戶端工具中保存的各種郵箱賬號密碼", forxmail, thunderbird... 抓取各類 "SVN客戶端工具中保存的所有連接賬號密碼及項目地址" 抓取各類 "VPN客戶端工具中保存的各種vpn鏈接賬號密碼"
用戶敏感文件收集
1.指定目錄下搜集各類敏感文件 dir /a /s /b d:\"*.txt" dir /a /s /b d:\"*.xml" dir /a /s /b d:\"*.mdb" dir /a /s /b d:\"*.sql" dir /a /s /b d:\"*.mdf" dir /a /s /b d:\"*.eml" dir /a /s /b d:\"*.pst" dir /a /s /b d:\"*conf*" dir /a /s /b d:\"*bak*" dir /a /s /b d:\"*pwd*" dir /a /s /b d:\"*pass*" dir /a /s /b d:\"*login*" dir /a /s /b d:\"*user*" 2.指定目錄下的文件中搜集各種賬號密碼 findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak 3.查看,刪除 指定文件 type c:\windows\temp\admin_pass.bak 查看某個文件內容 del d:\ad\*.* /a /s /q /f 強制刪除指定路徑下的所有文件 tree /F /A D:\ >> file_list.txt 導出指定路徑下的文件目錄結構 rd /q/s c:\windows\temp\test 刪除文件夾
存活主機探測
基於icmp
for /L %I in (0,1,254) DO @ping -w 1 -n 1 192.168.7.%I | findstr "TTL=" >> pinglive.txt
掃描的話建議直接在內網進行掃描,速度和准確率都比較有保障。
常用的工具[最多10秒一個c段]:nbtscan[基於smb和netbios的內網主機發現方式]、Ladon、自開發工具 socks代理掃描:goby
域內信息收集
下文僅限於域內的信息收集,均不會涉及域內認證原理等概念,后面會對windows認證方式單獨寫一篇總結。
net組件搜集域內信息
net user /domain 查看當前域中的所有用戶名,根據用戶名總數大概判斷域的規模 net user xingzheng /domain 查看指定用戶在當前域中的詳細屬性信息 net accounts /domain 查看當前域的域內賬戶密碼設置策略 net config workstation 查看看當前的登錄域 net view 查看當前域中在線的機器,不太直觀,批處理把機器名對應的ip也顯示出來 ---- WIN10下使用Net view會出現如下報錯 System error 1231 System error 6118 解決:https://social.technet.microsoft.com/Forums/en-US/6f102ed1-8e76-4cb7-8dec-05714466d441/net-view-system-error-1231?forum=win10itpronetworking ---- net view /domain 查看所有的域名稱 net view /domain:domain_name 查看指定域中在線的計算機列表 net time /domain 查看時間服務器,一般域控會做時間服務器 net accounts /domain 查看當前域的域內賬戶密碼設置策略 net group /domain 查看當前域中的所有組名 net group "domain admins" /domain 查看當前域中的域管賬戶 net group "domain computers" /domain 查看當前域中的所有的計算機名(登錄過該域的計算機) net group "domain controllers" /domain 查看域控 nltest /domain_trusts 查看域內信任關系
其他補充
nltest /domain_trusts 查看域內信任關系 dnscmd /zoneexport hack7.local dns.txt ※【DC執行】導出域內DNS信息 nslookup -q=mx hack7.local 查看域內郵件服務器 nslookup -q=ns hack7.local 查看域內DNS服務器 netdom query pdc 查看域內的主域控,僅限win2008及之后的系統
dsquery導出域信息
利用dsquery 工具搜集域內信息,域成員機器需要自己傳上去
dsquery computer 查看當前域內的所有機器,dsquery工具一般在域控上才有,不過你可以上傳一個dsquery dsquery user 查看當前域中的所有賬戶名 dsquery group 查看當前域內的所有組名 dsquery subnet 查看到當前域所在的網段,結合nbtscan使用 dsquery site 查看域內所有的web站點 dsquery server 查看當前域中的服務器(一般結果只有域控的主機名) dsquery user domainroot -name admin* -limit 240 查詢前240個以admin開頭的用戶名
csvde導出域信息
如果你有一個當前有效的域用戶賬戶及密碼 csvde.exe –f c:\windows\temp\e.csv –n –s 192.168.1.100(DC的IP) –b 域用戶名 域名 域用戶密碼 如果你可以使用域成員主機的system權限或者當前就在DC上 csvde.exe –f c:\windows\temp\e.csv –n –s 192.168.1.100(DC的IP)
Bloodhound/Sharphound
BloodHound以用圖與線的形式,將域內用戶、計算機、組、Sessions、ACLs以及域內所有相關用戶、組、計算機、登陸信息、訪問控制策略之間的關系更直觀的展現在Red Team面前進行更便捷的分析域內情況,更快速的在域內提升自己的權限。它也可以使Blue Team成員對己方網絡系統進行更好的安全檢測及保證域的安全性。 這里直接介紹需要在內網機器中執行的相關命令: 此工具的導出相對來說比較暴力,且目前此工具 exe 原版已經被識別並被各種殺軟查殺,包括微軟win10自帶的殺軟 Windows Defender 。
詳細參考: https://www.anquanke.com/post/id/214046
SPN掃描
不同於常規的tcp/udp端口掃描,由於spn本質就是正常的Kerberos請求,所以掃描是非常隱蔽,日前針對此類掃描的檢測暫時也比較少。大部分win系統默認已自帶spn探測工具即:setspn.exe,此操作無需管理權限,需域內機器執行。
setspn -T target.com -Q */* 可完整查出當前域內所有spn
詳細介紹:域安全-SPN掃描
http://hackergu.com/kerberos-sec-spn-search/
ldapsearch
詳細介紹:滲透基礎——活動目錄信息的獲取
https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80-%E6%B4%BB%E5%8A%A8%E7%9B%AE%E5%BD%95%E4%BF%A1%E6%81%AF%E7%9A%84%E8%8E%B7%E5%8F%96/
定位域控
查詢dns解析記錄
若當前主機的dns為域內dns,可通過查詢dns解析記錄定位域控。
C:\Users\xingzheng>nslookup -type=all _ldap._tcp.dc._msdcs.hack7.local DNS request timed out. timeout was 2 seconds. 服務器: UnKnown Address: 192.168.86.109 _ldap._tcp.dc._msdcs.hack7.local SRV service location: priority = 0 weight = 100 port = 389 svr hostname = dc.hack7.local dc.hack7.local internet address = 192.168.86.109
SPN掃描
在SPN掃描結果中可以通過如下內容,來進行域控的定位。
CN=DC,OU=Domain Controllers,DC=hack7,DC=loca
net group
C:\Users\xingzheng>net group "domain controllers" /domain 這項請求將在域 hack7.local 的域控制器處理。 組名 Domain Controllers 注釋 域中所有域控制器 成員 ------------------------------------------------------------------------------- DC$ 命令成功完成。
端口識別
掃描內網中同時開放389和53端口的機器。
端口:389 服務:LDAP、ILS 說明:輕型目錄訪問協議和NetMeeting Internet Locator Server共用這一端口。 端口:53 服務:Domain Name Server(DNS) 說明:53端口為DNS(Domain Name Server,域名服務器)服務器所開放,主要用於域名解析,DNS服務在NT系統中使用的最為廣泛。
通過DNS服務器可以實現域名與IP地址之間的轉換,只要記住域名就可以快速訪問網站。