این مقاله توسط تیم آموزشدیدهی ویراستاران و پژوهشگرانی که صحت و جامعیت آن را تأیید کردهاند، بهطور مشارکتی نوشته شده است. تیم مدیریت محتوای ویکیهاو با دقت کار ویراستاران را زیر نظر دارد تا اطمینان حاصل شود که تمامی مقالات طبق پژوهشهای معتبر صحیح هستند و استانداردهای بالای کیفی ما را دارند.
این مقاله ۴٬۲۸۳بار مشاهده شده است.
هک کردن در گذشته، عموماً به منظور بدست آوردن اطلاعات در مورد سیستمها و فناوری اطلاعات مورد استفاده قرار میگرفت. اما در سالهای اخیر به لطف افراد شرور، هک کردن معنای پلیدی به خود گرفته. البته ازسوی دیگر، تعداد زیادی از شرکتها هکرها را استخدام میکنند تا نقاط قوت و ضعف سیستمهایشان را امتحان و بررسی کنند. این هکرها میدانند چه جایی کار خود را متوقف کنند تا اعتماد مثبتی ایجاد کنند. این باعث میشود بتوانند حقوقهای بالایی دریافت کنند. اگر تو هم دوست داری این هنر را یاد بگیری، این مقاله راهنماییهای خوبی در اختیارت قرار میدهد.
مراحل
آمادگی قبل از هک کردن
-
1یک زبان برنامهنویسی را یادبگیر. نباید خود را به یک زبان خاص محدود کنی، برای این کار توصیههایی وجود دارد. یادگیری زبان برنامه نویسی ممکن است زمانبر باشد، بنابراین باید صبور باشی.
- C و ++C زبانهایی هستند که ویندوز و لینوکس با آنها ساخته شدهاند. این زبانها (در کنار زبان Assembly) چیزی را به تو یاد میدهند که در هک کردن بسیار مهم است: حافظه چگونه کار میکند.
- Python یا Ruby زبانهای برنامهنویسی قوی و سطح بالایی هستند و میتوان از آنها برای خودکارسازی وظایف مختلف استفاده کرد.
- Perl هم برای این کار گزینهی خوبی است، گرچه PHP بیشتر ارزش یادگیری دارد، چون خیلی از اپلیکیشنهای تحت وب از PHP استفاده میکنند.
- یادگیری Bash اسکریپت هم ضروری است. با یادگیری و استفاده از آن به سادگی میتوانی سیستمهای لینوکس یا یونیکس را دستکاری کنی و کار را برایت بسیار ساده میکند.
- دانستن زبان برنامهنویسی Assembly نیز جزء بایدهاست. این زبان پایهای است که پردازندهی کامپیوتر آن را میفهمد و انواع مختلفی از آن وجود دارد. اگر Assembly را بلد نباشی، نمیتوانی از سایر برنامهها بهرهبرداری کنی.
-
2هدف خود را مشخص کن. به فرآیند جمعآوری اطلاعات در مورد هدف، "سرشماری" (enumeration) میگویند. هر چه بیشتر بدانی کمتر احتمال غافلگیری وجود دارد.
هک کردن
-
1برای فرمانها از ترمینال *nix استفاده کن. Cygwin به کاربران ویندوز کمک میکند تا *nix را شبیهسازی کنند. Nmap از WinPCap برای اجرا روی ویندوز استفاده میکند و به Cygwin نیاز ندارد. با این حال Nmap به دلیل فقدان سوکتهای خام، روی سیستمهای ویندوز خوب عمل نمیکند. همچنین باید استفاده از لینوکس یا BSD را نیز در نظر داشته باشی، چون انعطاف پذیرتر هستند. بیشتر توزیعهای لینوکس به همراه ابزارهای مفیدی که از قبل نصب شدهاند، ارائه میشوند.
- همچنین، موقع بروزرسانی Fall Creators ویندوز 10 و بروزرسانیهای بعدی، میتوانی ترمینال *nix را از فروشگاه ویندوز دریافت کنی. ویندوز به این وسیله میتواند با کمک زیر سیستمهای ویندوز-لینوکس، دستورات خطی لینوکس را شبیه سازی کند.
-
2ابتدا از امنیت دستگاه خود مطمئن شو. برای حفظ امنیت خود مطمئن شو که همهی تکنیکهای معمول را متوجه شدی. با چیزهای پایه و ابتدایی شروع کن و مطمئن شو که اجازهی حمله به هدف خود را داری. بنابراین یا هک را روی شبکهی خودت انجام بده یا اجازهنامهی کتبی دریافت کن و یا با کمک دستگاههای مجازی برای خودت آزمایشگاهی درست کن. حمله به یک سیستم، در هرصورت غیرقانونی است و می تواند تو را به دردسر بیاندازد.
-
3هدف را امتحان کن. آیا میتوانی از راه دور به سیستم وصل شوی؟ گرچه با استفاده از ابزار ping که در اغلب سیستمعاملها وجود دارد میتوان فهمید که آیا هدف فعال است یا خیر، ولی همیشه نمیتوانی به نتیجهی آن اعتماد کنی. نتیجهی واقعی به پروتوکل ICMP بستگی دارد که ممکن است به راحتی توسط مدیر محتاط سیستم خاموش شده باشد.
-
4سیستمعامل (OS) را مشخص کن. پورتها را اسکن کن، برای اسکن پورتها pOf یا Nmap را امتحان کن. این کار پورتهایی که روی دستگاه، سیستم عامل (OS) باز هستند را به تو نشان میدهد و حتی میتواند به تو بگوید که آنها از چه فایروال و یا روتری استفاده میکنند تا بتوانی برنامهریزیهای لازم را انجام دهی. میتوانی با استفاده از سوئیچ-O، عملکرد " تشخیص سیستمعامل" در nmap را فعال کنی.
-
5یک مسیر و یا پورت باز در سیستم پیدا کن. پورتهای معمولی مثل FTP(21) و HTTP(80) معمولاً به خوبی محافظت میشوند و احتمالاً تنها در مقابل راههایی که هنوز کشف نشدهاند، آسیبپذیر هستند.
- پورتهای دیگر TCP و UDP که احتمالاً فراموش شدهاند، مثل Telnet و پورتهای UDP مختلفی که برای بازیهای LAN باز ماندهاند را امتحان کن.
- یک پورت باز ۲۲ معمولاً نشانهی وجود یک سرویس SSH (پوستهی امن) است، که بر روی هدف اجرا شده و گاهی اوقات میتواند دال بر یک حملهی جستوجوی فراگیر باشد.
-
6گذرواژه و یا فرآیند احراز هویت را کرک کن. راههای زیادی برای کرک کردن گذرواژه وجود دارد، از جمله حملهی جستوجوی فراگیر. در حملهی جستوجوی فراگیر هر گذرواژهی احتمالی که در لغتنامهی از پیش تعریف شدهی نرم افزار حمله وجود دارد روی کامیوتر امتحان میشود.
- کاربران معمولاً از گذرواژههای ساده استفاده نمیکنند، در نتیجه حملهی جستوجوی فراگیر ممکن است زمانبر باشد. در عین حال، تکنیکهای حملهی جستوجوی فراگیر بسیار پیشرفته است.
- بیشتر الگوریتمهای هش کردن ضعیف هستند و به راحتی میتوانی سرعت شکستن را با استفاده از این نقاط ضعف بالا ببری. (برای مثال میتوانی الگوریتم MD5 در۱/۴ را حذف کنی، تا سرعتت به شدت بالا برود).
- در تکنیکهای جدیدتر، از کارت گرافیک به عنوان پردازشگر استفاده میشود که بسیار پرسرعت است.
- برای شکستن سریع گذرواژه میتوان از جدول رنگینکمانی (Rainbow Tables) استفاده کرد. یادت باشد که تکنیک شکستن گذرواژه تنها وقتی خوب عمل میکند که از قبل هش گذرواژه را داشته باشی.
- امتحان کردن همهی گذرواژههای ممکن، وقتی که از راه دور وارد یک کامپیوتر میشوی، راه خیلی خوبی نیست، چرا که سیستمهای تشخیص نفوذ بهراحتی میتوانند تو را شناسایی کنند.
- همچنین میتوانی یک جدول روت شده پیدا کنی، اسکن TCP را نصب کن و با کمک یک سیگنال آن را روی سایت امن آپلود کن. بعد آدرس IP باز شده و گذرواژه روی پروکسی مشخص میشود.
- معمولاً راههای دیگر ورود به سیستم راحتتر از شکستن گذرواژه است.
-
7از حق امتیاز "ابر کاربر" استفاده کن. اگر میخواهی به یک دستگاه *nix حمله کنی، از سطح دسترسی روت و برای سیستم ویندوز، از سطح دسترسی ادمین (مدیریت) استفاده کن.
- بیشتر اطلاعات مهم، حفاظت شدهاند و برای دستیابی به آنها به سطح خاصی از دسترسی نیاز داری. برای مشاهدهی تمام فایلهای موجود برروی یک رایانه، به سطح حق امتیاز ابر کاربر احتیاج داری، یک حساب کاربری که سطح دسترسی "روت" را به کاربران سیستم عاملهای لینوکس و BSD میدهد.
- این دسترسی برای روتر به صورت پیش فرض، حساب کاربری "ادمین" میباشد (مگر اینکه تغییر داده شده باشد) و برای کاربران ویندوز، حساب کاربری"مدیر" است.
- دسترسی به یک اتصال به این معنی نیست که میتوانی به همه چیز دسترسی داشته باشی. فقط یک "ابر کاربر"، یک حساب کاربری "مدیر" و یا حساب کاربری "روت" میتواند این کار را انجام دهد.
-
8راههای مختلف را امتحان کنید.معمولاً برای دسترسی به وضعیت ابر کاربر باید از تاکتیکهایی مثل ساخت یک سرریز بافر استفاده کنی، تا باعث شود حافظه دچار مشکل شده و اجازه دهد یک کد به آن تزریق کنی و یا کاری انجام دهی که در سطحی بالاتر از کارهایی است که اجازهی انجام آنها را داری.
- در سیستم عاملهای مبتنی بر یونیکس، این اتفاق زمانی میافتد که نرم افزار باگدار، مجوز suid را ایجاد کرده باشد و در نتیجه برنامهی هک به عنوان یک دستری کاربری دیگر مثلاً "ابر کاربر" تلقی شود.
- فقط با نوشتن و یافتن یک برنامهی بدون امنیت میتوانی روی دستگاههایی که اجازه این کار را میدهند کا ر کنی.
-
9یک در پشتی ایجاد کن. وقتی که کنترل کامل یک دستگاه را به دست آوردی، باید اطمینان پیدا کنی که میتوانی دوباره برگردی. این کار را با ایجاد در پشتی در یک سیستم سرویس مهم مانند سرور SSH میتوان انجام داد. با این حال، در پشتی ممکن است در به روز رسانی بعدی سیستم از بین برود. یک هکر حرفهای برای خود کامپایلر در پشتی ایجاد میکند، در نتیجه هر نرمافزار کامپایل شده، تبدیل به راهی بالقوه برای بازگشت خواهد شد.
-
10رد پای خود را پاک کن. اجازه نده که مدیر سیستم متوجه شود سیستم در معرض خطر قرار گرفته است. وب سایت را (اگر وبسایتی هست) تغییر نده و بیشتر از آنچه نیاز داری فایل درست نکن. کاربر اضافی ایجاد نکن. تا جایی که میتوانی سریع عمل کن. اگر یک سرور مانند SSHD ایجاد کردی، مطمئن شو که گذرواژهات در آن ثبت شده باشد. به نحوی که اگر کسی سعی کرد با این گذرواژه وارد شود، سرور اجازه ورود بدهد، اما حاوی اطلاعات مهمی نباشد.
نکات
- اگر متخصص یا هکر حرفهای نیستی استفاده از این تاکتیکها روی رایانهی شرکتهای خصوصی یا دولتی، به معنای دنبال دردسر رفتن است. یادت باشد، همیشه افرادی هستند که بیشتر از تو میدانند و برای بقاء این سیستمها دائم از آنها محافظت میکنند. اگر پیدایت کنند، گاهی قبل از هر اقدام قانونی، فعالیت نفوذگر را تحت نظر میگیرند، تا ببینند میخواهی چه کاری انجام دهی. این بدان معنا است که ممکن است وقتی بعد از هک به سیستم آزادانه دسترسی پیدا کردی تحت نظر باشی و هر لحظه متوقف شوی.
- هکرها همان کسانی هستند که اینترنت را راهاندازی کردند، لینوکس را ساختند و برروی نرمافزارهای "متن باز" کار میکنند. بهتر است به "هک" به عنوان مقولهای کاملاً قابل احترام و چیزی که قبل از هر کار جدی در محیط واقعی، نیاز به داتش حرفهای دارد، برخورد کرد.
- یادت باشد، اگر هدفی که آنرا هک میکنی تلاش نکند تا مانع نفوذت شود، هیچوقت پیشترفت نمیکنی. البته نباید خیلی هم تند بروی، فکر نکن از همه بهتر هستی. هدفت این باشد که بهتر و بهتر شوی. روزی که چیز جدیدی یاد نگیری، یک روز از دست رفته است. همه چیز به خودت بستگی دارد. به هر قیمتی شده، بهترین شو. نیمه راه وجود ندارد، باید تمام توانت را بگذاری. به قول بودا: "یا کار را کاملاً انجام بده، یا اصلا انجامش نده. سعی کردن معنا ندارد."
- اگرچه بسترهای امن آموزشی و قانونی زیادی برای همه وجود دارد، ولی متاسفانه باید گفت تا زمانیکه وارد کارهای غیرقانونی در این حوزه نشوی، حتی به سطح متوسط هم نخواهی رسید. این موضوع همیشه در ذهنت باشد: اگر با مشکلات واقعی در سیستمهای واقعی و با ریسک واقعی گیر افتادن مواجه نشوی هیچوقت هکر نمیشوی.
- یادت باشد، هک کردن به معنی نفوذ در یک رایانه، بدست آوردن یک شغل پر درآمد، فروش اطلاعات بدست آمده در بازار سیاه و یا حتی کمک کردن به کسی برای ایمنسازی دستگاهش نیست. تو هکر "نمیشوی" تا به مدیران شبکه کمک کنی که کارشان را بهتر انجام دهند. تو هکر میشوی تا بهترین شوی.
- در مورد شبکههای TCP/IP مطالعه کن.
- تفاوت بزرگی بین یک هکر و یک کرکر وجود دارد. انگیزهی یک کرکر کارهای مخرب (یا کسب درآمد) است، در حالیکه هکرها سعی میکنند تا همیشه و به هر قیمتی که شده، اطلاعات جدید بدست آورند و از طریق اکتشاف (دور زدن سیستمهای امنیتی) دانش کسب کنند هر چند اگر از راههای غیر قانونی باشد.
- اول با هک کردن رایانهی شخصی خودت تمرین کن.
هشدارها
- اگر به مهارت خود اطمینان نداری از نفوذ به شبکهی شرکتهای بزرگ و حقوقی، دولتی یا نظامی خودداری کن. حتی اگر امنیت شبکهی آنها ضعیف باشد پول کافی برای پیدا کردن و گیر انداختنت دارند. اگررخنهای در این نوع شبکهها پیدا کردی بهتر است کار را به یک هکر با تجربه و قابل اعتماد بسپاری. کسی که بتواند از این فرصت به خوبی استفاده کند.
- استفادهی نادرست از اطلاعات این مقاله میتواند براساس قوانین کشوری جرم تلقی شود. این مقاله به منظور ارائه اطلاعات، نوشته شده و باید صرفاً برای اهداف اخلاقی و نه غیر قانونی، مورد استفاده قرار گیرد.
- هک کردن سیستم سایر اشخاص ممکن است غیرقانونی باشد، بنابراین تا مطمئن نشدی کهاجازهی صاحب سیستم را داری، از انجام آن خودداری کن. مگر اینکه کارت ارزش گیر افتادن را داشته باشد!
- هیچوقت برای تفریح و سرگرمی هک نکن. یادت باشد، هک کردن شبکه افراد بازی نیست بلکه قدرت تغییر جهان است، پس آنرا صرف کارهای کودکانه نکن.
- تمام فایلهای گزارش (log فایلها) را پاک نکن فقط ورودیهای جعلی را از فایل حذف کن. سوال بعدی این است که آیا فایل گزارش پشتیبان و بک آپ وجود دارد؟ اگر فایلها را با فایلهای بک آپ مقایسه کنند و متوجه موارد پاک شده شوند چه؟ حواست به کارهایی که انجام میدهی باشد. بهترین کار پاک کردن تصادفی خطوط لاگ از جمله لاگهای خودت است.
- شاید تا حالا عکس این را شنیده باشی، ولی هیچوقت به کسی در پچ کردن سیستم یا برنامههایش کمک نکن. این کار یک سابقه منفی برایت ایجاد میکند و منجر به ممنوعیت حضور در بسیاری از جوامع هک خواهد شد. همچنین اگر یک برنامهی مخرب مخفی منتشر کنی و شخصی آن را پیدا کند، آن شخص ممکن است به دشمن خودت تبدیل شود. هر چه باشد از تو بهتر است.
- اگراحساس کردی با یک کرک خیلی آسان یا یک اشتباه مدیریتی پیش پا افتاده مواجه شدی، حواست را خیلی جمع کن، چرا که ممکن است متخصص امنیت شبکه در تلاش باشد فریبت دهد و یا برایت honeypot گذاشته باشد.
چیزهایی که نیاز داری
- سیستم کامپیوتر شخصی یا لپ تاپ با اتصال به اینترنت
- پروکسی (اختیاری)
- اسکنر آی پی