یکی از اصلی ترین سوالات کاربران کامپیوتری این است که چگونه هکر شویم ؟ برای پاسخ به این سوال ابتدا باید معنی کلمه Hack را متوجه شویم سپس به سراغ مراحل هکر شدن برویم، در گذشته نه چندان دور (۱۰ هزار سال قبل از میلاد مسیح) هک به معنای سود بردن از یک روش هوشمندانه برای حل مشکلات کامپیوتری بود اما در حال حاضر منظور از کلمه هک نفوذ به یک سیستم رایانه ای میباشد.
اما قبل از اینکه به این سوال پاسخ دهیم باید بدانیم چه مسیری را در پیش بگیریم تا موفق شویم و تبدیل به یک هکر شویم.

اولین علمی که باید در آن غوطه ور شوید یادگیری مبانی و پایه شبکه است این یادگیری شامل درک کامل از نحوه عملکرد دستگاه های مختلف شبکه مثل مسیر یاب و سویچ و فایروال و … و همچنین فهم کامل عملکرد انواع پروتکلهای شبکه مثل TCP/IP میباشد.
در یک کلام اگر از نحوه کارکرد یک شبکه و پروتکلهای درون آن اطلاعی نداشته باشید به هیچ وجه نمیتوانید یک هکر شوید چراکه اکثر کارهای که باید انجام دهید بر روی بستر شبکه انجام میشوند.در زیر با برخی از مفاهیم شبکه آشنا خواهیم شد.
پروتکل DHCP مخفف Dynamic Host Configuration Protocol، نوعی از پروتکل برای پیکربندی هاست بهطور پویا است که به هر دستگاه موجود در شبکه، یک آدرس IP اختصاص میدهد. هر دستگاه با اتصال به اینترنت نیازمند آدرس IP است. این آدرس از طریق یک روتر دارای سرویس DHCP اختصاص داده میشود.
در شبکههای خیلی بزرگ یک روتر بهتنهایی نمیتواند تمام دستگاههای متصل را مدیریت کند. در این موارد یک سرور اختصاصی فقط برای اختصاص آدرس IP به دستگاهها در شبکه قرار میگیرد. در این حالت پروتکل DHCP به جای روتر، روی سرور اجرا میشود.
پروتکل DHCP نه تنها اختصاصدهندهی آیپی آدرس است، بلکه مدیریت پیکربندی شبکه برای subnet mask ،default Gateway و سرویس DNS نیز برعهدهی این پروتکل است.
تکنولوژی NAT ابتدا توسط شرکت cisco جهت استفاده در Routerهای همین شرکت معرفی گردید، در حال حاضر تمامی سیستم عامل ها و پلتفرم های نرم افزاری امکان پشتیبانی از آن را دارا می باشند. در این راهکار دستگاهی مانند روتر به عنوان نماینده ارتباط بین شبکه داخلی با یک IP Private و شبکه بزرگ با IP Public را برقرار می نماید.
تکنولوژیNetwork Address Translation (برگردان نشانی شبکه یا NAT) راهکاری جهت ارسال/دریافت اطلاعات در شبکه می باشد، این روش با بازنویسی IP مبداء و همچنین Port Numberها یا شماره درگاه هایی که از TCP/IP (بسته های IP را مدیریت میکند ) سروکار دارد. IP Addressها در درون پروتکل دستکاری شده و از یک شبکه تارتانی به شبکه تارتانی دگر جفت بندی (Mapping) میگردند، در این حالت Packetها گویی از آدرسی ارسال شده و هنگام دریافت به آدرس اولیه فرستاده خواهند شد.
ساده ترین تعریفی که می توان برای واژه Subnetting در نظر گرفت به این صورت است : ” دستکاری کردن یک محدوده آدرس IP به شکلی که بتوان با آن بیش از یک شبکه منطقی یا بهتر بگوییم شبکه LAN را ایجاد کرد . در این حالت شما با استفاده از دستکاری محدوده آدرس Subnet mask از درون یک محدوده IP چندین محدوده دیگر را جدا می کنید و در شبکه های مختلفی استفاده می کنید.”
ساب نتینگ Subnetting زمانی لازم است که شما نیاز دارید که یک محدوده آدرس دهی را در میان چندین شبکه محلی یا سگمت شبکه به اشتراک بگذارید. این عمل در مواقعی از قبیل زیر ضروری است :
قبل از آشنایی با مفاهیم IPv4 و IPv6 باید با مفهوم اینترنت پروتکل (Internet Protocol):
آی پی IP اختصار عبارت Internet Protocol است که مدل فنی ارسال و دریافت بستهها در اینترنت را به همراه آدرس فرستنده و گیرنده در شبکهی اینترنت یا هر شبکهی کامپیوتری مشخص میکند. بسیاری از شبکهها مفهوم IP را با یک پروتکل سطح بالای دیگر با نام TCP ا(Transmission Control Protocol) ترکیب میکنند که یک ارتباط مجازی بین گیرنده و فرستنده در یک شبکهی کامپیوتری ایجاد میکند.
آی پی را بهتنهایی میتوان با یک سیستم پستی مقایسه کرد. با استفاده از آی پی میتوان یک بسته را آدرسدهی و آن را در شبکهی اینترنت رها کرد، حال آنکه بین گیرنده و فرستنده ارتباطی برقرار نیست. با استفاده از TCP/IP یک ارتباط بین دو طرف روی شبکهی ارتباطی موجود ایجاد میشود که از طریق آن میتوان پیامها را در یک زمان مشخص بین دو طرف رد و بدل کرد.
آی پی ورژن ۴ IPv4 یا اینترنت پروتکل نسخهی ۴ را باید چهارمین نسخه از پروتکل اینترنت خواند که از آن برای شناسایی گجتها روی شبکهی اینترنت استفاده میشود. اینترنت پروتکل طراحی شده است تا از آن برای ایجاد ارتباط بین سیستمهای متصل به هم برای ارسال بستهها تحت شبکهی ارتباطی استفاده شود.
اینترنت پروتکل نسخهی ۴ را باید پرمصرفترین پروتکل اینترنتی خواند که از آن برای ارتباط گجتها با یکدیگر و همچنین شبکهی جهانی اینترنت استفاده میشود. IPv4 از آدرسدهی ۳۲ بیتی بهره میبرد که با استفاده از آن میتوان ۲ به توان ۳۲ آدرس اینترنتی را (بیش از چهار میلیارد) آدرسدهی کرد.
با توجه به گسترش اینترنت و افزایش تعداد گجتهایی که به اینترنت متصل میشوند، پیشبینی میشود تعداد آدرسهای مبتنی بر نسخهی چهار در آیندهی نزدیک تمام شود، چراکه هرروز شاهد افزایش گجتهایی نظیر گوشیهای هوشمند، رایانهها، تبلتها، گجتهای مبتنی بر اینترنت اشیا و کنسولهای بازی با قابلیت اتصال به اینترنت هستیم.محققان شبکه اینترنت پروتکل نسخهی ۶ را به همین علت و برای پوشش نیاز به آدرسهای بیشتر معرفی کردهاند.
اینترنت پروتکل نسخهی ۶ که اینترنت پروتکل نسل بعدی (Internet Protocol next generation) نیز خوانده میشود، جدیدترین پروتکل اینترنت برای اختصاص آدرس آی پی است. این پروتکل جدید برای جایگزینی با IPv4 معرفی شده است.
هرچند IPv6 برای جایگزین شدن با IPv4 طراحی شده است، اما فعلا و تا زمان مقتضی شاهد استفاده از هر دو پروتکل بهصورت همزمان خواهیم بود تا اینکه نهایتا IPv6 بهصورت کامل جای این پروتکل را بگیرد. IPv6 به این علت طراحی شده است تا علاوه بر داشتن آدرسهای بیشتر برای اتصال گجتهای بیشتر در مقایسه با IPv4، ظرفیت انتقال اطلاعات در شبکه اینترنت یا همان ترافیک را افزایش دهد.
دی ان اس DNS مخفف عبارت Domain Name Service میباشد. بطور خلاصه وظیفه این سرویس تبدیل نام دامنه به یک IP میباشد. هنگامی که نام دامنه مثلا Codefriend را صفحه مرورگر وب وارد میکنید، در ساده ترین حالت نام دامنه به IP متناظر آن تبدیل شده و پس از یافتن سروری که این IP به آن اشاره دارد ، اطلاعات دامنه مربوطه برای شما نمایش داده میشود.
همانطور که می دانید جهت راه اندازی وب سایت نیاز به نام دامنه و هاست مربوطه جهت نگهداری اطلاعات سایت دارید.جهت اتصال نام دامنه به هاست از DNS استفاده می شود. علاوه بر این برای هر دامنه اطلاعات DNS نگهداری میشود بدین صورت که برای هر دامنه حداقل یک DNS server تعریف میشود که اطلاعات مربوط به دامنه در آن سرور ذخیره می شود. هر زمان که DNS بخواهد نام دامنه را به IP تبدیل کند، باید اطلاعات مربوط به دامنه را از DNS Server هایی که برای دامنه تعریف شده است، درخواست نماید.
مک آدرس یک آدرس ۴۸ بیتی است که معمولا در قالب xx:xx:xx:xx:xx:xx نمایش داده میشود. هر زوج xx که با رقمهای هگزادسیمال پرمیشود، نمایان گر ۸ بیت و یا یک بایت است. نیمه اولیه این آدرس که شامل ۲۴ بیت اول میباشد، توسط شرکت سازنده کارت واسط شبکه تعیین میشود و ۲۴ بیت دوم تعداد دستگاههای قابل شماره گذاری برای آن شرکت را نشان میدهد.
با توجه به ۴۸ بیت و با توجه به این که هر بیت می تواند نماینگر ۰ و یا ۱ باشد، مجموعا ۲ به توان ۴۸ دستگاه کارت واسط شبکه را میتوان شماره گذاری کرد که این مقدار برابر ۲۸۱۴۷۴۹۷۶۷۱۰۶۵۶ میباشد، یعنی چیزی حدود ۲۸۱ هزار میلیارد دستگاه مختلف. اگر جمعیت فعلی کره زمین را ۸ میلیارد در نظر بگیریم، با این سیستم شماره گذاری، برای هر فرد امکان دارا بودن تقریبا تعداد ۳۵۱۸۴ کارت واسط شبکه وجود دارد. در حال حاضر به نظر میرسد که این سیستم نامگذاری پاسخگوی نیازهای دستگاههای تحت شبکه موجود در اینترنت میباشد.
ای آر پی ARP مخفف سه کلمه Address Resolution Protocol است . وظیفه آن شناخت وتشخیص Mac address است در صورتی سیستم با دانستن IP بخواهد با یک سیستم ارتباط برقرار کند. باید این مطلب را برای این که وظیفه این پروتکل را بهتر بدانیم این است که برای ارتباط با سیستم در یک محدوده شبکه ای ( یک Subnet ) باید حتما Mac address آن سیستم را بدانیم .
حال وقتی شما میخواهید با یک IP ارتباط برقرار در ابتدا باید سیستم با توجه به Subnet mask داده شده و IP داده شده به سیستم تشخیص میدهد که آیا سیستم مورد نظر برای ارتباط بر روی یک بخش هستند و یا خیر . در صورتی که بر روی یک بخش بودند با استفاده از پروتکل ARP سعی در تشخیص IP آن سیستم میکند و در پاسخ به آن آن سیستم ( سیستمی که این IP مورد نظر برای ارتباط ما را دارد ) به درخواست Mac خود را به سیستم ما اعلام میکند و سیستم ما این Mac را در جدولی با نام ARP Table که بر روی سیستم خودمان است ذخیره میشود .که مدت ذخیره شدن این اطلاعات در صورت دوباره نویسی و بروز نشدن آن فقط ۱۲۰ ثانیه است.
در این گام پیشنهاد میگردد که با سیستم عمل لینوکس (کالی، اوبونتو) آشنا شوید. دلیل اصلی این مساله توسعه اکثر نرمافزارهای امنیتی در لینوکس میباشد،امروزه آشنایی و کارکردن با سیستم عامل لینوکس برای افرادی که داخل حوزه فناوری اطلاعات دارند فعالیت میکنند خیلی مهم و ضروری هست ، مخصوصا برای برنامه نویسان ، به صورتی که در آگهی های استخدام برنامه نویس شرکت های بزرگ و تیم های مهم یکی از شرایط ذکر شده تسلط به این سیستم عامل محبوب هست.
یادگیری لینوکس برخلاف تصور عمومی بسیار راحت هست ، فقط کافی است که این سیستم عامل را درک کنید و متوجه ساختارش آن شوید.تا بتوانید با این سیستم عامل نیازهای خودتون رو برطرف کنید و از مزیت های فوق العاده این لینوکس مثل امنیت ، رایگان بودن ، پایداری بالا و خیلی مزیت های دیگه بهره مند شوید .
استفاده از ابزارهایی مانند Wireshark به هکر کمک میکند که بتواند دادههای در حال انتقال در سطح شبکه را مورد وارسی قرار دهدWireshark یک ابزار تجزیه و تحلیل پیشرفته پروتکل شبکه است که برای رهگیری ترافیک، نظارت بر ارسال/دریافت بسته های داده، بررسی مسائل مربوط به شبکه و فعالیت های مشکوک، آمارگیری و … می تواند مورد استفاده قرار گیرد
وایرشارک در سرتاسر جهان به عنوان نرم افزاری پیشرو برای آنالیز پروتکل های شبکه مورد استفاده قرار می گیرد و امکانی را فراهم می کند تا تمام آنچه در شبکه رخ می دهد را به صورت مو به مو (در سطح ماکروسکوپی و با جزئیات) مشاهده کنید. به طور کلی Wireshark برای عیب یابی شبکه، تجزیه و تحلیل نرمافزارها و توسعه پروتکل های ارتباطی و آموزش استفاده می شود و به عنوان یک استاندارد واحد در بسیاری از صنایع و موسسات مورد استفاده قرار می گیرد.
یک هکر باید با اصطلاحات و تکنولوژی هایی که مربوط به امنیت داده میباشد آشنا باشد. به عنوانه مثال، Firewall، VPN، IDS چندین نمونه از تکنولوژی هایی هستند که در زمینه امنیت اطلاعات مورد استفاده قرار میگیرند.
وی لن WLAN ها يا LAN هاي بيسيم از امواج الكترومغناطيسي (راديويي يا مادون قرمز) براي انتقال اطلاعات از يك نقطه به نقطه ديگر استفاده ميكنند. امواج راديويي اغلب به عنوان يك حامل راديويي تلقي ميگردند، چرا كه اين امواج وظيفه انتقال انرژي الكترومغناطيسي از فرستنده را به گيرنده دورتر از خود بعهده دارند. داده هنگام ارسال برروي موج حامل راديويي سوار ميشود و در گيرنده نيز به راحتي از موج حامل تفكيك ميگردد. به اين عمل مدولاسيون اطلاعات به موج حامل گفته ميشود.
هنگاميكه داده با موج راديويي حامل مدوله ميشود، سيگنال راديويي داراي فركانسهاي مختلفي علاوه بر فركانس اصلي موج حامل ميگردد. به عبارت ديگر فركانس اطلاعات داده به فركانس موج حامل اضافه ميشود. در گيرنده راديويي براي استخراج اطلاعات، گيرنده روي فركانس خاصي تنظيم ميگردد و ساير فركانسهاي اضافي فیلتر ميشوند.
میتوان گفت پر استفاده ترین الگوریتم رمزنگاری وایرلس در جهان, WEP است. به دلیل سازگاری این الگوریتم، معمولا گزینه اول در منوی انتخاب نوع رمزنگاری است. WEP در سپتامبر ۱۹۹۹ به عنوان استاندارد امنیت WiFi به تصویب رسید. اولین نسخه این الگوریتم حتی در زمان انتشارش هم به دلیل محدودیتهایی که دولت ایالات متحده آمریکا قرار داده بود، قوی نبود. بعد از برداشتن این محدودیتها، رمزگذاری از ۶۴ بیت به ۱۲۸ بیت افزایش یافت. بعدها با انتشار WEP ۲۵۶ بیتی، همچنان ۱۲۸ بیتی به عنوان رایجترین باقی ماند.
رمزنگاری WPA به عنوان جایگزین WEP منتشر شد. این الگوریتم در سال ۲۰۰۳، یعنی یک سال قبل از اعلام از دور خارج شدن استاندارد WEP, تصویب شد. WPA-PSK از رایجترین کانفیگ های WPA است. کلیدی که به وسیله WPA استفاده میشود، ۲۵۶ بیتی است.
برخی از تغییرات قابل توجه در WPA شامل بررسی یکپارچگی پیام، و پروتکل تمامیت کلید موقتی (TKIP) است. TKIP بعدها توسط استاندارد رمزنگاری قدرتمند AES جایگزین شد.
با وجود اینکه WPA پیشرفتهای قابل توجهی نسبت به WEP کرده بود، از آسیب پذیری در امان نماند. TKIP، کامپوننت مرکزی WPA، به گونهای طراحی شده بود که به راحتی از طریق به روز رسانی میانافزار (Firmware)، بتواند روی دستگاههای موجودی که WEP فعال دارند، اجرا شود. به این ترتیب مجبور بود المنتهای خاصی که توسط WEP استفاده میشدند و نفوذ پذیر بودند را بازیابی کند. به WPA هم مانند WPE حمله شد، اما نه مستقیم به خود الگوریتم.
رمزنگاری WPA2 در سال ۲۰۰۶ جایگزین WPA جایگزین شد. از بزرگترین تغییرات بین WPA و WPA2 میتوان به جایگزین شدن الگوریتم ASE و معرفی CCMP که به عنوان جایگزین برای TKIP بود، نام برد.
در حال حاضر عمده آسیبپذیریهای امنیتی که متوجه الگوریتم WPA2 است، به گونه است که نیاز دارد خرابکار داخل شبکه باشد. به این ترتیب، پیامدهای آسیبپذیریهای امنیتی WPA2 محدود به شرکتها و سازمانهای بزرگ تجاری میشود، نه شبکههای داخلی خانهها.
شنایی با زبانهای برنامه نویسی مانند Python، PHP و همچنین Bash این امکان به هکر میدهد تا در صورت نیاز (نبودن ابزار مناسب)، ابزار مربوط به خود را توسعه و در جهت تست نفوذ مورد استفاده قرار دهد.فراموش نکنید که مفاهیم برنامه نویسی ، نقش مهمی در یادگیری اسکریپت نویسی دارند و قبل از رفتن به سراغ اسکریپت نویسی با مفاهیم همچون متغیر ها ، توابع ، کلاس ها و … بهتر هست آشنایی داشته باشید. البته می توانید این مفاهیم را حین یاد گیری زبان اسکریپت نویسی هم فرا بگیرید.
آشنایی با پایگاه دادههای معمول مانند MySQL، MSSQL و Oracle این توانایی را به هکر میدهد که بتواند تست نفوذ بر روی پایگاه داده به راحتی انجام دهد.پایگاه داده در مفهوم عام آن، به مجموعهای از اطّلاعات با ساختار منظم و سازمانیافته گفته میشود. در این مفهوم، ذخیرهسازی ساده اطلاعات در یک پرونده را نیز میتوان نوعی پایگاه داده دانست
اما در مفهوم خاص، منظور از پایگاه داده مجموعهای از این اطلاعات است که در قالبی ذخیره شده که توسط ابزارهای الکترونیکی قابل خواندن و دسترسی است. موارد ذیل از جمله تعاریف آکادمیک ارایه شده از این مفهوم هستند.
(برای یادگیری کامل زبان های برنامه نویسی PHP و Python از دوره های آموزشی کدفرند استفاده کنید).
(برای یادگیری لینوکس می توانید از دوره آموزش Linux Ubuntu (مقدماتی) کدفرند استفاده کنید)