OpenWrt 8: VirtualBox, TFTP boot a obnoveni hesla v Mikrotiku RB411

V utery 31.3.2015 jsme se v Jicinskem GeekLabu spolecne s Martinem Gruntoradem pokouseli ziskat zapomenute heslo do Mikrotiku RB411. Postup spociva v nabootovani „live“ OpenWrt na RB411, pripojeni NAND flash a vykopirovani souboru s heslem a jeho nasledne prolomeni. Navodu je na Internetu dost, ale je problem nastavit nove Ubuntu jako PXE server. Proto jsem pripravil jednoduchy image pro VirtualBox, ktery funguje jako PXE server.

Navod slouzi pouze pro studijni ucely a jeho pouziti je na vlastni zodpovednost. V zadnem pripade neni urcen k nelegalni cinnosti!

Navodu na ziskani zapomenuteho hesla z RB411 je na internetu hodne. Prikladem muze byt cesky navod na Root.cz, nebo anglicky navod, RB411 OpenWrt navod. Myslenka je vzdy stejna – nastavit pocitac jako „bootovaci server“ a RB nabootovat po siti z PC. Na RB pak ziskame v RAM bezici „live“ system, ze ktereho si muzeme pripojit flash cip a delat si, co chceme.

My jsem narazili na zajimavy problem. Nastavit nove desktopove Ubuntu jako bootovaci (PXE) server da docela dost prace. Musite nainstalovat a nastavit DHCPD a TFTPD. Jenze v novych distribucih otravuje zivot NetworkManager a dnsmasq. Zkuseli jsme Ubuntu 14.04 – nakonec se podarilo, ale nikdy vice nechceme postup opakovat.

Proto me napadlo vytvorit minimalni system obsahujici vse potrebne, tedy funkcni dhcp a tftp server. System by melo byt mozne spoustet ve virtualu a mel by byt co nejmensi. Protoze mam rad OpenWrt, vybral jsem ho i pro tento ucel. Na virtualizaci pouzivam VirtualBox – je zdarma a vsude funguje.

Cely virtualni stroj (virtualni disk + ostatni soubory VirtualBoxu) se vejde do krasnych 30MB!

Jak to pouzit

Nejdriv popisu hotovy a image a vysvetlim, jak ho pouzit. Pote podrobne ukazu vsechny kroky, pomoci kterych jsem image vytvoril.

Nejdriv je potreba mit stazeny a nainstalovany VirtualBox a to vcetne extension packu! Bez neho nepujde PXE (alespon to pisou na webu VBoxu, ja to bez nej ani nezkousel).

Pote si stahneme a naimportujeme virtualni stroj ve formatu OVA (Virtual Appliance).  OpenWrt 14.07 x86 TFTP BOOT SERVER.ova (7,3MB)
Pri importu nezaskrtavejte „reinicializovat MAC adresy sitovych karet“!

Virtualni stroj musi mit dve sitove karty! Prvni v bridgi s ethernet sitovou karou a druha v NATu. Na poradi zalezi. Ke karte v bridgi pripojime kabelem RB. NAT karta zajisti funkcni internet ve virtualu.

   

Po importu spustime virtual a prihlasime se, heslo roota neni nastavene. Po startu systemu automaticky bezi ISC DHCP IPv4 server a TFTPD-HPA server. Pouzity OS je OpenWrt x86 ve verzi 14.07. Po bootu se vsemi spustenymi sluzbami zabira system prijemnych 10MB RAM.

Prejdeme do adresare /tftp a programem wget stahneme potrebny OpenWrt image. Prejmenujeme ho na linuxrc a nastavime (pro jistotu) prava 777. Nazev linuxrc je uvedeny v konfiguraci dhcp serveru. To je vse. Muzeme na RB nabootovat podle nektereho z mnoha existujicich navodu.

Styp by step video:

Kdo nechce sledovat video na Trubce, muze si stahnout MP4 (13MB).

 

Jak to vytvorit

Pro provoz ve VirtualBoxu potrebujeme x86 ext4-combined image z webu http://downloads.openwrt.org/barrier_breaker/14.07/x86/generic/
konkretne http://downloads.openwrt.org/barrier_breaker/14.07/x86/generic/openwrt-x86-generic-combined-ext4.img.gz (nebo tady z webu)

Po stazeni ho rozbalime a prevedeme na format disku pouzivany VirtualBoxem (VDI):

Nyni ve VirtualBoxu vytvorime novy virtualni stroj. Dame 32MB RAM, vic neni treba. Disk vybereme existujici a to vyse uvedeny openwrt.vdi. Virtualu pridelime 2 sitove karty presne podle vyse uvedeneho nastaveni.

Po bootu je nutne nastavit sit. OpenWrt stadardne pouziva IP 192.168.1.1 s bezicim DHCP serverem (takze mi to doma delalo na LAN problemy).

Upravime soubor /etc/config do podoby:

eth0 bude v bridgi s Mikrotikem a eth1 zajistuje pro virtual internet.

Po rebootu otestujeme pripojeni  k internetu a pokud jde, pustime se do instalace:

Sel by pouzit i dnsmasq v roli DHCP serveru, ale nemam ten hybrid rad.

Pro dhcp server vytvorime nastaveni v /etc/dhcpd.conf :

Protoze jsem mel mensi problem s init skripty z OpenWrt, radeji jsem si vyresil spousteni sam. Ne moc elegantne, ale funkcne:

Tim jsme vypnuli automaticke spousteni demonu behem bootu systemu vcetne distribucniho dnsmasq. Spusteni zajistime v /etc/rc.local :

Sleep je tam pro jistotu 🙂
Bez vytvoreni souboru s vypujckami dhcp server nenabehne.
Parametry jsou v manualu, proto jen kratce:

  • -cf  – cesta ke konfiguraku
  • -lf cesta k souboru s vypujckami
  • eth0 – na teto sitovce bude dhcp poslouchat
  • -l – listen
  • -a – adresa a port, na ktere bude tftp server poslouchat
  • -s – adresar daty

obe sluzby se spusti na pozadi (&).

 

OpenWrt je vyborne nejen pro embedded hardware, ale i pro male jednoucelove virtualni stroje. Priste se zamyslete, zda opravdu potrebujete virtualizovat Ubuntu s 1GB RAM a 10GB diskem, nebo vam staci OpenWrt s 32MB RAM a 50MB diskem 🙂

 

 

Dalsi clanky o OpenWrt.

6 komentářů u „OpenWrt 8: VirtualBox, TFTP boot a obnoveni hesla v Mikrotiku RB411

  1. Fany

    Dobý den, dá se uvedený postup použít i na RB, které disponují pouze LAN portem, tj. bez seriové linky?

    1. Martin Vancl

      Dobry den,
      to jsem nezkousel.

      Nevim, jak nastavit bez seriove konzole bootovani ze site misto z NAND flash.

      1. Miloš

        Děkuji – již to funguje – až se tím trochu prokouši – dám vědět jak jsem dopadl. Potřebuji se dostat do nějak hacknutého MT a zjistit, co tam útočník změnil ( kromě hesla ) a nastavil.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *