soufianosse

[ تمت الإجابة ]ما هي اقتراحاتكم لانهاء Process يحمي نفسه

23 ردود في هذا الموضوع

السلام عليكم ورحمة الله تعالى وبركاته ،،

في الجامعة لدينا برنامج VNC لمراقبة الاجهزة ، طبعا البرنامج معروف عمله

جائتني فكرة انهاء البرنامج ، اول امر قمت بعمله هو فتح ادارة المهام وانهاء البروسيس الخاص به وهو winvnc4.exe لكنه رفض دالك والاحظ ان اسم المستعمل ليس اسم المستخدم بل System

عندما نضغط كليك يمين على البرنامج تضهر لنا قائمة Menu هناك Option مفعلة لكن عند الضغط عليها تخرج لك رسالة بان هدا ممنوع

حملت OllyDBG واردت عمل attache لـprocess البرنامج وتتبع الرسالة لكني لم اجد process البرنامج في قائمة process المفتوحة

هناك ايضا خاصية مكتوب عليها Close VNC لكنها غير مفعلة .

الطريقة البرمجية التي كنت افكر فيها هي جلب جميع الـProcess المفتوحة بالدالة CreateToolhelp32Snapshot تم Process32First تم جلب اسم الـProcess ومقارنته مع winvnc4.exe

عندما يتحقق الشرط يقوم بجلب الـID تم تمريره للدالة OpenProcess مع الخاصية PROCESS_TERMINATE تم TerminateProcess

لكن الطريقة غير فعالة فلن تقوم بانهاء بروسيس البرنامج وربما لن تستخرجه كما وقع مع OllyDBG

اضن انه ممكن انهاء بروسيس البرنامج لكن بدوال الـNative لكني لا اجيد استعمالها

ممكن ان نناقش هنا اولا كيف يحمي الـProcess نفسه ؟ وكيف تقوم الدالة TerminateProcess بانهاء Process معين ؟ وما هي الاقتراحات لانهاء Process الـVNC ؟

لغة البرمجة التي استعملها : الاسمبلي على MASM32

تم تعديل بواسطه soufianosse
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هل تعرف برنامج Kernel Detective ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

نعم اخي XACKER اعرف هدا البرنامج للاخ GM

لكني لا اريد استعمال برنامج جاهز ,, فالهدف من هدا الامر كله هو التعلم وليس انهاء دالك الـProcess بالتحديد :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

صراحة لا أعلم هل GM نشر الشفرة المصدرية أم لا (أعتقد لا) لكن لا يضير التأكد، وبكل الأحوال أعتقد أنه حالما يرى الموضوع لن يبخل بالإجابة عليك.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك اخي Xacker

الاخ GM لديه ما يقول في هدا الموضوع , ايضا بعض الاخوة يعرفون بعض المعلومات

والموضوع للنقاش حتى يتعلم ويستفيد منه الجميع :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

لابد اولا من معرفة طريقة حماية البرنامج كي نعرف كيف نتخطاها .

هل من رابط للبرنامج (بدون كراكات) او موقع الشركة المنتجة ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اهلا اخي GM :happy:

تفضل هدا هو البرنامج اخدته من جهازي في الجامعة http://www.mediafire.com/?rzmzlnyoynm

بالنسبة لموقع البرنامج : www.realvnc.com/

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

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

اضن ان هدا يمكن عمله من Options الموجودة بالبرنامج وهي حماية نفسه عندما يكون الاتصال قائما بين الجهازين :)

تم تعديل بواسطه soufianosse
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اذا، سأنتظر حتى اذهب لمكان العمل حتى يمكنني تجريبه على الشبكة هناك :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك اخي GM ، خد وقتك الكافي ...

فقط قبل دالك لو امكن ان توضح لنا بعض الطرق في حماية بروسيس لنفسه ؟ ولمادا لا تستطيع الدالة TernimateProcess ايقافه ؟

امر اخر خارج عن موضوع الـprocess

قمت بعمل تنقيح للبرنامج وتوصلت الى ان البرنامج يضع بعض القيم في الروجيستري بهدا المسار HKEY_CURRENT_USER\Software\RealVNC\WinVNC4

ومن ضمنها الباسوورد الدي يدخل به المتحكم

هناك قيمة اسمها Password عند فتحها نجد

passwordq.jpg

الباسوورد الدي وضعته هو soufiane-10 وعند تعديله تتغير هده القيم

