目标端口扫描方法总结
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,环境:靶机:10.10.10.11目标机:10.10.10.14 或者 10.10.10.121. scapy实现端口扫描1. 半连接扫描原理:靶机机向目标主机发送SYN请求,通过目标主机的回复判断端
千家信息网最后更新 2025年01月20日目标端口扫描方法总结
环境:
靶机: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安全错误
数据库的锁怎样保障安全
外盘软件开发怎么收费
服务器远程唤醒
网络型数据库系统设计
转行软件开发工程师年龄
少女前线b站服务器叫啥
湖北安卓软件开发培训
原神亚洲服服务器在哪里
新吴区软件开发市场
英语网络安全知识竞赛作文
数据库应用技术石玉芳
网络安全手抄报用多大纸
华为 在哪关闭 软件开发
新增网络安全专业
幼儿园网络安全教育信息简报
煤矿综合管控平台服务器配置
云南淘好车网络技术有限公司
新余盈瑞世纪软件开发中心
设定检索数据库
黑龙江互联网网络技术服务哪家好
德惠通用网络技术咨询口碑推荐
没有牢固树立网络安全责任意识
手机定位软件开发公司电话
服务器爬啥
鞍山app软件开发公司
亚马逊店铺登入服务器
无法登陆darksouls2服务器
百度移信网络技术电话
统计局网络安全责任制实施办法
个人或单位遭受网络安全
网络安全服务器方案