Re: OT: nedělní chvilka dekódování...

Pavel Kutina hw na prelude.cz
Úterý Květen 21 13:05:48 CEST 2024


To je neskutečný, trochu mi padla sanice...

Jen pro zajímavost - kolik tohle stálo času?

Pavel Kutina



----- Original Message ----- 
From: Pavel Kořenský
To: hw-list na list.hw.cz
Sent: Tuesday, May 21, 2024 1:29 AM
Subject: Re: OT: nedělní chvilka dekódování...


Zdravím,


tak ona je pravda, že na louskání kódů nebo hacking musí mít člověk 
nastavený mozek maličko jinak.

Já pracuji v oblasti IT Security a říkám tomu "umět myslet jako zločinec" :)


Dneska už mi to taky nemyslí jako před pár lety, ale pro ilustraci uvedu 
kopii poněkud delšího mailu, který jsem někdy v roce 2019 posílal kolegům z 
firmy, aby si uvědomili, jak mají myslet, když se chystají na certifikace. A 
použil jsem k tomu právě popis postupu, jak jsem hackoval jeden ten 
testovací stroj na hackthebox.eu.
Omlouvám se za poněkud delší příspěvek, ale zpětně viděno, je to docela 
zábava a hackovat ty stroje mně baví dodnes, když nemám na práci nic 
lepšího. Je to jako luštit křížovky... :)



======================================================================================================================================================================================================


Ahoj XXXXX,


jak jsme se bavili o tom hackthebox.eu tak jsem tam právě hacknul další 
treningový server, už třetí v pořadí. Strávil jsem na tom docela dost času 
už od pondělka, protože fůra technik které jsem musel použít byla pro mně 
úplně nová.
Ovšem co byla docela pecka (a důvod proč dávám YYYYYY a ZZZZZ do kopie) byla 
technika, kterou bylo nutné použít. Když člověk ví jak na to, tak některé 
možnosti jsou docela šílené. V tomhle případě to bylo takhle:


1. Máme web server založený na Linuxu (nějaký Debian, ale docela dobře 
patchovaný) který se tváří jako server na kterém se dá zaregistrovat a 
udělat si na něm svoje web stránky.
2. Při ohledání portů zjistíme, že přístupné porty jsou jenom http/80 a 
ssh/22 který ovšem dovoluje jen sftp a nikoli ssh shell. Takže jak na něj ?
3. Zaregistrujeme se, dostaneme jméno a heslo a taky adresář do kterého 
můžeme nahrát přes sftp svoje web stránky. Náš username je "ots-hZjhkOWY" a 
heslo je nějaký krutě přísný řetězec "d7af8d9f"
4. Otevřeme si tedy sftp a zkusíme klasicky jestli admin byl lempl tím, že 
uděláme "ln -s ../../../../ test"
5. Když se podíváme browserem na svou vlastní stránku (na testovacím serveru 
tedy MailScanner has detected a possible fraud attempt from "10.10.10.133" 
claiming to be " http://10.10.10.133/~ots-hZjhkOWY/test") tak se nám ukáže, 
že admin sice částečně byl lempl, ale nedostaneme se skoro nikam.
6. Ale když se díváme tam, kam se dívat můžeme, tak zjistíme, že ve 
/var/www/admin-http je zapomenutý .swp soubor od editoru vim ve kterém je 
relikt zdrojáku nějakého .php scriptu, který lze stáhnout a zkoumat.
7. V tom .swp souboru najdeme kus PHP kódu který řeší přihlášení admina těch 
web stránek a je tam jednak username toho admina a pak taky SHA256 hash jeho 
hesla.
8. A taky zjistíme, že administrátorská část webu je přístupná jen na portu 
60080 který ovšem blokuje firewall, takže zvenku se na něj nedostaneme.
9. Louskneme tedy ten SHA256 hash pomocí brute-foce slovníkového útoku a 
zjistíme, že admin je nejspíš domácký typ, protože jeho heslo je 
"Homesweethome1" :)
10. Ten firewall je vážně opruz, takže uděláme lokální port tunneling přes 
ssh pomocí "ssh -L 80:127.0.0.1:60080 -N ots-hZjhkOWY na 10.10.10.133" a 
použijeme své osobní heslo. To je dobrý trik, to jsem fakt neznal, že se dá 
skrz sftp-only port 22 udělat ssh tunel.
11. V browseru se podíváme na adresu MailScanner warning: numerical links 
are often malicious: http://127.0.0.1  a voilá, je tady administrátorská 
část webu do které se lze přihlásit jménem a heslem toho admina, které jsme 
získali v bodu 9.
12. Tak admin rozhraní bychom měli, ale ouha není tu víceméně nic, čím by si 
člověk mohl nahrát na server vlastní PHP script. Tedy ona tady ta možnost 
byla, ale je zamčená, prý "For security reasons" :)  a existující script 
addon-upload.php nelze přímo spustit.
13. Naštěstí se z toho admin účtu můžeme podívat na PHP skripty, které tam 
už jsou nahrané a v jednom  z nich objevíme takovou malou botu:



 # Download addon from addons folder.

    case preg_match('/\/addon-download.php/',$_SERVER['REQUEST_URI']):
        if ($_GET['addon']) {
            $addon_file = basename($_GET['addon']);
            if ( file_exists($addon_file) ) {
                header("Content-Disposition: 
attachment;filename=$addon_file");
                header("Content-Type: text/plain");
                readfile($addon_file);
            } else {
                header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found",true, 
404);
                die();
            }
        }
        break;


14. Poeditujeme maličko tu web stránku aby se odemkla ta možnost udělat POST 
na server a taky tam dodáme jako akci pro jeden prvek
"addon-download.php?a=/addon-upload.php" abychom zkusili jestli je ten 
addon-download skript vážně tak blbý, aby sežral návnadu a načetl a spustil 
ten addon-upload.php. Jako payload k té návnadě dáme náš oblíbený 
pentest-monkey reverse shell skript
(
https://github.com/pentestmonkey/php-reverse-shell
).
15. Fajn, ono to návnadu fakt sežralo, náš reverse-shell.php se podařilo 
nahrát na web server. Tak se holt koukneme do toho adresáře addons kde jsou 
skripty uložené a ten náš si pustíme.
16. Ještě předtím si ovšem v dalším okně na našem Kali pustíme Netcat
"nc -l -p 1234" aby měl kdo poslouchat ten reverse-shell.
17. Hurá, máme reverse shell. Tak zkontrolujeme co všechno můžeme dělat.
Takže "sudo -l" a zjistíme, že pod účtem www-admin-data (nebo jaké je to 
jméno) nemůžeme dělat skoro nic, akorát nastavovat shell proměnnou 
http_proxy a taky máme oprávnění udělat apt-get update a apt-getupgrade. To 
má asi admin nastavené kvůli automatickým updatům apache2, aby se o to 
nemusel starat...
18. Takže adminovi pomůžeme (protože rádi pomáháme lidem a adminům obzvlášť) 
a něco mu updatujeme na opravdu aktuální versi. Tak aktuální, že jí zatím 
ještě nikdo ani nenapsal. :)
19. Takže si na našem Kali pustíme náš vlastní apache2, uděláme si na něm 
minimální fungující repository (to mně zabralo asi nejvíc času, protože jsem 
to nikdy nedělal a dokumenty na Netu nejsou příliš jasné ani jednoduché) a 
taky si pomocí našeho vlastního /etc/hosts poštelujeme Kali box tak aby se 
ozval na jméno nějaké opravdové repository.
20. Serveru trochu pomůžeme aby nás našel (zadáme naší IP a port do proměnné 
http_proxy).
21. Na Netu najdeme nějaký pěkný balíček který je na serveru už 
nainstalovaný. Třeba telnet_0.17-36_amd64.deb Ten si rozbalíme, poštelujeme 
čísla versí tak, aby se to tvářilo jako telnet_0.18-něco_amd64.deb a přidáme 
preinstall skript o kterém víme (tedy teď už víme, předtím jsem to netušil), 
že bývá spouštěn pod root oprávněním.
22. Ten náš mírně upravený a zbrusu nový .deb balíček přidáme do repository.
23. Z našeho reverse shellu uděláme "sudo apt-update" a pak "sudo 
apt-upgrade" a když se nás server zeptá, jestli chceme nainstalovat ten 
telnet_0.18-něco tak mu řekneme, že rozhodně ano, protože radostně očekávámé 
jaké nové featury bude mít :)
24. No a je to, náš preinstall skript proběhl a vypsal soubor /root/root.txt 
což je konec hry. Obsahem toho souboru se na HTB dokazuje, že člověk hacnul 
root na tom serveru. Místo "cat /root/root.txt" bych pochopitelně mohl dát 
do toho scriptu cokoli. Třeba si založit dalšího admina, povolit ssh nebo 
smazat server.

