تقييم الموضوع :
  • 4 أصوات - بمعدل 3
  • 1
  • 2
  • 3
  • 4
  • 5
كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ?
#1
السلام عليكم
نسخة openwrt x86 على فيرشوال ماشين
جربت linux_server ولكن لم تعمل .. الملف لم يشتغل اصلا رغم اني اعطيته التصريح 777
جربت gdbserver نسخة 6 ، ربطت مع برنامج idapro ولكن يبدون ان فيها مشاكل

لذا ما الحل يا شباب ؟
أعضاء أعجبوا بهذه المشاركة :
#2
جرب هذه الأداة
[url]https://github.com/ReFirmLabs/binwalk[/url]

ساقدم شرح وافي حولها و عن بعض الحيل المفيدة جدا في قادم الايام
مسالة وقت والتزامات فقط
-------------------------------------------
"If you know both yourself and your enemy, you can win a hundred battles without jeopardy." -- Sun Tzu
DISCORD: 9c9a#2236
أعضاء أعجبوا بهذه المشاركة : alaa2003
#3
ما هو البرنامج الذي تستخدمه كـ VM لتشغيل openwrt x86 عليه؟  بشكل عام فـ Qemu هو البرنامج الامثل لهذه الاغراض.
ما هي الخطوات التي اتبعتها انت؟ كان يجب ان تضع الخطوات التي اتبعتها لكي نعرف أين المشكلة يا عزيزي
 
هذا شرح من مبرمجي IDA  لكيفية التنقيح باستخدام gdbserver على برنامج Qemu  و vmware: هنا شرح كيف يتم  اعداد gdbserver للـopenwrt
https://openwrt.org/docs/guide-developer/gdb
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : alaa2003
#4
الاخ المحترم [email protected] لم استطع استخدام الادارة ، لذا نرجو الشرح الوافي منك
الاخ الفاضل [b]Gu-sung18
[/b]
بستخدام vmware
انا لاحظت ان اللينكات اللي حضرتك وضعتها تخص تنقيح للكيرنل ، ولكن انا الهدف هو تنقيح ملف 
دي النسخة لتجربة الربط 20 ميجا فقط
http://66.152.172.251:8061/104.194.254.66-AzsAzs29.ova
root / AzsAzs29

هتغير الايبي بتاع جهازك الى مثلا 10.0.0.2 و ادخل على المتصفح و ادخل عليه 10.0.0.1
[صورة مرفقة: zzQI0tgrSma6UkWGy-Vvfw.png]
وهتضغط Edit و بعدها تضع ايبي في نفس رينج شبكتك ، مثلا اذا كانت شبكتك 192.168.1.0 فتضع ايبي مثلا 192.168.1.20
[صورة مرفقة: -zhEU_NEQ_iYVmb0Hf06Rw.png]
جرب ادخل من الايبي الجديد بعد ما ترجع الايبي بتاع شبكتك
ومتنساش تقفل dhcp علشان هيبنج 10 بنجات و يفصل 10
[صورة مرفقة: UN1IVCiGQEuwYxBS3lCptg.png]

بالنسبة للملف اللي عايز يتعمل له debug
/usr/sbin/vibe

المشكلة زي ما وضحت هي البداية و الربط فقط
طبعا الشغل كله على ida اجباري
أعضاء أعجبوا بهذه المشاركة :
#5
بالنسبة للرابط فما هو مصدرة؟ هذه النسخة بالذات تابعة لاي منتج او بالأحرى لماذا تريد تنقيحها بالذات
انا اسأل لانها لا تقبل التحديث
[صورة مرفقة: XgXZ7cg.png]
لانها قديمة
[صورة مرفقة: Z6cFn3m.png]
ولان gdb غير مثبت فيها بالتالي امامي خيارين اما بناء نسخة مع gdb او تنصيب gdb من خلال حزم الشركة الجاهزة عن طريق الامر opkg
[صورة مرفقة: JiCJPI4.png]
نحتاج ان نثبت gdbserver متوافق مع openwrt x86 لكي يعمل على openwrt x86 وبالتالي يمكننا الاتصال مع منقح gdb  او منقح IDA pro
إقتباس :انا لاحظت ان اللينكات اللي حضرتك وضعتها تخص تنقيح للكيرنل ، ولكن انا الهدف هو تنقيح ملف 

