環(huán)境:
靶機(jī):10.10.10.11
目標(biāo)機(jī):10.10.10.14 或者 10.10.10.12
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元城固做網(wǎng)站,已為上家服務(wù),為城固各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
原理:靶機(jī)機(jī)向目標(biāo)主機(jī)發(fā)送SYN請(qǐng)求,通過(guò)目標(biāo)主機(jī)的回復(fù)判斷端口是否是存活的,如果端口關(guān)閉會(huì)回復(fù)RST,如果沒(méi)有關(guān)閉就會(huì)回復(fù)SYN/ACK
端口開(kāi)放情況
>>>sr1(IP(dst='10.10.10.14')/TCP(flags='S',dport=80)) #發(fā)送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的回復(fù),目標(biāo)端口沒(méi)有關(guān)閉
端口沒(méi)有開(kāi)放情況:
>>> sr1(IP(dst='10.10.10.14')/TCP(flags='S',dport=8080)) #發(fā)送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' |>>> 回復(fù)的RA(RST/ACK)
基于上面的敘述可以做一個(gè)簡(jiǎn)單的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()
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 #只顯示開(kāi)放的端口
掃描抓包情況如下:
指定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進(jìn)行SYN掃描
kali@kal:/$ sudo hping3 10.10.10.14 --spoof 192.168.10.10 --scan 20-30 -S
原理:首先向目標(biāo)主機(jī)發(fā)送SYN包,然后目標(biāo)主機(jī)回復(fù)SYN/ACK,再次向目標(biāo)主機(jī)發(fā)送ACK的包,建立三次握手.三次握手建立成功,說(shuō)明端口開(kāi)放
利用scapy實(shí)現(xiàn)全連接端口掃描,需要先關(guān)閉內(nèi)核向外發(fā)送的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))
指定端口范圍掃描
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
默認(rèn)掃描1000個(gè)常用的端口
kali@kal:/$ dmitry -p 10.10.10.14
原理:
端口開(kāi)放情況:
1. 先構(gòu)造數(shù)據(jù)包,向僵尸機(jī)發(fā)送ACK,這里的端口是僵尸主機(jī)的端口。
>>> s1 = IP(dst='10.10.10.12')/TCP(flags='A',dport=445)
2. 再構(gòu)造數(shù)據(jù)包,偽造源地址,源地址設(shè)置成僵尸主機(jī)的IP,目標(biāo)地址設(shè)置成目標(biāo)主機(jī),這里的port的是目標(biāo)主機(jī)的端口。
>>> s2 = IP(dst='10.10.10.14',src='10.10.10.12')/TCP(flags='S',dport=22)
3. 最后構(gòu)造數(shù)據(jù)包,再向僵尸主機(jī)發(fā)送ACK。
>>> s3 = IP(dst='10.10.10.12')/TCP(flags='A',dport=445)
發(fā)送上面構(gòu)造的數(shù)據(jù)包,按順序發(fā)送。
>>> 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,說(shuō)明目標(biāo)端口開(kāi)放。如果增加為1,說(shuō)明目標(biāo)端口關(guān)閉,如果增加不為1或者2,就不能判斷目標(biāo)主機(jī)端口是否開(kāi)放,因此需要目標(biāo)主機(jī)ipid是遞增的而且足夠閑置。這里就不繼續(xù)寫(xiě)腳本。
判斷10.10.10.12是否可以當(dāng)做僵尸主機(jī)
kali@kal:/$ sudo nmap 10.10.10.12 -p445 --script=ipidseq.nse
隨機(jī)查找網(wǎng)絡(luò)中的僵尸主機(jī)
kali@kal:/$ sudo nmap -iR 100 -p 80 --script=ipidseq.nse
利用找到的僵尸主機(jī)掃描
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
網(wǎng)站欄目:目標(biāo)端口掃描方法總結(jié)
當(dāng)前地址:http://muchs.cn/article2/jpjdoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、企業(yè)建站、定制網(wǎng)站、商城網(wǎng)站、微信公眾號(hào)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)