AndreasNefeli
84e36f2b73
|
4 years ago | |
---|---|---|
.. | ||
README.md | 4 years ago | |
master.sh | 4 years ago | |
worker.sh | 4 years ago |
README.md
Προσομοίωση 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
References