Flask接口签名sign原理与实例代码浅析
877
2022-10-10
目标端口扫描方法总结(目标端口扫描方法总结报告)
环境:靶机: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)) #发送SYN
Begin emission:
....*Finished to send 1 packets.
Received 5 packets, got 1 answers, remaining 0 packets
端口没有开放情况:
>>> sr1(IP(dst='10.10.10.14')/TCP(flags='S',dport=8080)) #发送SYN
Begin emission:
....Finished to send 1 packets.
*
Received 5 packets, got 1 answers, remaining 0 packets
基于上面的叙述可以做一个简单的python端口半连接扫描脚本:
#!/usr/bin/python #encoding=utf-8 from 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 port def 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 DROP kali@kal:/$ sudo iptables -L Chain 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.僵尸扫描
原理: 端口开放情况:
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].id 9644 >>> r3[IP].id 9646 增加为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 ( ) at 2018-06-21 18:02 CST Idle scan using zombie 10.10.10.12 (10.10.10.12:443); Class: Incremental Nmap scan report for 10.10.10.14 Host is up (0.044s latency). Not shown: 94 closed|filtered ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 53/tcp open domain 80/tcp open http MAC Address: 00:0C:29:FA:DD:2A (VMware) Nmap done: 1 IP address (1 host up) scanned in 4.83 seconds
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~