DC-2靶机渗透测试

1. 信息收集

使用arp-scan -l扫描

扫描靶机开放端口

 直接访问192.168.188.165发现无法访问被重定向到了 http://dc-2/

 修改hosts文件

hosts文件是linux系统中负责ip地址与域名快速解析的文件。

Linux hosts文件位置:/etc/hosts

vim /etc/hosts

linux环境下/etc/hosts文件详解

 配置好后重启服务即可

/etc/init.d/networking restart  #重启服务

然后就可以正常访问了

 找到flag1 提示使用cewl工具(字典生成工具)

2. 暴力破解

1. 使用cewl生成密码字典,Kali Linux字典生成工具Cewl使用全指南

输入下列命令之后,爬虫会根据指定的URL和深度进行爬取,然后打印出可用于密码破解的字典:

cewl -w password.txt http://dc-2/

2. 使用wpscan 暴力枚举用户名

WPScan使用笔记

wpscan --url http://dc-2/ -e

 说明:

  • --url:要扫描的目标url,允许的协议http、https,默认使用http协议。

  • -e:选项启用详细扫描模式,将执行更深入的安全测试。

    在详细扫描模式下,wpscan 将进行以下操作:

    • 识别已安装的WordPress版本。

    • 检测已知的WordPress漏洞和安全问题。

    • 扫描目标站点的插件和主题,查找可能存在的漏洞或安全弱点。

    • 查找可公开访问的文件和目录。

    • 爬取网站,并尝试发现隐藏页面或目录。

    • 分析目标网站的用户信息,包括用户名、用户ID等。

    • 进行弱密码猜测,尝试使用常见的用户名和密码组合进行登录。

 得到了三个用户名分别是admin,jerry,tom

 3. 创建一个用户名字典将上面得到的3个用户写入

 4. 使用wpsan爆破用户名密码

wpscan --url http://dc-2/ -U user.txt -P password.txt

 得到两个用户名密码

jerry / adipiscing 
tom / parturient

 5. 使用Wappalyzer扫描,查看网站中使用的技术 

 使用网站指纹识别工具whatweb扫描发现确实是WordPress

网站指纹识别工具Whatweb的使用

 6. 使用命令进行扫描网页,Nikto是一款开源的(GPL)网页服务器扫描器

nikto -h http://dc-2/

 查到登录的路径为wp-login.php

3. 登录后台

 使用获得的账号密码登录wordpress

 获取flag2

 也尝试tom账户 发现并没有什么可用的信息,这里给的提示没可以利用的信息,查看是否还有别的端口。

再次使用nmap -p- 扫描所有的端口 发现了一个7744的端口 而且开的是ssh 服务。

 直接远程登入ssh: ssh tom@192.168.188.165 -p 7744

4. rbash绕过

输入命令发现有rbash限制。rbash绕过

rbash 是一种限制了 Bash Shell 中某些功能的受限 Shell。默认情况下,rbash 执行时,用户无法改变当前工作目录、无法使用绝对路径执行命令、无法执行含有斜杠 / 的命令,以及禁止了其他一些操作。

然而,有时候攻击者可能会试图绕过 rbash 的限制,以获取更多权限或执行不被允许的操作。以下是一些常见的 rbash 绕过方法:

  1. 使用绝对路径:rbash 默认禁止使用绝对路径来执行命令,但是攻击者可以使用相对路径来间接执行具有绝对路径的命令。例如,./bin/bash 可以绕过 rbash 禁止的 /bin/bash

  2. 修改环境变量:攻击者可能尝试更改环境变量,以使得 rbash 失效或绕过限制。例如,可以修改 PATH 变量,将自己编写的可执行文件路径添加到前面,使其在寻找命令时被优先执行。

  3. 利用符号链接:攻击者可以创建符号链接,将被限制的命令链接到一个允许执行的命令上。这样,当执行受限制的命令时,实际上会执行符号链接所指向的命令。

  4. 利用别名或函数:攻击者可以创建别名或函数,将受限制的命令重定向到其他命令。当用户执行被限制的命令时,实际上会执行别名或函数中所定义的命令。

尽管存在上述绕过方法,但是这些方法需要具有足够权限的用户才能实施,而且在合规的系统配置下,这些绕过方法应该被阻止。为了保护系统的安全性,建议限制用户的权限,并确保正确配置 rbash 和其他安全措施。

配置环境变量

BASH_CMDS[a]=/bin/sh;a   	 #把/bin/bash给a变量
export PATH=$PATH:/bin/      #注:将 /bin 作为PATH环境变量导出
export PATH=$PATH:/usr/bin   #注:将 /usr/bin 作为PATH环境变量导出

得到flag3

查看id发现当前用户权限是tom

 提示要切换到jerry,查看是否有jerry用户

 切换回jerry用户

su jerry	# 切换回jerry用户

 

5. 提权

 获取到flag4,提示需要使用git进行提权

 寻找root用户拥有的文件,并将错误写入/dev/null

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

说明

  • find:这是一个用于查找文件和目录的命令。

  • /:这是要搜索的起始路径,/代表根目录,意味着搜索整个文件系统。

  • -user root:这个选项用于指定要查找的文件的所有者是"root"的文件。

  • -perm /4000:这个选项用于查找具有设置了SUID位的文件。SUID位是特殊权限位之一,它允许用户以拥有者的身份执行文件,而不是以自己的身份执行。这个权限位通常用于一些需要特权执行的程序。

  • 2>/dev/null: 这个部分将命令的标准错误输出重定向到/dev/null,意味着任何错误消息将被忽略

综上所述,该命令的目标是在整个文件系统中查找所有所有者为"root"并且设置了SUID位的文件,并返回这些文件的绝对路径。任何出现的错误消息将被忽略。

 看到拥有sudo权限, 使用sudo -l 显示当前用户可以用 sudo 执行那些命令。

说明-l 列出目前用户可执行与无法执行的指令。

 发现可以利用sudo执行git命令

查看提权命令网站:GTFOBins

 提权命令工具

文件复制进Kali中

然后进入gtfo-master-20230718221452-ut3xtbv/gtfo-master目录中执行如下命令:

python3 gtfo.py git

 回到之前的远程登录窗口,输入提权命令:

git branch --help config		# 提权命令
sudo git help config			# 提权命令

!/bin/sh

说明

  • branch: 这是git的一个子命令,用于管理分支。通过使用git branch命令,可以查看、创建、删除和重命名分支等。

  • sudo: 这是一个使用超级用户权限(root)执行命令的关键字。在执行需要特权操作的命令时,可能需要使用sudo来获取足够的权限。

  • git: 这是一个版本控制系统,用于管理项目的源代码。

  • help: 这是Git命令的一个子命令,用于获取特定命令的帮助信息。

  • config: 这是一个Git命令,用于管理和配置Git的各种选项和设置。

综上所述,该命令的目的是以超级用户权限执行git help config命令,以获取有关Git配置的帮助信息。这将显示有关如何使用git config命令来配置和管理Git的帮助文档。

说明

  • /bin/sh: 这是指定脚本应该使用的解释器的路径。在这种情况下,/bin/sh是指定使用/bin目录下的sh解释器执行这个脚本

 最后查看id,成功提权到root权限,并得到最后一个flag

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来日可期x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值