איך לנצח את Citrix בעזרת.. צייר?!

פעמים רבות במהלך בדיקות PT אני נתקל בפתרונות האקינג הזויים ונחמדים, כמו במקרה הבא:
 
יש לנו גישה למערכת מוקשחת, אין לנו כלום חוץ משולחן עבודה, מספר אפליקציות סיטריקסיות וכמה אפליקציות חלוניות
(חלק מה-"Accessibility tools", חלק מה-"Accessories") וזהו. כמובן שאין לנו אפשרות לסייר בקבצים שנמצאים מחוץ
לשולחן עבודה. כל השטיקים של F1 או "Print To File" ו-"View Source" חסומים, שלא נדבר על כך שאין לנו במערכת
שום עורך טקסט (Notepad.exe, Wordpad.exe, Edit.com וכו' וכו' אפילו את "Debug" מחקו!) וכמובן שאין אפשרות
לבצע "Open" מאחת האפליקציות ואז ולנווט ל-"system32" ולהריץ את "cmd.exe" עם "Run As". - בקיצור, החבר'ה
מהסיסטם עבדו קשה.

ובכל זאת, איך בכל זאת אפשר להגיע לשורת הפקודה במצב הזה? פשוט מאוד- נשתמש ביצירתיות שלנו (תרתי משמע...)
גישה לצייר יש? כמה כבר אפשר להזיק בעזרת תמונות?

בואו נראה :)
פתחו את צייר (MSPaint), שנו את גודל התמונה ל-6x1 (אם תציבו את הסמן של העכבר על הפיקסל הימני ביותר תראו
ב-Status bar שאתם עומדים על: "5,0". בכדי להזיק ממש, לא נוכל להשתמש בארסנל הצבעים הקלאסי, ולכן: כנסו
ל-"Colors" ושם ל-Edit Colors", שם תבחרו ב: "Define Custion Colors" וחפשו את החלונות האחראים על ה-"RGB"
(יחסי צבעי הייסוד בכדי ליצור כל גוון) לפיקסל הראשון (השמאלי ביותר), בחרו:
R: 10
G: 0
B: 0

לפיקסל השני (כמובן- משמאל), בחרו:
R: 13
G: 10
B: 13

לפיקסל השלישי, בחרו:
R: 100
G: 109
B: 99

לפיקסל הרביעי, בחרו:
R: 120
G: 101
B: 46

לפיקסל החמישי, בחרו:
R: 0
G: 0
B: 101

לפיקסל השישי והאחרון (הימני ביותר), בחרו:
R: 0
G: 0
B: 0

לאחר מכן, שמרו את הקובץ (כמובן על שולחן העבודה- אין לנו גישה לשום מקום אחר) כ:
24-bit Bitmap (*.bmp;*.dib)

וסיגרו את צייר. 
גשו לשולחן העבודה, ופתחו את הקובץ, אתם אמורים לראות משהו שנראה כמו זה:
cmd.bmp 
 
 
עכשיו, שנו סיומת הקובץ מ-"bmp" ל-"bat". במידה ולא חסמו את ההרשאה להרצת ה-cmd, אתם אמורים לראות משהו
שנראה כמו זה:
 
cmp.png 
 
לא טעיתם- יפתח לכם חלון שחור ויפהיפה :) בהחלט סיבה ומסיבה כשאתם בסביבת Citrix מוקשחת..

אז... איך בעצם עשינו את זה?
 
פשוט מאוד- צרו קובץ תמונה (bmp) חדש בגודל של 6x1. פתחו אותו בעזרת עורך הקסדצימאלי. מה שאנחנו צריכים
לעשות זה פשוט מאוד זה להכניס את המחרוזת או הפקודה שאנו מעוניינים להריץ (במקרה שלנו: "cmd.exe") לא לפני
שירדנו שורה ("0A0D") פעמיים! - שימו לב שלקובץ יש מבנה מסודר ואסור לנו לפגוע בו, אנו חייבים להכניס את המחרוזת
הזאת במיקום שיאפשר לנו לגשת אליה דרך צייר, ולכן אנו חייבים להכניס אותה בסקטור ה-"Bitmap data" אצלי הוא
מתחיל לאחר הבית ה-56. (אפשר למצוא אותו בקלות מפני שלפי מבנה הפורמט של קבצי BMP "סטנדרטיים" ערך ההיסט
שלו נמצא לאחר הבית העשירי). שימו לב:
 
hex.png


בכדי לבדוק שאכן הקובץ פועל- פשוט נשנה את הסויימת שלו ל-"bat" ונריץ אותו. אם נפתח לנו חלון cmd.exe - יש אלוהים.

