سلام
همون طور که قول دادم قرار شد یه مطلب دربارهء ISP Util بنویسم.این مطلب یه چیز تو مایه های کشف و گزارش یه باگ هست و دربارهء ISP Util هایی صدق میکنه که بانک اطلاعاتیشون SQL باشه.از اون جایی که من هنوز در زمینه امنیت شبکه اطلاعاتی در حد یه مبتدی هستم شما این مطلب رو زیاد جدی نگیرید! آخه من کسی نیستم که بخوام کار یه گروه برنامه نویسی رو زیر سئوال ببرم.خوب دیگه زیاد حرف زدم.بریم سر اصل قضیه.
چند روز پیش کــــه داشتم با ISP Util اکانتم رو چک میکردم به یه Error برخوردم:
.ERROR: Could not found your Username (cp140510h) in database
همون طور که متوجه شدین این یه پیغام خطای ساده مبنی بر وجود نـــداشتن چنین Username ای توی Data Base هست.همین جا یه هو فکرم رفت طرف SQL Piggy Back که با برگردوندن پیغام های خطاهای بسیار خطرناک میتونه همه چی رو لو بده(مثلاْ مشخص شدن اسم فیلدها).ولی خوب این خطا یه خطای کاملاْ منطقی هست و هیچ مشکلی هم درش نیست.واسه همین با خودم گفتم دستورات SQL رو تست میکنم.شاید اونطوری بتونم به نتیجه ای برسم.با وارد کردن دستورات SQL توی قسمت یوزر و فشار دادن دکمه WEB Report به Error جالبی برخوردم.
» دستوری که وارد کردم این بود:
SELECT * From UID
» که پیغام خطای زیر رو بهم داد :
.ERROR: Could not found your Username (***$*$*$*$*$*&(&)&(&)&() in database
با خودم گفتم شاید چون طول رشته زیاد بوده قاطی کرده.واسه همین یه رشــته الکی وارد کردم تا ببینم واقعاْ این رو به عنوان دستور SQL شناخته و Error رو برگردونده یا نه.
» رشته ای که وارد کردم:
my name is mobin
» و جوابی که گرفتم:
.ERROR: Could not found your Username (my name is mobin) in database
خوب همون طور که می بینید این رو به عنوان یه ورودی معمولی که همون Username باشه شناخت.ولی حالا با اضافه کردن یه سیمی کالن(;) به آخــــر رشته ورودی که در SQL نشان دهندهء پایان یک دستور هست و برای فرستادن بیش از یک دستور به صورت هزمان به Data Base استفاده میشه نتیجه متفاوتی گرفتم.
» رشته ورودی با سیمی کالن:
;my name is mobin
» خروجی :
.ERROR: Could not found your Username (****$*&(&)&(+++()-==@^0) in database
جالبه,نه؟ حالا جالب تر از همه این جاست که اگه یه دستور (دستور،نه رشته معمولی بدون سیمی کالن) غیر معتبر مثل دستور بالا همیشه همین Error رو میده.حالا که از فرستادن دستور SQL رو Data Base از روی پیغام خطا خیالم راحت شدم دستورات SQL دیگه ای رو تست کردم.
» مثل این یکی:
'SELECT * From Users Where UID = 'mobin
» که پیغام خطای زیر رو داد:
ERROR: Could not found your Username (***%@%@%@%@%@&0&0&0&0&0) in database.
باز یه نکته جالب دیگه که هست اینه که هر دستور SQL با یه پیغام جداگانه ظاهر میشه.
» مثل این یکی:
DELETE * From UID
» که پیغام خطای زیر رو داد:
ERROR: Could not found your Username (***&^&^&^&^&^%*%*%*%*%*) in database.
نکاتی مهم از کتاب نفوذگری در شبکه و روشهای مقابله:
۱- "هر واکنش غیر طبیعی نشان دهندهء یک ضعف است و نفوذگر با تمرکز بر آن سعی میکند تا از طریق دستورات و عبارات SQL در قالب داده های ورودی عملیات مورد نظرش را روی بانک اطلاعاتی اعمال کند."
۲- "برای هر نقطه ضعف در برنامه کاربردی, مجموعه ای از دستورات به صورت سعی و خطا امتحان شده و پاسخ آنها برسی میشود تا عملیات موفق و قابل انجام مشخص شود."
خوب،فکر میکنم زیاد هم غیر منطقی نباشه... نظر شما چیه؟
سلام
امروز یه چیز جالب براتــــون آوردم.اول میخواستم ننویسم ولی اگـــه تبادل اطلاعات صورت نگیره هیچ کی پیشرفت نمیکنه.یعنی همین پدیده ای که در ایران شاهدش هستیم.
خوب, همون طور که توی title ِ این پست می بینین میخوام مطلبی دربارهء لیست کردن یـــــوزر های کامپیوتر های دیگه توی یه شبکه محلی بنویسم.هدف نوشتن این مطلب مقابله با هوشیاری Adminstrator در برابرBrute Force کردن Account هاست.
چند وقت پیش توی یه کتاب خوندم که اکثر هکر های برای Brute Force کردن Account های با سطح دسترسی بالا رو هدف قرار میدن.(البته این روش به دلیل سرعت کم در یافتن پسورها و نیاز به سرعت بالا خطوط,دیگه زیاد استفاده نمیشه).حالا Admin میاد اسم Account های مهم رو عوض میکنه یا تا حد امکان سطح دسترسی و امکانات اون یوزر رو پایین میاره تا هکر به کاهدون بزنه و از اون ور یه Account دیگه به یه اسم دیگه (مثلاْ اسم خودش) درست میکـــنه تا بیشتر در امان باشه.
حالا من یه چیز بهتون یاد میدم که همه یوزر ها رو لیست کنید و خطای کارتون کمتر بشه.این کار رو همیشه توی LAN انجام بدید برای این که روی intenet جواب نمیده و اگر هم جوب میداد با این سرعت کم نمیشد کاری انجام داد.
مراحل کار :
۱) اول یه کامند پرامپت باز کنید.
۲) حالا دستور Netsh -r Remote Machine رو تایپ کنید. بجای Remote Machine آدرس IP یا Hostname کامپیوتر مورد نظر رو بذارید.
۳) بعد از Enter کردن یه خط فرمان از اون کامپیوتر به ما میده که دستورات خیلی کمی رو میشه روش اجرا کرد امــــا خیلی بدرد میخوره.شکل این خط فرمان به صورت زیره :
۵) حالا اگه با آخر های این قسمت بیاید نوشته = Set user name .جلوی این خطوط اسم یوزر ها رو نـــــــــوشته.به عنوان مثال :
set user name = amin dialin = policy cbpolicy = none
set user name = Guest dialin = permit cbpolicy = none
set user name = HelpAssistant dialin = policy cbpolicy = none
set user name = mobin dialin = permit cbpolicy = none
set user name = SUPPORT_388945a0 dialin = policy cbpolicy = none
set user name = telnet dialin = permit cbpolicy = none
همون طور که میبینید Account هایی به اسم های amin , Guest , HelpAssistant و... روی این کامپیوتر هست.
چیزهای دیگه ای که جلوی این یوزر ها نوشته چیزهایی مهمی هست اما فعلاْ تا همین جا یاد بگیرید تا بقیشو توی پست های بعدی توضیح بدم.
نکات مهم:
۱) اگه یورز Guest پاک یا Disable نشده بود اول اون رو با پسور Blank امتحـــان کنید.
۲) آدرس IP یه سرور توی یه LAN طبق استاندارد های کلاس C در شبکه های محلی 192.168.0.1 هست.
-- -- -- -- -- -- -- -- -- -- -- -- -- -- --
خوب , امیــــدوارم که از این مطلب استفاده کرده باشید.اگه سوال یــا مشکلــــــی داشتین حتـــــماْ بپرسید.امیدوارم این تبادل اطلاعات یکطرفه نباشه و شما هم مقالات یا مطالبی رو که بلدین برای من میل کنید تا همه ازش استفاده کنن.
با تشکر از همه شما.