הבהרה: הטקסט הנמצא כאן יכול לשמש גם לנזק. אני מזכיר את חוק המחשבים 1995 ושהפעלת ראבק דאקי על מחשב שאינו שלכם היא עבירה על החוק. המידע הנמצא כאן הוא מידע המיועד ללמידה. לא לצרכים אחרים.
ֿהאמת שהפוסט הזה מחכה אצלי כבר המון זמן ואיכשהו פספסתי לפרסם אותו. בגדול – עוד דרך נפלאה לעולל תעלולים שונים וגם דוגמה נפלאה לכלי אבטחת מידע שאפשר ליצור בבית עם מיקרובקר פשוט כמו Pi Pico. למי שלא יודע מה זה מיקרו בקר ומה זה Pi Pico – המאמר ההתחלתי הזה יסייע לכם.
אפשר בגדול להשתמש בלא מעט מכשירים לראבר דאקי אבל אני מעדיף את הפיקו כי הוא קטן ויש לו גם מארזים מאוד זולים שממש גורמים לו להראות כמו מקל USB. גם בקלות אפשר להוסיף לו מודיפיקציות שונות ולבצע עריכה. והכל בזיל הזול, אז פיקו.
מה זה ראבר דאקי? בגדול זה USB, או יותר נכון דמוי USB שדוחפים למחשב המטרה. הוא ״מדמה״ מקלדת ובעצם מקליד פקודות שונות למחשב. למשל, שישים שניות אחרי ההפעלה, הראבר דאקי יפתח את הדפדפן, יפתח סרטון של ריק רול וינגן בעוצמה גבוהה שוב ושוב.
בפרק הזה של סייברסייבר דיברתי על זה יחד עם נעם רותם.
או לחלופין, יעתיק את קבצי העוגיות על הסשנים הפעילים שלהם וישלח לתוקף מרושע, יעתיק את כל המסמכים וישלח לתוקף מרושע, יעתיק את כל התמונות וישלח לתוקף מרושע… טוב, נראה לי שהבנתם.
כל היכולת הזו תמיד נראתה לי כמו מדע בדיוני ואיזה משהו ששייך ליחידת סייבר סייבר סייברי מסווגת אבל בפועל זה ממש פשוט עד כדי גיחוך. מה שאנחנו צריכים זה:
- פיי פיקו בכמה שקלים.
- כבל מיקרו usb ל-usb על מנת שנוכל לחבר את הפיי פיקו למחשב שלנו (או למחשב המטרה).
- אם יש לכם מק – אז מתאם ל-USB. אם יש לכם PC אז כלום 🙂
- במידה והיעד שלכם חשדן ואתם לא עושים את זה בשביל ה-POC: מארז מיוחד בכמה שקלים מעלי אקספרס שמכניס את הפיי פיקו ל-USB.
- כמה דקות פנויות.
השלב הראשון הוא לחבר את הפיי פיקו אל המחשב שלכם כדי שתוכלו לצרוב לתוכו את המידע. אנו נלחץ על bootsel ואז נחבר את הפיקו למחשב (חלונות או מק – ייתכן שעם מק תצטרכו מתאם).
אחרי כמה שניות תוכלו לראות את הפיקו ככונן USB חיצוני.
השלב השני הוא לגשת אל הריפוזיטורי הזה בגיטהאב של pico ducky ולעקוב שם אחר ההוראות. אני אכתוב אותן בקצרה פה:
- העתיקו את הגרסה האחרונה של CircuitPython – (גרסה נוספת של מיקרופייתון שנועדה לעבוד עם מיקרו בקרים) מהקישור הזה. העתיקו את קובץ ה-utf אל הפיי פיקו. כמה שניות לאר ההעברה, הפיי פיקו יעדכן את עצמו ויופיע כ CircuitPy ברשימת הכוננים.
- הורידו את הקובץ adafruit-circuitpython-bundle-8.x-mpy-YYYYMMDD.zip מהאתר הזה. שימו לב שבמקום ה-YYYYMMDD יש תאריכים אחרים – הקפידו להוריד את ה-x.8. פיתחו את קובץ הזיפ.
- העתיקו את תיקית adafruit_hid שנמצאת תחת תיקית lib שהיתה בקובץ הזיפ אל תיקית lib בפיי פיקו.
- העתיקו את
adafruit_debouncer.mpy
וגם אתadafruit_ticks.mpy
מתיקית lib בקובץ הזיפ אל תיקית lip בפיי פיקו. - העתיקו את התיקיות adafruit_wsgi ו-asyncio מתיקית lib בקובץ הזיפ אל תיקית lib בפיי פיקו.
- בצעו clone לריפוזיטורי pico-ducky (אם אתם לא יודעים מה זה git clone אז פשוט הורידו אותו באמצעות לחיצה על הכפתור הירוק שכתוב עליו code ואז הורדה כזיפ ופתחו את הזיפ).
- העתיקו מ-pic-ducky את boot.py ואת duckyinpython.py, code.py, webapp.py, wsgiserver.py והציבו אותם בתיקיה הראשית של פיי פיקו.
עכשיו אנחנו מוכנים. ניצור קובץ שנקרא payload.dd ושם נכניס את הפיילואוד הזדוני שלנו. אם אני על מק, אז אני יכול להשתמש בפיילואוד כזה:
REM A slightly more advanced "Hello, World" for macOS
DELAY 3000
REM Open Spotlight Search
COMMAND SPACE
REM Open the text editor
STRING Hello, World!
אם אני עם חלונות, אז בואו נשתמש בפיילואוד הזדוני הזה:
REM A slightly more advanced "Hello, World!" for Windows
DELAY 3000
REM Open the Run dialog
WINDOWS r
DELAY 1000
REM Open cmd with our message
STRING cmd "echo 'Hello, World!'; pause"
ENTER
ברגע שאנו שומרים את הקובץ, אז הפיי פיקו ירסט את עצמו ויריץ אחרי שניה את הפיילואוד. אם זה לא קורה, אז נסו לנתק ולחבר אותו שוב. אם עשיתם את הכל כמו שצריך? זה יעבוד. במקרה הזה – הוא רק יכתוב לנו Hello World. אבל אנחנו יכולים לעשות הרבה יותר תעלולים.
השפה שאיתה אנו כותבים את הקוד נקראת DuckyScript ראשית כדאי לזכור שנכון לכתיבת שורות אלו, הפיי פיקו תומך ב-DuckyScript 1.0. זו לא שפה מסובכת מדי כפי שאפשר לראות.
יש לא מעט דוגמאות לסקריפטים משעשעים ברשת וגם כאלו שפחות משעשעים. אני בונה על שיקול הדעת הנבון של הקוראים איפה אפשר לעשות תעלולים ואיפה לא. אני ממליץ להתנסות אך ורק על מחשבים שלכם כמובן ולהזהר מאד עם התעלולים האלו.
הרחבות ותוספות
ראשית, אני אני רוצה שהפיילואוד לא ירוץ על המחשב שלי כשאני מעתיק לתוכו, אני צריך להכנס ל-setup מוד- עושים את זה על ידי חיבור GP0 לפין השלישי (GND – לפי הריבועים האדומים בתמונה.
אם אני רוצה שהקורבן לא ישים לב, עדיף לי שלא יקפוץ לו שיש הארדיסק חדש – אז כדי למנוע ממערכת ההפעלה לזהות את הראבק דאקי שלנו כהארד דיסק, נחבר את פין 18 (GND) לפין 20 (GP15) לפי הריבועים הירוקים בתמונה.
אפשר ואפילו רצוי לקנות מארז נאה לפיי פיקו במקום כל החוטים והמחברים האלו. מארזים כאלו ניתן לרכוש בדולרים בודדים בעלי אקספרס. כמובן שזה גם כר פורה לתעלולים נוספים. אבל תעלולים יכולים להיות בעייתיים אז מומלץ מאד להפעיל שיקול דעת. בכל מקרה, זו דוגמה כמה קל ליצור כלים כאלו.
5 תגובות
עכשיו צריך פוסט על איך מתגוננים?
לספיו יש פתרון שמגן בדיוק מכלים כאלו (גילוי נאות, אני עובד ספיו).
תודה רן, אתה נהדר.
מה הכוונה חיבור gpo ל gnd?
לחבר את פין אחד לפין שלוש?
איך אפשר לדעת שרכיב התעלול לא מגיע עם תעלול מוכן מהספק, במיוחד כשמדובר באתר מפוקפק כמו עליאקספרס?