netcat უტილიტის გამოყენების შესაძლებლობებისა და ძირითადი ტექნიკის მიმოხილვა. Linux Netcat ბრძანებებში netcat უტილიტის გამოყენების სასარგებლო მაგალითები

სატესტო HTML გვერდის ჩვენება კლიენტისთვის ჩვეულებრივი ბრაუზერის მქონე ერთი ბრძანებით (პორტი 8080):
(echo -e "HTTP / 1.1 200 OK \ nContent-Type: text / html \ n \ n Hello World";) | nc -vv -l -p 8080
ფაილის გადაცემა კლიენტზე ჩვეულებრივი ბრაუზერით ერთი ბრძანებით (პორტი 8080):
(echo -e "HTTP / 1.1 200 \ nContent-Disposition: attachment; ფაილის სახელი = target-name-which-the-client-will-see \ nContent-Type: application / octet-stream \ nკავშირი: დახურვა \ n"; კატა ფაილის სახელი- დისკზე) | nc -vv -l -p 8080

როგორ გამოვიყენოთ nc?

(http://handynotes.ru/2010/01/unix-utility-netcat.html )

დავიწყოთ რამდენიმე მარტივი მაგალითით და გამოვიყენოთ ისინი, როგორც ძირითადი.
თუ გახსოვთ, ვთქვი, რომ ნეტკატი შვეიცარიული სამხედრო დანაა. როგორი იქნებოდა ეს დანა, თუ არ შეიძლებოდა მისი გამოყენება ჩვეულებრივი დანავით? ამიტომ netcat შეიძლება გამოყენებულ იქნას ჩვეულებრივი telnet-ის ნაცვლად:

$ nc www.google.com 80

სინამდვილეში, ის უფრო მოსახერხებელია, ვიდრე ჩვეულებრივი ტელნეტი, რადგან თქვენ შეგიძლიათ ნებისმიერ დროს დაასრულოთ კავშირი Ctrl + C დაჭერით და ის განიხილავს ორობით მონაცემებს, როგორც ჩვეულებრივ (არ გაქცევის თანმიმდევრობა, არაფერი).
თქვენ შეგიძლიათ დაამატოთ -v პარამეტრი მოქმედებების შედეგების უფრო დეტალური გამოსავლისთვის და პარამეტრი (-vv), რათა მიიღოთ სტატისტიკა იმის შესახებ, თუ რამდენი ბაიტი გადავიდა მიმდინარე კავშირის სესიაზე.
Netcat შეიძლება გამოყენებულ იქნას როგორც სერვერი. თუ გაუშვით, როგორც ქვემოთ, ის მოუსმენს პორტს 12345 (ყველა ინტერფეისზე):

$ nc -l -p 12345

ახლა თუ დაუკავშირდებით ამ ჰოსტის პორტს 12345, ყველაფერი, რასაც აკრიფებთ, გადაეცემა დისტანციურ მხარეს, რაც გვეუბნება, რომ netcat შეიძლება გამოყენებულ იქნას როგორც ჩატის სერვერი. გაუშვით ერთ-ერთ კომპიუტერზე:

# კომპიუტერზე A IP 10.10.10.10
$ nc -l -p 12345

და დაუკავშირდით მას სხვაგან:

# კომპიუტერზე B
$ nc 10.10.10.10 12345

ახლა ორივე მხარეს შეუძლია საუბარი!
საუბრის ეს მეთოდი, სადაც ორივე მხარეს შეუძლია ერთმანეთთან საუბარი, შესაძლებელს ხდის nc-ის გამოყენებას ქსელის I/O-სთვის! მაგალითად, თქვენ შეგიძლიათ გაგზავნოთ მთელი დირექტორია ერთი კომპიუტერიდან მეორეზე, პირველ კომპიუტერზე nc-ის მეშვეობით tar მილსადენის დაყენებით, ხოლო მეორეზე გამომავალი სხვა tar პროცესზე გადამისამართებით.
დავუშვათ, გსურთ გადაიტანოთ ფაილები A კომპიუტერის / მონაცემთა დირექტორიადან IP 192.168.1.10-ით B კომპიუტერზე (ნებისმიერი IP-ით). Ეს მარტივია:


$ tar -cf - / მონაცემები | nc -l -p 6666


# კომპიუტერზე B
$ nc 192.168.1.10 6666 | tar -xf -

არ დაგავიწყდეთ მილსადენის გაერთიანება Pipe Viewer-თან, რომელიც აღწერილი იყო წინა სტატიაში, რათა ნახოთ სტატისტიკა, თუ რამდენად სწრაფად მიმდინარეობს გადაცემა!
ერთი ფაილის გაგზავნა შესაძლებელია უფრო მარტივი გზით:

# კომპიუტერზე A IP 192.168.1.10
$ cat ფაილი | nc -l -p 6666


# კომპიუტერზე B
$ nc 192.168.1.10 6666> ფაილი

თქვენ კი შეგიძლიათ დააკოპიროთ და აღადგინოთ მთელი დისკი nc-ის გამოყენებით:

# კომპიუტერზე A IP 192.168.1.10
$ cat / dev / hdb | nc -l -p 6666


# კომპიუტერზე B
$ nc 192.168.1.10 6666> / dev / hdb

შენიშვნა: -l ოფციის გამოყენება არ შეიძლება -p-თან ერთად Mac კომპიუტერებზე! გამოსავალი არის უბრალოდ ჩანაცვლება “-l -p 6666? მდე “-l 6666 ?. როგორც აქ:

# now nc უსმენს 6666 პორტს Mac კომპიუტერებისთვის
$ nc -l 6666

netcat-ის იშვიათი გამოყენებაა პორტის სკანირება. Netcat არ არის საუკეთესო ინსტრუმენტი ამ სამუშაოსთვის, მაგრამ ის აკეთებს ამას (საუკეთესო, რა თქმა უნდა, nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000
(უცნობი) 445 (microsoft-ds) ღია
(უცნობი) 139 (netbios-ssn) გახსნილია
(უცნობი) 111 (sunrpc) გახსნილია
(უცნობი) 80 (www) გახსნილია
(უცნობი) 25 (smtp): კავშირის დრო ამოიწურა
(უცნობი) 22 (ssh) გახსნილია

-n ოფცია ხელს უშლის DNS ძიებას, -z არ ელოდება პასუხს სერვერისგან და -w 1? აყენებს კავშირის ვადას 1 წამზე.
ნეტკატის, როგორც პროქსის, კიდევ ერთი არატრივიალური გამოყენება. შესაძლებელია როგორც პორტის, ასევე ჰოსტის გადაგზავნა. შეხედეთ ამ მაგალითს:

$ nc -l -p 12345 | nc www.google.com 80

ეს ბრძანება იწყებს nc-ს პორტ 1234-ზე და გადამისამართებს ყველა კავშირს google.com:80-ზე. თუ ახლა დაუკავშირდებით ამ კომპიუტერს პორტ 12345-ზე და გააკეთებთ მოთხოვნას, აღმოაჩენთ, რომ სანაცვლოდ არ იღებთ მონაცემებს. ეს სწორია, რადგან ჩვენ არ დაგვიყენებია ორმხრივი არხი. თუ დაამატებთ მეორე არხს, თქვენ მიიღებთ თქვენს მონაცემებს სხვა პორტზე:

$ nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346

12345 პორტზე მოთხოვნის გაგზავნის შემდეგ, მიიღეთ თქვენი პასუხის მონაცემები პორტზე 12346.
netcat-ის, ალბათ, ყველაზე მძლავრი ფუნქცია არის სერვერის სახით ნებისმიერი პროცესის გაშვება:

$ nc -l -p 12345 -e / bin / bash

-e ოფცია გავლენას ახდენს ქსელის სოკეტზე გადამისამართებული შეყვანისა და გამომავლის შესრულებაზე. ახლა, თუ თქვენ დაუკავშირდებით ჰოსტს პორტზე 12345, შეგიძლიათ გამოიყენოთ bash:
$ nc ლოკალჰოსტი 12345
ls -las
სულ 4288
4 drwxr-xr-x 15 pkrumins მომხმარებლებს 4096 2009-02-17 07:47.
4 drwxr-xr-x 4 pkrumins მომხმარებლები 4096 2009-01-18 21:22 ..
8 -rw ——- 1 pkrumins users 8192 2009-02-16 19:30 .bash_history
4 -rw-r — r— 1 pkrumins users 220 2009-01-18 21:04 .bash_logout

(http://execbit.ru/2011/05/23/netcat/)
1 ფაილების გადაცემა (პირველ ბრძანებას ვასრულებთ მიმღებ მანქანაზე, მეორეს გადამცემზე:

$ nc -l 31334> ფაილის სახელი $ nc 172.16.69.143 31334< filename

$ nc -f / var / ჟურნალი / შეტყობინებები | nc -l 31334 $ nc 172.16.69.143 31334

3 გამოიყენეთ ტელნეტის ნაცვლად (პირველი არის ტელნეტ სერვერი, მეორე არის კლიენტი):

$ nc -l -p 31334 -e / bin / sh $ nc 172.16.69.143 31334

4 ღია პორტების სკანირება:

$ nc -z execbit.ru 1-1024

5 თითის ანაბეჭდის სერვისი ბანერებზე დაფუძნებული:

$ echo "QUIT" | nc execbit.ru 1-1024

6 საპირისპირო გარსის ორგანიზება (პირველი არის კლიენტი, მეორე არის სერვერი, მაგრამ გარსი გაიხსნება სერვერიდან კლიენტამდე).

Linux-ის თითქმის ყველა დისტრიბუციას აქვს მცირე, შეუმჩნეველი უტილიტა. ნეტკატი, ან უბრალოდ nc... ამ პროგრამას შეუძლია შექმნას TCP სოკეტები სერვერის რეჟიმში, რათა დაელოდო კავშირს, ან კლიენტის რეჟიმში სერვერთან დასაკავშირებლად. და სიმართლე გითხრათ, netcat-ისთვის საერთოდ არ აქვს მნიშვნელობა სერვერად აპირებთ მის გამოყენებას თუ კლიენტად - მისი საქმეა მხოლოდ stdin-იდან მონაცემების შეგროვება და მითითებულ ქსელის მისამართზე გადატანა.

netcat-ის გამოყენების უმარტივესი მაგალითია კლიენტ-სერვერის ჩატის შექმნა. მიუხედავად იმისა, რომ ეს არის ძალიან პრიმიტიული გზა ჩატის შესაქმნელად, ის ნათლად აჩვენებს, თუ როგორ მუშაობს ეს პროგრამა. შემდეგ მაგალითებში ვივარაუდებთ, რომ მოწყობილობას, რომელიც ქმნის ლოდინის სოკეტს (სერვერს) აქვს IP მისამართი 192.168.0.1. მოდით შევქმნათ ჩატის სერვერი, რომელიც მოუსმენს კავშირებს TCP პორტზე 3333:

$ nc -l 3333

ახლა ჩვენ შეგვიძლია დავუკავშირდეთ ამ სერვერს სხვა კომპიუტერიდან:

$ nc 192.168.0.1 3333

ამ შემთხვევაში, კლავიატურა მოქმედებს როგორც stdin. სერვერის კლავიატურაზე აკრეფილი ყველაფერი გადაეცემა კლიენტის ტერმინალში და პირიქით.

ფაილის გადაცემა

ზუსტად ანალოგიურად, შეგიძლიათ გამოიყენოთ netcat ფაილების გადასატანად ორ კომპიუტერს შორის. შემდეგი ბრძანების გამოყენებით, შეგიძლიათ შექმნათ სერვერი, რომელიც ამზადებს ფაილს გადასატანად:

შეგიძლიათ მიიღოთ backup.iso ფაილი სხვა კომპიუტერზე შემდეგნაირად:

$ nc 192.168.0.1 3333> backup.iso

როგორც ხედავთ, netcat არ აჩვენებს ინფორმაციას გადაცემის პროცესის შესახებ. ეს შეიძლება საკმაოდ მოუხერხებელი იყოს დიდ ფაილებთან მუშაობისას. ამ პრობლემის გადასაჭრელად შეგიძლიათ გამოიყენოთ კომუნალური პროგრამა (პროგრესის მაყურებელი). ამ მაგალითში, სერვერის მხარეს, რეალურ დროში გამოჩნდება ინფორმაცია გადაცემული მონაცემების სიჩქარისა და მოცულობის შესახებ:

$ cat backup.iso | pv -b | nc -l 3333

ანალოგიურად, შეგიძლიათ აჩვენოთ სტატისტიკა კლიენტის მხრიდან:

$ nc 192.168.0.1 3333 | pv -b> სარეზერვო.iso

მეტი მაგალითები

netcat უტილიტა ასევე გამოდგება მყარი დისკის დანაყოფის გამოსახულების შესაქმნელად, დისტანციურ სერვერზე გაგზავნის შესაძლებლობით:

$ dd თუ = / dev / hdb5 | gzip -9 | nc -l 3333

და დისტანციურ მანქანაზე შეგიძლიათ მიიღოთ შექმნილი სურათი შემდეგნაირად:

$ nc 192.168.0.1 3333 | pv -b> myhdb5partition.img.gz

თუ თქვენ გჭირდებათ ფაილების ჯგუფის გაგზავნა - მაგალითად, კონფიგურაციის ფაილების ნაკრები - შეგიძლიათ დააკავშიროთ netcat და tar არქივი:

$ tar -czf - / etc / | nc -l 3333

დეფისი, როგორც ფაილის სახელი tar პარამეტრებში აუცილებელია, რათა გამოვიდეს არქივერის გამოსავალი stdin-ზე, რომელიც შემდეგ გადამისამართდება netcat-ზე. თქვენ შეგიძლიათ მიიღოთ შექმნილი სარეზერვო ასლი დისტანციურ მანქანაზე ისევე, როგორც ადრე იყო აღწერილი:

$ nc 192.168.0.1 3333 | pv -b> mybackup.tar.gz

უსაფრთხოება

ცხადია, როდესაც netcat გამოიყენება ამ გზით, ინფორმაცია გადაიცემა ქსელში თავდაპირველი დაშიფრული ფორმით. არაკრიტიკული მონაცემების გადაცემისთვის ეს სავსებით მისაღებია, მაგრამ ნებისმიერი ღირებული ინფორმაციის გადაცემისას მიზანშეწონილია გამოიყენოთ netcat SSH გვირაბთან ერთად.

SSH გვირაბის გამოყენებას ორი უპირატესობა აქვს:

  1. ინფორმაცია გადაცემულია დაშიფრული გვირაბში, ამიტომ ის კარგად არის დაცული;
  2. სერვერს არ სჭირდება დამატებითი პორტების გახსნა firewall-ის კონფიგურაციაში, რადგან კავშირი დამყარდება SSH-ის საშუალებით.

სერვერის მხარეს, ფაილი netcat-ში ვლინდება ისე, როგორც ადრე იყო აღწერილი:

$ cat backup.iso | nc -l 3333

კლიენტის მხრიდან, ჩვენ ვუკავშირდებით მომლოდინე netcat სოკეტს SSH გვირაბის მეშვეობით:

$ ssh -f -L 23333: 127.0.0.1: 3333 [ელფოსტა დაცულია]ძილი 10; \ nc 127.0.0.1 23333 | pv -b> სარეზერვო.iso

ნათელია, რომ არსებობს სხვა გზები SSH გვირაბში კავშირის დასაყენებლად, მაგრამ ამ გზით გვირაბის შექმნასა და გამოყენებას აქვს ის სასარგებლო თვისება, რომ გვირაბი ავტომატურად იხურება, როდესაც ნეტკატის საშუალებით მონაცემთა გადაცემა დასრულდება.

... და პორტატული პორტის სკანერი

გასაოცარია, რომ netcat კვლავ შეიძლება გამოყენებულ იქნას ღია პორტების სკანირებისთვის. -z პარამეტრი დაგეხმარებათ ამაში:

$ nc -z 192.168.0.1 80-90 192.168.0.1 80 პორტთან დაკავშირება წარმატებით დასრულდა!

ამ მაგალითში, netcat-მა დაასკანირა პორტის დიაპაზონი 80-90 და განაცხადა, რომ პორტი 80 ღია იყო დისტანციურ მოწყობილობაზე.

კაცის გვერდები netcat-ისთვის ასევე შეიცავს უამრავ სხვა სასარგებლო რჩევას და საინტერესო მაგალითებს პროგრამის გამოყენების შესახებ.

ამ სტატიაში მე გადავხედავ პოპულარულ netcat ქსელის პროგრამას და რამდენიმე სასარგებლო ხრიკს მასთან მუშაობისთვის.


Netcat არის Unix პროგრამა, რომელიც საშუალებას გაძლევთ დაამყაროთ TCP და UDP კავშირები, მიიღოთ მონაცემები იქიდან და გადასცეთ ისინი. მიუხედავად მისი სარგებლობისა და სიმარტივისა, ბევრმა არ იცის როგორ გამოიყენოს იგი და დაუმსახურებლად გვერდს უვლის.


ამ პროგრამის გამოყენებით, შეგიძლიათ შეასრულოთ შეღწევადობის ტესტირების რამდენიმე ნაბიჯი. ეს შეიძლება იყოს სასარგებლო, როდესაც არ არის დაინსტალირებული პაკეტები (ან მიიპყრობს ყურადღებას) თავდასხმულ მანქანაზე, არის შეზღუდვები (მაგალითად, IoT / ჩაშენებული მოწყობილობები) და ა.შ.


რა შეიძლება გაკეთდეს netcat-ით:

  • პორტების სკანირება;
  • Პორტის გადამისამართება;
  • სერვის ბანერების შეგროვება;
  • მოსმენის პორტი (დაკავშირება საპირისპირო კავშირისთვის);
  • ფაილების ჩამოტვირთვა და ატვირთვა;
  • ნედლი HTTP შინაარსის გამოტანა;
  • შექმენით მინი ჩატი.

ზოგადად, netcat-ის დახმარებით შეგიძლიათ შეცვალოთ ზოგიერთი unix უტილიტა, ამიტომ ეს ინსტრუმენტი შეიძლება ჩაითვალოს ერთგვარ მოსავალს გარკვეული ამოცანების შესასრულებლად.

პრაქტიკული მაგალითები

ხშირ შემთხვევაში, თუ საჭიროა კონკრეტული ჰოსტის შემოწმება, გამოიყენება ტელნეტი, ან მათი საკუთარი სერვისები გამოიყენება ჰოსტის ან ბანერის იდენტიფიცირებისთვის. როგორ დაგვეხმარება netcat:

ღია TCP პორტის 12345 შემოწმება

$ nc -vn 192.168.1.100 12345
nc: დაკავშირება 192.168.1.100 12345 (tcp) ვერ მოხერხდა: დაკავშირება უარყოფილია

$ nc -v 192.168.1.100 22
192.168.1.100 22 პორტთან დაკავშირება წარმატებით დასრულდა!
SSH-2.0-OpenSSH

TCP პორტების სკანირება netcat-ით:

$ nc -vnz 192.168.1.100 20-24

ასეთი სკანირებით, არ იქნება კავშირი პორტთან, მაგრამ მხოლოდ წარმატებული კავშირის გამომავალი იქნება:


nc: Connectx 192.168.1.100 პორტ 20 (tcp) ვერ მოხერხდა: დაკავშირება უარყოფილია
nc: დაკავშირება 192.168.1.100 პორტ 21-ზე (tcp) ვერ მოხერხდა: დაკავშირება უარყოფილია
ნაპოვნია 0 ასოციაცია
ნაპოვნია 1 კავშირი:
1: დროშები = 82
outif en0
src 192.168.1.100 პორტი 50168
dst 192.168.1.100 პორტი 22
რანგის ინფორმაცია მიუწვდომელია
ხელმისაწვდომია TCP aux ინფორმაცია
192.168.1.100 პორტ 22-თან დაკავშირება წარმატებით დასრულდა!
nc: დაკავშირება 192.168.1.100 პორტი 23 (tcp) ვერ მოხერხდა: დაკავშირება უარყოფილია
nc: დაკავშირება 192.168.1.100 პორტი 24 (tcp) ვერ მოხერხდა: დაკავშირება უარყოფილია

UDP პორტების სკანირება.

UDP პორტების nmap-ით სკანირებისთვის საჭიროა root პრივილეგიები. თუ ისინი იქ არ არიან, ამ შემთხვევაში netcat utility ასევე დაგვეხმარება:


$ nc -vnzu 192.168.1.100 5550-5560
192.168.1.100 პორტ 5555-თან დაკავშირება წარმატებით დასრულდა!

UDP პაკეტის გაგზავნა

$ echo -n "foo" | nc -u -w1 192.168.1.100 161

ეს შეიძლება სასარგებლო იყოს ქსელურ მოწყობილობებთან ურთიერთობისას.

UDP პორტზე მონაცემების მიღება და მიღებული მონაცემების გამოტანა

$ nc -u localhost 7777

პირველი შეტყობინების შემდეგ, გამომავალი შეჩერდება. თუ თქვენ გჭირდებათ რამდენიმე შეტყობინების მიღება, მაშინ უნდა გამოიყენოთ სანამ true:


$ ხოლო მართალია; გააკეთეთ nc -u localhost 7777; შესრულებულია

ფაილის გადაცემა. netcat-ით შეგიძლიათ მიიღოთ ფაილები და გადაიტანოთ დისტანციურ ჰოსტზე:


nc 192.168.1.100 5555< 1.txt
nc -lvp 5555> /tmp/1.txt

Netcact, როგორც უმარტივესი ვებ სერვერი.

Netcat-ს შეუძლია იმოქმედოს როგორც მარტივი ვებ სერვერი html გვერდების ჩვენებისთვის.


$ ხოლო მართალია; გააკეთე nc -lp 8888< index.html; done

ბრაუზერის გამოყენებით: http: // netcat ჰოსტი: 8888 / index.html. სტანდარტული ვებ სერვერის პორტის 80-ის გამოსაყენებლად, თქვენ უნდა გაუშვათ nc root პრივილეგიებით:


$ ხოლო მართალია; do sudo nc -lp 80< test.html; done

ჩატი კვანძებს შორის

პირველ კვანძზე (192.168.1.100):


$ nc-lp 9000

მეორე კვანძზე:


$ nc 192.168.1.100 9000

ბრძანებების შესრულების შემდეგ, ნებისმიერი კვანძის ტერმინალის ფანჯარაში შეყვანილი ყველა სიმბოლო გამოჩნდება სხვა კვანძის ტერმინალის ფანჯარაში.

საპირისპირო ჭურვი

netcat-ის გამოყენებით შეგიძლიათ მოაწყოთ მოსახერხებელი საპირისპირო გარსი:


nc -e / bin / bash -lp 4444

ახლა შეგიძლიათ დაკავშირება დისტანციური ჰოსტიდან:


$ nc 192.168.1.100 4444

არ დანებდეთ, თუ არ არსებობს გარკვეული ხელსაწყოები, ხშირად საკმაოდ შრომატევადი, ზოგჯერ პრობლემის მოგვარება შესაძლებელია იმპროვიზირებული საშუალებებით.

გზების დიზაინის დეპარტამენტი

ლაბორატორიული სამუშაო No1

კურსზე "ინფორმატიკა"

დაასრულა 114359 ჯგუფის სტუდენტმა რაიხმან სერგეი იურიევიჩმა

შემოწმებული

ლაბორატორიული სამუშაო No1

თემა: Norton Commander Utility

სამიზნე:ისწავლეთ თქვენი კომპიუტერის მართვა Norton Commander-ის გამოყენებით

Norton Commander გაძლევთ საშუალებას შეასრულოთ შემდეგი ფუნქციები: 1) შეასრულოთ MS-DOS ფუნქციები, 2) აჩვენოთ დირექტორიების შინაარსი დისკზე, 3) აჩვენოთ დირექტორია ხის დისკზე, 4) ფაილების ნახვა, 5) ტექსტური ფაილების რედაქტირება, 6 ) კოპირება, გადატანა, გადარქმევა, ფაილების წაშლა, 7) ფაილის ატრიბუტების შეცვლა.

