目次
偵察/スキャン
nmapでスキャンします。
-p-でスキャンし、確認できたポートに詳細なスキャンを行います。
┌──(kali㉿kali)-[~/htb/sau] └─$ nmap -sC -sV -A -O -p22,80,8338,55555 10.10.11.224 Starting Nmap 7.94SVN ( https://nmap.org ) Nmap scan report for 10.10.11.224 Host is up (0.20s latency). PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 aa:88:67:d7:13:3d:08:3a:8a:ce:9d:c4:dd:f3:e1:ed (RSA) | 256 ec:2e:b1:05:87:2a:0c:7d:b1:49:87:64:95:dc:8a:21 (ECDSA) |_ 256 b3:0c:47:fb:a2:f2:12:cc:ce:0b:58:82:0e:50:43:36 (ED25519) 80/tcp filtered http 8338/tcp filtered unknown 55555/tcp open unknown | fingerprint-strings: | FourOhFourRequest: | HTTP/1.0 400 Bad Request | Content-Type: text/plain; charset=utf-8 | X-Content-Type-Options: nosniff | Date: Tue, 12 Nov 2024 07:09:27 GMT | Content-Length: 75 | invalid basket name; the name does not match pattern: ^[wd-_\.]{1,250}$ | GenericLines, Help, Kerberos, LDAPSearchReq, LPDString, RTSPRequest, SSLSessionReq, TLSSessionReq, TerminalServerCookie: | HTTP/1.1 400 Bad Request | Content-Type: text/plain; charset=utf-8 | Connection: close | Request | GetRequest: | HTTP/1.0 302 Found | Content-Type: text/html; charset=utf-8 | Location: /web | Date: Tue, 12 Nov 2024 07:08:57 GMT | Content-Length: 27 | href="/web">Found. | HTTPOptions: | HTTP/1.0 200 OK | Allow: GET, OPTIONS | Date: Tue, 12 Nov 2024 07:08:58 GMT |_ Content-Length: 0 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service : SF-Port55555-TCP:V=7.94SVN%I=7%D=11/12%Time=6732FEFE%P=x86_64-pc-linux-gnu SF:%r(GetRequest,A2,"HTTP/1\.0\x20302\x20Found\r\nContent-Type:\x20text/ht SF:ml;\x20charset=utf-8\r\nLocation:\x20/web\r\nDate:\x20Tue,\x2012\x20Nov SF:\x202024\x2007:08:57\x20GMT\r\nContent-Length:\x2027\r\n\r\n<a\x20href= SF:\"/web\">Found\.\n\n")%r(GenericLines,67,"HTTP/1\.1\x20400\x20Bad\x SF:20Request\r\nContent-Type:\x20text/plain;\x20charset=utf-8\r\nConnectio SF:n:\x20close\r\n\r\n400\x20Bad\x20Request")%r(HTTPOptions,60,"HTTP/1\.0\ SF:x20200\x20OK\r\nAllow:\x20GET,\x20OPTIONS\r\nDate:\x20Tue,\x2012\x20Nov SF:\x202024\x2007:08:58\x20GMT\r\nContent-Length:\x200\r\n\r\n")%r(RTSPReq SF:uest,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\x20text/pl SF:ain;\x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400\x20Bad\x20Requ SF:est")%r(Help,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\x2 SF:0text/plain;\x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400\x20Bad SF:\x20Request")%r(SSLSessionReq,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\ SF:nContent-Type:\x20text/plain;\x20charset=utf-8\r\nConnection:\x20close\ SF:r\n\r\n400\x20Bad\x20Request")%r(TerminalServerCookie,67,"HTTP/1\.1\x20 SF:400\x20Bad\x20Request\r\nContent-Type:\x20text/plain;\x20charset=utf-8\ SF:r\nConnection:\x20close\r\n\r\n400\x20Bad\x20Request")%r(TLSSessionReq, SF:67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\x20text/plain;\ SF:x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400\x20Bad\x20Request") SF:%r(Kerberos,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\x20 SF:text/plain;\x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400\x20Bad\ SF:x20Request")%r(FourOhFourRequest,EA,"HTTP/1\.0\x20400\x20Bad\x20Request SF:\r\nContent-Type:\x20text/plain;\x20charset=utf-8\r\nX-Content-Type-Opt SF:ions:\x20nosniff\r\nDate:\x20Tue,\x2012\x20Nov\x202024\x2007:09:27\x20G SF:MT\r\nContent-Length:\x2075\r\n\r\ninvalid\x20basket\x20name;\x20the\x2 SF:0name\x20does\x20not\x20match\x20pattern:\x20\^\[\\w\\d\\-_\\\.\]{1,250 SF:}\$\n")%r(LPDString,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-T SF:ype:\x20text/plain;\x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400 SF:\x20Bad\x20Request")%r(LDAPSearchReq,67,"HTTP/1\.1\x20400\x20Bad\x20Req SF:uest\r\nContent-Type:\x20text/plain;\x20charset=utf-8\r\nConnection:\x2 SF:0close\r\n\r\n400\x20Bad\x20Request"); 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 (96%), 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: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TCP/55555の調査
http://10.10.11.224:55555にアクセスすると以下のようなページが表示されます。
上記のページの下の方に「request-baskets Version: 1.2.1」の文字列が確認できます。
その情報でGoogle検索するとCVE-2023-27163に情報が確認できます。
CVE-2023-27163はSSRFの脆弱性で、サーバーが自分に代わり内部へリクエストできます。
CVE-2023-27163のexploitとしては、以下のリポジトリが見つかります。
上記をダウンロードして実行します。
実行するとTCP/80にアクセス可能なリンクが作成されます。
./CVE-2023-27163.sh http://10.10.11.224:55555 http://127.0.0.1:80
作成されたリンクにアクセスすると以下のようなページが表示されます。
CSSと画像は読み込まれませんが、「Mailtrail v0.53」という情報が確認できます。
アクセス取得
上記で確認できた情報で再度Google検索すると以下のexploitが見つかります。
先程同様に、ncで待ち受けた状態でexploitを実行すると「puma」のシェルを取得できました。
権限昇格
pumaで「sudo -l」を実行すると「/usr/bin/systemctl status trail.service」がroot権限で実行できるようです。
sudoで実行すると表示が多く途中でlessとなります。
以下のサイトによると、systemdにはCVE-2023-26604の脆弱性があり、ターミナルのサイズが小さい場合、systemctl statusの出力がlessに渡される際に「!sh」と入力するとrootが取得できます。
実際に途中で「!sh」を入力するとrootが取得できました。
その他