目标端口扫描方法总结
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,环境:靶机:10.10.10.11目标机:10.10.10.14 或者 10.10.10.121. scapy实现端口扫描1. 半连接扫描原理:靶机机向目标主机发送SYN请求,通过目标主机的回复判断端
千家信息网最后更新 2025年02月24日目标端口扫描方法总结
环境:
靶机:10.10.10.11
目标机:10.10.10.14 或者 10.10.10.12
1. scapy实现端口扫描
1. 半连接扫描
原理:靶机机向目标主机发送SYN请求,通过目标主机的回复判断端口是否是存活的,如果端口关闭会回复RST,如果没有关闭就会回复SYN/ACK
1.1 scapy扫描
端口开放情况
>>>sr1(IP(dst='10.10.10.14')/TCP(flags='S',dport=80)) #发送SYNBegin emission:....*Finished to send 1 packets.Received 5 packets, got 1 answers, remaining 0 packets>> #得到SA的回复,目标端口没有关闭
端口没有开放情况:
>>> sr1(IP(dst='10.10.10.14')/TCP(flags='S',dport=8080)) #发送SYNBegin emission:....Finished to send 1 packets.*Received 5 packets, got 1 answers, remaining 0 packets>> 回复的RA(RST/ACK)
基于上面的叙述可以做一个简单的python端口半连接扫描脚本:
#!/usr/bin/python#encoding=utf-8from scapy.all import *def syn(ip,start,end): for port in range(start,end): reply = sr1(IP(dst=ip)/TCP(dport=port,flags='S'),timeout=2,verbose=0) if (reply[TCP].flags == 18): print portdef main(): ip=raw_input('Input IP: '); start=int(raw_input('Input start port: ')) end=int(raw_input('Input end port: ')) syn(ip,start,end)main()
1.2 nmap半连接扫描
kali@kal:~/review$ nmap -sS 10.10.10.14 -p20-30 #指定范围kali@kal:~/review$ nmap -sS 10.10.10.14 -p 80,22,5 #指定端口扫描kali@kal:~/review$ nmap -sS 10.10.10.14 -p 80,22,5 --open #只显示开放的端口
扫描抓包情况如下:
1.3 hping3半连接扫描
指定ip范围扫描kali@kal:/$ sudo hping3 10.10.10.14 --scan 20-30 -S指定端口扫描kali@kal:/$ sudo hping3 10.10.10.14 --scan 20,22,25,30 -S伪造IP为192.168.10.10进行SYN扫描kali@kal:/$ sudo hping3 10.10.10.14 --spoof 192.168.10.10 --scan 20-30 -S
2. 全连接扫描
原理:首先向目标主机发送SYN包,然后目标主机回复SYN/ACK,再次向目标主机发送ACK的包,建立三次握手.三次握手建立成功,说明端口开放
2.1scapy全连接扫描
利用scapy实现全连接端口扫描,需要先关闭内核向外发送的RST
kali@kal:/$ sudo iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROPkali@kal:/$ sudo iptables -LChain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination DROP tcp -- anywhere anywhere tcp flags:RST/RST
建立全连接的主要代码如下:
端口可以任意修改
r1 = sr1(IP(dst='10.10.10.14')/TCP(flags='S',dport=22))r2 = sr1(IP(dst='10.10.10.14')/TCP(flags='A',dport=22,ack=r1[TCP].seq+1))
2.2 nmap全连接扫描
指定端口范围扫描
kali@kal:/$ sudo nmap -sT 10.10.10.14 -p1-100
指定端口扫描
kali@kal:/$ sudo nmap -sT 10.10.10.14 -p 22,25,888,23
2.3 dmitry全连接扫描
默认扫描1000个常用的端口
kali@kal:/$ dmitry -p 10.10.10.14
3.僵尸扫描
原理:
端口开放情况:
- 先通过scanner发送syn/ack给zombie,因为scanner没有走完整的三次握手先发送syn,而是直接发送了syn/sck,因此zombie回复rst,此时zombie的ipid=x;
- scanner伪造源ip地址,将源ip地址设置成zombie的ip地址向被扫描主机发送syn,被扫主机就会回复一个syn/ack给源ip,但是目前源ip设置的是zombie,因此目标主机错误的给zombie回复一个syn/ack,但是zombie并没有发送syn就直接收到了syn/ack,因此zombie回复RST,此时zombie的ipid=x+1。
- scanner再次向zombie发送syn/ack收到RST的回复,此时zombie的ipid=x+2
通过上面三步,得知IPID序列增加2,就可以知道目标端口开放
端口不开放情况: - 先通过scanner发送syn/ack给zombie,因为scanner没有走完整的三次握手先发送syn,而是直接发送了syn/sck,因此zombie回复rst,此时zombie的ipid=x;
- scanner伪造源ip地址,将源ip地址设置成zombie的ip地址向被扫描主机发送syn,被扫主机端口不存活就会回复一个RST给源ip,但是目前源ip设置的是zombie,因此目标主机错误的给zombie回复一个RST,目标主机这是不会回复,那么IPID仍然为x。
- scanner再次向zombie发送syn/ack收到RST的回复,此时zombie的ipid=x+1
通过上面三步,得知IPID序列增加2,就可以知道目标端口关闭
3.1scapy模块僵尸扫描
1. 先构造数据包,向僵尸机发送ACK,这里的端口是僵尸主机的端口。>>> s1 = IP(dst='10.10.10.12')/TCP(flags='A',dport=445)2. 再构造数据包,伪造源地址,源地址设置成僵尸主机的IP,目标地址设置成目标主机,这里的port的是目标主机的端口。>>> s2 = IP(dst='10.10.10.14',src='10.10.10.12')/TCP(flags='S',dport=22)3. 最后构造数据包,再向僵尸主机发送ACK。>>> s3 = IP(dst='10.10.10.12')/TCP(flags='A',dport=445)发送上面构造的数据包,按顺序发送。>>> r1 = sr1(s1,verbose=0)>>> r2 = sr1(s2,verbose=0)>>> r3 = sr1(s3,verbose=0)查看r1和r2的IPID>>> r1[IP].id9644>>> r3[IP].id9646增加为2,说明目标端口开放。如果增加为1,说明目标端口关闭,如果增加不为1或者2,就不能判断目标主机端口是否开放,因此需要目标主机ipid是递增的而且足够闲置。这里就不继续写脚本。
3.2 nmap实现僵尸扫描
判断10.10.10.12是否可以当做僵尸主机
kali@kal:/$ sudo nmap 10.10.10.12 -p445 --script=ipidseq.nse
随机查找网络中的僵尸主机
kali@kal:/$ sudo nmap -iR 100 -p 80 --script=ipidseq.nse
利用找到的僵尸主机扫描
kali@kal:/$ sudo nmap 10.10.10.14 -sI 10.10.10.12 -p1-100 WARNING: Many people use -Pn w/Idlescan to prevent pings from their true IP. On the other hand, timing info Nmap gains from pings can allow for faster, more reliable scans.Starting Nmap 7.70 ( https://nmap.org ) at 2018-06-21 18:02 CSTIdle scan using zombie 10.10.10.12 (10.10.10.12:443); Class: IncrementalNmap scan report for 10.10.10.14Host is up (0.044s latency).Not shown: 94 closed|filtered portsPORT STATE SERVICE21/tcp open ftp22/tcp open ssh23/tcp open telnet25/tcp open smtp53/tcp open domain80/tcp open httpMAC Address: 00:0C:29:FA:DD:2A (VMware)Nmap done: 1 IP address (1 host up) scanned in 4.83 seconds
端口
主机
目标
僵尸
地址
开放
全连
情况
数据
再次
原理
范围
序列
而是
脚本
错误
靶机
成功
代码
内核
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网站服务器的路由器
sqlyog数据库
中国台湾企业软件开发java
彩六服务器
应适当重视网络安全作文
服务器16g内存条
scum服务器10人参数设置
md5数据库
拼多多服务器ip地址是什么
短租软件开发
打印机突然接收不到数据库
关于网络安全法律相关资料
安卓无法向sd写入数据库
mac下炒股软件开发
网络安全与支付系统第一节
软件开发项目管理系统软件
怎么看待计算机网络技术这个专业
上海游驰网络技术牛彦
express 服务器
集群服务器是什么
数据库的职业
安卓的软件开发
网络安全教育考试报名条件
高中信息技术教资笔试数据库
方舟服务器怎么改地图
广东省网络安全应急指挥中心
软件开发视频教程百度网盘下载
怎么看待计算机网络技术这个专业
东莞聊天软件开发编程
手机设置启动网络安全保护