اکنون روش دیگری از تزریق SQL را امتحان خواهیم کرد. بیایید ببینیم آیا پایگاه داده همچنان به ارسال پیام های خطا ادامه می دهد یا خیر. به این روش "waiting for delay" می گویند و خود تاخیر به صورت زیر نوشته می شود: waitfor delay 00:00:01'. من این را از فایل خود کپی کرده و در نوار آدرس مرورگر قرار می دهم.
این همه "تزریق موقت SQL کور" نامیده می شود. تنها کاری که ما در اینجا انجام می دهیم این است که می گوییم، "منتظر 10 ثانیه تاخیر باشید." اگر توجه کرده اید، در بالا سمت چپ، ما کتیبه "اتصال ..." داریم، یعنی صفحه ما چه کاری انجام می دهد؟ منتظر اتصال می ماند و پس از 10 ثانیه صفحه صحیح روی مانیتور شما ظاهر می شود. با استفاده از این تکنیک، ما با پایگاه داده تماس می گیریم تا به ما اجازه دهد چند سوال دیگر از آن بپرسیم، به عنوان مثال، اگر کاربر جو است، پس باید 10 ثانیه صبر کنیم. واضح است؟ اگر کاربر dbo است، 10 ثانیه نیز صبر کنید. این روش تزریق SQL کور است.
من فکر می کنم که توسعه دهندگان این آسیب پذیری را هنگام ایجاد وصله رفع نمی کنند. این یک تزریق SQL است، اما برنامه IDS ما نیز مانند روش های قبلی تزریق SQL آن را نمی بیند.
بیایید چیز جالب تری را امتحان کنیم. بیایید این خط را با آدرس IP کپی کرده و در مرورگر پیست کنیم. کار کرد! نوار TCP در برنامه ما قرمز شد، برنامه به 2 تهدید امنیتی اشاره کرد.
عالیه ببینیم بعدش چی شد ما یک تهدید برای پوسته XP داریم و یک تهدید دیگر - تلاش برای تزریق SQL. در مجموع، دو تلاش برای حمله به برنامه وب مشاهده شد.
باشه حالا با منطق کمکم کن ما یک بسته داده نفوذ داریم که IDS می گوید به نفوذهای مختلف به پوسته XP پاسخ داده است.
اگر به پایین اسکرول کنیم، جدولی از کدهای HEX را می بینیم که در سمت راست آن یک پرچم با پیام xp_cmdshell + &27ping وجود دارد و بدیهی است که این بد است.
بیایید اینجا ببینیم چه اتفاقی افتاده است. سرور SQL چه کار کرد؟
سرور SQL گفت: "شما می توانید رمز عبور پایگاه داده من را داشته باشید، می توانید تمام رکوردهای پایگاه داده من را دریافت کنید، اما دوست، من نمی خواهم شما دستورات خود را روی من اجرا کنید، این اصلا جالب نیست"!
کاری که ما باید انجام دهیم این است که مطمئن شویم حتی اگر IDS تهدیدی برای پوسته XP گزارش کند، تهدید نادیده گرفته می شود. اگر از SQL Server 2005 یا SQL Server 2008 استفاده می کنید، اگر تلاشی برای تزریق SQL شناسایی شود، پوسته فرمان سیستم عامل قفل می شود و از ادامه کار شما جلوگیری می کند. این خیلی آزاردهنده است. خب ما باید چی کار کنیم؟ شما باید سعی کنید خیلی مهربانانه از سرور بپرسید. آیا باید این را بگویید: "لطفا، بابا، آیا می توانم این کوکی ها را داشته باشم"؟ این کاریه که من جدی میگم خیلی مودبانه از سرور میپرسم! من گزینه های اضافی را می خواهم، تنظیمات مجدد را می خواهم و می خواهم تنظیمات پوسته XP را تغییر دهند تا پوسته در دسترس باشد زیرا به آن نیاز دارم!
می بینیم که IDS این را شناسایی کرده است - می بینید، 3 تهدید قبلاً در اینجا ذکر شده است.
فقط اینجا را نگاه کنید - ما گزارش های امنیتی را منفجر کردیم! شبیه درخت کریسمس است، اینجا خیلی آویزان است! 27 تهدید امنیتی! بچه ها هورا، ما این هکر را گرفتیم، او را گرفتیم!
ما نگران این نیستیم که او داده های ما را بدزدد، اما اگر بتواند دستورات سیستم را در "جعبه" ما اجرا کند - این در حال حاضر جدی است! شما میتوانید یک مسیر Telnet، FTP ترسیم کنید، میتوانید دادههای من را در اختیار بگیرید، این عالی است، اما من نگران آن نیستم، فقط نمیخواهم پوسته «جعبه» من را در اختیار بگیرید.
من می خواهم در مورد چیزهایی صحبت کنم که واقعاً مرا به خود مشغول کرده است. من برای سازمان ها کار می کنم، سال ها برای آنها کار کرده ام و این را به شما می گویم زیرا دوست دخترم فکر می کند من بیکار هستم. او فکر می کند که من فقط روی صحنه می ایستم و چت می کنم، این را نمی توان کار تلقی کرد. اما من می گویم: "نه، خوشحالم، من یک مشاور هستم"! این تفاوت است - من نظرم را می گویم و برای آن پول می گیرم.
من این را خواهم گفت - ما به عنوان هکر عاشق شکستن پوسته هستیم و برای ما هیچ لذتی در دنیا بالاتر از "بلعیدن پوسته" نیست. وقتی تحلیلگران IDS قوانین خود را می نویسند، می بینید که آنها را برای محافظت در برابر دستکاری پوسته می نویسند. اما اگر در مورد مشکل استخراج داده ها با CIO صحبت کنید، او از شما می خواهد که به دو گزینه فکر کنید. فرض کنید برنامه ای دارم که 100 قطعه در ساعت انجام می دهد. چه چیزی برای من مهم تر است: اطمینان از امنیت همه داده ها در این برنامه یا امنیت پوسته "جعبه"؟ این یک سوال جدی است! بیشتر نگران چه چیزی باشید؟
فقط به این دلیل که پوسته "جعبه" شما خراب است، لزوماً به این معنی نیست که شخصی به عملکرد داخلی برنامه ها دسترسی پیدا کرده است. بله، این احتمال زیاد است و اگر هنوز اتفاق نیفتاده است، ممکن است به زودی اتفاق بیفتد. اما توجه داشته باشید که بسیاری از محصولات امنیتی با این فرض ساخته می شوند که یک مهاجم در شبکه شما حرکت می کند. بنابراین آنها به اجرای دستورات، به اجرای دستورات توجه می کنند و باید توجه داشته باشید که این یک کار جدی است. آنها به آسیب پذیری های بی اهمیت، به اسکریپت نویسی بین سایتی بسیار ساده، به تزریق SQL بسیار ساده توجه می کنند. آنها به تهدیدهای پیشرفته یا پیام های رمزگذاری شده اهمیتی نمی دهند، آنها به این نوع چیزها اهمیت نمی دهند. شما می توانید بگویید که همه محصولات امنیتی به دنبال سر و صدا هستند، آنها به دنبال یاپ هستند، آنها به دنبال جلوگیری از چیزی هستند که مچ پای شما را گاز می گیرد. در اینجا چیزی است که من هنگام برخورد با محصولات امنیتی یاد گرفتم. شما مجبور نیستید محصولات ایمنی بخرید، مجبور نیستید کامیون را به عقب برانید. شما به افراد شایسته و ماهری نیاز دارید که فناوری را درک کنند. بله، خدای من، دقیقا مردم! ما نمیخواهیم میلیونها دلار برای این مسائل بپردازیم، اما بسیاری از شما در این زمینه کار کردهاید و میدانید که به محض دیدن یک آگهی، رئیستان به سمت فروشگاه میدوید و فریاد میزد: «ما باید این چیز را بگیریم! " اما ما واقعاً نیازی به این کار نداریم، فقط باید آشفتگی هایی را که پشت سرمان است اصلاح کنیم. این پیشفرض برای این اجرا بود.
محیط امنیتی چیزی است که من زمان زیادی را صرف درک نحوه عملکرد مکانیسم های امنیتی کردم. هنگامی که مکانیسم های حفاظتی را درک کردید، دور زدن حفاظت کار دشواری نیست. به عنوان مثال، من یک برنامه وب دارم که توسط فایروال خودش محافظت می شود. آدرس پنل تنظیمات را کپی می کنم، آن را در نوار آدرس مرورگر پیست می کنم و به تنظیمات می روم و اسکریپت بین سایتی را امتحان می کنم.
در نتیجه، من یک پیام فایروال در مورد یک تهدید دریافت می کنم - من مسدود شده ام.
به نظر من این بد است، موافقید؟ شما با یک محصول امنیتی مواجه شده اید. اما اگر چیزی شبیه به این را امتحان کنم چه می شود: پارامتر Joe'+OR+1='1 را وارد می کنم
همانطور که می بینید، کار کرد. اگر اشتباه می کنم، مرا تصحیح کنید، اما دیدیم که تزریق SQL فایروال برنامه را شکست می دهد. حالا بیایید وانمود کنیم که میخواهیم یک شرکت پیادهسازی امنیت راهاندازی کنیم، بنابراین کلاه سازنده نرمافزار خود را بر سر میگذاریم. اکنون ما شر را تجسم می کنیم زیرا کلاه سیاه است. من یک مشاور هستم، بنابراین می توانم همین کار را با تولید کنندگان نرم افزار انجام دهم.
ما می خواهیم یک سیستم تشخیص دستکاری جدید ایجاد و مستقر کنیم، بنابراین یک شرکت تشخیص دستکاری راه اندازی خواهیم کرد. Snort، به عنوان یک محصول منبع باز، حاوی صدها هزار امضای تهدید دستکاری است. ما باید اخلاقی عمل کنیم، بنابراین ما این امضاها را از برنامه های دیگر نخواهیم دزدید و آنها را در سیستم خود وارد نمی کنیم. ما فقط مینشینیم و همه آنها را بازنویسی میکنیم - هی، باب، تیم، جو، بیا اینجا، سریع تمام این 100 امضا را بررسی کنیم!
ما همچنین باید یک اسکنر آسیب پذیری ایجاد کنیم. می دانید که Nessus، برنامه ای برای جستجوی خودکار آسیب پذیری ها، دارای 80 هزار امضا و اسکریپت خوب است که آسیب پذیری ها را بررسی می کند. ما دوباره اخلاقی عمل می کنیم و همه آنها را خودمان در برنامه خود بازنویسی می کنیم.
مردم از من می پرسند، "جو، شما همه این تست ها را با استفاده از نرم افزارهای منبع باز مانند Mod Security، Snort و مواردی از این دست انجام می دهید، چقدر شبیه محصولات تولید کنندگان دیگر هستند؟" من به آنها پاسخ می دهم: "اصلا شبیه هم نیستند!" از آنجایی که تولیدکنندگان چیزهایی را از محصولات امنیتی منبع باز نمی دزدند، می نشینند و خودشان همه این قوانین را می نویسند.
اگر میتوانید امضاها و رشتههای حمله خود را بدون استفاده از محصولات منبع باز کار کنید، این یک فرصت عالی برای شماست. اگر قادر به رقابت با محصولات تجاری نیستید، در مسیر درست حرکت می کنید، باید مفهومی را بیابید که به شما کمک کند در حوزه کاری خود مشهور شوید.
همه می دانند که من می نوشم. بگذارید به شما نشان دهم که چرا مشروب می خورم. اگر تا به حال در زندگی خود یک ممیزی کد منبع انجام داده اید، مطمئناً می نوشید، به من اعتماد کنید، پس از آن شروع به نوشیدن خواهید کرد.
بنابراین، زبان مورد علاقه ما C++ است. بیایید به این برنامه نگاه کنیم - Web Knight، این یک برنامه فایروال برای سرورهای وب است. به طور پیش فرض استثناهایی دارد. این جالب است - اگر من این فایروال را مستقر کنم، از من در برابر Outlook Web Access محافظت نمی کند.
فوق العاده! این به این دلیل است که بسیاری از فروشندگان نرم افزار قوانین را از یک برنامه بیرون می کشند و آنها را بدون انجام کلی تحقیق در محصول خود قرار می دهند. بنابراین وقتی برنامه فایروال وب را استقرار می دهم، متوجه می شوم که همه چیز در مورد ایمیل وب اشتباه انجام شده است! زیرا تقریباً هر ایمیلی به طور پیش فرض امنیت را از بین می برد. شما کد وب دارید که دستورات و پرس و جوهای سیستمی را برای LDAP یا هر ذخیره پایگاه داده کاربر دیگر به طور مستقیم در اینترنت اجرا می کند.
به من بگویید، در کدام سیاره می توان چنین چیزی را امن دانست؟ فقط در مورد آن فکر کنید: شما Outlook Web Access را باز می کنید، ctrl +K را فشار می دهید، کاربران را جستجو می کنید و همه اینها، اکتیو دایرکتوری را مستقیماً از اینترنت مدیریت می کنید، دستورات سیستم را در لینوکس اجرا می کنید، اگر از Squirrel Mail یا Horde یا هر چیز دیگری استفاده می کنید. دیگر شما در حال بیرون کشیدن همه این ارزش ها و انواع دیگر عملکردهای ناامن هستید. بنابراین، بسیاری از فایروال ها آنها را از لیست خطرات امنیتی حذف می کنند، سعی کنید از سازنده نرم افزار خود در این مورد سوال کنید.
بیایید به برنامه Web Knight برگردیم. بسیاری از قوانین امنیتی را از اسکنر URL که تمام این محدودههای آدرس IP را اسکن میکند، به سرقت برد. بنابراین، آیا همه این محدودههای آدرس از محصول من حذف میشوند؟
آیا کسی از شما می خواهد این آدرس ها را در شبکه خود نصب کند؟ آیا می خواهید شبکه شما روی این آدرس ها اجرا شود؟ بله، شگفت انگیز است. خوب، بیایید این برنامه را پایین بیاوریم و به موارد دیگری که این فایروال نمیخواهد انجام دهد نگاه کنیم.
آنها "1999" نامیده می شوند و می خواهند وب سرورشان به گذشته بازگردد! آیا هیچ یک از شما این زباله ها را به خاطر می آورد: /scripts، /iihelp، msads؟ شاید چند نفر با دلتنگی به یاد بیاورند که هک چنین چیزهایی چقدر لذت بخش بود. "یادت میاد، رفیق، چند وقت پیش سرورها رو "کشتیم"، عالی بود!"
حالا، اگر به این استثناها نگاه کنید، می بینید که می توانید همه این کارها را انجام دهید - msads، printers، iisadmpwd - همه این چیزهایی که امروز هیچ کس به آنها نیاز ندارد. در مورد دستوراتی که اجازه ندارید اجرا کنید چطور؟
اینها arp، at، cacls، chkdsk، cipher، cmd، com هستند. همانطور که آنها را فهرست می کنید، با خاطرات روزهای قدیم غلبه می کنید، "آقا، یادت هست چه زمانی آن سرور را تصاحب کردیم، آن روزها را به یاد بیاوری"؟
اما اینجا چیزی است که واقعاً جالب است - آیا کسی WMIC یا شاید PowerShell را اینجا می بیند؟ تصور کنید برنامه جدیدی دارید که با اجرای اسکریپت ها در سیستم محلی کار می کند، و اینها اسکریپت های مدرن هستند زیرا می خواهید ویندوز سرور 2008 را اجرا کنید، و من با محافظت از آن با قوانین طراحی شده برای ویندوز 2000 کار بزرگی انجام خواهم داد. به طوری که دفعه بعد که یک فروشنده با برنامه وب خود به شما مراجعه می کند، از آنها بپرسید: "هی مرد، آیا مواردی مانند bit admin یا اجرای دستورات powershell را پوشش داده ای، آیا همه چیزهای دیگر را بررسی کرده ای، زیرا ما به روز می کنیم و از نسخه جدید DotNET استفاده کنید؟ اما همه این موارد باید به طور پیش فرض در یک محصول امنیتی وجود داشته باشد!
مورد بعدی که می خواهم در مورد آن با شما صحبت کنم خطاهای منطقی است. بریم سراغ 192.168.2.6. این تقریباً همان برنامه قبلی است.
اگر صفحه را پایین بروید و روی پیوند تماس با ما کلیک کنید، ممکن است متوجه چیز جالبی شوید.
اگر به کد منبع تب "تماس با ما" که یکی از روش های پنتستینگ است که همیشه انجام می دهم نگاه کنید، متوجه این خط خواهید شد.
در مورد آن فکر کنید! شنیده ام که وقتی این را دیدند، خیلی ها گفتند: عجب! یک بار مثلاً برای یک بانک میلیاردر تست نفوذ انجام می دادم و متوجه چیزی مشابه شدم. بنابراین، ما به هیچ تزریق SQL یا اسکریپت بین سایتی نیاز نداریم - ما اصول اولیه، این نوار آدرس را داریم.
بنابراین، بدون اغراق - بانک به ما گفت که آنها هم متخصص شبکه و هم بازرس وب دارند و هیچ نظری ندادند. یعنی اینکه یک فایل متنی را می توان از طریق مرورگر باز کرد و خواند، طبیعی می دانستند.
یعنی به سادگی می توانید فایل را مستقیماً از سیستم فایل بخوانید. رئیس تیم امنیتی آنها به من گفت: "بله، یکی از اسکنرها این آسیب پذیری را پیدا کرد، اما آن را جزئی دانست." که من پاسخ دادم، خوب، یک دقیقه به من فرصت دهید. من filename=../../../../boot.ini را در نوار آدرس تایپ کردم و توانستم فایل بوت سیستم فایل را بخوانم!
به من گفتند: «نه، نه، نه، اینها پرونده های مهمی نیستند»! من پاسخ دادم - اما این سرور 2008 است؟ گفتند بله، اوست. من می گویم - اما این سرور یک فایل پیکربندی دارد که در پوشه اصلی سرور قرار دارد، درست است؟ آنها پاسخ می دهند: «درست است. من می گویم: "عالی است، اگر مهاجمی این کار را انجام دهد چه می شود" و filename=web.config را در نوار آدرس تایپ می کنم. آنها می گویند - پس چی، شما چیزی روی مانیتور نمی بینید؟
میگم - اگه روی مانیتور راست کلیک کنم و گزینه Show Page Source رو انتخاب کنم چی؟ و در اینجا چه چیزی پیدا خواهم کرد؟ "هیچ چیز مهمی نیست"؟ پسورد مدیر سرور را می بینم!
و شما می گویید اینجا مشکلی نیست؟
اما قسمت مورد علاقه من این قسمت بعدی است. شما به من اجازه نمیدهید دستورات را در جعبه اجرا کنم، اما میتوانم رمز عبور مدیر وب سرور و پایگاه داده را بدزدم، کل پایگاه داده را بررسی کنم، تمام مطالب مربوط به پایگاه داده و خرابیهای سیستم را پاره کنم و از همه چیز خلاص شوم. این موردی است که مرد بد می گوید: "هی مرد، امروز روز بزرگ است"!
اجازه ندهید محصولات ایمنی شما را بیمار کنند! اجازه ندهید محصولات ایمنی شما را بیمار کنند! چند ادم را پیدا کنید، همه آن یادگاری های Star Trek را به آنها بدهید، آنها را علاقه مند کنید، آنها را تشویق کنید که با شما بمانند، زیرا آن بدبوهای کسل کننده ای که هر روز دوش نمی گیرند، همان کسانی هستند که باعث می شوند شبکه های شما کار کنند. باید! اینها افرادی هستند که به محصولات امنیتی شما کمک می کنند تا همانطور که باید کار کنند.
به من بگویید، چند نفر از شما می توانید برای مدت طولانی در یک اتاق با شخصی بمانید که مدام می گوید: "اوه، من فوری باید این متن را تایپ کنم!"، و چه کسی همیشه با این کار مشغول است؟ اما شما به افرادی نیاز دارید که محصولات امنیتی شما را عملی کنند.
دوباره می گویم - محصولات امنیتی احمقانه هستند زیرا چراغ ها دائماً اشتباه می کنند، دائماً کارهای بد انجام می دهند، آنها فقط امنیت را ایجاد نمی کنند. من هرگز یک محصول امنیتی خوب ندیدهام که نیازی به پیچ گوشتی نداشته باشد تا جایی که لازم است آن را محکم کند تا کم و بیش نرمال کار کند. این فقط یک لیست عظیم از قوانین است که می گوید بد است، همین!
بنابراین من از شما بچه ها می خواهم به آموزش نگاه کنید، مواردی مانند ایمنی، آموزش پلی تکنیک، زیرا دوره های آنلاین رایگان زیادی در مورد مسائل ایمنی وجود دارد. پایتون را یاد بگیرید، اسمبلی را یاد بگیرید، تست اپلیکیشن وب را یاد بگیرید.
این چیزی است که واقعاً به شما کمک می کند تا از شبکه خود محافظت کنید. افراد باهوش از شبکه ها محافظت می کنند، محصولات شبکه نه! به سر کار خود برگردید و به رئیس خود بگویید که برای افراد باهوش تر به بودجه بیشتری نیاز دارید، می دانم که این یک بحران است، اما به هر حال به او بگویید - ما به پول بیشتری برای افراد، برای آموزش آنها نیاز داریم. اگر محصولی را می خریم اما دوره آموزشی نحوه استفاده از آن را به دلیل گران بودن آن نمی خریم، پس چرا اصلاً آن را می خریم اگر به مردم نحوه استفاده از آن را آموزش نمی دهیم؟
من برای بسیاری از فروشندگان محصولات امنیتی کار کردهام، تقریباً تمام زندگیام را صرف پیادهسازی آن محصولات کردهام، و از کنترل دسترسی به شبکه و چیزهای دیگر خسته شدهام، زیرا همه آن محصولات مزخرف را نصب و اجرا کردم. من یک بار به یک مشتری رسیدم، آنها می خواستند استاندارد 802.1x را برای پروتکل EAP پیاده سازی کنند، بنابراین آنها آدرس های MAC و آدرس های ثانویه برای هر پورت داشتند. آمدم، دیدم بد است، برگشتم و شروع به فشار دادن دکمه های چاپگر کردم. می دانید، چاپگر می تواند یک صفحه آزمایشی از تجهیزات شبکه را با تمام آدرس های MAC و آدرس های IP چاپ کند. اما معلوم شد که چاپگر از استاندارد 802.1x پشتیبانی نمی کند، بنابراین باید از آن حذف شود.
سپس پرینتر را از برق جدا کردم و مک آدرس لپ تاپم را به مک آدرس چاپگر تغییر دادم و لپ تاپم را وصل کردم، به این ترتیب این راه حل گران قیمت MAC را دور زدم، فکرش را بکنید! بنابراین، اگر شخصی بتواند هر قطعه ای از تجهیزات را به عنوان چاپگر یا تلفن VoIP در اختیار بگذارد، این راه حل MAC چه فایده ای می تواند برای من داشته باشد؟
بنابراین امروز، برای من سختگیرانه این است که وقت خود را صرف درک و درک محصول امنیتی که مشتری من خریداری کرده است، می کنم. امروزه هر بانکی که من در آن تست نفوذ انجام میدهم، تمام این HIPS، NIPS، LAUGTHS، MACS و یک سری نامهای اختصاری دیگر را دارد که کاملاً مزخرف هستند. اما من سعی می کنم بفهمم این محصولات چه کاری انجام می دهند و چگونه می خواهند این کار را انجام دهند. سپس، وقتی بفهمم آنها از چه روش و منطقی برای ارائه حفاظت استفاده می کنند، دور زدن آن اصلاً دشوار نمی شود.
محصول مورد علاقه من که شما را با آن می گذارم MS 1103 نام دارد. این یک اکسپلویت مبتنی بر مرورگر است که HIPS، Host Intrusion Prevention Signature یا میزبان امضاهای جلوگیری از نفوذ را "اسپری" می کند. در واقع، برای دور زدن امضاهای HIPS طراحی شده است. من نمیخواهم نشان دهم که چگونه کار میکند، زیرا نمیخواهم زمان برای نشان دادن آن داشته باشم، اما کار بزرگی برای دور زدن این امنیت انجام میدهد و از شما میخواهم آن را امتحان کنید.
باشه بچه ها من الان میرم
چند تبلیغ 🙂
از اینکه با ما ماندید متشکرم آیا مقالات ما را دوست دارید؟ آیا می خواهید مطالب جالب تری ببینید؟ با ثبت سفارش یا معرفی به دوستان از ما حمایت کنید
Dell R730xd 2 برابر ارزان تر در مرکز داده Equinix Tier IV در آمستردام؟ فقط اینجا
منبع: www.habr.com