如何探测内网存活主机
在渗透中,当我们拿下一台服务器作为跳板机进一步进行内网渗透时,往往需要通过主机存活探测和端口扫描来收集内网资产。
我们将主机扫描的场景大致可分为三种,1)直接在webshell下执行,通过系统自带命令或上传脚本工具进行扫描探测 ;2)通过反弹shell进行内网渗透,msf等渗透测试框架自带一些扫描模块;3)通过socks代理扫描内网(例如 proxychains+Nmap扫描)。
在合适的场景下,选择最合适的武器。比如支持存活探测的协议,包括了 ARP、ICMP、SMB、 UDP、NETBIOS、SNMP协议等;支持端口扫描的方式,包括ACK扫描、SYN扫描、TCP扫描、UDP扫描、ICMP扫描等。
01、ping命令
我们经常通过ping检查网络连通性,通过telnet来测试指定端口连通性。使用系统自带的命令来完成C段探测,虽然效率低,但不容易触发安全规则。如果服务器开启了防火墙或者禁ping,那么就会影响探测结果。
Windows下使用ping命令扫描C段:
for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1|find /i "ttl="
Linux 下使用ping命令扫描C段:
for k in $( seq 1 255);do ping -c 1 192.168.99.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
另外,还可以结合系统自带的traceroute、arp 、netstat等命令收集内网信息,curl、wget可以用来做端口探测。
02、Powershell
通过powershell脚本扫描IP地址存活:
powershell.exe -exec bypass -Command "Import-Module ./Invoke-TSPingSweep.ps1;Invoke-TSPingSweep -StartAddress 192.168.1.0 -EndAddress 192.168.1.255"
脚本下载地址:
https://gallery.technet.microsoft.com/scriptcenter/Invoke-TSPingSweep-b71f1b9b
用PowerShell实现基本的端口扫描功能。
针对单个IP的多个端口的扫描:
C:\Users\Bypass> 1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.246.44",$_)) "Port $_ is open!"} 2>$null
针对某IP段中单个端口的扫描:
foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.1.$ip}
针对某IP段 & 多个端口的扫描器
1..20 | % { $a = $_; 1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.0.0.$a",$_)) "Port $_ is open!"} 2>$null}
03、基于MSF的内网主机探测
使用msf进行反弹shell进行内网渗透时,通过msf自带的扫描模块进行快速扫描。
主机存活探测:
auxiliary/scanner/discovery/arp_sweep ARP扫描 auxiliary/scanner/discovery/udp_sweep UDP扫描 auxiliary/scanner/netbios/nbname NETBIOS扫描 auxiliary/scanner/snmp/snmp_enum SNMP扫描 auxiliary/scanner/smb/smb_version SMB扫描
端口扫描:
auxiliary/scanner/portscan/ack TCP ACK端口扫描 auxiliary/scanner/portscan/ftpbounce FTP bounce端口扫描 auxiliary/scanner/portscan/syn SYN端口扫描 auxiliary/scanner/portscan/tcp TCP端口扫描 auxiliary/scanner/portscan/xmas TCP XMas端口扫描
04、Nmap扫描内网
Nmap是一个端口扫描器,可用于主机发现、端口扫描、版本检测、OS检测等。
使用场景:建立socks代理,proxychains+Nmap扫描内网。
支持多种扫描模式:
-sT: TCP 扫描 -sS: SYN 扫描 -sA: ACK 扫描 -sF:FIN扫描 -sU: UDP 扫描 -sR: RPC 扫描 -sP: ICMP扫描
快速扫描所有端口:
nmap -sS -p 1-65535 -v 192.168.99.177
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-03-01 (9)awk getline用法详解
2020-03-01 (8)awk的工作流程
2020-03-01 (7)awk筛选行和处理字段的示例
2020-03-01 (6)修改字段或NF引起的$0重新计算
2020-03-01 (5)awk划分字段的3种方式
2020-03-01 (4)awk读取行的细节
2020-03-01 (3)awk命令行结构和语法结构