الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

shell coding

مغلق
بدأه seco في 27 فبراير 2005 · 35 رد · 3,453 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

Why the null bytes and escape characters like newline \n tab \t Kill the shell code and they shouldn't found in the shell code ??

also

the following shell code :-

char shellcode[]=

"\x0d\x10" /* the shell is big but i but this only for understanding

main()

{

void (*z)()=(void*)shellcode; // I can't understand this line ?????

z();

}

Nothing Beat the Human Brain

موبايل 020104927122

#2

أعتقد أنك تسأل عن الفراغات والأحرف المستخدمة في shellcode لإستغلال ثغرات النظام؟

تستخدم الفراغات أو القمية 90 وتساوي تعليمة nop بمعنى لاشيء

لإحداث فيض أو خطأ في ذاكرة النظام

لنفرض أن النظام يخصص حجم من الذاكرة لإسم معين هذة الذاكرة تكفي ل 10 أحرف

لإحداث خطأ فيض نقو بإرسال مئة حرف nop أو لا شيء .. وهكذا

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

السلام عليكم

شكرا للرد

ولكن السؤال الاخر هو

char shellcode[]=
"\x0d\x10"                                            // the shell is big but i but this only for understanding

main()
{
void (*z)()=(void*)shellcode;            // I can't understand this line ?????
z();
}

انا لا افهم السطر الذى هو فى الكود السابق؟؟؟

Nothing Beat the Human Brain

موبايل 020104927122

#4

أخي الكريم ,,

ال shellcode يعني برنامج أو مجموعة أوامر

مثلاً دالة المسج Messagebox

عبارة عن كود إسمبلي يمثل إتصال لدالة call Msg

لو نريد أن نكتبة بالهكس = FF 15 Msg

ال FF 15 تساوي التعليمة Call

وبهذا shellcode []= /xFF /x15

أما عن الكود

void (*z)()=(void*)shellcode;          
  // I can't understand this line ?????
z();

الحرف z عبارة عن مؤشر = بداية shellcode

ولنفرض أن shellcode عبارة عن برنامج يظهر مسج على الشاشة

لإظهار المسج أو لتنفيذ محتوى shellcode نستخدم الكود السابق

نعين عنوان بداية تنفيذ shellcode

void (*z)()=(void*)shellcode;

بعد ذلك نتصل مباشرة

z();

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#5

السلام عليكم ........

موضوع جميل ........ لكن ما هو اشيل كود shellcode أخواني الكرام ؟؟؟؟؟؟؟؟؟؟

#6

الشيل كود :) اهم شئ لمبرمجي الاكسبلوتات :)

مثلا يكتب بأسمبلي .. مثلا ويجد الكثير منهم .

منه من يفتح port لانتظار استقبال اتصال وعند الاستقبال يرسل المتصل الى /bin/bash او /bin/sh فيجعله يشبك على الجهاز remote وعلى حسب الثغراه او الطريقه ..

مثلا يوجد خطء برمجي في برنامج ftp واحد المبرمجين كتب اكسبلوت لهاذا البرنامج عن طريق الخطء الذي في البرنامج وهو بمجرد وجود ال ip للجهاز وport ال ftp

يرسل قيم خاصه مثلا في قيمه ال user عندك الاتصال بل ftp لا يقبل اكثر من 500 حرف ولو زاد سوف يحدث خطء ويدخل على قيم اخرى ويكتب على ال esp و eip

فهنى الاكسبلوت يقوم بارسال قيم nops /x90/ الى الخادم ب 500 قيمه وبعدها ينزل ال shellcode وبعدها bytes to cram وفي النهايه return adress

لكي يعود الى بدايه عمل الخطء فبدل مايشغل البرنامج يشغل ال shellcode والباقي الشيل كود يعمله مثل ماقلنا في الاول لكل شل كود عمل خاص فيه :)

--------------------------------------------------------------------------

| NOP | shellcode | bytes to cram | return adress |

--------------------------------------------------------------------------

وهاذا جدول بسيط بطريقه عمل هذه التقينه

#9

شكراٌ اخي asm4all :)

#10

بما أن الشل كود يعتمد على الـ integer overflow

فلما لا يكون الإعلان عن المتغيرات بحجم أكبر Long مثلاً أو Dword ؟ تفادياً لحصول overflow

أخي سوف تبكي عليك العيون * * * وتـسـأل عـنك دمـوع المـئـين

فإن جف دمعي سيبكي الغمام * * * يـرصـع قـبرك بــالـياسـمـيـن

أخـي مـا يـأسـنـا ولـن نيـأسـا * * * وما طال في القلب لبث الأسى

ومـا حـل أفــئــدة الــمــــؤمـن * * * سـوى أمـل في الـجنـان رسـى

أخي فانتظر ولتعش في غـد * * * سـيـنـبـثـق الأمـل الـسـرمـد

فـإن مـزقـتـنـا سني الــحـيـاة * * * فإنـا مع الـنصـر فـي مـوعــد

#11

إجابة شاملة أخي Qnix

وشكراً Asm4all ولكن الأمثلة التي وضعتها, مثل المثال الأول خاص بمترجمات الإسمبلي على أنظمة يونكس ؟!

وطبعاً هذا أشمل موقع يتحدث عن shellcode لجميع الأنظمة

http://www.shellcode.com.ar

أخي MSVS , الفيض لا يحدث في متغيرات DWORD و long

يحدث في المصفوفات ؟!

مثل char[] و byte[] ....

هل هذة المتغيرات لها حدود ؟! بالتأكيد هذا هو السبب في حدوث الفيض

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#12
jaas كتب:
أخي MSVS  ,  الفيض لا يحدث في متغيرات DWORD و long

يحدث في المصفوفات ؟!

مثل char[]  و byte[]  ....

هل هذة المتغيرات لها حدود ؟!  بالتأكيد هذا هو السبب في حدوث الفيض

-

جزاك الله خير على ردك و عندي نقطتين :

1 - ما المانع من أن يعلن عن مصفوفات بأحجام كبيرة ! فاستهلاك الذاكرة لا تسبب عائقاً في الوقت الحاضر مع التطور التقني .

2 - أين مصائد الأخطاء من إلتقاط overflow ؟

والسلام عليكم

أخي سوف تبكي عليك العيون * * * وتـسـأل عـنك دمـوع المـئـين

فإن جف دمعي سيبكي الغمام * * * يـرصـع قـبرك بــالـياسـمـيـن

أخـي مـا يـأسـنـا ولـن نيـأسـا * * * وما طال في القلب لبث الأسى

ومـا حـل أفــئــدة الــمــــؤمـن * * * سـوى أمـل في الـجنـان رسـى

أخي فانتظر ولتعش في غـد * * * سـيـنـبـثـق الأمـل الـسـرمـد

فـإن مـزقـتـنـا سني الــحـيـاة * * * فإنـا مع الـنصـر فـي مـوعــد

#13

السلام عليكم

لا يا جماعه فيه فرق كبير فى integer overflow والbuffer overflow فى مصفوفه

الinteger overflow منقسمه الى int و انه متغير من نوع الارقام

ملحوظه : الثغرات الاخيره مثل ال png وال GDI كلها كانت integer

فى ثغره الpng : كان تغير فى جزء الالوان لا اقصد فى اللون نفسه المهم كان فيه متغير int

فقام المكتشف بتغير جزء فى المتغير ده ازاى؟؟؟

مثلا int 3 تم تغيرها الى int 1 ثم نتج overflow

وهكذا ثغره GDI

اما بالنسبه لل مصفوفات كانها ارجومنت او input يقوم بادخل اى عدد حتى يحصل لها overflow

والله اعلم

#14

بصراحه مو فاهم شي من shellcode

آخر ثغره حصلت اللى هي ثغرة الصور من نسق jpg

كيف اتحول النسق jpg من انه يشغل صور الى تشغيل ملف تنفيذي

يعني يوصلك ملف باسم pic.jpg اذا شغلته كأنك شغلت ملف exe

شي غريب فعلا

#15

هو ليس ملف تنفيذي exe انما هو طفح في محرك تشغيل الصور في نظام ويندوز بهاذا الخطء يسبب تشغيل شيل كود والشيل كود هو وعمله .. ينزل ملف يفتح بورت يعطيك اتصال .. الخ ..

#16

السلام عليكم

ليس اخر ثغره الjpeg بال ثغرت ال png وده نوع من الصور زى الjpg والخ...

والله اعلم

#17

شكرا أخي Jass على الرابط ,

يمكن فعلا الملف يشرح على نظام اللينكس ولكن يمكن ببساطه تحويل الكود ليعمل على الوندوز فالاختلاف بسيط حيث يعكس الباراميتارات الخاصه بكل عمليه في الترتيب ويغير فقط في شكل العمليه ولكن كود السي مفهوم

هل يمتلك احد مصدر يتكلم عن الفيض الحاصل في jpg , png

وشكرا

#18

الله يهديك أخي bigboss1988 فيض في DWORD , integer كيف ؟!

الخطأ يحدث في معالجة الصورة

شكراً أخي Asm4all وهذا ماتريد

http://www.k-otik.com/exploits/20050302.trillian.py.php

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#19
MSVS كتب:
جزاك الله خير على ردك و عندي نقطتين :

1 -  ما المانع من أن يعلن عن مصفوفات بأحجام كبيرة ! فاستهلاك الذاكرة لا تسبب عائقاً في الوقت الحاضر مع التطور التقني .

2 - أين مصائد الأخطاء من إلتقاط overflow ؟

والسلام عليكم

مازال السؤال يبحث عن إجابة !

أخي سوف تبكي عليك العيون * * * وتـسـأل عـنك دمـوع المـئـين

فإن جف دمعي سيبكي الغمام * * * يـرصـع قـبرك بــالـياسـمـيـن

أخـي مـا يـأسـنـا ولـن نيـأسـا * * * وما طال في القلب لبث الأسى

ومـا حـل أفــئــدة الــمــــؤمـن * * * سـوى أمـل في الـجنـان رسـى

أخي فانتظر ولتعش في غـد * * * سـيـنـبـثـق الأمـل الـسـرمـد

فـإن مـزقـتـنـا سني الــحـيـاة * * * فإنـا مع الـنصـر فـي مـوعــد

#20
jaas كتب:
الله يهديك أخي bigboss1988  فيض في DWORD , integer    كيف ؟!

الخطأ يحدث في معالجة الصورة

السلام عليكم

انا قصدى ثغره الماسنجر الاخيره التى كانت فى مكتبه الPNG

http://www.securiteam.com/windowsntfocus/5TP042KEVO.html

حضرتك وضعت رابط لنفس المكتبه ولكنها بتكلم عن شى تانى خالص!!!

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#21

السلام عليكم

اظاهر انى كتبت ب nikename بتاع اخى

اسف يا جماعه

#22

أخي MSVS

اقتباس
1 -  ما المانع من أن يعلن عن مصفوفات بأحجام كبيرة ! فاستهلاك الذاكرة لا تسبب عائقاً في الوقت الحاضر مع التطور التقني .

2 - أين مصائد الأخطاء من إلتقاط overflow ؟

والسلام عليكم

بالنسبة للنقطة الأولى حجز مساحات كبيرة من الذاكرة ,,

أولاً أكثر أخطاء الفيض لاتحدث في الذاكرة العامة وإنما تحدث في المكدس , وكلنا نعلم أن الحجم الإفتراض للمكدس يساوي 1 ميجا بايت ويخصص لمعالجة البيانات المؤقتة

وبعد المكدس تأتي أخطاء الفيض في الكومة heap والحجم الإفتراضي لها من 1 - 2 ميجا

ولهذا السبب ترى 80% من الثغرات تكتشف في المكدس و الكومة

----

بالنسبة لمصائد الأخطاء ؟!

تستغل الثغرة ويتم نقل التنفيذ قبل أين يحدث الخطأ ؟! ولذلك فإن دورة المصيدة لن تحدث

وفي نوع ثاني من الثغرات يعتمد على المصيدة لتنفيذ الثغرة؟!

فمثلاً تكتب كود يقوم بإحداث خطأ وبعد ذلك يقوم النظام بنقل التحكم إلى بلوك المصيدة

وعندما تحفظ عناوين الإنتقال إلى المصيدة تقوم بكتابة نفس الكود الذي يحدث الخطأ بالإضافة إلى حجز العناوين التي سيستخدمها النظام لنقل التحكم إلى بلوك المصيدة , , وبهذا لن يفلت مجرى التنفيذ من يدك

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#23
jaas كتب:
بالنسبة  لمصائد الأخطاء ؟!

تستغل الثغرة ويتم نقل التنفيذ  قبل أين يحدث الخطأ ؟! ولذلك فإن دورة المصيدة لن تحدث

وفي نوع ثاني من الثغرات يعتمد على المصيدة لتنفيذ الثغرة؟!

فمثلاً تكتب كود يقوم بإحداث خطأ  وبعد ذلك يقوم النظام بنقل التحكم إلى بلوك المصيدة

وعندما تحفظ عناوين الإنتقال إلى المصيدة  تقوم بكتابة نفس الكود الذي يحدث الخطأ بالإضافة إلى حجز العناوين التي سيستخدمها النظام  لنقل التحكم إلى بلوك المصيدة , , وبهذا لن يفلت مجرى التنفيذ من يدك

-

انا اول مره اسمع عن ثغرات المصيده ايه ديه؟؟؟

انتا تقصد SEH ولكن هذه تندرج تحت نطاق الstack ام ماذا ؟؟؟؟

ولاه الstack protction ?????

#24

اخوان الي يكتبون المسطلحات بلعربي ... لو يحطونها بلانجليزي احسن لاني في حياتي ماسمعت عن المصيده ...

#25

المصيدة أو catch معروفة في لغة السي

وطريقة كتابتها

__try {
.......
.....
تنفيذ مجموعة أوامر 
} catch(err)
{
نقل التحكم إذا حدث أي خطأ في الأوامر السابقة

}

هذا البلوك يستخدمة النظام بكثرة ,, وعند إستغلال أي ثغرة

يجب أن تعرف أن النظام سينقل التنفيذ إلى دالة catch

ولهذا السبب تشاهد في أغلب أكواد الثغرات .. ملاء كامل ذاكرة المكدس بتعليمة nop

لكي لايجد النظام بلوك المصيدة

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

هذا الموضوع مغلق.

مواضيع مشابهة