nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Αν κάνω ctrl+c τον client το μήνυμα βγαίνει και τερματίζεται η επικοινωνία.. Ναι, εκεί στόχευαν τα 2 τελευταία hints που έδωσα στο post 11. Από το script θα τερματίζεις τη Netcat αυτόματα για κάθε μήνυμα, με την παράμετρο -c της. Και θα εκκινείς επίσης αυτόματα μία νέα netcat αμέσως μετά, χρησιμοποιώντας μία while true loop. >[color="Gray"][i]# έτσι θα τρέχει πάντα μία netcat στη συγκεκριμένη Port, # η οποία θα παραλαμβάνει τα μηνύματα και θα τα στέλνει στην openssl για αποκρυπτογράφηση. # Η openssl θα to τυπώνει στο terminal[/i][/color] while true; do nc -vv -l -p yyyy | openssl rsautl -inkey private.key -decrypt; done & >[i][color="Gray"]# έτσι θα κρυπτογραφείς κάθε μήνυμα # και θα το στέλνεις στη netcat που κάνει listen στο άλλο άκρο # Όμως θα πρέπει να χρησιμοποιήσεις και μία αντίστοιχη loop και εδώ, # για να είναι πάντα το script έτοιμο να διαβάσει και να χειριστεί την είσοδο του χρήστη.[/i][/color] echo "Message" | openssl rsautl -pubin -inkey public.key -encrypt | nc -c x.x.x.x yyyy Και τα δύο αυτά θα τα κάνεις και στα δύο άκρα, η μόνη διαφορά είναι ότι το ένα θα συνδέεται στην Port στην οποία ακούει το netcat του άλλου. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
NullScan Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 EDIT: δοκίμασε αυτό που είπε ο nske. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
sarakinos Δημοσ. 14 Δεκεμβρίου 2009 Μέλος Share Δημοσ. 14 Δεκεμβρίου 2009 αχα...τα είχα ξεχάσει τα hints σου ..αρχίζω λοιπόν.. ---------- Το μήνυμα προστέθηκε στις 14:45 ---------- η παράμετρος -c θα μπαίνει στον client ετσί? με την μορφη? netcat -vv xxx.xxx.xxx.xxx $port -c echo"test"? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Ναι η -c μπαίνει στον client, γιατί αυτός θέλουμε να στέλνει το μήνυμα και να τερματίζει αυτόματα. Τον server τον βάλαμε σε loop γιατί για κάποιο λόγο τερμάτιζε και αυτός, και δεν είδα να έχει αντίστροφο του -c option (δηλαδή "stay alive after the client closes the connection") Τώρα για το πώς θα περάσεις το μήνυμα στον client, αυτό θα είναι αναγκαστικά από το stdin, μέσω pipe, αφού θέλουμε να είναι κρυπτογραφημένο (όπως το γράφει η openssl στο stdout). Πρώτα το στέλνεις στην openssl λοιπόν για κρυπτογράφηση, κάνοντάς το pipe στο δικό της stdin, και μετά κάνεις pipe την έξοδο της openssl στη netcat του client. Υπενθυμίζω ότι πλέον οι όροι "client" και "server" δεν αναφέρονται στα μηχανήματα, αλλά στον ρόλο που επιτελεί η netcat όπως εκτελείται σε κάθε περίπτωση. Για να υπάρχει αμφίδρομη επικοινωνία, κάθε μηχάνημα θα είναι και client και server, δηλαδή θα τρέχει τη netcat και με τους δύο τρόπους. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Αυτό που μένει να βρεις λοιπόν, είναι έναν τρόπο να διαβάζεις την είσοδο του χρήστη από το terminal, ώστε να την στέλνεις στην openssl. http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_08_02.html Και μετά να το βάλεις όλο σε loop. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Επίσης να βρεις τρόπο να καταπνίξεις τυχόν δευτερεύοντα μηνύματα που παράγει η netcat σε κάθε πέρασμα του βρόχου. Επίσης έχε κατά νου ότι η ifconfig σε πολλά συστήματα θέλει αυξημένα προνόμια. nske, στο bsd πρέπει να υπάρχει η παράμετρος -k για να περιμένει ο server. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Πράγματι, στο freebsd έχει 3 netcat: αυτή του συστήματος και τις net/netcat και net/gnetcat των ports. Η netcat του συστήματος έχει και -k και μερικές ακόμη επιλογές που δεν έχουν οι άλλες. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 nske, πως σκοτώνεις μία nc που είναι στο background και την σηκώνει συνεχώς η while; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Αν σκοτώσεις το αρχικό process στο οποίο τρέχει η while (το οποίο στα processes θα φαίνεται ότι είναι ένα shell γιατί η while είναι builtin στο shell) θα σκοτωθούν τα πάντα. Ένας άλλος τρόπος είναι να κάνεις "kill %1" (αν είναι το πρώτο background job). Όχι ακριβώς σχετικό με το θέμα, αλλά εδώ εξηγεί πολύ ωραία μερικά ενδιαφέροντα specifics ο Κεραμίδας. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
sarakinos Δημοσ. 14 Δεκεμβρίου 2009 Μέλος Share Δημοσ. 14 Δεκεμβρίου 2009 αν βάλω το -c στην netcat -vv -c 192.168.2.2 4444 βγάζει no ports to connect to .. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Ποια netcat έχεις; Λογικά θα γράφει την έκδοση με: --version ή -V ή --help Εγώ το δοκίμασα σε GNU netcat 0.7.1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
sarakinos Δημοσ. 14 Δεκεμβρίου 2009 Μέλος Share Δημοσ. 14 Δεκεμβρίου 2009 1.10-38 -c shell commands as `-e'; use /bin/sh to exec [dangerous!!] Αυτό λέει για την παράμετρο -c ---------- Το μήνυμα προστέθηκε στις 17:01 ---------- Πο παιδιά έχω πελαγώσει... δεν μπορώ να καταλάβω πως θα τρέχω και server και client σε ένα μηχάνημα , αλλά θα καταλαβαίνει ποτε θα γράψω ή ποτε θα πάρω , για να μεταβαίνει στην αντίστοιχη κατάσταση Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Όπως είπα και πιο πάνω, έχω 3 netcat εγκατεστημένες στο σύστημα, αλλά καμία από αυτές δεν είναι αυτή που έχεις! Στη δική σου netcat η παράμετρος -c κάνει κάτι εντελώς διαφορετικό από ότι στη gnu netcat. Τι λειτουργικό - διανομή χρησιμοποιείς και από πού την εγκατέστησες; δεν μπορώ να καταλάβω πως θα τρέχω και server και client σε ένα μηχάνημα , αλλά θα καταλαβαίνει ποτε θα γράψω ή ποτε θα πάρω , για να μεταβαίνει στην αντίστοιχη κατάσταση Σε κάθε μηχάνημα, το script θα τρέχει μία loop για τη netcat - server στο background job και μία loop για τη netcat - client στο Foreground. Το background job γράφει κανονικά στο terminal, αλλά δεν δεσμεύει την είσοδο, αυτό το κάνει το foreground process. Δεν υπάρχει τίποτα πολύπλοκο, καμία μετάβαση, και τα δύο τρέχουν παράλληλα και κάνει καθένα τη δουλειά του. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
sarakinos Δημοσ. 14 Δεκεμβρίου 2009 Μέλος Share Δημοσ. 14 Δεκεμβρίου 2009 Ναι αλλά όταν το κάνω αυτό , έχω και στα δύο μηχανήματα το client στο foreground ,οποτε ότι πληκτρολογώ πάει στο client και όχι στο server για να σταλεί έπειτα.. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 14 Δεκεμβρίου 2009 Share Δημοσ. 14 Δεκεμβρίου 2009 Ο server είναι μόνο για να παραλαμβάνει ό,τι του στέλνει ο client του άλλου άκρου και να το τυπώνει. Δε χρειάζεται να λαμβάνει οτιδήποτε από το πληκτρλόγιο, αυτό το κάνει ο client. Γι αυτό μπορεί να είναι πάντα στο background, και ο client να είναι πάντα στο foreground. Θυμίζω ότι "Client" και "Server" δεν είναι ρόλοι των μηχανημάτων, κάθε μηχάνημα είναι και Server και Client! Δηλαδή κάθε μηχάνημα θα τρέχει διαρκώς στο background ένα netcat που κάνει listen και στο foreground ένα άλλο που θα κάνει connect στο απέναντι. Εκτός και αν πρόκειται τελικά να κάνεις μονόδρομη την επικοινωνία. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.