Πίνακας περιεχομένων:
- Βήμα 1: Πώς ξεκινάμε;
- Βήμα 2: Ας ξεκινήσουμε
- Βήμα 3: Δημιουργία σύνδεσης
- Βήμα 4: Ας στείλουμε λίγο περιεχόμενο
- Βήμα 5: Ας έχουμε μια ανοιχτή σύνδεση
- Βήμα 6: Συμπέρασμα
Βίντεο: Netcat στην Python: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Τι είναι το netcat; Η χειροκίνητη σελίδα για το netcat λέει τα εξής: "Το βοηθητικό πρόγραμμα nc (ή netcat) χρησιμοποιείται για σχεδόν οτιδήποτε κάτω από τον ήλιο που περιλαμβάνει πρίζες TCP, UDP ή UNIX. Μπορεί να ανοίξει συνδέσεις TCP, να στείλει πακέτα UDP, να ακούσει αυθαίρετα Οι θύρες TCP και UDP, κάνουν σάρωση θυρών και αντιμετωπίζουν τόσο το IPv4 όσο και το IPv6. Σε αντίθεση με το telnet (1), τα σενάρια nc είναι ωραία και διαχωρίζει τα μηνύματα σφάλματος στο τυπικό σφάλμα αντί να τα στέλνει στην τυπική έξοδο, όπως κάνει το telnet (1) με ορισμένα"
Ουσιαστικά, το netcat σας επιτρέπει να συνδεθείτε με άλλους διακομιστές χρησιμοποιώντας το πρωτόκολλο TCP ή UDP. Το TCP σημαίνει Transmission Control Protocol και είναι προσανατολισμένο στη σύνδεση. Το UDP σημαίνει Universal Datagram Protocol και είναι χωρίς σύνδεση. Το TCP χρησιμοποιείται συνήθως για εφαρμογές διαδικτύου, ενώ το UDP χρησιμοποιείται για ροή πολυμέσων ή VPN.
Βήμα 1: Πώς ξεκινάμε;
Παρακάτω είναι το πώς ονομάζεται netcat. Μπορείτε να δείτε ότι υπάρχουν δύο ορίσματα στο τέλος που ονομάζονται "προορισμός" και "θύρα". Ο προορισμός αναφέρεται σε όνομα κεντρικού υπολογιστή ή διεύθυνση IP του διακομιστή στον οποίο προσπαθούμε να συνδεθούμε, ενώ η θύρα αναφέρεται στη θύρα του διακομιστή στον οποίο προσπαθούμε να συνδεθούμε.
Βήμα 2: Ας ξεκινήσουμε
Πάνω υπάρχει ένας αρχικός κώδικας python. Όπως μπορείτε να δείτε, θέλουμε να επεξεργαζόμαστε τα ορίσματα στο πρόγραμμα με τον ίδιο τρόπο όπως το πραγματικό βοηθητικό πρόγραμμα. Το όνομα κεντρικού υπολογιστή θα είναι το πρώτο όρισμα μετά το όνομα του εκτελέσιμου, ενώ η θύρα θα είναι το δεύτερο όρισμα μετά το όνομα του εκτελέσιμου στη γραμμή εντολών.
Βήμα 3: Δημιουργία σύνδεσης
Ας δημιουργήσουμε μια συνάρτηση netcat που μπορούμε να χρησιμοποιήσουμε. Αυτό που κάνουμε βασικά εδώ είναι να δημιουργήσουμε μια πρίζα και να συνδεθούμε στο διακομιστή χρησιμοποιώντας τις παραμέτρους που δίνονται. Για την εντολή netcat, οι τρέχουσες παράμετροι είναι το όνομα κεντρικού υπολογιστή και η θύρα του διακομιστή στον οποίο προσπαθούμε να συνδεθούμε. Η πρίζα περιέχει τις παραμέτρους "socket. AF_INET" και "socket. SOCK_STREAM", επειδή έχουμε προεπιλεγμένη σύνδεση TCP για αυτό το σεμινάριο.
Βήμα 4: Ας στείλουμε λίγο περιεχόμενο
Επεκτείναμε τη λειτουργία netcat για να λάβουμε μια τρίτη παράμετρο, το "περιεχόμενο". Υπάρχει πολύ περιεχόμενο εδώ, οπότε ας το αναλύσουμε κατά αριθμό γραμμής.
Γραμμή 14-16: στέλνουμε όλο το περιεχόμενο στην πρίζα, περιμένουμε λίγο και μετά κλείνουμε την πρίζα σε τυχόν εξερχόμενα δεδομένα, ώστε η πρίζα να γνωρίζει ότι δεν έρχονται άλλα δεδομένα.
Γραμμή 18-26: δημιουργούμε ένα buffer για την αποθήκευση της απόκρισης του διακομιστή και ενώ η υποδοχή λαμβάνει δεδομένα, προσθέτουμε έως και 1024 byte δεδομένων στο αποτέλεσμα, εφόσον υπάρχουν δεδομένα για ανάγνωση.
Γραμμή 28-29: θέλουμε αυτή η σύνδεση netcat να είναι μια εφάπαξ σύνδεση, οπότε δηλώνουμε τη σύνδεση κλειστή και στη συνέχεια κλείνουμε τη σύνδεση.
Γραμμή 31: Αυτό είναι ένα τυπικό αίτημα HTTP. Εάν εκτελέσετε τον κώδικα με τα ορίσματα της γραμμής εντολών "google.com" και "80", τότε θα δείτε μια σωστή απάντηση
Βήμα 5: Ας έχουμε μια ανοιχτή σύνδεση
Ο παραπάνω κώδικας (ο οποίος βρίσκεται κάτω από τον κωδικό από την προηγούμενη ενότητα) μας επιτρέπει απλώς να εκτελέσουμε πολλές εντολές netcat σε μια ψευδο-ανοιχτή σύνδεση. (Στην πραγματικότητα, κάθε φορά που εκτελείτε μια εντολή, ανοίγει και μετά κλείνει μια νέα σύνδεση TCP, οπότε δεν μιμείται πραγματικά τη συμπεριφορά του netcat, το κάνουμε απλώς για μαθησιακούς σκοπούς). Ας σπάσουμε και αυτό ανά γραμμή:
Γραμμή 31: Θέλουμε να διαβάζουμε εντολές επ 'αόριστον για να διατηρήσουμε τη "διαδραστικότητα"
Γραμμή 32: Αυτό είναι το buffer που θα αποθηκεύσει το περιεχόμενο του αιτήματός μας
Γραμμή 36-45: Θα διαβάσουμε στο buffer μέχρι να διαβάσουμε μια κενή γραμμή
Γραμμή 48: απλώς καλούμε τη λειτουργία netcat με το όνομα κεντρικού υπολογιστή, τη θύρα και το νέο περιεχόμενο (το οποίο έχει κωδικοποιηθεί σωστά)
Γραμμή 50: εάν το περιεχόμενο του buffer μας περιέχει ποτέ "Connection: Close" (υποδεικνύοντας ότι θέλουμε να κλείσουμε τη σύνδεση), απλώς ξεφεύγουμε από τον βρόχο
Βήμα 6: Συμπέρασμα
Στο τέλος αυτού του σεμιναρίου θα πρέπει να έχετε μια ελάχιστη εφαρμογή netcat. Θα αφήσω ως άσκηση στον χρήστη την εφαρμογή χαρακτηριστικών όπως:
1. υποστήριξη άλλων πρωτοκόλλων
2. καθορίζοντας τον κωδικό ώστε να μην κλείνει η σύνδεση κάθε φορά
3. προσθήκη σημαιών που έχει ήδη το netcat για να τροποποιήσει τη συμπεριφορά
Συνιστάται:
Πρόγραμμα Caesar Cipher στην Python: 4 βήματα
Πρόγραμμα Caesar Cipher στην Python: Το Caesar Cipher είναι ένας αρχαίος και ευρέως χρησιμοποιούμενος κρυπτογράφος που είναι εύκολο να κρυπτογραφηθεί και να αποκρυπτογραφηθεί. Λειτουργεί μετατοπίζοντας τα γράμματα του αλφαβήτου για να δημιουργήσει ένα εντελώς νέο αλφάβητο (το ABCDEF θα μπορούσε να μετατοπίσει πάνω από 4 γράμματα και θα γίνει EFGHIJ). Caesar C
Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python): 11 βήματα
Πειράματα στην Προηγμένη καταγραφή δεδομένων (Χρήση Python): Υπάρχουν πολλοί οδηγοί καταγραφής δεδομένων, οπότε όταν ήθελα να δημιουργήσω ένα δικό μου έργο καταγραφής κοίταξα τριγύρω σε μια δέσμη. Κάποια ήταν καλά, κάποια όχι τόσο, έτσι αποφάσισα να πάρω μερικές από τις καλύτερες ιδέες και να κάνω τη δική μου εφαρμογή. Αυτό το ρεζ
Γραφική παράσταση της αλλαγής θερμοκρασίας από την κλιματική αλλαγή στην Python: 6 βήματα
Απεικόνιση της αλλαγής θερμοκρασίας από την κλιματική αλλαγή στην Python: Η κλιματική αλλαγή είναι ένα μεγάλο πρόβλημα. Και πολλοί άνθρωποι δεν γνωρίζουν τώρα πόσο έχει ανέβει. Σε αυτό το διδακτικό, θα γράψουμε τη μεταβολή της θερμοκρασίας στο κλίμα λόγω της κλιματικής αλλαγής. Για ένα φύλλο εξαπάτησης, μπορείτε να δείτε το αρχείο python παρακάτω
Κάντε ένα πραγματικά δροσερό πλέγμα στην Python !: 6 βήματα
Φτιάξτε μια πραγματικά δροσερή μήτρα στην Python !: Γεια σας παιδιά! Αυτό το διδακτικό θα σας διδάξει πώς να φτιάξετε μια μήτρα στην Python! Συνήθως, οι άνθρωποι δημιουργούσαν μια μήτρα στο Batch επειδή είναι εύκολο. Αλλά αυτή τη φορά, θα σας δείξω πώς να φτιάξετε ένα Matrix σε μία από τις ισχυρές γλώσσες υπολογιστών
Πώς να δημιουργήσετε έναν βρόχο while στην Python: 9 βήματα
Πώς να δημιουργήσετε έναν βρόχο while στην Python: Υπάρχουν στιγμές στον προγραμματισμό όταν πρέπει να επαναλάβετε ένα σύνολο βημάτων για να λύσετε ένα πρόβλημα. Ο βρόχος while σάς επιτρέπει να κάνετε βρόχο σε ένα τμήμα κώδικα χωρίς να χρειάζεται να γράψετε επαναλαμβανόμενο κώδικα. Όταν προγραμματίζετε, γράφετε τον ίδιο κώδικα και