netcat – توانا – وبلاگ

گاهی اوقات sshd روی سرور شما خراب می شود، شاید پس از به روز رسانی، و شما نیاز دارید که صف های طولانی، شاید لیستی از رمزها را از یک سرور به سرور دیگر ارسال کنید. نوشتن در کنسول یک گزینه است، اما زمان زیادی طول می کشد و همچنین مستعد خطا است. اگر از macOS استفاده می‌کنید، می‌توانید از Automator برای وارد کردن متن طولانی استفاده کنید، اما هنوز به آسانی استفاده از netcat نیست و فایل‌ها را منتقل نمی‌کند.

با netcat/nc می توانید یک ترفند خوب انجام دهید، از مقصد می توانید شروع کنید nc در حالت سرور/گوش دادن و ارسال متن از مشتری یا منبع. به عنوان مثال:

مقصد% % sudo nc -l 22 > /tmp/netcat_text

اکنون در رایانه مبدأ موارد زیر را انجام دهید:

منبع%nc مقصد 22
رمزهای aes128-ctr,aes192-ctr,aes256-ctr
^ سی

… پس از اتمام، ctrl+c را فشار دهید.

بیایید سرور را بررسی کنیم:

مقصد% cat /tmp/netcat_text
رمزهای aes128-ctr,aes192-ctr,aes256-ctr

در اینجا می روید، شما فقط متن را منتقل کردید، اکنون می توانید از آن استفاده کنید netcat_text و آن را به sshd_config خود اضافه کنید: cat /tmp/netcat_text >> /etc/sshd/sshd_conf

اگر بخواهید یک باینری یا بسته را انتقال دهید چه؟ می توانید از scp استفاده کنید. نه، شما فقط می خواهید بتوانید از scp استفاده کنید، اگر sshd شما خراب باشد scp کار نمی کند. خبر خوب این است که این کار را نیز می توان با nc فایل فقط باید به base64 تبدیل شود. در مقصد، در حال حاضر، مانند قبل انجام دهید:

destination% nc -l 22 > /tmp/file

در کد منبع، فایل را base64 می کنیم و آن را به netcat ارسال می کنیم. در مثال زیر، من یک تصویر را منتقل کردم:

source% base64 -i "Screenshot 2023-01-15 at 11.40.46.png" | nc destination 22

به یاد داشته باشید، در مقصد این یک فایل با کد base64 است، قبل از استفاده باید آن را رمزگشایی کنیم:

destination% base64 -d /tmp/file > image.png

قبل از اتمام، بیایید بررسی کنیم که فایل ها یکسان هستند:

source% file "Screenshot 2023-01-15 at 11.40.46.png"                                                                                        
Screenshot 2023-01-15 at 11.40.46.png: PNG image data, 911 x 630, 8-bit/color RGBA, non-interlaced
source% md5 "Screenshot 2023-01-15 at 11.40.46.png"                                                                                                  
MD5 (Screenshot 2023-01-15 at 11.40.46.png) = adec48fd42852d574a918b35ca8cc7d9

destination% file image.png
image.png: PNG image data, 911 x 630, 8-bit/color RGBA, non-interlaced
destination% md5 image.png
MD5 (image.png) = adec48fd42852d574a918b35ca8cc7d9

باشه همینطوره فایل!

فراموش نکنید که خودتان را پاکسازی کنید و فایل های کدگذاری شده base64 را حذف کنید.

توجه! نت کت انجام می دهد رمزگذاری نمی کند داده ها، پس این را در نظر داشته باشید! این همچنین یادآوری خوبی برای بسته نگه داشتن پورت های استفاده نشده روی فایروال خود است، فقط آنهایی را که واقعاً نیاز دارید باز کنید، نه چیز دیگری.

توجه: stunnel را می توان با netcat برای رمزگذاری انتقال استفاده کرد، کمی پیچیده تر است اما بسیار مفید است.