信息收集概述:
首先对当前网络环境进行判断:
1.对当前机器角色进行判断;
2.对当前机器所处网络环境的拓扑结构进行分析和判断;
3.对机器所处环境进行判断;
收集本机信息
查询网络配置信息:ipconfig -all
查询操作系统及软件信息:
操作系统及版本信息:
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
查看系统体系结构 :
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 localgroup administrators
查看当在线用户:
query user || qwinsta
查询端口列表:
netstat -an
查看系统详细信息:
systeminfo 注意系统的版本 ,位数,域,补丁信息,更新频率等;
查看系统补丁:
wmic qfe get caption,description,hotfixid,installedon
查看本机共享列表:
net share
wmic share get name,path,status
查看路由表和可用接口ARP缓存:
route print
arp -a
防火墙相关配置:
查看防火墙配置: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"
查看当前用户权限:whoami
查看域SID: whoami /all
查看指定用户信息: net user xxx/domain;
判断是否存在域(看是否存在一个网段):ipconfig /all
查看系统详细信息:systeminfo
查看当前域与登录用户信息:net config workstation
判断主域:(域服务器通常会作为时间服务器使用):net time /domain
探测域内存活主机: (nbtscan)
利用 ICMP协议探测 : for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I |findstr "TTL="
empire中的ARP模块:使用usemodule situational_awareness/network/arpscan
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 -O C:\windows\temp\log.txt -p 192.168.102.1-254 /b
扫描域内端口需要关注以下几点:
端口的Banner服务;端口上运行的服务;常见应用的默认端口;
利用telnet进行扫描:Telnet 192.168.102.8 2
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 /doamin
如果存在域,查看域内所有计算机: net view /domain:hacke
查询域内所有用户列表:net group /domain
系统自带用户身份列表:
domain admins:域管理员
domain computers:域内机器
domain controllers:域控制器
domain guest:域访客
domain user:域用户
enterprise admins:企业系统管理员用户
普通情况下,domain admins和enterprise admins对域内所有的域控制器 有完全控制权限
查询域成员所有计算机列表:
net group “domain computers”/domain
获取域密码信息:
net accounts /domain
获取域信任信息:
nltest /domain_trusts
查找域控制器:
查看预控机器名:nltest /DCLIST:name /netdom query pdc
查看预控主机名:nslookup -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 sessionchakan 谁用了本机资源,但是查不出来谁在使用远程计算机资源,或者谁登录了远程计算机;
1.psloggedon.exe: psloggedon \domainname同样需要管理员权限;
原理是:通过注册表的HKEY_USER的key值来查询;
2.PVEFindADUser.exe查找活动目录用户的登录的位置,枚举域用户,查找特定计算计算机上登录的用户;
条件:管理员权限;NET Framework2.0环境;
PVEFindADUser.exe -current:显示所有域内计算机
3.netview.exe枚举用户,能够寻找登录会话,寻找共享,枚举登录的用户,大部分都不用管理员权限;
4.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机器名,工作组,系统时间;
5.PowerView脚本
powershell.exe -exec bypass -command “& {import-module C:\powerview.ps1;Invoke-UserHunter}”接受用户名,用户列表,和域组列表 ;
powershell.exe -exec bypass -command “& {import-module C:\powerview.ps1;Invoke-StealthUserHunter}”获取域内所有的用户;
获取域管理员列表 :net group “domain admins” /domain
列出本机所有进程及进程用户:tasklist /v
查看域控列表:net group “domain controllers” /domain
所有活动域的会话列表(netsess.exe列表 ):netsess -h
利用powershell收集信息;
要想执行脚本需要修改配置 :
set-executionpolicy unrestricted
导入模块:
powerview:
获取域内大部分信息