Drcom校园网认证系列(一) 抓包 (P版、D版)

drcom(俗称小地球)广泛用于各大高校的宽带认证,常见包括三个版本,5.2.0 的P、D、X版。
P版就是在普通的PPPOE拨号的基础上添加了一个客户端与服务器通信认证的过程。
D版直接通过客户端的接口与服务器建立连接。X版复杂许多,一般会先有802.1x认证再进行端口通讯认证。
本教程能够解决大部分的P、D版本,Alliot 学校只有这两个版本的测试条件,所以其他的版本就不用看了。

说明

本教程大部分内容来自 github 上 drcom-generic 开源项目,以及网络上各大牛的帖子与文章,大牛众多且出名,就不一一感谢与强调其版权。Alliot 只进行了测试与整理以及部分错误的修正针对小白更友好一点,由阅读者实操所产生的一切后果,一概不负责。仅供学习与交流,请勿用于商业用途!

所有用到的材料:链接:https://pan.baidu.com/s/1OG_n0jbBAdSk931N0smBCA 密码:ouf9

开始

确定所使用的客户端版本

打开学校的客户端,右上角可以看到ver5.2.1(*)
版本

电脑安装必要软件

python2.7(调试用到)、wireshark(抓包工具)、notepad++(修改代码用到),网上都有的,自己找一下,这里就不贴出来了。

网络抓包

1、 先断开网络,注销并关闭drcom客户端。
2、 打开wireshark,选中你联网用的那个连接。点击start!如图所示:
wireshark抓包
软件会进入如下界面
运行截图
现在打开drcom客户端,拨号连接并在线保持1分钟左右,然后注销,完全关闭drcom后,选择wireshark的停止抓包,选择File-save 选择保存路径,并重命名该文件为dr.pcapng (拓展名为.pcang)
完成抓包

对抓包后的数据进行分析

P版

1、 把下载的 drcom_p_config.pylatest-pppoe.pydr.pcapng 放入一个文件夹中,且将文件夹命名为a
2、 用 notepad++ 打开 drcom_p_config.py 把里边的filename的值改为dr.pcapng (改好了的就忽略) 并保存。

3、 右键我的电脑—属性—高级系统设置—环境变量—在系统变量找到path—编辑—新建—在框里输入python2.7的安装目录,并保存。关闭窗口。
4、开始-运行 cmd 进入命令提示符。输入文件夹所在的盘符,我的是在F盘 输入F:并回车。

1
CD a  

输入

1
python drcom_p_config.py > config.txt

cmd
5、进入到你的a文件夹,发现里面多了一个config.txt文件。用Notepad++打开(为避免不必要的麻烦,以下操作所有的文件全部用它)
得到的内容是类似这样的:

1
2
3
4
5
server = '*.*.*.*'

pppoe_flag = '\x00'

keep_alive2_flag = '\xdc'

全选复制
关闭,并把config.txt重命名为drcom.conf
5、打开latest-pppoe.py 将#CONFIG 到 # CONFIG_END 中间的部分粘贴成刚才的。
6、测试是否可用。
  ①打开命令提示符 将latest-pppoe.py拖进去并回车
  ②同时用电脑的宽带拨号进行拨号。看看能不能上网。可以的话,就说明抓包没错。

D版

与P版基本相同,不过用到的是 latest-wired.pydrcom_d_config.py
第5步得到的内容是类似这样的:

1
2
3
4
5
6
7
8
9
10
11
12
server = "192.168.100.150"
username = ""
password = ""
host_name = "LIYUANYUAN"
host_os = "8089D"
host_ip = "10.30.22.17"
PRIMARY_DNS = "114.114.114.114"
dhcp_server = "0.0.0.0"
mac = 0xb888e3051680
CONTROLCHECKSTATUS = '\x20'
ADAPTERNUM = '\x01'
KEEP_ALIVE_VERSION = '\xdc\x02'