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