გაშვება ნორტონის მეთაური

Norton Commander-ის დასაწყებად, ბრძანების სტრიქონზე აკრიფეთ "nc" და დააჭირეთ "Enter". გადით Norton Commander - F10 ან Alt + X

ეკრანისა და პანელის ხედები

Norton Commander-ის გაშვების შემდეგ ეკრანზე ჩნდება ორი მართკუთხა ფანჯარა (პანელი).


ამ პანელების ქვემოთ არის MS-DOS მოთხოვნა და საინფორმაციო ხაზი ფუნქციის ღილაკების მნიშვნელობებით.

F1 HELP - მოკლე ინფორმაცია NC-თან მუშაობისას გასაღებების მინიჭების შესახებ.

F2 MENU - მორგებული მენიუ

F3 VIEW - ტექსტური ფაილის, დოკუმენტის ნახვა

F4 EDIT - ტექსტური ფაილის რედაქტირება

F5 COPY - ფაილების კოპირება

F6 RENMOV - ფაილის გადაცემა, სახელის გადარქმევა

F7 MKDIR - შექმენით დირექტორია (ქვედირექტორიები)

F8 DELETE - წაშალეთ ფაილები ან ქვედირექტორიები

F9 PULL DN - ეკრანის ზედა ხაზი აჩვენებს მენიუს, რომელიც შეიცავს NC ოპერაციულ რეჟიმებს.

