Skip to content

Commit 56ed169

Browse files
committed
add ctf guide
1 parent 79ede81 commit 56ed169

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
---
2+
title: Your One Stop CTF Resource Guide
3+
description: CTF resource compilation
4+
date: 2024-08-27 17:00:00 +0800
5+
categories: [Resources]
6+
tags: []
7+
---
8+
9+
10+
## What are CTFs? 👾
11+
12+
CTFs are **gamified cybersecurity competitions**, where you solve different challenges for “flags”, or an answer of sorts!
13+
14+
In true _l33t hacker_ terms, this would be sort-of **hacking an application to obtain a password** (aka the "flag" in this context) as proof that you have compromised the system.
15+
16+
They are a **fun way** of developing cybersecurity skill sets, as well as to reinforce and learn more new knowledge on hacking and cybersecurity concepts.
17+
18+
Something important to note is that CTFs are **not a realistic overview of day-to-day work that cybersecurity professionals do**. As mentioned, they are meant to be a fun way of testing your knowledge and skills that you possess.
19+
20+
### CTF Formats
21+
22+
These CTF competitions usually occur in two formats --- **Jeopardy and Attack & Defence**.
23+
24+
**Jeopardy** provides participants with a series of challenges of different technical domains for participants to solve and submit the flag to the CTF platform for points.
25+
26+
On the contrary, in an **attack-defense CTF format**, each team is provided with a machine that is **running some vulnerable services**. Participants will have to **exploit these vulnerabilities in the other team's machines to gain points, while fixing their own services so that they won't be attacked**.
27+
28+
## Getting Started ⛳
29+
30+
### Setting up a CTF Environment
31+
32+
The most important thing you need before getting started is your very own Linux environment.
33+
34+
The recommended and straightforward setup would be to download a **pre-built Kali Linux VM** [here](https://www.kali.org/get-kali/#kali-virtual-machines), and download VMWare workstation Pro by following the instructions [here](https://www.mikeroysoft.com/post/download-fusion-ws/).
35+
36+
Alternatively, Windows user can also opt to use [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). **Ensure that you are using WSL2 and not WSL1.**
37+
38+
### Where to find CTFs?
39+
40+
Usually for local CTFs, you have to look out for advertisement blasts nearer to the dates or learn about it via word of mouth.
41+
42+
Usually you can follow the social media of different cybersecurity groups around Singapore to get more news about happenings in the scene.
43+
44+
For CTFs in general, you can find many international CTFs happening almost every weekend on [CTFtime](https://ctftime.org/).
45+
46+
## Learning Resources 📚
47+
48+
There are various kind of resources shared below.
49+
50+
Some of them are more general while most of them are specific to certain cybersecurity domains.
51+
52+
### Good Overall Training Platforms
53+
54+
If you're just looking for some platform to explore and try out and learn some basic CTF skills, these are some good places to start.
55+
56+
They provide beginner guides and beginner-friendly challenges for you to attempt all year round.
57+
58+
- [PicoCTF](https://play.picoctf.org/)
59+
- [Dreamhack](http://dreamhack.io/) - _this contain training resources and challenges for every category mentioned below <3_
60+
61+
### General cybersecurity knowledge
62+
63+
- [WhiteHacks 2021](https://www.notion.so/Whitehacks-2021-b066154e4adb4567a9201b983decee1d) - _good contextual basics for beginners_
64+
- [LiveOverflow YouTube](https://www.youtube.com/watch?v=8ev9ZX9J45A&ab_channel=LiveOverflow) - _for the visual/auditory learners_
65+
66+
An important fundamental in Cybersecurity is getting used to a Linux Terminal. These following resources familiarizes you with navigating around a linux shell.
67+
68+
- [cmdchallenge](https://cmdchallenge.com/)
69+
- [OverTheWire Bandit](https://overthewire.org/wargames/bandit/)
70+
71+
### Reverse Engineering
72+
73+
> Reverse Engineering is typically the process of taking a program and understanding the functionality of a program by converting it to and then understanding the assembly/code behind a program.
74+
{:.prompt-info}
75+
76+
- [omu.rce](https://omu.rce.so/) - _learn about low-level assembly and linux basics_
77+
- [challenges.re](https://challenges.re/) - _a comprehensive book on reverse engineering with practices_
78+
- [crackmes.one](https://crackmes.one/) - _a series of programs to reverse engineer and crack_
79+
80+
### Binary Exploitation / Pwn
81+
82+
> Binary Exploitation involves taking a program, reverse engineering it to identify vulnerabilities within a program, and finally exploiting it in order to get access to a remote system or modifying the functionality of the program.
83+
{:.prompt-info}
84+
85+
- [Nightmare](https://guyinatuxedo.github.io/00-intro/index.html) - _collection of pwn writeups on different topics. learn by examples!_
86+
- [RopEmporium](https://ropemporium.com/index.html) - _guide and practice on some pwn stuff_
87+
- [Pwn College](https://pwn.college/) - _covers all kind of pwn concepts from beginner to advanced_
88+
- [Modern Binary Exploitation](https://github.com/RPISEC/MBE) - _old but gold resources, from [rpisec](https://rpis.ec/about/)_
89+
90+
Abit of a shameless plug, and still empty at the moment but watch this page for a zero to hero pwn guide!
91+
92+
- [my pwndocs](https://pwn.elmo.sg/)
93+
94+
95+
### Forensics
96+
97+
> Forensics is the art of recovering the digital trail left on a computer. There are plently of methods to find data which is seemingly deleted, not stored, or worse, covertly recorded.
98+
{:.prompt-info}
99+
100+
Digital Forensics is typically such a broad topic, and there is no one stop resource to learn about it.
101+
102+
However you can look at [CTF101](https://ctf101.org/forensics/overview/) to see some common topics that you can google and do more research about!
103+
104+
### Cryptography
105+
106+
> Cryptography as a topic is about implementing complex and unbreakable encryption algorithms in order to secure our data online. In CTFs, we look at the math behind these algorithms and find ways to target weaknesses in these algorithms in order to break weak implementations of them. In general, just mathy stuff D:
107+
{:.prompt-info}
108+
109+
- [CryptoHack 🥇](https://cryptohack.org/challenges/) - _one of the most popular and exhaustive crypto platform out there_
110+
- [cryptopals](https://cryptopals.com/)
111+
112+
### Web Exploitation
113+
114+
> Web Exploitation involves finding vulnerabilities in web applications and exploiting it to gain some kind of higher privileges.
115+
{:.prompt-info}
116+
117+
- [PortSwigger 🥇](https://portswigger.net/web-security) - _cover many different classes of web vulnerabilties with practical labs_
118+
- [Lord of the SQLi](https://los.rubiya.kr/) - _deep dive into SQL injection with basic to advanced challenges_
119+
- [Websec.fr](https://websec.fr/) - _another practice platform with web challenges_
120+
121+
### Blockchain Security
122+
123+
> Blockchain involves the auditing of Smart Contracts to find exploitable bugs _(usually more logical bugs unlike pwn)_ that can potentially be used to steal money out of a Smart Contract.
124+
{:.prompt-info}
125+
126+
- [Ethernaut](https://ethernaut.openzeppelin.com/) - _beginner friendly guide to smart contract vulnerabilities with practices_
127+
- [onlypwner.xyz](https://onlypwner.xyz/) - _practice platform with smart contract challenges_
128+
129+
## Tools ⚒
130+
131+
In order to solve different kinds of complicated problems, we have to learn to use different set of tools to approach it.
132+
133+
### Pwn / Binary Exploitation / Reverse Engineering
134+
135+
- [IDA Pro](https://hex-rays.com/ida-pro/) / [Binary Ninja](https://binary.ninja/) / [Ghidra](https://ghidra-sre.org/) - _disassembler/decompiler to reverse engineer any executables_
136+
- [WinDBG](https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/) / [x64dbg](https://x64dbg.com/) - _useful debugger for windows programs_
137+
- [GDB](https://sourceware.org/gdb/) - _debugger for linux programs_
138+
- [PwnDBG](https://github.com/pwndbg/pwndbg) / [GEF](https://github.com/hugsy/gef) - _extensions for GDB which makes it much more usable_
139+
- [PwnTools](https://github.com/gallopsled/pwntools) - _automation when interacting with programs and remote services_
140+
- [one\_gadget](https://github.com/david942j/one_gadget) - _find one gadgets in a program_ (installed with Pwntools)
141+
- [ROPgadget](https://github.com/JonathanSalwan/ROPgadget) - _find ROPgadgets in a program_ (installed with Pwntools)
142+
- [SysInternals Suite](https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite) - _trace what a windows program does when ran_
143+
- [JADX](https://github.com/skylot/jadx) / [JEB](https://www.pnfsoftware.com/) - _decompile android APKs to java code_
144+
- [Angr](https://angr.io/) - _symbolic execution_
145+
- [Unicorn](https://www.unicorn-engine.org/) - _binary emulation_
146+
147+
### Web Exploitation
148+
149+
- [Burpsuite](https://portswigger.net/burp) - _suite of tools to manipulate web traffic_
150+
- [curl](https://curl.se/) / [httpie](https://httpie.io/) - _command line tools to directly send a request to a website_
151+
- [requests](https://pypi.org/project/requests/) / [beautifulsoup](https://pypi.org/project/beautifulsoup4/) - _python libraries to automate website interaction_
152+
- [dirsearch](https://github.com/maurosoria/dirsearch) - _brute force website paths_
153+
154+
### Forensics / Miscellaneous
155+
156+
- [CyberChef](https://gchq.github.io/CyberChef/) - _all kind of byte manipulation_
157+
- [AperiSolve](https://aperisolve.fr/) - _one stop solution to image steganograph_
158+
- [binwalk](https://github.com/ReFirmLabs/binwalk) - _identifying/extracting embedded files_
159+
- [FTK Imager](https://www.exterro.com/digital-forensics-software/ftk-imager) / [Autopsy](https://www.autopsy.com/) - _analyze disk/image files_
160+
- [Wireshark](https://www.wireshark.org/) - _analyze network packet captures_
161+
- [Volatility](https://github.com/volatilityfoundation/volatility3) - _used to analyze memdump of an entire computer_
162+
- [Crackstation](https://crackstation.net/) - _look up known hashes_
163+
- [John](https://www.openwall.com/john/) - _used to brute force hashes_
164+
165+
### Cryptography
166+
167+
- [SageMath](https://www.sagemath.org/) - _python with additional cryptography math functions_

0 commit comments

Comments
 (0)