Gudinna Wiki VisaÄndraBifogaVersionerUppdateratSökKarta

Vad som finns innanför BusyBox på BBB XAVI-X8222r

Kan man "root" lösenordet är det bara att ansluta med telnet och kika runt, mer om hur man får tag på det nedan.

telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.

BusyBox on (none) login: root
Password: 


BusyBox v0.61.pre (2005.09.20-06:11+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

# ls
bin      etc      proc     usr      var.tar
dev      lib      sbin     var
# cd /usr/www/html/
# ls
adv                 images              logout_footer.html  setup
applycancel.html    index.htm           maint               status
blank.html          index.html          menu2.html          title.html
blank_left.html     js                  postform.frm        tools
conn                login.html          redirect.html       update.html
css                 logout.frm          redirecting.html    update_ok.html
errorPage.html      logout.html         refresh.frm         update_ok1.html
help                logout.js           restart.html        upgrading.html


Hur BBBs automatiska uppgradering av modemet fungerar

Genom att köra kommandot ps kan vi lista aktiva program processer som körs i modemet.
# ps
  PID  Uid     VmSize Stat Command
    1 root       1284 S    init 
    2 root            S    [keventd]
    3 root            S    [ksoftirqd_CPU0]
    4 root            S    [kswapd]
    5 root            S    [bdflush]
    6 root            S    [kupdated]
    7 root            S    [mtdblockd]
   37 root       1192 S    /usr/sbin/thttpd -d /usr/www -u root -p 80 -c /cgi-b
   41 root       2768 S    /usr/bin/cm_pc 
   43 root       1284 S    init 
   44 root       3336 S    /usr/bin/cm_logic -m /dev/ticfg -c /etc/config.xml 
   68 root        640 S    /sbin/dproxy -c /etc/resolv.conf -d 
  119 root        664 S    /usr/sbin/udhcpc -i nas1 -x -H XAVi_ADSL_Modem -c XA
  261 root        628 S    /sbin/utelnetd 
  262 root       1288 S    -sh 
  263 root       1284 R    ps 
# 


BBB kör ett litet programm "cm_logic" som i jämna mellanrum ansluter via internet till bredbandsbolaget och försöker hämta firmwareuppgraderingar samt underhåller konfigurationen på modemet.

... tyvärr verkar det som att BBB inte har tänkt på att modemet inte kan ringa hem ifrån andra nät än BBB's eget vilket resulterar i trassel för personer som har fått BBB's utrustning bakom skanovas nät (läs föredetta bostreamkunder med "b2sk8" abonnemang,"BBB 8/1").
Uppgraderingsfunktionen fungerar inte heller om modemet körs i bryggat läge.

För att den automatiska uppgraderingen av firmware ska fungera krävs det att modemet har loggat in med PPPoE och fått tag i en egen extern IP adress samt dns. Tekniskt sett använder modemet kommandot wget för att hämta hem ny firmware från cpeconfserv.bredband.com inloggningsuppgifter ligger lagrade i binärfilen /usr/bin/cm_logic

Rekomendationer är att köra modemet i bryggat läge och låta en dator som är kopplad till modemet köra PPPoE inloggningen. Då slipper man avbrott i internetförbindelsen när modemet uppgraderar sig själv samt täpper till en stor säkerhetslucka. BBB tillåter nämligen telnet login utifrån i PPPoE läge vilket tekniskt sett möjligör att modemet lätt kan kapas och användas för dolt espionage på den som använder modemet om modemet körs i PPPoE läge med BBB's konfiguration.
http://eforum.idg.se/viewmsg.asp?EntriesId=762056#762200 - Mer utförligt hur man ska ställa om modemet i bryggat läge manuellt.
( för att logga in på modemet ansluter man enklast till http://192.168.1.1 och loggar in med admin admin vilket ska stå i installationsbrevet från bredbandsbolaget. )


Hur man får reda på mer information om hårdvaran

XAVI modemen kör MontaVista linux http://www.mvista.com/ på en @texas instruments AR7RD

I katalogen /proc kan man läsa ut information hur modemets hårdvara är konfigurerad samt läsa ut lite behändig information som vilken processor vi har att göra med med mera.

# cd /proc/
# cat cpuinfo 
processor               : 0
cpu model               : MIPS 4KEc V4.8
BogoMIPS                : 149.91
wait instruction        : no
microsecond timers      : yes
extra interrupt vector  : yes
hardware watchpoint     : yes
VCED exceptions         : not available
VCEI exceptions         : not available
# cat ticfg/env | grep IPA
IPA     192.168.1.55
# cat ticfg/env | grep ProductID
ProductID       AR7RD

Uppgifter för att logga in i modemets bootloader. (används för omprogrammering vid uppstart vid service av modemen)

IPA IP nummret (192.168.1.55) är den ipadress som modemets ADAM2 bootloader svarar på mellan 2-4 sek efter att strömmen är påslagen. Om så önskas byta ut hela firmware på modemet görs det lämpligast genom att ansluta med ftp eller telnet när modemets nätverkslampor blinkar till vid strömanslutning och logga in med standard användarnamn adam2 och lösenord adam2.
Hur man använder ADAM2 finns väl dokumenterat på: http://wiki.openwrt.org/OpenWrtDocs/InstallingAR7
Opensource firmware för AR7RD är under utvekling: http://wiki.openwrt.org/AR7Port

Hur man kan få temporärt över egen kod in i modemet när man väl är inloggad

Vill man enbart köra lite egen kod i ADSL modemet utan att byta ut hela firmware går det att tanka över små programm med hjälp av wget och lagra dessa i ramminnet när man är inloggad på adsl modemet. Observera att det mesta av filsystemet inte går att manipulera eftersom det kör squashfs som i sin natur är skrivskyddat, /var däremot lagrar filerna direkt i det lediga utrymmet i modemets ram minne.

En lustig detalj är att AR7 hårdvaran är så pass standardiserad så det går fint att ladda ner kompilerade binärer för en helt annan AR7 baserad router och köra dessa om så önskas. Kika på http://www.beyondlogic.org/nb5/ - för tips hur man kompilerar egen kod för AR7s MIPS arkitektur.

Nedan kollar vi hur filsystemen är monterade och noterar att /var är skrivbar. Vi använder kommandot wget som modemet normalt använder för att hämnta hem ny firmware från bredbandsbolaget för att enkelt ladda ned programfiler från webservrar som modemet kommer åt till /var katalogen. Sedan ändrar vi rättigheter på programfilen och startar programfilen genom att anropa ./ samt programfilens namn.
# mount
/dev/mtdblock/0 on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
# cd /var/
# wget http://www.beyondlogic.org/nb5/hello
hello                100% |*****************************|  9860       00:00 ETA
# chmod +x hello 
# ./hello 
Hello World!
#    


Enkelt sätt att hämta valfri fil från filsystemet utan att behöva logga in som root: använd webcm webinterfacet!

Som avslutning kan vi roa oss med att låta modemets webinterface ladda ned sig själv, eller valfri fil från det interna filsystemet inklusive /etc/passwd och /etc/shadow om så önskas där root lösenordet finns krypterat. Detta är möjligt tack vare att webcm körs som root med mer rättigheter än vad den förtjänar samt att webcm inte bryr sig nämnvärt vad den laddar ned, det kallar vi säkerhet från 80-talet.

http://192.168.1.1/cgi-bin/webcm?getpage=../cgi-bin/webcm
  url=http://192.168.1.1/cgi-bin/webcm
  curl -Ss \
       -d getpage="../html/index.htm" \
       -d errorpage=../html/index.html \
       -d login:command/username=admin \
       -d login:command/password=admin \
       -d var:logStatus=go \
       $url > /dev/null

Vill man ha tag i root lösenordet utan att behöva forcera krypteringen av /etc/passwd och /etc/shadow så är det bara att hämta hem och kika i /etc/config.xml med hjälp av webinterfacet, där står root lösenordet i klartext mellan passwordx taggarna i xml filen. Verkar som att modemet är konfigurerat att läsa in lösenordet i klartext och sedan skapa /etc/passwd och /etc/shadow från klartext varianten. Lösenordet är visserligen 30 tecken långt men eftersom det passerar unix crypt() funktion reduceras det till en mer behändig variant baserad på de första 8 bokstäverna i lösenordet, så man behöver bara mata in dom första 8 tecknen av lösenordet när man vill logga in som root.

För blandad BBB kuriosa, kika på http://bbbfaq.gunnard.se

Mycket nöje...

Bifogar lite länkar om AR7 hårdvaran som påminnelse hur lik xavi modemets hårdvara är andra fabrikat.

Uploaded Image: l4_ar7_adsl_router.gif


Referenser till aktuell sida