اكيد ان لها علاقة بالباسوورد الحقيقي

اعتدر عن هده المقاطعة الخارجة عن اطار الموضوع :blush:

تم تعديل بواسطه soufianosse
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

لم اجد هذه الخاصية التي تجعل البرنامج يفعل الحماية على نفسه :blink:

عموما راجع هذا الرابط على at4re ربما تستفيد:

http://at4re.com/f/showthread.php?t=7046

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك اخي

جربت برنامجك في الجهاز بالجامعة لكنه لم يشتغل عند فتحه يعطي رسالة بانه لم يتمكن من تشغيل الدرايفر لم اتدكر بالضبط الرسالة المهم لها علاقة بتحميل الدرايفر بهدا لم يفتح البرنامج

جربت برنامج Process Explorer

Kill Process

Force to kill

suspend

ولا واحدة اشتغلت كلها تعطي رسالة بعدم القدرة على انهائه :mad:

حتى الان لا اعرف كيف تم عمل حماية على نفسه

لم اجد هده الخاصية ان ايضا

حسب معلوماتي هناك برامج تجارية تعطيها البروسيس وتقوم بحمايته

متل هدا : http://securite-facile.ovh.org/processguard.php

وادا لاحظت عند الضغط على Options في البرنامج فانه يفتح برنامج اخر بواسطة CreateProcess وهو موجود معه في نفس الملف

لكن في الجامعة حتى بروسيس برنامج VncOption ممنوع اضهاره :wacko:

كيف يمكن ان اعرف نوع الحماية او اي برنامج مستعمل في دالك ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

عادة سيكون محمي عن طريق SSDT Hook او Kernel Object Type Manipulation .

جرب النسخة القديمة من Kernel Detective لعلها تعمل ، اذهب الى صفحة الـ System Service Descriptor Table ، اي الـNT Servies تم عمل hooks لها وما اسم الدرايفر المسئول عن الـhook ؟

http://www.at4re.com/files/Tools/Releases/GamingMasteR/KERNEL_DETECTIVE_V1.3.0.ZIP

تم تعديل بواسطه GamingMasteR
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اعمل Hook لمادا وكيف ؟ :unsure:

ممكن توضح :blush:

امر اخر مادا تعني هده الخاصية في برنامجك :huh:

هل دوال Native التي تضهر في القائمة هي مستعملة الان ام مادا ؟

اضنها تضهر الدوال التي تم استدعائها من برنامج ما

لكن ما الهدف من هدا ؟

تم تعديل بواسطه soufianosse
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بحت في الموضوع وفهمت بعض الامور

هده الخاصية تعرض الـ SSTD Table حيت ان هناك بعض البرامج ( rootkit ) تعمل Hook على هده Table وتغير اتجاه تنفيد الدوال الى اكواد خاصة بها

وما يقوم به برنامجك هو كشف اي تعديل على هده Table مع امكانية ارجاعه Defaut

صح ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

صحيح ، لكن ليس من الضروري ان يكون Rootkit هو الذي قام بتعديل على الـSDT فعادة يقوم بهذا برامج حماية مثل مضادات الفيروسات وأنظمة اخرى مثل الـHIPS ااو الـAnti-cheats .

+ يمكن التأكد من هذا عن طريق الـhook driver .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

طيب اخي GM لو سمحت ممكن تفسر هدا الامر

انا فهمت ان دوال الـNative هي عبارة عن اكواد متل هده بالنسبة للدالة ZwWriteFile

MOV EAX, 0ED
LEA EDX, DWORD PTR SS:[ESP+4]
INT 2E
RETN 24

تقوم بتحميل EAX برقم الخدمة هنا ZwWiteFile تستعمل 0ED , وتجعل EDX مؤشرا على البارامترات التي مررناها للدالة تم تستدعي المقاطعة 2E

السؤال ما الدي تقوم به هده الخدمة 0ED بمعنى اين يدهب التنفيد الان قبل ان يصل الى النواة ؟

قرأت انها تمررها للدالة KiDispatchService

وماهو الفرق بين SSDT و SDT ؟

ما فهمت ان العنوان 0ED موجود في SSDT ويقوم باستدعائ نضير له في SDT :blink:

هناك Table اخرى لم افهمها وهي KeServiceDescriptorTable و KiServiceTable

ممكن توضح لنا هده الامور اخي GM جازاك الله خيرا

