WRT-ruuteri häkkimine

Allikas: Kuutõrvaja
Redaktsioon seisuga 22. september 2010, kell 22:48 kasutajalt Jj (arutelu | kaastöö)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)

Linksys WRT54GL

Wärkvara

WRT54GL on väike, ühel plaadil on kokku pandud interneti ruuter, 4-pordiline 10/100 switch ja 54Mbps Wireless-G (802.11g) Access Point. Kaks antennipistikut koos antennidega.

Mootoriks on 200MHz Broadcom 5352 protsessor, 4MB Flash-mälu ja 16MB RAM. Serial interface: UART otsad on trükkplaadil olemas.

Opsüsteemiks on Linux. Haldamine käib veebiliidese kaudu.

Modimine

Firmware vahetamine

OpenWRT, DD-WRT ja mitmed teised.

Milleks: rohkem funktsioone ja arenduskeskkond.

Lisainfot maakeeles https://wiki.itcollege.ee/index.php/DD-WRT

Wärkvara täiustamine

  • Täisväärtusliku jadaliidese tegemine. Kuigi protsessoril on serial-port olemas, pole selle tarbeks pistikut pandud. Pistiku panekust ja pingenivoode muutmisest.
  • Digitemp. Ühejuhtme-liidesega (i-button) termomeeter. Kasutab serial-liidest.
  • Püsimälu laiendamine SD mälukaardi lisamise teel.

Digitemp programm

Tutvume: http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/

Sellelt lehelt saame DD-WRT jaoks valmis programmi digitemp_DS9097-dd: http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/digitemp_DS9097-dd

wget http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/digitemp_DS9097-dd

Paneme käima ja loeme abiteksti

# digitemp

GNU Public License v2.0 - http://www.brianlane.com
Compiled for DS9097

Usage: digitemp [-s -i -U -l -r -v -t -a -d -n -o -c]
                -i                            Initalize .digitemprc file
                -w                            Walk the full device tree
                -s /dev/ttyS0                 Set serial port
                ...

Konfifaili tegemine

# ./digitemp -s /dev/tts/1 -i
DigiTemp v3.3.2 Copyright 1996-2004 by Brian C. Lane
GNU Public License v2.0 - http://www.brianlane.com
Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
1089818800080032 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 1089818800080032
Wrote .digitemprc

Nagu näha, leidis ta ühe anduri ja saadud infi alusel koostas .digitemprc faili

# cat .digitemprc 
TTY /dev/tts/1
READ_TIME 1000
LOG_TYPE 1
LOG_FORMAT "Sensor %s: %.4C"
CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
SENSORS 1
ROM 0 0x10 0x89 0x81 0x88 0x00 0x08 0x00 0x32 

Seda faili võib/saab vajaduse järgi muuta.

Võtame lugemi:

# ./digitemp -q -t 0              
Sensor 0: 22.5625

Kui konfifaili ei ole (ei leita), antakse veateade "Error, you don't have +rw permission to access".

Tegelikuks kasutamiseks peaks digitemp olema salvestatud flash-mällu, algkäivituse ajal kusagilt laetama või olema firmware'sse kompileeritud.

Digitemp WRT flash-mälus

Installeerime WRT54GL flash-mällu DD-WRT mini firmware. Peale jffs-failisüsteemi käivitamist (veebiliidesest valime: Administration ⇒ Management ⇒ JFFS2 ⇒ Enable) jääb masinasse ca 750 kB vaba ruumi. digitemp programmile piisab 150 kB mälust.

Kusagil serveris on kataloog digitemp ja seal failid digitemp, digitemp.conf ja Readme.txt . Selle kataloogi kopeerime WRT-sse :

/jffs/digitemp # scp -r keegi@server.example.com:digitemp /jffs/
/jffs/digitemp # ls -l
-rw-r--r--    1 root     root          493 Mar  5 14:37 Readme.txt
-rwxr-xr-x    1 root     root       143848 Feb 15 00:26 digitemp
-rw-r--r--    1 root     root          280 Mar  1 13:41 digitemp.conf
/jffs/digitemp #

DD-WRT graafilise halduslehe aknasse (Administration ⇒ Commands) sisestame:

echo '*/5 * * * * root /jffs/digitemp/digitemp -c /jffs/digitemp/digitemp.conf -a | /usr/bin/nc -w 10 server.example.ee 23' > /tmp/crontab

See rida konfib cron'i nii, et igal viiendal minutil võetakse temperatuurilugem ja saadetakse logiserveri porti 23.

Salvestame: Save Startup

Võrgust laadimine

Kui meie ruuteris aga piisavalt vaba mälu ei ole ja mingil põhjusel digitempi firmwaresse ei taha kompileerida, siis tuleb nvram-mi kirjutada laadimis- ja käivitmiskäsud. Umbes nii:

wget failid     # (digitemp, digitemp.conf)
sh skriptifail  # (digitemp.sh)

Selline lahendus nõuab võrgust kättesaadava failiserveri olemasolu.

Mis-on-mis

rs232 port 
rs232 standardile vastav jadaliides (serial port).
3,5V serial port 
muidu nagu rs232 port aga signaalitasemed on 0V ja 3,5V -10V ja +10V asemel.

Lingid