לאחר מכן, נפתח את הקובץ בעזרת תוכנה כמו Photoshop ונדגום כל פיקסל בכדי לדעת מה ערכי ה-RGB המדוייקים שלו:
פיקסל ראשון:
pxl1
 
פיסקל שני:
pxl2 
 
פיסקל שלישי:
pxl3
 
פיסקל רביעי:
pxl4
 
פיסקל חמישי:
pxl5 
 
פיסקל שישי:
pxl6 
 
וזהו :)
 
כמובן שבכדי למנוע מאיתנו לעשות זאת אפשר להשתמש באלף ואחת דרכים, כגון "Allowed Programs" וכו', אבל
תודו שזה נחמד :) 
 
מה אפשר ללמוד מכאן? פשוט מאוד- כאשר מבצעים הקשחה של המערכת- אין להשאיר שום כלי שלא נחוץ לעבודה נטו.
גם אם זה כלי שמגיע עם מערכת ההפעלה, וגם אם זה סתם משהו שלא נראה מזיק. 


תגובות על 'איך לנצח את Citrix בעזרת.. צייר?!':



#1 

cp77fk4r:
אגב, פוסט מומלץ בנושא, אפשר למצוא בבלוג של שלומי נרקולייב, מעין "Cheat Sheet" למעקף הקשחות של שירותי טרמינל:

http://narkolayev-shlomi.blogspot.com/2010/02/hacking-citrix-and-terminal-server.html
12.07.2010 18:58:30

#2 

Ratinh0 (אורח):
מגניב אהבתי ממש :)
ד"א, אני חושב שפספסת וזה אופסט של 54 ולא 56 (לא סימנת את שני הבתים המאופסים)=]
12.07.2010 19:23:11

#3 

Ratinh0 (אורח):
ואז גם אתה יכול להתחיל את ה\n\r מהבית הראשון והריץ את ה cmd.exe ב 5 פיקסלים :)
12.07.2010 22:01:22

#4 

sdimant (אורח):
אהבתי!!!
רק בעיה אחת, סביר להניח שהסיסטם יבטלו את ההרשאה לcmd. אבל הרעיון ממש גאוני!!!
12.07.2010 22:20:12

#5 

sdimant:
ואגב, מן הסתם האפשרות לראות את הסיומות חסומה. אז אפשר פשוט לרשום בשם של הקובץ "filename.bat" = שם הקובץ עם סיומת bat בתוך גרשיים.
12.07.2010 22:24:50

#6 

Zerith:
מאוד אהבתי את היצירתיות, חשוב לזכור לא לוותר!.
12.07.2010 22:39:17

#7 

cp77fk4r:
Ratin0 - אני אסתכל על זה שוב ואחזיר לך תשובה. אתה לא תאמין, אבל אשכרה הצלחתי לדפוק את ה-MSPAINT, בטח לא משהו ש-Reset לא יפתור.

sdimant - לא תמיד חוסמים את הגישה להריץ את ה-cmd, כמובן שבמידה וכן ביטלו הכל הולך לפח, אבל אז כמובן אפשר לנסות את command.com :)
12.07.2010 22:39:27

#8 

m1ch43l1014 (אורח):
איזה יצרתיות הדבר שהכי חשוב ללמוד מכאן זה לא לוותר :)
13.07.2010 00:05:56

#9 

ים מסיקה (אורח):
וואו. ממש ענק. אהבתי.
13.07.2010 01:20:27

#10 

dudu@cyblog.info:
מעניין מאוד.
נושא עבודה "על" ה-TERMINAL מרתק :)
תודה
13.07.2010 07:37:17

#11 

cp77fk4r:
תודה רבה על התגובות :)
13.07.2010 10:45:26

#12 

Mosh (אורח):
טריק מצוין. מיותר לציין איך מה CMD הזה ניתן להשיג SYSTEM בקלות... :)
13.07.2010 11:49:20

#13 

cp77fk4r:
גישה ל-CMD בהחלט יכולה לקדם אותך, אבל יש מקרים שגם זה לא עוזר :)
13.07.2010 11:57:01

#14 

cp77fk4r:
עדכון: הצלחתי לעשות את זה עם ארבעה פיקסלים בלבד!

סט הצבעים הוא (משמאל לימין בסדר RGB):
10,13,10-109,99,13-101,46,100-32,101,120
13.07.2010 19:48:07

#15 

