Se afișează postările cu eticheta Linux. Afișați toate postările
Se afișează postările cu eticheta Linux. Afișați toate postările

Tutorial IPTABLES firewall linux – comenzi de baza

Tutorial usor de invatat cu comenzile de baza in IPTABLES pentru configurare firewall LINUX.

Ce este IPTABLES?

Iptables este folosit pentru mai multe servicii precum : translatare de adrese sursa sau destinatie (SNAT / DNAT ) , port forwading sau pur si simplu rejectare sau forwadare de pachete , routing.

Cum pornesc serviciul IPTABLES?

1
2
3
[root tmp]# service iptables start
[root tmp]# service iptables stop
[root tmp]# service iptables restart
Ca serviciul IPTABLES sa porneasca o data cu sistemul rulati urmatoarea comanda:
[root tmp]# chkconfig iptables on

Procesarea de pachete in IPTABLES

Toate pachetele inspectate de iptables trec printr-o secventa de tabele (cozi) pentru prelucrare. Fiecare dintre aceste cozi este dedicata unui anumit tip de activitate de pachete si este controlata de un lanţ de filtrare asociat.
Iptables foloseste implicit trei tabele :
1. FILTER ( tabel implicit) -  este responsabil cu filtrarea pachetelor
Are 3 lanturi built-in in care va puteti declara reguli de politica firewall
  • Forward : Filtreaza pachete catre servere protejate de firewall.
  • Input : Filtreaza pachetele destinate firewall-ului.
  • Output : Filtreaza pachetele expediate de firewall
2. NAT – este responsabil cu network address translation(translatarea adresei de retea)
3. MANGLE – este responsabil pentru modificarea bitilor QOS  din headerul TCP
Are 2 lanturi built-in:
  • Pre-routing:  face NAT atunci cand adresa destinatie a pachetului trebuie schimbata.
  • Post-routing: face NAT atunci cand adresa sursa a pachetului trebuie schimbata.

Cum functioneaza IPTABLES?

Pentru fiecare regula firewall pe care o creezi trebuie sa specifici tabela si lantul de careva apartine. La aceasta regula este o singura exceptie: Cele mai multe reguli sunt legate de filtrare, astfel iptables presupune că orice lanţ definit fără o tabela asociata va face parte din tabela filter. Tabela  filter este, prin urmare, implicita.
Mai jos aveti o imagine cu felul in care iptables manipuleaza pachetele:
Fiecare regulă firewall inspectează pachetele IP şi apoi încearcă să le identifice ca si tinte pentru o anumita operatie.
Cele mai folosite tinte sunt:
  • ACCEPT – Iptables opreste procesarea ulterioara; Pachetul este trimis catre aplicatie sau sistem de operare pentru prelucrare
  • DROP - Iptables opreste procesarea ulterioara; Pachetul este blocat
  • LOG – Informaţiile sunt trimise la daemonul syslog pentru logare; Iptables continua procesarea pachetului
  • REJECT – Funcţionează DROP, dar va trimite un mesaj de eroare la gazda carea a trimis pachetul cum că pachetul a fost blocat
  • DNAT – Rescrie adresa IP destinaţie a pachetului
  • SNAT – Rescrie adresa IP sursa a pachetului
  • MASQUERADE – Folosit pentru SNAT; În mod implicit adresa IP sursa este aceeaşi cu cea utilizată de interfaţa firewall-ului
Parametrii pentru IPTABLES:
-t <-table-> : Dacă nu specificaţi o tabela, tabela filter este asumata. Aşa cum am discutat înainte, tabelele posibile pot fi: filtru, NAT, mangle
-j  : Salt la lanţul ţintă specificat în momentul pachet se potriveste cu regula actuală.
-A sau –append : Adauga o regula la sfarsitul chainului
-F : Flush. Sterge toate regulile din tabela selectata.
-p  : Potrivire cu protocolul icmptcpudp sau  all
-s  : Potrivire cu adresa IP sursa
-d  : Potrivire cu adresa IP destinatie
-i  : Potrivire cu interfata de retea prin care intra pachetul
-o  : Potrivire cu interfata de retea prin care iese pachetul
-m –state ESTABLISHED, NEW, RELATED, INVALID
Pentru a activa anumite funcţii ale Iptables trebuie sa  încărcaţi anumite module de kernel  la pornirea sistemului.
Fisier: /etc/rc.local
1
2
# Module to track the state of connections
modprobe ip_conntrack
# Load the iptables active FTP module, requires ip_conntrack
modprobe ip_conntrack_ftp
# Load iptables NAT module when required
modprobe iptable_nat
# Module required for active an FTP server using NAT
modprobe ip_nat_ftp

Exemple:

* -R –replace : Inlocuirea lantului specificat
1
iptables -R INPUT 1 -s 192.168.0.1 -j DROP
* -I –insert : Permite introducerea unui lant in intr-o zona specifica
1
iptables -I INPUT 1 --dport 80 -j ACCEPT
* -L –list : Afisarea tuturor regulilor IPTABLES
1
2
iptables -L # Afiseaza toate regulile din tabela FILTER
iptables -L INPUT # Afiseaza toate regulile din lantul INPUT (FILTER)
* -F –flush : Sterge toate regulile din tabela.
1
2
iptables -F INPUT # Sterge toate regulile din lantul INPUT
iptables -F # Sterge toate regulile
* -N –new-chain : Crearea unui nou lant
1
iptables -N LOG_DROP
* -X –delete-chain : Stergerea unui lant
1
2
iptables -X LOG_DROP # Stergerea lantului LOG_DROP
iptables -X # Sterge toate lanturile
* -P –policy :  Permite specificarea politicii default pentru un anumit lant ACCEPT, REJECT, DROP …
1
iptables -P INPUT DROP
* Iptables va fi configurat pentru a permite firewall-ului sa trimita cereri ICMP(ping) şi, la rândul său, să accepte cereri ICMP
1
2
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT  -p icmp --icmp-type echo-reply   -j ACCEPT
* Iptables va fi configurat sa accepte cereri ICMP si le limiteze la un număr maxim mediu  de o cerere pe secundă.
1
2
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 1/s -i eth0 -j ACCEPT

Setari de baza pentru protejarea sistemului de operare

Sistemul de operare Linux are cateva mecanismele de protecţie definite  pe care ar trebui să le activaţi prin modificarea parametrilor kernel-ului prin fişierul /etc/sysctl.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#---------------------------------------------------------------
# Disable routing triangulation. Respond to queries out
# the same interface, not another. Helps to maintain state
# Also protects against IP spoofing
#---------------------------------------------------------------
net/ipv4/conf/all/rp_filter = 1
#---------------------------------------------------------------
# Enable logging of packets with malformed IP addresses
#---------------------------------------------------------------
net/ipv4/conf/all/log_martians = 1
#---------------------------------------------------------------
# Disable redirects
#---------------------------------------------------------------
net/ipv4/conf/all/send_redirects = 0
#---------------------------------------------------------------
# Disable source routed packets
#------------------------------------------------------------

Comenzi Bash linux


