QQ数据包分析
- 格式:ppt
- 大小:2.05 MB
- 文档页数:14


具体抓包步骤
一、首先打开wireshark进入主界面
二、点选Capture Options 快捷键Ctrl+K 进入捕捉过滤器界面
三、设置捕捉过滤器抓包方式为Capture packets in pcap-ng format混乱抓包,(Capture Filter具体过滤命令见wireshark详解,)
四、点选Start开始进行抓包
具体捕捉过滤设置如下:
Wireshark抓包开始运行后,我们就可以打开我们需要抓包分析的应用了
(在这之前,如果对端口号和IP不熟悉的用户,可以先打开路由web管理界面的内网监控看一下正在运行的连接,并记录下来)
五、ikuai路由内网监控连接状态介绍
如图所示,在系统状态下的内网流量监控里的某个IP下的终端连接详情里,我们可以看到某个IP下这台机器目前正在运行的一些网络连接的详细信息。在这里我们着重讲下连接状态的定义
1、已连接 正在连接的数据流
2、等待 等待转发或连接的数据流
3、-- 或无状态 无交互性连接,例如UDP连接
4、未定义 未经路由向外网进行转发或者传输的数据连接。例如内网数据通信
六、具体针对某个软件进行抓包分析的步骤与过程
1. 具体步骤
完成了上述操作后,我们运行需要抓包分析的软件(我们已迅雷为例)
之后我们需要再次查看终端连接详情
在这时我们可以看到,相对于运行迅雷以前的终端连接详情里,我们这里多出了一些链接,这些链接就是我们需要在wireshark里需要过滤分析的迅雷的数据连接了。在这个例子里我们可以看到,在协议名称里,迅雷的协议已经成功识别,但是,在我们真实操作中,需要抓包分析的绝大多数软件的协议,在这里会被识别为:未知协议或错误为其他一些应用的协议,比如明明开启的是迅雷下载,但是协议里被识别为某个游戏,在这时,我们就需要根据抓包前记录的终端连接详情对比运行软件之后的进行对比,出现未知协议或错误协议名称的进程是否属于我们需要分析的软件进程。(在这里我们建议对协议的端口号或IP不熟悉的用户,在抓包分析师,关闭所有需要网络连接的程序,已便于判断)如果确定是我们需要抓包的软件的进程的话,我们就可以在wireshark进行过滤分析了。
【智能路由器】ndpi深度报文分析之协议分析器
ndpi协议分析器结构框架
每个协议分析器都必须定义一个独有的id,例如:
/*ndpi_protocol_ids.h*/
#define NDPI_PROTOCOL_QQ 48
1
2
协议分析器格式
#include "ndpi_utils.h"
#ifdef NDPI_PROTOCOL_QQ
.....
#endif
协议分析器的初始化函数,初始化函数中调用ndpi_set_bitmask_protocol_detection来输入自己的注册信息,以及处理数据包的类型
void init_qq_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_int32_t *id,
NDPI_PROTOCOL_BITMASK *detection_bitmask)
{
ndpi_set_bitmask_protocol_detection("QQ", ndpi_struct, detection_bitmask, *id,
NDPI_PROTOCOL_QQ,
ndpi_search_qq,
NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_UDP_WITH_PAYLOAD,
SAVE_DETECTION_BITMASK_AS_UNKNOWN,
ADD_TO_DETECTION_BITMASK);
*id += 1;
}
一个回调函数,用来处理数据包,这个函数就是初始化中注册的函数,这个函数将细分情况,然后交给实际的分析函数,这里分别是ndpi_search_qq_udp和ndpi_search_qq_tcp。虽然也可以直接在这里分析处理,但这样会显得层次结构不清晰
实验2 wireshark或sniffer抓包软件使用实
本次实验使用wireshark抓包软件。开启的应用程序有:IE,QQ, QQ音乐。过滤的UDP的报文。
结果:
抓取的报文:
14 2.915765000 tencent_private DFAUT QQMusicExternal.exe 222.18.168.170 119.177.224.41 UDP 121 Source port: http Destination port: hosts2-ns
即第14号报文,时间为2.915765000,应用程序名称:tencent_private,应用哈希:DFAUT,
应用程序模块:QQMusicExternal.exe,源地址:222.18.168.170,目标地址:119.177.224.41,协议:UDP,包长度:121,信息:源端口:http;目的端口:hosts2-ns。
结果说明:链路层:以太网;网络层:IP协议;传输层:UDP;应用层:qq的私有协议。
详细情况:
展开后的情况:
(由于此段最后一项过长不好截图,故将其复制过来了)
Frame 14: 121 bytes on wire (968 bits), 121 bytes captured (968 bits) on interface 0
Interface id: 0
Encapsulation type: Ethernet (1)
Arrival Time: Dec 3, 2013 11:15:50.371006000 中国标准时间
Time shift for this packet: 0.000000000 seconds
Epoch Time: 1386040550.371006000 seconds Time delta from previous captured frame: 0.010828000 seconds Time delta from previous displayed frame: 0.010828000 seconds
QQ⼤盗-巧⽤clientkey
场景:
1.将程序发给好友,好友打开 qq昵称就会被秒改为”账号已被盗“。
2.将程序运⾏在⾃⼰的电脑,让那些随意借⽤电脑看⽚聊天的室友产⽣⼀个觉悟:乱使⽤别⼈电脑很可能会泄露隐私。
思路:
通过数据包模拟⽹页中的qq快速登录,拿到登录凭证(Cookie)修改qq昵称 实现账号被盗的假象。
1、local_token:
qq快速登录是基于qq的客户端实现的,qq客户端启动时会⽣成⼀个local_token(保存在本地的⼀个钥匙),通过local_token访问qq客户端的本地服务器(4301端
⼝)可以获取到电脑上登录的所有qq账号。
2、clientkey:
仅仅知道qq账号肯定是⽆法登录的,还要拿clientkey。可以把clientkey理解成密码,qq客户端登录成功时会⽣成这个值,每个成功登录的账号都有⾃⼰的clientkey
相互匹配,只要拿到账号的clientkey就可以偷偷快速登录了。
3、cookies:
前⾯两步其实都是在本地⽹络下完成的,验证于qq客户端的本地服务器。现在提交uin+clientkey模拟快速登录是需要腾讯的远程服务器来验证的,验证通过就可以
拿到登录凭证了(Cookies)。
4、ldw:
通过前⼏步我们已经拿到登录凭证了,可以为所欲为访问腾讯所有web端的服务了,现在我想修改账号的昵称。
我选择了通过qq个⼈中⼼的⼀个接⼝修改昵称,这个接⼝需要⼀个ldw值,并不复杂,⼀个get请求就能拿到。
实现:
以下使⽤python编程语⾔操作。
from urllib import request
from http import cookiejar
import json
import re
opener=None
cookie=None
local_token=None
json_uins=None
def modNick(index,nick):
clientuin=json_uins[index]['account']