DC-2打靶笔记

靶机安装以及配置

准备:

kali虚拟机
dc-2靶机
windows11(可用可不用)

靶场下载地址:https://download.vulnhub.com/dc/DC-2.zip
下载好后用VM打开,设置为NAT模式
1

开机

打靶

探测主机存活
使用工具nmap:nmap 192.168.206.136/24
检测到dc-2靶机地址为192.168.206.136
2
深度探测靶机信息

nmap -sV -p- 192.168.206.136

-sV:端口扫描并获取服务版本信息
-p-:全端口扫描

3
登陆网站192.168.206.136
登陆网站时会发生一些问题显示Did not follow redirect to http://dc-2/,意思就是没有重定向到http://dc-2/,由于我打靶的时候使用本机进行的,同时会使用kali上的一些工具,那么需要将kali的hosts文件(/etc/hosts)添加一下本地DNS解析。

3
windowshost文件在"C:\Windows\System32\drivers\etc\hosts",添加完之后即可正常进行。
打开网站后查看网站整体框架,可以使用kali中的工具whatweb,或者浏览器插件
2
可以知道网站是wordpress
拿到flag1
6

标志 1:
你常用的单词表可能不起作用,所以,也许你只需要 cewl 即可。
密码越多越好,但有时您无法赢得所有密码。
以一个身份登录即可查看下一个标志。
如果找不到,请以其他身份登录。

查看一下cewl是什么

cewl 是一个用于生成自定义字典(custom wordlist)的工具,它是根据目标网站或文本中提取的单词和短语创建字典的一种方式。
cewl 的全称是 “Custom Word List generator”,它是一个基于Ruby编写的命令行工具。它的主要功能是分析指定的文本或通过爬取目标网站提取出的单词,并根据提取的内容生成一个定制的字典。
这个工具在渗透测试和安全评估中经常用于密码破解、暴力攻击和社交工程等方面。通过生成针对特定目标的字典,攻击者可以尝试使用常见的、有可能与目标相关的单词和短语进行密码破解或攻击。
cewl 可以根据不同的选项和参数来调整字典的生成过程,例如排除特定的单词、设置最小和最大长度限制、指定输出文件等。

那意思已经很清楚了,就让我们登录进去,先用cewl制作密码字典
cewl url -w 文件名即可生成一个字典,后面你可以使用wpscan进行用户名猜解和密码爆破,后续就不演示了,最后可知存在用户admin,jerry,tom密码就使用cewl跑出来的密码。最后可以找出jerry和tom的密码,后面登陆jerry用户后可以得到flag2
2

如果你无法利用 WordPress 并走捷径,还有另一种方法。
希望您找到另一个切入点。

在这里想到刚才探测端口的时候存在ssh,但是端口改到了7744,使用ssh登陆一下。
直接写知识点吧,肝一天了。。。

知识点

主机探测

这个时候使用nmap进行探测

nmap -A -p- 192.168.206.136 全端口探测,还有端口服务以及详细配置

本地DNS设置

hosts文件地址
windows:”C:\Windows\System32\drivers\etc\hosts”
linux:/etc/hosts

cewl工具的使用

cewl 是一个用于生成自定义字典(custom wordlist)的工具,它是根据目标网站或文本中提取的单词和短语创建字典的一种方式。

cewl 的全称是 “Custom Word List generator”,它是一个基于Ruby编写的命令行工具。它的主要功能是分析指定的文本或通过爬取目标网站提取出的单词,并根据提取的内容生成一个定制的字典。

这个工具在渗透测试和安全评估中经常用于密码破解、暴力攻击和社交工程等方面。通过生成针对特定目标的字典,攻击者可以尝试使用常见的、有可能与目标相关的单词和短语进行密码破解或攻击。

cewl 可以根据不同的选项和参数来调整字典的生成过程,例如排除特定的单词、设置最小和最大长度限制、指定输出文件等。
基础命令:cewl url -w 文件名这样之后会生成一个有关该网站的字典,便于后面爆破密码使用。
Kali Linux字典生成工具Cewl使用全指南

ssh登录

这个tom用户可以登录,jerry登陆不了,密码就是爆破出来的。

rbash逃逸(提权的一种)

rbash:就是受限的bash(bash,一个命令行解释器,接受用户输入的指令并且执行相应的命令),一些命令不能使用
以下情况是不允许rbash执行的

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

