windows信息搜集篇(四)之内网存活主机探测的多种方式
话不多说,直接开始吧,头已经大了!
00x01 Netbios协议探测
1.1 netbios简介
IBM
公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API
),为程序提供了请求低级服务的同一的命令集,作用是为了给局域网提供网络以及其他特殊功能。系统可以利用WINS
服务、广播及Lmhost
文件等多种模式将NetBIOS
名-——特指基于NETBIOS
协议获得计算机名称——解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS
协议可以方便地实现消息通信及资源的共享
1.2 nmap扫描
nmap -sU --script nbstat.nse -p137 192.168.1.0/24 -T4
1.3 msf扫描
┌──(root💀kali)-[~/桌面]
└─# msfconsole
msf6 > use auxiliary/scanner/netbios/nbname
msf6 auxiliary(scanner/netbios/nbname) > show options
msf6 auxiliary(scanner/netbios/nbname) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf6 auxiliary(scanner/netbios/nbname) > run
1.4 nbtscan扫描
Windows:
nbtscan.exe -r 192.168.1.0/24
nbtstat -n
Linux:
nbtscan -r 192.168.1.0/24
nbtscan -v -s: 192.168.1.0/24
00x02 ICMP协议探测
2.1 ICMP简介
它是TCP/IP
协议族的一个子协议,用于在IP
主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
2.2 CMD下扫描
扫描内网C
段存活主机
IP
段改为自己想要扫描的IP
段即可,视自己情况而定
命令行直显:
for /l %i in (1,1,255) do @ ping 192.168.1.%i -w 1 -n 1|find /i "ttl="
输出内容导出:
@for /l %i in (1,1,255) do @ping -n 1 -w 40 192.168.1.%i & if errorlevel 1 (echo 192.168.1.%i>>c:\a.txt) else (echo 192.168.1.%i >>c:\b.txt)
因为要写C
盘,所以需要管理员权限的cmd
运行。(导出其他盘符,不需要管理员权限)
2.3 nmap扫描
nmap -sn -PE -T4 192.168.1.0/24 #(扫描一个C段下的存活主机)
2.4 powershell扫描
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 445,135"
D:\>tcping.exe ‐n 1 192.168.1.0 80
00x03 UDP协议探测
3.1 UDP简介
UDP
(User Datagram Protocol
)是一种无连接的协议,在第四层-传输层,处于IP
协议的上一层。UDP
有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
3.2 UDP显著特性
1.UDP 缺乏可靠性。UDP 本身不提供确认,超时重传等机制。UDP 数据报可能在网络中被复制,被重新排序,也不保证每个数据报只到达一次。
2.UDP 数据报是有长度的。每个 UDP 数据报都有长度,如果一个数据报正确地到达目的地,那么该数据报的长度将随数据一起传递给接收方。而 TCP 是一个字节流协议,没有任何(协议上的)记录边界。
3.UDP 是无连接的。UDP 客户和服务器之前不必存在长期的关系。大多数的UDP实现中都选择忽略源站抑制差错,在网络拥塞时,目的端无法接收到大量的UDP数据报
4.UDP 支持多播和广播。
3.3 nmap扫描
┌──(root💀kali)-[~/桌面]
└─# nmap -sU -T5 -sV --max-retries 1 192.168.1.100 -p 500
慢的令人发指,稍微等一下或者另开一个窗口进行下一条命令好了。
3.4 msf扫描
msf6 auxiliary(scanner/netbios/nbname) > use auxiliary/scanner/discovery/udp_probe
msf6 auxiliary(scanner/discovery/udp_probe) > use auxiliary/scanner/discovery/udp_sweep
3.5 unicornscanTCP协议扫描工具
linux
下使用推荐
┌──(root💀kali)-[~/桌面]
└─# unicornscan -mU 192.168.1.100
3.6 ScanLine扫描
推荐win
下使用,以管理员身份执行。
3.7 在线
00x04 ARP协议探测
4.1 ARP简介
ARP
,通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议。根据IP
地址获取物理地址的一个TCP/IP
协议。主机发送信息时将包含目标IP
地址的ARP
请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址
4.2 nmap扫描
┌──(root💀kali)-[~/桌面]
└─# nmap -sn -PR 192.168.1.1/24
4.3 msf扫描
msf6 auxiliary(scanner/discovery/udp_sweep) > use auxiliary/scanner/discovery/arp_sweep
4.4 netdiscover
┌──(root💀kali)-[~/桌面]
└─# ifconfig #查看本机存在的网卡
┌──(root💀kali)-[~/桌面]
└─# netdiscover -r 192.168.1.0/24 -i eth0(网卡名称)
4.5 arp-scan(linux)
新版的kali
中都自带arp-scan
,如无内置则需要下载安装:
┌──(root💀kali)-[~/桌面]
└─# apt-get install arp-scan
4.6 arp-scan(windows)
arp-scan.exe -t 192.168.1.1/24
4.7 Powershell
c:\tmp>powershell.exe -exec bypass -Command "Import-Module .\arpscan.ps1;InvokeARPScan -CIDR 192.168.1.0/24"
00x05 SNMP协议探测
5.1 SNMP简介
SNMP
是一种简单网络管理协议,它属于TCP/IP
五层协议中的应用层协议,用于网络管理的协议。SNMP
主要用于网络设备的管理。SNMP
协议主要由两大部分构成:SNMP
管理站和SNMP
代理。SNMP
管理站是一个中心节点,负责收集维护各个SNMP
元素的信息,并对这些信息进行处理,最后反馈给网络管理员;而SNMP
代理是运行在各个被管理的网络节点之上,负责统计该节点的各项信息,并且负责与SNMP
管理站交互,接收并执行管理站的命令,上传各种本地的网络信息。
5.2 nmap扫描
┌──(root💀kali)-[~/桌面]
└─# nmap -sU --script snmp-brute 192.168.1.0/24 -T4
5.3 msf扫描
msf6 auxiliary(scanner/discovery/arp_sweep) > use auxiliary/scanner/snmp/snmp_enum
msf6 auxiliary(scanner/snmp/snmp_enum) > show options
msf6 auxiliary(scanner/snmp/snmp_enum) > set THREADS 10
msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 192.168.1.0/24
00x06 SMB协议探测
6.1 基于msf
scanner/snmp/snmp_enum
6.2 基于nmap
nmap ‐sU ‐sS ‐‐script smb‐enum‐shares.nse ‐p 445 192.168.1.119
6.3 基于CMD
for /l %a in (1,1,254) do start /min /low telnet 192.168.1.%a 445
6.4 基于powershell的一句话扫描
单IP:
445 | %{ echo ((new‐object Net.Sockets.TcpClient).Connect("192.168.1.119",$_)) "$_ is open"} 2>$null
多ip:
1..5 | % { $a = $_; 445 | % {echo ((new‐object Net.Sockets.TcpClient).Connect("192.168.1.$a",$_)) "Port $_ is open"} 2>$null}
多port,多IP:
118..119 | % { $a = $_; write‐host "‐‐‐‐‐‐"; write‐host"192.168.1.$a"; 80,445 | % {echo ((new‐object Net.Sockets.TcpClient).Connect("192.168.1.$a",$*)) "Port $_ is open"} 2>$null}
6.5 crackmapexec
#最方便:
apt-get install crackmapexec
#避免有坑:
apt-get install -y libssl-dev libffi-dev python-dev build-essential
pip install --user pipenv
git clone --recursive https://github.com.cnpmjs.org/byt3bl33d3r/CrackMapExec
cd CrackMapExec && pipenv install
pipenv shell
python setup.py install
默认为100线程:
┌──(root💀kali)-[~/桌面]
└─# CrackMapExec smb 192.168.1.0/24
00x07 MSF探测辅助模块汇总
auxiliary/scanner/discovery/arp_sweep #基于arp协议发现内网存活主机,这不能通过代理使用
auxiliary/scanner/portscan/ack #基于tcp的ack回复进行端口扫描,默认扫描1-10000端口
auxiliary/scanner/portscan/tcp #基于tcp进行端口扫描,默认扫描1-10000端口
auxiliary/scanner/discovery/udp_sweep #基于udp协议发现内网存活主机
auxiliary/scanner/discovery/udp_probe #基于udp协议发现内网存活主机
auxiliary/scanner/netbios/nbname #基于netbios协议发现内网存活主机
auxiliary/scanner/ftp/ftp_version #发现内网ftp服务,基于默认21端口
auxiliary/scanner/ssh/ssh_version #发现内网ssh服务,基于默认22端口
auxiliary/scanner/telnet/telnet_version #发现内网telnet服务,基于默认23端口
auxiliary/scanner/dns/dns_amp #发现dns服务,基于默认53端口
auxiliary/scanner/http/http_version #发现内网http服务,基于默认80端口
auxiliary/scanner/http/title #探测内网http服务的标题
auxiliary/scanner/smb/smb_version #发现内网smb服务,基于默认的445端口
auxiliary/scanner/mssql/mssql_schemadump #发现内网SQLServer服务,基于默认的1433端口
auxiliary/scanner/oracle/oracle_hashdump #发现内网oracle服务,基于默认的1521端口
auxiliary/scanner/mysql/mysql_version #发现内网mysql服务,基于默认3306端口
auxiliary/scanner/rdp/rdp_scanner #发现内网RDP服务,基于默认3389端口
auxiliary/scanner/redis/redis_server #发现内网Redis服务,基于默认6379端口
auxiliary/scanner/db2/db2_version #探测内网的db2服务,基于默认的50000端口
auxiliary/scanner/netbios/nbname #探测内网主机的netbios名字
在实战过程中,许多特殊环境下scanner
,db_nmap
不能快速符合实战渗透诉求,尤其在域中的主机存活发现,而gather/post
下的模块,弥补了该诉求,以便快速了解域中存活主机。
windows/gather/arp_scanner
windows/gather/enum_ad_computers
windows/gather/enum_computers
windows/gather/enum_domain
windows/gather/enum_domains
windows/gather/enum_ad_user_comments
run windows/gather/arp_scanner RHOSTS=192.168.1.110‐120 THREADS=20
00x08感言
毫无话语敢言!!!