Mundarija:

Python -da Netcat: 6 qadam
Python -da Netcat: 6 qadam

Video: Python -da Netcat: 6 qadam

Video: Python -da Netcat: 6 qadam
Video: PicoCTF Walkthru [6] - Nice Netcat 2024, Iyul
Anonim
Python -da Netcat
Python -da Netcat

Netcat nima? Netcat uchun qo'llanma sahifasida shunday deyilgan: "nc (yoki netcat) yordamchi dasturi quyosh ostida TCP, UDP yoki UNIX-domenli rozetkalarni o'z ichiga olgan deyarli hamma narsada ishlatiladi. U TCP ulanishlarini ochishi, UDP paketlarini yuborishi, o'zboshimchalik bilan tinglashi mumkin. TCP va UDP portlari, portlarni skanerlash va IPv4 va IPv6 bilan ishlash. Telnet (1) dan farqli o'laroq, nc skriptlari yaxshi, va xato xabarlarini standart chiqishga jo'natish o'rniga standart xatolarga ajratadi, telnet (1) ba'zi birlari kabi."

Aslida, netcat TCP yoki UDP protokoli yordamida boshqa serverlarga ulanish imkonini beradi. TCP uzatishni boshqarish protokoli bo'lib, ulanishga yo'naltirilgan. UDP Umumjahon Datagram protokoli degan ma'noni anglatadi va ulanishsiz. TCP odatda Internet -ilovalar uchun ishlatiladi, UDP esa ommaviy axborot uzatish yoki VPN -lar uchun ishlatiladi.

1 -qadam: Biz qanday boshlaymiz?

Biz qanday boshlaymiz?
Biz qanday boshlaymiz?

Yuqorida netcat qanday chaqiriladi. Ko'ryapsizmi, oxirida "manzil" va "port" deb nomlangan ikkita dalil bor. Belgilangan manzil biz ulanmoqchi bo'lgan server nomini yoki IP manzilini, port esa biz ulanmoqchi bo'lgan server portini bildiradi.

2 -qadam: Boshlaylik

Boshlaylik
Boshlaylik

Yuqorida boshlang'ich python kodi bor. Ko'rib turganingizdek, biz dasturning argumentlarini haqiqiy yordam dasturiga o'xshash tarzda qayta ishlashni xohlaymiz. Xost nomi bajariladigan fayl nomidan keyingi birinchi argument bo'ladi, port esa buyruq satrida bajariladigan fayl nomidan keyingi ikkinchi argument bo'ladi.

3 -qadam: Aloqa yaratish

Aloqa yaratish
Aloqa yaratish

Keling, biz foydalanishimiz mumkin bo'lgan netcat funktsiyasini yarataylik. Biz bu erda asosan qilayotgan ishimiz - rozetkani yaratish va berilgan parametrlar yordamida serverga ulanish. Netcat buyrug'i uchun joriy parametrlar biz ulanmoqchi bo'lgan server nomi va portidir. Soketda "socket. AF_INET" va "socket. SOCK_STREAM" parametrlari mavjud, chunki biz bu qo'llanmada TCP ulanishini o'rnatmaganmiz.

4 -qadam: Ba'zi kontentni yuborishga ruxsat bering

Ba'zi kontent yuborish
Ba'zi kontent yuborish

Biz netcat funktsiyasini uchinchi parametr - "tarkib" ni olish uchun kengaytirdik. Bu erda juda ko'p kontent bor, shuning uchun uni satr raqami bo'yicha ajratamiz.

14-16-qator: biz barcha kontentni rozetkaga yuboramiz, biroz kutamiz va keyin rozetkani har qanday chiquvchi ma'lumotga yopamiz, shunda rozetka boshqa ma'lumot kelmasligini biladi.

18-26-qator: biz server javobini saqlash uchun bufer yaratamiz va rozetka ma'lumotlarni qabul qilganda, o'qish uchun ma'lumotlar mavjud bo'lganda, natijaga 1024 baytgacha ma'lumotlarni qo'shamiz.

28-29 qator: biz netcat ulanishining bir martalik ulanish bo'lishini xohlaymiz, shuning uchun biz ulanishni yopiq deb e'lon qilamiz va keyin aloqani yopamiz.

31 -qator: Bu standart HTTP so'rovidir. Agar siz kodni "google.com" va "80" buyruq qatori argumentlari bilan ishlatsangiz, siz to'g'ri HTTP javobini ko'rasiz.

5 -qadam: Ochiq ulanishga ruxsat bering

Ochiq ulanishga ruxsat bering
Ochiq ulanishga ruxsat bering

Yuqoridagi kod (oldingi bo'lim kodidan pastda joylashgan) bizga soxta ochiq ulanish orqali bir nechta netcat buyruqlarini bajarishga imkon beradi. (Aslida, har safar siz buyruqni bajarganingizda, u yangi TCP ulanishini ochadi va yopadi, shuning uchun u netcat xatti -harakatlarini taqlid qilmaydi, biz buni faqat o'quv maqsadlarida qilamiz). Keling, bu qatorni satrlarga ajrataylik:

31 -qator: Biz "interaktivlikni" saqlab qolish uchun buyruqlarni cheksiz o'qishni xohlaymiz.

32 -qator: Bu bizning talabimiz mazmunini saqlaydigan buferimiz

36-45-qator: Biz bo'sh satr o'qilmaguncha buferga o'qiymiz

48 -qator: biz faqat netcat funktsiyasini xost nomi, port va yangi yaratilgan tarkib bilan chaqiramiz (bu to'g'ri kodlangan)

50 -satr: agar buferimiz tarkibida "Ulanish: Yopish" yozuvi bo'lsa (biz aloqani o'chirmoqchi ekanligimizni bildirsa), biz shunchaki ko'chadan chiqib ketamiz.

6 -qadam: Xulosa

Qo'llanma oxirida siz netcat -ning minimal ishlaydigan dasturiga ega bo'lishingiz kerak. Men foydalanuvchiga quyidagi funktsiyalarni amalga oshirishni mashq qilib qoldiraman:

1. boshqa protokollarni qo'llab -quvvatlash

2. har safar ulanishni yopmaslik uchun kodni tuzatish

3. netcat xatti -harakatlarini o'zgartirishi kerak bo'lgan bayroqlarni qo'shish

Tavsiya: