一.基础概念
二三四层发现的目的只是为了准确发现所有活着主机IP,确定攻击面,端口扫描即发现攻击点,发现开放端口。端口对应网络服务及应用端程序,服务端程序的漏洞通过端口攻入。【所有的扫描结果,都不要完全相信】
一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行扫描。在手工进行扫描时,需要熟悉各种命令。对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。
对端口扫描中出现的服务结果,不要相信,那只是一个惯例,并不准确。
二.工具使用
1.UDP
(1).nmap
nmap 192.168.1.1 -sU -p 53,67 #默认不加-p,扫描1000常用端口
nmap -iL iplist.txt -sU -p 1-200 #指定地址列表
2.TCP
(1).全连接扫描——SYN、SYN+ACK、ACK
建立完整TCP三次连接,结果最最准确不需要任何权限,系统中的任何用户都有权利使用这个调用,而且速度快,但容易被发觉。
scapy对全连接扫描比较困难
若直接给目标系统发SYN+ACK/ACK,dst会认为是异常包,回应RST
TCP扫描:
【操作系统内核,会认为没建立完整的连接,会返回一个RST,表示请求断开连接】需要避免接受此包,以免混淆后续操作。让RST包不产生
iptables,linux防火墙,工作位置在内核之前
使用策略:iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.20.2 -j DROP
- nmap
nmap -sT 192.168.1.115 -p 100-200 不加-p,会扫描1000个常用端口
- nc
nc -nv -w 1 -z 192.168.1.115 100-200 #-nv:n表示跟数字内容,v不做域名解析 -w超时时间 -z使用扫描模式
for x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.1 $x; done | grep open
for x in $(seq 1 254); do nc -nv -w 1 -z 1.1.1.$x 80; done
(2).半开扫描
不建立完整的TCP连接,不在应用层留痕,只能在网络层有些迹像可循
只发SYN包,若收到SYN+ACK,则端口开放;若收到R+A,端口关闭
- nmap
nmap 192.168.1.115 -p100-200 #默认-sS(SYN)
nmap 192.168.1.115 -p100-200 --open #若目标主机在防火墙保护下,--open可过滤杂项
nmap -sS 192.168.1.115 -p100-200,445,3389 --open #用","分隔指定端口
- Hping(结果比较清晰)
hping3 192.168.1.115 --scan 100-200 -S #-S:SYN包
源地址欺骗
必须有权登陆伪造的IP地址主机,查看回包,或者能在交换机做镜像端口
hping3 -c 100 -S --spoof 192.168.1.140 -p ++1 192.168.1.1