"滲透測試的本質是信息收集"
"此篇文章用作介紹拿到Webshell之后的一些針對內網的操作,不包含對域控的信息收集,目的是將主機信息收集最大化,從而加大橫向的力度"
內網信息描述
當從Web端拿到webshell之后,對服務器主機的了解幾乎是0,應從內往外一步步的收集服務器的相關信息,首先要對主機當前所處的網絡環境進行判斷,通常來說分為3種:
- 我是誰 對機器角色的判斷,是指判斷已經控制的機器是 普通Web服務器、開發測試服務器、公共服務器、文件服務器、代理服務器、DNS服務器還是存儲服務器等。具體的判斷是通過對機器內的 主機名、文件、網絡連接等多種情況綜合進行的
- 這是哪 對目前機器所處網絡環境的拓撲結構進行分析和判斷,是指需要對所處內網進行全面的數據收集及分析整理,繪制出大概的內網整體拓撲結構圖,以便后期進行進一步的內網滲透和準確定位內網具體目標,從而完成滲透測試
- 我在哪 對目前機器所處位置區域的判斷,是指判斷機器處于網絡拓撲中的哪個區域,是在 **DMZ區、辦公網,還是核心區核心DB **等位置。當然,這里的區域并不是絕對的,只是一個大概的環境,不同位置的網絡環境不一樣,區域的界限也不一定明顯
存活主機檢測
方法一:
for /l %i in (1,1,255) do @ ping 172.16.80.%i -w 1 -n 1|find /i "ttl="
方法二:
@echo
md C:windowsTemp1
echo ok > C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 192.168.%%I.1 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 10.%%I.1.1 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 172.16.%%I.1 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 172.%%I.1.1 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping %%I.%%I.%%I.1 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 192.168.%%I.254 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 10.%%I.1.254 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 172.16.%%I.254 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping 172.%%I.254.254 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
FOR /L %%I in (1,1,254) do ping %%I.%%I.%%I.254 -n 1 -w 10 | findstr "TTL">>C:WindowsTemp1gatway.txt
方法三:
@echo off
rem 內網存活段自動發現腳本 [Windows]
setlocal enabledelayedexpansion
for /l %%i in (0,1,255) do (
for /l %%k in (0,1,255) do (
ping -w 1 -n 1 10.%%i.%%k.1 | findstr "TTL=" >nul || ping -w 1 -n 1 10.%%i.%%k.254 | findstr "TTL=" >nul
if !errorlevel! equ 0 (echo 10.%%i.%%k.0/24 is alive ! >> alive.txt ) else (echo 10.%%i.%%k.0/24 May be sleeping ! )
)
)
for /l %%s in (16,1,31) do (
for /l %%d in (0,1,255) do (
ping -n 1 -w 1 172.%%s.%%d.1 | findstr "TTL=" >nul || ping -w 1 -n 1 172.%%s.%%d.254 | findstr "TTL=" >nul
if !errorlevel! equ 0 (echo 172.%%s.%%d.0/24 is alive ! >> alive.txt ) else (echo 172.%%s.%%d.0/24 May be sleeping ! )
)
)
for /l %%t in (0,1,255) do (
ping -n 1 -w 1 192.168.%%t.1 | findstr "TTL=" >nul || ping -n 1 -w 1 192.168.%%t.254 | findstr "TTL=" >nul
if !errorlevel! equ 0 (echo 192.168.%%t.0/24 is alive ! >> alive.txt ) else (echo 192.168.%%t.0/24 May be sleeping ! )
)
方法四:powershell
$ip = "172.20.10."
for ($i = 1; $i -lt 255; $i ++){
# get each ip
$cur = $ip + $i
# ping once
ping -n 1 $cur | Out-Null
if ($LASTEXITCODE -eq 0) {
Write-Host "$cur online"
} else {
Write-Host "$cur dead"
}
}
開放端口檢測
1.PowerShell端口掃描器:針對單個IP的多個端口的掃描
1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("172.20.10.1",$_)) "Port $_ is open!"} 2>$null
2.Test-Netconnection 針對某IP段中單個端口的掃描
foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 172.20.10.$ip}
Test-NetConnection命令是在 **4.0 **版本的PowerShell中才引入的。
3.針對某IP段 & 多個端口的掃描器
1..20 | % { $a = $_; 1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("172.20.10.$a",$_)) "Port $_ is open!"} 2>$null}
4.針對某IP段 & 指定多個端口的掃描器
1..20 | % { $a = $_; write-host "------"; write-host "172.20.10.$a"; 22,53,80,445 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.0.0.$a",$_)) "Port $_ is open!"} 2>$null}
常見的端口及服務
21、69FTPTFTP弱口令嗅探22SSH弱口令23telnet弱口令、嗅探、探測25SMTP郵件53DNS區域傳送、dns欺騙、域控67、68DHCP劫持、欺騙80、443、8080WEB應用弱口令、WEB攻擊7001、7002weblogic反序列化、弱口令8080、8089jboss、jenkins反序列化、弱口令9090websphere反序列化、弱口令110POP3爆破、嗅探139、445samba未授權訪問、遠程代碼執行143IMAP爆破161SNMP爆破、信息泄露389LDAP弱口令、匿名訪問3389RDP爆破、遠程代碼執行5900VNC弱口令5632PcAnywhere嗅探、代碼執行3306MySQL弱口令1433msssql、sql server弱口令1521oracle弱口令5432pgsql弱口令27017、27018mongodb未授權訪問6379redis未授權訪問5000sysbase/DB2弱口令11211memcached未授權訪問9200、9300elasticsearch遠程代碼執行2181zookeeper未授權訪問8069zabbix遠程執行3690SVNSVN泄露873rsync匿名訪問888、8888寶塔寶塔后門、弱口令
系統信息
wmic OS get Caption,CSDVersion,OSArchitecture,Version!
用戶信息
whoami/all
query user
whoami/user
whoami/priv
補丁信息
systeminfo 查看KB號
wmic qfe get Caption,Description,HotFixID,InstalledOn 查看安裝的補丁 提權輔助網頁
根據補丁查找exp http://bugs.hacking8.com/tiquan/
DNS
DNS服務器:nslookup
DNS緩存:ipconfig /displaydns
host文件
type c:Windowssystem32driversetchosts
敏感文件
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*"
網絡環境
ipconfig /all
netstat -ano
arp -a
route print
tracert
Tomcat、Nginx、Apache、web.config等配置文件
進程信息
可以查看進程是否有 mysql,nginx,Apache,redis等敏感服務tasklist /svc or wmic process list brief進程殺軟對比工具-avlist https://github.com/gh0stkey/avList/
服務信息
wmic service list brief查看是否開啟DHCP或其他第三方服務
已安裝程序
wmic product get name,version
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version
查看已安裝程序,判斷機器作用及價值,如安裝了VMware vSphere Client或者xshell,ftp等,就可以去提取賬號口令了
本地運行環境
set 這個沒什么好說的,看看主機有無JAVA,Perl,Python等環境,盡可能的收集信息
計劃任務
schtasks /query
開機時間
啟動項信息
wmic startup get command,caption
REG QUERY HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
REG QUERY HKEY_LOCAL_macHINESOFTWAREMicrosoftWindowsCurrentVersionRun
RDP連接日志
cmdkey /list
防火墻配置
netsh advfirewall show allprofiles
最近打開文件
C:Users[User]AppDataRoamingMicrosoftWindowsRecent
回收站
軟件敏感信息
list
- 瀏覽器下載記錄
- 瀏覽器歷史記錄
- 瀏覽器保存的賬號密碼
- 瀏覽器收藏夾標簽
Github項目
https://github.com/GhostPack/Seatbelt 爬取瀏覽器收藏夾等機器其他敏感資產https://github.com/moonD4rk/HackBrowserData hackbrowserdata 是一個解密瀏覽器數據(密碼|歷史記錄|Cookies|書簽)的導出工具,支持全平臺主流瀏覽器https://github.com/AlessandroZ/LaZagne LaZagne項目是用于開源應用程序獲取大量的密碼存儲在本地計算機上
文章轉自公眾號TIDE安全團隊