Submit Search
Upload
Dw124 3-kernel so-injector
•
0 likes
•
412 views
A
AdirMakmel
Follow
A cool article I published a year ago on Digital Whisper.
Read less
Read more
Presentations & Public Speaking
Report
Share
Report
Share
1 of 11
Download now
Download to read offline
Recommended
סיכום הקורס באבטחת מידע
סיכום הקורס באבטחת מידע
csnotes
PHP Scalability
PHP Scalability
guest2b909d
Introduction to malware analysis & reverse engineering
Introduction to malware analysis & reverse engineering
yarden hanan
Introduction To Malware Analysis & Reverse Engineering
Introduction To Malware Analysis & Reverse Engineering
yarden hanan
Introduction to malware analysis & reverse engineering
Introduction to malware analysis & reverse engineering
yarden hanan
Nodejs
Nodejs
Eyal Vardi
מושגים שונים בהבנת מערכות מחשב
מושגים שונים בהבנת מערכות מחשב
haimkarel
מושגים שונים בהבנת מערכות מחשב
מושגים שונים בהבנת מערכות מחשב
haimkarel
Recommended
סיכום הקורס באבטחת מידע
סיכום הקורס באבטחת מידע
csnotes
PHP Scalability
PHP Scalability
guest2b909d
Introduction to malware analysis & reverse engineering
Introduction to malware analysis & reverse engineering
yarden hanan
Introduction To Malware Analysis & Reverse Engineering
Introduction To Malware Analysis & Reverse Engineering
yarden hanan
Introduction to malware analysis & reverse engineering
Introduction to malware analysis & reverse engineering
yarden hanan
Nodejs
Nodejs
Eyal Vardi
מושגים שונים בהבנת מערכות מחשב
מושגים שונים בהבנת מערכות מחשב
haimkarel
מושגים שונים בהבנת מערכות מחשב
מושגים שונים בהבנת מערכות מחשב
haimkarel
C# .net lecture 1 in Hebrew
C# .net lecture 1 in Hebrew
Doron Raifman
דרופל מדריך התקנה
דרופל מדריך התקנה
kaplanlior
שיעור 1 - מדעי המחשב כיתה ח עורך פייתון וקלט פלט רותם מלכי 28.5.pptx
שיעור 1 - מדעי המחשב כיתה ח עורך פייתון וקלט פלט רותם מלכי 28.5.pptx
ssuser12810c
קורס אנדרואיד
קורס אנדרואיד
Nathan Krasney
Miss1 tomer fonia_ppt
Miss1 tomer fonia_ppt
TMFTMFTMF1
אבטחת מערכות על Novell
אבטחת מערכות על Novell
guest0573a5
מושגים בסיסיים
מושגים בסיסיים
BattGirl De
Jpeg encoder
Jpeg encoder
Alon Cohen
Stack overflow - by avi halif
Stack overflow - by avi halif
AviHalif
Container
Container
Oded Rotter
הכרת המחשב האישי מצויין
הכרת המחשב האישי מצויין
haimkarel
DLL מדריך לעבודה עם
DLL מדריך לעבודה עם
מורן אלקובי
Selenium WebDriver
Selenium WebDriver
ZahavZilberman
ושימושים חשובים בתוכנה Plugin
ושימושים חשובים בתוכנה Plugin
Nitzan Matan
Developing mobile apps using Xamarin (Hebrew)
Developing mobile apps using Xamarin (Hebrew)
Tsahi Asher
6 sql explorer - powershell dba
6 sql explorer - powershell dba
sqlserver.co.il
C# .net home work1 mycode overview
C# .net home work1 mycode overview
Doron Raifman
react-he.pdf
react-he.pdf
ssuser65180a
SAPUI5 on SAP Web IDE
SAPUI5 on SAP Web IDE
דניאל כנען
More Related Content
Similar to Dw124 3-kernel so-injector
C# .net lecture 1 in Hebrew
C# .net lecture 1 in Hebrew
Doron Raifman
דרופל מדריך התקנה
דרופל מדריך התקנה
kaplanlior
שיעור 1 - מדעי המחשב כיתה ח עורך פייתון וקלט פלט רותם מלכי 28.5.pptx
שיעור 1 - מדעי המחשב כיתה ח עורך פייתון וקלט פלט רותם מלכי 28.5.pptx
ssuser12810c
קורס אנדרואיד
קורס אנדרואיד
Nathan Krasney
Miss1 tomer fonia_ppt
Miss1 tomer fonia_ppt
TMFTMFTMF1
אבטחת מערכות על Novell
אבטחת מערכות על Novell
guest0573a5
מושגים בסיסיים
מושגים בסיסיים
BattGirl De
Jpeg encoder
Jpeg encoder
Alon Cohen
Stack overflow - by avi halif
Stack overflow - by avi halif
AviHalif
Container
Container
Oded Rotter
הכרת המחשב האישי מצויין
הכרת המחשב האישי מצויין
haimkarel
DLL מדריך לעבודה עם
DLL מדריך לעבודה עם
מורן אלקובי
Selenium WebDriver
Selenium WebDriver
ZahavZilberman
ושימושים חשובים בתוכנה Plugin
ושימושים חשובים בתוכנה Plugin
Nitzan Matan
Developing mobile apps using Xamarin (Hebrew)
Developing mobile apps using Xamarin (Hebrew)
Tsahi Asher
6 sql explorer - powershell dba
6 sql explorer - powershell dba
sqlserver.co.il
C# .net home work1 mycode overview
C# .net home work1 mycode overview
Doron Raifman
react-he.pdf
react-he.pdf
ssuser65180a
SAPUI5 on SAP Web IDE
SAPUI5 on SAP Web IDE
דניאל כנען
Similar to Dw124 3-kernel so-injector
(19)
C# .net lecture 1 in Hebrew
C# .net lecture 1 in Hebrew
דרופל מדריך התקנה
דרופל מדריך התקנה
שיעור 1 - מדעי המחשב כיתה ח עורך פייתון וקלט פלט רותם מלכי 28.5.pptx
שיעור 1 - מדעי המחשב כיתה ח עורך פייתון וקלט פלט רותם מלכי 28.5.pptx
קורס אנדרואיד
קורס אנדרואיד
Miss1 tomer fonia_ppt
Miss1 tomer fonia_ppt
אבטחת מערכות על Novell
אבטחת מערכות על Novell
מושגים בסיסיים
מושגים בסיסיים
Jpeg encoder
Jpeg encoder
Stack overflow - by avi halif
Stack overflow - by avi halif
Container
Container
הכרת המחשב האישי מצויין
הכרת המחשב האישי מצויין
DLL מדריך לעבודה עם
DLL מדריך לעבודה עם
Selenium WebDriver
Selenium WebDriver
ושימושים חשובים בתוכנה Plugin
ושימושים חשובים בתוכנה Plugin
Developing mobile apps using Xamarin (Hebrew)
Developing mobile apps using Xamarin (Hebrew)
6 sql explorer - powershell dba
6 sql explorer - powershell dba
C# .net home work1 mycode overview
C# .net home work1 mycode overview
react-he.pdf
react-he.pdf
SAPUI5 on SAP Web IDE
SAPUI5 on SAP Web IDE
Dw124 3-kernel so-injector
1.
- -7h3r3 15 n0
5p00n- Linux kernel so injector מקמל אדיר מאת הקדמה ומחקר בפיתוח בעיקר עסקתי האחרונות השנים בשלושת low-level .מודרניות הפעלה במערכות יותר טוב להבין מנת על בלינוקס שלי הקרנלי הפיתוח יכולת את ולשפר ללמוד רציתי האחרונה בתקופה .בקרנל השונים המנגנונים את להבין בשביל גם וכמובן החומרה עם התקשורת את של הקרנל ,כלומר פתוח קוד עם שבאה הפעלה מערכת זאת שלינוקס מכיוון בלינוקס דווקא בחרתי וגם לינוקס (ברמה מתועד גם ולרוב מפורסם שלהן מקור כשהקוד מגיעות השונות ההפצות של התוכנות .)אחרת או כזו .ולפתח לדבג ,לקמפל נוח לי שהיה משלי סביבה להרים צריך הייתי בקרנל הפיתוח על להקל מנת על בפרויקט השתמשתי buildroot וליצור שלי לצרכים מינימאלי קרנל לקמפל מנת על rootfs .מתאים ב השתמשתי - VSCODE לינק (יש הקרנל של מקור לקבצי אוטומטית השלמה וקנפגתי הפיתוח כסביבת ל בסוף - repo .)הסביבה של אציג זה במאמר PoC מ משותפות ספריות להזרקת שעשיתי - kernel mode ל - user mode דרייבר ידי על .שכתבתי ה - PoC גרסה קרנל על ונבדק פותח : 4.91.19 ל בנוסף . ב תלות קיימת ,כך - glibc .בהמשך יורחב שעליה כ מוגדר שהקוד להבהיר לי חשוב ,שנמשיך לפני - PoC אנחנו .האפשריים הקצה מקרי בכל מטפל ואינו ב חלקים מעט לא נראה - PoC .באגים לפחות שתוביל בצורה ולהיכתב יותר טוב להיעשות יכולים שהיו
2.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 2 ומושגים הגדרות על בקצרה נסביר זה בחלק ,קרנל signals ו - glibc לדלג ממליץ אני האלו הנושאים את מכירים הנכם (אם .)הבא לחלק Kernel הם העיקריים ,קרנלים של סוגים כמה ישנם : microkernel ו - monolithic kernel הוא לינוקס של הקרנל . monolithic kernel על רק נדון אנחנו והילך (מעתה monolithic kernel הוא הקרנל .) במערכת החלק ב טיפול ,זיכרון ניהול ,תהליכים ניהול על שאחראי ההפעלה - syscalls החומרה עם תקשורת וכמובן של דינאמית בטעינה תומך הקרנל ,הקרנלי הכתובות במרחב שרץ הקוד את לצמצם מנת על .במחשב בדריי אלא שלישי צד בדרייברים מדובר לא .במחשב הקיימת לחומרה בהתאם דרייברים של עצמם ברים .)לתוכו מקומפלים שהדרייברים אחד כבינארי גם הקרנל את לקמפל (ניתן ההפעלה מערכת כלומר ,שלישי צד דרייברים להוסיף כלל בדרך ניתן ,בהן להופיע יכול לינוקס של שהקרנל התצורות בשתי חתימה נצטרך (לפעמים מפתח כל ידי על להיכתב שיכול בקרנל שירוץ אחר קוד קטע מנת על דיגיטלית .)זה במקרה נתעסק לא זה במאמר אך ,דרייבר לטעון Signals הנשלחות הודעות הם סיגנלים .מהן חלק הוא סיגנלים ,תהליכים בין לתקשר דרכים כמה ישנן בלינוקס דוגמה .שהתרחש אירוע על לו להודיע כדי לתהליך נשלח סיגנל ,ספציפי לתהליך מתהליך או מהקרנל סיג למספר נפוצים נלים : SIGSTOP, SIGKILL, SIGCONT ו - SIGSEGV . לרשום יכול תהליך callback בעזרת לסיגנל sigaction syscall לרשום ניתן . callback חוץ סיגנל לכל מיוחדים משניים : SIGKILL ו - SIGSTOP ו לעצור ניתן ,כלומר . - מ (חוץ ההפעלה במערכת תהליך כל ""להרוג - init בכוונה או בטעות נשלח אם גם ""להרוג ניתן לא שאותו ,SIGKILL .)אליו הסיגנל את יעביר לא הקרנל ב למצוא ניתן מידע עוד - man 7 signals . Glibc כל C compiler הספרית את מממש C הקומפיילר ,לדוגמה .הסטנדרטית MSVC מממש ,מיקרוסופט של את VCRUNTIME ב מדובר שלנו במקרה . - GCC של GNU את שמממש glibc . glibc הספרית היא C ידי על שפותחה הסטנדרטית GNU ניהול ,מחרוזות עם התעסקות ,ופלט קלט עיבוד מספקת הספרייה . .מערכת לקריאות עטיפה חשוב והכי זיכרון
3.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 3 הספרייה הזרקת שלבי נצטרך המשותפת הספרייה את להזריק מנת על תהליך של מזהה לספרייה הנתיב ואת . הספרייה הזרקת הבאים לשלבים מתחלקת המשותפת : 1 . שליחת SIGSTOP .יעד לתהליך 2 . ל פנוי מקום מציאת - shellcode והרצה קריאה של הרשאות לה שיש כתובת (כל שלנו R^X .) 3 . הספרייה מציאת glibc .יעד לתהליך טעונה אשר 4 . פרסור glibc elf של הכתובת את למצוא מנת על ריצה בזמן libc_dlopen_mode . 5 . אוגר השגת rip .היעד תהליך של 6 . ה בניית - shellcode של הנכונות הכתובות עם שלנו : a . .לטעון שנרצה המשותפת לספרייה הנתיב נכתב שאליה הכתובת b . אוגר rip את שטען אחרי התהליך של הריצה את לשחזר שנוכל מנת על התהליך של .שלנו הספרייה c . של הכתובת libc_dlopen_mode .הספרייה את לטעון מנת על לקפוץ נרצה שאליה 7 . .היעד תהליך של הכתובות למרחב המשותפת לספרייה הנתיב כתיבת 8 . ה כתיבת - shellcode .התהליך של הכתובות למרחב 9 . אוגר שינוי rip ה של לכתובת שיצביע התהליך של - shellcode .שלנו 11 . שליחת SIGCONT .יעד לתהליך שלבים 1-3 הפונקציה בעזרת הסיגנל את היעד לתהליך נשלח הראשון בשלב send_sig . את נקרא ,מכן לאחר /proc/pid/maps והרצה קריאה הרשאות עם שהוא בתהליך זיכרון למצוא מנת על (מהקרנל באותה נשתמש ,כן כמו .)כתיבה הרשאות בלי הדפים כאשר גם תהליכים של לדפים לכתוב ניתן של הכתובת את למצוא כדי שיטה glibc . ל עטיפה לדרייברים מייצא הקרנל ,מקבצים ולכתוב לקרוא מנת על - VFS ,לכך בנוסף .נשתמש שבה ומצאתי תהליכים של מזיכרון ולכתוב לקרוא נוחה דרך חיפשתי בפונקציה להשתמש יהיה נוח שהכי
4.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 4 mem_rw מ - proc fs שאני קוד או שונים בפורומים כתבו שאחרים קוד ולעומת תכליתה שזאת מפני ב לבאגים הסיכוי אכתוב - mem_rw ולשנות להעתיק נאלץ מיוצאת לא הזאת שהפונקציה בגלל .יותר נמוך עם שתעבוד מנת על אותה buffers הכתובות במרחב שנמצאים .הקרנלי שלב 4 ( למצוא נרצה כתובתה שאת הפונקציה של השם את לנו יש זה בשלב libc_dlopen_mode גם כן וכמו ) של ההתחלה כתובת את glibc פרמטרים שני בעזרת . ה מבנה את לפרסר נוכל אלו - elf של glibc טעון כשהוא של הדינאמית הכתובת את ולמצוא בזיכרון libc_dlopen_mode . של כללי תיאור לראות ניתן משמאל בתמונה ELF format ה מתחיל הראשונה בכתובת התמונה לפי , - ELF header נמצא ממנו מסוים שבמיקום Program header table ל להגיע ניתן ומשם - sections .השונים [ מקור ] כך ELF header נראה : ה לכל נתייחס לא - ,struct שהוא אותנו שמעניין לשדה רק אלא e_phoff - של המיקום Program header table ה מתחילת - ELF header .
5.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 5 Program header table ה או שהמערכת מידע מכיל בו מבנה שכל מבנים של מערך הוא - loader זקוקים הוא אותנו שמעניין המבנה .לריצה הספרייה או התהליך את להכין כדי לו PT_DYNAMIC (לפי p_type מחושב אשר דינאמי קישור של מידע מכילים אשר מבנים של מערך שמכיל )זה מבנה איזה לדעת נוכל ה טעינת בזמן - ELF . ה את למצוא מנת על - dynamic section : לפי man 5 elf :
6.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 6 ב הנמצאות הטבלאות מתוך - ,dynamic section הן אותנו שמעניינות הטבלאות שתי : DT_STRTAB ו - .DT_SYMTAB DT_SYMTAB ו הסימבולים של הטבלה את מייצגת - DT_STRTAB כל של השם של הטבלה את מייצגת :בהתאמה סימבול את צריכים אנחנו למה libc_dlopen_mode ? בספרייה להשתמש ניתן ,ריצה בזמן משותפת ספרייה לטעון מנת על dl משתמש תהליך כל לא אך ,למזלנו .בה להשתמש נוכל לא ולכן זו בספרייה glibc ההפצות ורוב שיש הנפוצות מהספריות היא בספ להשתמש חייב תהליך כל לא ,בה משתמשות הלינוקסיות .זו רייה libc_dlopen_mode של המימוש היא libc ל - dlopen דינאמית ספרייה לטעון מנת על משמשת אשר .ריצה בזמן לתהליך
7.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 7 שלבים 5-9 הקוד במהלך היה מזריקים שאליו התהליך אם בודקים ,פשוט יחסית הבאה בתמונה המתואר .syscall ה את לבנות מנת על ממשיכים ,מכן לאחר - shellcode של הנתיב את כותבים ,)לתוכו נצלול מעט (עוד את כותבים ,אלו שלבים לאחר .לפני שמצאנו בכתובת התהליך של הכתובות למרחב המשותפת הספרייה ה - shellcode .התהליך של הכתובות למרחב עצמו ל שצלול לפני - shellcode ע נעצר כאשר להיות יכול תהליך שבהם השונים המצבים את להבין צריך ידי ל SIGSTOP ידי על לרוץ וחוזר SIGCONT . מ החזרה בזמן הקרנל ידי על נשלחים סיגנלים - kernel mode ל - user mode ( syscalls, context switch etc .) כאשר יעשה הקרנל מה השאלה נשאלת SIGSTOP דוגמה .חסומה הייתה מערכת שקריאת בזמן נשלח ביצע שלנו שתהליך בזמן ,לכך open לקובץ בו - אחר מתהליך או מהקרנל נשלח זמנית SIGSTOP לתהליך ה ביצוע בזמן יעצור שלנו התהליך ,כלומר .שלנו - syscall נשלח כאשר יקרה מה אך . SIGCONT הרי של ביצוע באמצע היה התהליך .syscall
8.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 8 ה לסוג בהתאם והן לבחור יכול הקרנל שבהן אופציות שתי ישנן - syscall בביצוע שהיה : 1 . אחרי שה - signal handler ה ששוב כך האוגרים את ישנה הקרנל יסתיים - syscall .יתבצע 2 . שגיאה ערך עם הקריאה את יכשיל הקרנל EINTR . ,ארכיטקטורה תלוי הוא סיגנלים של בביצוע שמטפל (הקוד בזה שמטפל בקרנל הקוד את נראה בואו מ דוגמה להראות בחרתי - x86 :) י הקרנל ,הספרייה הזרקת בזמן לפונקציה פעמיים גיע handle_signal כשנשלח אחת פעם , SIGSTOP כשנשלח אחת ופעם SIGCONT . ב כשמדובר הראשונה הפעם עבור - SIGSTOP במהלך היה הוא אם יבדוק הקרנל syscall בהתאם ,כן אם . ה לסוג - syscall ה של מחדש אתחול לבצע אם יבחר הקרנל - syscall חיסור ידי על rip ב - 2 של (הגודל syscall opcode להחזיר או ) EINTR שה לתהליך להחזיר כלומר - syscall יגיע הקרנל השנייה בפעם .בוטל כשנשלח זו לפונקציה SIGCONT שנעצר לאחר שוב התהליך את להריץ מנת על , התהליך הזאת בפעם באמצע היה לא בהכרח syscall ל יכנס לא הקרנל לכן - if .הזה
9.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 9 אחרי ,לכן עצרנו שבו במצב להתחשב נצטרך אנחנו ,התהליך את ועוצרים ההזרקה את מבצעים שאנחנו ה ביצוע בזמן התהליך את - syscall מעט לא ישנם . syscalls ביצוע שלאחר SIGSTOP ואז SIGCONT לא יחזיר והקרנל מחדש יאותחלו ,EINTR המלאה הרשימה את לראות בשביל man 7 signal . את לבנות מנת על ה - shellcode :פרמטרים שלושה נצטרך שלנו 1 . של שמצאנו הפונקציה של הכתובת את libc_dlopen_mode . 2 . .לטעון נרצה שאותה הדינאמית הספרייה של הנתיב את כתבנו שאליה הכתובת את 3 . מנת ועל אותו כשעצרנו מסוימת בכתובת היה התהליך כלומר ,לחזור נרצה שאליה הכתובת את ,למעלה שהזכרנו כפי .זו לכתובת לחזור נצטרך לקרוס לו לגרום מבלי התהליך של הריצה את לשחזר ביצוע בעת היה התהליך אם לבדוק נצטרך syscall שאליה יעד הכתובת את נחסיר כן ואם ב לקפוץ נרצה ה גודל - opcode של syscall על היינו אידיאלי (בעולם שוב שיתבצע מנת שזה בודקים syscall ב שתומך - restart בדיוק את לשחזר מנת על מבצע שהקרנל כמו .)הריצה שאוגר מפני מושלם לא האוגרים של השחזור r15 .משתחזר לא להיות חייבת שהמחסנית לשכוח לא aligned ל - 91 ל כשקוראים - mode_dlopen_libc . ה על מצטער - AT&T syntax ...
10.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 11 ה את שבנינו אחרי - shellcode ה את נכתוב הנכונות הכתובות עם - shellcode של הכתובות למרחב ( המתאימות ההרשאות את לה שיש לפני שמצאנו בכתובת התהליך R^X .) אוגר את לשנות נרצה ,מכן לאחר rip ה של לכתובת שיצביע - shellcode שבו במצב ,לזכור חשוב .שלנו את נשנה rip ל להצביע - shellcode ביצוע בזמן לעצר היה עלול שהתהליך בעובדה נתחשב לא אך שלנו syscall , נשלח שכאשר מצב להיווצר יכול SIGCONT שאליה הכתובת את לשנות עלול הקרנל ,לתהליך באוגר ששמנו לכתובת התהליך יחזור rip-2 למעלה שהוזכר (כמו של הגודל פחות syscall opcode לכן .) מביצוע חזר התהליך אם בדיקה נעשית syscall את נעלה אז rip ב - 2 ב יוריד הקרנל מכן ולאחר - 2 ונגיע ה של לכתובת בדיוק - shellcode . שלב 11 היעד לתהליך נשלח זה בשלב SIGCONT התהליך בהצלחה עברו השלבים כל (אם לרוץ שיחזור מנת על מה לרוץ יחזור - shellcode .לו להזריק שרצינו הדינאמית הספרייה את ולטעון ) ידועות מגבלות 1 . ב בקוד תמיכה אין כרגע - syscalls להם להחזיר שחייב מהסוג EINTR ידי על נעצרים כאשר בחזרה SIGSTOP ב או . - syscalls בעזרת להיקרא צריכים שהיו restart_syscall על שנעצרו אחרי SIGSTOP אחרי לרוץ וחזרו SIGCONT . 2 . לארכיטקטורת רק מימוש קיים כרגע x86_64 . 3 . כ מוגדר הקוד - PoC באגים ולכן בדיקות מספיק עבר ולא בשגיאות נכון מספיק טיפול עם נכתב ולא .מסוימים קצה במקרי לקרות יכולים 4 . ה - shellcode ה והרצת לתהליך הכתיבה לאחר ,כלומר .מתנקים אינם הדינאמית לספרייה והנתיב - shellcode לא .בשימוש לא הוא אם גם לפני שם שהיה המידע את לשחזר הוא לעשות הנכון הדבר ב זה את לממש זמן מספיק לי היה - kernel thread יש אבל נפרד commit שעושה ה באותו זה את - thread בחרתי . ה את להוריד - commit ב הזה - branch ""יתקע הוא אחד מעבד שתחת בגלל הראשי .המחשב את כלומר הקרנל את 5 . אוגר r15 .משתחזר לא .פתירות הינן מעל שצוינו המגבלות שכל לציין חשוב
11.
Linux kernel so
injector www.DigitalWhisper.co.il גליון 124 , דצמבר 2020 11 סיכום בעזרת פרסרנו ,שבחרנו מסוים תהליך עצרנו ?עשינו מה אז /proc/pid/maps זיכרון יש בתהליך היכן R^X הספרייה של הכתובת מה וגם glibc .התהליך אל שנטענה את פרסרנו ,מכן לאחר glibc של הפורמט את כלומר בזיכרון elf הפונקציה את למצוא מנת על , / סימבול libc_dlopen_mode . ה את לבנות התחלנו - shellcode ידי על המשותפת הספרייה את יטען שבהמשך שלנו ל שיקרא כך - libc_dlopen_mode שה מה כל . - shellcode זה צריך שלנו : לספרייה הנתיב את נכתוב שאליה הכתובת כלומר הספרייה את לטעון מנת על נקפוץ אליה הכתובת ,לטעון שנרצה הדינאמית libc_dlopen_mode .התהליך של הריצה את לשחזר מנת על נחזור שאליה והכתובת א כתבנו ,מכן לאחר ה ואת הדינאמית לספרייה הנתיב את שמייצגת המחרוזת ת - shellcode למרחב עצמו .התהליך של הכתובות אוגר את שינינו rip ה את כתבנו שאליה לכתובת שיצביע התהליך של - shellcode לתהליך שלחנו ולבסוף SIGCONT מה לרוץ שיחזור מנת על - shellcode .שלנו ה - repo הפרויקט של : injector - so - kernel - com/Rhydon1337/linux . https://github ה - repo הסביבה של : development - kernel - com/Rhydon1337/linux . https://github המחבר על ( מקמל אדיר Rhydon1337 ) , 22 ומפתח מידע אבטחת חוקר , . o אימייל : com . adirmak1@gmail o :GitHub com/Rhydon1337 . https://github
Download now