Use Netcat to Spawn Reverse Shells & Connect to Other Computers [Tutorial]
תוכן עניינים:
Netcat (או nc) הוא כלי שורת פקודה שקורא וכותב נתונים על חיבורי רשת באמצעות הפרוטוקולים TCP או UDP. זהו אחד הכלים החזקים ביותר בארסנל מנהלי הרשת ומערכת זה והוא נחשב לסכין של צבא שוויץ של כלי רשת.
Netcat היא פלטפורמה חוצה והיא זמינה עבור לינוקס, macOS, Windows ו- BSD. באפשרותך להשתמש ב- Netcat כדי לבצע איתור באגים וניטור של חיבורי רשת, סריקה אחר יציאות פתוחות, העברת נתונים, כמתנה פרוקסי ועוד. חבילת Netcat מותקנת מראש ב- macOS ובהפצות לינוקס פופולריות כמו אובונטו.
תחביר של Netcat
התחביר הבסיסי ביותר של כלי השירות Netcat לובש את הטופס הבא:
nc host port
באובונטו אתה יכול להשתמש ב-
netcat
או ב-
nc
. שניהם סימלינקס לגירסת openBSD של Netcat.
כברירת מחדל, Netcat תנסה להפעיל חיבור TCP למארח והיציאה שצוינו. אם ברצונך ליצור חיבור UDP, השתמש באפשרות
-u
:
סריקת נמל
סריקת יציאות היא אחד השימושים הנפוצים ביותר עבור Netcat. ניתן לסרוק יציאה יחידה או טווח יציאה.
לדוגמה לסריקת יציאות פתוחות בטווח 20-80, תשתמש בפקודה הבאה:
nc -z -v 10.10.8.8 20-80
האפשרות
-z
תאמר ל-
nc
רק לסרוק יציאות פתוחות, מבלי לשלוח להם נתונים כלשהם ואת האפשרות
-v
לספק מידע מילולי יותר.
הפלט ייראה כך:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
אתה יכול גם להשתמש ב- Netcat כדי למצוא את תוכנת השרת ואת גרסתה. לדוגמה, אם אתה שולח פקודה "EXIT" לשרת ביציאת SSH ברירת המחדל 22:
echo "EXIT" | nc 10.10.8.8 22
הפלט ייראה כך:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
כדי לסרוק יציאות UDP פשוט הוסף את אפשרות -ה לפקודה כמוצג להלן:
nc -z -v -u 10.10.8.8 20-80
ברוב המצבים, Nmap הוא כלי טוב יותר מאשר Netcat לסריקת יציאות מורכבות.
שליחת קבצים דרך Netcat
ניתן להשתמש ב- Netcat כדי להעביר נתונים ממארח אחד למשנהו על ידי יצירת מודל לקוח / שרת בסיסי.
זה עובד על ידי הגדרת ה- Netcat להאזנה ביציאה ספציפית (באמצעות אפשרות
-l
) במארח המקבל ואז יצירת חיבור TCP רגיל מהמארח האחר ושליחת הקובץ מעליו.
בהפעלת הקבלה הפקודה הבאה שתפתח את היציאה 5555 לחיבור נכנס ותפנה את הפלט לקובץ:
nc -l 5555 > file_name
מהמארח השולח התחבר למארח הקולט ושלח את הקובץ:
nc receiving.host.com 5555 < file_name
כדי להעביר ספריה אתה יכול להשתמש בזפת כדי לארכוב את הספרייה במארח המקור וכדי לחלץ את הארכיון במארח היעד.
במארח המקבל הגדיר את הכלי Netcat להאזין לחיבור נכנס ביציאה 5555. הנתונים הנכנסים מועברים לפקודת הזפת שתחלץ את הארכיון:
nc -l 5555 | tar xzvf -
במארח השולח אורזים את הספרייה ושולחים את הנתונים על ידי חיבור לתהליך
nc
האזנה במארח המקבל:
tar czvf - /path/to/dir | nc receiving.host.com 5555
אתה יכול לראות את התקדמות ההעברה בשני הקצוות. בסיום הקלד
CTRL+C
כדי לסגור את החיבור.
יצירת שרת צ'ט פשוט
הנוהל ליצירת צ'אט מקוון בין שני מארחים או יותר זהה בעת העברת קבצים.
במארח הראשון התחל תהליך של Netcat להאזנה ביציאה 5555:
nc -l 5555
מהמארח השני הפעל את הפקודה הבאה כדי להתחבר ליציאת האזנה:
nc first.host.com 5555
עכשיו אם תקלידו הודעה ותלחצו על
ENTER
היא תוצג בשני המארחים.
כדי לסגור את החיבור, הקלד
CTRL+C
ביצוע בקשת HTTP
למרות שיש כלים טובים בהרבה לבקשות HTTP כמו תלתל, אתה יכול גם להשתמש בנטקט כדי לשלוח בקשות שונות לשרתים מרוחקים.
לדוגמה, כדי לאחזר את דף האיש של Netcat מאתר האינטרנט OpenBSD, הקלד:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
התגובה המלאה כולל כותרות HTTP וקוד HTML יודפסו בטרמינל.
סיכום
במדריך זה למדת כיצד להשתמש בכלי השירות Netcat כדי ליצור חיבורי TCP ו- UDP ולבחון אותם.
למידע נוסף בקר בדף האיש של Netcat וקרא על כל האפשרויות החזקות האחרות של הפקודה Netcat.
מסוף netcatפקודה תלתל בלינוקס עם דוגמאות

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

פקודת ה- tee קוראת מקלט רגיל וכותבת לפלט רגיל ולקבץ אחד או יותר בו זמנית. טי נפוץ ביותר בשילוב עם פקודות אחרות באמצעות צנרת.
פקודה TR בלינוקס עם דוגמאות

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