F10 QUIT - გასვლა NC-დან

მენიუ ღილაკის დაჭერით F9

მარცხენა და მარჯვენა - დააყენეთ ინფორმაციის გამოტანის რეჟიმები მარცხენა და მარჯვენა პანელებზე

ფაილები - ფაილებით ხორციელდება სხვადასხვა ოპერაციები

ბრძანებები - შესრულებულია სხვადასხვა NC ბრძანებები, დაყენებულია NC კონფიგურაცია და მუშაობის რეჟიმები.

მენიუს ერთ-ერთი ელემენტი მონიშნულია, სხვა ელემენტის შესარჩევად გამოიყენეთ ისრები<¬>, <­>, <®>, <¯>და დააჭირეთ ღილაკს "Enter".

ფაილების შერჩევა

ფაილების კოპირებისთვის, წასაშლელად, გადასატანად, აირჩიეთ ისინი Ins ღილაკის დაჭერით. არჩევანის გასაუქმებლად, კვლავ დააჭირეთ "Ins". პანელის ბოლოში გამოჩნდება ინფორმაცია არჩეული ფაილების რაოდენობის შესახებ.

დირექტორიას შექმნა

დირექტორიის შესაქმნელად დააჭირეთ ღილაკს "F7", ჩაწერეთ მისი სახელი და დააჭირეთ "Enter".

