kioptrix level4 靶场详解

扫描网段,确认靶机ip:

扫描端口及服务:

扫描服务:

访问80:

尝试万能密码:

Admin和root都提示密码错误:

遍历目录,发现/database.sql:

访问,发现账户:

尝试使用john为账户,密码框使用万能密码:

成功登陆,且发现用户名及密码:

尝试ssh到靶机:

查询资料,发现OpenSSH 8.8 版本开始默认禁用了 ssh-rsa客户端和服务端 SSH 实现版本差太远时有可能出现上述问题

解决方法:

  1. 执行ssh时添加如下参数

ssh -o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa username@xx.xx.xx.xx

  1. 修改ssh/config文件,添加以下内容

Host old-host

    HostkeyAlgorithms +ssh-rsa

PubkeyAcceptedAlgorithms +ssh-rsa

成功登陆,但命令无法执行:

使用echo命令突破shell限制:

echo os.system('/bin/bash'),并尝试直接提权,失败

查看系统内核:

查询哪些进程具有root权限,发现mysql具有root权限:

ps -ef | grep root

/var/www目录下发现了数据库连接文件,查看连接文件,并发现root用户为空密码:

使用root账户登录mysql:

mysql -u root -p

Udf提权

UDF:(User Defined Function) 用户自定义函数,MySQL数据库的初衷是用于方便用户进行自定义函数,方便查询一些复杂的数据,同时也有可能被攻击者利用,使用udf进行提权。

提权原理:攻击者通过编写调用cmd或者shell的共享库文件(window为.dll,linux为.so),并且导入到一个指定的文件夹目录下,创建一个指向共享库文件的自定义函数,从而在数据库中的查询就等价于在cmd或者shell中执行命令。

执行过程:本质上还是利用了MySQL能够执行系统命令的特点。具体过程如下

(1)攻击者编写一些可以调用cmd或者shell的共享库文件(window为.dll,linux为.so),将共享库导入指定的函数目录中。

(2)在MySQL中创建指向共享库文件的自定义函数。

(3)通过刚刚创建的函数执行系统命令,实现提权。

查看udf表:

sys_exec命令MySQL中的一个功能,允许用户在MySQL环境中执行系统命令

命令使用方式:sys_exec(command)

使用sys_exec命令将john账户添加到admin组中:

select sys_exec("usermod -a -G admin john");

usermod:这是一个用于修改用户账户的命令行工具。

-a:表示“附加”选项,通常与 -G 一起使用。它确保将用户添加到指定的组时不会移除用户已经属于的其他组。

-G:指定用户将要添加的组。

admin:这是用户将被添加到的组的名称。在这个例子中,用户将被添加到 admin 组。

john:这是需要被修改的用户名。用户名是 john。

返回靶机,提权,提权成功:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值