大致的限制如上
因此本靶场用到rbash逃逸,由于测试后发现vi命令可以使用,因此使用vi设置shell。
进入vi界面

vi

然后按Esc键,输入
:set shell=/bin/bash

设置好shell并回车,接着输入

:shell

回车,启动shell
之后退出vi编辑器,查看权限。结果这个靶机没有成功,正常是已经可以了,由于这个靶机的环境变量的问题,在这里我们使用命令添加环境变量
export PATH=$PATH:/bin/
这条命令将把 /bin/ 目录添加到当前 PATH 环境变量中。
环境变量 PATH 指定了操作系统在查找可执行文件时要搜索的目录列表。通过将一个目录路径添加到 PATH 中,你可以使系统在该目录中查找可执行文件。
具体而言,export PATH=$PATH:/bin/ 这条命令的含义是:
$PATH 表示当前已经设置的 PATH 变量的值。它将被展开为当前的 PATH 路径。
/bin/ 是要添加到 PATH 中的目录路径。
通过执行这个命令,你将把 /bin/ 目录添加到当前的 PATH 变量中,使得系统能够在 /bin/ 目录中查找可执行文件。这样,在你执行命令时,系统将会在原有的 PATH 路径中搜索命令,同时也会在 /bin/ 目录中搜索命令。
这种方式可以方便地执行位于 /bin/ 目录下的命令,而无需指定完整的路径。需要注意的是,在使用 export 命令设置环境变量时,只会在当前会话中生效。如果希望在每次登录时自动设置 PATH,可以将该命令添加到启动文件(如 .bashrc 或 .bash_profile)中。

export PATH=$PATH:/usr/bin/

这条命令将把 /usr/bin/ 目录添加到当前 PATH 环境变量中。
环境变量 PATH 指定了操作系统在查找可执行文件时要搜索的目录列表。通过将一个目录路径添加到 PATH 中,你可以使系统在该目录中查找可执行文件。
具体而言,export PATH=$PATH:/usr/bin/ 这条命令的含义是:
$PATH 表示当前已经设置的 PATH 变量的值。它将被展开为当前的 PATH 路径。
/usr/bin/ 是要添加到 PATH 中的目录路径。
通过执行这个命令,你将把 /usr/bin/ 目录添加到当前的 PATH 变量中,使得系统能够在 /usr/bin/ 目录中查找可执行文件。这样,在你执行命令时,系统将会在原有的 PATH 路径中搜索命令,同时也会在 /usr/bin/ 目录中搜索命令。
这种方式可以方便地执行位于 /usr/bin/ 目录下的命令,而无需指定完整的路径。需要注意的是,在使用 export 命令设置环境变量时,只会在当前会话中生效。如果希望在每次登录时自动设置 PATH,可以将该命令添加到启动文件(如 .bashrc 或 .bash_profile)中。

BASH_CMDS设置shell

BASH_CMDS 是一个包含 Bash 命令的关联数组(associative array)环境变量。它在 Bash 中用于存储和管理命令的定义和别名。当你在 Bash 中定义一个函数、别名或关键字时,它会被添加到 BASH_CMDS 环境变量中。BASH_CMDS 是一个关联数组,它以命令名作为索引,对应的值则是命令的定义。

BASH_CMDS[x]=/bin/bash这个命令是在BASH_CMDS数组中将索引x关联到/bin/bash的命令,意思就是执行a命令时也就是执行了**/bin/bash**命令。
与上面两条命令配合之后就可以实现rbash逃逸。(可以执行被限制的命令了)
2

git提权

前面实现rbash逃逸后打开flag文件提示jerry用户,我们切换到jerry用户(密码就是之前爆破出来的密码),打开jerry用户下的flag得到提示需要git提权。
git提权的前提是在使用命令sudo -l之后没有密码验证。
1
第一种

sudo git help config

回车然后输入

!/bin/bash (这里bash也可以换成sh)

第二种

sudo git -p help

回车输入

!/bin/bash (这里bash也可以换成sh)

已经成为root权限

命令学习

环境变量查看(查看可执行命令)

echo $PATH
比如说得到**/home/jerry/bin**,后面使用echo /home/jerry/bin/*查看可执行的命令

添加环境变量

export PATH=$PATH:路径
常用路径变量/usr/bin和/bin/

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信