中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

目標端口掃描方法總結

發布時間:2020-07-31 08:28:50 來源:網絡 閱讀:4743 作者:時間帶 欄目:安全技術


環境:
靶機: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
<IP  version=4L ihl=5L tos=0x0 len=44 id=0 flags=DF frag=0L ttl=64 proto=tcp chksum=0x12a0 src=10.10.10.14 dst=10.10.10.11 options=[] |<TCP  sport=http dport=ftp_data seq=2037664706 ack=1 dataofs=6L reserved=0L flags=SA window=5840 chksum=0x937e urgptr=0 options=[('MSS', 1460)] |<Padding  load='\x00\x00' |>>>  #得到SA的回復,目標端口沒有關閉

端口沒有開放情況:

>>> 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
<IP  version=4L ihl=5L tos=0x0 len=40 id=0 flags=DF frag=0L ttl=64 proto=tcp chksum=0x12a4 src=10.10.10.14 dst=10.10.10.11 options=[] |<TCP  sport=http_alt dport=ftp_data seq=0 ack=1 dataofs=5L reserved=0L flags=RA window=0 chksum=0x67ff urgptr=0 |<Padding  load='\x00\x00\x00\x00\x00\x00' |>>>    回復的RA(RST/ACK)

基于上面的敘述可以做一個簡單的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.僵尸掃描

原理:
端口開放情況:

  1. 先通過scanner發送syn/ack給zombie,因為scanner沒有走完整的三次握手先發送syn,而是直接發送了syn/sck,因此zombie回復rst,此時zombie的ipid=x;
  2. scanner偽造源ip地址,將源ip地址設置成zombie的ip地址向被掃描主機發送syn,被掃主機就會回復一個syn/ack給源ip,但是目前源ip設置的是zombie,因此目標主機錯誤的給zombie回復一個syn/ack,但是zombie并沒有發送syn就直接收到了syn/ack,因此zombie回復RST,此時zombie的ipid=x+1。
  3. scanner再次向zombie發送syn/ack收到RST的回復,此時zombie的ipid=x+2
    通過上面三步,得知IPID序列增加2,就可以知道目標端口開放
    目標端口掃描方法總結
    端口不開放情況:
  4. 先通過scanner發送syn/ack給zombie,因為scanner沒有走完整的三次握手先發送syn,而是直接發送了syn/sck,因此zombie回復rst,此時zombie的ipid=x;
  5. scanner偽造源ip地址,將源ip地址設置成zombie的ip地址向被掃描主機發送syn,被掃主機端口不存活就會回復一個RST給源ip,但是目前源ip設置的是zombie,因此目標主機錯誤的給zombie回復一個RST,目標主機這是不會回復,那么IPID仍然為x。
  6. 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].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 ( https://nmap.org ) 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
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

斗六市| 罗定市| 宜阳县| 化德县| 呈贡县| 禹州市| 荥阳市| 安阳市| 阿鲁科尔沁旗| 武夷山市| 绥芬河市| 晋城| 潞西市| 翁牛特旗| 独山县| 阿拉善左旗| 永善县| 沁水县| 涟水县| 广东省| 隆昌县| 镇原县| 海兴县| 舒城县| 方正县| 望奎县| 乌拉特中旗| 安义县| 万年县| 都安| 西和县| 遂溪县| 塔河县| 兴文县| 宜昌市| 南皮县| 晴隆县| 牙克石市| 溆浦县| 临泽县| 合肥市|