★我要吧★

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

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

[复制链接]
发表于 2016-2-14 09:25:04 | 显示全部楼层 |阅读模式
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)* \- p" F7 u0 ~. z* p
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。
5 x* u8 r. k; |' c2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
6 A. s0 F! H2 E* X3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。# q# p) C* D2 K4 d
4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。
+ G0 R- ?: ?; ^1 [( V/ N0 R/ a( P' i3 w9 J/ Q0 ?0 A9 Z5 [6 ^7 ^
0 c" v+ e- A/ x
# -*- coding: cp936 -*-
2 N- d! K8 N" Uimport pcap ,struct4 F1 g% S& d& f7 T1 s
) ]4 Z9 A& e9 B2 D
pack=pcap.pcap()
0 E# K/ x, Z' H% I: Kpack.setfilter('udp')
* L' D) r+ f/ Q$ L: x( X- V; P3 @, D8 okey=''
9 @) `* u- ~3 d5 s1 z7 u1 Ffor recv_time,recv_data in pack: 2 x3 }6 E" f) w. g. c6 V
  recv_len=len(recv_data)$ V. i  `& |4 o0 F+ y) \, ]8 o
  if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):3 _3 R) P7 e" v/ R2 E6 O* E* a1 F/ o
     print struct.unpack('>I',recv_data[49:53])[0]) A; o8 y- I% ~5 e) N5 K+ B  B. M
     print '登陆了'# A( Y5 Q& Z# }: }. L% G" |
  elif recv_len == 55:6 B/ m9 ^& F* e$ w; }
     print struct.unpack('>I',recv_data[49:53])[0]
0 y5 H) a$ x% |9 f! D     print '登陆了'
% p, _/ B7 N0 m' w/ D
4 {: x; I- C0 ^: ]3 z- I
; p8 |& h% b; X; `如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-- |$ X! l4 s! t0 I
好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。7 t; p3 B4 o" |7 F" R
这里付上我的抓屏结果6 J, A, C6 B: ^8 V
D:\socket-qq>;sniffer-QQ.py
% E; x/ {4 E8 p- [; x. G7 ]4 k278333853
; Y3 d1 _! k% i' ^6 F/ w12345+ V5 `% U% R& f1 t, u
1234567890
2 s- Z* Q: o. h, u12345678907 R" n: D- `& D' r3 ]0 O
1234567890
4 F9 p9 J" `% ?278333853
/ P! V$ g. {) N+ O3 i12345678907 s, T' }/ T9 I+ u7 ]- R* z& X7 a
1234567890
( `: ?* m& B; M% X0 N. I& K9 H278333853
' H3 l8 J; D+ E0 I  X: Y278333853
, y, L9 T2 {0 Z; M  |
1 y1 s4 m- T2 l5 m0 m- X# p5 Y. f9 e& N1 s, ~& Q
利用的什么原理呢。
' G* a5 k% c- o' T$ jQQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。
0 P# \! l- a- D6 u# ]# k  g$ I* ^/ s3 q7 C) p; g6 p+ a4 j' Y4 G
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

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

Powered by abc369 X3.4

© 2001-2023 abc369.

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