დირექტორიაში შესასვლელად დააჭირეთ ღილაკს "Enter" მის სახელზე. როდესაც დააჭირეთ "ALT + F10" კლავიშებს, ეკრანზე გამოჩნდება დირექტორია ხე. კურსორის ღილაკების გამოყენებით შეგიძლიათ სწრაფად გადახვიდეთ სასურველ ქვედირექტორიაში.

ძირითადი გასაღებები NC

TAB - სხვა პანელზე გადასვლა

ALT + F1 - ნაჩვენებია სხვა დისკის სარჩევის მარცხენა პანელში.

ALT + F2 - ჩვენება სხვა დისკის სარჩევის მარჯვენა პანელში

CTRL + F1 - მარცხენა პანელის დამალვა ეკრანიდან

CTRL + F2 - დამალეთ მარჯვენა პანელი ეკრანიდან

CTRL + O - ამოიღეთ ორივე პანელი

CTRL + U - პანელების შეცვლა

კომპიუტერის დასაწყებად, თქვენ უნდა აკრიფოთ „LOGIN“ მოთხოვნაზე, შეიყვანოთ პაროლი (335_2).

ლაბორატორიული დავალებები

ბრძანებების გამოყენებით შექმენით დისკზე ქვედირექტორიის სტრუქტურა:


