Portál AbcLinuxu, 14. května 2025 21:55

Dotaz: shellshock - jak hacnout sám sebe

5.5.2016 17:07 chcisezeptat
shellshock - jak hacnout sám sebe
Přečteno: 2798×
Odpovědět | Admin
Dobrý den,

mám problematický server server Solaris 11: - rozbité ILO - špatný zápis v /etc/sudoers, takže sudo su - nefunguje - nikdo nemá root role, takže nefunguje su - i když známe password

Na serveru máme účet s ssh klíčem.

Vize je že potřebujeme zapsat řádek do /etc/user_attr a někomu připřadit roli aby se mohl switchnout na roota.

Je možné toto udělat přes díru shelshock a nebo je možné tuto díru zneužít jen k obchůzce příkazů definovaných pomocí ssh_original_command - tedy že můžu sice spustit jiný příkaz, ale pouze s právy uživatele, který jej spustil - což je pro tuto situaci k ničemu.

Boot do singleuser mode je pro nás trošku problematický, jelikož jak jsem psal není k dispozici ILO a server je za hranicemi našeho státu, takže přístup do serverovny je poněkud složitý.

Předem děkuji za konstruktivní rady a podněty.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.5.2016 18:21 Mike Stuffel
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dobry den,

skuste prikaz "sudo visudo" alebo "sudo su -"
5.5.2016 18:31 Mike Stuffel
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Popripade "ssh root@localhost" ci prikaz "login -h localhost root"
5.5.2016 19:50 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Dobrý den,

Sudo su - je pasé jelikož v /etc/sudoers je špatný řádek, takže OS vrátí chybu že nenašel relevantní sudoers file.

Ssh root login je v Solaris 11 bohužel defaultně zakázán - root se dokonce nemůže přihlásit direct ani na ILO.
6.5.2016 08:41 pogomaniak
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
zkus sudo vi /etc/sudoers
6.5.2016 08:47 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Opravdu je sudo pasé :)

sudo: parse error in /etc/sudoers near line 133 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
pavlix avatar 6.5.2016 09:02 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Jo a nechceš zkusit sudo? :) Sorry, nabízelo se, problém byl samozřejmě popsán dostatečně.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
5.5.2016 18:34 Lyco | skóre: 14 | blog: Lyco
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak shellshock je v tom, že bash parsuje obsah proměnných prostředí jestli začínají znaky "()" a pak se včas nezastaví. Výsledkem je spuštění kódu pod uživatelem pod kterým běží shell.

Pokud dokážete máte bash co běží pod rootem a dokážete mu nastavit proměnnou prostředí, tak se dá shellshock vy/zneužít k získání roota.
Příspěvek se rázem stává až o 37,5 % pravdivější, je-li pod ním napsáno reálné jméno.
5.5.2016 19:53 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Tušil jsem žeto funguje nějak takto - proto je častý příklad zneužití apache, který běží pod uživatelem root. Solaris sice má defaultně vestavěný apache server, bohužel ale není zapnutý...
6.5.2016 11:05 chtelbychsezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Jestli teda premyslim spravne, tak do sveho bashe vestavim mnou potrebnou funkci, neco jako:

$ mojefunkce() { > usermod -R root user > } $ export -f mojefunkce

Z tohoto bashe pak musim spustit bash, jehoz majitelem je root a vyuzit parsovaci chyby k zavolani sve funkce...

Otazkou je jak to udelat. Na te masince bezi nejake logicke domeny pristupne pres telnet. Pripadne jsem koukal ze pokud jako uzivatel poslu sam sobe mail tak majitel toho procesu je root. Je tady nekde cesta?
6.5.2016 11:07 chtelbychsezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
oprava

$ mojefunkce() { > usermod -R root user > } $ export -f mojefunkce
6.5.2016 11:10 chtelbychsezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
tak do tretice
$ mojefunkce() {
>        echo "Ahoj světe"
> }
$ export -f mojefunkce 
6.5.2016 11:28 martin-ux
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Kedysi bol telnet bug:

Setgid alebo setuid binarky:
find / -perm -04000 -o -perm -2000 2>/dev/null
Takto sa dozvies ake mas binarky k dispozicii. A podla toho hladat, ci neexistuje nieco, co malo dieru a da sa exploitnut.
6.5.2016 11:49 chtelbychsezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Telnet jsem zkoušel, bohužel localhost nenaslouchá na portu 23.

Telnetem se dostanu jen na ldomy co běží na tom serveru, a nebo do sendmailu...

Zkusím ty binárky.
6.5.2016 11:04 martin-ux
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neprijemne. Shellshock vies vyuzit ak mas nejaku binarku so setuid/setgid. Napr.
$ env asd='() { :;}; id ' /path/to/setuid_setgid/binary
Neviem ci existuje nejaky local exploit na solaris 11 na tvoje aktualne SRU, skus hladat cez "solaris 11 local exploit".

