← Prehľad cvičení · Predchádzajúce cvičenie · Nasledujúce cvičenie
Overiť integritu dát pomocou hašov a preskúmať certifikáty a certifikačné autority.
Alternatívna topológia pre Cisco
V tomto cvičení sa naučíte používať rôzne typy hašovacích algoritmov na vytváranie hašov zo súborov. Taktiež sa naučíte používať haš na overenie integrity súborov. Vyskúšate si aj hašovanie textového súboru a jeho následné prelomenie hašu pomocou nástroja OpenSSL. Vašou úlohou bude ďalej aj prelomiť haše hesiel, ktoré ste získali z aplikácie DVWA na cvičení **06_Webové útoky SQL Injection a XSS. **Na prelomenie hašov budete používať nástroj **john. **V ďalšej časti vytvoríte súbory, ktoré zaheslujeme do ZIP súboru a následne použijete nástroj fcrackzip na prelomenie hesla. Ukážeme si aj metódy ako hašovať a vytvárať heslo, aby bolo takmer neprelomiteľné. Vyskúšame rôzne hašovacie metódy. Cvičenie je tiež zamerané na pochopenie certifikačných autorít, overovanie dôveryhodnosti certifikátov a odhalenie možných útokov typu Man-in-the-Middle (MITM), pomocou hašov.
Toto laboratórne cvičenie vzniklo aj na základe týchto oficiálnych Netacad labov a ich doplnením:
21.1.6 - Hashing Things Out
21.2.10 - Encrypting and Decrypting Data Using OpenSSL
21.2.11 - Encrypting and Decrypting Data Using a Hacker Tool
21.4.7 – Certificate Authority Stores
Topológia v GNS3 alebo virtuálne zariadenia vo VirtualBox-e
Webový prehliadač (Chrome, Firefox) na vlastnom PC
Názov |
Meno |
Heslo |
Kali Linux * |
<kali user> |
<kali password> |
Metasploitable |
msfadmin |
msfadmin |
SecurityOnion-Realtime * |
<securityonion user> |
<securityonion password> |
SecurityOnion-Cyberops |
analyst |
cyberops |
OpenWRT |
root |
|
OpenvSwitch |
root |
|
GVM |
admin |
admin |
Cisco 2691 |
(bez mena) |
(bez hesla) |
* - zariadenie má používateľa a heslo ktorého vytvoril študent počas cvičenia 1 v časti Zmena username
Transformačné (hašovacie) funkcie sú matematické algoritmy navrhnuté tak, aby brali údaje ako vstup a generovali jedinečný reťazec znakov s pevnou veľkosťou, známy aj ako hash. Hashovacie funkcie sú navrhnuté tak, aby boli rýchle a aby bolo veľmi ťažké obnoviť údaje z daného hašu. Ďalšou dôležitou vlastnosťou hašovacej funkcie je, že aj najmenšia zmena vykonaná vo vstupných údajoch prinesie úplne iný haš (hash). Zatiaľ čo OpenSSL možno použiť na generovanie a porovnávanie hašov, k dispozícii sú aj iné nástroje. Niektoré z týchto nástrojov sú zahrnuté aj v tomto cvičení.
OpenSSL možno použiť ako samostatný nástroj na hašovanie. Ak chcete vytvoriť „hash“ textového súboru, postupujte podľa nasledujúcich krokov:
Otvorte terminál na zariadení Kali
Vytvorte si súbor password.txt, do ktorého zadáte 5-10 miestne heslo – zadajte tam vaše priezvisko
Z okna terminálu zadajte príkaz uvedený nižšie na zahašovanie vášho súboru s heslom Príkaz použije SHA-2-256 ako hašovací algoritmus na generovanie hašu textového súboru
openssl sha256 password.txt
Pozn.: Haš sa zobrazí na obrazovke, keď ho OpenSSL vypočíta
Upravte si textový súbor password.txt tak, že zmeníte jeden znak z vášho hesla
Teraz znova použite ten istý hashovací algoritmus
Možno použiť aj hashovací algoritmus s väčšou bitovou dĺžkou, ako je SHA-2-512. Ak chcete vygenerovať hash SHA-2-512 súboru password.txt, použite príkaz nižšie:
openssl sha512 password.txt
Teraz použijeme iný nástroj na hashovanie. Pomocou** sha256sum** a sha512sum vygenerujte hash SHA-2-256 a SHA-2-512 súboru password.txt:
sha256sum password.txt
sha512sum password.txt
SHA-2 je odporúčaný štandard pre hashovanie. Zatiaľ čo SHA-2 ešte nebol efektívne kompromitovaný, počítače sú čoraz výkonnejšie. Očakáva sa, že tento prirodzený vývoj čoskoro umožní útočníkom prelomiť SHA-2. SHA-3 je najnovší hashovací algoritmus a je náhradou za SHA-2
Poznámka: Kali VM obsahuje iba podporu pre SHA-2-224, SHA-2-256 a SHA-2-512 (sha224sum, sha256sum a sha512sum)
Ako už bolo spomenuté, hash sa bežne používa na overenie integrity súboru. Ak chcete použiť hodnoty hashu SHA-2-256 na overenie integrity súboru sample.img (súboru stiahnutého z internetu), postupujte podľa nasledujúcich krokov
Otvoríme adresár /usr/local/share/lab.support.files/
ls si zobrazíme obsah priečinka a skontrolujeme či je v priečinku súbor sample.imgSpolu so sample.img bol stiahnutý aj sample.img_SHA256.sig. sample.img_SHA256.sig je súbor obsahujúci hash SHA-2-256, ktorý vypočítala webová stránka. Najprv použite príkaz cat na zobrazenie obsahu súboru sample.img_SHA256.sig:
cat sample.img_SHA256.sig
Na výpočet hashu SHA-2-256 súboru sample.img použite SHA256sum
sha256sum sample.img
Aj keď je porovnávanie hashov pomerne robustná metóda na zistenie chýb prenosu, existujú lepšie spôsoby, ako zistiť, že sa so súborom nemanipulovalo. Nástroje, ako napríklad gpg, poskytujú oveľa lepšiu metódu na zistenie toho, že stiahnutý súbor nebol upravený tretími stranami a v skutočnosti ide o súbor, ktorý vydavateľ zverejnil.
OpenSSL je open source projekt, ktorý poskytuje robustnú, komerčnú a plne vybavenú sadu nástrojov pre protokoly Transport Layer Security (TLS) a Secure Sockets Layer (SSL). Je to tiež univerzálna kryptografická knižnica. V tejto časti budete používať OpenSSL na hašovanie a prelomenie hašov.
Zatiaľ čo OpenSSL je dnes de facto kryptografickou knižnicou, použitie prezentované v tomto laboratórnom cvičení sa NEODPORÚČA na robustnú ochranu. Nižšie sú uvedené dva bezpečnostné problémy:
Metóda opísaná v tejto časti používa slabú funkciu derivácie kľúča. JEDINÉ zabezpečenie predstavuje veľmi silné heslo.
Metóda opísaná v tejto časti nezaručuje integritu textového súboru.
Príklady z tejto časti by sa mali používať iba na inštruktážne účely. Uvedené metódy by sa NEMALI používať na zabezpečenie skutočne citlivých údajov.
Zahašujeme textový súbor
OpenSSL možno použiť ako samostatný nástroj na hašovanie. Aj keď je možné použiť mnoho hašovacích algoritmov, v tomto cvičení sa zameriava na AES
Prihlásime sa do zariadenia Kali
Otvoríme terminálové okno
Otvoríme adresár /usr/local/share/lab.support.files/
Vypíšeme v termináli obsah súboru letter_to_grandma.txt
Premenuje si názov tohto súboru na letter_to_priezvisko.txt, kde namiesto priezvisko zadáte vaše priezvisko, a vždy keď v zadaní uvedieme súbor letter_to_grandma.txt, vy použijete tento svoj premenovaný súbor.
Zahašujeme tento súbor priamo v terminály
Použijeme OpenSSL a algoritmus AES-256
Výstup uložíme do súboru message.enc – v zadaní sa budeme odkazovať na súbor message.enc, vy použite názov súboru message_priezvisko.enc, kde namiesto priezvisko zadajte svoje priezvisko
sudo openssl aes-256-cbc -in letter_to_grandma.txt -out message.enc
OpenSSL si vyžiada heslo a jeho potvrdenie
Použite príkaz cat na vypísanie súboru message.enc
Zobrazil sa súbor správne? (hint: binary file)
Ako vyzerá?
Použite OpenSSL znova pre zahašovanie súboru, ale zvoľte -a možnosť. Voľba -a hovorí OpenSSL, aby pred uložením výsledkov do súboru zakódoval zahašovanú správu pomocou inej metódy kódovania, a to Base64.
sudo openssl aes-256-cbc -a -in letter_to_grandma.txt -out message.enc
Vypíšte súbor message.enc znova
Prelomenie hašu textového súboru
Použite príkaz na rozšifrovanie súboru – namiesto decrypted_letter použite decrypted_letter_priezvisko, a ďalej pracujte s týmto zmeneným názvom súboru
sudo openssl aes-256-cbc -a -d -in message.enc -out decrypted_letter.txt
Vložte heslo, ktoré ste si zvolili
Vypíšte súbor decrypted_letter.txt
Príkaz používaný na prelomenie hašu obsahuje aj voľbu -a. Viete vysvetliť prečo?
Pripravenie hesiel
Prihláste sa do Kali Linux
Nájdite súbor, kde ste si uložili zahašované heslá z cvičenia *RBI_LAB06_Webové útoky SQL Injection a XSS a pohľad SOC analytika *
Otvorte súbor a upravte ho tak aby bol formát v podobe meno:zahašované_heslo
Obsah výsledného súboru je nasledovný:
admin:5f4dcc3b5aa765d61d8327deb882cf99
gordonb:e99a18c428cb38d5f260853678922e03
1337:8d3533d75ae2c3966d7e0d4fcc69216b
pablo:0d107d09f5bbe40cade3de5c71e9e9b7
smithy:5f4dcc3b5aa765d61d8327deb882cf99
Uložte si tento súbor
Prelomenie hašov hesiel
Na prelomenie hašov týchto hesiel použijeme nástroj john the ripper
Otvorte si terminál a zobrazte nápovedu k príkazu
john -h
Na terminál sa vám vypíšu možné prepínače, ktoré podporuje tento program
Ako ďalší príkaz použite:
john –-list=formats
Teraz bude vašou úlohou prelomiť haše hesiel z daného súboru, ktorý ste si uložili. Použite formát raw-md5
john --format=raw-md5 súbor
Čo vidíme vo výsledku?
Pomocou príkazu john -–show -–format=raw-md5 súbor si môžete zobraziť hesla, ktoré sa prelomili.
Zahašujte si heslo
Tabuľka porovnania: Hash Algorithm Comparison: MD5, SHA-1, SHA-2 & SHA-3
Choďte na stránku Password Generator - Strong Password Generator -> MD5 generátor
Zvoľte si ľubovoľné heslo (najlepšie krátke aby prelomenie hašu netrvalo dlho – použite vaše priezvisko, alebo jeho časť)
Heslo zahašujte všetkými hašovacími funkciami na stránke (md5, sha1, sha256, sha512)
Porovnajte zložitosť hašov
Použite nástroj john the ripper na prelomenie vašich hašov a porovnajte, ktorý haš, prislúchajúci danej hašovacej funkcií, bol rozšifrovaný najskôr a naopak, ktorý bol prelomený ako posledný. Vytvorte súbory s jednotlivými hašmi, buď iba so samotným hašom alebo vo formáte meno:hash.
Použite heslo pre zip súbor a následne vykonať to isté s nástrojom fcrackzip
Skúste tieto haše porovnať s nástrojom OpenSSL
V tejto časti sa budeme venovať zašifrovaniu súboru do obrázka pomocou nástroja steghide.
Postup:
Inštalácia nástroja steghide
sudo apt update
sudo apt install steghide
Inštalácia nástroja imagemagick (pre konverziu obrázkov)
sudo apt install imagemagick
príprava súborov
Vytvorte screenshot pomocou prntscrn. Screenshot sa uloží do priečinka pictures. Tento obrázok bude slúžiť ako cieľ pre vloženie dát.
Pozn.: prntscrn funguje pre VM vo VirtualBoxe ale aj pre GNS3 Spice klienta, nie však pre VNC, preto v prípade použitia VNC stiahnite nejaký obrázok z internetu.
konverzia obrázka do jpg
mogrify -format jpg screenshot.png
Pozn.: miesto screenshot.png zadajte názov screenshotu s príponou png (alternatívne iný obrázok s tým, že ak je iný formát tak treba aj zmeniť formát)
Vytvorte súbor sprava.txt a do obsahu vložte nejaký text, napr:
Táto správa je tajná
vloženie tajnej správy do obrázka pomocou steghide
zobrazte si nápovedu pre steghide
steghide --help
zakomponujte súbor do obrázka
steghide embed -ef sprava.txt -cf obrazok.jpg -sf vysledok.jpg -p nejakeHeslo
Pozn.: miesto sprava.txt vložte súbor s textom z kroku 3.c, miesto obrazok.jpg vložte prekonvertovaný obrázok z kroku 3.b, meisto vysledok.jpg vložte názov nového obrázka.jpg a miesto nejakeHeslo vložte ľubovoľné heslo (slúži pre zašifrovanie, preto si heslo zapamätajte)
porovnanie vygenerovaného obrázka s originálom
zobrazte si súbor a porovnajte vizuálne zmeny, zapíšte poznatok
porovnajte veľkosť súborov
porovnajte hash súborov
extrahujte súbor z obrázku
použite steghide na extrakciu
steghide extract -sf vysledok.jpg -xf sprava.txt
Pozn.: miesto vysledok.jpg vložte názov vygenerovaného obrázku (so skrytým súborom), sprava.txt je názov súboru do ktorého sa vloží obsah
porovnanie extrahovaný súbor z obrázka s originálom
zobrazte si súbor a porovnajte vizuálne zmeny, zapíšte poznatok
porovnajte veľkosť súborov
porovnajte hash súborov
Vytvorenie hesla pre ZIP súbor a útok hrubou silou na heslo
Prihláste sa do zariadenia Kali
Vytvorenie 5 textových súborov
Otvorte terminál
Vytvorte nový priečinok: ZipFiles
mkdir ZipFiles
Choďte do priečinku: ZipFiles
cd ZipFiles
Pre vytvorenie súboru použite príkaz:
echo Text# > priezvisko#.txt
Pozn.: # číslo súboru, a namiesto priezvisko zadajte vaše priezvisko, a v nasledujúcej časti zadania používajte tento svoj názov súborov
Použite príkaz ls na overenie či sa tieto správy podarilo vytvoriť
Zazipujte a zaheslujete tieto textové súbory
Na tento účel použijeme nástroj zip, zobrazte si nápovedu pre tento nástroj
zip -h
Pre zaheslovanie použite príkaz:** **
zip -e zip_priezvisko.zip priezvisko*
Zadajte maximálne 5 miestne heslo (kvôli tomu aby vám rozšifrovanie netrvalo dlho)
-e: znamená, že sa výsledný súbor zašifruje
zip_priezvisko.zip : výsledný zaheslovaný súbor
priezvisko* : zazipuje všetky súbory, ktoré obsahujú na začiatku mena súboru „priezvisko“
Vyskúšajte unzip pre tento súbor a použite zle heslo:
unzip zip_priezvisko.zip
Na odšifrovanie tohto zip súboru použijeme nástroj fcrackzip, ktorý skúša heslá hrubou silou
Zobrazme si nápovedu pre tento nástroj aby sme vedeli použiť prepínače
fcrackzip -h
Následne použite príkaz pre zistenie hesla:
fcrackzip -v -u -l 1-5 zip_priezvisko.zip
Čím zložitejšie heslo použijete, tým dlhšie trvá útok hrubou silou na heslo.
9 Certifikačné autority
Naučíme sa pracovať s certifikátmi v Chrome a Firefox a pochopíme koncept root CA a intermediate CA.
HTTPS sa pri overovaní spolieha na entitu tretej strany. Táto entita tretej strany známa ako certifikačná autorita (CA). Táto autorita overuje, či názov domény skutočne patrí organizácii, ktorá si nárokuje jeho vlastníctvo, ak overenie skontroluje, CA vytvorí digitálne podpísaný certifikát obsahujúci informácie o organizácii vrátane jej verejného kľúča. Celý systém je založený na skutočnosti, že webové prehliadače a operačné systémy sa dodávajú so zoznamom CA, ktorým dôverujú. Všetky certifikáty podpísané ktoroukoľvek z CA v zozname budú prehliadačom považované za legitímne a budú automaticky dôveryhodné. Aby bol systém bezpečnejší a škálovateľnejší, CA často rozširujú úlohy vytvárania a podpisovania certifikátov medzi mnohými podriadenými CA. Nadradená CA je známa ako koreňová „root“ CA. Ak prehliadač dôveruje koreňovej CA, dôveruje aj všetkým svojim podriadeným CA.
V nasledujúcej kapitole si zobrazíme koreňové certifikáty v prehliadači Firefox. Túto kapitolu môžeme vykonať aj na našom počítači alebo použiť Firefox v CyberOps Workstation VM. Ak použijete prehliadač iný než Firefox, nájdite si na internete kroky ako zobraziť Vaše koreňové certifikáty.
Otvorte Firefox prehliadač na PC
Klikneme na „hamburger“ menu v pravom hornom rohu následne na položku Nastavenia.
Z ponuky na ľavo si vyberieme Súkromie a bezpečnosť a prejdeme nadol do sekcie Certifikáty a klikneme na tlačidlo Zobraziťc ertifikáty...
Môžeme vidieť okno správcu certifikátov, kde sú zobrazené dôveryhodné certifikačné autority uložené v systéme, ktoré predstavuje zoznam certifikátov spolu s bezpečnostnými zariadeniami, ktoré ich spravujú (Builtin Object Token znamená, že sú súčasťou predinštalovaného zoznamu dôveryhodných certifikátov).
Príklad ACCV je hlavná certifikačná autorita, kdežto ACCVRAIZ1 je konkrétny certifikát tejto autority, pravdepodobne root certifikát.
Pre detailnejšiu analýzu si zobrazíme kliknutím na daný certifikát a môžeme vidieť niektoré jeho vlastnosti.
Názov subjektu
Názov vydavateľa – pokiaľ sú rovnaké údaje ako subjekt, tak ide o root certifikát (seba-podpísaný, čiže najvyššia úroveň dôveryhodnosti
Platnosť
Alternatívne názvy subjektu
Informácie o verejnom kľúči
Rôzne
Odtlačky
Základné obmedzenia
Použitia kľúča
ID kľúča subjektu
ID kľúča autority
CRL koncové body
Informácie o autorite
Pravidlá certifikátu
9 Certifikačné autority
Porovnanie certifikačných odtlačkov medzi rôznymi zdrojmi, použitie OpenSSL na získanie a analýzu certifikátov a overenie prítomnosti HTTPS proxy a analýza dôsledkov MITM útokov
Bežné použitie hashov je na overenie integrity údajov, ale môžu sa použiť aj na detekciu HTTPS man-in-the-middle útokov.
V záujme ochrany údajov používateľov čoraz viac webových stránok prechádza na šifrovanú prevádzku. Známe ako HTTPS, používajú protokoly ako TLS/SSL na šifrovanie používateľskej prevádzky od zdroja k cieľu. Po správnom zašifrovaní prevádzky sa pre iné strany ako používateľa a danú stránku veľmi ťažké vidieť obsah šifrovanej správy. To je dobré pre používateľov, ale vytvára to problém pre organizácie, ktoré chcú nahliadnuť do tejto prevádzky. Spoločnosti a organizácie sa často rozhodnú nahliadnuť do prevádzky generovanej zamestnancami za účelom monitorovania. Potrebovali mať možnosť nahliadnuť do prevádzky šifrovanej pomocou TLS/SSL. To sa vykonáva pomocou HTTPS proxy servera.
Webové prehliadače dôverujú identite navštívenej webovej stránky, ak je certifikát predložený touto webovou stránkou podpísaný jednou z certifikačných autorít nainštalovaných v úložisku certifikátov prehliadača. Aby mohli firmy a organizácie nahliadnuť do šifrovanej prevádzky TLS/SSL svojich používateľov, musia jednoducho pridať ďalšiu certifikačnú autoritu do zoznamu nainštalovaných certifikačných autorít v prehliadači používateľa.
Berme do úvahy nižšie uvedený scenár:
Firma X príjme nového pracovníka, ktorému poskytne počítač. Ale ešte pred tým, IT oddelenie nainštaluje potrebný softvér ak s extra CA dôveryhodných certifkátov. Takýto CA je nadviazaný na centrálne kontrolovaný PC v úlohe ako HTTPS proxy. Tým, že firma kontroluje vzorce správania prevádzky, HTTPS proxy môže byť umiestnená uprostred ľubovoľného spojenia.
Princíp činnosti je nasledovný:
Používateľ sa pokúša nadviazať bezpečné pripojenie k webovej lokalite (W) s HTTPS. Tým, že firma kontroluje prevádzku, všetka používateľská prevádzka musí prechádzať cez HTTPS proxy. Proxy sa vydáva za (W) a prezentuje používateľovi svoj vlastnoručne podpísaný certifikát ako dôkaz, že je (W). V podstate hovorí: „Ahoj, som HTTPS stránka (W). Tu je môj certifikát, ktorý som si podpísal sám.“ Keďže prezentovaný certifikát je podpísaný jednou z certifikačných autorít (CA) uložených v systéme notebooku (keďže ju tam pridal IT oddelenie), webový prehliadač si mylne myslí, že komunikuje priamo s (W). Ak by však táto dodatočná CA nebola pridaná do úložiska certifikátov, notebook by certifikátu nedôveroval a okamžite by rozpoznal pokus o vydávanie sa za (W). Notebook dôveruje spojeniu a nadviaže zabezpečený kanál s HTTPS proxy, pričom si mylne myslí, že komunikuje bezpečne priamo s (W). HTTPS proxy následne nadviaže druhé zabezpečené spojenie s (W), na ktorý sa používateľ pôvodne pokúšal pristúpiť. HTTPS proxy je teraz koncový bod dvoch samostatných zabezpečených spojení – jedno s používateľom a druhé s (W). Keďže je koncovým bodom oboch spojení, môže dešifrovať prenos z oboch strán. HTTPS proxy teraz prijíma používateľskú prevádzku šifrovanú pomocou TLS/SSL určenú pre (W), dešifruje ju, skontroluje, znovu zašifruje pomocou TLS/SSL a odošle na (W). Keď (W) odpovie, proxy proces obráti a následne odošle upravenú prevádzku späť používateľovi.
Tento proces je pre používateľa väčšinou neviditeľný – v prehliadači vidí pripojenie ako šifrované pomocou TLS/SSL (zelený zámok). Hoci je spojenie zabezpečené, bolo nadviazané so zavádzajúcou webovou stránkou.
Hoci sú TLS proxy pre používateľa väčšinou neviditeľné, dajú sa ľahko odhaliť pomocou hashov. V uvedenom príklade, keďže HTTPS proxy nemá prístup k súkromnému kľúču (W), certifikát, ktorý prezentuje používateľovi, sa líši od toho, ktorý poskytuje (W). Každý certifikát obsahuje hodnotu známu ako odtlačok, čo je v podstate hash vypočítaný a podpísaný vydavateľom certifikátu.
Vďaka vlastnosti hashov sa odtlačky používajú na rýchle porovnanie certifikátov. V našom príklade môže používateľ požiadať o certifikát priamo od (W) a porovnať jeho odtlačok s tým, ktorý získal pri nadviazaní spojenia. Ak sa odtlačky zhodujú, spojenie bolo skutočne nadviazané s (W). Ak sa nezhodujú, spojenie prebieha cez iný koncový bod.
Prvým krokom je zhromaždenie odtlačkov certifikátov niekoľkých webových stránok. Toto je dôležité, pretože tieto odtlačky budú neskôr použité na porovnanie. Nižšie uvedená tabuľka obsahuje odtlačky certifikátov niektorých populárnych webových stránok.
Poznámka: Odtlačky SHA-1 uvedené v tabuľke môžu byť neplatné, keďže organizácie pravidelne obnovujú svoje certifikáty. Na Windows systémoch sa odtlačok niekedy označuje ako Thumbprint.
Webstránka |
Doména obsahujúca certifikát |
Odtlačok SHA-1 certifikátu (február 2025) |
www.cisco.com |
www.cisco.com |
A5:56:5B:24:56:04:D3:93:24:59:2A:0D:0C:9F:81:41:A5:1C:1E:27 |
www.facebook.com |
*.facebook.com |
6C:9F:40:CF:33:CE:F1:D0:0D:21:89:92:19:C6:9E:9A:1A:CB:51:93 |
www.wikipedia.org |
*.wikipedia.org |
0B:3A:AB:D4:5E:55:A4:08:2B:F7:C1:DA:63:37:75:F1:EB:04:6E:A5 |
www.x.com |
*.twitter.com |
96:64:36:1B:92:7B:5B:EE:1D:61:BE:CB:06:0E:11:12:72:B1:B4:D6 |
www.linkedin.com |
www.linkedin.com |
1E:30:6B:FC:C6:AB:9E:28:91:2A:42:C0:9B:1C:AB:E4:40:10:9E:DD |
Teraz, keď máme skutočné odtlačky certifikátov, môžeme načítať odtlačky z lokálneho systému a porovnať ich hodnoty. Ak sa odtlačky nezhodujú, používaný certifikát nepatrí overovanému HTTPS webu, čo znamená, že medzi hostiteľským počítačom a overovaným HTTPS webom sa nachádza HTTPS proxy.
Ak sa odtlačky zhodujú, znamená to, že spojenie prebieha priamo k overovanému HTTPS webu bez zásahu proxy.
Použite nasledujúce tri príkazy na získanie odtlačku certifikátu pre Cisco.com. Tento príkaz využíva OpenSSL na pripojenie k cisco.com na porte 443 (HTTPS), požiadanie o certifikát a jeho uloženie do textového súboru s názvom cisco.pem. Výstup je uvedený aj pre kontext.
**“echo -n | openssl s_client -connect cisco.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./cisco.pem”
**
Voliteľne môžete použiť príkaz cat na zobrazenie obsahu stiahnutého certifikátu uloženého v súbore cisco.pem
**“cat cisco.pem”
**
Teraz, keď je certifikát uložený v súbore cisco.pem, použi nasledujúci príkaz na extrakciu a zobrazenie jeho odtlačku (fingerprintu):
“openssl x509 -noout -in cisco.pem -fingerprint –sha1"
Hodnota Vášho odtlačku môže byť odlišná z rôznych dôvodov:
Môžete používať iný operačný systém ako CyberOps Workstation
Certifikáty sa pravidelne obnovujú, čím sa mení aj ich fingerprint.
Load balancing na webovej lokalite
Aký hashovací algoritmus bol použitý pri OpenSSL na výpočet odtlačku?
**Prečo bol zvolený práve tento algoritmus? Záleží na tom?
**
Použite tabuľku z 1. kapitoly na porovnanie odtlačku certifikátu získaného priamo zo stránky Cisco HTTPS s tým, ktorý bol získaný vo vašej sieti. Pamätajte, že odtlačky sa môžu časom meniť.
Skontrolujte odtlačky z tabuľky cez webový prehliadač.
Použite OpenSSL a zopakujte všetky kroky z 2.kapitoly pre všetky odtlačky z tabuľky.
9 Certifikačné autority
Na webovom serveri metasploitable, zadáme príkaz **sudo a2enmod ssl **a tým aktivujeme modul SSL v Apache2 HTTP serveri.
Nastavenie servera tak aby vedel počúvať na obidvoch portoch 80 a 443.
Vytvorenie a vygenerovanie self-signed certifikátu
Vytvoríme súbor sudo nano /etc/ssl/openssl-server.conf
Vyplníme potrebné údaje podľa textu nižšie
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = v3_req prompt = no
[ req_distinguished_name ]
C = SK
ST = Zilinsky
L = Zilina
O = Admin
OU = IT
CN = <VasaIPadresaMetasploitable>
emailAddress = erer@efmeffef
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[ alt_names ]
IP.1 = <VasaIPadresaMetasploitable>
Daným súborom budeme definovať parametre pre vytvorenie nášho certifikátu.
Sekcia [ req ] nám bude určovať globálne nastavenia, a to veľkosti generovaného kľúča, údaje certifikátu a rozšírenia certifkátu, v poslednom rade, aby sme zabezpečili, to že sa OpenSSL nás navyše údaje nebude pýtať, zabezpečíme to príkazom prompt.
Sekcia [ req_distinguised_name] , nám teda bude tvoriť informácie o subjekte certifikátu.
V poradí krajina, štát (State), mesto, názov organizácie (tu zadajte Vaše meno), organizačná jednotka , a common name, názov pre ktorý bude náš certifikát vydaný a e-mailová adresa.
Sekcia [ v3_req] nám bude definovať rozšírenia X.509 v3.
Nakoľko Apache2 nemá rád (jeho úlohou je overiť svoju identitu klientovi, nie podpisovať certifikáty), keď je CA, tak danú voľbu musíme zakázať, keyUsage nám bude slúžiť na elektronický podpis a šifrovanie kľúča extendedKeyUsage je určený na použitie v HTTPS/TLS komunikácií.
Pre korektnosť, aby aj curl rozpoznal daný certifikát, sme ešte museli zadefinovať SubjectAltName, čo môže reprezentovať viacero názvov alebo IP adries, pre ktoré je certifikát platný.
Vygenerovanie certfikátu:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt -config /etc/ssl/openssl-server.cnf -extensions v3_req
Tento príkaz vygeneruje nový self-signed SSL/TLS certifikát platný 365 dní s 2048-bitovým RSA kľúčom, pričom používa nastavenia z konfiguračného súboru /etc/ssl/openssl-server.cnf a ukladá súkromný kľúč do /etc/ssl/private/selfsigned.key a certifikát do /etc/ssl/certs/selfsigned.crt a taktiež definuje, že OpenSSL má použiť rozšírenia X.509 v3, ktoré sme si definovali vo vyššie uvedenej sekcii.
Vytvoríme testovací objekt pre port 443 sudo nano /etc/apache2/sites-available/443-test.conf a pridáme následujúcu konfiguráciu:
<VirtualHost *:443>
ServerAdmin admin@localhost
DocumentRoot /var/www/html
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4
SSLEngine on
SSLCertificateFile /etc/ssl/certs/selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/selfsigned.key
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Povolíme prístup k SSL certifikátom skupine www-data
sudo usermod –aG ssl-cert www-data a zmeníme práva pre náš certifikátsudo chown root:ssl-cert /etc/ssl/private/selfsigned.key a zabezpečíme prístup sudo chmod 640 /etc/ssl/private/selfsigned.keyPre úspešné spustenie pre obidva porty 80 a 443, treba ešte upraviť predvolenú stránku
sudo nano /etc/apache2/sites-available/default
Po konfigurácií virtuálneho hosta ho ešte musíme povoliť cez príkaz sudo a2ensite a po vyzvaní zadania názvu zadáme 443-test.conf
Posledným krokom je reštartovanie Apache2 servera pomocou sudo /etc/init.d/apache2 restart
Pre overenie zadáme príkaz do CLI: curl -v https://<VasaIPadresaMetasploitable> na Kali
Po úspešnom vykonaní môžeme vidieť, že sme sa úspešne pripojili na web server, ale stále nedôverujeme danému certifikátu. A preto ho musíme stiahnuť a naimportovať do súboru /usr/local/share/ca-certificates/
Stiahnutie certifikátu spravíme pomocou série príkazov:
echo -n | openssl s_client -connect <VašaIPadresaMetasploitable>:443 -servername <VašaIPadresaMetasploitable> | openssl x509 > server-cert.crt
Pre pridanie daného certifikátu medzi dôveryhodné, ho musíme skopírovať do potrebného adresára pomocou príkazu
sudo cp server-cert.crt /usr/local/share/ca-certificates/
Následne musíme aktualizovať zoznam certifikátov pomocou príkazu sudo update-ca-certificates ten pridá daný certifikát do zoznamu, prípadne odstráni neplatné certifikáty
Znova zadaním príkazu curl -v https://<VašaIPMetasploitable> môžeme vidieť, že systém berie certifikát webu ako dôveryhodný.

V tomto cvičení sme si ukázali ako vytvárať a overovať integritu súborov pomocou hašov. Ďalej sme sa zoznámili so základmi hašovania a zahašovali sme súbory. Na záver sme sa snažili prelomiť tieto haše pomocou nástroja John the Ripper, zašifrovali sme si tajnú informáciu do obrázka pomcou nástroja steghide a zoznámili sa s certifikačnými autoritami.
Zistenia:
overenie integrity stiahnutého súboru alebo modifikácie možno vykonať porovnaním hašov
SHA-2 je odporúčaný štandard pre hashovanie, zatiaľ nebol prelomený, ale už je aj novší hašovací algoritmus SHA-3
dĺžka a komplexnosť hesla (veľké a malé písmená, znaky, čísla) majú veľký vplyv na samotnú bezpečnosť súboru
Aký je rozdiel medzi hašovaním a šifrovaním?
Aký je najnovší hašovací algoritmus?
Prečo predstavujú kvantové počítače riziko pre hašovanie?
Vysvetlite rozdiel medzi integrity a confidentiality
Urobte menší test a pomocou nástroja Password Strength Meter napíšte rôzne heslá s rôznou dĺžkou a komplexnosťou a zistite ako dlho potrvá ich hacknutie pomocou bruteforce/slovník útoku (s dnešnou technológiou)
Čo by bolo potrebné aby fungovalo HTTPS proxy?
Zistite základné informácie o certifikáte vydaného pre www.fri.uniza.sk za pomoci webového prehliadača a príkazového riadku. Kto je jeho vydavateľom, akú platnosť má daný certifikát a na aké účely sa daný certifikát používa?
← Prehľad cvičení · Predchádzajúce cvičenie · Nasledujúce cvičenie