nc [-46bCDdhklnrStUuvZz] [-I სიგრძე] [-მე ინტერვალი] [-ო სიგრძე] [-პ პროქსი_მომხმარებლის სახელი] [-გვ წყარო_პორტი] [-ქ წამი] [-ს წყარო] [-ტ საკვანძო სიტყვა] [-ვ რტაბელა] [-ვ დროის ამოწურვა] [-X პროქსი_პროტოკოლი] [-x პროქსი_მისამართი[:პორტი]] [დანიშნულების ადგილი] [პორტი]

Პარამეტრები

-4 ძალები ncმხოლოდ IPv4 მისამართების გამოყენება.
-6 ძალები ncმხოლოდ IPv6 მისამართების გამოსაყენებლად.
-ბ მაუწყებლობის დაშვება.
-C გაგზავნა როგორც ხაზის დასასრული.
-დ ჩართეთ გამართვა სოკეტზე.
-დ არ შეეცადოთ წაიკითხოთ stdin-იდან.
-თ ბეჭდავს nc დახმარებას.
-ᲛᲔ სიგრძე განსაზღვრავს TCP მიღების ბუფერის ზომას.
-მე ინტერვალი განსაზღვრავს დაგვიანების დროის ინტერვალს გაგზავნილ და მიღებულ ტექსტს შორის. ასევე, იწვევს შეფერხების დროს მრავალ პორტთან კავშირებს შორის.
-კ ძალები ncრომ დარჩეს სხვა კავშირის მოსმენა მისი მიმდინარე კავშირის დასრულების შემდეგ. შეცდომაა ამ პარამეტრის გარეშე გამოყენება -ლვარიანტი.
-ლ გამოიყენება ამის დასაზუსტებლად ncუნდა მოუსმინოს შემომავალ კავშირს, ვიდრე დაიწყოს კავშირი დისტანციურ ჰოსტთან. შეცდომაა ამ პარამეტრის გამოყენებასთან ერთად -გვ, -ს, ან -ზპარამეტრები. გარდა ამისა, ნებისმიერი დროის ამოწურვა, რომელიც მითითებულია -ვვარიანტი იგნორირებულია.
-ნ არ გააკეთოთ რაიმე DNS ან სერვისის ძიება მითითებულ მისამართებზე, ჰოსტების სახელებზე ან პორტებზე.
-ო სიგრძე განსაზღვრავს TCP გაგზავნის ბუფერის ზომას.
-პ პროქსი_მომხმარებლის სახელი განსაზღვრავს მომხმარებლის სახელს პროქსი სერვერზე წარსადგენად, რომელიც საჭიროებს ავთენტიფიკაციას. თუ მომხმარებლის სახელი არ არის მითითებული, ავტორიზაცია არ განხორციელდება. პროქსის ავთენტიფიკაცია ამჟამად მხარდაჭერილია მხოლოდ HTTP CONNECT პროქსიებისთვის.
-გვ წყარო_პორტი განსაზღვრავს წყაროს პორტს nc უნდა გამოიყენოს, ექვემდებარება პრივილეგიების შეზღუდვებს და ხელმისაწვდომობას.
-ქ წამი stdin-ზე EOF-ის შემდეგ, დაელოდეთ წამების მითითებულ რაოდენობას და შემდეგ დატოვეთ. თუ წამები უარყოფითია, დაელოდეთ სამუდამოდ.
-რ განსაზღვრავს, რომ წყაროს ან დანიშნულების პორტები უნდა იყოს არჩეული შემთხვევით, ნაცვლად რიგითი დიაპაზონის ფარგლებში ან იმ თანმიმდევრობით, რომელსაც სისტემა ანიჭებს მათ.
-ს რთავს RFC 2385 TCP MD5 ხელმოწერის ვარიანტს.
-ს წყარო განსაზღვრავს ინტერფეისს, რომელიც გამოიყენება პაკეტების გასაგზავნად. UNIX დომენის დატაგრამის სოკეტებისთვის, განსაზღვრავს ლოკალურ დროებით სოკეტის ფაილს, რომელიც უნდა შეიქმნას და გამოიყენოს, რათა შესაძლებელი იყოს მონაცემთა გრამების მიღება. შეცდომაა ამ პარამეტრის გამოყენებასთან ერთად -ლვარიანტი.
-თ საკვანძო სიტყვა შეცვალეთ IPv4 TOS მნიშვნელობა. საკვანძო სიტყვაშეიძლება იყოს ერთ-ერთი კრიტიკული, უკონტროლო, დაბალი ფასი, დაბალი დაგვიანებით, netcontrol, გამტარუნარიანობა, საიმედოობა, ან DiffServ კოდის ერთ-ერთი წერტილი: ეფ, af11 ... af43, cs0 ... cs7; ან რიცხვი ან თექვსმეტობით ან ათწილადში.
-ტ Მიზეზები ncგაგზავნეთ RFC 854 DON "T and WON" T პასუხები RFC 854 DO და WILL მოთხოვნებზე. ეს შესაძლებელს ხდის nc-ის გამოყენებას ტელნეტის სესიების დასაწერად.
-უ განსაზღვრავს UNIX დომენის სოკეტების გამოყენებას.
-უ გამოიყენეთ UDP TCP-ის ნაგულისხმევი ვარიანტის ნაცვლად. UNIX დომენის სოკეტებისთვის გამოიყენეთ დატაგრამის სოკეტი ნაკადის სოკეტის ნაცვლად. თუ UNIX-დომენის სოკეტი გამოიყენება, დროებითი მიმღები სოკეტი იქმნება / tmp-ში, თუ -სდროშა მოცემულია.
-ვ რტაბელა დააყენეთ გამოსაყენებელი მარშრუტიზაციის ცხრილი. ნაგულისხმევი არის 0.
-ვ აქვს ncმიეცით მეტი სიტყვიერი გამომავალი.
-ვ დროის ამოწურვა კავშირები, რომელთა დამყარება შეუძლებელია ან უმოქმედოა ლოდინის გასვლის შემდეგ. The -ვდროშა არ მოქმედებს -ლვარიანტი, ე.ი. nc სამუდამოდ მოუსმენს კავშირს, კავშირთან ერთად ან მის გარეშე -ვდროშა. ნაგულისხმევი დრო არ არის.
-X პროქსი_პროტოკოლი ითხოვს, რომ nc-მ გამოიყენოს მითითებული პროტოკოლი პროქსი სერვერთან საუბრისას. მხარდაჭერილი პროტოკოლები არის " 4 "(წინდები v.4)" 5 "(SOCKS v.5) და" დაკავშირება"(HTTPS პროქსი). თუ პროტოკოლი არ არის მითითებული, გამოიყენება SOCKS ვერსია 5.
-x პროქსი_მისამართი [: პორტი] ამას ითხოვს ncუნდა დაუკავშირდეს დანიშნულების ადგილს პროქსის გამოყენებით at პროქსი_მისამართიდა პორტი... თუ პორტიარ არის მითითებული, გამოყენებულია პროქსი პროტოკოლისთვის კარგად ცნობილი პორტი (1080 SOCKS-ისთვის, 3128 HTTPS-ისთვის).
-ზ DCCP რეჟიმი.
-ზ განსაზღვრავს, რომ nc უნდა სკანირებდეს მხოლოდ დემონების მოსასმენად, მათთვის მონაცემების გაგზავნის გარეშე. შეცდომაა ამ პარამეტრის გამოყენებასთან ერთად -ლვარიანტი.

დანიშნულების ადგილიშეიძლება იყოს რიცხვითი IP მისამართი ან სიმბოლური ჰოსტის სახელი (თუ არ არის -ნმოცემულია ვარიანტი). ზოგადად, დანიშნულება უნდა იყოს მითითებული, გარდა იმ შემთხვევისა -ლმოცემულია ვარიანტი (ამ შემთხვევაში გამოიყენება ლოკალური ჰოსტი). UNIX დომენის სოკეტებისთვის საჭიროა დანიშნულების ადგილი და არის სოკეტის გზა დასაკავშირებლად (ან მოსასმენად, თუ -ლმოცემულია ვარიანტი).

პორტი შეიძლება იყოს ერთი მთელი რიცხვი ან პორტების დიაპაზონი. დიაპაზონები ფორმაშია nn-მმ... ზოგადად, დანიშნულების პორტი უნდა იყოს მითითებული, გარდა იმ შემთხვევისა -უმოცემულია ვარიანტი.

კლიენტის/სერვერის მოდელი

საკმაოდ მარტივია კლიენტის/სერვერის მოდელის შექმნა nc... ერთ კონსოლზე დაიწყეთ ncკონკრეტული პორტის მოსმენა კავშირისთვის. Მაგალითად:

Nc -l 1234 წ