No bylo to docela dílo. Vyjmenoval jsem jen věci které bylo potřeba udělat. 
O slepých cestách raději nepíšu, bylo jich moc a moc.
Ale ten scénář je celkem reálný a tak nějak mi nepřipadá, že by tohle 
všechno vůbec mohl admin odpovědný za bezpečnost serveru uhlídat.

Některé cesty jsou prostě spletité.


Zdraví PavelK


==============================================================================================================================================================================================================



Dne 20.05.2024 v 22:29 Jan Kuba napsal(a):

Já jsem se k tomu přichomejtnul náhodou, v podstatě je to pro mě novinka.
Bohužel na to nemám hlavu, tam je třeba myslet , já byl na myšlení vždycky 
línej.
Pro mě to byla zkušenost, že existují lidi, co maj v mozku procesor a 
coprocesor... :-)
To, že se někdo za chvíi naučí básničku je nezajímavý. Ale že někdo koukne 
na změť znaků a za chvíli vyhodí
o co jde, je neuvěřitelný...

Neobsahuje žádné viry.www.avast.com



po 20. 5. 2024 v 22:20 odesílatel Pavel Kořenský <pavel.korensky na dator3.cz> 
napsal:

Jestli Vás tyhle věci baví, tak se mrkněte na ten zmíněný hackthebox.eu 
(hackthebox.com ony jsou ty stránky stejné, akorát to .eu má servery v 
Evropě).
Tam je oddělení kódování/dekódování taky a hlavně jsou tam stroje na 
hacking, které se každý měsíc mění, takže je tam pořád co dělat :)
Pointa je, že máte soukromou VPN na nějaký jejich stroj, který má někde díru 
či řetězec děr a cílem je mašinu hacknout a získat postupně práva uživatele 
a pak dalším hackem práva admina. To se prokazuje tím, že uživatel i root 
mají v domovském adresáři textový soubor s SHA256 hashem a cílem je získat 
ten hash.
Na procvičování hackingu třeba při přípravě na různé certifikace typu CEH 
v.10 nebo OSCP je to k nezaplacení.


Zdraví PavelK




Dne 20.05.2024 v 21:13 Jan Kuba napsal(a):

Ano, je to tak...je to obdoba Cicada 3301.
Já jsem do toho čuměl docela dost dlouho a nic mě nenapadlo.
O to víc mám hubu otevřenou a čumím, jak někteří jedinci dokážou defakto 
během chvíle
vyřešit  takový úkol. Evidentně je to myšlení posunutý na jiný level  a 
opravdu  před vámi  smekám!
Ten odkaz je správně, a navíc jak někdo uvedl, ten původní kód, než se ke mě 
dostal je opravdu trochu pomršený.


Ten odkaz  je klíč k další části - kachna se prožene Steanographic Decoderem
 a výstupní flag je zadání k další úloze..


V každém případě moc díky všem za to vyřešení původního zadání, opravdu jsem 
velmi překvapen schopnostmi  jedinců, co se na úkolu podíleli..



Neobsahuje žádné viry.www.avast.com



ne 19. 5. 2024 v 23:53 odesílatel Pavel Kořenský <pavel.korensky na dator3.cz> 
napsal:

Jo, asi to tak bude.

Mně ani nenapadlo to zkoušet dekódovat, na to nemám v neděli večer náladu.
Akorát když to kolega Smejkal napsal, tak mně napadlo zkusit strejdu
Googla co si myslí o doméně haxagon.něco

A vzhledem k tomu, že ta stránka nemá nikde tlačítko ve smyslu "Vytvořit
účet" tak to nejspíš bude nějaká česká obdoba oblíbeného
https://www.hackthebox.com/
kam se člověk musí nejprve prohackovat, aby dostal přístup na stránku
kde si lze vytvořit účet (což slouží jako lama-filter).

Zdraví PavelK

