This shows you the differences between two versions of the page.
rl:labs:10:contents:09 [2022/11/29 12:08] ioan.stan [09. [10p] Trimitere e-mail din linia de comandă] |
rl:labs:10:contents:09 [2023/12/17 23:49] (current) viorel.mocanu [08. [10p] Rulare Denial of Service pe un server Web] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 09. [10p] Trimitere e-mail din linia de comandă ==== | + | ==== 08. [15p] Rulare Denial of Service pe un server Web ==== |
- | Pentru activități de automatizare (transmiterea de notificări și anunțuri) este util să putem transmite e-mail-uri din linia de comandă în mod neinteractiv. Trimiterea din linia de comandă presupune scrierea a trei componente așa cum se întâmplă și într-un client de e-mail: | + | La acest exercițiu ne propunem să provocăm un comportament distructiv pe un anumit serviciu. Astfel vom realiza un Denial of Service asupra unui server web. Pe ''red'' există un server web (apache2) deja instalat. Verificați dacă acesta este pornit. |
- | * destinatarul | + | |
- | * subiectul mesajului | + | |
- | * conținutul mesajului | + | |
- | Pentru transmiterea unui mesaj în linia de comandă folosim comanda ''mail''. Pentru a transmite un mesaj de la utilizatorul ''bogdan'' către utilizatorul ''corina'' (ambii pe stația ''host''), ne autentificăm ca utilizatorul ''bogdan'':<code bash> | + | <code bash> |
- | root@host:~# su - bogdan | + | root@red:~# /etc/init.d/apache2 status # Verificați că serverul web este pornit |
- | bogdan@host:~$ | + | |
- | </code> și folosim comanda (apăsați ''ENTER'' acolo unde vă cere ''Cc''; nu vrem să introducem adresă de tipul //Carbon Copy//)<code bash> | + | |
- | bogdan@host:~$ mail -s "Invitatie la film" corina | + | |
- | Cc: | + | |
- | Buna, Corina! | + | |
- | + | ||
- | Vii la filmul "Teambuilding"? | + | |
- | + | ||
- | Bogdan | + | |
- | ^D | + | |
</code> | </code> | ||
- | Mesajul de mai sus a fost închis folosind combinația de taste ''Ctrl+d'', însemnând //End of File// (''EOF''). | ||
- | Pentru a verifica faptul că mesajul e transmis, ne autentificăm ca utilizatorul ''corina'' și rulăm comanda<code bash> | + | Pe sisteme aveți instalat un text web browser. Dați comanda ''elinks'' și accesați adresa ''http://192.168.1.2/''. Ar trebui să obțineți pagina default a serverului web Apache2 Ubuntu. |
- | corina@host:~$ mail | + | |
- | "/var/mail/corina": 1 message 1 new | + | |
- | >N 1 bogdan@host Tue Nov 26 21:07 17/419 Invitatie la film | + | |
- | ? 1 | + | |
- | [...] | + | |
- | Subject: Invitatie la film | + | |
- | To: <corina@host> | + | |
- | [...] | + | |
- | From: bogdan@host | + | |
- | Buna, Corina! | + | În continuare vom folosit un utilitar de Denial of Service numit ''slowloris'' pe care il avem deja instalat pe ''green''. Urmăriți README-ul de la această [[https://github.com/gkbrk/slowloris | adresă]]. |
- | Vii la filmul "Ender's Game"? | + | Porniți un nou terminal pe sistemul ''host''. Rulati ''tcpdump'' pe interfața de rețea ''veth-red'' urmărind pachetele primite. Acum puteți porni tool-ul asupra webserver-ului de pe ''red''. Încercați să accesați din nou serverul web. Mai funcționează ? |
- | Bogdan | + | <code bash> |
- | ? q | + | root@student:~# tcpdump -i veth-red -n |
- | Saved 1 message in /home/corina/mbox | + | |
- | Held 0 messages in /var/mail/corina | + | |
</code> | </code> | ||
- | Comanda ''mail'', fără argumente citește căsuța poștală implicită a utilizatorului (din ''/var/mail/<username>''). Promptul comenzii este ''?'' și permite introducerea de comenzii. Mai sus am folosit comanda ''1'' pentru a citi primul mesaj și apoi comanda ''q'' pentru a părăsi utilitarul. În conținutul mesajului apare și destinatarul (câmpul ''To'') și subiectul mesajului (câmpul ''Subject''). | ||
- | Mesajul nu este obligatoriu să fie scris la intrarea standard ci poate fi redirectat dintr-un fișier sau o altă comandă. Un mesaj simplu poate fi trimis și folosind comanda:<code bash> | + | <note important> |
- | bogdan@host:~$ echo 'Hello, Corina' | mail -s "Salutari" corina | + | |
- | </code> | + | |
- | Verificăm mesajul folosind comanda ''mail'' în contul utilizatorului ''corina'':<code bash> | + | |
- | corina@host:~$ mail | + | |
- | "/var/mail/corina": 1 message 1 new | + | |
- | >N 1 bogdan@host Tue Nov 26 21:13 13/371 Salutari | + | |
- | ? 1 | + | |
- | [...] | + | |
- | Subject: Salutari | + | |
- | To: <corina@host> | + | |
- | [...] | + | |
- | From: bogdan@host | + | |
- | Hello, Corina | + | * Dacă server-ul web tot vă răspunde, folosiți combinatia de taste ''CTRL+R'' pentru a da refresh la pagina din ''elinks''. |
- | ? q | + | * Dacă încă funcționează serverul, încercați să rulați tool-ul din mai multe terminale până nu mai răspunde. |
- | Saved 1 message in /home/corina/mbox | + | |
- | Held 0 messages in /var/mail/corina | + | |
- | </code> | + | |
- | Trimiteți un mesaj simplu din contul utilizatorului ''bogdan'' către o adresă a voastră de e-mail (de preferat GMail). Verificați șî în Spam/Junk primirea mesajului. | + | </note> |
- | <hidden> | ||
- | <solution -hidden> | ||
- | Pentru trimiterea mesajului folosim o comandă de forma<code bash> | ||
- | bogdan@host:~$ echo "E-mail de la RL" | mail -s "Test RL" adresa.de.email@gmail.com | ||
- | </code> | ||
- | </solution> | ||
- | </hidden> |