ArLUG (grupul utilizatorilor de Linux din Arad), este o comunitate de oameni, care împărtașesc pasiunea pentru sistemul de operare GNU/Linux și software-ul liber.

Scopurile ArLUG sunt:
* promovarea sistemului de operare Linux și a software-ului liber
* formarea/menținerea/dezvoltarea unei comunități locale
* educarea și instruirea oamenilor (ne)familiarizați cu acest sistem

Archive for 'Securitate'

ARP poisoning

Un articol de hacking, din care se poate învăţa câte ceva despre funcţionalitatea şi/sau securitatea reţelelor informatice. Informaţiile conţinute în acest articol sunt de natura strict informaţională şi recomand reproducerea lor doar in laborator sau alte medi de test sigure.

Articolul este luat şi tradus de pe situl http://openmaniak.com/ un site bunicel în materie de securitate.

Articolul tradus este acesta:http://openmaniak.com/ettercap_arp.php.

În acest tutorial, maşina noastră ettercap va juca rolul de “omul din mijloc” (man in the middle), după un atac de spoofing ARP.

Diagrama(http://openmaniak.com/ettercap.php#diagram) scenariului este disponibilă în pagina de introducere ettercap.
Primul lucru de facut este de a stabili o adresă IP pe maşina dvs. ettercap în aceeaşi subreţea cu masina pe care doriţi să faceţi poison. Pentru tutorialul noastu adresa IP 192.168.1.100 este utilizată.
A se vedea de tutorialul de netwoking(http://openmaniak.com/networking.php) pentru explicaţii detaliate despre cum să setaţi o adresă de IP pe Linux.

Ca un memento, ettercap va avea nevoie de acces root pentru a fi lansat, apoi va putea fi “suportat” de utilizatorul nobody.

1.ARP spoofing.
- Deschide Ettercap in mod grafic

#ettercap -G


openmaniak ettercap

- Selectează “sniff mode”
Sniff -> Unified sniffing


openmaniak ettercap man in the middle attack sniff united sniffing
openmaniak ettercap

Scanează gazda din subnetul tau
Hosts -> Scan for hosts
Scanearea campului de adrese depinde de setările făcute anterior pe placa de reţea
openmaniak ettercap man in the middle attack
openmaniak ettercap  man in the middle attack sniff united sniffing

Vezi adresele IP şi MAC a calculatoareleor din subreţea.
openmaniak ettercap man in the middle attack

Selectaţi maşinile pentru poison
Am ales sa facem ARP poison doar pentru un sistem Windows şi routerul 192.168.1.2 192.168.1.1.
Selectaţi linia ce conţine 192.168.1.1 şi faceţi clic pe butonul “Target 1″.
Selectaţi linia ce conţine 192.168.1.2 şi faceţi clic pe butonul “Target 2″.
Dacă nu selectaţi nici o maşină ca ţintă, toate maşinile din subreţea vor fi ARP atacate.
openmaniak ettercap man in the middle attack

Verifică ţintele
openmaniak ettercap man in the middle attack
man in the middle attack openmaniak ettercap

Începe ARP Poisoning
Start -> Start sniffing
man in the middle attack openmaniak ettercap

– ARP TRAFFIC:

Pe un sistem Windows, cu ajutorul Wireshark, putem compara traficul ARP înainte şi după atac:

192.168.1.1
192.168.1.2
192.168.1.100
(Router)
(Windows)
(Pirate)
11:22:33:44:11:11
11:22:33:44:55:66
11:22:33:44:99:99

Înainte de atac
Înainte de a începe să comunice, router-ul şi Windows-ul trimit un broadcast ARP(http://en.wikipedia.org/wiki/Broadcasting_%28networks%29) pentru aşi găsi adresa fiecăruia de MAC.

No
1
2
3
4
Source
11:22:33:44:55:66
11:22:33:44:11:11
11:22:33:44:11:11
11:22:33:44:55:66
Destination
11:22:33:44:11:11
11:22:33:44:55:66
11:22:33:44:55:66
11:22:33:44:11:11
Prot
ARP
ARP
ARP
ARP
Info
who has 192.168.1.1? Tell 192.168.1.2
192.168.1.1 is at 11:22:33:44:11:11
who has 192.168.1.2? Tell 192.168.1.1
192.168.1.2 is at 11:22:33:44:55:66

După otrăvire
Cererea routerului de ARP brodcast este similară ca pentru un Windows.
Diferenţa dintre cele două etape vine de la faptul că nu există nici o cerere provenind de la Windows (192.168.1.2) pentru a găsi adresa MAC asociată la router (192.168.1.1), deoarece atacatorul trimite continuu pachete ARP spunândui maşinii Windows ca 192.168 .1.1 este asociat cu propria adresa MAC (11:22:33:44:99:99) în loc de adresa de router-MAC (11:22:33:44:11:11).

No
1
2
3
4
Source
11:22:33:44:11:11
11:22:33:44:55:66
11:22:33:44:99:99
11:22:33:44:99:99
Destination
11:22:33:44:55:66
11:22:33:44:11:11
11:22:33:44:55:66
11:22:33:44:55:66
Prot
ARP
ARP
ARP
ARP
Info
who has 192.168.1.2? Tell 192.168.1.1
192.168.1.2 is at 11:22:33:44:55:66
192.168.1.1 is at 11:22:33:44:99:99
192.168.1.1 is at 11:22:33:44:99:99

- TABELE ARP:
Dacă ne uităm la tabela ARP a routerului şi a Windowsului, vedem că maşina Linux cu ettercup a “otravit” tabela lor de ARP şi a înlocuit adresa MAC a routerului si a Windowsului cu propria lui adresă MAC.
Acest lucru înseamnă că pachetele trimise între maşina Windows şi router vor tranzita reţeaua prin maşina cu ettercap.
Să vedem dacă am “otrăvit” cu succes tabela de ARP din router şi Windows:

——————– Windows machine 192.168.1.2 ——————–

Din Windows:
Start -> Run -> cmd
C:\Documents and Settings\administrator>arp -a
Interface <numele interfeţei>: 192.168.1.2 — 0×2

Internet Address
192.168.1.1
192.168.1.100
Physical Address
11-22-33-44-11-11
11-22-33-44-99-99
Type
dynamic
dynamic

arrow blue
Interface <numele interfeţei>: 192.168.1.2 — 0×2

Internet Address
192.168.1.1
192.168.1.100
Physical Address
11-22-33-44-99-99
11-22-33-44-99-99
Type
dynamic
dynamic
——————– Linux machine 192.168.1.100 ——————–

#arp -a

?
?
(192.168.1.1)
(192.168.1.2)
at
at
11:22:33:44:11:11
11:22:33:44:55:66
[ether]
[ether]
on
on
eth0
eth0
——————– router openmaniak cisco Router 192.168.1.1 ——————–

>show arp

Protocol
Internet
Internet
Address
192.168.1.2
192.168.1.100
Age (min)
194
128
Hardware Addr
1122.3344.5566
1122.3344.9999
Type
ARPA
ARPA
interface
FastEthernet0/0
FastEthernet0/0

arrow blue

Protocol
Internet
Internet
Address
192.168.1.2
192.168.1.100
Age (min)
194
128
Hardware Addr
1122.3344.9999
1122.3344.9999
Type
ARPA
ARPA
interface
FastEthernet0/0
FastEthernet0/0

Dacă ai Netscreen (Juniper), foloseşte comnda:
>get arp
Pe un router Vyatta(http://openmaniak.com/vyatta.php)
>show arp

- OPRIREA ARP spoofing:

openmaniak ettercap

Ettercap este destul de eficient. După atac, acesta va reasigna ARP-ul victimelor. Cu alte cuvinte, victimele vor primi din nou setările corecte.
Daca nu îşi revine singur în câteva minute, curăţaţi cache-ul ARP

Pe Windows:

C:\Documents and Settings\admin>arp -d *

Pe un Linux:

#arp -d ip_address

Pe un router Cisco:

#clear arp-cache


Tradus de la http://openmaniak.com/ettercap_arp.php

Sursa: fedoraproject.ro

Urmatorarele sfaturi pornesc de la premiza ca avem instalat, cu optiunile default un sistem de operare Centos 5 sau Fedora 8. Acest ghid se poate aplica intr-un mod foarte rapid, cu mentiunea ca nu acopera toate problemele de securitate ale unui sistem de operare.

1. Principii generale

* De obicei toate datele trimise prin retea trebuiesc sa fie pe cat posibil criptate, in special parolele folosite pentru autentificari;
* Este recomandata micsorarea numarului de soft-uri instalate pe un sistem pentru a scadea sansa de-a avea vulnerabilitati multiple;
* Sa vor folosi pe cat posibil software care sa sporeasca securitatea (Iptables, SELinux, tcp wrappers);
* Este de dorit ca fiecare serviciu de retea sa fie instalat pe servere separate. Acest lucru micsorand riscul ca un serviciu compromis sa duca la compromiterea altora;
* Crearea unei politici pentru parole complexe si fortarea utilizari sale este iarasi un lucru bun.Pe un system important vor fi sterse conturile de utilizatori nefolosite;
* In mod regulat se vor citi logurile, si se va folosi un server de loguri dedicat. Acest lucru va prevenii modificarea in mod facil a lor de catre un intrus. De obicei logurile importante sunt tinute in /var/log;
* Nu este recomandat sa va logati direct cu root, acest lucru fiind permis numai daca este absolut necesar. Administratorul sistemului ar trebui sa foloseasca sudo pentru a executa comenzi ce necesita root. Conturile care vor avea capabilitatea sa foloseasca sudo sunt specificate in /etc/sudoers, acest fisier putand fi edita cu utilitarul visudo.

2. Partiti si mounting

In timpul instalarii trebuiesc create paritii diferite pentu directoarele unde utilizatori vor avea acces de scriere : /home, /tmp, /var/tmp. In momentul configurari sistemului se va modifica optiunea de mount a acestora din fisierul /etc/fstab pentru a limita accesul utilizatorilor pe sistemele de fisiere respective.Astfel optiunea defaults este egala cu rw,suid,dev,exec,auto,nouser,async. Folosirea optiunii noexec previne executarea de binare pe un sistem de fisiere desi nu va preveni executarea de scripturi. De exemplu la web-servere ce folosesc php unde te poti astepta la diverse exploit-uri prin care sa fie incarcate binare in /tmp noexec va preveni executarea lor. Optiunea nodev va preveni folosirea fisierelor device pe acel sistem de fisiere.

3. Update-uri regulate ale software-ului

Exista posibilitatea de descarcare manula a pachetele din repository-urile oficiale ori de-a folosi yum.cron sau mai precis yum nigthly update. Serviciul default yum-updatesd nu functioneaza in mod stabil astfel utilizarea sa va fi oprita cu ajutorul comenzii /sbin/chkconfig yum-updatesd off . Iata cum functioneaza yum.cron :

* se creeaza fisierul de mai sus , daca nu exista deja se va face executabil chmod a+x yum.cron
* continutul sau va fi :

#!/bin/sh
/usr/bin/yum -R 120 -e 0 -d 0 -y update yum
/usr/bin/yum -R 10 -e 0 -d 0 -y update

* el va fi plasat fie in directorul /etc/cron.daily ori in /etc/cron.weekly depinzand cand doriti sa fie rulat odata pe saptamana sau odata pe luna;

4. Deactivarea serviciilor nefolositoare

Pentru a lista toate serviciile configurate sa porneasca la boot rulati comanda :
/sbin/chkconfig –list

Cautati in coloana ce corespunde run level-ului actual pentru a vedea ce servicii sunt active. Daca s-a ales instalarea default cu Gnome atunci run level-ul este 5 daca s-a mers pe varianta server run level-ul va fi 3.
Pentru a dezactiva un serviciu rulati comanda :
/sbin/chkconfig numle_serviciului off

Se pot dezactiva fara probleme urmatoarele servicii in caz ca nu sunt folosite:

anacron
haldaemon
messagebus
apmd
hidd
microcode_ctl
autofs`
hplip*
pcscd
avahi-daemon*
isdn
readahead_early
bluetooth
kdump
readahead_later
cups*
kudzu
firstboot
mcstrans
gpm
mdmonitor
xfs

Serviciile marcate cu steluta sunt servicii de retea, este foarte important ca ele sa fie dezactivate daca nu sunt folosite. La aceasta lista se pot adauga netfs, nfslock, portmap, rpcgssd si rpcidmapd daca nu se va folosi NFS. Anumite servici depind de haldaemon si messagebus astfel trebuie un pic de atentie la dezactivarea sau nu a lor, schimbarile se vor reflecta dupa reboot sau oprirea manuala a fiecaruia in parte cu service numele_serviciului stop .

5. Dezactivarea binarelor cu SUID sau SGID

Pentru a gasi fisierele cu SUID si SGID pe un sistem puteti folosi urmatoarea comanda:

find / ( -perm -4000 -o -perm -2000 ) -print

Urmatoarea lista de fisiere poate avea biti de SUID si SGID dezactivati fara probleme cu ajutorul comenzii chmod -s nume_fisier asta daca stim in mod explicit ca fisierele respective nu sunt folosite pentru serviciile din a 2-a coloana:

/bin/ping6 IPv6
/sbin/mount.nfs NFS
/sbin/mount.nfs4 NFS
/sbin/netreport network control
/sbin/umount.nfs NFS
/sbin/umount.nfs4 NFS
/usr/bin/chage passwd
/usr/bin/chfn account info
/usr/bin/chsh account info
/usr/bin/crontab cron
/usr/bin/lockfile Procmail
/usr/bin/rcp rsh
/usr/bin/rlogin rsh
/usr/bin/rsh rsh
/usr/bin/wall console messaging
/usr/bin/write console messaging
/usr/bin/Xorg Xorg
/usr/kerberos/bin/ksu Kerberos
/usr/libexec/openssh/ssh-keysign SSH host-based authentication
/usr/lib/vte/gnome-pty-helper Gnome, Xorg
/usr/sbin/ccreds_validate Pam auth caching
/usr/sbin/suexec Apache, CGI
/usr/sbin/userisdnctl ISDN
/usr/sbin/usernetctl network control

6. Dezinstalarea interfetei grafice

Un server in general poate fi foarte bine administrat si fara interfata grafica astfel o puteti dezinstala prin comanda:
yum groupremove “X Window System”

Daca totusi server-ul X va fi necesar in viitor acesta se poate dezactiva fara a il sterge :

Editati fisierul /etc/inittab, si modificati id:5:initdefault: in
id:3:initdefault:

7. Firewall si tcp wrappers

Firewall-ul ar trebui sa fie configurat astfel incat sa permita numai comunicatiile necesare pentru retea, astfel pentru un workstation toate conexiunile spre acesta trebuiesc blocate cu exceptia celor legate de conexiuni deja stabilite de acel workstation. Pentru a vizualiza regulile default folositi comanda :
iptables -nvL

Acestea ar trebui sa corespunda celor aflate in fisierul /etc/sysconfig/iptables, orice update facut in acest fisier se va reflecta abia dupa repornirea serviciului iptables.

In primul rand politicile default pentru Chain-urile de Input si Forward trebuiesc schimbate astfel noile valori trebuie sa arate astfel:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]

Schimbarea in acest fel a politici de firewall ar insemna ca orice pachet care nu este explicit permis va fi blocat.

De asemenea se pot proteja serviciile de retea care suporta folosirea librarie TCP Wrapper (de exemplu: sshd, vsftpd, portmap ) prin editarea celor doua fisiere /etc/hosts.allow si /etc/hosts.deny.

In cel mai simplu caz orice regula din /etc/hosts.allow si /etc/hosts.deny arata asa :
daemon : client

In general o configuratie mai apropiata de realitate ar avea cel putin urmatoarele lini in fisierele de configuratie :

/etc/hosts.allow
ALL: localhost

/etc/hosts.deny
ALL: ALL

8. Configurare SELinux

Politica standard SELinux numita si targeted ofera protectie impotriva serviciilor de sistem prost configurate sau compromise. Aceasta politica implicita nu ar trebui sa intre in conflict cu operatiunile normale ale sistemului. Pentru a va asigura de aceasta verificati fisierul /etc/selinux/config sa contina urmatoarele linii :

SELINUX=enforcing
SELINUXTYPE=targeted

9. Setarea parametrilor de Kernel

La pornirea sistemului sunt aplicati o serie de parametri pentru kernel, acestia gasindu-se in fisierul /etc/sysctl.conf

Urmatoarele linii pot fi adaugate in acest fisier pentru a preveni anumite tipuri de atacuri gen SYN Flood sau DoS:

net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.all.accept_source_route=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1
kernel.exec-shield=1
kernel.randomize_va_space=1

10. Configurati sau dezactivati serviciul SSHD

In majoritatea cazurilor aces serviciu este foarte des utilizat astfel trebuie sa va asigurati de o minima parametrizare a acestuia. Fisierul principal este /etc/ssh/sshd_config si ar trebui sa contina urmatoarele linii :

PermitRootLogin no
Protocol 2

Pe cat posibil limitati accesul la SSH fie prin TCP Wrappers fie prin crearea unui subset de utilizatori numit de exemplu sshusers si adaugati doar utilizatori care chiar au nevoie de acest serviciu. Apoi in fisierul de configuratie se va adauga linia:
AllowGroups sshusers
si acesta va fi repornit.
11. Dezactivati IPV6

Daca structura retelei cere folosirea protocolului IPV6 acesta are sens sa fie activ. In majoritatea cazurilor nu aveti nevoie de el. Pentru a preveni modulul de kernel sa fie incarcat adaugati urmatoarea linie in /etc/modprobe.conf:
install ipv6 /bin/true

Apoi adaugati sau modificati urmatoarele linii in /etc/sysconfig/network:
NETWORKING_IPV6=no
IPV6INIT=no

Acest articol este bazat pe cele 2 documente NSA oficial publicate sub numele :
rhel5-guide-i731.pdf si rhel5-pamphlet-i731.pdf

sau http://www.nsa.gov/snac/os/redhat/rhel5-guide-i731.pdf & http://www.nsa.gov/snac/downloads_redhat.cfm?MenuID=scg10.3.1.1