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


Το Netcatnc εν συντομία) είναι ένα απλό αλλά ισχυρό εργαλείο γραμμής εντολών δικτύωσης που χρησιμοποιείται για την εκτέλεση οποιασδήποτε λειτουργίας στο Linux που σχετίζεται με το TCP, < Υποδοχές τομέαUDP ή UNIX.

Το Netcat μπορεί να χρησιμοποιηθεί για σάρωση θύρας, ανακατεύθυνση θύρας, ως ακροατής θύρας (για εισερχόμενες συνδέσεις). μπορεί επίσης να χρησιμοποιηθεί για το άνοιγμα απομακρυσμένων συνδέσεων και τόσα άλλα πράγματα. Επιπλέον, μπορείτε να το χρησιμοποιήσετε ως backdoor για να αποκτήσετε πρόσβαση σε έναν διακομιστή-στόχο.

Σε αυτό το άρθρο, θα εξηγήσουμε τις εντολές χρήσης Netcat με παραδείγματα.

Πώς να εγκαταστήσετε και να χρησιμοποιήσετε το Netcat στο Linux

Για να εγκαταστήσετε το πακέτο netcat στο σύστημά σας, χρησιμοποιήστε τον προεπιλεγμένο διαχειριστή πακέτων για τη διανομή Linux.

yum install nc                  [On CentOS/RHEL]
dnf install nc                  [On Fedora 22+ and RHEL 8]
sudo apt-get install Netcat     [On Debian/Ubuntu]

Μόλις εγκατασταθεί το πακέτο netcat, μπορείτε να προχωρήσετε περαιτέρω για να μάθετε τη χρήση της εντολής netcat στα ακόλουθα παραδείγματα.

Σάρωση θυρών

Το Netcat μπορεί να χρησιμοποιηθεί για σάρωση θυρών: για να γνωρίζετε ποιες θύρες είναι ανοιχτές και εκτελούν υπηρεσίες σε ένα μηχάνημα προορισμού. Μπορεί να σαρώσει μία ή περισσότερες ή μια σειρά από ανοιχτές θύρες.

Ακολουθεί ένα παράδειγμα, η επιλογή -z ρυθμίζει το nc για απλή σάρωση για δαίμονες ακρόασης, χωρίς στην πραγματικότητα να στέλνει δεδομένα σε αυτούς. Η επιλογή -v ενεργοποιεί τη λεπτομερή λειτουργία και το -w καθορίζει ένα χρονικό όριο για τη σύνδεση που δεν μπορεί να δημιουργηθεί.

nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Μεταφορά αρχείων μεταξύ διακομιστών Linux

Το Netcat σάς επιτρέπει να μεταφέρετε αρχεία μεταξύ δύο υπολογιστών ή διακομιστών Linux και και τα δύο αυτά συστήματα πρέπει να έχουν εγκατεστημένο το nc.

Για παράδειγμα, για να αντιγράψετε ένα αρχείο εικόνας ISO από έναν υπολογιστή σε άλλο και να παρακολουθήσετε την πρόοδο μεταφοράς (χρησιμοποιώντας το βοηθητικό πρόγραμμα pv), εκτελέστε την ακόλουθη εντολή στον υπολογιστή αποστολέα/διακομιστή (όπου υπάρχει το αρχείο ISO).

Αυτό θα εκτελεστεί nc σε λειτουργία ακρόασης (σημαία -l) στη θύρα 3000.

tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

Και στον υπολογιστή δέκτη/πελάτη, εκτελέστε την ακόλουθη εντολή για να αποκτήσετε το αρχείο.

nc 192.168.1.4 3000 | pv | tar -zxf -

Δημιουργήστε έναν διακομιστή συνομιλίας γραμμής εντολών

Μπορείτε επίσης να χρησιμοποιήσετε το Netcat για να δημιουργήσετε άμεσα έναν απλό διακομιστή ανταλλαγής μηνυμάτων γραμμής εντολών. Όπως και στο προηγούμενο παράδειγμα χρήσης, το nc πρέπει να εγκατασταθεί και στα δύο συστήματα που χρησιμοποιούνται για το chat room.

Σε ένα σύστημα, εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε τον διακομιστή συνομιλίας που ακούει στη θύρα 5000.

nc -l -vv -p 5000

Στο άλλο σύστημα, εκτελέστε την ακόλουθη εντολή για να ξεκινήσετε μια περίοδο λειτουργίας συνομιλίας σε ένα μηχάνημα όπου εκτελείται ο διακομιστής ανταλλαγής μηνυμάτων.

nc 192.168.56.1 5000

Δημιουργήστε έναν βασικό διακομιστή Web

Με την επιλογή -l της εντολής nc που χρησιμοποιείται για τη δημιουργία ενός βασικού, μη ασφαλούς διακομιστή ιστού για την εξυπηρέτηση στατικών αρχείων ιστού για μαθητικούς σκοπούς. Για να το αποδείξετε αυτό, δημιουργήστε ένα αρχείο .html όπως φαίνεται.