Un index A-Z al liniei de comanda Bash pentru sistemele care se comporta intr-o maniera similara Unix (UNIX-like).
a
alias  – Creaza un alias
apropos – Cauta in paginile manualului Ajutor (man -k)
apt-get – Cauta si instaleaza pachete software (Debian)
aspell – Verificator ortografic
awk – Cautare şi inlocuire text, baza de date sorteaza/valideaza/indexeaza
b
bash – GNU Bourne-Again SHell
bc – Calculator
bg – Trimite proces in fundal
break – Iesirea dintr-o bucla.
builtin – Ruleaza un terminal incorporat
bzip2 – Comprima sau decomprima fisire/fisiere.
c
cal – Afiseaza un calendar
case – Executa conditional o comanda
cat – Afiseaza continutul unui fisier
cd – Schimba directorul
cfdisk – Manipuleaza  tabela cu partitii pentru Linux
chgrp – Schimba  apartenenta grupului
chmod – Schimba permisiunile de acces
chown – Schimba detinatorul si grupul fisierului
chroot – Executa o comanda cu un director de baza diferit
chkconfig – Serviciile de sistem (runlevel)
cksum – Printeaza suma de control CRC si suma octetilor
clear – Sterge  ecranul terminalului
cmp – Compara doua fisiere
comm Compara doua fisiere sortate linie cu linie
command Executa o comanda – ignorand functiile shell-ului
continue Resume the next iteration of a loop
cp Copy one or more files to another location
cron Daemon to execute scheduled commands
crontab Schedule a command to run at a later time
csplit Split a file into context-determined pieces
cut Divide a file into several parts
d
date Display or change the date & time
dc Desk Calculator
dd Convert and copy a file, write disk headers, boot records
ddrescue Data recovery tool
declare Declare variables and give them attributes
df Display free disk space
diff Display the differences between two files
diff3 Show differences among three files
dig DNS lookup
dir Briefly list directory contents
dircolors Colour setup for `ls’
dirname Convert a full pathname to just a path
dirs Display list of remembered director
dmesg    Print kernel & driver messages
du       Estimate file space usage
e
echo     Display message on screen
egrep    Search file(s) for lines that match an extended expression
eject    Eject removable media
enable   Enable and disable builtin shell commands
env      Environment variables
ethtool  Ethernet card settings
eval     Evaluate several commands/arguments
exec     Execute a command
exit     Exit the shell
expect   Automate arbitrary applications accessed over a terminal
expand   Convert tabs to spaces
export   Set an environment variable
expr     Evaluate expressions
f
false    Do nothing, unsuccessfully
fdformat Low-level format a floppy disk
fdisk    Partition table manipulator for Linux
fg       Send job to foreground
fgrep    Search file(s) for lines that match a fixed string
file     Determine file type
find     Search for files that meet a desired criteria
fmt      Reformat paragraph text
fold     Wrap text to fit a specified width.
for      Expand words, and execute commands
format   Format disks or tapes
free     Display memory usage
fsck     File system consistency check and repair
ftp      File Transfer Protocol
function Define Function Macros
fuser    Identify/kill the process that is accessing a file
g
gawk     Find and Replace text within file(s)
getopts  Parse positional parameters
grep     Search file(s) for lines that match a given pattern
groups   Print group names a user is in
gzip     Compress or decompress named file(s)
h
hash     Remember the full pathname of a name argument
head     Output the first part of file(s)
history  Command History
hostname Print or set system name
i
id       Print user and group id’s
if       Conditionally perform a command
ifconfig Configure a network interface
ifdown   Stop a network interface
ifup     Start a network interface up
import   Capture an X server screen and save the image to file
install  Copy files and set attributes
j
join     Join lines on a common field
k
kill     Stop a process from running
killall  Kill processes by name
l
less     Display output one screen at a time
let      Perform arithmetic on shell variables
ln       Make links between files
local    Create variables
locate   Find files
logname  Print current login name
logout   Exit a login shell
look     Display lines beginning with a given string
lpc      Line printer control program
lpr      Off line print
lprint   Print a file
lprintd  Abort a print job
lprintq  List the print queue
lprm     Remove jobs from the print queue
ls       List information about file(s)
lsof     List open files
m
make     Recompile a group of programs
man      Help manual
mkdir    Create new folder(s)
mkfifo   Make FIFOs (named pipes)
mkisofs  Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod    Make block or character special files
more     Display output one screen at a time
mount    Mount a file system
mtools   Manipulate MS-DOS files
mv       Move or rename files or directories
mmv      Mass Move and rename (files)
n
netstat  Networking information
nice     Set the priority of a command or job
nl       Number lines and write files
nohup    Run a command immune to hangups
nslookup Query Internet name servers interactively
o
open     Open a file in its default application
op       Operator access
p
passwd   Modify a user password
paste    Merge lines of files
pathchk  Check file name portability
ping     Test a network connection
pkill    Stop processes from running
popd     Restore the previous value of the current directory
pr       Prepare files for printing
printcap Printer capability database
printenv Print environment variables
printf   Format and print data
ps       Process status
pushd    Save and then change the current directory
pwd      Print Working Directory
q
quota    Display disk usage and limits
quotacheck Scan a file system for disk usage
quotactl Set disk quotas
r
ram      ram disk device
rcp      Copy files between two machines
read     read a line from standard input
readonly Mark variables/functions as readonly
reboot   Reboot the system
renice   Alter priority of running processes
remsync  Synchronize remote files via email
return   Exit a shell function
rev      Reverse lines of a file
rm       Remove files
rmdir    Remove folder(s)
rsync    Remote file copy (Synchronize file trees)
s
screen   Multiplex terminal, run remote shells via ssh
scp      Secure copy (remote file copy)
sdiff    Merge two files interactively
sed      Stream Editor
select   Accept keyboard input
seq      Print numeric sequences
set      Manipulate shell variables and functions
sftp     Secure File Transfer Program
shift    Shift positional parameters
shopt    Shell Options
shutdown Shutdown or restart linux
sleep    Delay for a specified time
slocate  Find files
sort     Sort text files
source   Run commands from a file `.’
split    Split a file into fixed-size pieces
ssh      Secure Shell client (remote login program)
strace   Trace system calls and signals
su       Substitute user identity
sudo     Execute a command as another user
sum      Print a checksum for a file
symlink  Make a new name for a file
sync     Synchronize data on disk with memory
t
tail     Output the last part of files
tar      Tape ARchiver
tee      Redirect output to multiple files
test     Evaluate a conditional expression
time     Measure Program running time
times    User and system times
touch    Change file timestamps
top      List processes running on the system
traceroute Trace Route to Host
trap     Run a command when a signal is set(bourne)
tr       Translate, squeeze, and/or delete characters
true     Do nothing, successfully
tsort    Topological sort
tty      Print filename of terminal on stdin
type     Describe a command
u
ulimit   Limit user resources
umask    Users file creation mask
umount   Unmount a device
unalias  Remove an alias
uname    Print system information
unexpand Convert spaces to tabs
uniq     Uniquify files
units    Convert units from one scale to another
unset    Remove variable or function names
unshar   Unpack shell archive scripts
until    Execute commands (until error)
useradd  Create new user account
usermod  Modify user account
users    List users currently logged in
uuencode Encode a binary file
uudecode Decode a file created by uuencode
v
v        Verbosely list directory contents (`ls -l -b’)
vdir     Verbosely list directory contents (`ls -l -b’)
vi       Text Editor
vmstat   Report virtual memory statistics
w
watch    Execute/display a program periodically
wc       Print byte, word, and line counts
whereis  Report all known instances of a command
which    Locate a program file in the user’s path.
while    Execute commands
who      Print all usernames currently logged in
whoami   Print the current user id and name (`id -un’)
Wget     Retrieve web pages or files via HTTP, HTTPS or FTP
write    Send a message to another user
x
xargs    Execute utility, passing constructed argument list(s)
y
yes      Print a string until interrupted
.        Run a command script in the current shell
###      Comment / Remark

Cum sa ne securizam conturile de gazduire?


Poate ca titlul acestui articol nu este cel mai potrivit, deoarece voi vorbi mai mult de fapt despre protejarea conturilor de gazduire prin anumite metode care tin neaparat de hosting, dar scopul final, pana la urma, poate fi considerat securizarea datelor personale si a aplicatiilor web. Ma gandesc acum la siturile proprii, sau orice website. Securitatea unui cont de gazduire nu tine numai de proprietarul sitului, ci si de serverul respectiv care gazduieste situl. Asa ca daca vreti securitate sporita trebuie sa aveti grija de unde si pe ce sistem cumparati gazduire. Dar haideti sa presupunem ca aveti deja un cont de gazduire pe un server bine configurat si administrat, si sa vedem ce putem face pentru imbunatatirea securitatii.
De ce se sparg atatea situri in ultima vreme ?Incepand din anii 2003-2005 au aparut multe aplicatii web gratuite care permit si oamenilor cu mai putine cunostinte IT realizarea unui site web foarte usor si rapid, fara cunostinte de programare. Aceste aplicatii sunt numite CMS-uri, (sau Sisteme de gestiune a continutului – Content Managment System), care se pot instala foarte usor si multe firme, pe langa serviciile de gazduire, mai ofera si instalare automatizata a acestor aplicatii. Cred ca deja stiti foarte bine despre ce vorbesc, ma gandesc in primul rand la CMS-urile cele mai populare, cum sunt Joomla, Drupal, WordPress si alte aplicatii pentru realizarea unui website sau a unui blog. Radacina problemei consta tocmai in popularitatea a acestor aplicatii, pentru ca foarte multa lume lucreaza cu ele, adica dezvoltatori, care tot timpul mai adauga ceva in plus, mai observa erori de programare prin care se pot exploata aceste aplicatii. Deci, daca oricine foloseste oricare dintre aceste aplicatii mai cunoscute, trebuie sa le actualizeze foarte desla versiunea stabila a aplicatiei. Acest lucru insa deseori nu se intampla, sau nu se intampla la timp – i stiu foarte bine acest lucru si cauta continuu si automatizat astfel de tinte potentiale, ce pot fi exploatate relativ usor. O alta problema pe langa faptul ca proprietarii acestori situri nu fac actualizare destul de des (sau nicodata) este situatia cand au constinte slabe, astfel incat nici setarile, nici configurarea aplicatiilor nu sunt facute bine, expunand situl la vulnerabilitati cunoscute ce pot fi exploatate. Deci, sfatul meu este, in primul rand sa tineti aplicatiile webactualizate (up-to-date), si aveti grija la configurarea lor. Daca aveti un site scris de dumneavoastra atunci atentie la greselile de programare.
Cum se sparg conturile de gazduire?Conturile de gazduire nu se sparg, ci se fura parola contului, sau mai rau, se sparge serverul respectiv. De obicei, cand cumparati gazduire veti primi parola prin email; sfatul meu este sa va schimbati parola imediat ce ati primit-o. Cand acesati un panou administrativ, cum sunt Cpanel, Plesk sau oricare altul, de obicei browserul va face o conexiune securizata prin https (http secure), care nu poate fi urmarita de terte parti, deci sansele ca parola sa va fie furata prin monitorizarea traficului dintre browserul dumneavoastra si serverul de panou administrativ nu sunt mari. Pentru a intercepta o conversatie criptata se folosesc tehnicile de session hijacking, ssl spoofing si dns spoofing. Dar astea sunt tehnici mai avansate, care se intampla doar daca exista un interes real pentru situl dumneavoastra din partea unui atacator. O posibilitate mai sporita insa poate fi considerata furtul parolei FTP de exemplu direct de pe calculatorul dumneavoastra, daca aveti notata parola intr-un fisier text necriptat si atacatorul foloseste un virus pentru a fura fisiere. O alta situatie de mentionat mai este insecuritatea protocolului FTPParolele FTP circula “in clar” prin retea, adica circula necriptate. Orice persoana care are acces la unul din serverele prin care trece pachetul care contine parola FTP, poate captura parola. La aceasta problema o solutie eficienta este folosirea FTPSecure. De obicei aceasta optiune exista si in panoul administrativ al contului de gazduire, sau in caz contrar putem sa ne interesam de activarea ei la furnizorul serviciului de gazduire.

Cum putem sa ne protejam directoarele si scripturile sensibile cu ajutorul fisierului .htaccess?

Fisierul .htaccess exte un fisier ascuns care poate fi copiat in orice director al unui cont de gazduire. Prin intermediul acestui fisier se pot face setari referitoare la mediul de gazduire. Aceasta inseamna ca putem introduce directive pentru apache, setari php, putem proteja anumite directoare prin parola, sau prin blocarea acesului unei adrese IP sau a unei intregi retele, ba chiar putem seta ca directorul sa fi accesibil doar de la adresa noastra. Iata, cum setam ca un director sa fie accesibil doar de la adresa noastra. Creem fisierul cu numele .htaccess si introducem urmatoarele in fisier.Atentie – numele fisierului trebuie sa inceapa neaparat cu punct si trebuie copiat neaparat in directorul pe care vrem sa-l protejam.
Exemplu fisier .htaccess – permitem accesul doar de la o singura adresa IP

order deny,allow
deny from all
allow from adresa-ip
Cu ajutorul directivei “allow from adresa-ip” putem introduce adrese multiple. Nu uitati: daca aveti o adresa IP care se schimba des, de fiecare data cand vreti sa accesati directorul trebuie sa modificati acest fisier si sa introduceti adresa dvs IP actuala.
Aceasta metoda de a proteja directoare si scripturi pare a fi foarte eficienta si in cazul aplicatiilor web CMS (content managment system). Sfatul meu este sa introduceti un fisier .htaccess in directorul principal de administrare a acestei aplicatii. In cazul in care folositi wordpress, acest director este “wp-admin”, iar in cazul joomla, numele directorului este “administrator”, si asa mai departe. Cu aceasta metoda puteti sa va protejati aplicatiile web, si conturile de gazduire impotriva atacurilor xss (cross site scripting), cand atacatorii introduc in URL comenzi php sau mysql.
Exemplu fisier .htaccess – blocarea doar a anumitor adrese ip

order deny,allow
allow from all
deny from adresa-pe-care-vrei-sa-blochezi
Atentie: directivele setate in cadrul unui director se vor referi si la subdirectoare!

Securizarea contului de gazduire prin directive PHP

Pentru securitate sporita pe un server care ofera mediul PHP, este recomandata rularea PHP in SafeMode!
Cum functioneaza SafeMode pentru PHP
In SafeMode php verifica daca proprietarul scriptului de rulat este acelasi cu proprietarul fisierului pe care scriptul doreste sa il acceseze. Daca aceasta conditie nu se indeplineste, scriptul respectiv nu va putea opera. Aceasta setare a php-ului in viitor va disparea, pentru ca dezvoltatorii care lucreaza la PHP au creat alte metode de securizare, dar pentru moment inca functioneaza si este recomandata folosirea ei.
Cum setez ca php-ul sa se ruleze in SafeMode?
Panoul administrativ al contului de gazduire va ofera posibilitatea sa faceti aceasta setare, iar nu, este posibil sa o faceti si printr-o directiva in fisierul .htacces.
php_admin_flag safe_mode Off
sau
php_admin_value safe_mode 0
Cum seteaz ca PHP-ul sa nu se ruleze intr-un director?
Si raspunsul la aceasta intrebare il gasim tot printr-o directiva in fisierul .htaccess, pe care cream in directorul respectiv.
RemoveType .php
AddType application/x-httpd-php-source .php
AddHandler application/x-httpd-php-source .php
Mai sunt multe alte modalitati de securizare a conturilor de gazduire, dar eu ma opresc aici pentru moment. Poate ca in viitor voi mai aduga si alte informatii. Pana atunci,sugestiile si comentariile dumneavoastra “are welcomed”!

Insecuritatea retelelor wireless cu criptare WEP – Cum se poate sparge WEP-ul cu ARP Request Reply


Cu toate ca retelele wireless securizate prin criptare WEP nu mai sunt considerate sigure pentru ca prezinta anumite vulnerabilitati, va asigur ca in anumite cazuri nu se poate sparge nici criptarea WEP chiar atat de usor, insa avem mai multe optiuni. Tocmai din cauza securitatii scazute aceste retele nu mai sunt asa de comune cum au fost acum cativa ani, dar inca mai pot fi intalnite chiar si in orasele mai mari, ca sa nu mai vorbim despre locuri mai ascunse unde utilizatorii nu sunt tocmai la zi cu cele mai noi tendinte din securitatea IT. In ultima vreme apar routere din ce in ce mai sofisticate, care pot oferi securitate chiar si utilizand criptare WEP, daca sunt bine configurate si administrate, asa ca sa nu va surprinda nici situatia cand nu reusiti sa va conectati la o retea criptata cu WEP. Dar haideti sa vedem metoda cea mai eficienta si sigura de a sparge criptarea WEP, dupa parerea mea. In acest tutorial voi folosi sistemul de operare Gentoo Linux, si cateva utilitare pe care le voi prezenta succint.

Cum se sparge criptarea WEP cu metoda ARP Request Reply (Redarea cererilor ARP inregistrate anterior)

Unelte de care avem nevoie
- o placa de retea wirelss care suporta injectarea de pachete (eu am folosit BroadCom WiFi Link 5100); in anumite cazuri este nevoie sa aplicati un patch la driverul de placa de retea wifi pentru a putea injecta pachete.
- programul aircrack-ng care contine: aircrack-ng, airodump-ng, aireplay-ng – recomand sa descarcati ultima versiune a programului, si sa-l compilati local, pentru ca in majoritatea distributiilor nu veti gasi ultima versiune a programului; (in aceasta dremonstratie eu voi folosi versiunea 1.1
- o retea wireless cu criptare WEP, care sa nu fie prea departe (in caz contrar este posibil sa decryptati cheia wep, dar sa nu reusiti sa va conectati la retea) – asta e din cauza ca routerele au o putere de transmisie mai mare decat o placa de retea wireless.
- un client conectat la reteaua respectiva, altul decat dumneavoastra
Teoria
Cum functioneaza acest tip de atac? Relativ simplu: seamana cu un fel de ARP poisoning. Prima data punem placa wireless in “monitored mode” pentru a putea captura si injecta pachete. Scanam reteaua, notam BSSID-ul retelei pe care vrem sa o spargem si adresa MAC a unui client conectat la aceasta retea. Capturam pachetele transmise intre clientul conectat si AP (AccessPoint, adica router). Dupa ce am capturat cateva pachete, oprim salvarea pachetelor si folosim pachetele capturate pentru injectare. Ce inseamna injectarea? Trimitem pachetele capturate catre AP in numele clientului si astfel generam trafic ARP, care va determina routerul sa genereze mai multe IV-uri (Initialization Vectors) de care avem nevoie pentru decriptarea cheii WEP. Salvam pachetele ARP, atat cele trimise, cat si cele capturate. Monitorizam traficul pana cand adunam o cantitate de date suficienta pentru a sparge parola. Dupa ce am asteptat si am salvat pachetele ARP, oprim capturarea pachetelor, care va rezulta in obtinerea unui fisier cu extensie cap. Cu ajutorul programului aircrack-ng acum vom reusi sa decriptam cheia WEP, daca am monitorizat destul de mult timp traficul si daca intre client si AP era intr-adevar si trafic. Dupa ce am obtinut cheia WEP, pur si simplu putem sa ne conectam la AP, adica vom avea internet sau vom fi o parte a retelei wireles, ba chiar vom putea scana si calculatoarele conectate la routerul respectiv. Atentie, la acest tip de atac neaparat trebuie sa capturam traficul intre cel putin un client conectat si AP.
Cum se face
1: Pornim placa de retea wireless in “monitored mode”:
istvan@it $ airmon-ng stop wlan0
istvan@it # airmon-ng start wlan0
2: Scanam reteaua
istvan@it # airodump-ng wlan0

3: Notam BSSID-ul retelei, notam ESSID (adica numele retelei), si adresa de MAC a unui client conectat la AP!
4: Capturam pachetele transmise intre clientul conectat si AP!  Prima data capturam un arp reply, dupa care trimitem si noi pachete ARP copii ale pachetului capturat, apoi  iarasi capturam pachetele ARP.
1: aireplay-ng -3 -b 1C:BD:B9:C1:BA:AE wlan0
2: aireplay-ng -3 -b 1C:BD:B9:C1:BA:AE -h 00:18:DE:6F:65:16 -r replay_arp-0602-133453.cap wlan0
-3 = standard ARP-request replay
-b = BSSID, MAC address, Access Point
-h = source MAC, (se recomanda a fi adresa MAC a clientului conectat)
-r = citirea pachetelor din fisierul pcap
5: Oprim capturarea pachetelor cam dupa un minut, apasand Ctrl+c
6: Trimitem pachetele capturate catre AP specificand sursa MAC a clientului conectat!
istvan@it # aireplay-ng -2 -h 00:18:DE:6F:65:16 -r replay_arp-0602-133453.cap  wlan0
The interface MAC (00:16:EA:56:72:A4) doesn’t match the specified MAC (-h).
ifconfig wlan0 hw ether 00:18:DE:6F:65:16
WEP Wireless
Tastam Y pentru selectarea si trimiterea pachetelor catre AP, si lasam deschisa consola respectiva aproape pana la finalizarea atacului. .
-2 = interactive frame selection
7: Pornim un terminal nou si executam comanda pentru salvarea pachetelor ARP.
istvan@it # aireplay-ng -3 -b 1C:BD:B9:C1:BA:AE wlan0
No source MAC (-h) specified. Using the device MAC (00:16:EA:56:72:A4)
15:46:14 Waiting for beacon frame (BSSID: 1C:BD:B9:C1:BA:AE) on channel 11
Saving ARP requests in replay_arp-0602-154614.cap
You should also start airodump-ng to capture replies.
^Cad 64 packets (got 0 ARP requests and 0 ACKs), sent 0 packets…(0 pps)
Asteptam sa primim respunsuri ARP, lasand deschisa consola.
8: Deschidem o consola noua, si capturam raspunsurile ARP
istvan@it $ airodump-ng -w wep -c 11 –bssid 1C:BD:B9:C1:BA:AE wlan0
Wep Scan
Asteptam pana ce la #Data vedem cel putin 50000, dar cu cat asteptam mai mult, cu atat sansele de reusita sunt mai mari. Cu cat colectam mai multe pachete care contin, bineinteles, mai multe IV-uri, cu atat sunt mai mari sansele ca algoritmii din aircrack sa poata descifra cheia WEP. Cand am scris acest tutorial, am asteptat pana ce am capturat 160000 de pachete.
9: Oprim cu ctrl+c  airodump, si astfel, in directorul respectiv, de unde am pornit airodump, vom avea un fisier numit wep-01.cap.
10: Decriptam cu aircrack-ng cheia WEP.
istvan@it # aircrack-ng wep-01.cap
Asa arata o cheie WEP:
Tutorial WEP
Dupa cum vedeti cheia WEP a fost aflata, si in ASCII este “istva“. Aceasta retea a fost creeata de mine, ca exemplu pentru aceasta demonstratie. Nu ma intelegeti gresit, prin acest tutorial nu incurajez pe nimeni sa atace retelele WEP ale vecinilor. Mai sunt si alte metode prin care se pot ataca retelele wireless. Foarte probabil ca in viitor voi mai demonstra si alte situatii, si voi oferi informatii referitoare si la posibile atacuri impotriva retelelor wpa/wpa2. Tocmai din aceasta cauza firmele mari si serioase nu conecteaza retelele importante la internet si nici nu dau acces la reteaua interna prin wireless.
Glosar
ESSID = (Extended Service Set IDentifier), numele retelei, care este de obicei format din caractere normale, litere
BSSID = (Basic Service Set IDentifier), adresa MAC a routerului, a AP (Access Point)
AP = (Access Point), de obicei un router, sau un alt calculator cu placa de retea wireless care ofera posibilitate de conexiune wireless “multi la unul”
IV = (Initialization Vectors)

Compilare kernel debian


Kernelul poate fi compilat cu metode diferite. De obicei fiecare distributie are o metoda care poate fi aplicate mai usor si fara probleme.
Compilare Kernel in Debian Linux
1: Prima data downlodam pachetele care sunt necesare pt. versiunile kernel 2.6 in Debian Linux
apt-get install kernel-package ncurses-dev fakeroot  wget bzip2
2: Intram in directorul /usr/srccd /usr/src
3: Downlodam versiunea cea mai noua a kernelului de la situl kernel.org/pub/linux/kernel/v2.6/….(ulitma versiune)wget kernel.org/pub/linux/kernel/v2.6/…
4: Despachetam kernelul cu programul gunzip sau bunzip2 – depinde ce varianta am downlodatde ex: gunzip kernel2.6.21.tar.gziptar -xvf kernel2.6.21.tarcd linux2.6 etc
5: Configuram kernelul – Daca avem deja un fisier de configurare pe care am facut noi putem folosi pe acesta pentru a duce la capat mai rapid configurareaex:executam comanda:make menuconfig- selectam obtiunea : Load from external file (si acolo definim ruta catre fisierul vechi)dupa ce am terminat, ne uitam la inbunatatirile kernelului nou, si alegem sau lasam afara noile obtiuni.Daca avem un kernel instalat default, e bine sa ne uitam la toate obtiunile ale kernelului si sa alegem numai obtiunile pe care chiar vrem sa folosim.
Obtiunile disponibile in kernel, pot fi alese ca built in * ( in cazul acesta vor fi compilate in kernel – sau putem alege varianta ( load as module M ) ceea ce inseamna ca modulul respectiv va fi lodat de catre RAMDisk care trebuie creat dupa compilare.
Dupa ce am konfigurat Kernelul executam comenzile:
6: make-kpkg clean7: fakeroot make-kpkg –revision=custom.1.0 kernel_image- comanda respectiva creeaza un pachet de format deb a kernelului si care va arata de ex: kernel-image-2.6.21.2_custom.1.0_i386.deb
8: Instalam programe care sunt necesare pentru crearea initRAMDiskului, de care vom avea nevoie in caz daca nu am compilat kernelul in asa fel incat toate modulele sa fie ( built in )apt-get install module-init-tools initrd-tools procps
9: Instalam kernelul nou:dpkg -i kernel-image-2.6.21.2_custom.1.0_i386.deb
10: Daca avem nevoie de initramdisk(daca folosim module M – atunci avem)executam comanda in directorul /boot/mkinitrd -o /boot/initrd.img-2.6.21.2 2.6.21.2
11: ultimul lucru care trebuie facut – sa ne asiguram ca loaderul pe care folosim stie despre noul kernel instalat ( GRUB, LILO )
- de obicei GRUB face un update automat dupa instalarea noului kernel, in caz daca folosim lilo – > editam fisierul de configurare /etc/lilo.conf si facem schimbarile necesareex:default=Linux
image=/vmlinuz           label=Linux ( kernel nou )           read-only           initrd=/boot/initrd.img-2.6.21.2
Mult succes! – La boot daca kernelul nou nu a fost bine configurat s-ar puta sa aveti un kernel panic  .  In aces caz porniti kernelul vechi si reconfigurati kernelul.