本次使用靶机:DC-1
DC: 1 ~ VulnHubDC: 1 ~ VulnHubhttps://www.vulnhub.com/entry/dc-1,292/难度:3/10
flag个数:5
1、信息收集
在确保靶机和攻击机在同一网段的情况下,nmap收集一波。
确定网段并用nmap扫描
参数介绍:-A 详细扫描、 -T 4 设定时间强度 、-sS半开扫描
以下是扫描结果
2、Flag1
上面主要关注5点,ip地址、开放了22端口、开放80端口、使用的Drupal7、扫描到了robot.txt文档
这里就有三个想法,第一个是暴力破解ssh登录,第二个是查看80网页看能否找到进攻的可能,第三个是查看Drupal7是否存在漏洞。
这里我们一个一个来,首先尝试利用hydra暴力破解ssh登录。
参数介绍 -L 利用文件的用户名爆破,-P 利用文件的密码爆破 ,-e ns 尝试空获指定账户密码 ,-f 当有一个合适账户密码则终止爆破。
没有爆破出账号密码,接下来尝试想法2,查看http网页看有无切入点
看了一圈发现没有切入点,接下来尝试方法3,查看是否存在Drupal7的漏洞。这里我直接用metasploit进行查找,以下是使用metasploit查找漏洞过程
这里选一个时间比较新的,然后查看一下详细信息能不能用在drupal7
看样子应该可以,我们设置一下options然后run起来
发现可用并拿下伪shell,接下来查看一下目录看看有没有flag文件
3、Flag2
上面提示我们在配置文件里面找找线索,百度一下drupal7的配置文件在哪里
/sites/default/settings.php
进入目录输出配置文件看看
4、Flag3
上面提示除了暴力攻击外,能用证书做什么?然后我们在配置文件里面找到了数据库的账号密码,并确定了是mysql数据库,这里我们就能推断出作者应该是想让我们进入数据库获取账号密码然后登录http网页(多提一句,查看数据库类型还可以用ps -e | grep sql 进行查看数据库类型)
接下来从meterpreter伪shell切换到shell,这里我利用的是python语句
python -c 'import pty; pty.spawn("/bin/sh")'
查看了一眼whoami,发现是低级账户,先不管 ,我们先进入数据库获取账户密码先
查看一下表,看有没有user之类的表 ,使用show tables;
发现想要的表,查看里面数据
发现有账号密码,但是密码加盐,爆破和查询都没办法解密。我们换个思路,往里面插入数据修改账号密码(drupal存在加密脚本,找到脚本后利用加密脚本加密)
这里利用 ./password-hash.sh 12345 对12345进行加密,得到结果为$S$DohTICOZ8bvpnl7UP3RqHB55yda4e7RyHzFmzdExbY1fiOw2x8IL
我们利用sql的update语句进行password的修改,再查询一遍user表,发现密码修改为我们自己的密码。
尝试登录http网页
登录成功,查看一圈最终发现flag3
5、Flag4
根据提示,我们需要使用 -exec命令找到shadow内容,这里我们有两个思路,第一个是提示告诉我们需要用exec命令,而exec通常跟我们的SUID提权相关联。第二个是shadow内容,而shadow需要root用户才能查看,普通用户或许能在/etc/passwd里面找到和shadow相关的信息。(经过测试 passwd文件里面确实有用户名为flag4,通过hydra爆破也能获得flag4的密码为orange,但是和flag4.txt没有直接联系)
当然,这里还有个烧操作,就是用find命令在目标机找flag4,这里我们先尝试用find查找flag,使用命令如下 find / -type f -name flag4.txt
这里也是成功找到flag4,查看一下内容
6、Flag5
这里让我们找到root目录里面的flag,已经确定了flag5是在root里面,这里我们要做的就是提权。经过刚才flag3的指引,我们或许可以使用SUID进行提权,这里我们用find找一下有没有SUID
find / -user root -perm -4000 -exec ls -ldb {} ;
发现确实有SUID,这就好办了,我们直接用find进行SUID提权获取root账户
find . -exec /bin/sh ;
这里我们也是直接获得root权限,然后我们进入root目录,直接取得最后的flag5
结语
至此,整个靶机的flag已经完全取得。
版权归原作者 波波卡星人 所有, 如有侵权,请联系我们删除。