被CTF比赛冲昏了头脑的我,突然发现自己的渗透测试能力直线下降,可能和脑洞大开、不切实际的CTF题目有关吧,让我一度茫然的开启刷题模式,现在我觉醒了,黑客技术不是CTF,从现在开始,我会搭建一些仿真环境,让自己和小伙伴复习复习,熟悉渗透测试流程,掌握渗透测试中常用的手段和工具。
好了废话不多说了。。。。咱们开始吧。这个靶机共有4个flag。。
靶机环境:
操作系统:Debian
CMS:Drupal 7
靶机IP地址:192.168.43.104
1、信息收集
使用nmap 或者 masscan 对靶机开放的端口信息进行扫描,这里我使用nmap,masscan扫描速度快,但是有点不准,nmap有点慢吧,但是效果比较好。。。

可以看到,目标开放了4个端口,分别是 22、80、111、35476,同时可以看到,目标的80上跑的是Apache,框架是Drupal 7,我们访问一下80端口看看

业务系统是 Drupal,我们上网搜一下Drupal有没有什么公开的漏洞,发现了好多,那我们直接可以用msf搜一下看看有什么可以直接利用的EXP,发现有好几个可以直接利用的攻击模块,为了省事,我们尝试一下,看看能不能成功利用。。。

2、漏洞利用
这里我使用第一个2014年的漏洞利用模块,我也不知道这个能不能用,咱们先试试。。。

应用该模块后,看看需要设置什么东西,可以看到,这里我们直接设置靶机ip地址就可以了


然后使用 run 命令或者 exploit 命令开始攻击。。。

从上面的图中可以看到,已经成功的入侵,并获得了一个会话,那我们看看用户权限

发现是个www-data用户,看一下根目录,发现flag1...,同时附带一个提示信息。。。


根据提示,找到该网站的连接数据库配置文件在 sites/default/中的一个叫settings.php,获取到数据库用户和密码,同时发现flag2和下一个提示信息。。。


根据提示信息,我们要登录Drupal系统中才能获取到flag3,所以,我们需要查看数据库中的账号密码,但是通过shell直接连接数据库无法得到回显信息,不能正常使用,翻看/etc/passwd文件发现存在一个flag4的账户,于是对它进行一个ssh爆破,看看能不能爆破出来,如果可以,就可以用ssh连接数据库了。。。

利用hydra对flag4这个用户进行ssh爆破。。。成功爆出其密码。。。

然后我们利用ssh登录到flag4中,然后连接数据库,看看数据库中的信息


发现users表,进去看看,发现密码pass字段进行了加密,,,于是,在百度和翻来翻去中了解到Drupal的密码加密有个脚本,就是 这个 /var/www/scripts/password-hash.sh


然后我们利用这个脚本,生成一个密码,然后再用我们生成的密码替换掉数据库中的admin密码。。。这里我的密码是 hahaha 然后把加密后的密码保存在 321.txt 中。。。

执行后发现flag4权限不够,那我们继续使用msf做这一步操作。。。

发现成功执行,查看321.txt,复制密码,在MySQL中替换掉admin的密码。。。


然后我们用admin登录前台系统,发现flag3。。。


然后,在flag4的家目录下发现一个提示,说flag4在root用户的家目录下,那也就是说我们要进行提取,获取到root用户才能拿到最终的flag4,并且结合flag3中的提示信息,要利用拥有suid权限位的命令进行提权,这里对suid相关的资料可以参考这个链接:
https://www.cnblogs.com/jacob-tian/articles/6475887.html
这里利用 find / -perm -u=s -type f 2>/dev/null 这个命令查看拥有suid权限的命令,可以执行命令拥有者的权限,具体的可以参考这个链接:https://blog.csdn.net/qq_36119192/article/details/84872644

这里我们用find命令提权,因为find 命令可以在查找之后执行命令,至于为什么,find -h 一下就知道了。。。
查看权限。。。果然是root。。。

然后我们把/bin/sh给反弹过来,就成功的拿到了root权限。。。

OK,查看flag4,,,结束战斗。。。

当然,还有其他的方法能够提权拿到flag4,其他的方法后续如果会在其他靶场中介绍。。。。

河南省洛阳市 1F
Drupal 7这老古董还有人挖?不过flag4用find提权确实经典。
广西 B1
@ 血咒使徒 确实,find提权简直稳。
广东省东莞市 2F
nmap扫完直接上msf,省事是省事,但实战中容易被WAF拦吧?
台湾省高雄市 B1
@ 智慧旋律 确实,动静太大了,容易被发现。
广东省中山市 B1
@ 智慧旋律 碰到WAF拦了,只能先绕过再跑。
北京市 B1
@ 智慧旋律 实战里msf一跑基本就暴露了,纯练手还行。
吉林省长春市 3F
之前搞过类似靶场,ssh爆破flag4那步卡了好久,hydra字典选不对真不行。
北京市 4F
80端口跑Drupal还敢不打补丁?管理员心真大😂
四川省雅安市 5F
那个password-hash.sh脚本在新版Drupal里早没了,这靶机得是多老的版本啊?
内蒙古鄂尔多斯市 B1
@ 旧年旧梦 msf里用那个2014年的exp居然还能成功,离谱。
澳大利亚 B1
@ 旧年旧梦 Drupal 7都快进博物馆了,这脚本现在谁还留着啊?
日本 6F
看到www-data权限就急着找数据库,其实先看下计划任务说不定更快?
辽宁省大连市 7F
flag3要登录前台才能拿,结果还得改admin密码……套路有点老了。
韩国 B1
@ 宠物控 实战里哪有时间让你慢慢改数据库密码,太理想化了。
北京市 8F
又是suid提权,能不能整个新花样?不过find确实稳。
越南 9F
我试了下本地搭这个环境,35476端口是啥服务?文章里没说清楚。
北京市 10F
渗透流程写得挺细,就是截图太糊了,nmap结果都看不清。
上海市 11F
35476端口是不是rpcbind?文章里没提。
山东省临沂市 12F
hydra爆破用默认字典够吗?
日本 13F
find提权这招确实经典,不过现在很多服务器都限制suid了吧。
江苏省常州市 14F
Debian配Drupal7,这环境也太复古了。
韩国 15F
直接上msf的exp,实战里哪有这么多现成的😂
四川省宜宾市 16F
截图里nmap扫出来的111端口是干嘛的?
吉林省长春市 17F
ssh爆破了半天,结果密码是弱口令?
山东省德州市 18F
这个靶机流程对新手复习挺友好的。
日本 19F
flag4在root目录下,提权成功那一刻应该挺爽的。
广东省佛山市 B1
@ GoldenTiger 提到root的瞬间,真的有点爽。
山东省 20F
Drupal那个密码加密脚本有点东西
新加坡 B1
@ Thorne荆棘 我当时也研究了好一会儿
印度尼西亚 21F
hydra爆破flag4那步我试了三次才成,字典太关键了。
北京市 22F
35476端口到底是啥服务?扫出来也不说清楚,卡半天。
日本 23F
看到用find提权直接笑出声,老派但有效😂
四川省达州市 24F
之前搭过类似环境,www-data权限下先翻日志更快拿到线索。
上海市 25F
这流程对刚学渗透的新手挺友好,步骤清晰不绕弯。
广东省珠海市 26F
管理员真敢用Drupal7还不打补丁,心是有多大?
上海市 27F
ssh爆破那块有点运气成分吧