Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏
效果图:
Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!开发环境
Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!python2.7
依赖环境:scapy、geoip2(如果不需要获取对方的所在地可以屏蔽一部分内容)
基于scapy、geoip2
这两个依赖需要自己安装
版本内容:
QQ图片20180808144134.jpg
1.菜单方式
2.可以根据自己的要求随意抓包
3.使用geoip2 获取所在地和gps信息(开源版,数据会有误差)
4.可以发送QQ电话,QQ视频不管对方接不接都能获取对方的IP(如果手机和客户端QQ同时在线需要接通,远程协助(远程协助我没测试,理论上应该可以的)都可以获取对方的IP,发送图片和文件无法获取对方的IP
5.原则上不支持Linux,因为Linux没有QQ,geoip2 也可以不需要,要求附件大小,所以将代码充geoip2部分注释, 并删除掉geoip2 数据库。如果需要geoip2 请自行安装geoip2并打开代码中注释。
Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!使用步骤:
- python QQLocation.py运行
- 出现'监听中,请开始QQ通话..'请使用QQ 与对方进行QQ通话(QQ电话),并减少流量通信
- 当发现以后会在控制台进行打印
如果有报错,一般是那两个依赖包或者是没有安装 wpcap
Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!python QQLocation.py
!/usr/bin/python
-- coding:utf8 --
print u'''
正在加载相关模块请稍候...
'''
from time import sleep
import sys
import signal
import platform
import os
try:
from scapy.all import IP
from scapy.arch.windows import compatibility
from scapy.all import log_runtime, MTU, ETH_P_ALL, PcapTimeoutElapsed, plist
except:
print u'[>]没有安装scapy,需要安装scapy'
'''
如果需要geoip2 请打开此处注释
try:
import geoip2.database
except:
print u'[>]没有安装geoip2,需要安装geoip2'
'''
systemos = ''
判断当前系统
其实这里也没用 ,先写上后期可能会用上
def UsePlatform():
global systemos
sysstr = platform.system()
if(sysstr =="Windows"):
systemos = 'Windows'
else: # 其实不准备支持linux 因为linux 上没有QQ
if sysstr =='Linux':
print u'不支持Linux,因为Linux没有QQ'
else:
systemos = 'Windows'
UsePlatform()
清理屏幕
这里用不上, 清理掉屏幕以后 历史消息就没有了
def clearScr():
global systemos
if systemos == 'Windows':
cal = 'cls'
else:
cal = 'clear'
os.system(cal)
def PacketHandler(pkt) :
try:
if pkt.len==100:
sip = pkt.getlayer(IP).src
dip = pkt.getlayer(IP).dst
print sip+'--->'+dip
排除局域网 10. 172. 192.168.开头
if not dip.startswith('10.') and not dip.startswith('172.') and not dip.startswith('192.168.'):
print u'对方可疑IP',pkt.getlayer(IP).dst
getGps(dip) 如果需要geoip2 请打开此处注释
else:
pass # 不做任何处理
print u'未发现数据包'
except Exception,e:
print e
'''
如果需要geoip2 请打开此处注释
def getGps(ip):
GeoDB = geoip2.database.Reader('./db/GeoLite2-City.mmdb')
res = GeoDB.city(ip)
address = res.country.name + " " + res.city.name
latitude = res.location.latitude
longitude = res.location.longitude
print u'所在地:',address
print u'GPS信息:',latitude,',',longitude
pass
'''
def Menu():
clearScr() // 这里如果清理了 历史消息就看不到了
print u'}----------------SecQuanQQLocation----------------------{'
print u'[+] 1. 开始'
print u'[+] 2. 清理屏幕'
print u'[+] 99. 退出'
print ' '*5
input = raw_input('SecQuan > ')
input = raw_input(unicode('请输入编号:','utf-8').encode('gbk'))
if input == '1':
runGo()
elif input == '99':
sys.exit()
else:
clearScr()
Menu()
def quit(signum, frame):
print ''
Menu()
def runGo():
print u'监听中,请开始QQ通话(电话/视频都可以)...Ctrl+C 结束监听'
compatibility.log_runtime = log_runtime
compatibility.MTU = MTU
compatibility.PcapTimeoutElapsed = PcapTimeoutElapsed
compatibility.ETH_P_ALL = ETH_P_ALL
compatibility.plist = plist
signal.signal(signal.SIGINT, quit)
signal.signal(signal.SIGTERM, quit)
循环监听
while True:
compatibility.sniff(100,prn = PacketHandler,filter="udp")
print ''
sleep(1)
print u'已停止监听'
其实没啥用 就是为了让他输入一次 好知道可以开始了
enter = raw_input (unicode('模块加载完毕,输入任意键继续:','utf-8').encode('gbk'))
clearScr() # 进入系统清理一次屏幕
UsePlatform()
Menu()
runGo()
本程序仅限用于安全测试,由使用者造成的任何后果自行承担!
Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!