★我要吧★

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

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

[复制链接]
发表于 2016-2-14 09:25:04 | 显示全部楼层 |阅读模式
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)3 d  I: Q: H& h! {; z) ~
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。: X# K. A; h' I. _
2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
, m. j( T0 }/ q3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。
: h. @+ V; A/ K# X) s5 s5 u6 R4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。2 r9 i. j! V! f, V8 I: i

3 L) r- X3 C# _; r% O% R& Q# e- X+ T1 \8 a$ Z
# -*- coding: cp936 -*-+ j& j+ S! N  @
import pcap ,struct3 }/ e& u+ Z2 P4 S* u6 w
' m3 v$ u9 y# D3 m3 j: ?# D
pack=pcap.pcap()
0 U" a4 z; @7 q8 \" \6 wpack.setfilter('udp')
) B8 f: W3 e3 z1 V8 f* I( mkey=''
- i- v; u( ~$ D" b" f# z! Y! V* ofor recv_time,recv_data in pack: - g" [. E7 `* P% r3 Z
  recv_len=len(recv_data); u# y( S$ f7 w2 }" V7 I
  if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):% e3 P; I7 f: l2 o5 L# ?# Y+ V
     print struct.unpack('>I',recv_data[49:53])[0]- y0 s0 H& _# J! ]" n. w
     print '登陆了'/ H, B2 S! v6 N% r3 x
  elif recv_len == 55:
: w7 P: s! `0 Y     print struct.unpack('>I',recv_data[49:53])[0]
) S6 E0 \- r  w0 _, H9 y1 g9 F% r     print '登陆了'
/ h0 }& C7 \3 ?( v0 w' O/ d! ]: P% i1 \
2 x$ J' ~! j! ~3 j" l% W# O- c% P6 E
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-
- x0 M7 D( q6 r9 C4 |好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。, }# F+ C+ N0 A. u  t
这里付上我的抓屏结果) x6 K% f; x  G6 C
D:\socket-qq>;sniffer-QQ.py. b$ m8 Z# v+ q+ Y0 L
278333853
/ @3 y5 W5 V+ H  v12345+ h. V' M) T; ?; V. w9 z
1234567890* k" C0 i6 l; T" `/ @1 P* p
1234567890) G- u5 z4 Y7 J. t* n+ [% E
1234567890
8 `9 p' I7 q6 j( ~9 K2 H278333853
- J9 c" |$ e6 g9 P0 v* t) L8 H1234567890
; v3 F- ?* p& [1234567890
3 K/ B; o; w% D- L0 F4 l278333853
) `# {) U1 J) a. @7 B/ z278333853
! y; j( C' H, L! X7 o5 }7 d0 T% s1 w  c, s5 ~  ?

6 `9 M. K& U3 M2 I3 b) C利用的什么原理呢。
( g  L& ]+ }& C/ y$ n9 C2 XQQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。5 }* N" F3 F& Q3 b  V7 q0 }! t

% l% ^! b0 ~6 `& @1 E
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

GMT+8, 2024-11-24 21:56 , Processed in 0.057073 second(s), 18 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

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