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 “yellow 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.
- OFFICE HOURS: We stream our classes on Twitch every Wednesday from 4:30pm to 7:30pm AZ time, along with office hours and prerecorded lecture streams.
- CHALLENGES: We host practice problems on our infrastructure.
- MAILING LIST: We answer questions about pwn.college on the public google group.
- DISCORD: We collaborate on discord!
Stream Schedule (NOTE: PLEASE make sure to watch all the module videos before the Wednesday stream!):
- Module video stream (pre-recorded): Wednesdays at 2:30pm on Twitch.
- Extended module Q&A, auxiliary lecturing, and collaborative problem solving (live): Wednesdays at 4:30pm on Twitch.
- Yan’s office hours (live): Mondays at 3:00pm on Twitch.
- Connor’s office hours (live): Fridays at 2:00pm 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. 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 CHALLENGES LAUNCHING 12/3
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.
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!
ARCHIVED MODULES FROM THE PWN-COLLEGE BETA
The pwn-college beta was announced at HITCON 2019 and ran until August 2020. All of the old material is still available below: