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
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.
#ettercap -G
- Selectează “sniff mode”
Sniff -> Unified sniffing
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


Vezi adresele IP şi MAC a calculatoareleor din subreţea.

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.

Începe ARP Poisoning
Start -> Start sniffing

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 |

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 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 |

| 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:
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