解读安卓渗透神器DroidSheep看ARP欺骗攻击

关于DroidSheep

DroidSheep是一款Android平台上的安全测试工具,可以用来进行web session劫持等安全测试。它能够监听通过无线传输的HTTP包并且提取其中的会话ID。

关于ARP欺骗攻击

ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。局域网通信是通过MAC地址作为门牌号的,我们通过ARP投毒实现针对主机的欺骗。

测试环境

Mx4 (检测机)

Xiaomi(攻击机)

网关

ARP欺骗攻击测试

开启DroidSheep欺骗并劫持会话

Wireshark抓包

攻击机发送arp欺骗包,192.168.0.1 at 90:36,网关欺骗。这是受害者(笔记本)收到arp包将修改自己的arp缓存。

登陆百度

所以说使用公共WiFI还是很危险滴,说不定你喝着咖啡听着歌就被对面的屌丝修改了微博头像。

防御

1,安卓手机防火墙droidsheep guard,当检测到攻击的时候可以弹出提示框并关闭wifi

2,电脑客户端360 arp防火墙之类的软件

3,使用VPN隧道

4,路由器做MAC地址绑定

继续分析

在会话管理缺陷中存在会话固定Session Fixation,Cookie 欺骗,会话劫持Hijacka Session。DroidSheep使用的是哪一种方式呢?下面我们继续分析。

1,会话劫持

开发人员在开发他们的自有会话ID 时经常忘记整合的复杂性和随机性,这些因素对安全来说是必须的。在用户登录的时候Session 生成会话ID,存储在客户端Cookie 的某个字段中。我们可以通过注册许多个账号然后看其规律使用暴力破解session。Wengoat中使用J-Baah 预测WEAKID的数值,当然这是在Cookie很简单并有规律可循的条件下完成,现在面对复杂的cookie几乎不可能啦。

2,Cookie 欺骗

使用记住我功能会在本地保存cookie信息,通过cookie认证就不需要再输入密码了。不过如果cookie被截获攻击者就可以绕过密码验证实现攻击,一般通过XSS跨站攻击获取cookie。

3,会话固定

服务器通过每个用户的唯一的Session ID 来确认其合法性。如果用户已登录,并且授权他不必重新验证授权时,当他重新登录应用系统时,他的Session ID 依然是被认为合法的。在一些程序中,可能会在GET-REQUEST 请求中传递Session ID。这就是攻击的起点。

一个攻击者可以用一个选定的 Session ID 给受害人发送一个超链接。例如,这里有一个准备好的邮件,它看起来像是一个从应用程序管理员发来的官方邮件。如果受害者点击了这个链接,并且该受害者以攻击者指定的ID 登录了系统,那么攻击者可以不经授权直接使用与受害者相同的ID 访问该页面。

Webgoat案列

1,添加欺骗链接

2,受害者点击链接登陆

3,窃取会话

替换为&SID=ruo

PHP演示

设置php.ini 使接受get传入PHPSESSID的值。

或者代码加入

设置会话页面并创建session_id

查看$_SESSION值,攻击者没有PHPSESSID是无法查看到username值的。

1,攻击者发送的欺骗链接

受害者访问链接后将PHPSESSID设置为1234

2,攻击者使用这个PHPSESSID访问页面即可恢复刚建立的会话

回到DroidSheep,我们将截获的信息通过邮件发送出来(Export via email)。

经过firebug删除cookie尝试,发现BDUSS是认证的字段,我们添加截获的cookie刷新下就登陆啦。

ARP欺骗都是局域网很成熟的攻击手段了,比如常用的网络执法官,360的限室友网速之类的软件几乎都是基于欺骗来的。

不过这还可以变化出花样繁多的欺骗,实现简单的欺骗后使用数据转发sniffer流过的数据截获用户名密码,在不被察觉的情况下你需要做好NAT转发,形成中间人攻击。

ARP欺骗存在网络数据包比较多,不稳定,容易被反追踪,这时候你可以考虑使用DNS投毒。