Netcat Tutorial - The Swiss Army Knife of Network Tools
Πίνακας περιεχομένων:
- Σύνταγμα Netcat
- Λιμάνι Σάρωση
- Αποστολή αρχείων μέσω του Netcat
- Δημιουργία ενός απλού διακομιστή συνομιλίας
- Εκτέλεση αιτήματος HTTP
- συμπέρασμα
Το Netcat (ή nc) είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που διαβάζει και γράφει δεδομένα σε συνδέσεις δικτύου χρησιμοποιώντας τα πρωτόκολλα TCP ή UDP. Είναι ένα από τα πιο ισχυρά εργαλεία στο οπλοστάσιο των διαχειριστών δικτύων και συστημάτων και θεωρείται ως ελβετικό μαχαίρι στρατιωτικών εργαλείων δικτύωσης.
Το Netcat είναι cross-platform και είναι διαθέσιμο για Linux, macOS, Windows και BSD. Μπορείτε να χρησιμοποιήσετε το Netcat για να εντοπίσετε λάθη και να παρακολουθήσετε συνδέσεις δικτύου, να σαρώσετε για ανοιχτές θύρες, να μεταφέρετε δεδομένα, ως διακομιστή μεσολάβησης και πολλά άλλα. Το πακέτο Netcat είναι προεγκατεστημένο σε macOS και σε δημοφιλείς διανομές Linux όπως το Ubuntu.
Σύνταγμα Netcat
Η πιο βασική σύνταξη του βοηθητικού προγράμματος Netcat έχει την ακόλουθη μορφή:
nc host port
Στο Ubuntu, μπορείτε να χρησιμοποιήσετε είτε
netcat
είτε
nc
. Είναι και οι δύο συμβολικές συνδέσεις στην έκδοση openBSD του Netcat.
Από προεπιλογή, το Netcat θα επιχειρήσει να ξεκινήσει μια σύνδεση TCP στον καθορισμένο κεντρικό υπολογιστή και θύρα. Αν θέλετε να δημιουργήσετε μια σύνδεση UDP, χρησιμοποιήστε την επιλογή
-u
:
Λιμάνι Σάρωση
Οι θύρες σάρωσης είναι μια από τις πιο κοινές χρήσεις του Netcat. Μπορείτε να σαρώσετε μια μόνο θύρα ή μια περιοχή θύρας.
Για παράδειγμα, για να σαρώσετε ανοιχτές θύρες στην περιοχή 20-80, θα χρησιμοποιήσατε την ακόλουθη εντολή:
nc -z -v 10.10.8.8 20-80
Η επιλογή
-z
θα λέει στον
nc
να ανιχνεύει μόνο ανοιχτές θύρες, χωρίς να τους στέλνει δεδομένα και την επιλογή
-v
για να παρέχει πιο λεπτομερείς πληροφορίες.
Η έξοδος θα φαίνεται κάπως έτσι:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Μπορείτε επίσης να χρησιμοποιήσετε το Netcat για να βρείτε το λογισμικό διακομιστή και την έκδοση του. Για παράδειγμα, αν στείλετε μια εντολή "EXIT" στο διακομιστή στην προεπιλεγμένη θύρα SSH 22:
echo "EXIT" | nc 10.10.8.8 22
Η έξοδος θα φαίνεται κάπως έτσι:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
Για να σαρώσετε τις θύρες UDP απλώς προσθέστε την επιλογή
-u
στην εντολή όπως φαίνεται παρακάτω:
nc -z -v -u 10.10.8.8 20-80
Στις περισσότερες περιπτώσεις, το Nmap είναι ένα καλύτερο εργαλείο από το Netcat για πολύπλοκη σάρωση λιμένων.
Αποστολή αρχείων μέσω του Netcat
Το Netcat μπορεί να χρησιμοποιηθεί για τη μεταφορά δεδομένων από έναν κεντρικό υπολογιστή σε άλλο, δημιουργώντας ένα βασικό μοντέλο πελάτη / διακομιστή.
Αυτό λειτουργεί ρυθμίζοντας το Netcat να ακούει σε μια συγκεκριμένη θύρα (χρησιμοποιώντας την επιλογή
-l
) στον κεντρικό υπολογιστή που λαμβάνει και στη συνέχεια να δημιουργεί μια κανονική σύνδεση TCP από τον άλλο κεντρικό υπολογιστή και να στέλνει το αρχείο πάνω από αυτό.
Στη λήψη λαμβάνετε την ακόλουθη εντολή που θα ανοίξει τη θύρα 5555 για εισερχόμενη σύνδεση και θα ανακατευθύνει την έξοδο στο αρχείο:
nc -l 5555 > file_name
Από τον κεντρικό υπολογιστή αποστολής, συνδεθείτε με τον κεντρικό υπολογιστή λήψης και στείλτε το αρχείο:
nc receiving.host.com 5555 < file_name
Για να μεταφέρετε έναν κατάλογο, μπορείτε να χρησιμοποιήσετε το tar για την αρχειοθέτηση του καταλόγου στον κεντρικό υπολογιστή προέλευσης και για την εξαγωγή του αρχείου στον κεντρικό υπολογιστή προορισμού.
Στο διακομιστή υποδοχής ορίστε το εργαλείο Netcat για να ακούσετε μια εισερχόμενη σύνδεση στη θύρα 5555. Τα εισερχόμενα δεδομένα συνδέονται με την εντολή tar που θα εξαγάγει το αρχείο:
nc -l 5555 | tar xzvf -
Στο πακέτο υποδοχής αποστολέα, ο κατάλογος και η αποστολή των δεδομένων συνδέονται στη διαδικασία ακρόασης
nc
στον κεντρικό υπολογιστή λήψης:
tar czvf - /path/to/dir | nc receiving.host.com 5555
Μπορείτε να παρακολουθήσετε την πρόοδο της μεταφοράς και στις δύο άκρες. Μόλις ολοκληρωθεί, πληκτρολογήστε
CTRL+C
για να κλείσετε τη σύνδεση.
Δημιουργία ενός απλού διακομιστή συνομιλίας
Η διαδικασία δημιουργίας μιας διαδικτυακής συνομιλίας μεταξύ δύο ή περισσοτέρων κεντρικών υπολογιστών είναι η ίδια με τη διαδικασία της μεταφοράς αρχείων.
Στον πρώτο οικοδεσπότη ξεκινήστε μια διαδικασία Netcat για να ακούσετε στη θύρα 5555:
nc -l 5555
Από τη δεύτερη υποδοχή εκτελέστε την ακόλουθη εντολή για να συνδεθείτε στη θύρα ακρόασης:
nc first.host.com 5555
Τώρα, εάν πληκτρολογήσετε ένα μήνυμα και πατήσετε
ENTER
, θα εμφανιστεί και στους δύο κεντρικούς υπολογιστές.
Για να κλείσετε τη σύνδεση, πληκτρολογήστε
CTRL+C
Εκτέλεση αιτήματος HTTP
Παρόλο που υπάρχουν πολύ καλύτερα εργαλεία για αιτήματα HTTP, όπως η συστροφή, μπορείτε επίσης να χρησιμοποιήσετε το Netcat για να στείλετε διάφορα αιτήματα σε απομακρυσμένους διακομιστές.
Για παράδειγμα, για να ανακτήσετε τη σελίδα man Netcat από την τοποθεσία Web του OpenBSD, πληκτρολογήστε:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
Η πλήρης απόκριση, συμπεριλαμβανομένων των κεφαλίδων HTTP και του κώδικα HTML, θα εκτυπωθεί στο τερματικό.
συμπέρασμα
Σε αυτό το σεμινάριο μάθατε πώς μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα Netcat για να δημιουργήσετε και να δοκιμάσετε συνδέσεις TCP και UDP.
Για περισσότερες πληροφορίες, επισκεφτείτε τη σελίδα man Netcat και διαβάστε για όλες τις άλλες δυνατές επιλογές της εντολής Netcat.
netcat τερματικό. Στο τρέχον συνέδριο ασφάλειας RSA σήμερα, ο Graham Cluley της Sophos έδειξε παραδείγματα τόσο κακόβουλων όσο και prankster επιθέσεων στα κοινωνικά δίκτυα, που περιγράφηκε παραπάνω, και τον πρόσφατο σκουλήκι "Mikeyy". Πολλά από αυτά τα παραδείγματα χρησιμοποίησαν το TinyURL ή άλλη υπηρεσία συντόμευσης-συντόμευσης για να κρύψουν έναν κακόβουλο σύνδεσμο σε μια δημοσίευση ή ένα μήνυμα προφίλ. Οι χρήστες του Twitter, ιδίως, κάνουν συχνά νόμιμη χρήση της υπηρεσίας για να εξοικονομήσουν χώρ
Μία επιλογή για το TinyURL είναι να κόψετε και να επικολλήσετε τον σύνδεσμο σε μια νέα καρτέλα προγράμματος περιήγησης και να προσθέσετε την προεπισκόπηση στον σύνδεσμο, όπως περιγράφεται εδώ. Αλλά ο Cluley είπε ότι χρησιμοποιεί το addon LongURL όταν κάνει περιήγηση με τον Firefox και αφού το δοκιμάσει ο ίδιος, καταλαβαίνω γιατί
Docker τρέχει εντολή με παραδείγματα
Η εντολή τρέχοντας αποβάθρα δημιουργεί ένα δοχείο από μια δεδομένη εικόνα και ξεκινά το δοχείο χρησιμοποιώντας μια δεδομένη εντολή. Είναι μία από τις πρώτες εντολές στις οποίες θα πρέπει να εξοικειωθείτε όταν ξεκινάτε να δουλεύετε με το Docker.
Echo εντολή στο linux με παραδείγματα
Η εντολή echo είναι μία από τις πιο βασικές και συχνά χρησιμοποιούμενες εντολές στο Linux. Τα επιχειρήματα που διαβιβάζονται στην ηχώ εκτυπώνονται στην τυπική έξοδο.







