电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

python使用scapy模塊實現ping掃描的過程詳解

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

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

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

實現過程

接下來我將詳細的介紹如何使用scapy模塊編寫一個簡單的內網掃描工具。

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

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

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

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

單進程發包

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

from scapy.all import *from random import randint

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

python使用scapy模塊實現ping掃描的過程詳解

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

python使用scapy模塊實現ping掃描的過程詳解

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

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

python使用scapy模塊實現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號其實不設置也可以,這個就是標識包的信息,后面的字節流也可以不填寫,不影響結果

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

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

這里使用sr1()

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

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

到這里發送單個包并接受單個包的ping代碼已經實現,整體代碼如下:

#!/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])多進程發包

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

其次我們需要開啟多個進程來同時進行不同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掃描即可實現

運行結果

python使用scapy模塊實現ping掃描的過程詳解

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 渗透仪-直剪仪-三轴仪|苏州昱创百科| 车载加油机品牌_ 柴油加油机厂家 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 14米地磅厂家价价格,150吨地磅厂家价格-百科 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 小型单室真空包装机,食品单室真空包装机-百科 | 魔方网-培训咨询服务平台| 正压密封性测试仪-静态发色仪-导丝头柔软性测试仪-济南恒品机电技术有限公司 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 钢制暖气片散热器_天津钢制暖气片_卡麦罗散热器厂家 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 烟台游艇培训,威海游艇培训-烟台市邮轮游艇行业协会 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 |