Welcome to pwn.college!
pwn.college is a first-stage education platform for students (and other interested parties) to learn about, and practice, core cybersecurity concepts in a hands-on fashion. 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!
pwn.college is hosted across a number of internet services:
- LECTURES: We record our lectures on YouTube (for those that prefer offline versions, they are available on Dropbox).
- OFFICE HOURS: We stream our classes on Twitch during the fall semester (over for 2020), along with office hours and prerecorded lecture streams.
- CHALLENGES: We host practice problems on our infrastructure.
- DISCORD: We collaborate on discord!
- MAILING LIST: We answer questions about pwn.college on the public google group.
- OPEN SOURCE: We host our open source on GitHub.
Stream Schedule from August through November (NOTE: PLEASE make sure to watch all the module videos before the Wednesday stream!):
- COMING BACK AUGUST 2021: Module video stream (pre-recorded): weekly on Twitch.
- COMING BACK AUGUST 2021: Extended module Q&A, auxiliary lecturing, and collaborative problem solving (live): weekly on Twitch.
- COMING BACK AUGUST 2021: Yan’s office hours (live): weekly on Twitch.
- COMING BACK AUGUST 2021: Connor’s office hours (live): weekly on Twitch.
All streams are open to THE WORLD! ASU students will get a private voice channel, but everyone can ask questions on twitch.
If you have other comments, suggestions, and feedback, please email us at email@example.com!
Who is this for? (prerequisites)
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.
How do I jump in?
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.
pwn.college has come out of beta, and modules are being launched alongside the progress of ASU’s Fall 2020 CSE466 class. So far, the following modules are live:
- Module 0: Introduction
- Module 1: Program Misuse
- Module 2: Shellcode
- Module 3: Sandboxing
- Module 4: Binary Reverse Engineering
- Module 5: Memory Errors
- Module 6: Exploitation
- Module 7: Return Oriented Programming
- Module 8: Kernel Introduction
- Module 9: Dynamic Allocator Misuse
- Module 10: Race Conditions
- Module 11: Advanced Exploitation
- Module 12: Automatic Vulnerability Discovery
Modules will be launched on a weekly basis (except for binary reverse engineering, which has been extended to two weeks)! If you are impatient, you can check out archived modules from the pwn.college beta at the bottom of the page.
Earning Your Belts
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 6 (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:
- Program Misuse (Module 1): levels 1 and 2
- Shellcode (Module 2): levels 1 and 2
- Sandboxing (Module 3): levels 1 and 2
- Binary Reverse Engineering (Module 4): levels 1 and 2, and 14
- Memory Errors (Module 5): levels 1 and 2
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 achieve yellow belt status, 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 CTF club pwndevils at https://pwndevils.com.
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 firstname.lastname@example.org. Likewise, drop us a line if you are interested in collaborating on the slides!
We’d like to extend a special thanks to some people who’ve helped make pwn.college the success that it is!
- mahaloz (Zion Basque) for contributing challenges 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.
ARCHIVED MODULES FROM THE PWN-COLLEGE BETA
The pwn-college beta was announced at HITCON 2019 and ran until August 2020. The only old material that was not included in the Fall 2020 edition is: