Sunteți pe pagina 1din 22

UNIVERSITATEA TRANSILVANIA

LABORATOARE
SECURITATE

Informatică aplicată în Limba germană OBANCIA CARMEN-ELENA

ANUL III
Laborator 1:

1.1 Enumerati si descrieti 3 tipuri de vulnerabilitati.


Proiectul Metasploit este un proiect de securitate IT, care furnizează informații
despre vulnerabilitățile de securitate informatică și ajută în dezvoltarea testelor de
securitate.
Pașii de bază pentru exploatarea unui sistem, folosind arhitectura Metasploit sunt:

1. Alegerea și configurarea unui 'exploit' (cod care pătrunde în sistemul țintă,


profitând de una din vulnerabilitățile acestuia; platforma Metasploit include
aproximativ 900 de exploit-uri diferite de Windows, Unix / Linux și Mac OS
X)
2. Se verifică dacă sistemul țintă vizat este vulnerabil față de exploit-ul ales
(opțional)
3. Alegerea și configurarea unui payload (cod ce va fi executat pe sistemul țintă după
obținerea accesului pe acesta; de exemplu, un shell la distanță sau un server VNC
server)
4. Alegerea tehnicii de codare pentru a cripta payload-ul astfel încât sistemul de
prevenire a intrărilor neautorizate (IPS) să nu depisteze payload-ul codat
5. Execuția exploit-ului

w3af (atac de aplicație web) este un scaner de securitate pentru aplicații web open
source. Proiectul oferă un scanner de vulnerabilitate și un instrument de exploatare
pentru aplicații Web. Oferă informații despre vulnerabilitățile de securitate folosite
în misiunile de testare a penetrării. Scannerul oferă o interfață grafică de utilizator și
o interfață de linie de comandă.
w3af este împărțit în două părți principale, nucleul și plug-in-urile.Miezul
coordonează procesul și oferă caracteristici care sunt consumate de plug-in-urile, care
găsesc vulnerabilitățile și le exploatează. Plugin-urile sunt conectate și partajarea
informațiilor între ele folosind o bază de cunoștințe.

sqlmap este un instrument de testare a penetrarii open source care automatizează


procesul de detectare și exploatare a erorilor de injecție SQL și preluarea serverelor
de baze de date. Dispune de un motor puternic de detectare, multe funcții de nișă
pentru testerul de penetrare final și o gamă largă de switch-uri de la amprentă la bază
de date, la date preluate din baza de date, la accesarea sistemului de fișiere și la
executarea comenzilor pe sistemul de operare.
1.2 Ce vulnerabilitate ati observat pe serverul de retea de la scoala?
SQLmap
1.3 De ce existenta unui utilizator inactiv in sistem este o problema de securitate?
1.4 Ce porturi sunt deschise de obicei pe un calculator oarecare? Ce protocoale
functioneaza pe ele?
Portul 80 - HTTP, TCP
Portul 443 – HTTPS TLS/SSL
Portul 8080 – HTTP Alternate
1.5 Ce s-ar scana daca pe interfata GFI se lasa toate optiunile implicite (default) si se
scaneaza 10.0.0.0?

2.1 Enumerati 3 tool-uri care fac copii de siguranta ale sistemului.


AOMEI Backupper Strandard
EaseUS Todo Backup
Acronis Backup
2.2 Explicati in 2-3 fraze de ce versiunea de Norton Ghost pentru lucru in mod consola
are dimensiuni foarte mici.
2.3 Care este diferenta dintre “TO IMAGE” si “FROM IMAGE”?
“TO IMAGE” se foloseste pentru a salva imaginea si pentru a o muta pe diferite
drive-ere, iar ”FROM IMAGE” se foloseste pentru a modifica imaginea.
2.4 Enumerati si descrieti pe scurt 3 pasi in clonarea unei partii.
1. Creati o discheta bootable Ghost. Vedeti documentul How to create a DOS
system disk for Ghost.
2. Porniți computerul utilizând discheta de boot Ghost. Porneste automat.
3. Apasati OK cand apare ecranul Ghost.
4. În meniul principal Ghost, efectuați una dintre următoarele acțiuni:
Local: Click Local > Disk > To Disk.
Conexiune peer-to-peer: Faceți clic pe Peer to peer> Disk> To Disk
5. In Source Drive box, selectati discul sursa.
Caseta Source Drive box afișează detaliile fiecărui disc pe care Ghost.exe îl
găsește pe computerul local.
6. In Destination Drive dialog box, selectați discul de destinație.
 Alegeți cu atenție, deoarece acesta este discul care va fi suprascris.
 Dacă se folosește o metodă de conectare peer-to-peer, discul de
destinație poate fi oricare dintre discurile computerului. Cu toate
acestea, dacă aceasta este o copie locală pe disc, atunci discul sursă nu
este disponibil pentru selectare.
7. Apasati OK.
8. "Proceed with disk clone?" apare promptul, efectuați una dintre următoarele
acțiuni:
 Faceți clic pe YES pentru a continua clonarea discului.
 Sistemul efectuează o verificare a integrității structurii de fișiere de
pe discul sursă și apoi copiază discul sursă la destinație. Dacă
trebuie să întrerupeți procesul, apăsați pe Ctrl + C, dar fiți conștienți
de faptul că acest lucru lasă discul de destinație într-o stare
necunoscută.
 Ghost acum copiază discul sursă pe discul de destinație. Când este
terminat, Ghost afișează o fereastră care indică finalizarea
procesului.
 Apasati NO pentru a va intoarce la meniu.
2.7 La ce se refera termenul de backup incremental?
Backupurile incrementale vă economisesc timp și spațiu pe disc. Puteți chiar să
programați backup-uri pentru a rula automat. Puteți restabili fișierele individuale,
directoarele selectate sau întregul hard disk.

3.a
1. 2/5? Raspuns: 0
2. 2/5.0? Raspuns: 0.4
3. 3**4? Raspuns:81
4. “Hallo”? Raspuns:Hallo
5. Print „Hallo” + „Welt”? Raspuns:HalloWelt
6. (i,j)=(1,2) Raspuns:Nu afiseaza nimic
7. Range(10)? Raspuns:[0,1,2,3,4,5,6,7.8,9]
8. Range(1,1000,100)? Raspuns: [1,101,201,301,401,501,601,701,801,901]
9. S=”ham” ? Rapuns:variabilei s i se atribuie stringul ‚ham ’ iar daca inmultim
variabila s cu 2 ne va returna ‚hamham’
10. „eggs” +2? Raspuns: Nu poti concatena un string cu un int
11. ‚ham’’and’’eggs’? Raspuns:hamandeggs
12. S*5? Raspuns:hamhamhamhamham
13. S[:0]? Raspuns: gol
14. S[0][0][0]? Raspuns:h
15. (‚x’,)[0]? Rapuns:x
16. ‚eggs’[2][0]? Raspuns:g
17. (‚x’,’y’)[1]? Raspuns:y
18. L=[1,2,3]+[4,5,6]? Raspuns: Nu afiseaza nimic
19. L[:]? Raspuns: Afiseaza continutul listei : 1,2,3,4,5,6
20. L[:0]? Raspuns: []
21. L[-2]? Raspuns:5
22. L[-2:]? Raspuns: 5,6
23. ([1,2,3] + [4,5,6])[2:4]? Raspuns : [3,4]
24. (l[2],l[3])? Raspuns: [3,4]
25. L.reverse()? Raspuns: Nu afiseaza nimic
26. L? Raspuns: Afiseaza lista invers -> [6,5,4,3,2,1]
27. L.sort; l? Raspuns: Afiseaza lista sortata -> [1,2,3,4,5,6]
28. L.index(4)? Raspuns: 3
29. {‚a’:1,’b’:2}[‚b’]? Raspuns: 2
30. D={‚x’:1, ‚y’:2 , ‚z’:3} Raspuns: s-a implementat un dictionar
31. D=[‚w’]=0
32. D[‚x’]+d[‚w’]? Raspuns: 1
33. D[(1,2,3)] = 4; d? Raspuns: {‚x’:1 , ‚y’:2 , ‚z’:3 , ‚w’:0 , (1,2,3):4}
34. D.keys()? Raspuns: dict_keys([‚x’, ‚y’ , ‚z’, ‚w’, (1,2,3)])
35. D.values()? Raspuns: dict_values([1,2,3,0,4])
36. D.has_key((1,2,3))? Raspuns: Nu exista has_key pentru dictionar
37. (1,2,3) in d? Raspuns: True
38. 0 or [] or () or {} or None or „Ende”? Raspuns: ‚Ende’
39. (x,y)=(1,2)? Raspuns: Variabilei x i se atribuie valoarea 1, iar variabilei y i se
atribuie valoarea 2
40. (x,y)=(y,x)? Raspuns: x primeste valoarea lui y si invers.

3.b
1. var origArray = [3, 5, 7, 9];
var newArray = origArray. slice(0, -1);
var anewArray = origArray.append(„6789”);
document.write(origArray);
2. l = [1,2]
l.append(l)
Raspuns : Afiseaza lista [1, 2, [...]]
l = [1,2]
l = l+l
Raspuns : [1, 2, 1, 2 ]

d. Cititi in documentatia python ce face functia dir . Ce metode are clasa lista?
Dacă obiectul are o metodă numită __dir __ (), această metodă va fi apelată și
trebuie să returneze lista de atribute. Acest lucru permite obiectelor care implementează o
funcție personalizată __getattr __ () sau __getattribute __ () pentru a particulariza modul
în care dir () raportează atributele lor.

dir()
['__builtins__', '__doc__', '__name__', 'struct']
dir(struct)
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
'__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
'unpack', 'unpack_from']
class Shape(object):
def __dir__(self):
return ['area', 'perimeter', 'location']
Laborator 2:

1.Antivirus de retea (Trend)


1. Ce capabilitati are un server de antivirus de retea?
2. Pot fi instalati noi clienti de antivirus folosind consola serverului de antivirus?
In ce conditii?
3. Descrieti avantajele folosirii unui server de antivirus intr-o retea.

4. Scrieti un program (C/C++/C#/Java), care pentru un folder (primit ca


parametru) calculeaza pentru fiecare fisier in parte o suma de control (SHA,MD5..) si o
salveaza intr-un fisier alaturi de alte informatii despre fisier (nume, data, ..). La a doua
rulare a programului acesta raporteaza fisierele modificate (au hash-ul diferit de cel
initial). Comparati dimensiunea fisierului obtinut in urma rularii programului ce ceea a
fisierului thumbs.db generat de programe antivirus.

2. Masini virtuale (VMWare/SunVirtualBox)


1. Cate masini virtuale de windows xp pot fi instalate in medie pe un calculator cu
512MB RAM?
Pe un calculator cu 512MB RAM pot fi instalate doua masini virtuale, intrucat
o masina virtuala Windows XP are nevoie de 160MB.

2. Explicati pe scurt optiunea "Bridged networking"


O punte de rețea este un dispozitiv de rețea pentru calculator care creează o singură rețea
agregată din mai multe rețele de comunicații sau segmente de rețea. Această funcție se
numește punte de rețea. Punerea în mișcare este diferită de rutare, deoarece rutarea
permite mai multor rețele diferite de a comunica independent, rămânând separate, în timp
ce puntea de legătură conectează două rețele separate ca și cum ar fi o singură rețea (de
aici numele de "bridgeing"). În modelul OSI, punerea în mișcare este efectuată în primele
două straturi, sub stratul de rețea (stratul 3). Dacă una sau mai multe segmente ale rețelei
de bridge sunt wireless, dispozitivul este cunoscut ca o punte wireless și funcția de
conexiune wireless.

Există patru tipuri de tehnologii de interconectare a rețelelor: punți simple, conexiuni


multiport, învățare sau punți de legătură transparente și punți rutiere sursă.
3. Explicati pe scurt ce este un snapshot.
În sistemele informatice, un snapshot este starea unui sistem la un anumit moment în
timp. Termenul a fost inventat ca o analogie cu cea din fotografie. Se poate referi la o
copie reală a stării unui sistem sau la o capacitate furnizată de anumite sisteme.
4. Indicati o diferenta intre masina reala si masina virtuala.
Pot de exemplu sa am acelasi sistem de operare si acasa si la serviciu. Pot instala acel
sistem de operare pe un stick USB sau pe un hard-disk USB. Singura cerinta este sa existe
in ambele parti instalat acelasi program de virtualizare.
5. Daca se copiaza o masina virtuala configurata, care este deja intr-un domeniu,
ce modificari trebuie facute pentru a fi ambele masini virtuale functionale?
Se porneste a doua masina virtuala si se schimba domeniul. Se restarteaza si se
schimba numele masinii s,i adresa IP a acesteia si se readauga masina la
domeniu. Se restarteaza din nou masina.

3. Python (Py02).

a. Instructiuni ciclice
1. Pentru secventa de cod de mai jos transformati instructiunea repetitiva for in
instructiunea repetitiva while

l = [1,2,3]
for e in l:
print e

while (l>=1&&l<=3)
e=l
print e

2. Pentru secventa de cod de mai jos transformati instructiunea repetitiva while in


instructiunea repetitiva for

d = {1:"unu", 2:"doi", 3:"trei"}


l = d.keys()
i=0
while i < len(l):
s = l[i]
print s, d[s]
i = i+1

3. Compactati secventele de cod de mai sus la dimensiune minima.

b. Scrieti o functie care calculeaza cmmdc. Pentru calcul utilizati metoda cmmdc(x;
y) = cmmdc(y; x) si pentru x > y : cmmdc(x; y) = cmmdc(x - y; y). Testati functia
cu numere din fisierul py02_b.dat. Fiecare linie din fisier contine un singur numar.
Calculati cmmdc dintre numerele de pe linia i si i+1 pentru i numar par.
c. Calculati cmmdc pentru toate numerele din fisier.
d. Scrieti o functie care calculeaza cmmdcLista pentru o lista de numere (pentru
numerele x,y,z cmmdc(x,y,z)=cmmdc2(cmmdc2(x,y),z) ).
e. Argumente. Definiti urmatoarele functii:

def f(a,b,c=1): print a,b,c


def g(a,b,*c,**d): print a,b,c,d
def h(a,b,c=1,*d,**e): print a,b,c,d,e

Pentru apelurile de mai jos justificati valorile tiparite pe baza argumentelor


transmise functiilor.

f(1,2,3)

f(1)
f(1,2)
f(1,2,3,4)
g(1,2)
g(1,2,3,4)
g(1,2,3,4,bla="bla")
h(1,2,3,4,5,6,c=7)
h(1,2,3,4,5,6,x=7)

f. Reconsiderati implementarea functiei cmmdc de la punctul b. Scrieti o


implementare folosind lambda-expresii si reduce.
g. Scrieti o functie Python care citeste un fisier (input.txt) care contine mai multe
linii de forma
Nume VenitStudent NumarOre

si pentru fiecare linie afiseaza

Nume VenitStudent*NumarOre

daca NumarOre>0.

h. Rezolvati problema precedenta (g.) folosind o singura expresie utilizand lambda-


expresii si functiile map si filter.

Laborator 3:
1.1 Nmap este un scaner de securitate, scris inițial de către Gordon Lyon (cunoscut și sub
pseudonimul de Fyodor Vaskovich)[1] folosit pentru a descoperi host-uri
și servicii într-o rețea de calculatoare, creând astfel o „hartă” a rețelei. Pentru a-și
realiza obiectivul, Nmap trimite pachete special formatate la host-ul țintă și
analizează apoi răspunsurile. Spre deosebire de multe scanere simple de porturi, care
doar trimit pachete cu o frecvență constantă predefinită, Nmap ia în considerare și
particularități ale rețelei (fluctuațiile de latență, traficul din rețea, interferența target-
ului cu scanarea) în timpul procesului de scanare.
1.2 Cu toate ca functiile Nmap au crescut ca numar in timp, el a inceput ca un scaner de
porturi eficient si acesasta ramane fuctia lui de baza. Simpla
comanda nmap <tinta>scaneaza mai mult de 1660 de porturi TCP ale <tintei>.
1.3 Filtrarea poate proveni de la un firewall dedicat, din regulile unui router sau dintr-un
firewall software al tintei. Aceste porturi frustreaza atacatorii deoarece furnizeaza
foarte putine informatii. Uneori raspund cu un mesaj de eroare ICMP cum ar fi tipul 3
codul 13 (destinatie care nu a putu fi atinsa: comunicatia interzisa administrativ), dar
filtrele care executa operatia drop (ignora pachetul) fara sa raspunda sunt mult mai
comune. Acest lucru forteaza Nmap sa retrimita de cateva ori probele pentru cazul in
care pachetul s-a pierdut din cauza congestionarii retelei si nu din cauza filtrarii.
Acest lucru incetineste viteza de scanare dramatic.
1.4 Un port inchis este accesibil (primeste si raspunde la un pachet de proba trimis de
Nmap), dar nu exista nici o aplicatie care sa asculte la el. Pot fi folositoare in
dezvaluirea starii hostului sau ca parte a detectiei sistemului de operare. Deoarece cu
porturile inchise se pote comunica, ele merita scanate si mai tarziu in caz ca vreunul
dintre ele se deschide. Administratorii pot lua in considerare blocarea unor astfel de
porturi cu ajutorul unui firewall.

2.1 Nu.
2.2 Cei care se conecteaza la retea nu mai beneficiaza de serviciile oferite de programul
restrictionat.
2.3 CONFIG_IP_ALWAYS_DEFRAG
2.5 NetFilter si OpenBSD PF
4.a.1 L={1,2,3}
l.add(4) => set([1,2,3,4])
a.3 l.remove(1) => set([2,3,4])
a.4 l.clear() => set([])
b.1 a =[‚Mary’ , ‚had’ , ‚little’ , ‚lamb’]
for i in range (len(a)):
print (i, a[i]) => 0 Mary 1 had 2 a 3 little 4 lamb
b.2 l=[”paine”, “”gem”, “margarina”]
for item in l: for item in l:
if item == „gem”: if item != „cartofi”:
print („Yuck”) print(„Yuck)
else: else:
print („Good!”) print („Good”)
Rezultat: Good! Rezultat: Yuck
b.3 l=[„mar” , „banana”, „kiwi”]
print l => [‚mar’ , ‚banana’ , ‚kiwi’]
c.
parent = dict ()
rank = dict()
def make_set(vertice):
parent[vertice] = vertice
rank[vertice] = 0
def find(vertice):
if parent[vertice] != vertice:
parent[vertice] = find(parent[vertice])
return parent[vertice]
def union(vertice1, vertice2):
root1 = find(vertical1)
root2 = find(vertical2)
if root1 != root2:
if rank[root1] > rank[root2]:
parent[root2] = root1
else:
parent[root1] = root2
if rank[root1] == rank[root2]: rank[root2] += 1
def kruskal (graph):
for vertice in graph[‚vertices’]:
make_set(vertice)
minimum_spanning_tree = set()
edges = list(graph[‚edges’])
edges.sort()
#print edges
for edge in edges:
weight, vertice1, vertice2 = edge
if find(vertice1) != find(vertice2):
union(vertice1, vertice2)
minium_spanning_tree.add(edge)
return sorted(minimum_spanning_tree)
d.
import random
print „Am ales un numar intre 1 si 100. Il poti ghici?”
solutie = random.randit(1,100);
numar = int(raw_input(„Introduceti numarul:”))
while numar != solutie:
if numar < solutie:
print „Mai mare”
else:
print „Mai mic”
numar = int(raw_input(„Introduceti numarul:”));
print „Ai ghicit! Numarul era:”, solutie

Laborator 4:

iptraf

1. Cate interfete de retea pot fi urmarite folosind comanda iptraf?

In functie de memoria disponibila.

2. Pot fi obtinute informatii statistice despre un calculator din retea de pe un altul


care are instalat iptraf? Motivati.

3. Ce trafic dintr-o retea se include la trafic non-IP?


4. Pot fi facute modificari de configurare ale retelei folosind iptraf?
5. Cum s-ar putea masura largimea benzii efective a unei retele folosind iptraf?
Wireshark

1. Ce contine sectiunea de date dintr-un pachet ping?


2. Enumerati trei tipuri de protocoale care genereaza trafic in retea. Explicati pe scurt
la ce se refera.
3. Cate pachete si de ce tip trimite in conditii obisnuite o comanda ping?
4. Observati trafic http. Ce puteti sspune despre imaginile dintr-o pagina de web?
5. Ce tipuri de trafic de tip broadcast observati in retea?
6. Folosind JPCAP sa se scrie un program care prezinta continutul unui pachet ICMP
(ping).

Python (Py04).

a. Sa se implementeze adunarea unui sir de numere folosind threaduri


b. #suma elementelor unui sir folosind mai multe fire de executie
c.
d. #!/usr/bin/env python
e. import threading
f. import time
g. sum = 0
h. count = 0
i. a = [1, 2, 3 ,4, 5, 6, 7, 8, 9, 10]
j.
k. class KissThread(threading.Thread):
l. def run(self):
m. global sum
n. global count
o.
p. sum += a[count] + a[count+len(a)/2]
q.
r. print "suma dupa firul %s de executie este %s" % (count,sum)
s.
t. count+=1
u.
v. for t in range(5):
w. KissThread().start()
x.
y. time.sleep(1)
z. print "suma numerelor de la 1 la 10:", sum

aa. Sa se scrie un script python care trimite un mail la o adresa data cu lista
utilizatorilor logati in ziua curenta
bb. #Sa se scrie un script python care trimite un mail la o adresa data cu lista
utilizatorilor logati in ziua curenta
cc.
dd. import smtplib
ee. import subprocess
ff. import string
gg. import time
hh. import os
ii.
jj. from datetime import date
kk. today=date.today()
ll. #p = subprocess.Popen("last ", shell=True, stdout=subprocess.PIPE)
mm. #MSG = p.stdout.read()
nn. today=date.today()
oo. today= today.strftime("%Y%m%d%H%M%S")
pp. x='last -t'+ today
qq. MSG = os.system(x)
rr. FROM = "costel@info.unitbv.ro"
ss. TO = "costel.aldea@unitbv.ro"
tt. SUBJECT = "The users logged in today"
uu. msg = string.join((
vv. "From: %s" % FROM,
ww. "To: %s" % TO,
xx. "Subject: %s" % SUBJECT,
yy. "",
zz. MSG), "\r\n")
aaa. server = smtplib.SMTP('info.unitbv.ro')
bbb. server.sendmail(FROM, TO, msg)
ccc. server.quit()

ddd. Scrieti un script care extrage mailurile de pe serverul de mail folosind


pop3.
eee. Scrieti un script care extrage mailurile de pe serverul de mail folosind
imap.
fff. Generati un grafic pe baza fisierelor de log.
ggg. #!/usr/bin/env python
hhh.
iii. import gdchart
jjj. import shelve
kkk.
lll. shelve_file = shelve.open('access.s')
mmm. items_list = [(i[1], i[0]) for i in shelve_file.items()]
nnn. items_list.sort()
ooo. bytes_sent = [i[0] for i in items_list]
ppp. ip_addresses = ['XXX.XXX.XXX.XXX' for i in items_list]
qqq.
rrr. chart = gdchart.Bar()
sss.chart.width = 400
ttt. chart.height = 400
uuu. chart.bg_color = 'white'
vvv. chart.plot_color = 'black'
www. chart.xtitle = "IP Address"
xxx. chart.ytitle = "Bytes Sent"
yyy. chart.title = "Usage By IP Address"
zzz. chart.setData(bytes_sent)
aaaa. chart.setLabels(ip_addresses)
bbbb. chart.draw("bytes_ip_bar.png")
cccc.
dddd. shelve_file.close()

Laboratorul 5:

1 Cryptool
1.1 Criptati un text folosind Caesar (Crypt menu)
Text: This text file was created in order to help you to make your first steps
with CT1.

Text criptat: Uijt ufyu gjmf xbt dsfbufe jo psefs up ifmq zpv up nblf zpvs gjstu
tufqt xjui DU1.
1.2 Creati o pereche de chei RSA. La ce pot folosite aceste chei?

Perechile de chei RSA sunt utilizate pentru crearea unei semnaturi digitale
pentru mesaje.

1.3 Descrieti procesul verificarii semnaturii digitale (trebuie semnat mai intai
un mesaj ..)
Se deschide fisierul cu mesajul respectiv
Se selecteaza Sign Message din meniul Digital Signatures
Se alege o cheie
Se introduce codul PIN si se apasa butonul Sign
Se deschide fisierul cu mesajul semnat
Se selecteaza Verify Signature din meniul Digital Signatures
Se alege cheia cu care mesajul a fost semnat si se apasa butonul Verify
Signature
1.4 Creati un fisier text ce contine textul ”teste”. Ce valoare de hash (MD5) are
acest fisier?
69 8D C1 9D 48 9C 4E 4D B7 3E 28 A7 13 EA B0 7B.
1.5 Creati un fisier care contine textul ”abracadabra”. Ce valoare SHA are acest
fisier?
F5 43 39 3F C9 4B C9 02 16 5A F2 00 FB AC 09 79 42 FD E6 3B.
1.6 Decriptati fisierul ”cryDES” folosind Crypt¿DES(ECB) cu cheia
AAAAAAAAAAAAAAAA Ce contine acest fisier?
Acesta este un test. Felicitari ati reusit!!
1.7 Decriptati urmatorul fisier ”cryIDEA” folosind Crypt_IDEA
cu cheia: BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC.
Ce reprezinta acest mesaj?

!!”Nimic nu-i mai de ras ca plansul in ochii unui luptator”!!

Laborator 6:

1 Snort
1.1 De ce aveti nevoie pentru ca instalarea snort sa functioneze?
Pentru a functiona instalarea Snort, trebuie instalate mai intai niste librarii
software (libpcap, zlib1g, libssl, libnghttp, libdumbnet s,i libpcre). Se foloseste
urmatoarea comanda (pentru Linux):

sudo apt install -y gcc libpcre3-dev zlib1g-dev libpcap-dev openssl libssl-dev


libnghttp2-dev libdumbnet-dev bison flex libdnet
1.2 La ce este folosit Winpcap?
WinPcap este o versiune a librariei libpcap, disponibila pentru Windows, care
contine un driver pentru a putea instala tooluri de interceptare a pachetelor in
retea. Aceasta librarie este folosita, spre exemplu, de Wireshark.

Laboratorul 7:
1 PGP
1.1 Configurati outlook sa foloseasca un cont de email. Care este diferrenta intre
outlook si un client webmail?
Webmail este un client care este conectat la server in permanenta, pe cand
Outlook descarca mesajele, stergandu-le ulterior de pe server.
1.2 Trimiteti un mail criptat cu cheia publica unui alt coleg. Explicati ce se
intampla.
Colegul care nu are acces la cheia privata nu poate descifra mesajul primit.
Laborator 8:

1.1 .NET Framework oferă un mecanism pentru aplicarea unor niveluri diferite de
încredere pe diferite coduri care rulează în aceeași aplicație numită Security Access Code
(CAS). Securitatea codului de acces în .NET Framework nu ar trebui să fie folosită ca un
mecanism pentru impunerea limitelor de securitate pe baza originii codului sau a altor
aspecte de identitate.
Gazda implicită pentru aplicațiile desktop permite codului să ruleze în deplină
încredere. Prin urmare, dacă aplicația dvs. vizează desktopul, acesta are un permis de
setare nerestricționat. Alte gazde sau sandboxuri oferă o permisiune limitată setată pentru
aplicații. Deoarece setul de permisiuni se poate modifica de la gazdă la gazdă, trebuie să
proiectați aplicația pentru a utiliza doar permisiunile permise de gazda țintă.
1.2 Permisiunile de acces la cod provin din clasa CodeAccessPermission. Sunt necesare
permisiuni pentru a accesa resurse protejate, cum ar fi fișiere și variabile de mediu, și
pentru a efectua operațiuni protejate, cum ar fi accesarea codului neangajat.
Permisiunile de identitate reprezintă caracteristici care identifică un ansamblu.
Permisiunile sunt acordate unei adunări bazate pe dovezi, care pot include elemente
precum semnătura digitală sau locul în care a apărut codul. De asemenea, permisiunile de
identitate provin din clasa de bază CodeAccessPermission.
Rolul permisiunilor de securitate se bazează pe faptul dacă un director are o identitate
specificată sau dacă este membru al unui anumit rol. Clasa PrincipalPermission permite
controale declarative și imperative de permisiune împotriva principalului activ.
FullTrust - Permiteți accesul deplin la toate resursele.
Everything - Permiteți accesul complet la toate resursele (grupul nu este adăugat la
lista de ansamblu)
Internet – Drepturi de Grant Default.
SkipVerification - Treceți prin toate verificările de securitate
Nothing - Anulează tot accesul, inclusiv executarea
Execution - Permite accesul exclusiv în execuție.
1.3 Să spunem că 2 clienti decid să semneze digital, un contract între ei, care este foarte
confidențial. Iată protocolul pe care îl pot utiliza pentru a semna digital contactul:
1. Clientii obțin fiecare câte o copie a dosarului care conține contractul.
2. Al doilea client pregătește un mesaj și calculează hash-ul și criptează valoarea
hash-ului cu cheia privată numită Block Signature.
3. Apoi criptează mesajul cu cheia publică a primului client.
4. Al doilea client trimite două fișiere către primul: hash și mesajul criptat.
5. După primire, primul client decriptează valoarea hash cu cheia publică a celui
de-al doilea.
6. Apoi decodifică mesajul cu cheia privată.
7. Apoi calculează hash-ul acestui mesaj.
8. În cele din urmă, compară cele două valori hash. Dacă acestea sunt identice,
semnătura este "bună", altfel nu este buna.

Laborator 12:

1. Definitia spune, pe scurt, ca spamul este orice mesaj nesolicitat. Din nefericire insa
(pt cei din industria antispam), utilizatorii uneori fac abuz de ceea ce ofera produsele
antispam pentru a bloca nu neaparat "mesajele nesolicitate", ci mesajele "nedorite".
Sunt mai multe metode de detectare a acestor mesaje, unele se bazeaza pe
continut, unele nu. Dintre cele care se bazeaza pe continut, unele sunt proactive (o retea
neurala, expresii regulate create in asa fel incat sa detecteze si variatii ulterioare ale
valurilor de spam) iar detectia proactiva este cea mai valoroasa, pentru ca spamurile sunt
prinse instantaneu, de la momentul zero al "campaniei de spam". Se face de asemenea
filtrare in functie de url-urile din spam, in functie de IP-urile de unde au fost trimise.
Filtrarea care nu se bazeaza pe continut se refera la monitorizarea frecventei mesajelor
similare intr-un interval mic de timp - comportament specific valurilor de spam. Se
raporteaza numai date din care nu se poate extrage continutul mesajului sau identitatea
utilizatorului.

Black list - Lista neagră este forma de filtrare bazată pe reguli, care utilizează o
regulă pentru a decide care e-mailuri sunt spamuri. Lista neagră este lista cu adresa IP a
mașinii sau a înregistrării adreselor de e-mail care au fost utilizate anterior. Când ajunge
mesajul de intrare, filtrul de spam verifică dacă IP sau adresa de e-mail se află pe lista
neagră, dacă da, mesajul este considerat spam și respins.
Greylist - O tehnică relativ nouă de filtrare a spamului, are avantajul faptului că
mulți spammeri încearcă doar să trimită o singură dată un lot de mesaje nedorite.Sub
sistemul greylist, serverul de e-mail destinatar respinge inițial mesajele de la utilizatori
necunoscuți și trimite un mesaj de eroare serverului inițial. Dacă serverul de poștă
electronică încearcă să trimită mesajul a doua oară - un pas pe care îl va lua cel mai
legitim server - greylistul presupune că mesajul nu este spam și lasă-l să meargă la cutia
poștală a destinatarului. În acest moment filtrul greylist va adăuga e-mailul sau adresa
destinatarului la o listă de expeditori permiși.Deși filtrul greylist necesită mai puține
resurse de sistem decât alte tipuri de filtre de spam, acestea întârzie și livrarea de mesaje,
ceea ce ar putea fi incomod.
Content Based Filter - Filtrul bazat pe conținut este cel mai frecvent utilizat grup
de metode de filtrare a spamurilor. Filtrul de conținut acționează fie asupra conținutului,
informațiilor conținute în corpul poștal, fie asupra anteturilor poștale (cum ar fi
"Subiecții") pentru a clasifica, accepta sau respinge un mesaj.
2. Fiecare cuvânt din e-mail contribuie la probabilitatea spam a emailului sau numai la
cele mai interesante cuvinte. Această contribuție se numește probabilitatea posterioară și
se calculează folosind teorema lui Bayes. Apoi, probabilitatea de spam a e-mail-ului se
calculează peste toate cuvintele din e-mail și, dacă totalul depășește un anumit prag (de
exemplu 95%), filtrul va marca e-mailul ca un spam.
3. Shamir's scheme - Este nevoie de două puncte pentru a defini o linie dreaptă, trei
puncte pentru a defini complet un patrat, patru puncte pentru a defini o curbă cubică și așa
mai departe. Adică, este necesar să se definească un polinom de gradul t - 1. Metoda este
de a crea un polinom de gradul t - 1 cu secretul ca primul coeficient și coeficienții rămași
sunt aleși la întâmplare. Apoi găsiți n puncte pe curbă și dați câte unul jucătorului. Atunci
când cel puțin t din jucătorii n dezvăluie punctele lor, există suficiente informații pentru a
se potrivi cu un polinom gradului (t - 1), primul dintre ele fiind secretul.
Blakley's scheme - Două linii neparalele în același plan se intersectează exact la un
punct. Trei planuri non-paralele în spațiu se intersectează exact la un punct. Mai general,
orice n nelinear (n - 1) . Secretul poate fi codificat ca orice coordonată a punctului de
intersecție. Dacă secretul este codificat folosind toate coordonatele, chiar dacă acestea
sunt aleatoare, atunci un insider câștigă informații despre secret, deoarece știe că trebuie
să stea pe plane-ul lui. Dacă un insider poate dobândi mai multe cunoștințe despre secret
decât un străin poate, atunci sistemul nu mai are informații de securitate teoretică. Dacă se
folosește doar una dintre coordonatele n, atunci insiderul nu cunoaște mai mult decât un
outsider (adică secretul trebuie să stea pe axa x pentru un sistem bidimensional). Fiecare
jucător primește suficiente informații pentru a defini un hiperplane; secretul este recuperat
prin calcularea punctului de intersecție al avionului și apoi luând o coordonată specifică a
intersecției respective.

4.
import soket
import random
__all__ = [‚Tracer’]
class Tracer (object):
def __init__(self, dst, hops = 30):
self.dst = dst
self.hops = hops
self.ttl = 1
#Alegeti un port random in range (33434-33534)
self.port = random.choise(range(range(33434-33535))
def run(self):
try:
dst_ip = socket.gethostname(self.dst)
exept socket.error as e:
raise IOError(„Unable to resolve {}: {}”, self.dst,e)
text = ‚traceroute to {} ({}), {} hops max’.format(
self.dst,
dst_ip,
self.hops
)
print (text)

while True:
reciver = self.create_reciver()
sender = self.create_sender()
sender.sentto(b’’’,(self.dst, self.port))

addr = None
try:
data, addr = reciver.recvform(1024)
except socket.error:
raise IOError(’Socket error :{}’.format(e))
finally:
reciver.close()
sender.close()

if addr:
print(’{:<4} {}’.format(self.ttl, addr[0]))
else:
print (’{:<4} *’.format(self.ttl))
self.ttl += 1
if addr[0] == dst_ip or self.ttl > self.hops:
break
def create_reciver(self):
s = socket.socket(
family=socket.AF_INET,
type=socket.SOCK_RAW,
proto=socket.IPPROTO_ICMP
)
try:
s.bind((’’ ,self.port))
except socket.error as e:
raise IOError(’Unable to bind receiver socket: {}’.format(e))

return s
def create_sender(self):
s = socket.socket(
family=socket.AF_INET,
type=socket.SOCK_DGRAM,
proto=socket.IPPROTO_UDP
)
s.setsockpt(socket.SOL_IP, socket.IP_TTL, self.ttl)

return s

Laborator 14:

1. Dati doua exemple de cai troieni.

Trojan.Cryptolocker este un troian, utilizat pentru a răspândi nişte viruşi foarte


periculoşi numiţi Cryptolocker şi Cryptowall. Se crede că acest troian poate fi utilizat şi
pentru distribuirea altor malware-uri, precum programele false anti-spyware, backdoors şi
alte ameninţări similare. Se răspândeşte cu ajutorul unor mesaje de securitate false ce
pretind că maşina dumneavoastră este infectată cu un posibil virus. Atunci când
utilizatorul apasă pe un astfel de mesaj, troianul intră în sistem şi silenţios instalează un
ransomware. În plus, va bloca sistemul şi va afişa un mesaj de avertizare imens pe ecranul
victimei. De asemenea, puteţi descărca această ameninţare în calculator ca şi ataşament de
email sau reclamă de tip pop-up care se oferă să vă actualizeze Java sau Flash Player.

Trojan.ZeroAccess este un alt troian periculos, cunoscut ca şi max++. Notaţi faptul că


există foarte multe versiuni ale acestui troian şi că toate au acelaşi ţel – să fure
informaţiile personale ale oamenilor. Cu acest scop în minte, aceştia înregistrează fiecare
bătaie de tastă a victimei şi pot face continuu capturi de ecran. Acest troian, de obicei, se
furişează în sistem de pe diverse resurse de pe internet precum pagini web nesigure sau
reţele peer-to-peer, şi începe să acţioneze fără a pierde timpul.

2. Faceti o comparatie intre doua programe antivirus.


3. Folosind wireshark puneti in evidenta pasii interceptare a unui pachet icmp.
4. Scrieti un script pentru backupul unui sistem linux. Acesta arhiveaza directoarele
importante si folosind scp copiaza arhivele la caile indicate ca si constante la
inceputul scriptului. Determinati ce servicii necesita atentie deosebita la realizarea
backuplui avand in vedere rularea periodica a acestuia.

Laborator 18:
1.Setarea controlului parental poate fi foarte benefică pentru familia ta. Vă oferă
posibilitatea de a gestiona modul în care copiii utilizează dispozitivul dvs. și vă oferă
liniște că acestea se află în siguranță online.

2. Qustodio - O suită completă de instrumente de control parental pentru a vă

menține copiii în siguranță online

Majoritatea software-urilor de control parental vizează Windows, dar Qustodio

(cred că "custodian") este de asemenea disponibil pentru Mac, Android, iOS, Kindle și

(ciudat) Nook.

OpenDNS FamilyShield - Blocheaza domenii pe întreaga rețea de domiciliu la nivel

de router.

FamilyShield este un serviciu gratuit de la OpenDNS. Instrumentele de control

parental blochează automat domeniile pe care OpenDNS le-a semnalat sub titlurile "fără

gust, proxy / anonimizator, sexualitate sau pornografie".


Kidlogger - Afișarea detaliată a activităților, inclusiv aplicațiile utilizate și
apăsările de la tastatură.
Nimic nu trece de Kidlogger. Acest software gratuit de control parental nu numai
că urmărește ceea ce copiii dvs. scriu la tastaura și site-urile pe care le vizitează - de
asemenea, păstrează o înregistrare a programelor pe care le folosesc și a oricărui
screenshot-uri pe care le iau.

4. Keylogger – inregistreaza actiunile tastaturii (si chiar capturi de ecran) iar dupa
o perioada sunt trimise autorului virusului astfel incat acesta poate afla informatii
importante, cum ar fi useri si parole, conturi, numere de carti de credit…
Exploit – utilizeaza erorile de programare pentru a prelua controlul
computerului-tinta. Sunt periculoase datorita faptului ca multe nu sunt aduse la cunostinta
publicului si sunt cunoscute numai de cei care au descoperit „portile de intrare” (hackeri).
Din acest motiv, periodic, furnizorii de programe (inclusiv Microsoft) fac update-uri
pentru a remedia erorile descoperite si a imbunatati siguranta programului;
Backdoor – dupa cum ii spune si numele (usa din spate) deschide o intrare – fara
ca posesorul computerului sa observe ceva – si, controlandu-l, are la dispozitie toate
informatiile personale, unele foarte importante (useri, password-uri, numere carti de
credit, conturi etc.). Un foarte bun virus de acest tip a fost creeat de un roman si se
numeste Subseven.
Sniffing – se intercepteaza datele transferate printr-o rețea de calculatoare –
eventual se si decodifica – in scopul sustragerii de informatii importante; autorul trebuie
sa se afle in aceeasi retea pentru a putea avea acces la datele respective, cele transferate
prin retea.
Port-scanning – se verifica toate porturile unui calculator (65.535 de toate!) si cand
se depisteaza unul se incepe atacul pentru a se prelua controlul.

1.1 Ce se intelege prin control parental?


Prin Controlul parental se intelege gestionarea modului in care copiii utilizeaza
calculatorul, restrictionand accesul la programe si setand un timp limitat de
actiune. De asemenea, se pot trimite rapoarte parintilor cu activitatea copiilor pe
internet.
1.2 Descrieti trei softuri care ajuta la controlul parental.

Bitdefender
KinderServer
AVG Family Safety

1.3 Prezentati 3 cai troieni care au fost detectati in ultima perioada.

CoreFlood
Tiny Banker Trojan
Shedun Android malware

S-ar putea să vă placă și