nc ახლა უსმენს პორტზე 1234 კავშირისთვის. მეორე კონსოლზე (ან მეორე აპარატზე) დაუკავშირდით მოწყობილობას და პორტს, რომლის მოსმენაც ხდება:

Nc 127.0.0.1 1234

ახლა უნდა იყოს კავშირი პორტებს შორის. ყველაფერი, რაც აკრეფილია მეორე კონსოლზე, მიერთდება პირველთან და პირიქით. კავშირის დამყარების შემდეგ, ncნამდვილად არ აინტერესებს რომელი მხარე გამოიყენება როგორც "სერვერი" და რომელი მხარე გამოიყენება როგორც "კლიენტი". კავშირი შეიძლება შეწყდეს EOF-ის გამოყენებით (' ^ დ’).

Აქ არ არის -გან -ევარიანტი თანამედროვე netcat-ში, მაგრამ თქვენ მაინც შეგიძლიათ შეასრულოთ ბრძანება კავშირის დამყარების შემდეგ ფაილის აღწერის გადამისამართებით. აქ ფრთხილად იყავით, რადგან პორტის გახსნა და ნებისმიერ დაკავშირებულს თქვენს საიტზე თვითნებური ბრძანების შესრულების უფლება სახიფათოა. თუ თქვენ ნამდვილად გჭირდებათ ამის გაკეთება, აქ არის მაგალითი:

"სერვერის" მხარეს:

Rm -f / tmp / f; mkfifo / tmp / f cat / tmp / f | / bin / შ -ი 2> & 1 | nc -l 127.0.0.1 1234> / tmp / f

"კლიენტის" მხრიდან:

Nc host.example.com 1234

(ჭურვის მოთხოვნა host.example.com-დან)

დაიწყეთ გამოყენებით ncკონკრეტულ პორტზე მოსასმენად, ფაილში ჩაწერილი გამომავალი:

Nc -l 1234> filename.out

მეორე აპარატის გამოყენებით, დაუკავშირდით მოსმენას ncდაამუშავეთ, მიაწოდეთ მას ფაილი, რომელიც გადასატანია:

Nc host.example.com 1234< filename.in

ფაილის გადაცემის შემდეგ, კავშირი ავტომატურად დაიხურება.

სერვერებთან საუბარი

ზოგჯერ სასარგებლოა სერვერებთან საუბარი "ხელით" და არა მომხმარებლის ინტერფეისის საშუალებით. მას შეუძლია დაეხმაროს პრობლემების მოგვარებაში, როდესაც შეიძლება საჭირო გახდეს იმის შემოწმება, თუ რა მონაცემებს აგზავნის სერვერი კლიენტის მიერ გაცემული ბრძანებების საპასუხოდ. მაგალითად, ვებსაიტის საწყისი გვერდის მისაღებად:

Printf "GET / HTTP / 1.0 \ r \ n \ r \ n" | nc host.example.com 80

გაითვალისწინეთ, რომ ეს ასევე აჩვენებს ვებ სერვერის მიერ გამოგზავნილ სათაურებს. მათი გაფილტვრა შესაძლებელია ისეთი ხელსაწყოს გამოყენებით, როგორიცაა სედ, თუ საჭიროა.

უფრო რთული მაგალითები შეიძლება შეიქმნას, როდესაც მომხმარებელმა იცის სერვერის მიერ მოთხოვნილი მოთხოვნების ფორმატი. როგორც სხვა მაგალითი, ელექტრონული ფოსტა შეიძლება გაიგზავნოს SMTP სერვერზე:

Nc [-C] ლოკალური მასპინძელი 25<< EOF HELO host.example.com MAIL FROM:< >RCPT მიმართა:< >DATA ელ. ფოსტის ტექსტი. ... შეწყვიტე EOF

პორტის სკანირება

შეიძლება სასარგებლო იყოს იმის ცოდნა, თუ რომელი პორტებია ღია და გაშვებული სერვისები სამიზნე მანქანაზე. The -ზდროშა შეიძლება გამოყენებულ იქნას სათქმელად ncშეატყობინეთ ღია პორტებს, ვიდრე კავშირის დაწყებას. ჩვეულებრივ, სასარგებლოა სიტყვიერი გამომავალი stderr-ზე ჩართვა ამ პარამეტრის გამოყენებით -ვვარიანტი.

Nc -zv host.example.com 20-30 დაკავშირება host.example.com 22 პორტთან წარმატებით დასრულდა! დაკავშირება host.example.com 25 პორტთან წარმატებით დასრულდა!

პორტის დიაპაზონი მითითებული იყო პორტებით ძიების შესაზღუდად 20 - 30 , და დასკანირებულია მზარდი შეკვეთით.

თქვენ ასევე შეგიძლიათ მიუთითოთ სკანირებისთვის განკუთვნილი პორტების სია, მაგალითად:

Nc -zv host.example.com 80 20 22 nc: დაკავშირება host.example.com 80 (tcp) ვერ მოხერხდა: დაკავშირება უარყოფილია nc: დაკავშირება host.example.com 20 (tcp) ვერ მოხერხდა: კავშირი უარყოფილია Host.example-თან დაკავშირება .com პორტი წარმატებით დასრულდა!

პორტები დასკანირებულია თქვენ მიერ მოცემული ბრძანებით.

ალტერნატიულად, შეიძლება სასარგებლო იყოს იმის ცოდნა, თუ რომელი სერვერის პროგრამა მუშაობს და რომელი ვერსიები. ეს ინფორმაცია ხშირად გვხვდება მისალოცი ბანერებში. მათი ამოსაღებად საჭიროა ჯერ კავშირის დამყარება, შემდეგ კი კავშირის გაწყვეტა ბანერის აღებისას. ეს შეიძლება განხორციელდეს მცირე დროის ამოწურვის მითითებით -ვდროშა, ან შესაძლოა სერვერზე "QUIT" ბრძანების გაცემით:

Echo "QUIT" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 პროტოკოლის შეუსაბამობა. 220 host.example.com IMS SMTP მიმღების ვერსია 0.84 Ready

მაგალითები

nc -p 31337 -w 5 host.example.com 42

ხსნის TCP კავშირს პორტთან 42 დან host.example.comპორტის გამოყენებით 31337 როგორც წყაროს პორტი, დროის ამოწურვით 5 წამი.

Nc -u host.example.com 53 nc -x10.2.3.4: 8080 -Xconnect -Pruser host.example.com 42

იგივე, რაც ზემოთ მოყვანილ მაგალითში, მაგრამ ამჯერად პროქსის ავტორიზაციის ჩართვა მომხმარებლის სახელით " რუზერი„თუ რწმუნებული ამას მოითხოვს.

დაკავშირებული ბრძანებები

ifconfig- ნახეთ ან შეცვალეთ ქსელის ინტერფეისების კონფიგურაცია.

გააზიარე ეს