لانهم يستخدمون Qemu  للانظمة المضمنه وليس vmware، حتى موقع openwrt يوفر نسخ لـ Qemu وليس لـ vmware
والرابط الاول هو خاص بالتنقيح لملف على Qemu
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : alaa2003
#6
بالنسبة للنسخة فهي openwrt ولكن من خلال x-wrt اللي توقفواX-Wrt is an extension of OpenWrt for the end-user.
ومن هنا تقدر تشوف ال history
https://en.wikipedia.org/wiki/X-Wrt
ولكن انت بنفسك لاحظت ان الكيرنل بتاعها مش قديم!!! يعني مش هيكون نفس كيرنل النسخة ال discontinued
 
لذا كنت فكرت في حاجتين .. اما اني اعيد وضع روابط ال package resources مرة ثانية و اضع روابط نسخة مماثله من openwrt مباشرة ,وده لانها بتكون نفس الباكدجات ipk وبالتالي ممكن تقبل التحديث من موقع openwrt مباشرة وفقا ل arc الخاص بيها
او اني اسحب ipk مباشرة من openwrt وانصبها يدوي زي ما بنعمل في ريسيفرات ال enigma مع ملاحظة اختيار x86 المتوافق معاها

عموما كنت نفذت الاختيار الثاني:
 
cd /tmp
wget https://archive.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/gdbserver_6.8a-4_x86.ipk --no-check-certificate
ipkg install gdbserver_6.8a-4_x86.ipk
#to run
gdbserver --multi localhost:23946
or
gdbserver --multi :23946
ولكن مع مناقشتي لاحد الاصدقاء قال

gbd + ida is bad pair... it is buggy when target uses pthreads (vibe uses a lot)
إقتباس :ولان gdb غير مثبت فيها بالتالي امامي خيارين اما بناء نسخة مع gdb او تنصيب gdb من خلال حزم الشركة الجاهزة عن طريق الامر opkg
 
ياليت لو يتم بناء نسخة gdbserver ممكن تحل مشكلة pthreads ورغم اني مش فاهم معنى pthreads (ياليت توضح معناها )
وكمان هل هناك اي فرصة لتشغيل linux_server الخاص ب ida_pro
أعضاء أعجبوا بهذه المشاركة :
#7
إقتباس :لذا كنت فكرت في حاجتين .. اما اني اعيد وضع روابط ال package resources مرة ثانية و اضع روابط نسخة مماثله من openwrt مباشرة ,وده لانها بتكون نفس الباكدجات ipk وبالتالي ممكن تقبل التحديث من موقع openwrt مباشرة وفقا ل arc الخاص بيها
او تنقل الملف عبر ssh من ويندوز الى openwrt  عبر WinSCP
إقتباس :    ولكن مع مناقشتي لاحد الاصدقاء قال
    gbd + ida is bad pair... it is buggy when target uses pthreads (vibe uses a lot)

