תוכן עניינים:

Netcat ב- Python: 6 שלבים
Netcat ב- Python: 6 שלבים

וִידֵאוֹ: Netcat ב- Python: 6 שלבים

וִידֵאוֹ: Netcat ב- Python: 6 שלבים
וִידֵאוֹ: Python for Automating Information Security: What Is Netcat? | packtpub.com 2024, נוֹבֶמבֶּר
Anonim
Netcat בפייתון
Netcat בפייתון

מהו נטקאט? הדף הידני של netcat אומר את הדברים הבאים: "כלי השירות nc (או netcat) משמש כמעט לכל דבר תחת השמש הכולל שקעי TCP, UDP או UNIX. הוא יכול לפתוח חיבורי TCP, לשלוח מנות UDP, להאזין לפי שרירותי יציאות TCP ו- UDP, מבצעות סריקת יציאות ומתמודדות עם IPv4 וגם עם IPv6. בניגוד ל- telnet (1), nc scripts יפה, ומפרידה בין הודעות שגיאה לשגיאה רגילה במקום לשלוח אותן לפלט סטנדרטי, כפי שעושה telnet (1) עם כמה"

בעיקרו של דבר, netcat מאפשר לך להתחבר לשרתים אחרים באמצעות פרוטוקול TCP או UDP. TCP מייצג פרוטוקול בקרת שידור, והוא מכוון לחיבורים. UDP מייצג פרוטוקול Universal Datagram, ואין לו חיבור. TCP משמש בדרך כלל ליישומי אינטרנט, בעוד UDP משמש להזרמת מדיה או VPNs.

שלב 1: איך מתחילים?

כיצד נתחיל?
כיצד נתחיל?

למעלה איך קוראים netcat. אתה יכול לראות שבסוף יש שני ארגומנטים שנקראים "יעד" ו"יציאה ". היעד מתייחס לשם מארח או כתובת ip של השרת שאליו אנו מנסים להתחבר, בעוד שהיציאה מתייחסת ליציאת השרת שאליו אנו מנסים להתחבר.

שלב 2: בואו להתחיל

בואו נתחיל
בואו נתחיל

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

שלב 3: יצירת חיבור

יצירת חיבור
יצירת חיבור

בואו ניצור פונקציית netcat שנוכל להשתמש בה. מה שאנחנו בעצם עושים כאן הוא יצירת שקע והתחברות לשרת באמצעות הפרמטרים שניתנו. עבור הפקודה netcat, הפרמטרים הנוכחיים הם שם המארח והיציאה של השרת שאנו מנסים להתחבר אליו. השקע מכיל את הפרמטרים "socket. AF_INET" ו- "socket. SOCK_STREAM" מכיוון שאנו ברירת מחדל לחיבור TCP עבור הדרכה זו.

שלב 4: מאפשר לשלוח קצת תוכן

בוא נשלח קצת תוכן
בוא נשלח קצת תוכן

הרחבנו את פונקציית ה- netcat שלנו כדי לקחת פרמטר שלישי, "תוכן". יש כאן הרבה תוכן אז בואו נחלק אותו לפי מספר השורה.

שורה 14-16: אנו שולחים את כל התוכן דרך השקע, אנו ממתינים מעט ולאחר מכן סוגרים את השקע לכל נתונים יוצאים כך שהשקע יודע כי אין יותר נתונים.

שורה 18-26: אנו יוצרים מאגר לאחסון תגובת השרת, ובעוד השקע מקבל נתונים, אנו מצרפים עד 1024 בייט נתונים לתוצאה כל עוד יש נתונים לקריאה.

שורה 28-29: אנו רוצים שחיבור netcat הזה יהיה חיבור חד פעמי, לכן אנו מכריזים על החיבור סגור ולאחר מכן סוגרים את החיבור.

שורה 31: זוהי בקשת HTTP רגילה. אם תפעיל את הקוד עם הארגומנטים של שורת הפקודה "google.com" ו- "80", תראה תגובת HTTP נכונה

שלב 5: מאפשר חיבור פתוח

בואו לקיים חיבור פתוח
בואו לקיים חיבור פתוח

הקוד לעיל (הממוקם מתחת לקוד מהסעיף הקודם) פשוט מאפשר לנו להריץ פקודות netcat מרובות על חיבור פסבדו פתוח. (במציאות, בכל פעם שאתה מפעיל פקודה, הוא נפתח ואז סוגר חיבור TCP חדש, כך שהוא לא באמת מחקה את ההתנהגות של netcat, אנחנו פשוט עושים זאת למטרות למידה). בואו נפרק גם שורה זו אחר שורה:

שורה 31: אנו רוצים לקרוא פקודות ללא הגבלת זמן כדי לשמור על "אינטראקטיביות"

שורה 32: זהו המאגר שלנו שיאחסן את תוכן הבקשה שלנו

שורה 36-45: נקרא לתוך המאגר עד שנקרא שורה ריקה

שורה 48: אנו פשוט קוראים לפונקציית netcat שלנו עם שם המארח, הנמל והתוכן החדש שנוצר (המקודד כראוי)

שורה 50: אם תוכן המאגר שלנו מכיל אי פעם "חיבור: סגור" (המציין שאנחנו רוצים לסגור את החיבור), אנחנו פשוט פורצים מהלולאה

שלב 6: מסקנה

בסוף הדרכה זו אמורה להיות לך יישום מינימלי של netcat עובד. אשאיר זאת כתרגיל למשתמש ליישם תכונות כגון:

1. תמיכה בפרוטוקולים אחרים

2. תיקון הקוד כדי לא לסגור את החיבור בכל פעם

3. הוספת דגלים שיש ל- netcat כבר לשנות את ההתנהגות

מוּמלָץ: