Skip to content

Commit

Permalink
راهنمای شروع ctf (#30)
Browse files Browse the repository at this point in the history
* osint challenges
* beginner guide
  • Loading branch information
HIGH0101 authored Jun 12, 2024
1 parent 55036d2 commit ed38553
Show file tree
Hide file tree
Showing 25 changed files with 115 additions and 14 deletions.
File renamed without changes.
File renamed without changes
Binary file added docs/getStarted/CTF-introduction/ctftime.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ tags:
- CTF
---

# آشنایی با مسابقات CTF
مطالعه و تحقیق به تنهایی برای یادگیری و کسب مهارت در دنیای امنیت ممکن است گاهی خسته‌ کننده باشد. در اینجا با یکی از هیجانی‌ترین روش‌های بالا بردن دانش امنیت سایبری یعنی مسابقات CTF آشنا می‌شویم. مسابقات فتح پرچم (Capture the Flag) یا به اختصار CTF، یکی از جذاب‌ترین مسابقات مهارتی، تمرینی و «رایگان» در دنیای امنیت است که در آن شرکت‌کنندگان تلاش می‌کنند یک رشته کد متنی به نام پرچم (Flag) که به شکل هدفمند در برنامه یا سرویس‌های آسیب‌پذیر پنهان شده پیدا کنند.
# آشنایی با مسابقات فتح پرچم (CTF)
مطالعه و تحقیق به تنهایی برای یادگیری و کسب مهارت در دنیای امنیت ممکن است گاهی خسته‌ کننده باشد. در اینجا با یکی از هیجانی‌ترین روش‌های کسب دانش در امنیت سایبری و هک یعنی مسابقات CTF آشنا می‌شویم. مسابقات فتح پرچم (Capture the Flag) یا به اختصار CTF، یکی از جذاب‌ترین مسابقات مهارتی، تمرینی و «رایگان» در دنیای امنیت است که در آن شرکت‌کنندگان تلاش می‌کنند یک رشته متنی به نام پرچم (Flag) مانند زیر که به شکل هدفمند در برنامه یا سرویس‌های آسیب‌پذیر پنهان شده بدست آورند.

```
Flag: FlagMotori{CTF_c0nte5ts_4r3_br4in_7ra1n3r}
Motori{CTF_c0nte5ts_4r3_br4in_7ra1n3r}
```

این مسابقات از [بازی‌های ورزشی فتح پرچم](https://en.wikipedia.org/wiki/Capture_the_flag) الهام گرفته شده و معمولا در یک بازه زمانی ۲۴ تا ۴۸ ساعته برگزار می‌شوند. شرکت‌ها و دانشگاه‌ها با هدف کشف، پرورش و جذب افراد با استعداد یا خبره در زمینه امنیت، حامیان و برگزارکنندگان اصلی این رویداد را تشکیل می‌دهند که اغلب جوایزی را نیز برای برندگان آن در نظر می‌گیرند. در کنار این، نهادهای مستقلی مانند جامعه‌ی هکرها و دانشجویان نیز برای ایجاد رقابت و یک سرگرمی هیجان‌انگیز، این مسابقات را برگزار می‌کنند.
این مسابقات از [بازی‌های ورزشی فتح پرچم](https://en.wikipedia.org/wiki/Capture_the_flag) الهام گرفته شده و معمولا در یک بازه زمانی ۲۴ تا ۴۸ ساعت برگزار می‌شوند. شرکت‌ها و دانشگاه‌ها با هدف کشف، پرورش و جذب افراد با استعداد یا خبره در زمینه امنیت، حامیان و برگزارکنندگان اصلی این رویداد را تشکیل می‌دهند که اغلب جوایزی را نیز برای برندگان آن در نظر می‌گیرند. در کنار این، نهادهای مستقلی مانند جامعه‌ی هکرها و دانشجویان نیز برای ایجاد رقابت و یک سرگرمی هیجان‌انگیز، این مسابقات را برگزار می‌کنند.

## مروری بر تاریخچه CTF

Expand All @@ -30,7 +30,7 @@ Flag: FlagMotori{CTF_c0nte5ts_4r3_br4in_7ra1n3r}


### رقابت‌های حال حاضر
در چند سال گذشته، فتح پرچم به یک نام محبوب در حوزه امنیت سایبری تبدیل شده و تعداد مسابقات CTF به طور پیوسته در حال افزایش است. به عنوان مثال تنها در سال ۲۰۲۳ بالغ بر ۲۹۰ مسابقه CTF برگزار شده است. علاوه بر این مهارت‌های امنیتی گسترده‌تر و جدیدتری مانند بلاکچین، هوش مصنوعی، پنهان‌نگاری و جاسوسی از طریق وب (Osint) به چالش‌های این مسابقات اضافه شده است. به همین دلایل وب سایت [ctftime](https://ctftime.org/) از سال ۲۰۱۱ اقدام به نگهداری و ثبت اطلاعات مربوط به هر مسابقه، چالش‌ها، امتیاز تیم‌ها و وزن‌دهی مسابقات کرده تا چالش‌ها و رتبه تیم‌ها به فراموشی سپرده نشود. این وبسایت اطلاعات کاملی در مورد تقویم مسابقات پیش رو در سراسر دنیا و مسابقات گذشته و همچنین اطلاعات دیگری مانند آرشیو کاملی از چالش‌ها، رتبه‌ی تیم‌ها در هر مسابقه و امتیاز کلی و رده‌بندی سالانه تیم‌های CTF را ارائه می‌دهد. به طور کلی ctftime را می‌توان به عنوان یک مرجع خوب برای آشنایی و شرکت در مسابقات CTF در نظر گرفت.
در چند سال گذشته، فتح پرچم به یک نام محبوب در حوزه امنیت سایبری تبدیل شده و تعداد مسابقات CTF به طور پیوسته در حال افزایش است. به عنوان مثال تنها در سال ۲۰۲۳ بالغ بر ۲۹۰ مسابقه CTF در سطح جهان برگزار شده است. علاوه بر این، مهارت‌های امنیتی گسترده‌تر و جدیدتری مانند بلاکچین، هوش مصنوعی، پنهان‌نگاری و جاسوسی از طریق وب (Osint) به چالش‌های این مسابقات اضافه شده است. به همین دلایل وب سایت [ctftime](https://ctftime.org/) از سال ۲۰۱۱ اقدام به نگهداری و ثبت اطلاعات مربوط به هر مسابقه، چالش‌ها، امتیاز تیم‌ها و وزن‌دهی مسابقات کرده تا چالش‌ها و رتبه تیم‌ها به فراموشی سپرده نشود. این وبسایت اطلاعات کاملی در مورد تقویم مسابقات پیش رو در سراسر دنیا و مسابقات گذشته و همچنین اطلاعات دیگری مانند آرشیو کاملی از چالش‌ها، رتبه‌ی تیم‌ها در هر مسابقه و امتیاز کلی و رده‌بندی سالانه تیم‌های CTF را ارائه می‌دهد. به طور کلی ctftime را می‌توان به عنوان یک مرجع خوب برای آشنایی و شرکت در مسابقات CTF در نظر گرفت.

همان‌طور که مسابقات CTF در گذر زمان به بلوغ رسیدند و شهرت بیشتری پیدا کردند، تقاضای بیشتری از طرف تیم‌های مختلف برای شرکت در این بازی‌ها به وجود آمد. از آنجایی که Defcon CTF به عنوان بهترین بازی‌های هک و امنیت جهان شناخته می‌شود و تقاضا برای شرکت در آن بسیار زیاد است در نتیجه روشی مشابه بازی‌های ورزشی المپیک برای ورود آن اجرا می‌شود.
تیم‌ها باید مجموعه‌ای از مسابقات مقدماتی CTF را انجام دهند تا امتیاز لازم را برای حضور در این رویداد کسب کنند. به همین دلیل Defcon CTF به المپیک هکرها معروف شده که جزئیاتی از نتایج دوره‌های مختلف آن در [اینجا](https://docs.google.com/spreadsheets/u/0/d/1xy_Yak_rbYO1g0di54bNrHD3uoK0F6insWAOPgFvM08/htmlview?pli=1) آمده است. در نهایت تیم قهرمان علاوه بر جایزه، می‌تواند بالاترین نشان به نام "نشان سیاه" [(Black Badge)](https://defcon.org/html/links/dc-black-badge.html) را بدست آورد.
Expand Down Expand Up @@ -80,6 +80,10 @@ Flag: FlagMotori{CTF_c0nte5ts_4r3_br4in_7ra1n3r}

برای شرکت در هر مسابقه CTF لازم است که در ابتدا آشنایی با سطح آن مسابقه داشته باشیم. به طور کلی باید در نظر داشت که تعیین سطح یک مسابقه یک امر نسبی است که به مهارت و دانش قبلی افراد بستگی دارد. با این حال، در این بخش مسابقات را براساس وزن‌دهی سایت ctftime به سه دسته تقسیم کردیم و برای هر سطح تعدادی از مسابقات بهتر و شناخته شده را معرفی می‌کنیم.

<center>
[![ctftime.png](./ctftime.png)](https://ctftime.org/)
</center>

### ۱- مبتدی
مسابقه‌هایی که بین وزن صفر تا ۴۰ دارند معمولا مسابقاتی هستند که برای افراد تازه وارد به دنیای امنیت توصیه می‌شوند. تعداد این مسابقه‌ها بسیار بیشتر از سایر سطوح است و چالش‌های آن‌ها مفاهیم اولیه امنیت تا مسائل با درجه سختی متوسط را پوشش می‌دهند. از مسابقات مطرح و قابل قبول در این سطح می‌توان از
[HackTheBoxCTF](https://www.hackthebox.com/events/cyber-apocalypse-2022) ،[ImaginaryCTF](https://imaginaryctf.org/) ،[SunshineCTF](https://sunshinectf.org/)
Expand Down Expand Up @@ -130,4 +134,8 @@ Flag: FlagMotori{CTF_c0nte5ts_4r3_br4in_7ra1n3r}

اگر فرد با تجربه‌ای در دنیای امنیت هستید که قصد به چالش کشیدن توانایی خود را دارید، یا به دنبال هیجان و یادگیری بیشتر امنیت هستید، یکی بهترین انتخاب‌ها مسابقه‌های CTF است. اگر هنوز تجربه شرکت در این مسابقه‌ها رو نداشتید بهتره سریع‌تر یک سر به سایت ctftime بزنید و در نزدیک‌‌ترین CTF شرکت کنید و همزمان لذت حل چالش و هیجان رقابت را ببرید.

---
---


!!! نویسنده
[HIGHer](https://twitter.com/HIGH01012)
File renamed without changes
Binary file added docs/getStarted/beginners-guide/247ctf-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/HTB-Logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/THMlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/crackmes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/cryptohack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/ctflearn logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/dont_know.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/hacktoria.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 94 additions & 0 deletions docs/getStarted/beginners-guide/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
tags:
- راهنمای شروع
- beginner guide
---


# راهنمای شروع CTF
حال که با مسابقات CTF آشنا شدید سوال این است که: **از کجا باید شروع کنم و نقشه راه مناسب چیست؟ چطوری به یک شخص ماهر در حل چالش‌های CTF تبدیل بشم؟** در این اینجا قصد داریم به این پرسش‌ها به شکل کلی جواب بدیم و یک راهنمایی اولیه برای افراد تازه وارد به این حوزه ارائه بدیم و سپس در هر دسته به طور تخصصی‌تر جزییاتی ارائه خواهیم داد.

با فرض اینکه یک آشنایی مقدماتی با کامپیوتر، یک زبان‌ برنامه‌نویسی و اندکی دانش زبان انگلیسی دارید می‌توانید شروع به حل چالش‌های CTF کنید. باید توجه داشت که "شروع" یک مفهوم نسبی و سلیقه‌ای است، با این حال **گام‌های زیر به ترتیب** حاوی نکاتی است که به شما در این مورد کمک می‌کند.

### ۱- یافتن حوزه مورد علاقه :star2: :dart:

پیدا کردن حوزه مورد علاقه‌ در CTF می‌تواند اولین گام مهم برای موفقیت در این مسیر باشد. همان‌طور که در منوی بالا می‌بینید شاخه‌های مختلفی از امنیت در مسابقات CTF وجود دارد.
دسته‌های مختلف CTF مانند رمزنگاری، وب، pwn، مهندسی معکوس و جرم‌شناسی حوزه‌های اصلی در CTF هستند.
با مراجعه به هر شاخه از منوی بالا توضیحاتی در مورد آن دسته و چالش‌های آن ارائه می‌دهد که شاید به شما در انتخاب خود کمک کند.
**- توصیه:** اگرچه می‌توانید در بسیاری از دسته‌ها فعالیت کنید اما پیشنهاد می‌کنیم یک حوزه را عمیق‌تر و تخصصی‌تر دنبال کنید و سایر حوزه‌ها را به عنوان دانش اضافی در کنار آن تقویت کنید.



### ۲- استفاده از منابع آموزشی :globe_with_meridians: :books:
بعد از پیدا کردن حوزه مورد علاقه باید شروع به مطالعه منابع آموزشی مختلف (وبسایت، کتاب، بلاگ) کنید تا دانش پایه آن حوزه کسب کنید. یک از سایت‌های خوب در این زمینه بخش یادگیری سایت [picoctf](https://primer.picoctf.org/) است که می‌توانید استفاده کنید. سایت‌های آموزشی دیگری هم به شکل تخصصی روی یک حوزه خاص آموزش یا چالش‌هایی را ارائه می‌دهند که می‌توانید به آن‌ها مراجعه کنید.

<center>

| PWN | رمزنگاری| مهندسی معکوس |
|:-------:|:-----------:|:-------:|
| [![alt-text-4](pwncollege.png "pwncollege")](https://pwn.college/) | [![alt-text-3](cryptohack.png "Cryptohack")](https://cryptohack.org/) | [![alt-text-4](crackmes.png "crackMe")](https://www.crackmes.one/) |
|osint|جرم‌شناسی|وب|
| [![alt-text-4](hacktoria.png "hacktoria")](https://hacktoria.com/) | [![alt-text-4](dont_know.jpg "???")]() | [![alt-text-4](portswigger.png "portswigger")](https://portswigger.net/) |

</center>



علاوه بر این، در کنار مطالعه هر حوزه، نیاز به یادگیری ابزارها و کتابخانه‌های مختلفی مانند Wireshark pwntools ،John the Ripper و غیره دارید که به حل چالش‌ها کمک می‌کند. در همین سایت، ما در هر بخش سعی کردیم ابزارها و کتابخانه‌های کاربردی را به مرور معرفی کنیم.



### ۳- پیوستن به گروه‌های CTF :speech_balloon: :busts_in_silhouette:
یکی از راه‌های تقویت مهارت در حل چالش‌ها ایجاد ارتباط با افراد با تجربه و حرفه‌ای است.
ارتباطات می‌تواند منبع ارزشمندی برای **افزایش سرعت یادگیری** و حتی **فرصت‌های شغلی آینده** باشد.
شما می‌توانید در شبکه‌های اجتماعی مانند دیسکورد، تلگرام و توییتر عضو سرورهای CTF شوید تا سوالات خود را بپرسید یا به سوالات دیگران پاسخ دهید. در کل این تعاملات باعث افزایش مهارت شما می‌شود.
بسیاری از گروه‌ها و سرورهای مرتبط با CTF در Discord فعالیت می‌کنند که می‌توانید به سرورهای معروف مانند [Hack The Box](https://discord.gg/hackthebox) ،[Capture The Flag](https://discord.gg/S2rHpTpv) بپیوندید. در توییتر نیز با دنبال کردن افراد معروف و تیم‌ها مرتبط با CTF ([مثل تیم خودمون](https://x.com/FlagMotori) :smile:) می‌توانید از اخبار و چالش‌های جدید آگاه شوید.


### ۴- خواندن Write-up :open_book: :memo:
شاید **مهم‌ترین** عامل برای یادگیری و تقویت در CTF خواندن رایتاپ یا نحوه حل چالش توسط دیگران است. خواندن مداوم رایتاپ چالش‌ها می‌تواند کمک زیاد به تقویت شما کند.
گاهی نوشتن نحوه حل برای خود و همچنین خلاصه یا نکته‌برداری یک چالش به ماندگاری آن در ذهن کمک می‌کند.
### ۵- تمرین منظم و پیوسته :weight_lifter: :repeat:

گاهی خواندن به تنهایی کافی نیست و لازم است خود را به چالش بکشید و شروع به حل یک چالش CTF کنید. برای مثال یک مدت زمانی را روی یک چالش صرف کنید و اگر هنوز گیر کرده‌اید سپس به دنبال یک راهنمایی باشید یا رایتاپ‌های مشابه را بررسی کنید.

برای این کار استفاده از wargame گزینه مناسبی است زیرا شما به اندازه کافی زمان دارید تا روی یک چالش CTF تمرکز کنید. علاوه بر سایت‌های اشاره شده در بالا که به طور تخصصی روی یک دسته متمرکز بودند، در زیر تعدادی از سایت‌هایی که چالش از همه حوزه‌ها دارند را قرار دادیم. این سایت‌ها چالش‌هایی را از سطح مبتدی تا دشوار را ارائه می‌دهند که می‌توانید از آن‌ها برای تمرین کردن استفاده کنید.

**- توصیه:** در این بین picoctf شاید گزینه مناسب‌تری برای شروع باشد.

<center>
[![alt-text-2](rootme logo.png "RootMe")](https://www.root-me.org/?lang=en)
[![alt-text-2](picoctf-logo.png "picoctf")](https://picoctf.org/)
[![alt-text-2](THMlogo.png "TryHackMe")](https://tryhackme.com/)
</center>

<center>
[![alt-text-1](ctflearn logo.png "CTFlearn")](https://ctflearn.com/)
[![alt-text-1](ringzer0ctf.png "Ringzer0ctf")](https://ringzer0ctf.com/)
[![alt-text-1](HTB-Logo.png "HackTheBox")](https://www.hackthebox.com/)
</center>

<center>
[![alt-text-3](247ctf-logo.png "247CTF")](https://247ctf.com/)
[![alt-text-4](w3challs.jpg "W3Challs")](https://w3challs.com/)
<figcaption> برخی از سایت‌های wargame معروف</figcaption>
</center>

### ۶- شرکت کردن در مسابقه :trophy: :video_game:
راه دیگر برای شروع و تقویت مهارت مسابقه دادن است. بعد از اینکه اندکی با حوزه چالش‌ها و نحوه حل آن‌ها آشنا شدید وقت خوبی است که در یک مسابقه شرکت کنید. برای این کار می‌توانید به سایت [ctftime](ctftime.org) سر بزنید. بهتر است که ابتدا در مسابقاتی با وزن کم (۰ تا ۲۵) شرکت کنید چون این مسابقات برای افرادی است که تازه وارد این عرصه شده‌اند.

**- توصیه:**

- **ایجاد یا پیوستن به یک تیم:**
استفاده از تجربه دیگران و
هم فکری گروهی باعث درک بهتری از چالش و ماندگاری بیشتر آن در ذهن می‌شود.

- **بررسی چالش‌ها بعد از اتمام مسابقه:**
دلایل یا اشتباهاتی که باعث شده نتوانید یک چالش را حل کنید را پیدا کنید.
همچنین به خاطر سپردن الگو چالش‌ها و تفاوت آن با چالش‌های قبلی در ذهن بسپرید.

امیدواریم این موارد راهنمای شروع مناسبی باشد و شما را برای موفقیت کمک کند.


!!! نویسنده
[HIGHer](https://twitter.com/HIGH01012)
Binary file added docs/getStarted/beginners-guide/picoctf-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/portswigger.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/pwncollege.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/ringzer0ctf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/rootme logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/getStarted/beginners-guide/w3challs.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ed38553

Please sign in to comment.