لا اعتقد  ان هذا الكلام صحيح فـ GDB هو منقح مشهور ومستخدم على نطاق واسع من انظمة السيرفرات والحواسيب الشخصية وحتى الانظمة المضمنه ويدعم العديد العديد من الميزات وله عدد مطويرين هائل، كما ان ida له دعم ممتاز من قبل مطوري البرانامج ويستخدم بكثر في تحليل الانظمة المضمنة. قبل قليل ولكي اتأكد قرأت مقالة عن تحليل Bot يستخدم معالج MIPS باستخدام  openwrt + qemu + ida pro ولم يواجه كاتب المقالة اي مشكلة مع الـpthreads
وهذا يثبت كلامي https://sourceware.org/gdb/onlinedocs/gdb/Threads.html   وكذلك https://access.redhat.com/documentation/...reads.html
فالتوثيق الرسمي يقول ان GDB  يمكنه التعامل مع الامر (و ida pro عندما يستخدم linux_server فهو يدمج قدرات منقح GDB مع المحلل الخاص بـ ida pro)
ولكن بشكل عام لو البرنامج استخدم multithreaded  اي اكثر من thread واحد فالمنقح سيراقب الكل ولكن سيركز اهتمامة على thread واحد والذي يسمى بـ current thread او الـthread الحالي. ولكنه بشكل عام قادر على اتمام المهمة.

 
إقتباس :ورغم اني مش فاهم معنى pthreads (ياليت توضح معناها )

سأقوم بشرح الامر بشكل مبسط حسب فهمي للامر، عندما تقوم بتشغيل برنامج ستنشأ عملية  او process  (افتح task manager في ويندوز وسيتوضح لك الامر) وهذه العملية او process تحوي مجموعة خيوط او threads
والخيوط (threads) هي عبارة عن مجموعة من التعليمات البرمجية التي تكون مسار معين للعملية، فيبدو البرنامج كأنه يقوم بأكثر من وظيفة في نفس الوقت. ( اقرأ ردي هنا  
pid3434 حيث ستجد مثال على برنامج عملت dump لجميع
الـ threads تبعه حيث ان كل thread يقوم بمهمة يقوم بتنفيذها وكل مهمة له قيم مسجلات خاصة وذاكرة خاصة تتشارك بها مع بقية الـthreads في ذاكرة البرنامج الواحد)

الان هذا الـthreads  هو مبدأ و تاريخيا كانوا المصنعين يقومون ببرمجة نسختهم الخاصة من هذه المبدأ لذلك ظهرت مشكلة عدم التوافقية لان كل مصنع يبرمج  نسختة الخاصة ويصنع API لها لذلك تقرر برمجة programming interface لهذا المبدأ يستخدم بشكل واسع كـstandard اي جعلة الستاندارد او القياسي لحل مشكلة عدم التوافقية والان المصنعين اما يستخدمون نسختهم الخاصة مع النسخة القياسية PThreads او يستخدمون PThreads حصراً وانظمة لينكس ويونكس وماك (نظام ابل) هو من النوع الاخير.
PThreads: وهي اختصار للـ POSIX Threads

إقتباس :    وكمان هل هناك اي فرصة لتشغيل linux_server الخاص ب ida_pro

نعم توجد فرصة وحتى لو لم تتمكن من تشغيل السيرفر الذي يأتي مع IDA يمكنك استخادم السيرفر الذي ياتي مع GDB لانه حسب الكتاب الخاص بـ IDA يمكنك التواصل مع سيرفر gdb 
إقتباس :Remote Debugging with IDA
All versions of IDA ship with server components designed to facilitate remote debugging sessions. In addition, IDA is capable of interfacing with remote gdb sessions that make use of gdb_server or built-in gdb stubs. One of the principal advantages of remote debugging is the ability to use the GUI debugger interface as a frontend for any debugging session. For the most part, other than initial setup and establishing the connection to the remote debugging server, remote debugging sessions differ little from local debugging sessions.

