گسترش فناوری و تکنولوژی، راحتی و آسایش را برای انسانها به ارمغان آورده است اما همین فناوری و تکنولوژیها اگر درست استفاده نشوند یا درست ساخته نشوند میتواند این آسایش را از بین ببرد. هک (Hack) به معنای رخنه و نفوذ است، یعنی کسی بصورت قانونی یا غیرقانونی به اطلاعاتی که نباید دسترسی پیدا کند دسترسی پیدا کند. در ادامه بیشتر با حوزه هک و مخصوصا زبان های برنامه نویسی برای هک آشنا میشویم.
زبان برنامه نویسی چیست؟
کامپیوتر (Computer) از واژه Compute بر گرفته شده و به معنای محاسبه گر است. کامپیوتر برای این که عملیاتی انجام دهد باید دستوراتی به او داده شود. حال چالش اینجاست که چگونه باید با کامپیوتر ارتباط برقرار کرد؟ پاسخ این سوال زبانهای برنامه نویسی است، زبان های برنامه نویسی بوجود آمدند تا شما بتوانید با کامپیوتر ارتباط برقرار کنید و دستوراتتان را به او بدهید.
مهارت های لازم برای هکر شدن
برای هکر شدن نیاز هست که شما با تعدادی از تخصصهای متفاوت آشنایی داشته باشید. البته هک و هک ها انواع دارند که در ادامه بررسیشان میکنیم و شاید در بعضی از انواع هک نیاز نباشد در همه تخصصهای زیر اطلاعات داشته باشید.
- شبکه (Networking) : شبکه های کامپیوتریجامعترین آموزش درس شبکه های کامپیوتریدرس شبکه های کامپیوتری یکی از مهمترین و بنیادیترین دروس رشته کامپیوتر است، با توجه به اینکه اینترنت امروزی بزرگترین سیستم مهندسی ساخت دست بشر در تمام طول تاریخ است، آشنایی با شبکههای کامپیوتری برای تمامی علاقهمندان و دانشجویان رشته کامپیوتر الزامی است، در این راستا در این صفحه به معرفی شبکههای کامپیوتری پرداخته شده است یک ارتباط میانی بین دستگاههای متفاوت است. شما باید با مفاهیمی مثل DHCP ، Subnetting، Supernetting و … آشنایی داشته باشید، برخی حملات و تهدیدها از طریق شبکه صورت میگیرند بنابراین آشنایی با این حوزه مهم است.
- لینوکس (Linux) : لینوکس نسبت به سایر سیستم عامل (Operating System)سیستم عامل چیست به زبان ساده، چرا باید از OS استفاده کنیم؟این مقاله عالی به معرفی سیستم عامل (Operating System|OS) به زبان ساده پرداخته، همچنین بررسی کرده که چرا باید از سیستم عامل استفاده کنیم ها امنیت بیشتری دارد و نفوذ و آسیب پذیری به آن به سادگی نیست.
- کامپیوتر (Computer) : برای هکر شدن، خوب است برخی مهارتهای کامپیوتری مثل کار کردن با صفحات گسترده٬ ایمیل، شبکههای اجتماعی و … را بلد باشید.
- سخت افزار (Hardware) : شامل قطعات فیزیکی است که یک کامپیوتر را میسازد مثل CPU، Graphic Card، Data storage و … نرمافزارها روی سختافزارها اجرا میشوند، بنابراین برای اینکه مثلا یک Spyware درست کنید خوب است که اطلاعاتی در مورد سختافزار و کارکرد آنها داشته باشید.
- پایگاه داده (Database) : یکی از مهارتهای حیاتی است که باید یک هکر بداند، امروزه جنگ بر سر داده و اطلاعات است، پایگاه های داده هم جایی هستند که اطلاعات در آنجا قرار میگیرد. خیلی از تجارتها حیاتشان به اطلاعات وابسته است و اگر امنیت این اطلاعات فراهم نشود نابود میشوند. امروزه Database Systemهای زیادی وجود دارند که اطلاعات شما را ذخیره میکنند. هکرهای اخلاقی بشدت روی امنیت این سیستمها کارکردهاند تا نفوذناپذیر شوند. در نتیجه آنها باید به کل یک Data Engine و Data scheme مسلط باشند تا بتوانند این سیستم ها را نفوذناپذیر کنند.
- مهندسی معکوس (Reverse Engineering) : مهندسی معکوس یعنی بیرون کشیدن اطلاعات یک نرمافزار یا سختافزار، این کار برای امنیت نرمافزارها و سختافزارها صورت میگیرد تا آسیبها و باگهایی که در آنها وجود دارد را تشخیص دهند. لازم به ذکر است که نرمافزارها توسط برنامه نویسها هم تست میشوند، برای آشنایی با این مسئله به صفحه تست نرم افزار چیست؟تست نرم افزار چیست؟ – انواع، روش ها و اهمیت تست نرم افزارتست نرم افزار چیست؟ این مقاله عالی به بررسی انواع تست های نرم افزاری، بهترین روش ها برای تست نرم افزارها و اهمیت تست نرم افزار پرداخته است مراجع کنید.
- برنامه نویسی (Programming) : برنامه نویسی از مهمترین مهارتهای یک هکر است، برای یک هکر خوب شدن، باید با بسیاری از زبانهای برنامهنویسی آشنا باشید. که در ادامه، زبان های مناسب حوزه هک را بررسی میکنیم.
انواع هکر ها
- کلاه سفید (White Hat) : این دسته از هکرها بسیار خبره هستند و برای سازمانها یا دولتها کار میکنند و وظیفه آنها هم نفوذ و هک سیستمهای خود سازمان یا دولت است. در واقع آنها با نفوذ به سیستمهای سازمان خودشان میخواهند مشکلات امنیتی که در سیستم است را پیدا و حل کنند و اصلا قصد سوءاستفاده ندارند.
- کلاه سیاه (Black Hat) : خبرگی این هکرها به اندازه کلاه سفیدها است ولی قصد این نوع هکرها منفی است. انگیزه اصلی آنها دزدیدن اطلاعات بانکی یا حساس و فروش آنها به بازارهای سیاه است.
- کلاه خاکستری (Gray Hat) : این نوع هکرها بین کلاه سفیدها و سیاهها قرار میگیرند و معلوم نیست که انگیزه آنها مثبت است یا منفی!
- کلاه قرمز (Red Hat) : به این هکرها، هکرهای چشم عقابی هم میگویند، قصد این هکرها جلوگیری از حملات هکرهای کلاه سیاه است. اما تفاوتشان با کلاه سفیدها این است که هکرهای کلاه قرمز بی رحم هستند و مقابله به مثل میکنند، این هکرها توسط دولت استخدام میشوند.
- تازه به دوران ها (Script Kiddies) : این هکرها افرادی هستند که هنوز در هک ناشیاند و اطلاعات زیادی ندارند انگیزه این هکرها توجه همسالان است، دو نوع از هکهایی که آنها میکنند DoS و DDoS است.
- کلاه سبز (Green Hat) : این دسته از هکرها دانشی مشابه تازه به دورانها دارند ولی مدام در حال یادگیری و افزایش دانش هستند و قصد آنها تبدیل شدن به یک هکر تمام عیار است.
- کلاه آبی (Blue Hat) : این هکرها استخدام شرکت خاصی نیستند، شرکتهای نرمافزاری مختلف برای تست نرمافزارهایشان از هکرهای کلاه آبی دعوت میکنند تا نرمافزارشان را تست کند و هرگونه آسیب و باگ در آن را شناسایی کنند.
هکرهای دستههای بالا در دنیای امنیت سایبریامنیت سایبری چیست؟ 0 تا 100 امنیت سایبری [cyber security]این مقاله به بررسی امنیت سایبری (cyber security)، انواع امنیت سایبری، اهمیت امنیت سایبری، یادگیری امنیت سایبری و شغل های امنیت سایبری پرداخته است هستند. اما سه دسته دیگر هم هستند که در حوزههای مختلف کار میکنند:
- هکرهای افشاگر (Whistleblower Hackers) : این هکرها شامل کارمندانی هستند که در سازمانی کار میکنند و هدفشان افشای اطلاعات محرمانه سازمان است.
- هکرهای هکتیویست (Hacktivist Hackers) : این هکرها قصد دارند سایتهای دولتی را هک کنند.
- هکرهای زیر نظر دولت (State/Nation Sponsored Hackers) : دولت این هکرها را برای بدست آوردن اطلاعات سایر کشورها استخدام میکند.
انواع هک
هک کردن میتواند به شکل های مختلف صورت بگیرد و همیشه نباید شما به یک سیستم نفوذ کنید.
برخی از روش شناخته شده هک عبارت اند از :
- Phishing : این روش با ترغیب کردن شما به کلیک کردن روی لینک یا غیره است تا بتواند اطلاعات حیاتی شما را بدزدد.
- Bait and Switch Attack : در این روش هکرها شما را به سایت مخربشان میکشند و یک بدافزار را روی سیستم شما بارگذاری کنند.
- Key Logger : یک برنامه است که با دانلود شدن روی سیستم شما تمام ضربههایی که شما روی کیبورد میزنید را ضبط میکند و از طریق این ضربهها متوجه میشود که شما کدام کلید را فشار میدهید. از این نوع هک برای دزدیدن رمز کارتهای بانکی یا … استفاده میشود. به همین دلیل هست که در درگاههای خرید در هنگام ورود رمز، یک کیبورد مجازی وجود دارد تا رمز را از طریق آن وارد کنید.
- DoS/DDoS : این مدل هک با ارسال درخواستهای خیلی زیاد و پشت سرهم باعث کرش کردن وب سایت میشود.
- Cookie Theft : کوکیها موجوداتی هستند که در مرورگر شما ذخیره میشوند. فایده آنها نگهداری برخی اطلاعات کاربران است. برخی از سایتها اطلاعاتی مثل نام کاربری و رمزعبور را در کوکی ذخیره میکنند و هکرها کوکی کاربرها را به روشهایی اصطلاحا Hijack (رباییدن) میکنند.
- Viruses and Trojans : ویروس و تروجان بدافزارهایی هستند که روی سیستم نصب میشوند و کارهایی مثل جاسوسی یا مختل کردن عملیاتهای سیستم را انجام میدهند.
- ClickJacking Attack : حملات کلیک جک در واقع شما را گول میزنند که روی یک المان که نباید کلیک کنید کلیک کنید این المان میتواند یک دکمه ساده باشد. با کلیک روی آن دکمه ممکن است عملیات خاصی که هکر آن را طراحی کرده اتفاق میافتد مثلا ممکن است بهنحوی کنترل کل سیستم را بدست بگیرد.
- Fake W.A.P : در واقع W.A.P به معنای Wireless Access Point هست. در این روش هکر با استفاده از نرمافزار یک WAP جعلی ایجاد میکند و اگر کسی به آن Access Point متصل شود اطلاعاتش را هکر دریافت میکند.
مثلا در مکانهای عمومی مثل فرودگاه شاید وقتی WiFi گوشیتان را روشن کنید یک شبکه با نام مثلا "اینترنت رایگان فرودگاه امام خمینی" را ببینید این شبکه ممکن است توسط یک هکر ایجاد شده باشد و خطرناک است.
هک اخلاقی چیست ؟
هک اخلاقی همان کاری است که هکرهای کلاه سفید انجام میدهند، در این نوع هک قصد هکر سؤ استفاده کردن نیست بلکه کاملا برعکس آن است و با هک اخلاقی امنیت سیستمها فراهم میشود.
چرا برنامه نویسی برای هکر شدن مهم است؟
برنامه نویسی یکی از تواناییهای مهمی است که باید یک هکر آن را داشته باشد. با داشتن این دانش هکر میتواند کدها را آنالیز و ویرایش کند یا یک اسکریپتی را روی سیستم قربانی اجرا کند.
بهترین زبان های برنامه نویسی برای هک
هک اصطلاحی است که برای همه جالب است، وقتی از هنر هک به درستی استفاده شود، میتوانید از حملات سایبری مختلف جلوگیری کنید. یک مثال ایده آل برای همین هکرهای اخلاقی هستند که از شبکههای شما محافظت میکنند. از میان بسیاری از مهارتهایی که یک هکر باید به آن مسلط شود، برنامهنویسی یکی از این مهارتهاست که در صدر فهرست قرار دارد. در این آموزش شما با بهترین زبان برنامه نویسی برای هک آشنا خواهید شد:
زبان های برنامه نویسی برای هک در وب
برای انجام حملات در سطح وب برخی از زبان های لازم را در زیر باید بلد باشید.
- SQL
- java scriptجاوا اسکریپت چیست؟ معرفی زبان برنامه نویسی java scriptزبان برنامه نویسی جاوا اسکریپت چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای JavaScript پرداخته و مبانی برنامه نویسی جاوا اسکریپت را آموزش داده
- PHP
- HTMLزبان html چیست؟ اچ تی ام ال (HTML) چیست و چه کاربردی دارد؟این مقاله عالی به معرفی زبان html پرداخته سپس موارد چون : html چه کاربردی دارد؟ فایل html چیست؟ بررسی مزایا و معایب HTML، پرکاربرد ترین تگ های HTML پرداخته/ CSS
زبان های برنامه نویسی برای اکسپلویت نویسی
اکسپلویت یک نرمافزار، یک تیکه از داده یا یک دنبالهای از دستورات است که از باگها و آسیبهای سیستم استفاده میکند تا باعث ایجاد اتفاقات غیرمنتظره در نرمافزار و سختافزار شود. این حوزه نیاز به دانش برنامه نویسی خوبی دارد و یکی از مهمترین حوزهها است.
زبان هایی که در این حوزه میتواند استفاده شود شامل :
- پایتون (Python)زبان برنامه نویسی پایتون چیست؟ – نحوه شروع و دلایل محبوبیتزبان برنامه نویسی پایتون (Python) چیست؟ این مقاله عالی به بررسی دلایل محبوبیت پایتون، موارد استفاده از پایتون و نحوه شروع به برنامه نویسی پایتون پرداخته
- JavaScript
- Cزبان برنامه نویسی C – مزایا و کاربرد زبان C – فرق C و ++Cاین مقاله عالی ابتدا توضیح میدهد که زبان برنامه نویسی c چیست، سپس به بررسی مزایا و معایب زبان C ، کاربردهای زبان سی ، و تفاوت بین C و ++C میپردازدRuby
- جاواجاوا چیست؟ تعریف، معنی و ویژگی های جاوا (java) از 0تا100جاوا یک زبان برنامه نویسی همه منظوره، مبتنی بر کلاس و شی گرا است که برای داشتن وابستگی های پیاده سازی کمتر طراحی شده است، زبان برنامه نویسی جاوا شبیه ++C است
- Perl
- سی پلاس پلاسبرنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++؟برنامه نویسی سی پلاس پلاس چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای برنامه نویسی C++ پرداخته و نمونه هایی از کدهای زبان برنامه نویسی ++C را آورده
زبان های برنامه نویسی برای مهندسی معکوس
مهندسی معکوس به فرآیندی گفته میشود که شما یک نرمافزار یا سختافزار را تحلیل و اطلاعات آن را بیرون بکشید و متوجه شوید که آنها چگونه کار میکنند. به عنوان مثلا فایل apk که فایلهای اجرایی برای اندروید هستند را میتوان با مهندسی معکوس به آنها دسترسی پیدا کرد.
زبانهایی که در این حوزه میتوان استفاده کرد شامل :
- Python
- C
- ++C
- Assembly
زبان های برنامه نویسی برای تست و نفوذ
برای تست و نفوذ میتوان از زبانهایی مثل :
- Python
- Java
- #C
- C++/C
- Go
- Assembly
زبان های برنامه نویس برای هک اندروید
هک و نفوذ به هر سیستم دیجیتالی تقریبا ممکن است، اندروید هم از این قاعده مستثنا نیست. یکی از ابزارهای مهم برای هک و نفوذ به سیستم عامل اندرويدسیستم عامل اندرويد چیست؟ هر آنچه باید درمورد Android بدانیداندروید چیست و چه ویژگی هایی دارد؟ این مقاله عالی به معرفی سیستم عامل اندروید (Android)، تاریخچه و توسعه اندروید، ویژگی های ورژن های مختلف اندروید پرداخته است کالی لینوکس است و خوشبختانه یا متاسفانه هسته اندروید لینوکس است و این موضوع نفوذ را سادهتر کرده است. یکی از زبانهایی که برای هک اندروید استفاده میشود میباشد.
تفاوت هک و برنامه نویسی
در برنامه نویسی هدف تولید نرم افزار یا فهماندن خواستههایی که ما انسانها داریم به کامپیوتر است. ولی مقصود از هک، رخنه و نفوذ به سیستمهاست که برنامه نویسی به عنوان یکی از تواناییهای مهم در این حوزه است که یک هکر باید آن را بداند.
جمع بندی
هک و هکر انواع مختلفی دارند و اهدافشان میتوانند مثبت یا منفی باشد. برای هکر شدن باید مجموعهای از مهارتها را داشته باشید یکی از آنها برنامه نویسی است. زبان های برنامه نویسی انواع مختلفی دارند و متناسب با پلتفرم و هدفی که از هک دارید باید یکی از آنها را انتخاب کنید.
مسیر هکر شدن چیست؟
دورهها و گواهینامههایی وجود دارد که شما با گذراندن آنها میتوانید هکر شوید ولی اینها کافی نیستند و باید همیشه در حال افزایش دانش خودتان باشید.
درآمد هکرهای اخلاقی چگونه است؟
هکرهای اخلاقی بر حسب نبوغ و مهارتشان در شرکتها یا توسط دولت استخدام میشوند. البته مسیرهای دیگری هم وجود دارد.
سیستم عامل مناسب برای هک چیست؟
بهترین سیستم عامل برای هک لینوکس هست، این سیستم عامل منبع باز و نسخههای مختلفی از آن موجود است. معروفترین نسخهای که برای هک و امنیت استفاده میکنند، کالی لینوکس است که شامل ابزارهایی برای Reverse Engineering ، Discover Vulnerabilities و غیره میباشد.