★我要吧★

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

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

[复制链接]
发表于 2016-2-14 09:25:04 | 显示全部楼层 |阅读模式
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口)
1 B) K  O9 W% g  @. I2 S9 \! B1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。3 d) Q, R2 |3 s* {9 e
2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
/ V8 a6 [, \6 W3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。
6 e+ Y; r) ^. v5 \$ W  V: O4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。4 z2 l7 V. I/ C3 X  Y
) ]  j' J  U* A) _) k: e/ j* o$ Q/ G$ ?

8 @/ l- `# P( U6 X# -*- coding: cp936 -*-; r  G) |) v1 c" S4 F+ c9 v* B
import pcap ,struct
$ _1 c, F# X) P% L/ ?& |5 ~' v% h7 U/ i1 {; X8 f  A" Z
pack=pcap.pcap() 1 P# L# H3 a! l
pack.setfilter('udp')" l  H$ ?9 i) T' t" e$ t4 J+ ?) T
key=''
2 K0 v2 F( l* Cfor recv_time,recv_data in pack:
8 b- ^+ R$ b$ Z5 v+ `  recv_len=len(recv_data)' @3 k0 ~4 O  Y8 `. C
  if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):3 q7 q  p! V6 F) b7 f! y
     print struct.unpack('>I',recv_data[49:53])[0]
6 h6 g0 p3 u4 |8 [     print '登陆了'2 ~1 z" |3 [' U, u% J
  elif recv_len == 55:' k! G( ]0 b! k1 M, k0 J) @
     print struct.unpack('>I',recv_data[49:53])[0]
0 k" Z1 d5 }" }" x' f$ ]     print '登陆了'
: I: q7 m; s" K1 G
7 ?0 d! T  I3 Z) F- m- Q) S( X; A
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-
9 W1 O# E9 M3 t好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。
: b5 V1 U6 w) `9 G% I% d这里付上我的抓屏结果! m" F+ S! ^" X+ M
D:\socket-qq>;sniffer-QQ.py
) ]* u; G% x# w& s2783338533 h. w/ L- U3 ]7 Q7 t! P
123450 O. P5 s9 t" n3 Z$ j
12345678907 w% w% @% w) l& q* X3 M
1234567890
. }, y/ i/ F$ d) h$ R1234567890
, x" m- r! }# A7 [! t: ]278333853
6 s# T- v5 M5 t: h, Q1234567890
& x" t% h" o! ^0 q& g0 M7 H9 ~# x2 a1234567890
; u# L6 P. T! n; E' n0 ~# f3 c278333853
. u$ i4 W) n: `$ Z+ Q9 z1 c278333853
6 b" f9 }. K4 N/ |8 J& g7 P9 m7 a! i, j% ^1 Y% {
1 e; C. \% U! a+ n3 z
利用的什么原理呢。
7 s1 C8 t) F, A% a) ?QQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。
+ C$ T4 B3 M" _* T7 X- {' H
! G: Q5 }+ e% T4 \+ d0 ~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

GMT+8, 2024-11-24 21:37 , Processed in 0.061996 second(s), 19 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

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