Course Provided By:: Offensive Computer Security 2.0 Syllabus
Course Provided By:: Offensive Computer Security 2.0 Syllabus
0 SYLLABUS
Course provided by:
http://hackallthethings.com/
http://howto.hackallthethings.com/2016/07/learning-exploitation-with-offensive.html#Schedule
This courseware has been adopted by educators at over 20 universities around the world.
Students who complete the professional course with a grade of 70% or higher will earn the certificate
titled Hack All The Things "Certified Vulnerability Analyst". Upon successful completion of the
certificate, the student will:
● Have found their own 0-day vulnerability and ethically disclosed it.
● Know how to identify software flaws discovered through binary and source code auditing
● Know how to reverse engineer x86 binaries
● Know how to exploit software flaws (such as injection flaws, buffer overflows)
● Know how to perform network and host enumeration, as well as OS and service
fingerprinting
● Know how to perform network vulnerability analysis, penetration and post exploitation
● Know how to effectively report and communicate all of the above flaws
We have meticulously crafted the course challenges and exercises to accomplish these objectives.
The unique exercise of having students find and responsibly disclose a 0-day vulnerability proves
that they can:
1. Find new vulnerabilities,
2. Prove they are in fact vulnerabilities, and
3. Communicate them effectively to get them patched.
These activities are core functions of a typical vulnerability analyst, and are a main theme of the
course.
Rationale:
Modern professional cybersecurity training and certification heavily focuses on teaching students to
use select tools, which is a flawed approach that produces inflexible skills destined to be obsoleted
with the tool. Additionally, it is rare for university courses or professional workshops to focus on the
deep underlying fundamentals and equip students to be able to manually solve offensive
cybersecurity issues, or write their own tools to automate the task. This course is motivated by both
of these problems and presents a rigorous, hands-on, and ethical deep-dive into the offensive side
of cybersecurity. The course objectives are accomplished by exposing the student to realistic
challenges they would be expected to face without support from any tool in a professional setting.
Instructors:
Required Textbooks:
Suggested Textbooks:
The following textbooks are suggested for any student who seeks advanced resources to
supplement the knowledge presented in this course:
● Kozoil, Jack. “The Shellcoder's Handbook: Discovering and Exploiting Security Holes“.
● Seacord, Robert C. “Secure Coding in C and C++, Second Edition”.
Prerequisites:
This is a highly technical class. We expect students to have a strong technical background before
taking this course. Students who have not taken a security class before or whom are otherwise
unfamiliar with computer security will not be able to complete this class. Specifically, students
should satisfy at least two of the following:
1) Assembly code (Intel X86 preferred)
2) Knowledge of Computer Security basics
3) Familiarity with operating system kernel/internals (windows or linux)
4) Familiarity with command line operation of Windows AND Linux
Grading:
All homework, projects, and assignments are individual work only. No collaboration is allowed.
Discussion of material is encouraged, but discussion of answers is prohibited.
● Homeworks: 55%
○ HW 1-4 & 6-10 are 5% each
○ HW 5 is 10%
● Midterms: 30%
● Final Exam: 15%
This class will involve regular homeworks that will assess the student’s knowledge of materials on a
frequent basis. Homeworks will often expose students to tools related to subjects, and require the
student to use the tools to solve problems. Homework 5 is a small project, and may take the span of
the course to complete.
It should be noted that there is no late penalty, or due date for any assignment. The course is
entirely self-paced, as many students have full time jobs while taking this course. If students are
willing to dedicate 5-10 hours per week, they can easily follow the below schedule listed in the
Suggested Course Calendar. Otherwise for those who dedicate < 5 hours per week it may take
longer, usually around 6 months.
Extra Credit:
1) Involvement in CTF's (see https://ctftime.org/ for a CTF schedule). A writeup for solved
challenges worth 300 points or more is expected for a jeopardy style CTF.
Week 1:
Week 2:
Week 3:
Week 4:
Week 5:
Week 6:
● Midterm Exam 1
○ (You should have homeworks 1-3 completed prior)
● Lecture 11: Advanced Vulnerability Analysis Topics
○ Start HW 5 (Time to complete: The entire semester/ course)
Week 7:
Week 8:
Week 9:
● Lecture 16: Networking 102 (Application layer)
● Lecture 17: Web Application Hacking 101
○ Start HW 8 (Time to complete 3 weeks)
Week 10:
Week 11:
● Lecture 20: Web Application Hacking 104 & Exploit Development 104
● Lecture 21:Exploit Development 105
○ Lecture 21b: Midterm 2 Review
■ Study for Midterm 2
Week 12:
Week 13:
Week 14:
Week 15:
● Final Exam
Original CREATOR:
1. W. Owen Redwood, Ph.D.
Joshua Lawrence,
Abdullah Raiaan,
Mitch Adair,
Devin Cook,
Jason Reynolds