גלגל שרתים משלך עם Netcat


מאת ג'ייסון תומס

כלי שורת הפקודה של יוניקסnetcatזוכה לכינוי "האולר השוויצרי ברשת" עם סיבה טובה. כמו כלי העזר הטובים ביותר של UNIX, זה מאוד פשוט אבל יכול לבצע כל מיני משימות שימושיות. זה מתואר היטב גם בכותרת שלו: netcat הוא כמו כלי השירות "חתול", אבל פועל ברחבי הרשת. מכונה אחת מוגדרת עם netcat להאזנה, ואז מכונות אחרות מתחברות אליה. לאחר החיבור, אתה יכול להעביר טקסט דרכו, לפתוח מעטפת פקודה במכונת ההאזנה, או כל דבר שאתה יכול לעשות עם חתול במכונה מקומית.

אם אתה חנון שורת פקודה שמעולם לא השתמש ב-netcat אבל לעתים קרובות עובד על גבי מכונות ברשת, ה-netcat המהיר הזה הוא בשבילך.

(ברוב ההפצות, netcat נקרא "nc". זה יכול להתקיים גם בתור netcat. כאן, נניח שהוא נקרא nc - שבו הוא נמצאציגוויןעבור Windows וב-Mac OS X.)

בואו נתחיל ב-netcat'ing.

פתח שני חלונות פקודה במחשבים שבהם פועל Netcat. אתה יכול לעשות זאת עם מכונה אחת למטרות בדיקה או עם הפעלות מסוף המתחברות לשתי תחנות שונות.

בחלון אחד, הקלד:

nc -l -p 1234

זה אומר ל-netcat להפעיל שרת ולהתחיל להאזין ביציאה 1234.

בינתיים, בחלון השני, הקלד

nc 1234

עדיין לא מרגש מדי; זה צריך פשוט לשבת שם בכל חלון. אבל הקלד משהו בחלון השני ולחץ על חזרה. אתה אמור לראות את מה שהקלדת קופץ בחלון הראשון. די מטופש, לא? כמו שאמרתי, זה מאוד דומה לחתול.

הטירוף נובע מהגמישות של זה. כמו, אתה יכול להפעיל תהליך במכונה A ולהעביר את הפלט שלו למכונה B. נניח שאתה רוצה לראות מי מחובר למכונה A. אתה יכול להגדיר שרת האזנה במכונה B, ולאחר מכן במכונה A אתה' ד הקלד משהו כמו

צפו w | nc 1234

לאחר מכן, במכונת ההאזנה היית צופה ביומן רץ. מה הטעם? ובכן, אולי תעשה זאת מסיבות אבטחה - אולי תרצה לנהל יומן של רשימת תהליכים בקופסת הצבעים של חבר איפשהו ברחבי הרשת.

אתה יכול גם להשתמש ב-netcat בתור כלי עזר מהיר ומלוכלך להעתקת קבצים, כך:

(במכשיר היעד:)

nc -l -p 1234 > destination.filename

(במכונת המקור:)

cat source.filename | nc 1234

שוב אפשר לשאול למה. ובכן, netcat הוא כל כך סטנדרטי שאתה יכול להיות כמעט בטוח שזה יהיה בכל מכונה נתונה - הרבה יותר מאשר, נגיד, חבילת OpenSSH.

Netcat לא צריך רק להתחבר לעצמה. הוא יכול להתחבר לכל שירות שרירותי, ומכיוון שהוא יכול להאזין בפורט, הוא יכול להתחבר מכל שירות. אם תפעיל שוב את שרת ההאזנה שלך ביציאה 1234, ולאחר מכן תתחבר אליו באמצעות Firefox ליציאה זו, עם הכתובת https://:1234/"שלום לך," תראה את ניסיון ה-HTTP GET שלך גוללת למעלה בסשן ההאזנה.

או אולי תרצה להפעיל מעטפת. הפעל את שרת ההאזנה שלך כך:

nc -l -p 1234 -e /bin/bash

התחבר אליו עם:

nc 1234

אתה אמור להיות מסוגל להקליד פקודות ל-bash shell ולראות את הפלט. (הערה: ה--e מופעל רק כאשר netcat מופעל כאשר הוא מופעל. כאשר ג'ינה בדקה זאת במחשבים שלה, Cygwin אפשרה את ה--e אך Mac OS X לא.nc -hלרשימת האפשרויות העומדות לרשותך; אם -e מופיע ברשימה, אתה זהוב.)

עם זאת, יש בעיה גדולה עם Netcat. זה מריץ הכל בטקסט רגיל, כך שכל מי שמרחרח את הרשת שלך יכול לראות מה אתה עושה. זה הרבה יותר בטוח להשתמש בתוכניתcryptcat, זמין כאן, המאפשר לך להגדיר הפעלות מוצפנות שרירותיות.

אתה יכול להשתמש ב-netcat כדי להפעיל הפעלות צ'אט מהירות בדומה לפקודת הכתיבה הישנה של UNIX. לשם כך, שרת ההאזנה עושה:

nc -vlp 1234

כאן ה-v מציין מילולית; התחבר אליו כרגיל ושני החלונות אמורים להיות מסוגלים להקליד קדימה ואחורה.

Netcat יכול אפילוסרוק יציאות!אם ברצונך לסרוק את המכשיר שלך לאיתור שירותים פתוחים, הקלד:

nc -v localhost 1-1000

זה יחזיר את כל היציאות בין 1 ל-1000 שיגיבו. בשבילי זה החזיר יציאה אחת פתוחה.

localhost [127.0.0.1] 631 (ipp) פתוח

לא הצלחתי לזכור מה זה 631 אז רשמתי אליו:

nc -v localhost 631

וזה פתח שרת. הקלדתי "QUIT" שהיא פקודת יציאה סטנדרטית עבור סוגים רבים של יציאות TCP והיא ירקתי קצת HTML, כולל "שרת: CUPS/1.2." זה היה ממשק האינטרנט של שרת ההדפסה שלי.

Netcat מאוד שימושי ומאוד שימושי. אם אתה נושא כונן אצבע מלא באפליקציות, netcat צריך להיות אחד מהם. בדיוק כמו חתול, netcat נועד לעבוד כ-backend. עם יכולת תכנות קטנה של פיתון ו-netcat, אתה יכול לעשות דברים מדהימים. בואו לשמוע על כל השימושים המגניבים שמצאתם בו!

ג'ייסון תומאסהוא סופר ומקצוען מחשבים המתגורר בערים התאומות.