0x00,前言和环境

前言

免费 Wi-Fi 下的安全性我们自然清楚,一不小心就会被看到胖次,无论是否是 https。当然,如果被攻击者很敏感的发现该是 https 的地方不是 https 就停止登录,那么自然无妨。不过令人遗憾的是大多数人没这个意识,免费无线网的诱惑远大于浏览器上爆红的恐惧,所以 GG。

环境

渗透环境是完全控制路由器,攻击者和被攻击者在同一个内网。实际上,当黑阔们完全控制路由器时,可以直接在路由器上抓包进行中间人攻击,这个反而比 ARP 欺骗之类的攻击手法方便很多。不过许多路由器压根没有命令接口,烂的很ow<

被攻击主机:

IP: 192.168.1.109  
OS: Windows 7

攻击者主机:

IP: 192.168.1.111
OS: CentOS 6.5

路由器:

IP: 192.168.1.253

网络拓扑图:

0x01,用 sslstrip+ARP 来看胖次

原理大概就是:

  1. ARP 欺骗受害主机,劫持受害主机流量;
  2. 用 sslstrip 将 https 的裤子脱下来,强迫受害者用 http 通信;
  3. 同时攻击者也会与服务器建立正常的 https 连接;
  4. 嗅探得到受害者的信息。

就像这样:

受害者  <== HTTP ==>  攻击者  <== HTTPS ==>  服务器

也就是 MITM 的加强版的样子ow<
攻击详细过程如下:

  1. 首先开启内核包转发,然后用 iptables 转发 80 端口到 10000 端口上,其中 10000 端口为 sslstrip 监听的端口;
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000

  2. 开启 sslstrip(脱裤子什么,让我来owo);
    sslstrip -a -k -f

  3. ARP 嗅探受害者主机(大骗子哼OAQ);
    arpspoof -i eth1 -t 192.168.1.109 192.168.1.253
  4. ettercap 来看胖次;
    ettap -u -T -q -i eth1
    我们先打开正常的 http 页面看一看能不能得到胖次,登录 v2ex 好了。
    输入账号 test,密码 test,嗯呜,喵呜,胖次被轻易的看到惹 QAQ..

接下来我们找一个 HTTPS 的网站来,就拿支付宝来说。我们访问后发现并不是 https,而是 http。但是大多数人并不会意识到这个的,他们会自然而然的登录。

紧接着我们进行嗅探,由于数据包比较乱,我把它输出为一个文件来看。

然后用 Wireshark 过滤一下,看数据包。虽然密码加密了,但是我们仍然清楚的看到已经发包成功。虽然得不到密码,有 Cookie 也会登录进去噢ow<

0x02,DNS 劫持直接看胖次

DNS 劫持是老生常谈的话题了,利用 DNS 直接钓鱼的效率极高。特别是在攻击者搭建的 Wi-Fi 环境下,DNS 想改成什么就改成什么,简直酸爽无比。

本来我想直接在路由器上复现 DNS 劫持的,但是搭建个 DNS 服务器感觉好麻烦,另外出租屋里其他四个人如果被我搞的上不了网那么我感觉会被群殴QAQ,所以我以另外一种方式简单复现一下。

  1. 首先我先把被攻击着的 DNS 服务器改为攻击者的 IP 地址,其实如果直接在路由器上改也是这个效果。

    然后我们在攻击者的机子上搭建一个简单的 DNS Server——无论请求什么地址,都返回攻击者的 IP;

    我们在被攻击着的机子上测试,发现成功。

  2. 我们在攻击者的机子上搭建一个和 QQ Mail 一模一样的网站——直接用浏览器保存就好了嘛,小学就学过;

  3. 稍微修改一些代码,使得可以接受被攻击着的用户名和密码。

由于一些原因保存的页面非常粗糙,不过如果是精心钓鱼的话,页面会和真正的页面一样,钓鱼成功几率极高ow<

0x03,胖次上的摄像头——JS 投毒

JS 投毒是在中间人攻击的基础上,在返回的 HTML 数据中插入恶意 JavaScript 代码。JS 投毒完全可以配合 DNS 劫持以及 sslstrip 来使用。
利用 closurether 轻松实现插入任意脚本,编译安装 node.js 以及用 npm 安装 closurether 就不赘述了。
(由于这是我第二天复现的,所以受害者 IP 变成了 192.168.1.104)

仍然是上面的环境,受害者的 DNS 服务器为攻击者的主机。我们修改 /usr/local/lib/node_modules/closurether/asset/inject 目录下的 extern.js 插入我们的测试代码,成功得到 Cookie。
而且通过 JS 投毒,可以进行许多事情,甚至可以配合 metasploit 进行对目标主机的渗透。具体看这个新的 framework,MITMf

0xFF,后话

所以说免费 Wi-Fi 能不用就不用,如果非要用,那就黑下来路由器然后改密码好了。
偶尔去大街上转悠的我随便就能进去的路由器也不少,大多数是弱口令,还有小部分的路由器 authenticate bypass 啦,抓包抓到密码啦什么的。
这些也不是什么新的东西,都是被玩烂了的。咱闲着无聊玩一下,好歹也算是折腾过。嘛,毕竟渣。
另外,不就是想看胖次吗,给你看就是了!hentai..OAQ!

参考资料:
针对SSL的中间人攻击演示和防范
利用sslstrip和ettercap突破ssl嗅探密码
渗透测试:内网DNS投毒技术劫持会话