cp77fk4r:
עדכון נוסף:
חשבתי על זה ופתאום קלטתי שמספיק להריץ את המחרוזת "cmd" במקום ״cmd.exe" ככה שהצלחתי לדחוף את הכל לשלושה פיקסלים בלבד!
שוב פעם, הספר הוא משמאל לימין בסדר RGB:

13,10,0-99,13,10-32,100,109

נראה אם מישהו יצליח להריץ cmd בשני פיקסלים בלבד! ;)
13.07.2010 20:27:59

#16 

inHaze (אורח):
ואני חשבתי שאין זמן ליצירתיות כשמבצעים PT. ממש מגניב!
13.07.2010 21:01:55

#17 

cp77fk4r:
חחח תודה :)
13.07.2010 21:10:53

#18 

sdimant:
Mosh - איך מהCMD אפשר להשיג SYSTEM?
אפיק - וואלה צודק, גם אם חסמו את הCMD בGPO עדיין הCommand.com עובד <-:
אגב, גם אם חוסמים את הCMD מהGPO עדיין אפשר לכתוב קבצי סקריפטים (אם לא ביטלו גם אותם ;-) ), ככה שאפשר בnotepad ליצור קובץ שמריץ את הcmd.
אבל אני חשבתי על משהו יותר מגניב! (יכול להיות שמישהו כבר כתב את זה כבר, לא בדקתי. אם כן תגידו לי):

@echo off
:start
cd
copy con "c:\sd.bat"
call c:\sd.bat
goto start

ככה יש לך סוג של cmd (רק שאחרי כל פקודה/כמה פקודות צריך ללחוץ Ctrl + Z ואנטר, אבל למי אכפת |-; ).

נ.ב.
אפ'ק - מזתאמרת שהצלחת לדפוק את הMSPAINT?
13.07.2010 21:32:32

#19 

cp77fk4r:
sdimant:
א'- תקרא את המאמר הראשון בגליון הראשון בכדי לדעת את התשובה :).

ב'- כן, קוד נחמד ביותר, קוראים לזה קובץ אצווה "אינטרקטיבי" ;) יש לי מימוש קצת יותר יעיל משלך, אבל העקרון זהה.

ג'- מה זאת אומרת? אין לי מושג. אתמול, איכשהוא, בכל פעם שבאתי לשמור תבנית מסויימת של פיקסלים הוא קרס לי. - וכמו שאמרתי, לא משהו ש-Reset לא יכול לפתור ;)
13.07.2010 21:58:08

#20 

reader (אורח):
מגניב ביותר, נהנתי לקרוא :)
14.07.2010 01:14:39

#21 

sdimant:
א'- אה, OK. חשבתי שהוא מתכוון למשהו אחר.
ב' - "כיוונתי לדעת גדולים" ;-). מה הקוד שלך?
ג' - :-\
14.07.2010 20:51:17

#22 

T4uSBaZ (אורח):
Cp, sdimant - אפשר עוד מידע על קבצי האצווה האינטראקטיבים האלו?

Cp - אני ממש מתפלא פה מהיצירתיות הזאת. זה באמת חשיבה מחוץ לקופסא. אתה הגעת לזה בכוחות עצמך? אם כן, תהייה גאה בעצמך.. פתחת לי כיוון מחשבה חדש לגמרי!
15.07.2010 05:10:29

#23 

sdimant:
T4uSBaZ - לא הבנתי, איזה מידע אתה רוצה?
אם אתה רוצה אני יכול להסביר לך על הקוד שלי.
קודם כל הפקודות הם פקודות דוס רגילות, והקובץ נשמר כקובץ BAT

1. @echo off
2. :start
3. cd
4. copy con "c:\sd.bat"
5. call c:\sd.bat
6. goto start

אז ככה (המספור של השורות כמובן אינו חלק מהקוד, אלא נועד להסבר בלבד):
1. ה@ בהתחלה אומר לא להציג את הפקודה הנוכחית, והפקודה עצמה אומרת לא להציג את כל שאר הפקודות אלא רק את הפלט שלהם.
2. מתחילים Label שנקרא Start
3. הפקודה הזאת מציגה את הנתיב שאנחנו נמצאים בו עכשיו (מכיוון שדרך קובץ האצווה הזה א"א לראות את הנתיב).
4. Copy con היא פקודה שיוצרת קובץ בשם שאנחנו בוחרים, ומכניסה לתוכו את הטקסט שנרשום אח"כ (בשביל לסיים את יצירת הקובץ לוחצים Ctrl +Z). במקרה הזה יצרנו קובץ BAT בכונן C (חשוב לתת את הנתיב המלא של הקובץ בגלל שאם לא המחשב יצור קובץ חדש בכל תקיה שנהיה בה).
5. מפעילים את קובץ האצווה שיצרנו.
6. חוזרים להתחלה.
15.07.2010 08:28:50

#24 

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

בקשר לכלי שsdimant הציג, אני אחפש את המימוש שלי ואציג אותו.
15.07.2010 09:09:25

#25 

Dw4rf (אורח):
גאוני! יצירתי בטירוף!
16.07.2010 00:06:59

#26 

T4uSBaZ (אורח):
Cp - אני מחכה בקוצר רוח לקוד , תודה : )

