本帖最后由 willJ 于 2014-12-21 11:58 编辑
前段时间研究了下WIFI蜜罐相关的东西,遇见了很多坑,也总结了一些东西与大家分享。此文记录了我为了捕获指定数据的经过。
目的:捕获某APP的网络数据
Tcpdump抓包方式
Tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。 1.首先你的安卓手机得拥有root,手机开启调试模式与电脑连接。 2.将tcpdump拷贝到安卓的/data/local/tmp目录,adb命令如下:adb push c:\wherever_you_put\tcpdump /data/local/tcpdump。 3.修改tcpdump属性为可执行,adb命令如下:adb shell chmod 777/data/local/tcpdump。 4.进入adb模式,adb命令如下:adb shell 5.获得root权限,命令如下:su 6.到达指定目录/data/local/tmp,命令如下:cd /data/local/tmp 7.启动tcpdump开始抓包,命令如下:./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap。参数说明: # "-i any": 监听任何网络端口 # "-p": 混杂模式 # "-s 0": 捕获整个包 # "-w": 将数据写入指定文件 现在已经开始抓包了,停止抓包后将文件/sdcard/capture.pcap拷贝出来(adb pull /sdcard/capture.pcap d:/),使用wireshark打开即可对其网络数据包分析了。 这种方式抓包我个人觉得很不方便,不过也可以很完全的捕获网络数据包,但是缺点很明显,手机系统为安卓,手机得root,反复的执行adb命令操作很是麻烦,而且不能在用户不知道情况下截获数据包,当时不知道别的方式就用这种方式分析网络数据包。
Fiddler抓包方式
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。 1. 电脑与手机连入同一局域网。 2. 打开Fiddler, Tools->Fiddler Options 。 (配置完后记得要重启Fiddler)。 3. 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求。 4. 选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来。 5. 将手机设置代{过}{滤}理为fiddler机器的ip,端口为8888。 此时已经完成了HTTP抓包设置,如果要捕获HTTPS的包,只需要在手机端访问IP:8888,然后安装证书即可。 这种方式设置以及操作都很简单,而且不限制平台(IOS Android PC…),均可捕获HTTP以及HTTPS,而且Fiddler还有更多强大的功能方便自己在测试调试时候使用,但是不能在用户不知道情况下截获数据 包,不可能让目标机器设置代{过}{滤}理,然后数据走向你的电脑。
Windows下WIFI蜜罐 最后想到了架设一个无密码WIFI,让目标自动连接后再来分析其机器的网络数据。 工具:腾讯全民WIFI(360随身WIFI,猎豹WIFI等)
本人使用腾讯全民WIFI搭建了一个无密码热点。使用wireshark监听本地网卡数据,等待目标机器连接。 这里使用吾爱 破解的客户端APP做了测试,连接此免费WIFI蜜罐后,顺利抓到需要的东西。 只要APP使用明文传输数据,在WIFI蜜罐下均可能泄露重要信息,有人可能会说使用HTTPS传输就安全,下面将演示由于编码不规范造成的HTTPS在WIFI蜜罐下也可能被嗅探。
Windows下WIFI热点嗅探HTTPS原理与实现 在安卓APP中通常在进行账号密码验证中使用HTTPS,谷歌提供了安全的API供开发者调用,但是开发者由于各种原因未能按照规范进行使用,导致自身产品出现漏洞。原理说明,最重要的一点就是开发者未能严格校验证书导致漏洞存在,谷歌提供的HTTPS API要求开发者对签名CA是否合法,域名是否匹配,是不是自签名证书,证书是否过期做检查,但是大多数开发者实现的代码如下: [Java] 纯文本查看 复制代码 class ae implements X509TrustManager
{
ae(ad paramad)
{
}
public void checkClientTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString)
{
}
public void checkServerTrusted(X509Certificate[] paramArrayOfX509Certificate, String paramString)
{
}
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
} 这段代码已经很清晰的暴露了问题。 实现WIFI蜜罐下嗅探HTTPS 开启两台 虚拟机,一台用于用于搭建WIFI蜜罐,一台用于嗅探HTTPS。WIFI蜜罐如上一步已经搭建完成,在另外一台机器开启cain。 首先激活网卡 选择ARP 选择欺骗对象,左边选中网关,右边选择欺骗对象(也就是搭建WIFI蜜罐的机器)。 选择HTTPS,输入需要嗅探的HTTPS IP,下载证书,然后进行欺骗。环境已经OK,然后坐等数据吧。Cain很人性化的将HTTPS请求与返回数据都捕获到了。 从刚开始不知道如何捕获移动端网络数据包,到最后完成一次完整的HTTP以及HTTPS数据包也是花了大概一周时间,期间遇见了不少的坑,当然也在windows以及linux做了多次尝试,最后发现windows上面是最适合我的。现在移动端APP编码规范称次不齐,笔者已经在多款APP发现有这些问题,在这里也提醒大家不要去连接未知的WIFI,即使写明了密码,如果实在需要连接也不要使用密码操作等敏感行为。
|