家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

【Hack The Box】Cronos

偵察/スキャン

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の接続はすぐ切れてしまい使用できませんでした。

nc実行時の様子

コマンドの実行ができるので、次にphp-reverse-shellをcronosにダウンロードし、リバースシェルの取得を試みます。

BurpSuiteでのリクエスト書き換え

今度はシェルが取得できました。

リバースシェル取得

特権昇格

アクセス取得後linpeasを実行するとroot権限で実行しているcronが確認できました。

linpeas.sh実行結果

また対象のファイルは「www-data」の権限であることが確認できました。

そのため、対象ファイルを先ほどのphp-reverse-shellに置き換えることでrootのアクセスが取得可能です。

artisanの権限確認

Kali側で待ち受け状態で対象ファイルをphp-reverse-shellに置き換えるとしばらくしてrootが取得できました。

root取得

参考にさせていただいたサイト

貴重な情報をありがとうございます。

qiita.com

0xdf.gitlab.io