Android

Netcat (nc) εντολή με παραδείγματα

Netcat Tutorial - The Swiss Army Knife of Network Tools

Netcat Tutorial - The Swiss Army Knife of Network Tools

Πίνακας περιεχομένων:

Anonim

Το 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 :

nc -u host port

Λιμάνι Σάρωση

Οι θύρες σάρωσης είναι μια από τις πιο κοινές χρήσεις του 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 τερματικό