סט כלים נסיוני

אני רשום לבלוג המצוין של Didier Stevens. בנוסף למחקרים שלו הוא גם בונה כל מיני כלים קטנים ושימושיים לחוקרי אבטחה, כמו Suspender.dll או LoadDLLViaAppInit ועוד רבים.

חשבתי לנסות לבנות סט כלים בסיסיים, שביחד ייצרו משהו שימושי. הרעיון הוא שכל כלי משתמש ב-X הפרמטרים הראשונים, ואל השאר הוא מתייחס כפקודה אחת ופשוט מריץ אותה.
 
לדוגמה, tool p1 p2 notepad.exe. מה שיקרה זה ש-tool יבצע את המטלה ויקרא ל-notepad.exe. עכשיו, בשילוב של כל הכלים יחד אפשר לבצע פעולות קצת יותר מורכבות בצורה אוטומטית. לדוגמה:
parallel notepad.exe wait 5s inject notepad.exe hacker.dll wait 2s suspend notepad.exe
הרצה של פקודה זו תריץ במקביל (לא תחכה לסיומו) את פנקס רשימות, תחכה חמש שניות, תזריק לתוכו DLL, תחכה שתי שניות ותעשה Suspend לתהליך. ואז אפשר, נניח, לפתוח את התהליך ב-OllyDbg ולבחון את מצבו.
 

הכלים שבניתי בשביל הניסיון הם:
  • wait – חכה זמן (במילישניות, שניות, דקות או שעות)
  • parallel – הרץ פקודה בלי לחכות לסיומה ( = במקביל)
  • execute – הרצה של פקודה עם יותר אפשרויות
  • inject – הזרק DLL לתוך תוכנה (בעזרת CreateRemoteThread)
  • suspend, resume – השהייה ולהפך של תהליך (בעזרת NtSuspendProcess ו-NtResumeProcess)
  • deep-suspend, deep-resume – עושה את אותו הדבר כמו suspend/resume, אבל בנוסף גם עובר על כל Thread ומשהה אותו (SuspendThread, ResumeThread)
 
בונוס: אפשר להוסיף לשם התיקיה שבה הכלים יושבים ".debug", לדוגמה toolkit.debug, ואז הכלים ידווחו מה הם עושים.
 
 
צירפתי קישורים לקוד המקור ולקבצים מהודרים.
האם זה יכול להתפתח למשהו שימושי? לא יודע, אשמח לשמוע 🙂
 
/files/toolkit/Toolkit.zip
קטגוריות: מערכות הפעלה, תכנות

פורסם בתאריך 17th מאי 2011 ע"י vbCrLf