sdimant - תודה רבה על התגובה המושקעת, אני יודע אגב את ה.."שפה" BATCH.

לא הבנתי מה זה con ומה אומר copy con,
ניסיתי להריץ על המחשב אך הוא כתב לי access denied.
מצטער על הבורות :}

אגב ראית שגיגלת אותי ונכנסת לפרוייקט שפת C, בכל אופן כתבתי אותו בגיל 12-13 ככה שאל תתרשם יותר מדי ממנו יש בו מלא תקלות שגיאות כתיב אי מקצועיות וכיו"ב.

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

בכל אופן - תודה רבה!
16.07.2010 02:09:45

#27 

sdimant:
T4uSBaZ - הפקודה copy con בעצם יוצרת קובץ עם השם שרשמת אחרי הcon. אחרי שאתה רושם את הפקודה המחשב יורד שורה וכל טקסט שתרשום ירשם בקובץ (מין עורך טקסט כזה). בשביל לצאת מה"עורך" צריך ללחוץ Ctrl + Z ואנטר.
בקשר לaccess denied, אין לי מושג, בטח אפיק ידע.

אגב, איך אתה יכול לראות שגיגלתי אותך?
ובקשר לפרוייקט שלך על C, אתה אומר שעדיף לא ללמוד ממנו? אני פשוט מתחיל ללמוד C, ואתר שלך היה נראה סבבה.
16.07.2010 09:50:07

#28 

sdimant:
ד"א, גם אני לא ידעתי שקוראים לבם קבצי אצווה "אינטראקטיביים", זה משהו שחשבתי עליו לבד. אבל ממה שאני הבנתי מאפיק הכוונה לקבצי אצווה שהמשתמש יכול להשפיע על הפעולה שלהם.
16.07.2010 10:00:05

#29 

cp77fk4r:
ה-Access Denied שאתה מקבל נובע כנראה מפני שאין לך הרשאת כתיבה על כונן c, תערוך את הקוד כך שיכתוב את הקובץ על שולחן העבודה שלך, או שפשוט תריץ תחת חשבון ניהולי.

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

הם באמת יכולים לעזור במקרים מסויימים, אך במקרים כגון אלו בהם אתה צריך להריץ תוכנית/פקודה שבה הפלט לא ״ישיר״ כמו telnet וכו׳ מימוש כזה יהיה בעייתי.
16.07.2010 15:20:40

#30 

T4uSBaZ (אורח):
Cp - אתה צודק זה פועל בDesktop לדוגמא : )

sdimant - הסקתי שגיגלת אותי כי הגבת לי בפרוייקט ישר אחרי זה, בכל אופן אם אתה מתחיל לגמרי.. תלמד מספר! הכי טוב.! אחרי זה אם תרצה להרחיב אז אמליץ לך להכנס לשם :} ולכל מקום אחר :}

ותודה לשניכם :)
16.07.2010 16:43:29

#31 

T4uSBaZ (אורח):
Cp - אתה צודק זה פועל בDesktop לדוגמא : )

sdimant - הסקתי שגיגלת אותי כי הגבת לי בפרוייקט ישר אחרי זה, בכל אופן אם אתה מתחיל לגמרי.. תלמד מספר! הכי טוב.! אחרי זה אם תרצה להרחיב אז אמליץ לך להכנס לשם :} ולכל מקום אחר :}

ותודה לשניכם :)
16.07.2010 16:43:31

#32 

cp77fk4r:
בבקשה. שבת שלום!
16.07.2010 17:02:13

#33 

sdimant:
T4uSBaZ - תודה.
Cp - מה עם הקוד? מצאת אותו?
16.07.2010 17:42:09

#34 

cp77fk4r:
עוד לא, הוא פשוט באחד הגיבויים שלי, למרות שאת הרעיון הכללי אני זוכר- ככה שלא יהיה בעיה לשחזר אותו.
16.07.2010 17:47:34

#35 

Ender:
Respect!
17.07.2010 21:26:53

