در روزگار خوش قدیم، از هک کردن برای درز دادن اطلاعات دربارهی دستگاهها و در کل فناوری اطلاعات استفاده میشد. در سالهای اخیر به لطف بعضی اشخاص تبهکار، هک کردن جنبهی تاریکی پیداکرده است. از طرفی دیگر شرکتهای زیادی هکرها را برای به امتحان گذاشتن نقاط ضعف و قوت خود استخدام میکنند. این هکرها میدانند کی دست نگهدارند و اعتماد مثبتی که ایجاد میکنند برایشان درآمد زیادی به همراه دارد!
اگر برای شیرجه زدن به این هنر و آموختن آن آماده هستید، این مقاله چند راهکار در اختیار شما میگذارد و به شما کمک میکند تا شروع کنید.
شما نباید خود را به زبان خاصی محدود کنید، اما اینجا راهنماییها وجود دارد.
یادگرفتن زبان اسمبلی(Assembly) واجب است. این زبان پایهای است که پردازشگر شما آن را درک میکند، و حالتهای مختلفی از آن وجود دارد. شما نمیتوانید واقعاً یک برنامه را دستکاری کنید اگر اسمبلی ندانید.
فرایند جمعآوری اطلاعات دربارهی هدف به نام سرشماری(enumeration) شناخته میشود.
Cygwin به تقلید یک *nix برای کاربران ویندوز کمک میکند. Nmap بهطور خاص از WinPCap برای اجرا روی ویندوز استفاده میکند و به Cygwin نیازی ندارد. Nmap به علت کمبود سوکت های خام روی دستگاههای ویندوز بهخوبی کار نمیکند. شما باید به استفاده از لینوکس یا بی اس دی (BSD) فکر کنید که هر دو انعطافپذیرتر هستند. بیشتر نسخههای لینوکس ابزارهای مفید زیادی که از قبل نصبشدهاند به همراه دارند.
مطمئن شوید که کاملاً راهکارهای معمول برای محافظت از خود را یادگرفتهاید. با اصول پایه شروع کنید—اما حواستان باشد اجازه(Authorization) حمله به هدف خود را داشته باشید: اگر به شبکهی خودتان حمله میکنید یک مجوز مکتوب درخواست کنید یا آزمایشگاه خود را با ماشینهای مجازی بسازید. حمله کردن به یک سیستم فارغ از محتوای آن غیرقانونی است و شما به دردسر خواهید افتاد.
آیا میتوانید به سیستم ریموت دست بیابید؟
درحالیکه که میتوانید از ابزار کاربردی ping(که در اکثر سیستمهای عامل وجود دارد) استفاده کنید تا ببینید که هدف فعال است، نمیتوانید همیشه به نتایج اعتماد کنید—این به پروتکل ICMP بستگی دارد که بهراحتی میتواند توسط ادمین های پارانوید سیستم بسته شود.
یک اسکن از پورتها را اجرا کنید، میتوانید pOf یا nmap را امتحان کنید. این به شما پورتهای باز بر روی ماشین و سیستمعامل را نشان میدهد و حتی میگوید که آنها از چه نوع فایروال Firewall)) یا روتر(router) استفاده میکنند تا روشی را اتخاذ کنید. شما با سوییچ –O میتوانید در nmap تشخیص سیستمعامل را فعال کنید.
پورتهای معمولی مثل FTP 21 و HTTP 80 اغلب بهخوبی محافظتشدهاند و احتمالاً تنها در مقابل روشهایی آسیبپذیر باشند که هنوز شناختهشده نیستند.
پورتهای TCP و UDP دیگر را امتحان کنید که ممکن است فراموششده باشند، مثل Telnet و پورتهای مختلف UDP که برای LAN بازی کردن باز نگهداشته شدهاند.
یک پورت باز 22 معمولاً مدرکی از اجرای یک سرویسSSH (پوستهی محافظتشده) در هدف است که گاهی میتواند بهزور (Brute force) بر آن غالب شد.
روشهای متعددی برای شکستن یک رمز وجود دارد، شامل استفاده از زور (Brute force). استفاده از زور روی یک رمز تلاشی است برای امتحان هر رمز ممکن از یک دیکشنری از پیش تعیینشدهی نرمافزار Brute force
به کاربران اغلب توصیه میشود که از رمزهای ضعیف استفاده نکنند، برای همین استفاده از زور ممکن است خیلی طول بکشد. درهرحال بهسازیهای بزرگی در تکنیکهای استفاده از زور صورت گرفته است.
بیشتر الگوریتمهای هشینگ (Hashing algorithms) ضعیف هستند و میتوانید با فعالیت روی این ضعفها سرعت شکستن رمز را به طرز چشمگیری افزایش دهید. (مثلاً میتوانید الگوریتم MD5 را به یکچهارم کاهش دهید که باعث افزایش سرعت زیادی میشود)
تکنیکهای جدیدتر از کارت گرافیک بهعنوان پردازشگر دیگر استفاده میکنند که هزاران بار سرعت را افزایش میدهد
میتوانید Rainbow Tables را برای شکست سریع رمز امتحان کنید. به خاطر داشته باشید که شکستن رمز تنها زمانی تکنیک خوبی است که هش(Hash) رمز را داشته باشید.
امتحان کردن هر رمز ممکن هنگام ورود به ماشین ایدهی خوبی نیست، چون بهراحتی توسط دستگاههای شناسایی ورود بیاجازه شناسایی میشود و لاگ های (logs) سیستم را آلوده میکند و ممکن است سالها طول بکشد تا کامل شود.
شما همچنین میتوانید یک تبلت روت شده بخرید، یک اسکن TCP نصب کنید و سیگنالی به سایت Secure شده آپلود کنید. پسازآن آدرس آی پی باز میشود و باعث میشود رمز بر روی پروکسی شما ظاهر شود.
بیشتر اوقات یافتن راه دیگری برای ورود به یک سیستم از شکستن رمز خیلی آسانتر است.
اگر یک ماشین *nix را هدف قرار میدهید تلاش کنید امتیاز روت (root privileges)به دست آورید یا اگر هدفتان دستگاههای ویندوزی است امتیاز ادمین به دست بیاورید.
بیشتر اطلاعات حیاتی محافظتشده هستند و شما به سطح خاصی از تصدیق(authentication) برای دسترسی به آن نیاز دارید. برای دیدن تمام فایلهای روی یک کامپیوتر شما نیاز به امتیاز سوپر کاربر دارید—یک حساب کاربری که امتیازاتی مثل کاربر روت در سیستمعاملهای لینوکس و بی اس دی دارد.ربرای روتر ها در حالت پیشفرض این حساب ادمین است(مگر اینکه عوض شده باشد)، برای ویندوز حساب ادمینیستریتور است.
دسترسی یافتن به یک اتصال به این معنی نیست که میتوانید به همهچیز دسترسی پیدا کنید. فقط یک سوپر کاربر، حساب ادمینیستریتور و حساب روت میتواند این کار را بکند.
اغلب برای به دست آوردن وضعیت سوپر کاربر شما باید از تاکتیکهایی مثل ساختن یک buffer overflow استفاده کنید که باعث میشود اطلاعات حافظه منتقل شود و این به شما اجازه می ده تا فراتر از حدی که معمولاً مجاز هستید، یک کد را تزریق کنید یا یک وظیفه را اجرا کنید.
این در دستگاههایی شبیه به یونیکس اتفاق میافتد بهشرط اینکه نرمافزار واردشده دارای ترتیب بیت ستویید(setuid bit set) باشد تا برنامه از طرف کاربر دیگری اجرا شود(مثلاً سوپر کاربر)
تنها با نوشتن یا یافتن یک برنامهی ناامن (insecure) که بتوانید روی ماشین هدف اجرا کنید میتوانید این کار را بکنید.
وقتیکه کنترل کامل یک ماشین را به دست آوردید، فکر خوبی است که مطمئن شوید میتوانید بعداً برگردید. این کار میتواند توسط بک دور کردن (backdooring) یک سرویس مهم سیستم مثل سرور SSH انجام شود. بااینحال درب پشتی شما ممکن است در ارتقای بعدی سیستم از بین برود. یک هکر واقعاً باتجربه خود کامپایلر را بک دور میکند تا هر نرمافزاری که کامپایل میشود بتوانید یک راه بازگشت بالقوه باشد.
به ادمینیستریتور اجازه ندهید بفهمد که سیستم غافلگیر شده است. در صورت وجود وبسایت آن را عوض نکنید و فایلهای بیشتر از آنچه نیاز دارید نسازید. کاربرهای اضافی درست نکنید. تا جای ممکن سریع عمل کنید. اگر به سروری مثل SSHD وصل شدید مطمئن شوید رمز محرمانهی شما بهسختی کد شده است. اگر کسی تلاش کند با این رمز وارد شود سرور به آنها اجازه ورود میدهد اما نباید به اطلاعات مهم دسترسی پیدا کند.
راهنماییها
هشدارها