首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python打造警方捉拿要犯的网络神器,QQ定位系统让罪犯无处藏身!

效果图:

开发环境

python2.7

依赖环境:scapy、geoip2(如果不需要获取对方的所在地可以屏蔽一部分内容)

基于scapy、geoip2

这两个依赖需要自己安装

版本内容:

1.菜单方式

2.可以根据自己的要求随意抓包

3.使用geoip2 获取所在地和gps信息(开源版,数据会有误差)

4.可以发送QQ电话,QQ视频不管对方接不接都能获取对方的IP(如果手机和客户端QQ同时在线需要接通,远程协助(远程协助我没测试,理论上应该可以的)都可以获取对方的IP,发送图片和文件无法获取对方的IP

5.原则上不支持Linux,因为Linux没有QQ,geoip2 也可以不需要,要求附件大小,所以将代码充geoip2部分注释, 并删除掉geoip2 数据库。如果需要geoip2 请自行安装geoip2并打开代码中注释。

使用步骤:

python QQLocation.py运行

出现'监听中,请开始QQ通话..'请使用QQ 与对方进行QQ通话(QQ电话),并减少流量通信

当发现以后会在控制台进行打印

如果有报错,一般是那两个依赖包或者是没有安装 wpcap

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()

本程序仅限用于安全测试,由使用者造成的任何后果自行承担!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180815A0X6WR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券