下载地址:https://www.vulnhub.com/entry/harrypotter-aragog-102,688/
作者Mansoor R在VulnHub上上传了哈利波特系列的三个靶机,以哈利波特为故事背景,玩家需要找到这三个靶机中的共8个魂器,打败伏地魔!这就冲起来!
首先是第一个靶机Aragog,以《哈利波特·密室》中的海格饲养的大蜘蛛阿拉戈命名,题目中提示这个靶机里面有两个魂器。
从VlunHub上下载靶机,在virtualbox或者VMware上打开,设置网络模式为桥接,让靶机和kali以及主机在一个局域网里。
当然,我们自己也能得到这个靶机的IP。打开kali(同样设置桥接网络),扫描靶机IP。
arp-scan -l
ARP(Address Resolution Protocol 地址解析协议),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
arp-scan可以用来扫面局域网内的主机,我们在virtualbox上打开靶机和Kali,可以通过这种方式快速扫描到靶机的IP。
PCS Systemtechnik GmbH这一行就是靶机的IP。
用nmap做一下端口扫描。
nmap -sT 192.168.0.106
结果如下:
我们可以看出,这个靶机可以用ssh登录,也可以用http访问。ssh登录得账号密码呀,我们先登一下http。
主页这张图片真是让我DNA动了。我把这个图片下下来,用exiftool看了,期待能有什么线索,并没有什么发现,而且这个网页就放了这一张图片。接下来,看看这个网站还有什么别的目录。
使用dirb来扫描Web服务
dirb 192.168.0.106
dirb是一个基于字典的web目录扫描工具,会用递归的方式来获取更多的目录,它还支持代理和http认证限制访问的网站
格式:dirb[ ] [options]
-a 设置user-agent
-p设置代理
-c 设置cookie
-z 添加毫秒延迟,避免洪水攻击
-o 输出结果
-X 在每个字典的后面添加一个后缀
-H 添加请求头
-i 不区分大小写搜索
这里会扫出来的目录有:
http://192.168.0.106/index.html
http://192.168.0.106/javascript
http://192.168.0.106/server-status
http://192.168.0.106/blog
一堆blog下子目录
赤裸裸的提示啊有没有。
Just another WordPress site.
We will be deleting some of our unused wordpress plugins in future as security best practices.
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。
那么思路就是找到这个版本的WordPress有什么插件的漏洞。
用wpscan,去注册个账号获取api-token。
export WPTOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
wpscan --api-token=$WPTOKEN --url=http://192.168.0.106/blog -e p --plugins-detection aggressive
在插件中扫出了4个漏洞,依次点击它们的网址,其中File Manager 6.0-6.9 -Unauthenticated Arbitrary File Upload leading to RCE这个提供了poc脚本。
下载这个脚本到本地。
打开脚本,查看脚本用法。
根据这个用法解释,我们就知道怎么使用了。这个漏洞可以让我们上传任意文件,或者远程执行代码。Kali自带php反弹shell的脚本,我们把它复制到当前文件夹下,并改名为payload.php
修改其中的ip为kali的IP,端口号记住。
然后再执行那条指令把payload.php上传。
python3 2020-wp-file-manager-v67.py http://192.168.0.106/blog
用nc监听刚刚的那个端口,然后登录这个网站,获取shell。这里这个网址多了一个blog,把它去掉。
nc -lnvp 1234
这时候看看home目录,第一个魂器就出现了。在海格98目录下有魂器1的文档,解码后是“里德尔的日记本被哈利在密室中摧毁”。
接下来就是找第二个魂器。我们要获取root权限。wordpress用户会在mysql数据库中存储信息,在/etc/wordpress里可以打开config-default.php。这里记录了MySQL的用户名密码。
登录数据库,首先得获取一个tty shell,不然看不到mysql的输出。
python -c 'import pty; pty.spawn("/bin/sh")'
这里有用户名以及哈希后的密码。
于是我们就获得了用户名:hagrid98,密码password123。
ssh登录一下。
然后我们可以用 linpeas.sh这个辅助提权工具。首先在kali上下好linpeas,然后开9000端口,在靶机ssh终端下把它复制到/tmp文件夹下。
python3 -m http.server 9000
chmod +x ./linpeas.sh
./linpeas.sh
这里找到一个backup.sh。这个脚本负责复制这个uploads到tmp里面。属于那种隔段时间就会执行的脚本。
用pspy64看一下执行这个脚本的用户。
在kali上下载pspy64,然后复制到靶机/tmp目录下。
pspy64地址:https://github.com/DominicBreuker/pspy
就还是开一个端口,下到靶机上,执行。
可以看到,这个脚本的UID是0。
那我们就可以改一下这个脚本。让它在执行这个脚本的时候,返回root权限用户的bash,然后bash -p就行。
然后找魂器!
第二个魂器get。“马沃罗·冈特的戒指被邓布利多摧毁”。
接下来还有6个魂器,加油!