Welcome to pwn.college!
pwn.college is an education platform for students (and other interested parties) to learn about, and practice, core cybersecurity concepts in a hands-on fashion. In martial arts terms, it is designed to take a “white belt” in cybersecurity to becoming a “blue belt”, able to approach (simple) CTFs and wargames. The philosophy of pwn.college is “practice makes perfect”.
pwn.college was created by Zardus (Yan Shoshitaishvili) and kanak (Connor Nelson) at Arizona State University. It powers ASU’s Computer Systems Security course, CSE466, and is now open, for free, to participation for interested people around the world!
Great! How do I jump in?
Interested? You can jump right in!
pwn.college is organized into a series of modules. For each module, students should go through the following process:
- Watch the PRERECORDED MODULE LECTURES on YouTube (for those that prefer offline versions, they are available on Dropbox). These classes represent the bulk of the passive educational content in pwn.college! They give you a starting point from which to approach the practice problems (Step 3, below).
- Attend the LIVE CLASSES Twitch, during ASU’s Fall semester. For those that miss the live classes (or are doing the course sometime other than in the fall), the live classes are initially saved on Twitch and then archived on YouTube. The live classes are used to fill in gaps between prerecorded lectures and answer student questions.
- Solve the CHALLENGE PROBLEMS hosted in the pwn.college dojo. The challenge problems are the active educational component of pwn.college. They are absolutely critical to learning: the lectures give you a starting point for the content, but the challenge problems force you to truly learn it.
- When you run into problems with the challenges, you can GET HELP on our discord server. The discord is also a great place to chat with other aspiring hackers!
If you are following the course live in the Fall semester, regularly-scheduled live streams happen Tuesday and Thursdays 4:30pm to 5:45pm. Please make sure to watch the prerecorded lectures for the relevant module before joining the live streams! We have additional live streams to help students through problems as needed, which we’ll announce in the
announcement channel on discord.
If you have comments, suggestions, and feedback, please email us at firstname.lastname@example.org!
Consider hacking as a martial art. Newcomers begin as white belts, with zero security knowledge. Slowly and painfully, they become yellow belts, able to reason about simple security challenges and start down the road of, for example, CTF competitions. Pushing even forward in that knowledge, understanding how to bypass mitigations and perform complex, multi-stage exploits, makes these students blue belts. Over time, they become more sure in their skills, achieving brown belt status (and able to, for example, contribute to the cybersecurity industry), before finally graduating to hacking masters: black belts.
pwn.college is meant for white belts. If you already know the basics of hacking (and, thus, are a yellow belt), you will find this resource very easy. If you are a brown belt, you will find it quite boring. If you are a black belt, it will put you to sleep.
That being said, just because the material is for beginners does not mean that the concepts are basic. The course tackles complex concepts, up to and including the inner working of OS kernels. Good Computer Organization and OS courses covering the following are recommended.
- C programming.
- C compilation.
- x86_64 assembly.
- OS internals (system calls, etc).
- Linux operations (FS layout, permissions, shell scripting, etc).
Though pwn.college has an introduction module that covers some fundamentals, a lack of knowledge in these areas will lead to heavy difficulties in the course.
pwn.college is organized as a set of modules covering different topics. Each module has a set of lecture slides and videos and practice problems auto-generated for each aspiring hacker to practice on. Challenges come in a teaching variety, which will walk you through their own solutions, and a testing variety, which will challenge you with less guidance. Challenges are run directly on pwn.college, and can be launched in practice mode, where you have root access but there is a fake flag, and real mode, where you cannot read the flag without exploiting the challenge.
This year’s modules will launch alongside the progress of ASU’s Fall 2021 CSE466 class. Modules will be launched on more or less a weekly basis!
This year’s modules that have launched:
- Module 0: Introduction
- Module 1: Program Interaction
- Module 2: Program Misuse
- Module 3: Assembly Refresher
- Module 4: Shellcoding
- Module 5: Sandboxing
- Module 6: Debugging Refresher
- Module 7: Binary Reverse Engineering
- Module 8: Memory Errors
- Module 9: Exploitation
- Module A: Return Oriented Programming
- Module B: Dynamic Allocator Misuse
- Module C: Race Conditions
- Module D: Kernel Security
- Module E: Advanced Exploitation
Modules from prior years that have not yet launched this year (or that have been retired) are archived for the interested and impatient:
This course turns hacker white belts into yellow belts and then refines them into blue belts. This is not just metaphor: we have actual belts, in yellow and blue, custom-embroidered for pwn.college.
How to earn a yellow belt? For a yellow belt, you must complete all active challenges through Module 9 (Exploitation).
How to earn a blue belt? For a blue belt, you must complete all active challenges on pwn.college!
How to get the actual belt? To get your belt, send us an email from the email address associated with your pwn.college account once you’ve completed the necessary challenges. We’ll then get your belt over to you!
Collaboration, Livestream, and Writeup Policy
The challenges created for pwn.college are educational material, and are used to grade CSE466 students at ASU. Because of this, we would appreciate that writeups, walkthrough videos, and livestreams of challenge solutions are not posted to the internet. Obviously, we can’t enforce this, but we worked hard to make all of this public, and we would appreciate your help in keeping pwn.college a viable educational platform.
Exceptions: Really passionate about making walkthrough videos/streams/writeups? We got you covered! Feel free to do walkthroughs of the first two levels of every module, as well as level 16 of the Reverse Engineering module!
If you email us a link to your video or writeup, we will link it from the relevant module page!
After you learn the basics of cybersecurity and earn your blue belt, you should move on to harder challenges.
Capture The Flags (CTFs) are a great way to practice your hacking skills in a fun and ethical way. The most popular way to find upcoming events is at https://ctftime.org. There is also a list of introductory CTFs here. If you are at ASU, feel free to check out and join ASU’s enigmatic hacking club.
Wargames are another great way to practice your hacking skills. Whereas CTFs are short (normally 48 hour) events, wargames are not time-based. You can find a list of wargames at https://github.com/zardus/wargame-nexus.
If you want to get involved with cybersecurity research, but don’t know how, consider joining us for an internship at ASU.
Reusing pwn.college Material
Want to use pwn.college in your course? You can!
The videos and slides of pwn.college lectures are licensed under CC-BY. You can use them freely, but please provide attribution! Additionally, if you use pwn.college in your own education program, we would appreciate it if you email us to let us know. Evidence of wide-spread use of pwn.college for education will be a huge help for Yan’s tenure case!
EDUCATORS: If you are an educational institution and are using pwn.college as part of a class, you can request a (free) private instance of the infrastructure! Please email us to ask!
CONFERENCES: If you are running a conference and would like pwn.college presense there (as a form of intense weekend-long traning), please email us!
The infrastructure powering pwn.college and the web-facing content are open source, and we welcome pull requests and issues. The modules are closed-source, because they include source code and solution scripts. If you are an educator, or otherwise someone we trust, and are interested in collaborating on the modules themselves, please email us at email@example.com. Likewise, drop us a line if you are interested in collaborating on the slides!
Team work makes the dream work, and the team behind pwn.college is full of dreamers! They are:
- Zardus (Yan Shoshitaishvili) originated the idea, created the initial prototype and many of the challenges, and continues to cajole everyone else into a shared vision!
- kanak (Connor Nelson) made the mistake of signing up to TA an “easy A” course and quickly found himself reimplementing Yan’s insane code into the amazing dojo you see today, along with the creation of many challenges.
- mahaloz (Zion Basque) for contributing ROP challenges and embryoasm to pwn.college.
- Erik Trickel for helping in the development of pedagogical concepts underlying pwn.college.
- Adam Doupe for helping in the brainstorming of the initial concept.
- redgate, for contributing to embryoasm.
- Pascal-0x90, for contributing to embryoasm.
- frqmod, for contributing embryogdb.