-----------
انا حاولت ان استخدم WinSCP لنقل الملف ولكن لدي مشكلة مع الايبيات والاتصال بالنت وابى openwrt ان يتصل وبالتالي لم اتمكن من نقل الملف.
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : alaa2003
#8
جزاك الله خيرا على هذه المعلومات المفيدة والقيمة
إقتباس :نعم توجد فرصة وحتى لو لم تتمكن من تشغيل السيرفر الذي يأتي مع IDA يمكنك استخادم السيرفر الذي ياتي مع GDB لانه حسب الكتاب الخاص بـ IDA يمكنك التواصل مع سيرفر gdb 
هذه اخبار سارة منك يا صديقي،بشرك الله بالخير
اذن لنتبع خارطة الطريق الأولية:
1- سيرفر IDA المرفق
2- GDBServer
إقتباس :انا حاولت ان استخدم WinSCP لنقل الملف ولكن لدي مشكلة مع الايبيات والاتصال بالنت وابى openwrt ان يتصل وبالتالي لم اتمكن من نقل الملف.
سويت لك فيديو يشرح الطريقة التي ذكرتها في المشاركة#4 وبينت فيها استخدام winscp عملي
https://www.sendspace.com/file/itxhfv
ونسيت اسوي امر بينج من داخل التيرمنال ، طبعا شغاله تمام
أعضاء أعجبوا بهذه المشاركة : Gu-sung18
#9
شكرا لك لقد حللت مشكلة الايبيات

الان بالنسبة لسيرفر IDA فيبدوا انه لن يعمل بسبب نقص في المكتبة التي يعتمد عليها السيرفر:

لقد جربت مختلف الطرق حتى تغيير المسارات وكذلك الصلاحيات وفي الاخير قررت فحص مكتبات الـruntime التي يعتمد عليها ووجدت اختلاف عن طريق فحص الملف من خلال الامر file في لينكس
لقد فحصت سيرفر IDA
linux_server: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, stripped

وهذا فحص لملف vibe من openwrt
vibe: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, stripped

كما ترى فسيرفر IDA يستخدم مكتبة ld-linux.so.2 بينما openwrt يستخدم ld-uClibc.so.0 وهي النسخة التي تستخدم بكثرة في الأنظمة المضمنة.
-------------
قمت برفع سيرفر GDB وبعدها تنصيبة عن طريق الامر
opkg install example.ipk

ونجح التنصيب:
[صورة مرفقة: D08mfNU.png]
وكذلك استطعت تشغيل السيرفر بنجاح:
[صورة مرفقة: UExkPR2.png]
وهذا منقح GDB من على نظام ويندوز استطاع التنقيح عن بعد.
[صورة مرفقة: 31c7WmH.png]

[صورة مرفقة: AbVfW3m.png]
[صورة مرفقة: z39qrOU.png]

[صورة مرفقة: Wmzcaog.png]

[صورة مرفقة: mwIiWxY.png]

[صورة مرفقة: bzaxt2q.png]

[صورة مرفقة: vOkMcnt.png]

[صورة مرفقة: 8fIFqeY.png]

[صورة مرفقة: QY7ld4X.png]

بالنسبة لـ IDA فلم اجرب على نظامي بعد ولكن بما ان GDB استطاع العمل بنجاح فـ IDA يمكنه العمل كذلك فهو يعتمد على GDB لتنقيح انظمة لينكس.
كل ما عليك هو وضع الـ IP  والـport كما في GDB ( لا تنسى اسم root وكلمة المرور)
انا اعلم انك كنت ترغب بتشغيل سيرفر IDA ولكن اهلاً بك في عالم الأنظمة المضمنة حيث اغلب البرامج لن تعمل، وتلك التي تعمل تعمل بسبب وجود مطورين خاصين بها
واحب ان اقول لك ان GDB هو البرنامج السائد في عالم الأنظمة المضمنة و IDA يستخدم بقلة في التنقيح (التحليل الديناميكي) ولكن بكثرة في التحليل الستاتيكي.

(بالمناسبة اذا كان هدفك هو تحليل امني لايجاد الثغرات فـ GDB  افضل من IDA من حيث الدعم للأنظمة المضمنة وكذلك من حيث الميزات خاصة اذا نصبت اضافة له مثل pwndbg)
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : Polia , alaa2003


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 3 ) ضيف كريم