vim index.html

Προσθέστε τις ακόλουθες γραμμές HTML στο αρχείο.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                      <p>Serving this file using Netcat Basic HTTP server!</p>
        </body>
</html>

Αποθηκεύστε τις αλλαγές στο αρχείο και βγείτε.

Στη συνέχεια, εξυπηρετήστε το παραπάνω αρχείο μέσω HTTP εκτελώντας την ακόλουθη εντολή, η οποία θα επιτρέψει στον διακομιστή HTTP να εκτελείται συνεχώς.


while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης ιστού και μπορείτε να αποκτήσετε πρόσβαση στο περιεχόμενο χρησιμοποιώντας την ακόλουθη διεύθυνση.

http://localhost:8080
OR
http://SERVER_IP:8080

Λάβετε υπόψη ότι μπορείτε να σταματήσετε τον διακομιστή HTTP Netcat πατώντας [Ctrl+ C].

Αντιμετώπιση προβλημάτων σύνδεσης διακομιστή Linux

Μια άλλη χρήσιμη χρήση του Netcat είναι η αντιμετώπιση προβλημάτων σύνδεσης διακομιστή. Εδώ, μπορείτε να χρησιμοποιήσετε το Netcat για να επαληθεύσετε ποια δεδομένα στέλνει ένας διακομιστής ως απόκριση σε εντολές που εκδίδονται από τον πελάτη.

Η ακόλουθη εντολή ανακτά την αρχική σελίδα του example.com.

printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80

Η έξοδος της παραπάνω εντολής περιλαμβάνει τις κεφαλίδες που αποστέλλονται από τον διακομιστή web, οι οποίες μπορούν να χρησιμοποιηθούν για σκοπούς αντιμετώπισης προβλημάτων.

Βρείτε μια υπηρεσία που λειτουργεί στο λιμάνι

Μπορείτε επίσης να χρησιμοποιήσετε το Netcat για να αποκτήσετε banner θυρών. Σε αυτήν την περίπτωση, θα σας πει ποια υπηρεσία εκτελείται πίσω από μια συγκεκριμένη θύρα. Για παράδειγμα, για να μάθετε ποιος τύπος υπηρεσίας εκτελείται πίσω από τη θύρα 22 σε έναν συγκεκριμένο διακομιστή, εκτελέστε την ακόλουθη εντολή (αντικαταστήστε το 192.168.56.110 με τη διεύθυνση IP του διακομιστή προορισμού). Η σημαία -n σημαίνει την απενεργοποίηση των αναζητήσεων DNS ή υπηρεσιών.

nc -v -n 192.168.56.110 80

Δημιουργήστε ένα Stream Sockets

Το Netcat υποστηρίζει επίσης τη δημιουργία υποδοχών ροής τομέα UNIX. Η ακόλουθη εντολή θα δημιουργήσει και θα ακούσει σε μια υποδοχή ροής τομέα UNIX.

nc -lU /var/tmp/mysocket &
ss -lpn | grep "/var/tmp/"

Δημιουργήστε μια κερκόπορτα

Μπορείτε επίσης να εκτελέσετε το Netcat ως backdoor. Ωστόσο, αυτό απαιτεί περισσότερη δουλειά. Εάν το Netcat είναι εγκατεστημένο σε έναν διακομιστή προορισμού, μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε μια κερκόπορτα, για να λάβετε μια απομακρυσμένη γραμμή εντολών.

Για να ενεργοποιήσετε μια κερκόπορτα, πρέπει η Netcat να ακούει σε μια επιλεγμένη θύρα (π.χ. θύρα 3001) στον διακομιστή προορισμού και, στη συνέχεια, μπορείτε να συνδεθείτε σε αυτήν τη θύρα από το μηχάνημά σας ως εξής.

Αυτή είναι η εντολή που προορίζεται να εκτελεστεί στον απομακρυσμένο διακομιστή όπου η επιλογή -d απενεργοποιεί την ανάγνωση από το stdin και το -e καθορίζει την εντολή που θα εκτελεστεί στο σύστημα προορισμού.

nc -L -p 3001 -d -e cmd.exe 

Τελευταίο αλλά εξίσου σημαντικό, το Netcat μπορεί να χρησιμοποιηθεί ως διακομιστής μεσολάβησης για διαφορετικές υπηρεσίες/πρωτόκολλα, συμπεριλαμβανομένων των HTTP, SSH και πολλών άλλων. Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα man του.

man nc

Σε αυτό το άρθρο, εξηγήσαμε 8 πρακτικά παραδείγματα χρήσης εντολών Netcat. Εάν γνωρίζετε οποιαδήποτε άλλη περίπτωση πρακτικής χρήσης, μοιραστείτε μαζί μας μέσω της παρακάτω φόρμας σχολίων. Μπορείτε επίσης να κάνετε μια ερώτηση.