BigWrigley avatar 7.5.2016 12:58 BigWrigley | skóre: 33
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mirne OT: Hodilo by se mi neco podobneho - mam tenkeho klienta HP T5335z. Boot se neda prerusit, najede do Xwindows, kde se da pouzit pouze jako Citrix/RDP/VMware klient.

V diagnostice je mozne zavolat ping nebo traceroute, ale gui umozni vlozit pouze hostname nebo IP. V debug okne je pak videt >Executing "traceroute mujcilovyhost".

Bohuzel nevim, pod jakym shellem se trraceroute pousti...

A.
Linux is like a wigwam - no windows, no gates and Apache inside.
7.5.2016 13:46 martin-ux
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Netusim sice o co sa tam jedna, ale skusil by som ci ma program (diagnostika) spravne osetrene vstupy .. tj, ak vola ping $hostname, kde hostname je zobraty z GUI, tak klasicky escape sequence: ping hostname; /bin/sh , a pod. (tj do okna zadat localhost; /bin/sh ; , pripadne zistit ci sa nerobi escape cez uvodzovky.

BigWrigley avatar 8.5.2016 09:32 BigWrigley | skóre: 33
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Tohle bohuzel neprojde. Jak to myslite s temi uvozovkami?
Linux is like a wigwam - no windows, no gates and Apache inside.
8.5.2016 10:52 martin-ux
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Command sa moze spustat napr. ako ping "localhost", "ping localhost" alebo podobne variacie. Ale je mozne, ze vstup je osetreny spravny a tadial cesta nevedie.

HP ponuka moznost restore image-u cez USB, mozno by stalo za to sa pozriet ako to robi. Tou metodou tam potom natlacit vlastny image. Pripadne vygooglit ci nema ten device nejaky servisny magic key.
7.5.2016 23:16 R
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Neda sa to hacknut cez recovery - SP54767?
BigWrigley avatar 8.5.2016 09:51 BigWrigley | skóre: 33
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
To uz me taky napadlo. Sejvnout originalni image, otevrit, podle vseho se dela pomoci dd, poeditovat, vratit. Zkusim se na to podivat. Otevrel jsem nove vlakno zde.
Linux is like a wigwam - no windows, no gates and Apache inside.
8.5.2016 08:25 frollox
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co zkusit single user mode ? Po bootu je pak možné se přihlásit jako uživatel root, tohle je jediná výjimka kdy se lze lognout přímo na roli.
xxxs avatar 8.5.2016 09:47 xxxs | skóre: 25 | blog: vetvicky
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
pise, ze server je daleko, chce si usetrit cestu.
8.5.2016 16:22 Vantomas | skóre: 32 | Praha
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rozbité ILO? Je to HP server? Na ILO se dá přes ssh/telnet připojit?
8.5.2016 20:52 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Není to HP, je to Solaris 11 :) ILO je prostě zmrzlé. Když jsme se s kolegou koukali přes webové rozhranní ALOM, vidíme že ILO je ve stavu failure. Zkoušeli jsme ho přes ALOM restartovat ale nepomohlo to. Výměnu urgujeme...

Shelshock díra a sendmail mi přijde jako cesta - bohužel můj skill není tak dobrý abych donutil shell špatně zparsovat vstup.

Zkoušel jsem to přesně podle tohoto návodu: http://www.gossamer-threads.com/lists/qmail/users/138578

Poslal jsem si v pohodě mail. Poslal jsem si i mail včetně podstrčené funkce pro spuštění bashe na portu 7777, ale neproběhne. Ten command jsem pak zadal přímo z OS a chytlo se to... Našel jsem i nějaké jiné návody typu "SMTP Injection via recipient email addresses" a koukám že použivají podobný princip, tak nevím jestli už není nějaká záplata přímo v mém sendmailu (8.14.5)

Našel jsem i nějaké další binárky s právy setgit/setuid, ale
$ env asd='() { :;}; id ' /path/to/setuid_setgid/binary
tak jednoduše nefunguje...
8.5.2016 23:56 Vantomas | skóre: 32 | Praha
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Aha aha. Já, že se na HP serverech setkávám s tím, že se na to ILO nedá z browseru připojit a musím se tam připojit přes ssh a restartovat ho. Tak jestli to není problém tohoto typu. Ale když jste to zkoušeli restartovat, tak nic.
9.5.2016 09:06 Vantomas | skóre: 32 | Praha
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Ještě mě napadá, jestli ten server je v nějakém datacentru, tak občas tam kvůli zákazníkům s normálním PC mají vzdálené KVM, které se připojuje na výstup z grafiky + klávesnice. A jestli je to někde v nějaké firmě, tak si tam vzít nějakého schopnějšího člověka, navázat nějaký videohovor a heslo změnit pomocí něj, lepší než tam kvůli tomu jezdit.
9.5.2016 10:54 martin-ux
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Moze byt ze v tvojom SRU uz mas ten bug fixnuty alebo este nebol v tej verzii.

