同絕大多數的網路協議類庫一樣,scapy中依舊採取分層的檢視來對資料進行管理。
只需要偽裝的mac位址,這個由引數傳遞。
>>>icmp包在協議中的位置是處於乙個比較難分的,一直當做是ip擴充套件層來理解-^-ls(ether())
warning: mac address to reach destination
notfound. using broadcast.
dst : destmacfield ='
ff:ff:ff:ff:ff:ff
'(none)
src : sourcemacfield ='
00:00:00:00:00:00
'(none)
type : xshortenumfield
=0 (0)
因此想要傳送乙個偽裝的icmp,就需要先構築「下一層」的ip資料報了。
還是來看一下scapy中ip層的內容:
>>>也正是ip首部的內容-20個位元組的內容並不需要我們一一填充——尤其是chksum,當初花了不少時間來弄chksum,後來才發現原來checksum在scapy中是如此簡單(**中會展示出來)ls(ip())
version : bitfield =4
(4)ihl : bitfield
=none (none)
tos : xbytefield
=0 (0)
len : shortfield
=none (none)
id : shortfield =1
(1)flags : flagsfield
=0 (0)
frag : bitfield
=0 (0)
ttl : bytefield =64
(64)proto : byteenumfield
=0 (0)
chksum : xshortfield
=none (none)
src : emph ='
127.0.0.1
'(none)
dst : emph ='
127.0.0.1'(
'127.0.0.1')
options : packetlistfield
= ()
回到ip層,我們現在填充ip
src自然要使用乙個偽裝的ip了,這個是從引數獲取。
dst就是我們要欺騙的目的ip,也是從引數中獲取。
type就是1,也就是表明資料報是乙個icmp包。
在icmp包中,我們也只需要填充type型別——是請求(1)還是回顯(8)
完成了icmp包,我們加入資料—raw層,直接使用raw(『填充內容')來初始化乙個raw包。
117-25行,解析輸入變數#! /env/lib python
2import
sys3
importos4
from
scapy.all
import*5
from
usual
import*6
conf.vert =1
78if__name__=="
__main__":
9#get hwaddress\ip\gateway and init
10t_hw
=getmac()
11t_ip
=getip()
12gatemac
=getgateway(t_ip,t_hw,false)
13target ='
192.168.3.25'14
fakeip
=t_ip
15fakemac
=t_hw
1617
#parse the input
18for
i in
range(
1,len(sys.argv)):
19l
=sys.argv[i].split('=
')20if
l[0] =='
-t':21
target =l[
1]22elif
l[0] =='
-ip':23
fakeip =l[
1]24elif
l[0] =='
-mac':
25fakemac =l[
1]2627
pack_ip
=ip(dst
=target,src
=fakeip,proto =1
)28pack_icmp
=icmp(type =8
)29pack_ether
=ether(src
=fakemac,dst
=gatemac,type
=0x0800)30
#add info
31info
=raw(
'ip:'+
t_ip+'
mac:'+
t_hw +'
')32t
=str(pack_ether
/pack_ip
/pack_icmp
/info)
33s
=ether(t)34#
s.pdfdump("/home/jack13/trade.pdf")
35sendp(s)
27-31行,單獨生成各層物件
32-33行,整合各層物件,同時生成傳送包s。(這兩行就可以完成checksum的工作)
35行, 傳送偽裝資料
執行:sudo python send7.py -t=192.168.3.62 -ip=192.168.0.1 -mac=00:11:22:33:44:55
包是無法返回的,但是通過wireshark的抓包,我們可以看到乙個正確的包被傳送。
python 安裝scapy 安裝scapy時出錯
好的,所以我正在嘗試為python3安裝scapy,但是我遇到了一些問題 當我輸入這個命令時 pip install scapy 這是輸出 collecting scapy using cached scapy 2.3.3.tgz unpack scapy 2.3.3.tgz the member ...
環境搭建 Scapy
scapy是python寫的乙個功能強大的互動式資料報處理程式,可用來傳送 嗅探 解析和偽造網路資料報,常常被用到網路攻擊和測試中。它可 以代替hping,arpspoof.arp sk,arping,p0f,甚至是部分nmap,tcpdump和tshark。一 scapy安裝 2 安裝 3 公升級...
Scapy基本使用
scapy 是乙個強大的網路資料報操作工具。from scapy.all import from scapy.all import ip package ip dst www.163.com ttl 80 構造乙個ip包 package ip dst www.163.com tcp dport 80...