لان معضم الكتب التي تشرح مواضيع الـKernel Mode لا تتطرق للاساسيات وحتى لو تطرقت لها تكون فقط نضرة سريعة

تم تعديل بواسطه soufianosse
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الكود الذي عرضته هو stub في ntdll.dll يقوم بنقل التنفيذ من مستوى المستخدم الى النواة ، وهناك يتم تنفيذ NtWriteFile الحقيقية الموجودة في الكرنل (ntoskrnl.exe) .

عند تنفيذ int 0x2e يتم استدعاء الـISR وهو KiSystemService ، وهناك يتم معرفة الـIndex الخاص بالـخدمة (eax) وعنوان البارامترات الموجودة في الـuser-mode stack في edx ثم استخراج عنوان الـService routine واستدعائه (طبعا بعد الكثير من عمليات الـprobing وغيرها) .

mov eax, 0x0d

lea edx, dword ptr [esp+4]

/--int 0x2e

|

| (System Service Table)

| [0x805A4614]:NtAcceptConnectPort

| [0x805F0ADC]:NtAccessCheck

| [0x805F4312]:NtAccessCheckAndAuditAlarm

| [0x805F0B0E]:NtAccessCheckByType

| [0x805F434C]:NtAccessCheckByTypeAndAuditAlarm

| [0x805F0B44]:NtAccessCheckByTypeResultList

| [0x805F4390]:NtAccessCheckByTypeResultListAndAuditAlarm

| [0x805F43D4]:NtAccessCheckByTypeResultListAndAuditAlarmByHandle

| [0x806153A2]:NtAddAtom

| [0x806160E4]:NtAddBootEntry

| [0x805EBEDA]:NtAdjustGroupsToken

| [0x805EBB32]:NtAdjustPrivilegesToken

| [0x805D4B3A]:NtAlertResumeThread

\->[0x805D4AEA]:NtAlertThread

[0x806159C8]:NtAllocateLocallyUniqueId

[0x805B5F72]:NtAllocateUserPhysicalPages

[0x80614FE4]:NtAllocateUuids

[0x805A8A9E]:NtAllocateVirtualMemory

[0x805B0596]:NtAreMappedFilesTheSame

[0x805D65FE]:NtAssignProcessToJobObject

...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يعني تتبيت Hook على دوال Native يكون على مستوى SSDT ، بمعنى تغيير رقم الخدمة لدالة برقم خدمة لدالة اخرى صح ؟

برنامج Kernel Detective يقوم بكشف هدا الامر بعمل مقارنة لرقم الخدمة في SSDT مع مقابله في ntoskrnl.exe

ادا كان مختلف يعني ان هناك برنامجا يعمل Hook على هده الدالة ؟ :blink:

تم تعديل بواسطه soufianosse
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

نعم لكن ليس ذلك بتغيير رقم الخدمة بل بتغيير عنوان دالة الخدمة في المصفوفة التي تحتوي على عناوين دوال الخدمات .


ptrST = KeServiceDescriptorTable.ServiceTable;
ptrST[x] = HookRoutine; // where x is the service index

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فهمت الامر الان :happy:

يعني انه لا مفرلـRootkit من Kernel Detective

الا يمكن لـRootkit والبرامج التي تعمل هدا النوع من الـHook ان تمنع برنامجك من مراقبة SSDT :P

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
يعني انه لا مفرلـRootkit من Kernel Detective

الا يمكن لـRootkit والبرامج التي تعمل هدا النوع من الـHook ان تمنع برنامجك من مراقبة SSDT

هي لعبة قط وفأر !

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا اخي GM وبارك الله فيك على هده المعلومات القيمة

بالمناسبة لي طلب بسيط ان كان لديك الوقت ارجو ان تكمل هده الدورة

http://www.at4re.com/f/showthread.php?t=3888

اريد الانتقال من الاسمبلي الى C لكني اجد مشاكل في Syntaxe وفي استعمال VC++ 2008

ارجو منك دالك ولو بشكل بطيئ ، كل ما سمحت لك الفرصة اكتب فقرة :blush:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أنت مستخدم عادي , والبرنامج عبارة عن عملية SYSTEM , لن يكون لديك أي صلاحية لقتله :)

لا أدري إذا كان بإمكانك تحميل درايفر وعمل ذلك من الكيرنل :)

موفق إن شاء الله ^^

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .