信息收集中的一项重要工作是发现内网中的主机、数据库、IP段网络设备、安全设备等资产,以便于更快地获取更多权限和密码,更加接近红队的目标资产。在控制的入口点权限不足的情况下,如果补丁更新较多,不能进行提权或提权会影响主机稳定性,就不便于我们对当前计算机进行详细的主机信息收集。发现更多主机的优势在于,我们能够以入口点计算机作为跳板机,发现更多的内网主机,获取其他计算机权限,收集更多密码,以滚雪球式地获得战果。常见的主机发现方法有网络连接、路由表、常见IP段、ARP记录NetBIOS 扫描、ICMP、TCP/UDP、HTTP(S)、DNS 缓等。
利用协议主动探测主机存活
在进行内网主机发现时,使用系统自带命令或软件可以减少在目标磁盘落地二进制文件,减少EDR的监测及拦截。如在Windows主机中可以使用VBS、PowerShell等进行探测,但是由于现在安全软件对PowerShell监控较严格,可以使用直接将C#加载到内存的方式,减少二进制文件落地。
利用 ICMP 发现主机
ICMP探测的优势在于系统自带,内网中终端设备一般会将该协议放行,并且安全设备的默认策略不对该协议进行安全分析。常见的ICMP探测方法是使用ping命令,可以配合使用for循环,慢速探测整个C段存活情况。
先使用ipconfig 查看当前主机所处的网络环境。
随后使用 icmp探测当前网段存活主机
for /l %i in (1,1,255) do @ping 192.168.124.%i -w 1 -n 1 | find /i "ttl"
出现乱码是因为 命令行窗口字符集未设置正确
chcp 查看当前窗口 字符集为 GBK(936)
使用 chcp 65001 切换至 UTF-8字符集即可
使用ARP发现主机
在利用ARP(Address Resolution Protocol,地址解析协议)发现主机时,可以利用 arpscan工具来发现主机,该工具会遍历预设的IP段并发送ARP请求,如果主机回复,则会返回主机IP和MAC地址。如果使用ARP扫描,尽量不要指定过大的扫描范围,否则会引起大量告警,导致权限丢失。可以执行命令anp-scan.exe -t cidr (cidr表示网段,此处指192.168.3.1/24)。此外,ARP扫描工具还有netdiscover、Invoke-ARPScan.ps1、Empire 等。
使用arp -a 查看arp缓存表