爲什麼要進行內網本機信息收集:
在內網滲透測試環境中,有很多的設備和防護軟件。通過收集目標內網信息,洞察內網網絡拓撲結構,找到內網中最薄弱的環節。
滲透人員進入內網後,需要先對當前的網絡環境進行判斷,所處的內網結構是什麼樣的、其角色是什麼、使用這臺機器的人的角色是什麼、以及這臺機器上裝了什麼殺毒軟件等,都需要進行信息收集。
正如某大佬所說:滲透的本質就是信息收集。
手動信息收集:
本機信息包括操作系統、權限、內網IP地址段殺毒軟件、端口、服務、補丁更新頻率、網絡連接、共享、會話等。如果是域內主機,操作系統、應用軟件、補丁、服務、殺毒軟件一般都是批量安裝的。 通過本機的相關信息,可以進一步瞭解整個域的操作系統版本、軟件及補丁安裝情況、用戶命名方式。
查詢網絡配置信息:
命令: ipconfig/all
查詢操作系統及軟件信息:
-
查詢操作系統和版本系統: 命令: systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 如果爲中文版系統則執行命令: systeminfo | findstr /B /C:"OS 名稱" /C:"OS 版本"
-
查看系統體系結構: 命令: echo %PROCESSOR_ARCHITECTURE%
-
查看安裝的軟件及版本、路徑等: 利用 wmic 命令,將結果輸出到文本文件: wmic product get name,version
-
利用PowerShell命令,收集軟件的版本信息: powershell "Get-WmiObject -class Win32_Product | Select-Object -Property name,version"
查詢本機服務信息:
命令: wmic service list brief
查詢進程列表:
-
查看當前進程列表和進程用戶,分析軟件、郵件客戶端、VPN和殺毒軟件等進程 命令: tasklist
-
查看進程信息 命令: wmic process list brief
查看啓動程序信息:
命令: wmic startup get command,caption
查看計劃任務:
命令: schtasks /query /fo LIST /V 如果在執行時報錯,無法加載列資源,可以使用chcp命令將編碼暫時設置爲英文。 執行: chcp 437 運行完schtasks以後再使用chcp命令將編碼設置回中文GBK(936)。 執行: chcp 936
查看主機開機時間:
命令: net statistics workstation
查詢用戶列表:
-
查看本機用戶列表:net user
-
查看本地管理員: net localgroup administrators
-
顯示有關登錄到系統的所有用戶的信息: query user
列出或斷開本地計算機與所連接的客戶端之間的會話:
命令: net session
查詢端口列表:
命令:netstat -ano
查看補丁列表:
命令: systeminfo
使用wmic查看安裝在系統的補丁: wmic qfe get Caption,Description,HotFixID,InstalledOn
查看本機共享列表:
命令: net share
利用wmic命令查找共享列表: wmic share get name,path,status
查詢路由表及所有可用接口的ARP緩存表
命令:route print 和 arp -a
防火牆相關配置:
- 關閉防火牆
- Windows Server 2003及之前版本 命令:netsh firewall set opmode disable
- Windows Server 2003之後版本 命令:netsh advfirewall set allprofiles state off
-
查看防火牆配置 命令: netsh advfirewall show allprofiles
-
修改防火牆配置
- 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=out 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 HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber 0xd3d轉換爲十進制就是3389
- 在Windows Server 2003中開啓3389端口 命令: wmic path win32_terminalservicesetting where (__CLASS !="") call setallowsconnections 1
- 在其它系統(親測了server2012、win7、win10)開啓和關閉3389端口 開啓命令: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 關閉命令: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
自動收集本機信息:
任何版本的Windows xp低權限無法執行wmic,Windows 7以上版本的低權限用戶允許訪問wmic並執行相關操作 創建.bat文件執行後結果會寫入HTML文件:
for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A"
wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html
查詢當前權限:
查看當前權限:
當內網中存在域時,本地普通用戶只能查詢本機相關信息,不能查詢域內信息。本地管理員用戶和域內用戶可以查詢域內信息。原理:域內所有查詢都是通過域控制器實現的(基於LDAP協議),而這個查詢需要權限認證,所以只有域內用戶纔有這個權限,當域用戶執行命令時,會自動使用Kerberos協議進行認證,無須額外輸入賬號密碼。
獲取域SID:
命令: whoami /all
查詢指定用戶詳細信息:
命令: net user username /domain
判斷是否有域:
獲取了本機相關信息後,判斷當前內網是否有域,如果存在域,就需要判斷所控主機是否在域內。
使用ipconfig命令
執行命令查看網關IP、DNS的IP地址、域名、本機是否和DNS服務器處於同一網段等信息。 命令: ipconfig /all 然後,通過反向查詢命令nslookup來解析域名IP。用解析後的IP地址進行對比,判斷域控制器和DNS服務器是否在同一臺服務器上。
查看系統詳細信息:
"域"即域名,"登陸服務器"爲域控制器。如果"域"爲"WORKGROUP",表示當前服務器不在域內。 命令:systeminfo
查詢當前登陸域及登陸用戶狀態:
"工作站域DNS名稱"爲域名(如果爲"WORKGROUP"表示當前爲非域環境),"登陸域"表示當前登陸用戶是域用戶還是本地用戶。 命令: net config workstation
判斷主域:
命令:net time /domain,三種情況:
- 存在域,但當前不是域用戶
- 存在域,當前是域用戶
- 不存在域,當前網絡環境爲工作組