مهمترین تخصص هایی لازم برای یک هکر
مهمترین تخصص هایی لازم برای یک هکر
چه تخصص هایی برای یک هکر لازم است؟
اولین قدم در تبدیل شدن به یک متخصص خوب امنیت، این است که به یک متخصص معمولی امنیت تبدیل شوید. خیلی خوبه اگر از اول دنبال تبدیل شدن به بهترین هستید اما در نهایت بهتره حواس تان باشد که برای رسیدن به هر جایی باید قدم به قدم پیش رفت و حوصله داشت. بخصوص در دنیای امنیت که بهترین ها، معمولا پیشینه گستردهای دارند و در حوزههای مختلف دانش دارند.
خیلی از متخصصین امنیت و هکرهای خوب، با کارهایی مثل برنامهنویسی، سیستمعامل، شبکه، طراح و موارد مشابه شروع کردن و بعد از چرخیدن در حوزههای مختلف، سراغ امنیت رفتند. ما اگر قرار هست بصورت اصولی، علمی و برای اینکه واقعا تبدیل به یک هکر قهار شوید. بد نیست بدانید که برای تبدیل شدن به یک هکر واقعی، یک هکر با تمام تخصص های لازم در این حوزه تقریبا بیش از 20 نوع دانش مختلف و متنوع نیاز است که در ادامه به معرفی تک تک آنها می پردازیم:
1- شناخت شبکه های کامپیوتری در هک و نفوذ
به عنوان یک هکر شما باید به لایه های OSI و پروتکل های هر لایه آشنایی داشته باشید. شما باید بدانید پروتکل های لایه هفت (DNS, HTTP, HTTPS DHCP, LDAP, FTP, SMTP, IMAP, POP, SSH, Telnet و …) چه هستند و چه کاری انجام می دهند و تفاوت آنها با پروتکل های لایه چهار (TCP و UDP)، پروتکل های لایه 3 (IP و ICMP) و همچنین پروتکل های لایه دو (Ethernet و ARP و …) در چه چیزهایی هستند.
شما باید استانداردهای 802 را به خوبی بشناسید و بدانید ساختار IP و مفاهیمی مثل Subnetting و VLAN و … چه هستند و چه زمانی کاربرد دارند. شما باید دقیقا بدانید که این پروتکل ها چه هستند، چه کاری انجام می دهند و چه زمانی کاربرد دارند.
شما برای اینکه بتوانید به خوبی به این موضوع مسلط شوید باید سوالاتی مثل سوال زیر به خوبی پاسخ بدهید:
- ارتباط بین مرورگر و وب سرور چگونه انجام می شود؟
- در هر یک از لایه های OSI چه پروتکل هایی فعالیت می کنند و چه کاری انجام می دهند؟
- و ….
علاوه بر مسائل درک مطلب و مفهوم استفاده از پروتکل ها ، شما باید در این سطح بتوانید ترافیک شبکه را با ابزارهای شنود ترافیکی مثل Wireshark و … شنود کنید و بتوانید آنها را تجزیه و تحلیل کنید. شما باید بتوانید تشخیص بدهید چه پروتکل های امن و چه پروتکل های ناامنی در ترافیک شبکه شما وجود دارند و بتوانید بعضا اطلاعات حساسی را از طریق شنود شبکه از آن بیرون بکشید.
با درک کردن چنین ترافیک هایی شما می توانید حملاتی مثل حمله Man In The Middle یا حمله ARP Poisoning و اساسا حملات لایه شبکه را به خوبی انجام بدهید . در عین حال زمانیکه شما درک درستی از شبکه و موارد گفته شده داشته باشید می توانید نقشه های شبکه، دیاگرام ها و خیلی دیگر از اطلاعاتی که باید در زمان هک و نفوذ از هدف حمله داشته باشید را هم تجزیه و تحلیل کنید و هم آنها را رسم کنید.
2- شناخت اجزای شبکه در هک و نفوذ
شما به عنوان یک هکر باید تجهیزات شبکه را به خوبی بشناسید و بدانید از هر دستگاه در کجای شبکه و به چه منظور استفاده می شود. شما باید نحوه طراحی شبکه های کامپیوتری، محل و دلیل استفاده از تجهیزات امنیتی و نحوه استفاده از آنها را به خوبی بشناسید. شناخت کنترل های امنیتی در هک و نفوذ یکی از اساسی ترین موارد در دنیای هک است چون شما به عنوان یک هکر باید راهکارهای دور زدن این سیستم ها را بشناسید و طبیعتا تا زمانیک خود سیستم را نشناسید، راهکار دور زدن و هک کردن آن را هم یاد نمی گیرید.
حداقل چیزهایی که شما باید از بحث تجهیزات و اجزای مختلف شبکه بدانید را می توانیم به موارد زیر خلاصه کنیم :
- سویچ های شبکه
- روترهای شبکه
- Gateway ها
- فایروال ها و UTM ها
- مفاهیم VLAN و Zone
- و …
شما تا زمانیکه ساختار یک سویچ شبکه را به خوبی درک نکنید ، تفاوت سویچ های لایه دو و لایه سه را ندانید ، مفهوم و نحوه پیاده سازی کنترل های امنیتی مثل VLAN و Zone سازی در روترها و سویچ ها را ندانید ، قطعا نمی توانید از روشهای دور زدن یا Bypass کردن آنها در نفوذ استفاده کنید . شما تا زمانیکه ندانید سویچ چگونه کار می کند و نحوه عملکرد آن در شبکه هدف نفوذ را نتوانید تجزیه و تحلیل کنید، توانایی شنود کردن ترافیک یا انجام داده حملاتی مثل MITM یا MAC Cloning یا VLAN Hopping را نخواهید داشت.
علاوه بر این ها، همیشه سازمان ها در لایه انتهایی شبکه خودشان از فایروال ها یا UTM ها برای امنیت لایه Edge یا لبه شبکه استفاده می کنند و شما طبیعتا باید در مورد تجهیزات امنیتی این لایه هم اطلاعاتی داشته باشید، حداقل مکانیزم کاری، طراحی ها، کنترل های دسترسی و اساسا ماهیت کاری فایروال ها را باید به خوبی درک کنید.
آشنایی داشتن با تجهیزات امنیتی که در زیر معرفی می کنیم برای یک نفوذگر یک امر کاملا طبیعی است:
- فایروال های شرکت Fortinet
- فایروال های شرکت سیسکو ASA
- فایروال های شرکت میکروتیک Mikrotik
- فایروال های شرکت جونیپر Juniper
- فایروال های شرکت کریو Kerio Control
- فایروال های شرکت F5
- فایروال های شرکت Checkpoint
- فایروال های شرکت PaloAlto
- انواع فایروال بومی نمای ایرانی
- و …
به عنوان یک تست نفوذگر یا هکر قرار نیست شما ته همه این فایروال ها را در بیاورید و به زیر و بم آنها مسلط شوید. همینکه کمی با هر کدام کار کرده باشید ، محیط آنها را بشناسید و بدانید که چگونه بصورت کلی با آنها کار کنید کافیست . این شناخت زمانی به شما کمک می کند که در پروژه تست نفوذ به مرحله ای می رسید که به دلیل آسیب پذیری یا نقطه ضعیف امنیتی که وجود دارد شما توانسته اید به یکی از این فایروال ها دسترسی پیدا کنید./
طبیعتا باید بتوانید حداقل وارد آنها شوید و اطلاعات اولیه ای مثل SNMP Community String یا حتی اگر امکانش بود Hash پسورد و کپی تنظیمات آنها را خروجی بگیرید و در زمان مناسب پسوردهای آنها را کرک کنید تا در دسترسی های بعدی راحت تر نفوذ را انجام بدهید. برای مثال در حال حاضر یک ابزار کرک کردن پسورد فایروال ها و سویچ ها و روترهای سیسکو وجود دارد که در صورت داشتن دسترسی به فایل Config این تجهیزات امکان کرک کردن پسوردها را به شما می دهد.
3-شناخت شبکه های بیسیم در هک و نفوذ
شبکه های بیسیم یا وایرلس یکی از نفوذپذیرترین قسمت های یک شرکت یا سازمان هستند. به عنوان یک هکر شما باید به این موضوع واقف باشید که تقریبا امروزه در همه جا می توانید شبکه های بیسیم را مشاهده کنید و به همین دلیل هم باید شما درک جامعی از این شبکه ها داشته باشید. داشتن دانش در خصوص امنیت شبکه های بیسیم، الگوریتم های رمزنگاری، پروتکل های WEP و WPA و … مکانیزم های احراز هویت وایرلس، مزایا و معایب استفاده از SSID، مفاهیم Captive Portal ،MAC Spoofing و … تنها برخی از مواردی است که شما در وایرلس باید به خوب بشناسید و استفاده کنید .
نکته:
شما باید نسبت به حملاتی که به شبکه های وایرلس انجام می شود هم دانش کافی داشته باشید . اینکه در کجا از جعل کردن آدرس MAC استفاده کنید، اینکه چگونه یک حمله De-Auth بر روی یک Access Point انجام دهید ، اینکه چگونه یک Evil Twin برای اکسس پوینت ها ایجاد کنید یا نحوه راه اندازی یک Jammer همه و همه از جمله مواردی است که باید به آنها مسلط باشید.
دانستن نحوه استفاده از ابزارهای هک وایرلس مثل aircrack و airmon و نحوه کرک کردن Hash پسوردهای وایرلس، دانستن آسیب پذیری های مربوط به هر پروتکل و حتی آسیب پذیری های دستگاه های وایرلس از جمله موارد اجتناب ناپذیر برای یادگیری در هک و نفوذ است . شناخت تجهیزات وایرلس، Chipset های تخصصی هک و نفوذ، تجزیه و تحلیل کردن ترافیک بیسیم از دیگر مواردی است که شما به عنوان یک هکر باید به آنها مسلط باشید. فراموش نکنید که هک کردن پسورد وای فای همسایه به دلیل سهل انگاری همسایه در پیکربندی مودم و فعال بودن WPS درست است که برای شما لذت بخش است! اما در نهایت چیزی به شما به عنوان یک هکر اضافه نمی کند و تنها از شما یک Script Kiddie می سازد.
4-شناخت سخت افزارهای مراکز داده در هک و نفوذ
داشتن دانش در خصوص ساختار فیزیکی سخت افزارهای اتاق سرور و مراکز داده و دید داشتن نسبت به کابل کشی و رک ها و … در هک و نفوذ چندان به عنوان یک تخصص و یک الزام مطرح نیستند اما اگر کسی نسبت به اینگونه تجهیزات شناخت داشته باشد ، قطعا هکر بهتری خواهد بود اما به چه دلیل؟
تقریبا اکثر تجهیزات سخت افزاری مثل سرورها، روترها، فایروال ها، رک ها، UPS ها، سیستم های تهویه مطبوع، IPS ها، IDS ها سیستم های ذخیره سازی اطلاعات، سویچ های شبکه، سویچ های KVM و … یک رابط کاربری تحت وب دارند یا پورت کنسول دارند که می توان از آنها برای دسترسی پیدا کردن به محلی که کمتر کسی فکر می کند ممکن است از آن طریق هک شود، استفاده و سوء استفاه کرد.
مثال:
برای مثال سرورهای HP پورتی به نام iLO دارند که از طریق آن می توان سرور را از بوت شدن تا زمان مشاهده و ورود به سیستم عامل مشاهده و مدیریت کرد ! تقریبا اکثر تولید کننده های سرور چنین پورتی را در تجهیزات خودشان تعبیه می کنند. یا سویچ KVM این امکان را به شما می دهد که از طریق همین رابط وب ! از طریق همین پورت iLO و پولیت های دیگر دسترسی بسیار سطح بالایی به تمام سرورهای سخت افزاری مرکز داده ایجاد شود!
جالب اینجاست که اکثرا کسی به فکر امن کردن دسترسی به این نوع دستگاه ها نیست! البته معمولا دسترسی به چنین رابطی در یک شبکه ایزوله انجام می شود اما… همینکه وجود دارد و شما بتوانید به عنوان یک هکر به چنین VLAN ای نفوذ کنید عملا یعنی می توانید کارهای زیادی با آن انجام دهید! تصور کنید از یک سیستم تهویه مطبوع یک هکر بتواند به سیستم عامل های ما نفوذ کند!
5-مدیریت سیستم های کامپیوتری در هک و نفوذ
بدون شک یکی از مهمترین تخصص های یک هکر شناخت درست سیستم عامل هاست. داشتن تجربه مدیریت سیستم برای یک نفوذگر قطعا مزیت های بسیار زیادی به همراه دارد. شما به عنوان یک هکر باید حداقل دانش در خصوص سیستم عامل هایی مثل لینوکس و یونیکس و البته ویندوز را داشته باشید. شما باید بدانید که چگونه این سیستم عامل ها پیکربندی می شوند، فایل های پیکربندی مهم این سیستم عامل ها در کجا قرار دارند، log ها در کجا ذخیره می شوند و تنظیمات شبکه، ترافیک و البته اسکریپت ها در این سیستم عامل ها در کجا ذخیره و اجرا می شوند و فرمت اجرای آنها چیست.
شما باید از سطوح دسترسی در هر سیستم عامل (Permissions و Privilege) ها به خوبی اگاه باشید تا بتوانید از طریق آنها نقاط آسیب پذیر مختلف یک سیستم را تشخیص بدهید و بتوانید تکنیک های حمله خود را بر روی آن آسیب پذیری اعمال کنید. تا زمانیکه ندانید یک سیستم عامل به چه شکل کار می کند ، هیچوقت نمی توانید درک درستی از نفوذ کردن به آن داشته باشید.
6-شناخت سرویس های شبکه در هک و نفوذ
به عنوان یک نفوذگر ، شما باید تجربه استفاده از سرویس های شبکه مختلف را داشته باشید. این بحث خیلی خیلی بزرگ و گسترده است و نیاز به زمان به مراتب بیشتری نسبت به تخصص های دیگر دارد ، شما باید بدانید که یک سرویس چه کاری انجام می دهد، چگونه آن کار را انجام می دهد، تنظیمات آن چگونه انجام می شود. معمولا چه تنظیمات اشتباه یا پیشفرضی در آن وجود دارد و چه پروتکل هایی با آن سرویس درگیر هستند. برای مثال شما اگر با سرویسی مثل SNMP به خوبی آشنایی داشته باشید حتما باید در خصوص حملاتی که به SNMP Community String انجام می شود اطلاعاتی داشته باشید.
یا اگر با سرویس SMTP آشنایی دارید حتما باید بدانید که چگونه ممکن است حمله SMTP Open Relay انجام می شود. در سرویس DNZ شما باید به مبحث Zone Transfer و اهمیت آن در نفوذ کاملا آگاه باشید و به همین ترتیب حملاتی مثل SMB Null Session یا LDAL Null Bind یا FTP Anonymous Login و … همگی جزئی از حملات و آسیب پذیری هایی هستند که شما فقط در صورت مسلط بودن بر روی سرویس های شبکه می توانید از آنها استفاده کنید. علاوه بر داشتن دانش نفوذ به این سرویس ها ، شما باید بتوانید براحتی آنها را پیکربندی کنید ، طبیعتا یک هکر باید بتواند یک وب سرور در لینوکس یا ویندوز ، یک DHCP سرور ، یک DNS سرور یا حتی Shared Folder در سیستم عامل های مختلف ایجاد کند و این را جزئی از بدهیات هک و نفوذ بداند.
7-شناخت اکتیودایرکتوری و LDAP در هک و نفوذ
اکتیودایرکتوری ( Active Directory ) قلب و هسته مرکزی احراز هویت و مدیریت متمرکز تقریبا 99 درصد شرکت ها و سازمان های دنیاست. شما تقریبا همه جا می توانید اکتیودایرکتوری را ببینید . این بسیار مهم است که به عنوان یک نفوذگر شما ساختار امنیتی این سرویس را به خوبی بشناسید و درک کنید ، آسیب پذیری ها ، نقاط ضعف ، انواع تکنیک حمله به این سرویس و حتما روشهای مقابله با آن را بشناسید. برای مثال شما باید بدانید که برخی از Policy ها در اکتیودایرکتوری باعث می شوند که پسوردهای کاربران بصورت رمزنگاری نشده در قسمتی از پوشه های اشتراکی شبکه ذخیره شوند و با دانستن آن می توانید به پسوردها دسترسی پیدا کنید !
یا شما با شناخت ساختار کاری پروتکل Kerberos و حساسیت آن به زمان و البته دستکاری کردن در آن می توانید حملاتی که به زمان سیستم مرتبط است را انجام دهید ، دسترسی های خود را بالا ببرید و … شما باید با مکانیزمهای امنیتی اکتیودایرکتوری مثل LAPS و PAM به خوبی آشنایی داشته باشید. شما باید بتوانید از اکتیودایرکتوری Query بگیرید ، ساختار DN یا Distinguished Name را درک کنید ، ساختار Trust ها را بدانید و بعد از آن است که شما با دانستن نقاط و آسیب پذیری هایی که در این سرویس ممکن است پیدا شود ، دقیقا می دانید که چگونه به چنین شبکه ای حمله کنید ، لینک زیر دید جامعی از اکوسیستم امنیتی اکتیودایرکتوری مایکروسافت به شما می دهد که بد نیست به آن نگاهی بیندازید.
https://github.com/infosecn1nja/AD-Attack-Defense
8-آشنایی با ابزارهای خط فرمانی در هک و نفوذ
هکری که بلد نباشید با خط فرمان و دستورات به خوبی کار کند هکر نیست .. والسلام … در تقریبا 99 درصد حملاتی که شما به اهداف نفوذ انجام می دهید ، هیچوقت دسترسی گرافیکی به سیستم در ابتدای کار دریافت نمی کنید و فقط یک محیط دستوری یا در اصطلاح Command Line خواهید داشت که هر چیزی از آن بخواهید بر روی سیستم قربانی اجرا خواهد کرد. بنابراین دانستن خط فرمان سیستم عامل های مختلف و به زبان ساده تر دانستن Command Line برای هکرها الزامی است.
شما با دانستن دستورات خط فرمان براحتی می توانید با فایل های سیستمی کار کنید ، دسترسی ها را تغییر بدهید ، داده های متنی را تغییر بدهید ، لاگ فایل ها را ببینید و دستکاری کنید ، خروجی و ورودی برنامه ها را تغییر بدهید و هزاران کاری که در حیطه این مقاله نیست .
مهم نیست خط فرمان ویندوزی باشد یا لینوکسی ، در هر صورت شما بهتر است بدانید که اساس کاری اکثر محیط های خط فرمان یکسان است. اما بهتر است که دانش لینوکسی خود را همیشه بیشتر کنید. شما باید بتوانید براحتی با این محیط Shell یا پوسته دستورات لینوکس کار کنید و با دستورات اولیه ای مثل grep head tail sort uniq tr cut wc sed awk و … براحتی کار کنید و هراسی از دستور نداشته باشید. دستورات به شما امکان خارج کردن و به دست آوردن اطلاعاتی را می دهند که شاید هیچوقت نتوانید در محیط گرافیکی به دست بیاورید . در ویندوز هم CMD و PowerShell جزو مفسرهایی هستند که بسیار می توانند به شما در هک و نفوذ کمک کنند بد نیست نگاهی به محیط های دستوری PowerShell و BASH Shell لینوکس بیندازید و کم کم با آنها ارتباط نزدیکی برقرار کنید.
9-آشنایی با Regular Expressions در هک و نفوذ
عبارات با قاعده یا Regular Expressions که بصورت خلاصه به آنها RegEx هم گفته می شود ، قدرتمندترین ابزار جستجو و پیدا کردن الگوهای متنی در هک و نفوذ به حساب می آیند. دقت کنید که RegEx ها نه نرم افزار هستند ، نه سرویس هستند و نه زبان برنامه نویسی ، بلکه صرفا یک الگوی استاندارد جستجو و جایگذاری هستند . اگر بخواهیم با مثال به شما کاربرد RegEx ها را توضیح بدهیم باید فرض کنید که یک فایل XML یا فایل متنی بسیار حجیم دارید که داخل آن مملو از اطلاعات شلخته و درهم برهم است .
حالا شما به عنوان یک هکر می خواهید از این فایل اطلاعات مهمی مثل لیست آدرس های IP ، آدرس های دومین ، شماره های تلفن ، آدرس های MAC ، آدرس های ایمیل و مثلا اسامی کامپیوترها را خارج کنید. اینکار طبیعتا فقط با استفاده از RegEx ها به سادگی انجام می شود و اگر شما نتوانید درکی از RegEx داشته باشید کارتان درآمده است. یکی از قابلیت های بسیار خوب RegEx ها ، جستجو و جایگزینی است . شما براحتی می توانید در داده های متنی سنگین اطلاعات مورد نظر خودتان را گروه بندی کنید ، برش دهید و البته با محتوای مورد نظر خودتان تغییر بدهید . تصویر بالا نمایانگر یک نمونه از ساختار Regular Expressions است . به عنوان یک نفوذگر باید عبارات با قاعده را دوست داشته باشید.
10- آشنایی با Shell Scripting در هک و نفوذ
قبلا در خصوص انواع توزیع های امنیتی و هک و نفوذ لینوکس بصورت مفصل در جت آموز صحبت کرده ایم. فارغ از اینکه شما از چه توزیع امنیتی لینوکسی برای هک کردن استفاده می کنید ، در تمام این توزیع ها یک چیز مشترک است و آن Shell یا محیط خط فرمان و دستورات آن است . در واقع بیشترین زمان یک هکر در محیط Shell صرف می شود بنابراین هر نفوذگری باید بتواند در استفاده از Shell به تبحر برسد تا از قدرت های اصلی این ابزار و خودکار سازی فرآیندهای آن به بهترین شکل بتواند استفاده کند.
این محیط Shell است که به شما قابلیت خودکار سازی فرآیندهای روزمره و تکراری را در قالب نوشتن اسکریپت های کوچک و بزرگ می دهد. شما می توانید ابزارهای مختلف را با هم هماهنگ سازی کنید ، ورودی و خروجی ها را تعیین و تعریف کنید ، اسکریپت های دلخواه خودتان را بنویسید و ابزارهای دستی ایجاد کنید و بصورت کلی یک نفوذگر باید بتواند Shell Scripting انجام بدهد هر چند مبتدی باشد اما این قطعا نیاز شما در دنیای هک و نفوذ خواهد بود.
11-آشنایی با حداقل یک زبان برنامه نویسی در هک و نفوذ
خیلی رک و بدون تعارف ! هکری که برنامه نویسی نداند ، هکر واقعی نیست. هر چند اگر طبقه بندی نوع هکرها را در نظر بگیریم و شما با یک وب هکر یا یک کرکر طرف باشید. یک هکر قرار است که آسیب پذیری های یک سیستم عامل ، نرم افزار یا وب سایت را پیدا کند و از طریق آن نفوذ کند ، صحبت اصلی اینجاست که قطعا آن سیستم عامل ، نرم افزار یا وب سایت با یک زبان برنامه نویسی نوشته شده است. شما اگر دیدی نسبت به برنامه نویسی نداشته باشید نمی توانید باگهای امنیتی درون آنها را پیدا کنید و به آنها نفوذ کنید!
مگر اینکه از باگ های آماده ای که قبلا کشف شده اند استفاده کنید . شما به عنوان یک هکر باید نسبت به روند تولید نرم افزار ، مکانیزم های لاگین به نرم افزارها ، مکانیزم های احراز هویتی نرم افزارها و وب سایت ها ، مکانیزم های نگهداری رمزها و داده های رمزنگاری شده در برنامه ها و البته نحوه ذخیره سازی اطلاعات و ارتباط گیری با دیتابیس ها دید جامعی داشته باشید. بنابراین داشتن دید نسبت به حداقل یک زبان برنامه نویسی از اوجب واجبات حداقل در کرکینگ و وب هکینگ است .
12-آشنایی با زبان اسکریپت نویسی پایتون در هک و نفوذ
دانستن زبان برنامه نویسی و اسکریپت نویسی پایتون یکی از مزیت های درجه بالا برای هر هکری است. خیلی ساده بگوییم زبان پایتون یک زبان بسیار قدرتمند، بسیار ساده برای یادگیری، بسیار ساده برای کدنویسی و البته چند پلتفرمه (امکان اجرا روی سیستم عامل های مختلف) است.
اما نکته دیگری که پایتون را خاص و بسیار مورد علاقه کارشناسان امنیت و هکرها می کند این است که برنامه نویس های امنیتی (هکرهای برنامه نویس) و کارشناسان امنیت شبکه، اسکریپت های آماده به کار بسیار خوبی به این زبان نوشته اند که از آن جمله می توانیم به exploit های بسیار کاربردی اشاره کنیم، این اسکریپت ها و Code های آماده شما را از خیلی از دوباره کاری ها در این زبان بی نیاز می کند و اینکه شما می توانید به جای اختراع چرخ، به فکر موتور خود باشید قطعا خیلی متفاوت است.
13-امکان شناسایی PoC ها و Exploit ها در هک و نفوذ
شما به عنوان یک کارشناس تست نفوذ ، وقتی از ابزارهای اسکنر امنیتی استفاده می کنید ، حتما با مواردی مواجه می شوید که ابزار به شما می گوید که بر اساس این CVE-XXX-YYYY این هدف حمله آسیب پذیر است . در اکثر موارد در ایران خروجی همین نرم افزار به عنوان گزارش تست نفوذ سنجی به کارفرما ارائه می شود ولی ممکن است در نتایج ابزار اسکنر اشتباه رخ بدهد و CVE-XXX-YYYY مورد نظر اصلا قابل استفاده بر روی آن هدف حمله نباشد. شما به عنوان یک هکر باید بدانید و اثبات کنید که این آسیب پذیری کشف شده در هدف با استفاده از فلان قطعه کد یا Exploit قابل نفوذ است.
در اصطلاح شما باید Proof Of Concept یا PoC به کارفرما ارائه کنید . شما نمی توانید چشم بسته به کارفرما بگویید که آسیب پذیر هستید چون ابزار این آسیب پذیری را کشف کرده است . هر چقدر که شما قدرت اثبات و ارئه PoC بیشتری داشته باشید ، کارفرمایان بیشتری به شما به عنوان یک نفوذگر اعتماد می کنند و با شما قراردادهای تست نفوذ بیشتری امضاء خواهند کرد.
شما می توانید از طریق لینک های زیر اطلاعات خوبی در خصوص PoC ها و Exploit ها پیدا کنید :
- https://www.exploit-db.com/
- https://github.com/offensive-security/exploit-database
- https://github.com/offensive-security/exploit-database-bin-sploits
- https://github.com/qazbnm456/awesome-cve-poc
- https://github.com/Mr-xn/Penetration_Testing_POC
- https://github.com/Medicean/VulApps
- https://github.com/nixawk/labs
- https://github.com/Coalfire-Research/java-deserialization-exploits
- https://github.com/toolswatch/vFeed
- https://github.com/Metnew/uxss-db (Browser vulns)
- https://github.com/tunz/js-vuln-db (JavaScript vulns)
14-شناخت سرویس های اینترنتی در هک و نفوذ
به عنوان یک هکر شما باید اینترنت را خوب بشناسید. شما باید بدانید اینترنت و محیط آن چگونه کار می کند و چگونه می توانید سرویس های اینترنتی را راه اندازی کنید ، قطعا بدون داشتن تجربه کاری مرتبط با محیط های اینترنتی شما نمی توانید یک هکر موفق شوید. یک هکر ساده باید بتواند مفاهیم دومین را به خوبی درک کند ، بتواند یک دامنه اینترنتی ثبت کند، آن را به سمت یک سرور یا یک سرویس اشتراکی هدایت کند.
یک سرور مجازی یا یک سرور فیزیکی را برای سرویس های هاستینگ یا وب پیکربندی کند ، ارتباط بین دامنه و هاست را برقرار کند ، تنظیمات SSL و Certificate را به خوبی درک کند و بتواند آن را پیاده سازی کند و حتی بد نیست یک هکر کمی از طراحی وب هم سر در بیاورد . شاید مجبور شود بستری برای صفحات کلاهبرداری و جعل هویت یا انجام حملات Phishing طراحی کند و به همین دلیل باید بداند که اینها چگونه انجام می شوند.
15-قابلیت جمع آوری اطلاعات از اینترنت ( OSINT Gathering ) در هک و نفوذ
همانطور که گفتیم در هالیوود فقط شما قسمت انتهایی ماجرا را می بینید و آن نفوذ است ! در صورتیکه بیش از 90 درصد فرآیند هک و نفوذ حرفه ای فاز جمع آوری اطلاعات از هدف نفوذ است و این یک تخصص بسیار مهم در هک و نفوذ محسوب می شود. هر هکری باید بتواند از طریق اطلاعات عمومی که می تواند از منابع مختلف اینترنتی به دست بیاورد ، در مورد هدفش اطلاعات جامعی جمع آوری و متمرکز کند. این اطلاعات می تواند شامل اطلاعات فنی یا سازمانی یا حتی اطلاعات فردی باشد.
اطلاعاتی از قبیل رکوردهای DNS ، اطلاعات Whois ، اطلاعات موجود در موتورهای جستجو ، اطلاعات موجود در شبکه های اجتماعی و … از جمله مهمترین اطلاعاتی هستند که در مورد هدف نفوذ باید بتوانید از این منابع جمع آوری کنید . به این فرآیند در اصطلاح فنی OSINT گفته می شود اما بد نیست مطالعه ای در خصوص Footprinting در هک و نفوذ داشته باشید که در ادامه لینک های جامعی در این خصوص به شما معرفی خواهم کرد . بیایید با هم یک تمرین داشته باشیم !
سعی کنید لیست اطلاعاتی که در زیر عنوان شده است را در خصوص یکی از سازمان ها یا ادارات دولتی پیدا کنید و برای خودتان یادداشت کنید :
- نام دامنه های ثبت شده سازمان
- اطلاعات Subdomain ها و Hostname ها
- آدرس های IP و محدوده آدرسهای عمومی و خصوصی
- آدرس های ایمیل سازمان ( اعم از اشخاص و … )
- شماره تلفن های عمومی و خصوصی سازمان
- پیدا کردن چارت سازمانی و سلسله مراتب اداری
- پیدا کردن نوع سیستم عامل های مورد استفاده در سازمان
- و …
اینکار یک تخصص بسیار مهم در هک و نفوذ محسوب می شود و ابزارهای بسیار متنوع و زیادی هم در شبکه اینترنت بصورت عمومی برای جمع آوری و ثبت این اطلاعات وجود دارند. در لینک زیر می توانید منابع بسیار خوبی از ابزارهای OSINT را مشاهده کنید.
- https://github.com/jivoi/awesome-osint
16-شناخت انواع پایگاه داده در هک و نفوذ
هر هکری ، خواسته یا ناخواسته باید در خصوص پایگاه های داده دارای حداقل دانش باشد. ببینید ، دقت کنید ، نگفتیم برنامه نویسی پایگاه داده بدانید یا یک DBA یا مدیر دیتابیس باشد ، اگر اینطور باشد که یک حالت بسیار ایده آل برای شماست اما منظور این است که شما تجربه کار کردن و روبه رو شدن با پایگاه داده های معمولی که در اکثر سرویس ها استفاده می شوند را باید داشته باشید برای مثال شما بهتر است با پایگاه داده هایی مثل MySQL ، MongoDB ، PostgreSQL ، Microsoft SQL ، Elasticsearch ، Oracle ، Redis و … حداقل آشنایی را داشته باشید.
شما حداقل باید بتوانید این سه کار را در هر پایگاه داده ای انجام دهید :
- بتونید تشخیص بدید نوع دیتابیس مورد استفاده سیستم چی هست؟
- بتونید به دیتابیس مورد نظر متصل بشید و واردش بشوید.
- بتونید لیستی از پایگاه داده های موجود در دیتابیس رو ببینید.
- بتونید لیست جداول دیتابیس رو به همراه داده هاش ببینید.
- درک کنید مفهوم Query گرفتم از هر دیتابیس به چه شکل هست.
- بدونید بعد از اینکه تونستید نفوذ کنید چجوری دیتابیس رو دستکاری کنید.
- و …
یکی از معروفترین حملاتی که در حوزه دیتابیس ها و پایگاه های داده انجام می شود به نام SQL Injection است. شما تا ساختار دیتابیس ها را ندانید، خوب با آنها کار نکرده باشید، درک درستی از زبان T-SQL نداشته باشید قطعا نمی توانید ضعف های امنیتی پایگاه داده ای که برنامه نویس ها معمولا طراحی می کنند را شناسایی کنید و با Query درست از آنها اطلاعات مناسبی را خارج کنید. بنابراین دانش پایگاه داده را هیچوقت فراموش نکنید و البته فراموش نکنید که پایگاه داده هدف ما در این بحث هیچ ارتباطی به درس پایگاه داده در دانشگاه ندارد.
17-شناخت تکنولوژی های وب در هک و نفوذ
اگر می خواهید یک وب هکر یا تست نفوذگر وب ( Web Penetration Testing ) شوید ، باید اطلاعات وسیعی از تکنولوژی های مختلف موجو در محیط وب و Application های تحت وب داشته باشید.
این قسمت ماجرا بسیار ابعاد گسترده ای دارد اما بصورت خلاصه شما باید در مورد عنوان های زیر دانش نسبی یا حتی عمیق داشته باشید :
- HTML ، CSS ، JavaScript ، PHP و net
- JASON ، SOAP و REST API ها
- پروتکل های خانواده HTTP
- انواع وب سرور ( IIS ، Apache ، NginX و … )
- فریمورک های وب ( Ajax ، Silverlight ، MVC ، Laravel و … )
- انواع CMS ها مثل وردپرس ، جوملا ، دروپال ، WooCommerce و .. )
- فایروال های لایه هفت ( WAF ها ) و فیلترهای وب
زمانیکه شما با این تکنولوژی ها به خوبی آشنا شدید دیگر می توانید با ابزارهایی مثل Burp Suite ، Fiddler Proxy ، Nikto ، Dirbuster ، WVS ، Curl و SQLMap و … بصورت حرفه ای کار کنید و دقیقا متوجه ماهیت کاری آنها و نحوه عملکرد اپلیکیشن های وب خواهید شد. شما با داشتن دید نسبت به این تکنولوژی ها دیگر می توانید دیدگاه امنیتی و کنترل های دسترسی این سرویس ها را به خوبی درک کنید و نقاط آسیب پذیری که در آنها وجود دارد را شناسایی و از طریق آنها نفوذ کنید . همچین شما باید در مورد Secure coding یا کدنویسی امن هم کمی تحقیق کنید ، فراموش نکنید که همیشه کدهای ناقص و ضعیف و بد نوشته شده ، تنظیمات اولیه پیشفرض ، تنظیمات اشتباه و البته بسیار دیگر از آسیب پذیری ها در اثر سهل انگاری های برنامه نویس یا مدیر وب سرویس است .
18-شناخت تکنولوژی های موبایل در هک و نفوذ
اگر قرار هست در حوزه تست نفوذ و هک تجهیزات موبایل ( گوشی های هوشمند ) فعالیت کنید ، شما باید سیستم عامل های اندروید و iOS را به خوبی بشناسید . شما باید بتوانید اپلیکیشن هایی که برای این سیستم عامل ها نوشته می شوند را به خوبی تجزیه و تحلیل کنید و از ابزارهای مربوط به آنالیز اندروید و iOS به خوبی استفاده کنید. برای مثلا شما باید بتوانید با Emulator های موبایل کار کنید ، شما باید بتوانید یک اپلیکیشن موبایل را Compile و DeCompile کنید ، شما باید بتوانید آنها را مهندسی معکوس کنید و البته ترافیک شبکه ای آنها را شنود و تجزیه و تحلیل کنید.
در بحث موبایل هکینگ شما باید در مورد مبهم سازی کدها یا Code Obfuscation اطلاعات داشته باشید ، نحوه ذخیره سازی داده ها در این سیستم عامل ها را به خوبی بشناسید ، در مورد مفاهیمی مثل Jailbreak کردن و Root کردن باید اطلاعات جامعی داشته باشید. شما در این حوزه از تست نفوذ باید درک کنید که اپلیکیشن های موبایل همیشه و در 99 درصد مواقع در دو قالب Server Side و Client Side ارائه می شوند و شما باید درک کنید که در تست نفوذ باید هم سمت کلاینت را هک کنید و هم سمت سرور را … بنابراین داشتن دانش در خصوص تکنولوژی های وب همانطور که قبلا اشاره کردیم ، در خصوص موبایل هکینگ هم می تواند بسیار کاربردی باشد.
19-شناخت الگوریتم های رمزنگاری در هک و نفوذ
به عنوان یک نفوذگر ( جمله ای که دیگه تکراری شده ) شما باید در خصوص الگوریتم های رمزنگاری و مفاهیم رمزنگاری اطلاعات خوبی داشته باشید ، فراموش نکنید که در همه جا این روزها از الگوریتم های رمزنگاری در سیستم عامل ها ، وب سایت ها ، گوشی ها ، نرم افزارها و ابزارها ، تجهیزات شبکه و … استفاده می شود و تا زمانیکه شما دید مناسبی از آنها نداشته باشید نمی توانید در حوزه نفوذ رشد قابل توجهی داشته باشید.
پیشنهاد می شود که شما حداقل در مورد مفاهیم زیر دانش داشته باشید :
- شما باید تفاوت بین الگوریتم های رمزنگاری متقارن ( Symmetric ) و نامتقارن ( Asymmetric ) را درک کنید
- شما باید تفاوت بین پروتکل های HTTP ، HTTPS ، Telnet ، SSH ، FTP ، FTPS و SFTP را درک کنید
- شما باید با مفاهیم رمزنگاری های SSL و TLS و Certificate Services به خوبی آشنا باشید
- شما باید نحوه کارکرد احراز هویت SSH با Public Key را خوبی بشناسید
- شما باید الگوریتم های Hashing مثل MD5 ، SHA1 و SHA256 و … را بشناسید
- شما باید الگوریتم های رمزنگاری AES ، DES ، Blowfish ، RC4 و … را بشناسید
- شما باید با مفاهیم Encoding ، Checksum و Obfuscation آشنایی داشته باشید
- و …
ما باید این موارد را به خوبی بشناسیم و بدانیم در کجا استفاده می شود و چگونه خودمان از آن استفاده کنیم . باید درک کنیم که به کدام الگوریتم می توانیم حمله کنیم و آنرا رمزگشایی کنیم و کدام را نمی توانیم و البته کدامیک باید برای هک شدن به سمت Crack هدایت شوند .
20- شناخت اصول هک و کرک Hash پسورد در هک و نفوذ
آیا در این فیلم های هالیوودی دیده اید که یک نفر پای دستگاه چند تا کلید را می زند و اعداد و ارقامی شروع می کنند پشت سر هم تکرار می شوند و کم کم پسورد سیستم قربانی به دست می آید؟ بله؟ پس شما با یک نوع حمله به پسوردها به نام Brute Force آشنا شدید و البته تا حد زیادی حمله دنیای واقعی با آنچه شما در فیلم دیده اید متفاوت است. وقتی صحبت از کرک کردن یا شکستن پسوردها می شود ، یعنی شما باید بتوانید از درون فایل های رمزنگاری شده پسورد ، پسورد واقعی را خارج کنید و به این فرآیند در اصطلاح Cracking پسورد گفته می شود . قطعا و بدون شک یکی از نیازهای اولیه یک هکر داشتن دانش و توانایی عملیاتی کردن Crack پسوردهاست که بسیار لذت بخش است .
برای مباحث Crack پسورد شما ضمن اینکه باید درکی از الگوریتم های ذخیره سازی پسورد داشته باشید ، باید با ابزارها و تکنیک هایی که برای Password Cracking استفاده می شوند هم به خوبی آشنایی داشته باشید شما باید بدانید Hash و Salt در ذخیره سازی پسوردها به چه معناست و الگوریتم های Hashing را نیز مطابق آنچه قبلا گفته شد به خوبی باید بشناسید . هر سیستم عامل ، نرم افزار ، وب سایت و حتی فایل مستند و … قطعا به یکی از روشهای استاندارد پسوردها را ذخیره می کند که پیدا کردن آنها یک هنر است که به آن Crack گفته می شود.
تکنیک هایی که شما باید در Password Cracking بشناسید بصورت کلی به شکل زیر هستند :
- حملات Wordlist و حملات Dictionary
- حمله Brute Force
- حمله Password Guessing
- حمله با استفاده از Rainbow Table
- و …
شما باید محدودیت ها و مزیت های هر کدام از این تکنیک های Password Cracking را به خوبی بشناسید و سرعت کرک آنها را برآورد کنید ، شما باید بتوانید از قدرت پردازشی GPU و CPU در کرک کردن پسوردها به خوبی استفاده کنید و در نهایت یکی از شیرین ترین لحظات هک و نفوذ را بعد از تبدیل کردن یک رشته Hash به پسورد واقعی تجربه کنید.
21-شناخت درست امنیت فیزیکی در هک و نفوذ
قطعا تخصص تست نفوذسنجی و هک بیشتر در حوزه فناوری اطلاعات است اما برخی اوقات پیش می آید که شما نیاز دارید تست نفوذسنجی یا هک فیزیکی انجام دهید ! یعنی باید بصورت فیزیکی و حضوری به یک سری نقاط یا امکانات دسترسی پیدا کنیم و شما باید برای چنین شرایطی آماده شوید . شما باید در خصوص مفاهیم امنیت فیزیکی ، کنترل های محیطی ، دوربین های مداربسته ، قفل های مختلف درب ، مکانیزمهای ناامن ورودی ، کابل کشی های ناامن ، از بین بردن ناامن اطلاعات و حتی در مورد انواع سگهای نگهبان و … دانش نسبی داشته باشید ، بد نیست حتی در خصوص کپی برداری از انواع کارت های احراز هویت پرسنلی ، دور زدن سیستم های حضور و غیاب و حتی کپی کارت های RFID هم کمی تحقیق کنید .
22-بررسی دائمی چک لیست ها و Baseline های امنیتی
یکی از مواردیکه می تواند شما را تبدیل به یک هکر فوق العاده حرفه ای و سطح بالا کند ، داشتن دید و مطالعه کردن چک لیست ها ، Baseline ها و راهنماهای امنیتی است. استانداردها و قالب های متنوعی برای بررسی این موارد وجود دارد اما به زبان ساده تر ، وقتی شما یک چک لیست امنیتی برای بازرسی امنیت اطلاعات سازمان خود داشته باشید و بر اساس آن هر چیزی رو امن کنید ، طبیعتا ساختار ذهنی استانداردتر و بازتری برای هک و نفوذ در لایه های مختلف پیدا خواهید کرد.
بگذارید اینگونه بگوییم که وقتی یک شرکتی مثل مایکروسافت چک لیست امنیتی از یک سیستم عامل ارائه می کند ، قطعا بر اساس یک سری آسیب پذیری ها این چک لیست طراحی شده است که شما می توانید در جهت معکوس از آن استفاده کنید . بنابراین استانداردهای امنیتی مثل ISO 27000 یا استانداردها و در اصطلاح فنی Security Benchmark ها می توانند سطح علمی شما را یک سر و گردن از هکرهای صرفا فنی بالاتر ببرند. دقت کنید این قسمت کاملا دلخواه است و یک الزام برای هکرها محسوب نمی شود.
23-داشتن مهارت های جانبی در هک و نفوذ
با اینکه تست نفوذ و هک یک فرآیند بیشتر فنی است ، اما داشتن یک سری مهارت های جانبی به کیفیت تست نفوذ و هکری که اینکار را انجام می دهد می تواند بسیار کمک کند. در اینجا لیستی 5 تایی از مهمترین مهارت های جانبی که یک هکر بهتر است داشته باشد اشاره می کنیم :
مهارت های نوشتاری :
در تست نفوذ ، شما باید به کارفرمای خود گزارش ارائه دهید و این خیلی مهم است که این گزارش ب یک ساختار منظم و درست نگارش شده باشد. گزارش های یک تست نفوذ نتیجه اصلی کار شماست بنابراین باید شکیل ، زیبا و حرفه ای طراحی و ارائه شوند و حتی غلط املایی هم نداشته باشند ، بد نیست همیشه در زمان ارائه گزارش تست نفوذ از ابزارهای بررسی درستی کلمات استفاده کنیم.
مهارت های اخلاقی و حرفه ای :
فراموش نکنید که در بحث هک و به ویژه تست نفوذسنجی ، شما به اطلاعاتی دست پیدا می کنید که ممکن است بسیار محرمانه باشد ، از اطلاعات محرمانه شخصی تا سازمانی ، بنابراین شما باید به شدت مراقب اطلاعاتی که به عنوان نگهبان در اختیار گرفته اید باشید. حفاظت از اطلاعات کارفرما بزرگترین اولویت برای شماست که نباید به هیچ عنوان فراموش شود.
مهارت های بیانی:
در پروژه های تست نفوذ ، شما معمولا با افراد زیادی صحبت می کنید و با آنها در پروژه درگیر هستید ، از مدیرهای فناوری اطلاعات گرفته تا حراست درب ورود و کارمندهای معمولی و مشتری ها و … بنابراین این خیلی مهم است که بتوانید به خوبی با آنها ارتباط کلامی برقرار کنید ، بتوانید نیازمندی های خود را به خوبی تشریح کنید و البته به نحوی اینکار را انجام بدهید که به خوبی بتوانند موضوع را درک کنند.
مهارت های ادراکی:
همیشه مخاطب خود را درست درک کنید ! یعنی چه ؟ یعنی اینکه در یک پروژه تست نفوذ ، شما در جلسه ای که با مدیران سازمان دارید ، قطعا نباید محتوایی را مطرح کنید که با کارشناسان فنی و حتی مدیران فنی مطرح می کنید. در واقع برای پرزنت کردن نتایج خود در هر جلسه ای باید درک درستی از مخاطب حاضر در جلسه داشته باشید. طبیعتا هم باید بتوانید به زبان فنی و هم به زبان لری ( زبان بسیار ساده ) پروژه و مراحل آن را برای افراد مخاطب تشریح کنید.
مهارت های روانشناسی و خونسردی:
برخی اوقات شغل یک هکر یا تست نفوذگر ایجاب می کند که شما جسارت های خاصی را در خودتان پرورش بدهید، برای مثال در حملات مهندسی اجتماعی، تماس های جعلی، حملات فیزیکی و … ما باید یه شدت بتوانیم خونسرد و آرام باشیم و این جزو مهارت های روانشناسی است که باید روی آن کار کنیم.
24-داشتن مهارت نت برداری و ثبت در هک و نفوذ
شما قرار نیست همه چیز را حفظ کنید ، در واقع هیچ هکری قرار نیست همه چیز را حفظ در ذهنش داشته باشد. یکی از مهارت های خوب و درست در هک و نفوذ ، مستند کرد و نکته برداری درست از همه چیز است . شما با حجم زیادی از داده ها و اطلاعات درگیر هستید که امکان یادآوری آنها بدون نکته برداری وجود ندارد . من خودم به شخصه یک پوشه ( زونکن ) با امکان اضافه کردن صفحات دارم که بصورت مجزا ماژول های هکینگ را در آن طبقه بندی کرده ام و هر چیز جدید و نکته ای که پیدا می کنم و مفید است در قسمت مربوطه به آن یادداشت و ثبت می کنم و براحتی در صورت نیاز به آن مراجعه می کنم.
شما می توانید روش ها و تکنیک ها ، نمونه دستورها ، نمونه کدها ، اسکریپت ها ، ابزارها ، لینک ها و … را بصورت کاملا درست و منظم در این دفترچه یا زونکن یادداشت کنید و به راحتی آنها را پیدا کنید . البته الزامی ندارد که این نوت برداری ها حتما فیزیکی باشد و شما می توانید بصورت آنلاین یا درون کامپیوتر هم اینکار را انجام بدهید. اما من به شخصه این زونکن مستند سازی خودم را خیلی دوست دارم به حدی که در آن شش رنگ متنوع خودکار برای علامت گذاری درجه ها و سطوح محتوا در نظر گرفته ام . بنابراین فراموش نکنید که یک هکر خوب حتما برای خودش یک چنین دفتر یا مستند نوت برداری دارد.
25-داشتن مهارت به روز رسانی و آگاهی در هک و نفوذ
آخرین مهارت اصلی در تست نفوذ و هک به روز رسانی کردن دانش است . شما همیشه باید منابعی مشخص و دقیق برای به روز رسانی دانش امنیتی خود داشته باشید و مرتب به آنها مراجعه کنید ، این منابع می تواند شامل ویدیوها ، پادکست ها ، وبلاگ های امنیتی ، وب سایت های امنیتی ، گزارش های فنی و امنیتی ، گروه های موجود در شبکه های اجتماعی ( البته قطعا نه گروه های تلگرامی ایرانی ) ، توئیتر و … باشد.
26-آیا نیاز به یادگیری همه تخصص ها در هک وجود دارد؟
طبیعتا خیر ، قبلا توضیح دادیم که شما بسته به نوعی تخصص خودتان در حوزه هک و نفوذ می توانید تخصص های مورد نیاز را تفکیک کنید
27-آیا دانستن زبان برنامه نویسی برای هک ضروری است؟
طبیعتا خیر ، اگر قرار نیست در زمینه وب هکینگ ، مهندسی معکوس ، هک سیستم عامل ها و Exploit نویسی فعالیت کنید و فقط یک هکر شبکه ای می خواهید باشید ، دانستن زبان برنامه نویسی الزام نیست ولی قطعا یکی از توصیه های اصلی ما در حوزه امنیت ، آشنا بودن با یک زبان برنامه نویسی است که دلایلش را قبلا توضیح داده ایم.
28-فرآیند هکر شدن چه مدت زمان می برد؟
اگر می خواهید در اصطلاح اختصاصی خودم یک Full Stack Hacker شوید حداقل شما به دو سال زمان برای یادگیری نیاز دارید. اما بصورت کلی زمانبندی اینکه شما در طول چه بازه زمانی می توانید تبدیل به یک هکر شوید کاملا بستگی به پارامترهای مختلف دارد که مهمترین آنها استعداد و سرعت یادگیری خودتان است. من شخصی را می شناسم که در عرض دو سال از یک دانشجوی رشته شبکه در ایران، تبدیل به یکی از کارشناسان خوب امنیتی در حوزه نفوذ در ایالات متحده آمریکا شده است. طبیعتا اگر می خواهید واقعا به این دنیا ورود کنید برنامه ریزی درستی داشته باشید و حداقل دو سال را برای این حوزه برنامه ریزی کنید.
29-از کجا شروع کنیم؟ مسیر راه یادگیری هک چیست؟
اینکه از کجا شروع کنیم و به کجا برویم کاملا بستگی به این دارد که شما در چه حوزه ای از هک و نفوذ می خواهید ورود کنید . از نظر من شلختگی در ورود به دنیای هک و نفوذ بی معنی است و باید شما یک سلسله مراتب یادگیری را داشته باشید تا به مرور تبدیل به یک هکر شوید. اما این روند می تواند از برنامه نویسی به سمت هک شبکه باشد یا برعکس از شبکه به سمت برنامه نویسی و وب هکینگ باشد . به هر حال روشهای پیشنهادی متنوع هستند اما من روشی که خودم با آن جواب گرفته ام را همیشه توصیه می کنم . اول تخصص هایی که در قسمت های قبلی عنوان کردیم را کمی به خاطر بیاورید،
حالا متوجه خواهید شد که چرا توصیه می کنیم روند زیر را طی کنید :
- از دوره نتورک پلاس شروع کنید و مفاهیم شبکه را به درستی و عمیق درک کنید
- وارد دوره شبکه های مایکروسافت یا MCSA شوید و به سیستم عامل ویندوز کلاینت و سرور مسلط شوید
- وارد دنیای لینوکس شوید و از Linux Essentials شروع کنید و حتما تا سطح LPIC2 آموزش ببینید
- وارد دنیای زیرساخت شبکه سیسکو شوید و حداقل CCNA Routing & Switching را یاد بگیرید
- وارد دنیای مجازی سازی شوید ( بد نیست حداقل در سطح VMware Workstation مسلط باشید )
- وارد دنیای فایروال ها بشوید و با انواع و اقسام آنها بد نیست حداقل آشنا شوید
- وارد دنیای امنیت شوید و با دوره سکیوریتی پلاس ( CompTIA Security Plus ) مبانی امنیت را شروع کنید
- وارد دنیای هک و نفوذ شوید و دوره هک قانونمند یا CEH را شروع کنید و جعبه ابزار هک کردن را بسازید
-
ادامه:
- با دوره های تخصصی تر مثل SANS ، ElearnSecurity ، Offensive Security و … دانش خود را عمیقتر کنید
- وارد دنیای برنامه نویسی شوید و کمی پایتون (Python) یا حتی پرل (Pertl) بیاموزید
- وارد دنیای پایگاه داده شوید و با دیتابیس هایی مثل MySQL ،MongoDB یا MSSQL آشنا شوید
- وارد دنیای Shell Scripting شوید و یاد بگیرید که چگونه خیلی از کارها را خودکار انجام دهید
- کمی در مورد CMS ها ، نحوه نصب و راه اندازی و … تحقیق کنید و تست بگیرید
- وابسته به دوره خاصی نباشید … مدام مطالعه کنید ..
شما کلیات بالا را متوجه شدید؟ اگر دقت کنید و کمی زبر و زرنگ باشید متوجه می شوید که چیزهایی که ما در قالب دوره یا تخصص معرفی کردیم در واقع اکثر موارد فنی است که قبلا در همین مقاله برای شما بصورت ریز به ریز توضیح دادیم . هیچ اجباری ندارد که شما دقیقا طبق این سرفصل ها تبدیل به یک هکر شوید ، شما در نهایت باید این تخصص ها را به خوبی یاد بگیرید پس برنامه ریزی و زمانبندی با شماست . برخی افراد این سلسله آموزشی را در یک سال ممکن است تمام کنند و برخی هیچوقت نتوانند تمام کنند ! اگر سوالی یا ابهامی در این خصوص دارید حتما در ادامه همین مطلب عنوان کنید که به خوبی بتوانیم با هم در موردش بحث کنیم . اما فراموش نکنید راه میانبر نداریم مگر اینکه بخواهید همان Lamer اینستاگرامی شوید.
30-خلاقیت در هک چقدر تاثیر دارد؟
خلاقیت در هک و نفوذ تقریبا همه چیز است . حداقل من به خاطر ندارم در هیچ پروژه تست نفوذ و هکی ، همیشه از یک روش مشخص همه کارها به درستی انجام شده باشد و شما باید اینقدر تمرین کنید و تلاش کنید که بتوانید همه چیز را در کنار هم سر و سامان بدهید و در نهایت با خلاقیت خودتان و یک ایده جدید به هدف نفوذ کنید ، فراموش نکنید که در هک و نفوذ ما همیشه باید خارج از محدوده فکر کنیم یا در اصطلاح انگلیسی Think Out Of The Box باید باشیم.
31-آیا یادگیری زبان انگلیسی برای هک و نفوذ الزامی است؟
قطعا و بدون شک شما کم کم باید به سمت یادگیری زبان انگلیسی فنی بکنید. فراموش نکنید که زبان به روز بودن انگلیسی است ، اگر انگلیسی یاد نگیرید قطعا به مرور به مشکل می خورید و همیشه باید منتظر این باشید که یک نفر اطلاعاتی که شاید منسوخ شده باشد را برای شما مدت ها بعد از اینکه آن اطلاعات دیگر ارزشمند محسوب نمی شوند ، منتشر کند. در اصطلاح ساده تر باید بگوییم که شما اگر انگلیسی خود را تقویت نکنید فقط اطلاعات سوخت شده بدست می آورید و بس …
32- چه دوره های مختلف هک و نفوذی در دنیا وجود دارد؟
دوره های هک و نفوذ، مثل دوره هایی که برای محصولات خاصی طراحی می شوند (مایکروسافت، سیسکو، میکروتیک، VMware و ..) یک متولی ندارد و بیشتر مثل دوره هایی مثل سیستم عامل لینوکس (دوره های LPIC) بصورت مستقل و با ساختارهای دلخواه شرکت های متنوع فعال در حوزه آموزش طراحی و ارائه می شوند. اما بصورت کلی اگر بخواهیم شرکت های فعال و بسیار مطرح دنیا که بصورت ویژه در حوزه هک و نفوذ آموزش تولید می کنند را نام ببریم
به لیستی شبیه موارد زیر خواهیم رسید :
- دوره های شرکت EC-Council ( مثل دوره های CEH ، CHFI ، ECSA ، CSCU و … )
- دوره های شرکت SANS Security ( مثل دوره های SANS 542 ، SANS 560 ،SANS 573 و … )
- دوره های شرکت Offensive Security ( مثل دوره های OSCP ، OSWE ، OSCE ، OSEE و … )
- دوره های شرکت ElearnSecurity ( مثل دوره های WAPTX ، WAPT ، WASPT ، MAP ، XDS ، PTX و … )
- دوره های شرکت Pentester Academy
- دوره های شرکت Corelan
- دوره های شرکت Cquare Academy
- دوره های شرکت StationX
- دوره های شرکت Udemy
- دوره های شرکت EHAcademy
- دوره های شرکت cybrary
- و …
همانطور که مشاهده می کنید انواع و اقسام دوره های هک و نفوذ از انواع و اقسام شرکت ها در دنیا وجود دارد که هر کدام یک روش خاص را برای یادگیری شما در نظر گرفته اند ، برخی بصورت کلی از یک سطح قابل قبول از دانش فناوری اطلاعات شما را می توانند به خوبی به سطح خوبی در حوزه هک و نفوذ برسانند و خلاصه ای از هر تخصصی که تا کنون عنوان کردیم را در سرفصل های خودشان عنوان می کنند.
به زودی مقاله ای درباره مقایسه شرکت های مختلف فعال در حوزه آموزش هک و نفوذ با محوریت محتوای آموزش و نحوه آموزش آماده می کنم که امیدوارم مورد توجه شما قرار بگیرد اما فراموش نکنید که دوره و مدرس از شما هکر نمی سازد اما راه را برای شما هموار می کند.
33- پیامبران زمان خود را بشناسید !!!
به عنوان موضوع آخر فراموش نکنید پیامبران زمان خود را بشناسید !! افرادیکه بدون داشتن سابقه زیاد به یکباره مدرس و مشاور هک و نفوذ می شوند ، افرادیکه برای پر کردن کلاسهای خودشان به هر دری می زنند که شما یکباره وارد دوره های پیشرفته شوید. البته قطعا این افراد به عنوان پیامبر زمان شما شناخته می شوند. اما چرا ؟ چون تنها چیزی که ممکن است با روشهای این افراد شما را تبدیل به یک هکر کند تنها معجزه هست و بس و کسی نمی تواند معجزه کند جز پیامبر …
کلام آخر
بدون شک این مطلب جامعترین مقاله در خصوص یادگیری هک و نفوذ در دنیا به حساب می آید و شما چه به فارسی و چه به انگلیسی نمی توانید مرجعی به این کاملی پیدا کنید اما در نهایت این نوشته یک فرد است و ممکن است دارای ایراد باشد که قطعا همینطور هم هست ، بنابراین شما می توانید با پرسیدن سوالات درست و به جا در خصوص این موضوع در ادامه همین مطلب ، مارا به کامل تر شدن این مقاله و هدایت درست افراد به سمت تخصص هک و نفوذ کمک کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.