开启Vulnhnb刷题
今天是DC-1
介绍页:DC: 1 ~ VulnHub下载地址:http://www.five86.com/downloads/DC-1.zip
1、导入VMware虚拟机
下载完成后,得到DC-1.ova文件,导入到VMware后,设置靶机和kali的网络连接模式为NAT模式,靶机会自动获取ip地址。
2、获取靶机IP地址和攻击机的IP地址信息
使用arp-scan --interface=eth0 192.168.119.0/24扫描NAT网段即可得到;
![image-20230405160140167](https://cloud.c3ting.com/c3ting/image-20230405160140167.png?c3ting)
靶机IP地址:192.168.119.146
攻击机地址:192.168.119.147
![image-20230405160243672](https://cloud.c3ting.com/c3ting/image-20230405160243672.png?c3ting)
3、扫描开放端口,查找利用点
靶机开放了22、80、111端口。没有发现可利用的,那么我们进入到80端口,看看网页程序中又扫描可以利用的点。
找到网站程序是Drupal的,那么我们看看msf中可以使用的插件,如果有的话减少了很多的工作量;
4、使用MSF,寻找Drupal利用点
![image-20230405160826998](https://cloud.c3ting.com/c3ting/image-20230405160826998.png?c3ting)
使用搜索命令搜索网站程序,发现了几个可用的点。
这里我们使用exploit/unix/webapp/drupal_drupalgeddon2
![image-20230405161059965](https://cloud.c3ting.com/c3ting/image-20230405161059965.png?c3ting)
使用info(或者使用show option)命令查看一下需要填写哪些参数:
![image-20230405161221769](https://cloud.c3ting.com/c3ting/image-20230405161221769.png?c3ting)
我们把缺少的目标IP地址设置一下,run运行起来就可以拿到shell了。
![image-20230405171513378](https://cloud.c3ting.com/c3ting/image-20230405171513378.png?c3ting)
4.1、发现第一个flag
在网站根目录下面,我们发现了第一个flag1.txt,打开后发现提示我们寻找cms的配置文件。
![image-20230405162607491](https://cloud.c3ting.com/c3ting/image-20230405162607491.png?c3ting)
那么我们直接百度Drupal 配置文件位置,即可得到:
settings.php
$settings[‘file_public_path’] = ‘sites/default/files’;
4.2、发现第二flag
打开配置文件后,再次发现提示
![image-20230405162953078](https://cloud.c3ting.com/c3ting/image-20230405162953078.png?c3ting)
同时我们也拿到了数据库的用户名和密码信息;那么我们尝试使用mysql登录,但在此之前我们可以发现,我们的shell还是不可交互的,靶机上有python,那么我们使用一下python的交互命令。交互式参考链接:[反弹Shell升级为交互式Shell ——yzddMr6 - 简书 (jianshu.com)](https://www.jianshu.com/p/e7202cb2c3dd)
![image-20230405163425969](https://cloud.c3ting.com/c3ting/image-20230405163425969.png?c3ting)
使用mysql登录进去:
![image-20230405163555461](https://cloud.c3ting.com/c3ting/image-20230405163555461.png?c3ting)
发现用户表users:
![image-20230405163642769](https://cloud.c3ting.com/c3ting/image-20230405163642769.png?c3ting)
![image-20230405163709118](https://cloud.c3ting.com/c3ting/image-20230405163709118.png?c3ting)
发现这个密码不是md5加密;百度后发现,这个cms框架的密码加密可以自己生成;参考链接:[(61条消息) 如何重置Drupal 7的用户密码 _xieyanxy9的博客-CSDN博客](https://blog.csdn.net/xieyanxy9/article/details/84118604)
那么我们接下来就是退出去,生成密码,再进到数据库,update一下数据库密码。不就可以登录进去了;
update users set pass='$S$DzSKYqfIqgPE3.6GoZLTwYX4pxrDTazUfldR3SxhyJ.TdGEJWFaP' where name='admin';
![image-20230405164018695](https://cloud.c3ting.com/c3ting/image-20230405164018695.png?c3ting)
4.3、发现第4个flag
使用admin,admin登录后发现了flag
![image-20230405164431356](https://cloud.c3ting.com/c3ting/image-20230405164431356.png?c3ting)
提示使用:-exec来提权
知识点:suid提权
SUID是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其 执行时,使调用者暂时获得该文件拥有者的权限。也就是如果ROOT用户给某个可执行文件加了S权 限,那 么该执行程序运行的时候将拥有ROOT权限。
以下命令可以发现系统上运行的所有SUID可执行文件
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
/表示从文件系统的顶部(根)开始并找到每个目录
-perm 表示搜索随后的权限
-u = s表示查找root用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
常见suid提权文件
nmap、vim、find、more、less、bash、cp、Nano、mv、awk、man、weget
继续进行,使用*find* / -perm -4000 2>/dev/null查看
![image-20230405170529751](https://cloud.c3ting.com/c3ting/image-20230405170529751.png?c3ting)
发现有find可以用,那么我们试试;先新建一个文件*touch* c3ting
find / -name c3ting -exec "whoami" \;
![image-20230405171100977](https://cloud.c3ting.com/c3ting/image-20230405171100977.png?c3ting)
提权成功了
5、提权成功,获取最后的flag
接下来我们使用挂载到/bin/sh上,使用:find / -name c3ting -exec "/bin/sh" \;
![image-20230405171132310](https://cloud.c3ting.com/c3ting/image-20230405171132310.png?c3ting)
![image-20230405171211801](https://cloud.c3ting.com/c3ting/image-20230405171211801.png?c3ting)
最后拿到最后的flag:
Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7
总结:
1、msf——YYDS
2、要会使用策略,反向思考;