Da questo
numero vorrei trattare la descrizione ( piu' approfondita che posso ) dei
sistemi operativi sparsi in giro per la rete e che magari vi e' capitato
piu' volte di incontrare.
Vedro'
di spiegare quanto meglio posso il sistema e la sua storia. Le nozioni
sul suo uso ed infine le tecniche per potervi accedere.
Allora
partiamo subito col dire una cosa:
Se volete
hackerare un VAX o siete veramente bravi ( e quindi non credo che vi interessi
questo mio articolo ) oppure avete un forte motivo per farlo. Se siete
alle prime armi NON avvicinatevi a questo tipo di sistema poiche' e' considerato
il piu' sicuro che ci sia in giro.
Detto questo,
inizio con un breve accenno di storia sul VAX/VMS.
Il computer
VAX, la cui sigla significa Virtual Address eXtension e' stato creato dai
tecnici della Digital Equipment Corporation ( DEC ).
Ci sono
vari modelli di questo computer: dal piu' vecchio MicroVax, alla serie
11/7XX per finire alla serie 6000. Purtroppo sono rimasto a questa serie
e non so' se ne e' uscita una nuova. Perdonatemi.
Il computer
VAX usa, solitamente, un sistema operativo chiamato VMS. VMS sta per Virtual
Memory System. Sempre creato dalla DEC questo sistema e' molto pratico
per quanto riguarda la sicurezza di un terminale in quanto e' molto piu'
flessibile di sistemi come lo unix o il dos. Il VMS utilizza un linguaggio
chiamato DCL, ovvero Digital Command Language
ed e' stato
creato utilizzando due linguaggi di programmazione cioe' il BLISS-32 e
il FORTRAN.
Per fare
un esempio lo si puo' paragonare al linguaggio batch del dos o allo script
dello unix ma con alcune differenze. Una di queste e' che quando si vuole
far partire un programma dal prompt bisogna mettere un $ davanti al comando.
In genere
i programmi del DCL sono comunemente chiamati COM file. Tutte le procedure
di login su questo sistema possono essere eseguite in una di queste due
modalita':
1) Interattiva;
2) Non
interattiva.
Il primo
metodo significa che lo user deve eseguire alcune istruzioni ( login, password
) che il terminale gli invia per poter cosi' accedere alle sue funzioni.
Esempio di questo primo metodo sono l'accesso locale ( quando si e' connessi
direttamente al processore del computer ); attraverso linee telefoniche
o da un nodo remoto di una rete. Il secondo metodo, ovviamente, significa
che lo user deve solo attendere che il software lo colleghi senza dover
far nulla poiche' a tutte le procedure pensa il computer.
Alcuni
esempi possono essere attraverso network; tramite un batch login che e'
un processo iniziato da uno user e che sta attualmente girando sulla macchina
oppure tramite un sottoprocesso che e' fatto partire da uno user ed e'
il risultato di un comando del sistema o di un servizio di quest'ultimo.
Qui di
seguito riporto ( presi da varie riviste sparse per la rete, prima di queste
la LOD ) le password e gli account piu' comuni per questo tipo di sistema:
ACCOUNT PASSWORD
RJE
RJE
HOST
HOST
LINK
LINK
INFO
INFO
BACKUP
BACKUP
NETWORK
NETWORK
DECMAIL
DECMAIL
HELPDESK
HELPDESK
REPORT
REPORT
REPORTS
REPORTS
DECNET
DECNET
DEFAULT
DEFAULT
DEMO
DEMO ( o privo di password )
FIELD
FIELD, SERVICE
GUEST
GUEST ( o privo di password )
OPERATOR
OPERATOR
OPERATIONS
OPERATIONS
SYSMAINT
SYSMAINT, SERVICE, DIGITAL
SYSTEM
SYSTEM, MANAGER, OPERATOR, SYSLIB
SYSTEST
UETP, SYSTEST
SYSTEST_CLIG
CLIG, SYSTEST, TEST
SUPPORT
SUPPORT, DEC
Una possibile schermata di login puo' essere questa:
*********************************************************************
WELCOME TO THE
AT&T MICROVAX II SYSTEM
Username:
Password:
Dopo averli inseriti puo' apparire:
Last interactive login on Wednesday, 01-JUN-1996
10:20.11
Last noninteractive login on Friday, 30-MAY-1996
15:38.27
2 failures since last successful login
You have 1 new mail messagge
$ ( questo e' il simbolo del prompt dei comandi )
Come si puo' benissimo vedere dallo schema che ho riportato sopra, il VAX registra i tentativi falliti di login e li comunica all'utente quando effettua il primo login corretto ( comunque ne parlaremo anche dopo ).
Comandi del VAX/VMS:
Di seguito riporto i comandi piu' utilizzati in questo sistema.
@: Esegue
un programma. Se si vuole eseguire un file .com bisogna mettere davanti
ad esso un @. Ad esempio: @LOGIN.COM;3
ACCOUNTING:
Questo comando fa' partire il programma accounting che serve per vedere
quanto sei stato online.
CREATE:
Compilatore Pascal. Usare: CREATE nomefile.pas
CREATE/DIR:
Crea sottodirectory.
DELETE:
Questo comando e' usato per cancellare file o per cancellare directory
vuote e non protette. Per cancellare un file usa il comando DEL filename.ext;x.
Per cancellare una directory prima bisogna cancellare tutti i file presenti
in essa ( DEL/LOG *.*:* ) poi bisogna settare la protezione ( SET PROTECTION
): SET PROTECTION=OWNER:D nomedirectory.DIR poi cancellare la directory
DEL nomedirectory.DIR.
DIR ( DIRECTORY
): Questo comando ti permette di vedere quali file sono contenuti in una
directory ( vedi dir per dos o ls per unix ). Con /BRIEF si otterra' una
piccola lista mentre con /FULL si vedra' il contenuto completo della directory.
Esempio: DIR/FULL PIPPO-%%.*;% Il carattere % serve ad indicare un qualsiasi
carattere mentre * indica
una qualsiasi
cosa.
EDIT: editor
VMS.
HELP: Ti
fornisce il programma degli aiuti ( che tra l'altro sono tra i migliori
esistenti al mondo ).
LIBRARY:
Usato per scopi di archiviazione.
LOGOUT:
Disconnette dal sistema.
MAIL: Carica
il programma per la posta elettronica.
$PASSWORD:
Cambia la propria password. Esempio: $PASSWORD nuovapassword.
PHONE:
Usato per parlare con un altro utente. Per parlare con uno user bisogna
digitare il suo nome.
PHOTO:
Registra una sessione.
RUN: Lancia
un eseguibile.
SET: Vedi
oltre.
SHOW: Show
puo' mostrare molte cose e la sintassi e' come in questo esempio: SHOW
USERS DAV ( SHOW qualcosa qualcuno ).
-CLUSTER:
Mostra i cluster del VAX se ci sono
-DEFAULT:
Percorso della directory.
-DEVICES:
Mostra i device del sistema.
-INTRUSION:
Dice se ci sono degli account che sono stati hackerati.
-MEMORY:
Memoria.
-NETWORK:
Mostra il network e dove il VAX e' connesso.
-PROCESS:
Mostra lo stato di un processo in corso.
-PROTECTION:
Mostra le protezioni di un file.
-QUOTA:
Mostra lo spazio sul disco permesso per il tuo account.
-SYSTEM:
Varie informazioni sul sistema.
-DAY: Giorno
e data.
-TIME:
Ora.
-USERS:
Mostra gli user online sul sistema.
Piccola spiegazione del comando SET:
SET FILE/PROTECTION:
settare i permessi nei file o nelle directory.
La stringa
da utilizzare e': SET FILE/PROTECTION=OWNER[RWED] nomefile.estensione (
RWED: permessi dei file, spiegato oltre ). Al posto di OWNER ( possessore
) si possono mettere le seguenti opzioni:
-WORLD:
per tutti gli users connessi al sistema;
-GROUP:
per tutti gli users nello stesso gruppo del possessore;
-SYSTEM:
per tutti quelli che hanno privilegi di SysOp.
SET TERMINAL:
Il comando
da utilizzare e': SET TERMINAL/opzioni.
Le opzioni
sono le seguenti:
WIDTH=80:
80 colonne di ampiezza;
ADVANCE_VIDEO:
seleziona 124 x 24 linee;
NOADVANCE_VIDEo:
deseleziona 124 x 24 linee;
ANSI_CRT:
seleziona la sequenza di uscita ANSI;
NOANSI_CRT:
deseleziona la ANSI_CRT;
AUTOBAUD:
permette al computer di selezionare la velocita' piu' alta possibile per
il collegamento;
NOAUTOBAUD:
deseleziona la voce sopra;
BROADCAST:
permette il ricevimento di SEND, MAIL e PHONE;
NOBROADCAST:
previene dalla ricezione di SEND, MAIL e PHONE;
DEVICE_TYPE=VT220:
setta il terminale come VT220;
ECHO: abilita
l'echo dalle linee di comando del DCL;
NOECHO:
disabilita la funzione ECHO;
FULLDUP:
abilita il full duplex;
NOFULLDUP:
disabilita il full duplex;
HANGUP:
esegue il log off se non c'e' portata;
Vi sono
altri comandi ma non li riporto...se li volete proprio sapere tutti vi
consiglio di ricercare con l'altavista la parola VAX o VMS e cercare un
po' tra i risultati i vari manuali dei comandi di questo sistema.
SET DEFAULT:
Avete presente
il comando cd.. o cd .. ( rispettivamente dos e unix )?
Nel VAX/VMS
per cambiare le directory o per entrare in esse e' necessario conoscere
questo comando. La sintassi per entrare in una directory e':
SET DEFAULT
[.SOTTODIRECTORY] mentre per andare nella directory "superiore" il comando
e': SET DEFAULT [-].
SICUREZZA DEL VAX:
Il VAX come
ho gia' detto e' il sistema piu' sicuro che ci sia in
circolazione
e questo per una serie di motivi:
1) Password;
2) Barriere
interne;
3) Monitoraggio;
PASSWORD
Ci sono
( come in ogni altro sistema ) due tipi di accessi, quello dello user normale
e quello del root ( o amministratore di sistema ). Per il primo in genere
il sistema richiede l'inserimento di un nome ( login ) seguito poi da una
password. Per il secondo puo' sia chiedere le stesse cose che ha richiesto
ad uno user sia richiedere l'inserimento di una seconda password dopo aver
inserito la prima...diciamo una successiva barriera di
sicurezza.
Raramente
un amministratore di sistema mette due password per accedere
ad una directory
ma tenete bene a mente che LO PUO' fare.
BARRIERE INTERNE
Su alcuni
sistemi, dopo esserci inseriti con una giusta combinazione
di user e password,
potrebbe apparirci un messaggio nel quale ci si richiedono
successive informazioni e cio' potrebbe farci "saltare" ad
un'applicazione
supplementare o addirittura ad un errore di sistema.
Per superare
questo tipo di protezione si puo' provare a premere control-c
e/o control-y dopo aver inserito correttamente login e pass.
Questo puo'
( e ripeto puo' ) far saltare al sistema l'esecuzione di
programmi di
sicurezza, applicazioni o altri tipi di eseguibili che
indicherebbero
al computer che non siamo veramente lo user in questione.
Alle volte,
pero', gli amministratori di sistemi settano
il comando
SET in modo da non poter usare control-y all'inizio della
fase di login
( set nocontrol=y ) impedendo cosi' che intrusi penetrino
nel sistema
in questo semplice modo.
MONITORAGGIO
L'intera
sicurezza del sistema VMS e' basata su un concetto di monitoraggio
di tutto il
terminale.
Un amministratore
di sistema puo' controllare:
1) Ogni
informazione su di uno user, dalle info personali ai comandi che
lancia sul
sistema;
2) Ogni
tipo di applicazione e documento presenti sul sistema come, ad
esempio, mailbox,
file o terminali;
3) Tutte
le possibili forme di sicurezza sui files come diritti su di essi
o le liste
di accesso a un dato programma;
4) I cosiddetti
avvisi di allarme.
Questo tipo
di monitoraggio rende capace il system-operator di seguire
passo passo
ogni procedura di autenticazione che si verifica all'interno
del sistema.
Il VMS e' molto
flessibile come sistema poiche' un root puo' decidere
praticamente
tutto sul terminale...potrebbero mettere una password
sopra un dato
file oppure metterne una su tutti quelli presenti. Potrebbero
restringere l'accesso a certi tipi di utenti oppure lasciare
libero accesso a tutti.
Tanto per fare una panoramica generale sulle sicurezze del VMS:
Di seguito
riporto i principali privilegi di un VAX:
ACNT: Puo'
sopprimere i messaggi di accounting.
OPER: Fornisce
privilegi da operatore.
GROUP:
Puo' prendere altri processi nello stesso gruppo.
WORLD:
Come GROUP solo valido per la categoria WORLD.
SHMEM:
Puo' creare/cancellare dati nella shared memory.
ALTPRI:
Puo' settare qualsiasi livello di priorita'.
BYPASS:
Evita le procedure di controllo.
SETPRV:
Puo' settare qualsiasi bit di privilegi.
SYSLCK:
Blocca le risorse del sistema.
SYSPRV:
Puo' accedere a dati attraverso la protezione del sistema.
VOLPRO:
Puo' passare sopra alla protezione dei volumi sul sistema.
READALL:
Puo' leggere qualsiasi cosa come il possessore.
SECURITY:
Puo' far eseguire le funzioni di sicurezza.
Per vedere
i propri privilegi all'interno del sistema dovete digitare:
$ SET PROCESS /PRIVS
Se nella lista che compare alla fine della descrizione di tutti i privilegi e' presente anche quello chiamato SETPRV, ci si puo' dare qualsiasi tipo di privilegio con il comando:
$ SET PROCESS /PRIVS=ALL
Hacking The VAX
Allora innazitutto
direi che ci sono due metodi principali per entrare in
un VAX:
1) Attraverso
l'hack di un account & similar;
2) Attraverso
una rete;
1) Hack di un Account & Similar
Quando vi loggate ad un account e questo vi da' problemi iniziali potete provare ad inserire al fianco del login anche un comando:
Username:
NOME /NOCOMMAND
Password:
Ci sono 4 comandi fondamentali utilizzabili accanto al login e cioe':
Ritornando
al discorso di prima, dopo esserci inseriti con successo
all'interno
del sistema in questione, ci sono una serie di utili
comandi per
capire bene cio' che ci circonda:
SHOW USER,
SHOW PROCESS/PRIVS, SHOW AUDIT e SHOW INTRUSION.
SHOW USER
Se, all'interno del sistema, incontriamo un altro user dobbiamo prendere nota del suo nome e questo per la semplicissima ragione che avere gia' il nome di un utente faciliterebbe il compito di dover ricercare la sua password per poter penetrare nel sistema attraverso il suo account.
SHOW PROCESS/PRIVS
Per poterlo
usare senza scatenare il finimondo sul terminale in questione
bisogna avere
il permesso di usare SHOW AUDIT e SHOW INTRUSION. Comunque
si puo' sempre tentare:
$ SET PROCESS/PRIVS=GROUP
Iniziate
con GROUP e se funziona, continuate fino ad arrivare a ALL.
Comunque per
lanciare programmi, vedere file o altre interessanti cosucce
NON bisogna
avere tutti i privilegi ( ALL )... bastano solo quelli giusti.
SHOW AUDIT
Puo' mostrare
due schermate:
La prima
potrebbe dare come risultato qualcosa tipo:"Security alarms
currently disabled"
( Allarmi di sicurezza attualmente disabilitate ).
Oppure
potrebbe indicare dove si trovano le allarmi:
ACL
BREAKIN:
( DIALUP, LOCAL, REMOTE, NETWORK )
FILE ACCESS:
FAILURE:
( READ, WRITE, EXECUTE, DELETE, CONTROL )
BYPASS :
( READ, WRITE, EXECUTE, DELETE, CONTROL )
LOGIN:
( DIALUP )
LOGOUT:
( DIALUP )
Sarebbe
molto importante vedere questa schermata in modo da non far
scattare allarmi
cercando un modo per aggirarle senza correre
rischi.
Tanto per
rinfrescarvi la memoria un SysOp puo' ricevere un allarme
quando:
1) Una
ACL ( Access Control List ) "richiede" un allarme; se si vuole
accedere ad
un file e non si e' sicuri di cosa si ha davanti potete
provare a fare
un SHOW ACL e vedere cosa salta fuori.
2) Il sistema
individua una possibile intrusione. Il computer ha, nella
sua configurazione, indicato un numero che, una volta raggiunto
fa' scattare
l'allarme.
Potrebbe
essere dopo tre tentativi falliti di connessione o dopo venti;
dipende tutto
da come e' stato configurato il sistema. Quindi
il mio consiglio e' quello di tentare una o due password al giorno
perche' credo
che nessuno setti questo valore al di sotto dei due tentativi
e anche perche'
cosi' si desterebbero meno sospetti.
3) Si accede
ad un file "rompendo" i vari accessi ( read, write, ecc. ).
4) Si accede
ad un file attraverso il privilegio BYPASS. Molto
probabilmente, se si entra in un sistema e si ha il BYPASS si
hanno anche
tutti ( ALL ) i privilegi. Non credo che qualche amministratore
di sistema
concederebbe a chiunque l'uso del BYPASS se non per un errore
di impostazioni.
SHOW INSTRUSION
$ SHOW INTRUSION/TYPE=ALL
Intrusion
Type
Count Expiration
Source
TERMINAL
INTRUDER 9
08:34:24.56 TTA0
NETWORK
SUSPECT 2
09:03:33.39 COINS::NSAUSER1
Il comando
impostato sopra mostra le informazioni contenute nel database
del sistema.
Dopo TYPE
si possono inserire le seguenti parole:
ALL: E'
di default e mostra TUTTI i tentativi di hack del terminale.
SUSPECT:
Tutte quelle che non sono identificate come INTRUDER.
INTRUDER:
Tentativi di penetrazione del sistema nei quali c'erano molte
azioni evasive
nei confronti del computer stesso.
2) Hackerare attraverso una rete.
Secondo
me questo e' sicuramente il metodo piu' "facile" poiche' il VAX
ha molte debolezze
sui computer collegati via rete. Una
volta che sia e'entrati con successo in un sistema come DECnet, si puo'
accedere tranquillamente
a file, directory e dati contenuti nel VAX senza che
neppure quest'ultimo richieda password.
Faro' tre
esempi citati dalla Lod:
1) $ TYPE PLOVER::SYS$SYSROOT:<SYSEXE>SYSUAF.LIS;*
2) $ DIR DOCWHO::SYS$SYSROOT:<000000...>
3) $ RUN LEGION::SYS$SYSROOT:<SYSEXE>AUTHORIZEUAF>
La sintassi
e':
NOME-COMANDO
NOME-NODO::DEVICE:<DIRECTORY>FILE-OPPURE-NOME-PROGRAMMA
Il NOME-NODO
deve essere seguito dalle due "colonne" ( :: ). Nel
primo esempio abbiamo scaricato a video il contenuto del file
SYSUAF.LIS
che contiene tante tante informazioni importanti. Nel
secondo esempio stavamo dando un'occhiata a quali erano TUTTI
i file presenti
in TUTTE le directory del sistema. Nel
terzo esempio, stavano lanciando AUTHORIZE e cosi' facendo possiamo per
esempio avere la lista degli user sul sistema oppure crearci un
account...tanto
per citarne solo due. Qui,
per concludere questo ( forse troppo ) lungo articolo riporto
le estensioni
dei file che si trovano su un VAX/VMS:
ADA File compilati
con Ada;
BAS File compilati
con il BASIC;
B32 File compilati
con il BLISS-32;
C
File compilati con il C;
COB File compilati
con il COBAL;
FOR File compilati
con il FORTRAN;
MAR File compilati
con il MACRO;
PAS File compilati
con il PASCAL;
PLI File compilati
con il PL/I;
CLD File di descrizione
dei comandi DCL;
COM DCL batch
o file di procedure di comando;
DAT Data file;
DIS File di distribuzione
( come quelli della mail );
DIR Directory;
EDT File di comando
per l'editor EDT;
EXE Eseguibili;
HLP File di aiuto;
JOU "Giornale"
di aiuto dell'editor EDT quando si verifica un problema;
LIS System Listing
File ( ovvero come per il comando TYPE );
LOG Batch Job
Output File;
MAI File di posta;
MEM DSR output
file;
OBJ File creati
da un compilatore prima di LINKarli;
RNO File di sorgente
per DSR;
SIXEL File per la grafica
SIXEL;
SYS File di sistema;
TJL "Giornale"
creato quando accade qualcosa di insolito;
TMP File temporanei;
TPU File di comando
dell'editor;
TXT File di testo
e file di uscita del programma MAIL;
UAF User Authorization
File ( file di autorizzazione di un utente )
I piu' importanti sul sistema direi...
Il VAX
e' un gran bel sistema ma, come ogni altro sistema, ha le sue
debolezze e,
in questo caso, risiedono nel network. Quindi
perche' fondersi il cervello per entrare in un VAX senza lasciare
traccia quando
possiamo farlo benissimo da un nodo di una rete e senza
troppi problemi?