Co som videl aj nizsie tak: nemusi mat user bash shell, bash mozes spustit ako lognuty user. V pripade daemonu ale musi byt uz spusteny pod tym shellom, pripadne precosi ten daemon spustat bashovy script (nastastie v solarise vela bashizmu nie je).

Zda sa, ze ti @BigWrigley ukradol thread, kedze sa tu miesaju HP servre a Solaris server :)
BigWrigley avatar 9.5.2016 15:14 BigWrigley | skóre: 33
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Omlouvam se, mam na to uz extra vlakno...
Linux is like a wigwam - no windows, no gates and Apache inside.
8.5.2016 21:21 R
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je tam vobec nastaveny bash ako default shell?
8.5.2016 22:01 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Mám dostupný ještě jeden velice podobný server. User sendmailu podle všeho nemá defaultně nastavený bash jako shell. Díky za připomínku.
smmsp@solaris11:~$ grep smmsp /etc/passwd
smmsp:x:25:25:SendMail Message Submission Program:/:


smmsp@solaris11:~$ echo $SHELL
/usr/bin/sh
8.5.2016 22:13 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
I když koukám že root má default bash - tohle je opravdu důležité ne? Když jsem grepoval z ps -ef proces vzniklý při odesílaní mailu tak jeho majitel je právě root.

root:x:0:0:Super-User:/root:/usr/bin/bash
10.5.2016 13:15 dan
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, neviem sice aky to je server ale ak ma k nemu niekto fyzicky pristup tak by som dal zapichnut kabel z MNGT do jeho serioveho portu, radsej by som poslal menezmentovy kabel namiesto seba a pripojil sa tipom http://www.idevelopment.info/data/Unix/Solaris/SOLARIS_UsingSerialConsoles.shtml
13.5.2016 15:08 chcisezeptat
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jako řekl bych že můj systém není zaplátovaný viz nějaké info úplně dole. Navíc se mě podařilo nasimulovat prolomení SSH ForceCommandu, takže jsem byl schopen získat plnohodnotný shell bohužel pod uživatelem pod kterým jsme se přihlásil...

Napsal jsem si funkci a exportoval ji do shellu:
$ injection() {
>         echo "user::::type=role" >> /etc/user_attr
> }
$ export -f injection
Teď se snažím z mého shellu spustit další shell pod rootem a z něj pomocí parsovacího bugu spustit funkci, bohužel se mi nedaří:
user@server-to-hack:~$ env asd='() { :;}; injection ' /usr/lib/sendmail
env asd='() { :;}; injection ' /usr/lib/sendmail
Recipient names must be specified
^C
user@server-to-hack:~$ env asd='() { :;}; injection ' /usr/lib/sendmail user
env asd='() { :;}; injection ' /usr/lib/sendmail user
nic se nestane...

Kdyby měl někdo nějaký další tip budu moc rád. S přístupem do serverovny se to má prostě tak, že zákazník vyhodil všechny lidi co tam měli povolen přístup a teď už cca půl roku "řeší" jak vyměnit to ILO. Je to prostě klasický bordel, předpokládám že někteří z vás ví očem tady píšu... Hacknout ten server z localhostu je pro mě asi opravdu nejrychlejší řešení. :)

---

To check for the CVE-2014-6271 vulnerability
user@server-to-hack:~$ env var='() { ignore this;}; echo vulnerable' bash -c /bin/true
vulnerable
---
user@server-to-hack:~$ bash --version
bash --version
GNU bash, version 4.1.11(2)-release (sparc-sun-solaris2.11)
---
Publisher: solaris
       Version: 0.5.11 (Oracle Solaris 11.1 SRU 1.4)
 Build Release: 5.11
        Branch: 0.175.1.1.0.4.0
Packaging Date: November  6, 2012 12:13:44 AM
---
user@server-to-hack:~$ X='() { (a)=>\' bash -c "echo date"
bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error importing function definition for `X'

user@server-to-hack:~$ cat echo
Friday, May 13, 2016 03:51:13 PM EEST
21.5.2016 14:14 CIJOML
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja bych na to postval Nessus aby mi rekl jake vsechny zranitelnosti tam vidi a potom bych si vklidu vybral vhodny exploit. Jinak upozornuju, ze v CR je nelegalni provadet pruniky do site jine nez sve :)
8.6.2016 16:28 Alibaba
Rozbalit Rozbalit vše Re: shellshock - jak hacnout sám sebe
Odpovědět | | Sbalit | Link | Blokovat | Admin
ak je to oracle server a nefunguje ILO cez web, treba skúsiť SSH na ILO a spustiť si konzolu:

-> cd SP/console
/SP/console
-> start

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.