时间来到2020年,越来越多的ARM设备出现在我们的工作和生活当中,其中最为典型的就是手机、路由器、智能家居等日常高频使用设备。
同时伴随着ARM设备的广泛普及,它们自身的安全性、以及我们如何在工作中利用ARM设备在便携性、隐蔽性、低成本等方面的先天优势,在实际项目中如渗透测试、威胁情报、红蓝对抗、护网/净网等发挥出ARM设备的独特优势,正在成为当下安全运维及攻城狮们不可忽略的热门技术栈方向。
本文着重介绍当下最为重度使用的ARM设备——手机,配合Kali Nethunter所集成的数百款实用工具,打造单兵随身隐形渗透测试工具箱,以及通过其定制版的内核实现安卓木马、远控的降维式沙箱分析。
本文实验过程涉及的所有附件均位于
Github主页中:https://github.com/asukaf1ght/ArmDevicesWeaponized
缘·起
首先让我们来看一起“虚构”的HW行动中的典型攻防案例:
| 步骤 | 内容 |
|---|---|
App分析 |
如今关键基础设施如银行、交通、电信、文娱等一般都会通过移动App对外提供服务,移动安全团队负责分析App中出现的api地址,以及其他的信息泄露。如果App代码存在加密和混淆,还需要进行解密和接口爆破 |
| 信息收集 | 情报与信息收集小组对App中包含的域名、IP进行扫描,通过子域名、同站、c段等信息扩展我们的目标站群,并收集目标站群暴露的信息,以及可能存在的问题。此处,我们使用到了信息系统支持与工具研发小组负责研发的工具,以及他们运维的匿名服务器 |
| 红队渗透 | 渗透实战小组的红队工程师接入,以扫描得到的信息为切入点,尝试攻击目标站群。倘若获取到目标源码,则交由安全研究与代码审计小组进行审计。同时如果有机会尝试进行线下社工钓鱼。 |
| 后门驻留 | 在渗透实战小组渗透获取到相关的权限之后,渗透实战小组的红队工程师开始使用信息系统支持与工具研发小组与二进制支持小组合作开发的rootkit、后门等植入目标机,并启动相应的持久化后门。 |
| 终端钓鱼 | 渗透实战小组的红队工程师将信息系统支持与工具研发小组提供的cc载荷以钓鱼的方式植入到特定位置,等待触发。特点位置包含PC或手机,该cc载荷的免杀由二进制支持和移动安全小组维护。 |
| 移动终端攻击 | 渗透实战小组的工程师尝试利用WIFI和USB连接,将移动安全小组提供的移动端RAT植入到目标移动终端中。 |
| 取证和监控 | 渗透实战小组的红队工程师利用在(移动)终端中植入的后门对(移动)终端进行取证和长时间的监控。监控中的使用的工具有移动安全小组、信息系统支持与工具研发小组研发,工具的基础原理由二进制支持小组、安全研究与代码审计小组研究得到。(如whatsapp监控涉及到大量的逆向与加解密工作)。从手机中提取的信息可能是PC上数十倍之多。 |
| 报告与总结输出 | 输出报告与总结由渗透实战小组提供粗略版本,报告、文档工作与对接小组负责整理。 |
从此次“虚构”的渗透测试行动中可以发现,我们平时有多依赖手机,移动端及设备在攻防对抗、渗透测试中体现出来的意义,就有多么深刻。
移动端作为企业提供服务的载体、作为内网中数量最多的设备、作为乘载最多企业及个人隐私信息的全媒体存储器,“拿下”防守方App及员工或高管的工作手机的意义不言而喻。
而在“拿下”这件事情上,最为专业的Kali Linux,给出了他们的答案——“Kali Nethunter”。
2020年4月初,Kali在其官方博客上释出了最新的Kali Nethunter 2020.1,带来了船新的Kali NetHunter Rootless和Kali NetHunter Lite,同时对完整版Kali Nethunter进行了更加深入的优化,使用了全新的内核编译工具,从内核全面支持USB键盘、光驱和网卡模拟,功能更加强大,系统更加稳定。
Kali Nethunter : Best Practice
版本对比
新的Nethunter针对不同的版本,有不同的要求,并且可以实用的功能也不同。
| 镜像 | 功能 |
|---|---|
Kali NetHunter rootless |
免root、免刷recovery,可以发挥大概85%于完整版的功能 |
Kali NetHunter light |
某些机型上目前我们还没有完全编译出适配的内核,所以在root的情况下,通过recovery刷入后,使用的还是系统原生的内核,可以发挥出95%完整版的功能 |
Kali NetHunter |
这个版本是完整版,可以发挥出100%的威力, |
官方甚至还提供了对照表,表明哪些功能在哪些版本上是否存在:
客服小美的VIVO也能装
也就是说,为了能让客服小美的OPPO、VIVO装上Nethunter,一群黑客可是操碎了心。
rootless版本实质上就是一个大型app,只不过在这个app中可以做非常多的事情,只要不是过于依赖硬件本身的事情几乎都可以完成,比如我们最喜欢客服小美帮助做的一些事情有:
- 作为代理对内(外)网站点发动攻击;
- 在部门之间穿梭,连内网,大开杀戒;
- 作为代理跳板控制内网
bot网络; - 开启
3/4G流量实现cc命令逃逸; - 承担位于内网的
cc frontend角色; - 让客服小美暗中给
HR小花也装上这个美妙的App; - 可以的话让她给王经理也装上…
大黑客还是用Nexus 6p
虽然从实战的角度来说,客服小美的VIVO版Nethunter(rootless)的战斗力是绝对强于开启完整Nethunter功能的Nexus 6p的,如果可以的话,建议红队中的女生可以去面试客服,(然后黑化);或者男生去面试运维,(潜伏一年?),制作更多的深水炸弹,上演2020版无间道。
当然这些都变成社工的故事了,所谓兵不厌诈,极端情况下,一切都可能发生。
如果给咱们的“卧底”配发设备,当然得“专业”和“商务”啦,Kali官方推荐的是这三款:
支持一加7和小米9T好评,意味着我们的特工不必拿着五年前的手机,去为咱们卖命了。(nexus 6p于2015年推出)
完整版Nethunter主要多出来的功能在于:
- 带数据库的
msf:没人会真的在手机上跑msf的 -
NetHunter App:比较鸡肋,只是把一些常用的黑客App放在一起 -
WiFi Injection:ARP劫持、流量重定向、钓鱼、破解无线密码 -
HID attacks:模拟键盘输入下载木马、退出杀软
接下来细细看看,新版的Nethunter 2020.1能否支撑起这些功能。
Nethunter Rootless
安装流程详解
手头没有OPPO,VIVO,只能还是拿Nexus 6p来尝试,先刷回官方原版:
- 首先选择使用
8.1版本,为什么使用这个版本呢?因为官方对8.1的稳定性溢于言表:
The Android 8.1 image is considered the recommended release with a proven track record of supporting NetHunter under the most extreme conditions, including force encryption of the data partition.
# wget https://dl.google.com/dl/android/aosp/angler-opm1.171019.011-factory-39448337.zip
- 手机完全关机后,按住音量
-、再按开机键开机,手机进入bootloader,再用USB连接到电脑。(买手机的时候一定要让卖家解锁好噢) - 下载附件的
platform-tools-for-angler8.1.0r1.zip文件并解压,然后将其加入路径中去,当前终端中要有fastboot命令,并能回显手机的设备信息:
# unzip platform-tools-for-angler8.1.0r1.zip
# export PATH=$PATH:/root/Downloads/platform-tools
# fastboot devices
ENU7N16323564354 fastboot
- 解压并进入文件夹,直接运行命令刷机:
# unzip angler-opm1.171019.011-factory-39448337.zip
# cd angler-opm1.171019.011/
# ./flash-all.sh
target reported max download size of 494927872 bytes
sending 'bootloader' (3552 KB)...
OKAY [ 0.658s]
writing 'bootloader'...
OKAY [ 0.206s]
finished. total time: 0.864s
rebooting into bootloader...
OKAY [ 0.022s]
finished. total time: 0.073s
target reported max download size of 494927872 bytes
sending 'radio' (48728 KB)...
OKAY [ 8.813s]
writing 'radio'...
OKAY [ 2.163s]
finished. total time: 10.976s
rebooting into bootloader...
OKAY [ 0.022s]
finished. total time: 0.074s
extracting android-info.txt (0 MB)...
extracting boot.img (11 MB)...
target reported max download size of 494927872 bytes
静候至刷机结束:
自动重启后即是全新的系统,将系统初始化之后,时间调整到正确的时间,即可去https://store.nethunter.com官网下载并安装Nethunter Store了。
首次启动会更新库,貌似从国内也可以无障碍地更新,更新完之后App就出现了。
接下来就是按照官网要求下载Termux, NetHunter-KeX client, 和Hacker’s keyboard。
果然在Nethunter Store里下载的Termux(即使科学上网了也)无法初始化,果断卸载掉换附件里Termux官方完整包即可。
最后打开termux依次输入下述命令:
$ termux-setup-storage
$ pkg install wget
$ wget -O install-nethunter-termux https://offs.ec/2MceZWr
$ chmod +x install-nethunter-termux
$ ./install-nethunter-termux
PS:再次吐槽下官网的文档,写的实在是…无法恭维…
PS:这么长的一串串命令,手打有些累,可以使用
adb shell input text xxxx的命令输入进termux中。PS:再推荐个电脑控制手机端软件,有
adb就能用,效果拔群,叫做QtScrcpy。
下载需要大概几十分钟到数小时不等,主要看你的网速,文件大小在1.2G左右(科学可以提高网速)。下载完成后自动解压安装,直至最终完成。
| 命令 | 功能 |
|---|---|
| nethunter | 开启 Kali NetHunter 命令行界面 |
| nethunter kex passwd | 配置KeX密码(仅第一次需要) |
| nethunter kex & | 启动Kali NetHunter 桌面用户进程 |
| nethunter kex stop | 停止Kali NetHunter 桌面 |
nethunter command
|
在NetHunter环境中执行命令 |
| nethunter -r | 以root身份启动Kali NetHunter命令行界面 |
| nethunter -r kex passwd | 配置root用户的KeX密码 |
| nethunter -r kex & | 启动root用户的Kali NetHunter桌面 |
| nethunter -r kex stop | 停止root用户的 Kali NetHunter桌面进程 |
| nethunter -r kex kill | 杀掉所有KeX桌面进程 |
nethunter -r command
|
用root用户在NetHunter环境中执行命令 |
- 在
termux内运行下述nethunter -r kex passwd命令为root用户设置vnc server的密码,然后运行nethunter -r kex &开启vnc server。记住回显的信息,在Nethunter KeX应用中输入上述回显信息及密码,可以再设置个分辨率,如图所示,默认的1920x1080还是太细了。
可以看到常用的工具还是都有的。
到这里安装完毕。
个人感觉这个
KeX桌面非常鸡肋,不能在PC上远程连接,字还那么小,实战中应该不会有人使用。官网还说火狐无法运行,想要用浏览器得装个
Chrome:
apt remove firefox-esr
apt install chromium
可以ssh、npc、漏扫、远控
实战中我们最为关心的,是可否远程连接,并且是否可以使用代理。
远程ssh步骤,下面为在termux中使用(貌似Nethunter内部无法开启sshd服务):
- 在
termux中更改密码(或者说设定初始密码)
$ passwd
会显示这样(设置密码的时候,输入不显示):
New password:
Retype new password:
New password was successfully set.
- 安装openssh
pkg update pkg install openssh - 开启ssh并连接,在
termux上开启ssh请执行这一句:
$ sshd
- 如果要关闭执行这一句:
$ pkill sshd
- 在电脑上(控制端)执行这个:
hostname_or_ip替换成自己的手机IP,手机的ip就是刚刚ifconfig命令出来的那个。
ssh -p 8022 user@hostname_or_ip
-
nmap内网扫一波:
-
CVE-2020-0796扫一波,自己的主力机正好是包含该漏洞的版本,那就拿手机搞一下自己,上SMBGhost:
貌似现在还没有RCE,只有LPE,各位大佬有RCE务必发我。
-
npc也没有问题
接下来把npc配好,bot就做好了。
下一步就是开socks,内网随便扫了。王牌飞行员小美bot申请出战!
不可以动底层、硬件、进程等
在termux中运行top,可以在系统后台找到proot的进程,可以看到idle时系统占用也并不是特别高。
Nethunter系统内看起来一篇和谐:
但在Nethunter内部是无法运行top命令的。
root@localhost:~# top
top: failed /proc/stat open: Permission denied
看个设备也不行:
root@localhost:~# lsusb
unable to initialize libusb: -99
想抓流量包也不可以:
root@localhost:~# jnettop
Could not read/find config file /root/.jnettop: No such file or directory.
pcap_findalldevs: dummy0: SIOCETHTOOL(ETHTOOL_GLINK) ioctl failed: Permission denied
扫描无线网络失败:
root@localhost:~# airodump-ng wlan0
Failed to connect to generic netlink.
socket(PF_PACKET) failed: Permission denied
Failed initializing wireless card(s): wlan0
这么说吧,连看个进程都不行:
root@localhost:~# ps
Error: /proc must be mounted
To mount /proc at boot you need an /etc/fstab line like:
proc /proc proc defaults
In the meantime, run "mount proc /proc -t proc"
文件系统倒是非常大(我的手机存储是32G的),可以安装软件,但是监控磁盘io也不行:
有意思的是,netstat打印出来了我们连向termux的8022端口上sshd的连接:
也就是说这个系统基本上就是termux内部的一个应用,稍微涉及系统资源一些的东西,只能在termux中完成。
比如termux中不仅可以运行top,还可以运行htop:
当然,内容也是相当受限,连CPU都没有,毕竟它没有root权限。显示的也是Nethunter内部的一些进程。
到这里其实介绍得已经非常详细了,其余未尽事宜可以查看官方文档https://www.kali.org/docs/nethunter/nethunter-rootless/,虽然文档写的是非常糟糕,仅仅是,比没有好。
未完待续…
官方博客中说,Nethunter Rootless可以最多只有85%的威力,带root、三方recovery和Kali定制内核的完整版Nethunter才能发挥100%的威力,接下来在(下)篇中就来康康,100%威力是啥样的,敬请期待。





