#36 

שלמי (אורח):
אם הבנתי נכון , שורה תחתונה
מצא מילת מפתח ( או צרוף מילים )
קח את קוד האסקי שלה
חפש צרוף אחר שנותן אותה מחרוזת
( כולל תיקון שגיאות )
והרץ
19.07.2010 09:54:54

#37 

cp77fk4r:
לא הבנתי אותך שלומי, אבל שורה תחתונה זה:
מצא פקודה שאותה אתה מעוניין להריץ, דחוף אותה לתוך מרחב ה-DATA של קובץ BMP (לאחר ירידת שורה פעמיים), בדוק מה גווני ה-RGB של אותה הפקודה- וזהו, אם לא חרגת ממרחב ה-DATA של ה-BMP תוכל לבצע גם את הפעולה הפוכה. שזה בעצם מה שמעניין אותנו :)
19.07.2010 10:49:21

#38 

Zed (אורח):
פעם חשבתי על משהו בסיגנון אבל לא ידעתי איך בדיוק אפשר לממש את זה. עשית את זה כמו שצריך! יישר כח!
19.07.2010 18:38:54

#39 

zavlila (אורח):
גאוני ויצירתי!
cp77fk4r יפה שמצאת אץ זה ב3 פיקסלים :)
20.07.2010 03:26:35

#40 

cp77fk4r:
תודה, אבל זאת לא חוכמה, הרי קיצרתי את המחרוזת המקורית בארבעה תווים!
20.07.2010 06:24:20

#41 

rabio:
יצא עשר! ממש מגניב.
שאלה לגבי ההסבר: מה זה עורך הקסדצימאלי, ואיפה אפשר להוריד אחד?
29.07.2010 15:58:03

#42 

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

מאיפה ניתן להוריד אחד כזה?

תחפש בגוגל Hex Workshop של חברה בשם BreakPoint, הוא גם העורף שבו השתמשתי בהדגמה והוא גם המועדף עלי.
29.07.2010 17:07:07

#43 

rabio:
תודה רבה
29.07.2010 17:36:22

#44 

Hellgrace (אורח):
בהחלט יצירתי :)
עם זאת, מתמיה אותי שמוצר אבטחה איכותי שכזה לא שם הוקים על CreateProcess / ShellExecute ומונע הרצה של cmd דרך משתמש לא מאובטח.
אגב - יצא לך לבדוק איזה כלים היו נגישים מהמעטפת?
02.08.2010 22:43:12

#45 

שלומי (אורח):
cp77fk4r - מדהים, פשוט גאוני!
אני די נוב בתחום הזה,
אבל הוא די מעניין והייתי שמח אם תוכל לענות לי.
בעיקרון הצלחתי בשני הכיוונים. אבל אני לא מרגיש בטוח, בוויקיפדיה רשום שה DATA מתחיל ב
0000FF, האם לזה התכוונת כשרשמת "ערך ההיסט שלו לאחר הבית העשירי" כי אני לא ממש התעסקתי עם עורך האקס. ולא הבנתי איך למצוא. והבנתי ש0A0D זה שורה חדשה אבל למה פעמיים?
תודה רבה, ומצטער שאני כזה >:
03.08.2010 02:37:16

#46 

cp77fk4r:
אין קשר בין הסיטריקס לבין התוכנות שאפשר להריץ, בפתרון הזה / מקבילים אליו יש אפשרות ליישם רשימות שחורות ולבנות של אפליקציות- אם הצלחת להריץ אפליקציה זה רק בגלל שלא מימשו נכון את הפתרון הזה :)
03.08.2010 08:44:17

#47 

cp77fk4r:
שלומי- אין לך שום סיבה להצטער, אף אחד לא נולד עם הרשאות root ;)
בקשר לשאלה שלך- שמתי שם פעמים ירידת שורה כי אם לא, ה-cmd היה מריץ את ה״זבל״ של מבנה הקובץ ביחד עם הפקודה שלנו, בעזרת ירידת השורה אנחנו מפרקים את הפלט למספר פקודות. למה פעמיים ירידת שורה? זה כי ה-cmd של מערכת ההפעלה מסריח! ;)סתם, פשוט כי ירידת שורה פעם אחד פשוט לא רצה לעבוד! :)
03.08.2010 08:56:01



הוסף את תגובתך:
כינוי:
תגובה:
קוד אבטחה:
העתק לכאן את הקוד:
 
Digital Whisper © 2009 - 2014 - כל הזכויות שמורות ל-אפיק קסטיאל ול-ניר אדר.