亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python使用scapy模塊實現(xiàn)ping掃描的過程詳解

瀏覽:6日期:2022-06-29 13:57:00
關于scapy

Scapy 是一個可以讓用戶發(fā)送、偵聽和解析并偽裝網(wǎng)絡報文的Python程序。這些功能可以用于制作偵測、掃描和攻擊網(wǎng)絡的工具。換言之, Scapy 是一個強大的操縱報文的交互程序。它可以偽造或者解析多種協(xié)議的報文,還具有發(fā)送、捕獲、匹配請求和響應這些報文以及更多的功能。 Scapy 可以輕松地做到像掃描(scanning)、路由跟蹤(tracerouting)、探測(probing)、單元測試(unit tests)、攻擊(attacks)和發(fā)現(xiàn)網(wǎng)絡(network discorvery)這樣的傳統(tǒng)任務。它可以代替 hping , arpspoof , arp-sk , arping , p0f 甚至是部分的 Namp , tcpdump 和 tshark 的功能

對于我來言,我認為scapy最強大的特點就是scapy解碼不解釋,比如我們在用nmap進行掃描的時候,結果往往是nmap已經(jīng)根據(jù)返回包的特征,然后輸出自己推測的結果,但是scapy是直接輸出返回包的內(nèi)容,這樣我們可以判斷的更加準確

實現(xiàn)過程

接下來我將詳細的介紹如何使用scapy模塊編寫一個簡單的內(nèi)網(wǎng)掃描工具。

我先說一下我的腳本整個大致流程:

1.首先我們應該編寫出能夠像單個IP發(fā)送ICMP包并接受回包的代碼

2.其次我們應該開啟多進程,從而讓該腳本可以快速掃描整個網(wǎng)段的主機存活情況

那么我們接下來就開始上面的流程。

單進程發(fā)包

首先我們需要導入scapy模塊,這里要強調(diào)一下,scapy的v2版本的導入與別的模塊導入方式不同,需要特殊的書寫方式,否則scapy模塊中的某些功能將無法使用

from scapy.all import *from random import randint

接下來需要構造我們的包,即我們要發(fā)送的ICMP包,首先了解一下scapy包的偽造

python使用scapy模塊實現(xiàn)ping掃描的過程詳解

對于scapy我們可以直接輸入scapy進入一個交互模式,其實這個交互模式本質(zhì)也還是python,我們來看一下包

python使用scapy模塊實現(xiàn)ping掃描的過程詳解

讀者可以看看我構造的這個包,我寫了三個協(xié)議層,第一寫其實是mac地址,如果我們只輸入Ether,那么就是默認的結果,這里的mac就是默認廣播形式,第二個我寫的是IP,也就是IP層的設置,可以發(fā)現(xiàn)其中的一些已經(jīng)填寫了默認值,我們要設置的其實主要就的dst,即目的地址,當然其他的想改一下也是可以的,比如說把ttl生存周期改成128,這也是沒毛病的,第三個我寫的是TCP,即我發(fā)送的包是TCP包,其中也有一些默認值,我們看到有個window,這個其實就是程序的進程號。

那么既然我們是ping包,我們就使用ICMP包,那么我們來看一下ICMP包

python使用scapy模塊實現(xiàn)ping掃描的過程詳解

看到ICMP的值更少一些,其中type表示這個包是請求包還是回應包。

那我們既然知道如何構造包了,那就動手構造一個

def scapy_ping_one(host): id_ip = randint(1, 65535) id_ping = randint(1, 65535) seq_ping = randint(1, 65535) packet = IP(dst=host, ttl=128, id=id_ip) / ICMP(id=id_ping, seq=seq_ping) / b’I am Ameng’

這里我設置的id號其實不設置也可以,這個就是標識包的信息,后面的字節(jié)流也可以不填寫,不影響結果

既然構造完了,那么我們就要發(fā)送,如何發(fā)送呢?這就用到了scapy中的一個函數(shù)sr

sr() 函數(shù)是用來發(fā)送數(shù)據(jù)包和接收應答。該函數(shù)返回一對數(shù)據(jù)包及其應答,還有無應答的數(shù)據(jù)包。 sr1() 函數(shù)是一種變體,用來返回一個應答數(shù)據(jù)包。發(fā)送的數(shù)據(jù)包必須是第3層報文(IP,ARP等)。 srp() 則是使用第2層報文(以太網(wǎng),802.3等)

這里使用sr1()

ping = sr1(packet, timeout=0.2, verbose=False)

介紹一下參數(shù),其實看名字前兩個沒什么問題,我這里主要說一下第三個參數(shù),第三個參數(shù)的意思是說關閉詳細信息,因為我們只看結果,這樣界面更整潔

到這里發(fā)送單個包并接受單個包的ping代碼已經(jīng)實現(xiàn),整體代碼如下:

#!/usr/bin/env python3# -*- coding:utf-8 -*-# Author:Ameng jlx-love.comfrom scapy.all import *from random import randintdef scapy_ping_one(host): id_ip = randint(1, 65535) id_ping = randint(1, 65535) seq_ping = randint(1, 65535) packet = IP(dst=host, ttl=128, id=id_ip) / ICMP(id=id_ping, seq=seq_ping) / b’I am Ameng’ ping = sr1(packet, timeout=0.2, verbose=False) if ping: os._exit(3)if __name__ == ’__main__’: scapy_ping_one(sys.argv[1])多進程發(fā)包

這里主要是將單進程的代碼實現(xiàn)多進程,那么我們什么時候會用到多進程呢?我們一般都是判斷一個網(wǎng)段有哪些主機存活,所以我們一般的輸入格式都是這樣子的,比如:192.168.10.0/24,所以我們首先需要將用戶的這個輸入變成一個這個網(wǎng)段的各個地址,這里用到ipaddress模塊,可以自動實現(xiàn)這個功能

其次我們需要開啟多個進程來同時進行不同ip地址的ping檢測,所以我們引入multiprocessing模塊,開啟多個進程。

代碼如下:

#!/usr/bin/env python3# -*- coding:utf-8 -*-# Author:Ameng jlx-love.comimport timeimport multiprocessingfrom scapy_ping_one import scapy_ping_onefrom scapy.all import *import ipaddressdef scapy_ping_scan(network): net = ipaddress.ip_network(network) ip_processes = {} for ip in net: ip_addr = str(ip) ping_one = multiprocessing.Process(target = scapy_ping_one, args = (ip_addr,)) ping_one.start() ip_processes[ip_addr] = ping_one ip_list = [] for ip, process in ip_processes.items(): if process.exitcode == 3: ip_list.append(ip) else: process.terminate() return sorted(ip_list)if __name__ == ’__main__’: import time t1 = time.time() active_ip = scapy_ping_scan(sys.argv[1]) print(’存活的ip地址:’) for ip in active_ip: print(ip) t2 = time.time() print(’所用時間為:{}s’.format(int(t2 - t1)))

到此,一個簡單的ping掃描即可實現(xiàn)

運行結果

python使用scapy模塊實現(xiàn)ping掃描的過程詳解

到此這篇關于python使用scapy模塊實現(xiàn)ping掃描的過程詳解的文章就介紹到這了,更多相關python scapy實現(xiàn)ping掃描內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产亚洲精品国产福利在线观看 | 免费小视频网站 | 国产成人精品亚洲777图片 | 另类亚洲视频 | 日本特黄特黄刺激大片 | 精品黄色录像 | 国产最新凸凹视频免费 | 国产精品福利视频一区二区三区 | 一本高清在线 | 色综合天天色综合 | 欧美一级黄色毛片 | 免费在线一级毛片 | 日韩欧美黄色片 | 国产精选一区 | 国产福利在线观看一区二区 | 黄色网在线播放 | 国产成+人+综合+欧美 亚洲 | 久久综合久久综合久久 | 国产www在线观看 | 日韩成人在线影院 | 国产成人深夜福利短视频99 | 日韩精品一级毛片 | a毛片视频| 伦在线| 绝对真实偷拍盗摄高清在线视频 | 女的被到爽的羞羞视频 | 日韩毛片免费视频一级特黄 | 久久国产精品久久国产精品 | 中文字幕欧美视频 | 九九免费精品视频 | 网站在线观看 | 爱爱免费视频网站 | 国产在线精品一区二区中文 | 青草视频在线观看免费网站 | 狠狠色噜噜狠狠狠狠97不卡 | 亚洲www.| 中文字幕有码热在线视频 | 日韩高清不卡在线 | 久久久久无码国产精品一区 | 非洲特黄一级毛片高清视频 | 丝袜诱惑中文字幕 |