★我要吧★

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

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

[复制链接]
发表于 2016-2-14 09:25:04 | 显示全部楼层 |阅读模式
说到嗅探必须要讲到所支持的环境,并非只能对本机或者HUB环境才能使用。对于交换机,你可以指定一个口为嗅探口,从这个口能拿到所有端口的数据。如果这个交换是核心交换,那么你所能取到数据将更多。(三层交换一般都可以指定嗅探口); u+ ~9 q% r4 T1 m) M: R
1、如果你已经是个python爱好者你机器一定有了python的运行环境,如果你没有可以到www.python.org去下载一个。我使用的还是python 2.3。
" Y1 e4 V. {3 z! O2、这段程序需要pcap模块支持,你可以到http://monkey.org/~dugsong/pypcap/去下载一个,它有unix和win两个版本,请注意,win下他需要winpcap支持,如果你没有这个,请再下载winpcap。同样,如果你是在unix下使用,请下载libpcap。
: q; Z$ ^- P! T3、安装pcap没有太多说的,win下是个exe,直接运行。unix下直接make就可以了。
' r$ d) l4 k% ]/ I* F' r8 q$ Y4、打开你的记事本,将以下代码保存在sniffer-QQ.py这个文件中。$ C' P6 ^8 M( S$ |* b& O
% \. v% J6 O* g
5 c8 C! S& \3 S, L
# -*- coding: cp936 -*-! V& L! H2 \; k- i
import pcap ,struct
1 m. i& V1 F/ a; I+ L: l8 w1 p! M( d  M7 w2 p0 T. w3 u4 V- ]
pack=pcap.pcap() ) @7 v0 b5 B3 K0 H" G, q
pack.setfilter('udp')
5 P+ E, e4 H0 i: T! P3 ?# i. [) {key=''
0 U  e6 g2 C7 v( Lfor recv_time,recv_data in pack: # @, `. G+ {  I2 J, o: E
  recv_len=len(recv_data)
/ e  ]7 B& U( {/ r  if recv_len == 102 and recv_data[42]== chr(02) and recv_data[101] == chr(03):
: B$ `2 ~: x# y/ Z2 g     print struct.unpack('>I',recv_data[49:53])[0]
/ |2 k4 R2 \! V4 l     print '登陆了'
/ v0 V; g) O( `- R8 m  elif recv_len == 55:
" r8 [5 u8 d* \9 h: G( x8 w     print struct.unpack('>I',recv_data[49:53])[0]
% f" I# ]( R9 L; V     print '登陆了'
6 ]) h- ?% C" ?3 G2 Q9 s" E$ [6 I2 a/ L! x2 k- M
4 X; f9 _3 G7 R5 y6 y
如果你在*nix下运行,请将# -*- coding: cp936 -*-更改为# -*- coding: utf-8 -*-
& q! T4 x9 }' Z# v好了,你可以运行你的python程序了,试着登陆你的QQ。看你的QQ号码是否被抓下来了。2 N) o; g9 S8 d- T  K$ x
这里付上我的抓屏结果/ U% X: Z: U$ k* Q- I' y
D:\socket-qq>;sniffer-QQ.py
4 Y0 w! g! V& Q( p  i278333853. `+ H* u# X! ~6 K
12345
; Y% v  U2 l7 ]( f1234567890: c9 [0 t, _. |  j8 ^+ S- j( X3 D, i2 ^
1234567890
/ t/ \0 K, ?  o/ g* c, Z4 `# [12345678902 K5 f, Y$ a' Q6 w
278333853! P) J; _  z; n& R; @& I) P
1234567890( o4 i! m9 d& v- V
1234567890
3 u. T' \# L, ]* w5 [9 Z. Y278333853
9 R3 s- U6 P+ P! [278333853
4 v! y1 v) P% L% g* U2 x  Q3 e: b3 B2 L
) y+ t5 P# w* \+ n. P
利用的什么原理呢。; Y- o6 t. S8 w/ x  c
QQ使用udp协议来和服务器进行通讯,当数据包在传输的时候。udp报文被抓了下来。而登陆包是以0x02开头0x03为结尾的,我们先判断是否为正确的登陆包,当然,登陆包的长度都为102个字节。我们取出结构中特定的位置,就是你的QQ号码了。6 F8 o: B' A* S5 ~* M, Y3 z

/ P: c9 U* c( y. m2 L  p5 i
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

GMT+8, 2024-5-14 20:42 , Processed in 0.057162 second(s), 18 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

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