★我要吧★

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

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

[复制链接]
发表于 2016-2-14 09:25:04 | 显示全部楼层 |阅读模式
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)5 `- z$ {5 ^; l, f# u9 Q! B
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。
9 q/ j2 H1 F: u: b1 i. F" r2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。. F2 }9 i, a- y
3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。
* p. |8 R7 l' W" w1 F' E0 Q! B$ i0 b4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。
  y8 f) l% }/ ]7 w5 @! J) C2 _2 V/ K# U6 @7 U% e2 P) a* f- \
+ h; Y1 S. Y* v! u. c+ w
# -*- coding: cp936 -*-
: ^9 `2 ~8 o) K1 C4 e8 K- d; D  Q; Mimport pcap ,struct
6 M4 M+ G* _1 _1 s" J( [
8 F" m: A; J: Hpack=pcap.pcap() . P* _- q! ~2 K7 w" T5 n# z8 @# l: ?
pack.setfilter('udp')1 o3 M3 v: L( Y
key=''. g1 A2 G) h8 K/ A
for recv_time,recv_data in pack: 2 i0 D5 o% H3 s0 E0 E5 z7 ^
  recv_len=len(recv_data): ?+ l0 K( }/ U6 s* m4 Q
  if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):' F) w- H! h" m( u  r% C; P6 H
     print struct.unpack('>I',recv_data[49:53])[0]* n9 N) p: S! L: M" {
     print '登陆了', j- |( a0 x+ x# V
  elif recv_len == 55:: Z* C% l3 q  j# l5 ~* v9 o( q7 c
     print struct.unpack('>I',recv_data[49:53])[0]
) M* j! q% P% _) S$ l2 y     print '登陆了'" G# P" H) E9 v! Z
+ P% d( J  }5 c- z3 Y8 R$ J# W
* y; b: W( E& G0 C" x
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-; x/ n7 B: s, ?" A, Y0 r
好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。
4 g0 L# s8 a, [0 m8 Q! q3 ?这里付上我的抓屏结果
7 y& h( {. ~" i5 b# bD:\socket-qq>;sniffer-QQ.py8 M  c% S9 B' D; r& R
278333853# [" o8 x' f: j9 M; M) v
12345$ E8 ^! |) a, ]6 e! e  i" t
1234567890! {% K' v, z; ~0 m9 c) p
1234567890
5 i7 B' u) O( v- ~0 \1234567890
% K& I+ ]4 c. ]- B, l! N% x278333853
: v+ _; |: n/ ~+ {( A3 C1234567890
: O+ {: h4 p/ g( L* B  |1234567890
: M( s# ]$ A6 `8 s) T; R278333853
, s6 M& R" T4 j2783338534 G! X4 V2 t% ?

" y$ Y7 @2 x2 s. K9 A& e: Z+ }5 P4 w  v  H6 U
利用的什么原理呢。# g- C2 `$ s+ b0 b1 |+ u
QQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。
$ X* x  w( G! V4 a4 V0 _) D% [6 ?" o; d* A9 f
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

GMT+8, 2025-12-14 20:10 , Processed in 0.056473 second(s), 19 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

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