★我要吧★

 找回密码
 注册[Register]
搜索
qq空间相册密码查看为什么登陆后需要激活无法注册?

[技术] 使用python来嗅探局域网内的QQ号码

[复制链接]
发表于 2016-2-14 09:25:04 | 显示全部楼层 |阅读模式
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)8 `4 L; v* E: t
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。4 q* V8 b6 t% s& d. Y6 i
2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
) w# Z- F- f1 @( X0 H4 z3 E/ ]/ F3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。: F9 G& a! o* a) o
4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。$ D# o* V# }# L+ {0 K$ H) W: H7 E

: p4 L3 a5 _8 b. R, m# |9 E" K$ m8 l# w
# -*- coding: cp936 -*-  _( v( P! T5 q7 t+ w3 Z, O0 p
import pcap ,struct6 A" ^' @1 t9 v& z* P
' K" p, c6 X/ d) Q% u
pack=pcap.pcap()
0 I4 ~. q$ {5 k" Dpack.setfilter('udp')
+ }5 c# }8 t) ]$ E( R) `" @key=''
& ?" A* t$ F" B! d9 [) Nfor recv_time,recv_data in pack: 2 e  |' x* f% c# e7 p; M
  recv_len=len(recv_data)5 k8 C; X2 Y- l2 A" P5 J+ p
  if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):5 y8 Z' @, i; q. N  v% ?. T# c
     print struct.unpack('>I',recv_data[49:53])[0]
( f2 ^7 Q% \+ y3 D; o- c' _     print '登陆了'* H5 h! g# H# z+ Y# @" Q1 o
  elif recv_len == 55:1 E7 g  I. d3 X! R
     print struct.unpack('>I',recv_data[49:53])[0]
9 j) X7 h; V& V+ L! }     print '登陆了'$ t( K8 Q, Y8 s) w) N, x
* u0 ^0 t6 G& x- t7 {. H5 f5 A2 J
# S( c+ {/ }1 m  H9 [
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-' H2 q5 ?/ k9 u- r" a& D; L, S* B
好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。) |2 z* O+ m, A4 T' X: X! Z
这里付上我的抓屏结果
3 f* B: D1 b' T3 |' H' ~3 GD:\socket-qq>;sniffer-QQ.py
9 a: Q, j7 x" Y- Z, h) F1 Q278333853
0 B4 D  {0 B$ U6 g, H& _9 x: ?123457 [5 `5 P3 E" k% g8 O
1234567890
, J4 \3 [8 d7 ?; K' Z0 F0 d1234567890& V( p" A. G6 u/ n
1234567890
" @' _+ `8 E8 k5 S2783338533 r7 b5 t( I1 B
1234567890% x& @6 [2 I" H1 I, l9 u+ u
12345678907 L: l) A- _8 E" u! T9 z: a
278333853
, Z  C: a/ D( E# X0 K* ^9 m278333853
% E+ |! l) Y! o9 W' O. j$ [3 Q( x7 h4 @9 K: e2 e/ q

" A3 W. S- r) V$ E2 O+ D% l利用的什么原理呢。6 u3 \$ i) t4 m: R% c4 u' u3 L: m
QQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。
5 _1 `4 O1 N5 U: F2 d- u8 c  x
$ h& ~, t4 K0 O' F" {  |. X
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

QQ|手机版|小黑屋|☆我要吧☆ ( 豫ICP备13016831号-1 )

GMT+8, 2025-12-19 19:39 , Processed in 0.120913 second(s), 19 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

快速回复 返回顶部 返回列表