偵察/スキャン
nmapでスキャンします。
┌──(kali㉿kali)-[~] └─$ nmap -T4 -P0 -sC -sV -A -p- 10.10.10.13 Starting Nmap 7.93 ( https://nmap.org ) Warning: 10.10.10.13 giving up on port because retransmission cap hit (6). Nmap scan report for 10.10.10.13 Host is up (0.18s latency). Not shown: 65521 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 18b973826f26c7788f1b3988d802cee8 (RSA) | 256 1ae606a6050bbb4192b028bf7fe5963b (ECDSA) |_ 256 1a0ee7ba00cc020104cda3a93f5e2220 (ED25519) 53/tcp open domain ISC BIND 9.10.3-P4 (Ubuntu Linux) | dns-nsid: |_ bind.version: 9.10.3-P4-Ubuntu 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-title: Apache2 Ubuntu Default Page: It works |_http-server-header: Apache/2.4.18 (Ubuntu) 4347/tcp filtered lansurveyor 9416/tcp filtered unknown 17145/tcp filtered unknown 18011/tcp filtered unknown 25136/tcp filtered unknown 34257/tcp filtered unknown 46900/tcp filtered unknown 49310/tcp filtered unknown 50681/tcp filtered unknown 53099/tcp filtered unknown 64542/tcp filtered unknown Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
TCP/22,53,80が開いていることがわかりました。
/etc/hostsを登録することで以下のページが表示されます。
dirbやnikto等では有益な情報は得られませんでした。
DNSについて調査します。
dgiコマンドのオプション「axfr」ではゾーン転送可能か確認できます。
dig @{dnsserver} {domain} axfr
成功すると以下のようにゾーン情報がすべて取得することができます。
┌──(kali㉿kali)-[~] └─$ dig axfr cronos.htb @10.10.10.13 ;; Connection to 10.10.10.13#53(10.10.10.13) for cronos.htb failed: timed out. ; <<>> DiG 9.18.8-1-Debian <<>> axfr cronos.htb @10.10.10.13 ;; global options: +cmd cronos.htb. 604800 IN SOA cronos.htb. admin.cronos.htb. 3 604800 86400 2419200 604800 cronos.htb. 604800 IN NS ns1.cronos.htb. cronos.htb. 604800 IN A 10.10.10.13 admin.cronos.htb. 604800 IN A 10.10.10.13 ns1.cronos.htb. 604800 IN A 10.10.10.13 www.cronos.htb. 604800 IN A 10.10.10.13 cronos.htb. 604800 IN SOA cronos.htb. admin.cronos.htb. 3 604800 86400 2419200 604800 ;; Query time: 180 msec ;; SERVER: 10.10.10.13#53(10.10.10.13) (TCP) ;; WHEN: Sat Jan 07 21:43:46 JST 2023 ;; XFR size: 7 records (messages 1, bytes 203)
admin.cronos.htbというページが確認できました。
アクセス取得
admin.cronos.htbにアクセスすると以下のような画面が表示されます。
SQLインジェクションで認証バイパスを試してみたところ、以下の内容で成功しました。
admin' or 1 = 1 #
ログインすると以下のようなページが表示されます。
Burp Suiteでリクエストの内容を見てみるとPOSTでコマンド実行しているような部分が確認できました。
Burp Suiteでリクエストを書き換えてncを実行すると待ち受け側のターミナルに接続しに来ていることが確認できました。
ただ、ncの接続はすぐ切れてしまい使用できませんでした。
コマンドの実行ができるので、次にphp-reverse-shellをcronosにダウンロードし、リバースシェルの取得を試みます。
今度はシェルが取得できました。
特権昇格
アクセス取得後linpeasを実行するとroot権限で実行しているcronが確認できました。
また対象のファイルは「www-data」の権限であることが確認できました。
そのため、対象ファイルを先ほどのphp-reverse-shellに置き換えることでrootのアクセスが取得可能です。
Kali側で待ち受け状態で対象ファイルをphp-reverse-shellに置き換えるとしばらくしてrootが取得できました。
参考にさせていただいたサイト
貴重な情報をありがとうございます。