Dne 19.05.2024 v 23:44 Jindroush napsal(a):
> Je
> https://static.haxagon.xyz/decoy.jpg
>
> Podle meho je ten retezec proste utf zprasenej nekde po ceste a to, ze
> znaky X, X, Z jsou videt jako stejne, je jen kvuli tomu.
> Ale kloboucek panu Smejkalovi, ze videl ty trojice, ja se upnul na
> dvojice.
>
> J.
>
> On 19.05.2024 23:29, Pavel Kořenský wrote:
>> Není to odkaz na haxagon.xyz ?
>>
>> https://haxagon.xyz/sign/in
>>
>> To by celkem dávalo smysl, protože jsou to nějaké stránky o výuce
>> počítačové bezpečnosti.
>> Ale na ten odkaz by se dostal jen někdo, kdo už tam má účet.
>>
>> Zdraví PavelK
>>
>>
>> Dne 19.05.2024 v 23:10 Stanislav Šmejkal napsal(a):
>>> V hexa to je ze začátku:
>>> E7 B1 B1 E7 B1 BD E7 B1 BD E7 B1 B9 E7 B1 BC E7
>>> E7 je asi oddělovač dvouznaků
>>> B1 B1 - v HEX 11 - v DEC 17 - přičíst 55 = 72 - znak H
>>> B1 BD - v HEX 1D - v DEC 29 - přičíst 55 = 84 - znak T
>>> B1 BD - v HEX 1D - v DEC 29 - přičíst 55 = 84 - znak T
>>> B1 B9 - v HEX 19 - v DEC 25 - přičíst 55 = 80 - znak P
>>> B1 BC - v HEX 1C - v DEC 28 - přičíst 55 = 83 - znak S
>>>
>>> B1 AA - znak A
>>> ...
>>> B1 AF - znak F
>>> B1 B0 - znak G
>>> ...
>>> B1 BF - znak V
>>>
>>> pak už je tam jen pár kombinací znaků
>>> B1 20 - : (znak HEX 3A)
>>> B0 B7 - . (znak HEX 2E)
>>> B0 B8 - / (znak HEX 2F)
>>> B2 20 - nevím
>>> B2 82 - nevím
>>>
>>> S.
>>>
>>> Dne 19.05.2024 v 22:54 Jan Kuba napsal(a):
>>>> Děkuji
>>>> ...vypada to asi spravne, klobouk dolu, jak jste postupoval,
>>>> neni-li to tajne?
>>>>
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>>> Neobsahuje žádné viry.www.avast.com
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>>>
>>>> <#m_-7400417641530875088_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>
>>>> ne 19. 5. 2024 v 22:16 odesílatel Stanislav Šmejkal
>>>> <smejkal na smejkal.com <mailto:smejkal na smejkal.com>> napsal:
>>>>
>>>>     https://static.haXagon.X_X/deco.jpg
>>>>     <https://static.haXagon.X_X/deco.jpg>
>>>>
>>>>     nedokázal jsem dekódovat znaky označené X a _
>>>>
>>>>     S.
>>>>
>>>>     Dne 19.05.2024 v 19:42 Jan Kuba napsal(a):
>>>>      > mějme řetězec:
>>>>      >
>>>>      >
>>>> 籱籽籽籹籼�簸簸籼籽籪籽籲籬簷籱籪�籪籰籸籷簷�粂�簸籭籮籬籸粂簷米籹籰
>>>>
>>>>      >
>>>>      > má to být nějaká forma úkolu - vyřešit, o co jde...
>>>>      > Zkoušel jsem AI , neúspěšně.
>>>>      > Nemá někdo prosím nějaký nápad?
>>>>      >
>>>>      >
>>>>      >
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>>
>>>> Neobsahuje žádné viry.www.avast.com <http://viry.www.avast.com>
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>>
>>>>
>>>>      >
>>>>      > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>      >
>>>>      > _______________________________________________
>>>>      > HW-list mailing list  -  sponsored by www.HW.cz
>>>> <http://www.HW.cz>
>>>>      > Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>>>      > http://list.hw.cz/mailman/listinfo/hw-list
>>>>     <http://list.hw.cz/mailman/listinfo/hw-list>
>>>>     _______________________________________________
>>>>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>>>>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>>>     http://list.hw.cz/mailman/listinfo/hw-list
>>>>     <http://list.hw.cz/mailman/listinfo/hw-list>
>>>>
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list





_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



Další informace o konferenci Hw-list