端口扫描
UDP端口扫描
-
假设ICMP port-unreachable响应代表端口关闭
-
目标系统不响应ICMP port-unreachable时,可能产生误判
-
-
完整的UDP应用请求
-
准确性高
-
耗时巨大
-
通过scapy演示:
-
scapy UDP scan
-
端口关闭:ICMP port-unreachable
-
端口开放:没有回报
-
了解每一种基于UDP的应用层包接口更好
-
与三层相同的技术
-
误判
-
这个演示在《主动信息收集-四层发现》里面演示过,这里不做演示。看我之前的文章即可!
主动信息收集-四层发现 – X黑手网-Kali Linux论坛-电脑端-X黑手网 (x10001.com)
使用nmap演示:
nmap -sU 180.215.224.194 #扫描UDP端口
当然,也可以加全端口,但是扫描非常缓慢:
TCP端口扫描
-
基于连接的协议
-
三次握手
-
隐蔽扫描
-
僵尸扫描
-
全连接扫描
-
所有的TCP扫描方式,都是基于三次握手的变化,来判断目标端口状态;
隐蔽扫描—-syn
-
不建立完整扫描
-
应用日志不记录扫描行为—–隐蔽
僵尸扫描:
-
极度隐蔽
-
实施条件苛刻
-
可伪造源地址
-
选择僵尸机
-
0(早期的操作系统)
-
随机 (windows和Linux)
-
-
-
闲置系统
-
系统使用递增的IPID(就是通过这个来判断主机是否存活)
-
实例展示:
隐蔽端口扫描:
scapy:
a=sr1(IP(dst="180.215.224.194")/TCP(flags="S"),timeout=4,verbose=0)
#含义不解释了,不明白的看我之前的文章
下方是回包,回了S+A包;
当然nmap也可以,上面已经演示过,这里不做再次演示;
nmap -sS 180.215.224.194 --open #扫描TCP端口
#注意:也可以加-p后面跟端口或连续端口;也可以加-iL跟IP文
hping3
hping3 180.215.224.194 –scan 1-100 -S #–scan就是扫描端口,后面跟端口范围,-S是根据SYN扫描
hping3 -c 50 -S --spoof 114.114.114.114 -p ++1 185.30.35.7
#-spoof后面是跟伪装的地址 ++1意思是以此加1
全连接端口扫描:
scapy
-
Syn扫描不需要raw packets
-
内核认为syn/ack是非法包,直接发送rst中断连接
-
全连接扫描对scapy比较困难
通过iptables:
iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 185.30.35.7 -j DROP
#添加一条防火墙规则
之后通过脚本去实现建立TCP全连接,脚本去百度搜索:
nmap
nmap -sT 180.215.224.194 -p1-100 #-sT代表全连接扫描,全连接速度较慢。默认是1000个常用端口
dmitry
dmitry -p 180.215.224.194
nc
nc -nv -w 1 -z 192.168.1.134 1-100
僵尸扫描:
系统的IPID必须是递增的:
scapy:
>>> i=IP()
>>> t=TCP()
>>> rz=(i/t) #定义发送到僵尸机的函数
>>> rt=(i/t) #定义至目标机的函数
>>> rz[IP].dst="192.168.0.125" #这里填写僵尸机IP地址
>>> rz[TCP].dport=445 #这里填写僵尸机开放的端口
>>> rz[TCP].flags="SA" #向僵尸机发送的包
>>> rt[IP].src="192.168.0.125"
>>> rt[IP].dst="180.215.224.194"
>>> rt[TCP].dport=22
>>> rt[TCP].flags="S"
>>> az1=sr1(rz)
>>> at2=sr1(rt,timeout=1)
>>> az2=sr1(rz)
如果端口是通的,那么查看返回包的IPID是递增的,如果端口是关闭的,则IPID只增加1;
nmap:
nmap -p445 192.168.1.113 --script=ipidseq.nse
#探测僵尸机器
有如下显示证明可以当作僵尸机;
nmap 目标机器 -sI 僵尸机IP -Pn -p 0-100
没有回复内容