Po drátě 5: Řešení úlohy č. 8

Dodaný ISO image bylo nejjednodušší strčit do některého z virtualizačních nástrojů, např. kvm. Po nabootování chtěl login a heslo, které pochopitelně nikde uvedeno nebylo.

Při bližším průzkumu DVD jste mohli narazit jednak na soubor COPYING s GPL licencí, jednak na kernel s initrd.

Nejjednodušším řešením bylo si v souladu s GPL napsat o zdrojáky oné distribuce. Obratem jste na ně dostali odkaz; heslo v nich šlo najít poměrně snadno.

O něco komplikovanějším řešením bylo rozbalit si initrd (byl zabzip2ovaný) a zkusit něco provést s ním. Bohužel, jak bylo patrné z výpisu nabootovaného DVD, jeho file systém byl SpadFS, který asi většina z nás ve svém kernelu nenajde.

První možností byla ruční editace /etc/shadow přímo v initrd image pomocí hexeditoru, což poněkud komplikoval fakt, že soubor byl uprostřed hesla rozdělen mezi dva nesouvislé bloky. Ti s masochističtějšími tendencemi se jali vyhledávat navazující blok (třeba podle řetězce "88888" určujícího expiraci hesla) a přepisovat heslo, kdo chvíli zapřemýšlel, přepsal začátek souboru z původního bin:*: na root::, čímž věnoval rootovi heslo prázdné.

Druhou možností bylo samozřejmě rozchození SpadFS na svém stroji a přimountování image přes loop mount. Vzhledem k tomu, že autorovi úlohy SpadFS poměrně často oopsoval (většinou s fatálními následky), tento postup nelze příliš doporučit :-)

Po úpravě initrd bylo potřeba ho zpátky zabalit bzip2em a takto zmodifikovanou distribuci nabootovat. Buď jste mohli nastudovat, jak se vyrábí bootovatelné DVD, nebo si všimnout, že kvm umí dva pěkné parametry, a to -kernel a -initrd...

Po úspěšném přihlášení se jako root vypsal program login heslo praded.

Zajímavosti

O zdrojové kódy si napsali pouze tři lidé. Zaznamenali jsme však minimálně jednu zmínku v mailu pro robůtka, kde odesílatel píše, že doufá, že zdrojáky po hře zveřejníme, neboť je live DVD pod GPL. Škoda - zde se vyplatilo být poněkud asertivní. Mimochodem, soubor COPYING byl do rootu DVD image nahrán schválně - buildroot, použitý na sestavení DVD, ho tam normálně nedává.

Na DVD se rovněž nacházel program /usr/bin/99. Co dělal, je poměrně zřejmé. Protože není licencován pod GPL, jeho zdrojáky nebyly obsaženy v zasílaných zdrojácích live DVD. Najdete je zde.

Autorem úlohy je Jirka Benc.

Re: Po drátě 5: Řešení úlohy č. 8 JS (8. 12. 2010 - 13:47) Sbalit(1)
Ja jsem shadow ani passwd v image SPAD FS nenasel, tak jsem dosel k zaveru, ze se nejspis vytvori initem az za chodu. Tak jsem hledal neco, cim to zeditovat (za behu), ale bohuzel jsem zadny VM s debuggerem nenasel. Proto pisu tento komentar. Zlaty hercules! Nakonec jsem to udelal v QEMU modifikaci VM image.
Re: Po drátě 5: Řešení úlohy č. 8 Libor Pechacek (8. 12. 2010 - 16:23) Sbalit(2)
SpadFS mi fungoval celkem OK na SLED11 SP1 i586. Souborovy system se dal primontovat i pro zapis, takze zmeny sly delat snadno. ISO v KVM pod SLEDem bezelo OK, avsak v debianim VirtualBoxu nechtel kernel nabehnout s tim, ze potrebuje PAE.

Pekna uloha, diky. Sel jsem do ni s tim, ze me nikdo neprinuti cist jakekoli manualy ci jine texty - budu jen hackovat a hackovat. No, tady se asi cist vyplatilo. ;-)
Re: Po drátě 5: Řešení úlohy č. 8 hubschondrej (8. 12. 2010 - 18:07) Sbalit(1)
PAE se dá ve VirtualBoxu zapnout v nastavení VM.
Re: Po drátě 5: Řešení úlohy č. 8 Petr (11. 12. 2010 - 2:19) Sbalit(1)
iso jsem otevřel ve vim-u a zkusil upravit bootovací parametry a se zklamáním, že je to nějak divně ubalené a nepodporuje to standardní inicializaci jsem to znechuceně přiloopoval, vykopíroval si initrd, bunzip2-nul nehledě na pochybný fs jsem tomu vim-em zeditoval passwd, uložil bzip2-nul a nabootoval přes pxe tftp do vmplayeru, ed byl jasnej, pár pokusů trefit shell, ale ten 99 bych bez rešení asi nenašel
já vím po bitvě je každej generál