要实现一次成功的渗透操作,先要有一些预动作,例如:主机发现、信息收集、漏洞扫描等。主机发现的根本目的就是找到你要进行渗透操作的目标,其中,可以有很多思想方法可以借鉴,有很多工具可以利用。
Table of Contents
主机发现方式(扫描方式):
PS:为了能对下文所述进行实操,建议搭建靶机环境,如Metasploitable2-Linux、VM中安装不同版本的Windows系统,因为网络上对于这些的文章教程太多了,我也不打算讲述这些。另外,以下的很多操作目标是Metasploitable2-Linux。
nmap实现ARP协议的主机发现:
nmap -sn -PR 10.253.6.0/24
Netdiscover(是一个主动/被动的ARP侦查工具):
arp-scan(ARP扫描工具):
语法:arp-scan <target>
arping(基于ARP的ping工具,在局域网内向其他主机发送ARP指令):
语法:arping -c 数据包数量 <target>
ICMP(Internet Control Message Protocol)
ping(通用于UNIX,Linux,Windows)
语法格式:ping <target>
例:ping hackyle.net
nmap(基于ICMP协议)
- nmap -PE <target> (-PE:表示发送一个ICMP echo,timestamp和netmask请求)
- nmap -PP <target> (-PP:发送ICMP时间戳扫描存活主机)
- nmap -PM <target> (-PM:试图用备选的ICMP登记ping指定的主机,这种类型的ping可以绕过配置有封锁标准ICMP请求策略的防火墙)
理解TCP3次握手建立连接:
原理:向目标主机的指定端口发送SYN数据包。如果源主机收到RST数据包,则说明端口是关闭的;如果源主机收到SYN+ACK数据包,则说明目标端口处理监听状态。
特性:
语法:
- nmap -PS <target> (Nmap默认使用的这种方式来扫描,基于TCP ACK和ICMP Echo请求来判断主机是否响应)
- nmap -sS <target> (-s:即scan,告诉nmap要运行那种类型的扫描,-S:即SYN,表示要执行的TCP SYN类型的扫描)
使用这两种方式扫描Metasploitable2-Linux漏洞主机:
原理:
语法:
- nmap -PA <target> (可以探测阻止了TCP-SYN包和ICMP Echo请求的主机,但有可能会被防火墙阻止)
- nmap -sA <target> (-s:即scan,表明你要使用哪种类型的扫描,-A:即TCP-ACK扫描)
TCP全连接扫描
特性:
语法:
nmap -sT <target> (-s:即scan,-T:TCP)
原理:和ACK扫描一样,它通过检测返回的RST报文的TCP窗口域,来判断目标端口是否开放。当端口关闭,则表明窗口为0;当端口开放,即窗口大于0。
语法:nmap -sW <target>
诞生背景:
如果目标主机有防火墙,会组织SYN数据包,这是可以考虑使用TCP-FIN扫描。因为TCP FIN标志的数据包,并不需要完成TCP的握手。
原理:
TCP-FIN扫描就是想目标端口发送一个FIN包。如果收到目标主机的响应RST包,则说明端口是关闭的;如果没有收到RST包,则说明端口可能是开放的或是被隐蔽的。
语法:nmap -sF <target> (-s:即scan;-F:FIN)
原理:又称为圣诞树扫描,它发送带有URG、PSH和FIN标志(注:URG、PSH、FIN是TCP报文中的标识位)的TCP数据包。如果目标主机响应一个RST标志的数据包,则说明目标主机的端口是关闭的。
语法:nmap -sX <target>
原理和TCP-Xmas扫描一样,也是通过发送非常规的TCP通信数据包对目标计算机进行探测。在很多情况下,Null扫描和Xmas树扫描正好相反,因为TCP-null扫描向目标主机发送没有任何标记的数据包。如果目标主机的相应端口是关闭的话,则会响应一个RST数据包;如果目标主机的端口是开启的话,则不会响应任何信息。
语法:nmap -sN <target>
ping命令的原理就是向目标主机发送UDP数据包,如果数据包及时到达目标主机并做出响应,则认为网络是连通。
UDP扫描
原理:专门针对UDP端口。如果目标返回ICMP不可达的错误,则说明端口是关闭的;如果能够得到正确或者适当的响应,则说明目标端口是开启的。
语法:nmap -sU <target>
UDP-ping扫描
原理:通过发送UDP数据包到目标主机并等待响应。如果目标返回ICMP不可达的错误,则说明端口是关闭的;如果能够得到正确或者适当的响应,则说明目标端口是开启的。
语法:nmap -PD[端口] <target> (-P:即ping,使用ping类型扫描;D:即UDP)
路由追踪(确定自己与该IP/域名需要经过几级路由):