Exploit XJTU_WLAN(一)

背景介绍

     作为一名穷屌丝,用不起4G,只能靠蹭蹭学校的无线网。无奈,穷学校的无线帐号竟然只能提供给老师使用。着实让尔等屌丝伤透了心。

网页验证介绍

     OK,废话少说。渣校的XJTU_WLAN采用了网页验证方式,这个东西洋文叫做Captive Portal,首先连接进入未加密的XJTU_WLAN,接着通过DHCP客户端,请求分配IP地址,掩码,网关,DNS配置。关于这种Captive Portal不再做详细的说明,渣校的认证方式属于其中的Redirect by HTTP类型。

     这种认证方式巨大的劣势在于可以预先连接,并且获取到一个网络配置信息,这也就意味着,实际上我已经能够连入这个无线网络了。这无疑增加了我的手的机会。 再连入XJTU_WLAN,DHCP后,通过ipconfig命令,我发现我的网络配置信息如下。

IP:49.208.6.53/20
Gateway:49.208.0.1
DNS:202.117.0.20, 202.117.0.21

如何发现漏洞?

     各位看官看到如上的配置是否有有了一丝Hack的想法, 为何DNS跟本机不在一个网段,这里是否也就意味着本机可以利用DNS作为伪装与202.117.0.0/16的网内任意一台主机通信?

     笔者于是接下来就开始来验证这个答案。

$ nslookup www.baidu.com
Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 119.75.217.109
Name:    www.a.shifen.com
Address: 119.75.218.70

     看到如上的信息,立马就兴奋了起来。 DNS请求果真没有被拦截。好吧,DNS Tunnel肯定是毫无疑问可以去作了,利用iodine小程序即可搞定。 这个东西没有什么难度,我就不再说了。 只是因为笔者的VPS在国外,利用此种方式,实在是太慢。于是就放弃了这个想法。

     那我们继续考虑, 一般的防火墙还是没有GFVV这么这么牛逼了,不可能劫持DNS, 那么是否本机可以通过UDP53跟202.117.0.0/16任意一台机器通信?

     此处祭出神器netcat
@202.117.15.123/24 $ nc -u -l 53
@49.208.6.53      /20 $ nc -u 202.117.15.123 53

     不再贴图了,最终得到的答案是,可以进行收发包, 至此, 其实bypass XJTU_WLAN的工程已经完成了2/3。

如何绕过登录?

     随便找个udp tunnel的工具,进行一下端口转发一下,就可以了, 我用的是udptunnel(google code快关闭了,我已经将他迁移出去)。

server# ./udptunnel -s 202.117.15.123 53
client# ./udptunnel -c 127.0.0.1 3333 202.117.15.123 53 127.0.0.1 22
client# ssh -p 3333 user@127.0.0.1

     那对于小白而言,该如何操作呢?
     利用ssh不是可以打socks代理,win下利用proxifier软件,实现全局代理。linux下采用proxychains类似的工具可实现全局代理。
     本文不再详述ssh的socks代理的原理, SSH已经被用滥了,读者可自行搜索。

     在接下来的博文中,笔者会将分享如何利用虚拟网卡的方式来实现透明转发。
敬请期待!

2 comments:

  1. 搭建53端口UDP的OpenVPN更方便,跨平台通用。

    ReplyDelete
    Replies
    1. OpenVPN的实质就是虚拟网卡,洋文叫做tun/tap driver. linux内核自带,win底下正是OpenVPN开发。

      下篇帖子再说这个事情。 Win和Linux都已经通了,Android端Iptables还是有些问题。

      Delete