前言
目标资产信息搜集的程度,决定渗透过程的复杂程度。
目标主机信息搜集的深度,决定后渗透权限持续把控。
渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。
—-Micropoor
渗透的本质是信息收集
本机信息收集
- 基础信息:
- 内网网段信息,查看网卡信息收集内部地址段的信息
- 内网大小
- 核心业务信息:
内网OA办公系统、邮件服务器、网络监控系统、财务应用系统、核心产品源码(SVN服务器、git服务器等)
- 其他信息:
- 管理员密码、浏览器密码、cookie、无线密码、数据库密码、VPN历史密码、Teamview历史密码等
- 其他用户session、3389和IPC$连接记录,各用户回收站信息、用户列表
- host文件和DNS缓存信息
- AV、补丁、进程、服务、端口、网络代理信息、软件列表
- 计划任务、账号密码策略和锁定策略、共享文件、web服务器配置文件
- 启动项、系统日志、Web服务器日志、防火墙规则
查询当前权限
whoami /all
命令
判断是否在域内
- RDS 如果目标服务器远程桌面服务开启,可尝试进行连接,若在用户名和密码栏下还有个登录到选项,下来选项栏如果除了计算机名(此计算机)选项外还有其他选项,则此服务器可能位于域中,且选项名即为域名;
net time /domain
执行该命令,有三种情况:第一种如果存在域会从域控返回时间, 并在第一行返回域控及域名;第二种如果当前服务器在域内但是当前用户非域用户,则会返回System error 5
就表示权限不够;第三种就是返回找不到域Workgroup的域控制器
表示当前网络环境为工作组
ipconfig /all
查看当前网络的DNS,一般在内网DNS服务器即为域控,很少将DNS与域控分开,除非有多个域环境systeminfo
系统信息中含有两项:Domain和Logon Server,前者为域名,后者为域控。倘若Domain为Workgroup则当前服务器不在域内net config workstation
其中工作域显示域名,同样若为WORKGROUP则非域环境,登录域表明当前用户是域用户登录还是本地用户登录
域内存活主机探测
基于UDP发现
- MSF扫描
1 | use auxiliary/scanner/discovery/udp_probe |
- nmap扫描
nmap -sU -T5 -sV --max-retries 1 192.168.114.1
- unicornscan扫描
unicornscan -mU 192.168.1.100
- ScanLine扫描
windows平台 sl -bhpt 139,445 100.100.0.39
基于ARP发现
- MSF扫描
1 | use auxiliary/scanner/discovery/arp_sweep |
- nmap扫描
nmap -sn -PR 192.168.114.0/24
-sn只扫描主机,不扫描端口(类似于PE),PR表示用ARP扫描
- netdiscover
netdiscover -r 192.168.114.0/24 -i wlan0
- arp-scan(linux)
arp-scan --interface=wlan0 --localnet
- Powershell
1 | powershell.exe -exec bypass -Command "Import-Module .\Invoke-ARPScan.ps1;Invoke-ARPScan -CIDR 192.168.1.0/24" |
- arp scannet
- arp-scan (推荐)
arp-scan.exe -t 192.168.114.0/24
- arp-ping
arp-ping.exe 192.168.114.0/24
- meterpreter
run post/windows/gather/arp_scanner RHOSTS=192.168.0.1/24
添加路由之后
基于Netbios发现
- MSF扫描
1 | use auxiliary/scanner/netbios/nbname |
- nmap扫描
nmap -sU --script nbstat.nse -p137 192.168.114.0/24 -T4
- nbtscan扫描
- 遍历输入的IP范围,以广播MAC地址发送ARP查询
- 一旦接收到ARP回复,遍记录相应的IP与MAC地址,同时向对方发送NBNS消息查询对方的主机信息
- 打印出每条信息
nbtscan.exe 192.168.1.1/24
- netbscanner扫描
基于SNMP发现
SNMP是一种简单网络管理协议,主要用于网络设备的管理
- MSF扫描
1 | use auxiliary/scanner/snmp/snmp_enum |
- nmap扫描
nmap -sU --script snmp-brute 192.168.114.0/24 -T4
- NetCrunch
- snmp for pl扫描
- snmpbulkwalk
基于ICMP发现
- nmap扫描
nmap ‐sP ‐PI 192.168.1.0/24 ‐T4
nmap ‐sn ‐PE ‐T4 192.168.1.0/24
- CMD下
1 | for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL=" >> result.txt |
- powershell下
1 | powershell.exe -exec bypass -Command "Import-Module .\Invoke-TSPingSweep.ps1;Invoke-TSPingSweep -StartAddress 192.168.1.1 -EndAddress 192.168.1.254 -ResolveHost -ScanPort -Port 21" |
- bash shell下
1 | !/bin/bash |
或者
1 | for i in 192.168.0.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i is alived; fi; done |
- nping
nping --icmp --icmp-type time 192.168.1.0/24 | grep "reply"
域内端口扫描
- nmap
- zmap
- masscan
- nc
- powershell
1 | powershell.exe -exec bypass -Command "Import-Module .\Invoke-Portscan.ps1;Invoke-Portscan -Hosts 192.168.1.1/24 -T 4 -ports '80'" |
域内基础信息收集
常见命令
1 | ipconfig /all 查询本机IP段、所在域 |
net 类
1 | net user 本机用户 |
dsquery
1 | dsquery computer domainroot -limit 65535 && net group "domain |
第三方信息收集
NetBios信息收集
1 | 1.探测对方主机名、工作组等信息 |
SMB信息收集
两个nmap脚本:
- smb-os-discovery.nse 获取目标的OS版本、计算机名、域名、工作组和当前时间等
- smb2-security-mode 检测smb签名是否是必要的(如果不是必要的可以进行smb中继攻击)
smb2-security-mode这一项,在2008上smb签名是必须的。(如果客户端和服务端有一方必须要smb签名的话,则两方必须都用smb签名才能建立链接,也就不能中继了)
空会话信息收集
能够以某一个具有一定权限的用户身份登陆,并拥有该用户的权限。
==利用工具==
winfo.exe 传送门
SRV记录
SRV是DNS中的一种资源记录,SRV记录用于将服务的名称映射到提供该服务的服务器的DNS计算机名称。
简单来说,它标明了哪台主机提供哪种服务的信息。
Windows域中的服务会注册下列格式的srv记录:
_Service._Protocol.DnsDomainName
在windows域中,活动目录的正常工作依赖于DNS。
活动目录服务器通过tcp协议提供LDAP服务,因此它注册的srv记录类似于:
_ldap._tcp.example.com
域控制器则会以下面的形式注册srv记录:
_Service._Protocol.DCType._msdcs.DomainName
,这里的DCType可以是dc(域控制器),gc(全局编录),pdc(主域控制器)等。如_ldap._tcp.dc._msdcs.example.com
1 | C:\Users\Administrator>nslookup |
SPN记录
SPN全名服务主体名称,作用是对服务进行唯一的标识。
在windows域中,服务实例需要注册一个spn,这样才能使用kerberos身份验证。SPN的注册格式为:
1 | ServiceName/FQDN:<port | servicename> |
FQDN是指完全限定域名。它可以标识出主机的逻辑位置。FQDN的格式为:主机名.域名
,例如,一台搭载webserver的服务器主机名为webserver,域名为example.com,则FQDN为webserver.example.com
SPN扫描
在windows域环境中,spn扫描是发现服务最好的一种方式,因为spn扫描的原理是使用ldap来向域控查询,因此不需要扫描内网中的每一台主机,流量不仅较小而且也很正常(kerberos认证依赖spn)。
1 | # 查看netbios名称为DM1主机的spn |
DNS记录
域控的定位
- net view
1 | net view /domain |
- set log
1 | set log |
- 通过srv记录
1 | >nslookup -type=SRV _ldap._tcp.dc._msdcs.yoga.com |
- 使用nltest
1 | nltest /dclist:yoga |
- Dsquery
1 | DsQuery Server -domain yoga |
- netdom
1 | netdom query pdc |
- dns一般为域控,并且域控会开启389端口(LDAP服务)
PSExec
扫描远程系统上身份验证令牌
域内用户和管理员的获取与定位
net uesr /domain
能够获取当前域下所有的用户
1. adfind or powerview
使用adfind
或者powerview
导出域用户信息可以查看
1 | # 查看域内用户详细信息: |
2.Dns解析
前提是拿到了域管,查看dc上面dns解析记录
1 | dnscmd 127.0.0.1 /enumrecords yoga.com yoga.com. /type A |
3.用户目录
查看域内所有计算机的C:\users\目录下的文件夹(登陆过该计算机的用户)
4.域控日志
导出所有域控的登录日志,分析出用户的登录ip;
wevtutil
为Windows 事件命令行实用程序,其导出的日志为evtx格式(即Windows日志本身的存储格式),可以使用Windows事件查看器分析,Crtl+F查找,或者不使用epl
参数,直接重定向输出即可。wevtutil
常用的场景是清理日志。可作为筛选分析日志的工具 ,4624(用户登录成功),4768、4776(用户验证成功)
1 | wevtutil cl application |
1 | # 参数说明 |
5.其他工具(可能不全)
1、psloggendon.exe chris
2、netsess.exe \\PRIMARY
3、PVEFindADUser.exe -current
需要管理员权限,可以枚举出域用户以及登录过特定系统的用户
4、netview.exe
寻找域用户正在登录的主机
检查远程机器注册表项HKEY_USERS
拿到正在登录的用户SID
利用adfind
查询该sid用户
1 | AdFind.exe -b cn=users,dc=yoga,dc=com -f "(objectSid:=S-1-5-21-2104426803-785674075-3345604858-1106)" |
这个方法不需要很高的域用户权限,但是Server默认才会开启远程注册表,PC默认不会开启
内网环境的判断及拓扑架构分析
0x01 位置的判断
判断机器处于网络拓扑中的某个区域,是DMZ区,办公区,核心区还是核心DB等多个位置
0x02 角色的判断
假如是服务器,判断是否是Web服务器,开发测试服务器,公共服务器,文件服务器,代理服务器,DNS服务器,存储服务器等..
具体需要通过机器内的主机名、文件、网络连接
等多种情况进行综合判断
主机名是最好判断的,通常Web或App
是Web服务器;Dev
是开发服务器;NAS
是存储服务器;File或者Fileserver
是文件服务器…..
通过网络连接判断也成,代理服务器可能有多个机器连接代理端口;更新服务器(WSUS)可能开放更新端口8530
;DNS服务器开放53
端口…..
0x03 连通性的判断
指的是机器能否从外面进来,能否出去。这关乎于后续的代理和木马
端口的判断
外网VPS开放监听端口,内网机器测试常见端口,或者直接端口扫描
常见能出去的端口:80、8080、443、53、110、123等
协议的判断
通常就是TCP、HTTP、ICMP、DNS等协议
- TCP协议
1 | VPS: nc -lvnp port |
- DNS协议
1 | windows:nslookup dnslog |
- HTTP协议
1 | VPS: nc -lvnp 80(8080) |
- ICMP协议
由于是网络层协议,内网直接利用ping
命令,然后VPS用tcpdump
等抓包工具抓包进行验证
额外情况
机器不能直接出来,需要进行代理设置,这种大多数是为了办公区的工作人员进行上网用的
判断
- 查看网络连接判断是否有连接其他机器端口,尝试
ping -n 1 -a ip
- 使用
arp -a + nbtstat -A ip
是否存在主机名为Proxy的主机 - IE浏览器的Internet设置(直接连接、PAC文件)
最终用Curl进行确认
1 | curl www.baidu.com //不通 |