Classes & Training


Table of Contents


Classes & Training

  • Computer Science
  • Containers
    • Attacking and Auditing Docker Containers and Kubernetes Clusters
      • This course will set the base for security testers and DevOps teams to test for common security vulnerabilities and configuration weaknesses across containerised environments and distributed systems. It also helps to understand approach and process to audit the Kubernetes environment for security posture. The courseware is meant to introduce participants to container and cluster management with Kubernetes.
  • Cryptography
  • Data Science
  • Databases
    • Intro to Databases Systems(CMU) / Fall 2019)
      • Site page
      • This course is on the design and implementation of database management systems. Topics include data models (relational, document, key/value), storage models (n-ary, decomposition), query languages (SQL, stored procedures), storage architectures (heaps, log-structured), indexing (order preserving trees, hash tables), transaction processing (ACID, concurrency control), recovery (logging, checkpoints), query processing (joins, sorting, aggregation, optimization), and parallel architectures (multi-core, distributed). Case studies on open-source and commercial database systems are used to illustrate these techniques and trade-offs. The course is appropriate for students with lit systems programming skills.
    • CS 186: Introduction to Database Systems - Berkely(Spring2020)
  • Exploit Development Training
    • exrs - Binary Exploitation/Reverse Engineering Challenge training
      • Exercises for learning Reverse Engineering and Exploitation. All binaries for these challenges are ELF 64-bit LSB executable, x86-64.
    • BFH Exploiting & Defense Course - Dobin Rutishauser
    • Modern Binary Exploitation - CSCI 4968 - Spring '15
      • The course will start off by covering basic x86 reverse engineering, vulnerability analysis, and classical forms of Linux based userland binary exploitation. It will then transitionin to protections found on modern systems(Canaries, DEP, ASLR, RELRO, FortifySource, etc) and the techniques used to defeat them.Time permitting, the course will also cover other subjects in exploitation including kernel land and Windows based exploitation.
    • Modern Binary Exploitation - CSCI 4968
      • This repository contains the materials as developed and used by RPISEC to teach Modern Binary Exploitation at Rensselaer Polytechnic Institute in Spring 2015. This was a university course developed and run solely by students to teach skills in vulnerability research, reverse engineering, and binary exploitation.
    • armpwn
      • Repository to train/learn memory corruption exploitation on the ARM platform. This is the material of a workshop I prepared for my CTF Team.
    • BinTut
      • Dynamic or live demonstration of classical exploitation techniques of typical memory corruption vulnerabilities, from debugging to payload generation and exploitation, for educational purposes
    • CNIT 127: Exploit Development - samsclass(Fall2019)
      • "Learn how to find vulnerabilities and exploit them to gain control of target systems, including Linux, Windows, Mac, and Cisco. This class covers how to write tools, not just how to use them; essential skills for advanced penetration testers and software security professionals." Student Learning Outcomes: 1. Read and write basic assembly code routines; 2. Find stack overflow vulnerabilities and exploit them; 3. Evade filters and other Windows defenses
    • Advanced Exploitation and Rootkit Development, CSCI Spring 2013
    • Windows Exploitation, CSCI Spring 2014
      • Abstract: As of January 2014, the Microsoft Windows operating system series maintains over a 90% market share in the global market of computing1 . This fact alone helps explain why Windows is the most commonly targeted platform for malicious exploitation by hackers, organizations, and nation states alike. With years of relentless exploitation, great strides have been made by Microsoft in securing their operating system through numerous exploit mitigation techniques from the Windows XP era onwards. This course will explore the tools, a number of mitigations, and their associated bypass techniques that are utilized in most modern exploits on the Windows platform. The outcome of this course will leave one with the ability to analyze real world vulnerabilities and develop reliable exploits from end to end for Windows XP – Windows 7 systems.
    • 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.
  • Incident Response/Forensics/NSM Training
  • Linux
    • Kernel
      • Linux Kernel Teaching - linux-kernel-labs
        • This is a collection of lectures and labs Linux kernel topics. The lectures focus on theoretical and Linux kernel exploration. The labs focus on device drivers topics and they resemble “howto” style documentation. Each topic has two parts: a walk-through the topic which contains an overview, the main abstractions, simple examples and pointers to APIs, and a hands-on part which contains a few exercises that should be resolved by the student; to focus on the topic at hand, the student is presented with a starting coding skeleton and with in-depth tips on how to solve the exercises This content is based on the Operatings Systems 2 course from the Computer Science and Engineering Department, the Faculty of Automatic Control and Computers, University POLITEHNICA of Bucharest. You can get the latest version at http://github.com/linux-kernel-labs.
  • Machine Learning
  • Malware Analysis
    • CS6038/CS5138 Malware Analysis, UC
      • This class will introduce the CS graduate students to malware concepts, malware analysis, and black-box reverse engineering techniques. The target audience is focused on computer science graduate students or undergraduate seniors without prior cyber security or malware experience. It is intended to introduce the students to types of malware, common attack recipes, some tools, and a wide array of malware analysis techniques.
    • Malware Analysis - CSCI 4976
      • This repository contains the materials as developed and used by RPISEC to teach Malware Analysis at Rensselaer Polytechnic Institute in Fall 2015. This was a university course developed and run soley by students, primarily using the Practical Malware Analysis book by Michael Sikorski and Andrew Honig, to teach skills in reverse engineering, malicious behaviour, malware, and anti-analysis techniques.
      • Malware Analysis - CSCI 4972/6963, Spring 2013
    • Malware-Analysis-Training
      • Retired beginner/intermediate malware analysis training materials from @pedramamini and @erocarrera. This course was last given in 2010 and the materials were open sourced in 2020. Written in LaTeX + Beamer, the course materials can be rendered in slideshow and article modes. This course was designed for students who have an introductory / basic understanding of x86 assembly and reverse engineering as well as more advanced students wishing to refresh their skills and learn new approaches to familiar problems. The course will cover the basics of x86 assembly and pattern recognition, Windows process memory layout, tools of the trade (such as IDA Pro and OllyDbg), the PE file format and basic exploitation methodologies abused by worms to penetrate a target system (stack/heap overflows). As this course is focused on malicious code analysis, students will be given real-world virus samples to reverse engineer. The details of executable packing, obfuscation methods, anti-debugging and anti-disassembling will be revealed and re-enforced with hands-on exercises.
  • Mobile Application Security
  • Networking
    • CS 144: Introduction to Computer Networking, Fall 2019
    • Introduction to Computer Networking(Stanford) - Philip Levis, Nick McKeown
      • This is a self-paced introductory course on computer networking, specifically the Internet. It focuses on explaining how the Internet works, ranging from how bits are modulated on wires and in wireless to application-level protocols like BitTorrent and HTTP. It also explains the principles of how to design networks and network protocols. Students gain experience reading and understanding RFCs (Internet protocol specifications) as statements of what a system should do. The course grounds many of the concepts in current practice and recent developments, such as net neutrality and DNS security. A textbook is recommended, but not required: you can use either Peterson and Davie or Kurose and Ross, any version in the past 5 years will do.
    • CS 155: Computer and Network Security - Stanford(Spring2020)
    • Network Examples - knorrie
      • Linux networking examples and tutorials
    • High Performance Browser Networking - Ilya Grigorik
      • Performance is a feature. This book provides a hands-on overview of what every web developer needs to know about the various types of networks (WiFi, 3G/4G), transport protocols (UDP, TCP, and TLS), application protocols (HTTP/1.1, HTTP/2), and APIs available in the browser (XHR, WebSocket, WebRTC, and more) to deliver the best—fast, reliable, and resilient—user experience.
  • Penetration Testing
    • Pentester Lab
      • PentesterLab provides vulnerable systems that can be used to test and understand vulnerabilities.
    • FSU Offensive Security 2014
      • Florida State University Offensive Security 2014 Class materials
    • FSU Offensive Security 2013
      • Florida State University Offensive Security 2013 Class materials
    • HackSplaining
      • Security training aimed towards developers. Free.
    • Cloud
      • Breaking and Pwning Apps and Servers on AWS and Azure - Appsecco
        • The training covers a multitude of scenarios taken from our vulnerability assessment, penetration testing and OSINT engagements which take the student through the journey of discovery, identification and exploitation of security weaknesses, misconfigurations and poor programming practices that can lead to complete compromise of the cloud infrastructure. The training is meant to be a hands-on training with guided walkthroughs, scenario based attacks, coverage of tool that can be used for attacking and auditing. Due to the attack, focused nature of the training, not a lot of documentation is around security architecture, defence in depth etc. Additional references are provided in case further reading is required.
    • 'Network' Pentesting
      • Beginner Network Pentesting - The Cyber Mentor
        • Welcome to the Beginner Network Pentesting course. Previously, the course was delivered weekly on Twitch and built from lessons learned in the previous week. The course provides an opportunity for those interested in becoming an ethical hacker / penetration tester the chance to learn the practical skills necessary to work in the field. Throughout the course, we will develop our own Active Directory lab in Windows, make it vulnerable, hack it, and patch it. We'll cover the red and blue sides. We'll also cover some of the boring stuff like report writing :).
    • PowerShell
    • Web
      • Penetration Test Guide based on the OWASP + Extra
        • This guid[e] is for the penetration testers seeking for the appropriate test cases required during a penetration test project. I rearranged the OWASP Testing Guide v4 from my point of view including 9 Test Classes and each class has several Test Cases to conduct against the target. Each Test Case covers several OWASP tests which also is useful for the report document. I've also added 14 extra Tests Cases marked by the EXTRA-TEST. I hope it will be useful in both penetration test projects and bug-bounty.
  • Product Management
    • Software Product Management Specialization - University of Alabama(Coursera)
      • In this Software Product Management Specialization, you will master Agile software management practices to lead a team of developers and interact with clients. In the final Capstone Project, you will practice and apply management techniques to realistic scenarios that you will face as a Software Product Manager. You will have the opportunity to share your experiences and learn from the insights of others as part of a Software Product Management
  • Programming Classes/Courses
    • ASM
    • C
    • Computer Science
    • Secure Coding
      • Introduction to Secure Coding - Andrew Buttner, Larry Shields
        • The purpose of this course is to provide developers with a short, focused primer related to secure coding. The hope is that each developer will leave the course with a better understanding of how they can improve, from a security perspective, the code that they write. This course provides a look at some of the most prevalent security related coding mistakes made in industry today. Each type of issue is explained in depth including how a malicious user may attack the code, and strategies for avoiding the issues are then reviewed. Knowledge of at least one programming language is required, although the specific programming language is not important as the concepts that will be discussed are language independent. The course will cover many of the weaknesses within the context of a web application, but most of the concepts will apply to all application development.
      • Secure Code Review - Andrew Buttner, Mark Davidson
        • This course is designed to help developers bring a secure coding mindset into typical project peer reviews. The course briefly talks about the development lifecycle and the importance of peer reviews in delivering a quality product. How to perform this review is discussed and how to keep secure coding a priority during the review is stressed. A variety of hands-on exercises will address common coding mistakes, what to focus on during a review, and how to manage limited time. Throughout the course, the class will break out into pairs and perform example peer reviews on sample code. Perl will be used for the hands-on exercises; however every attempt will be made to generalize the code such that anyone with an understanding of a coding language will be comfortable.
      • Pushing Left, Like a Boss - Train the Trainer
        • This is a “Train the Trainer” document, to be used by someone who wants to present this talk for an audience.
    • Development
      • Software Development Lifecycle Specialization - University of Minnesota(Coursera)
        • This Specialization is designed for people who are new to software engineering. It's also for those who have already developed software, but wish to gain a deeper understanding of the underlying context and theory of software development practices. At the end of this Specialization, we expect learners to be able to: 1.) Build high-quality and secure software using SDLC methodologies such as agile, lean, and traditional/waterfall.; 2.) Analyze a software development team's SDLC methodology and make recommendations for improvements.; 3.) Compare and contrast software development methodologies with respect to environmental, organizational, and product constraints.
      • Secure Software Principles - CSCI 4971, Spring 2010
    • Functional Programming
    • 'Low-Level'
      • Low-Level Programming University
        • This page is for beginners who want to be low-level programmers. I'm inspired by google-interview-university. I'd like to share my experience and show a roadmap to becoming a low-level programmer because I have found that these skills are not as common as they once were. In addition, many students and beginners ask me how they could become low-level programmers and Linux kernel engineers.
    • PowerShell
    • Python
      • [Introduction to Computer Science and Programming in Python - MIT(Fall2016)]](https://www.youtube.com/playlist?list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA)
    • Scheme
      • Simply Scheme: Introducing Computer Science - Brian Harvey, Matthew Wright
        • Below this short table of contents is an expanded table of contents including sections within each chapter. Click on the chapter name to jump down. You can also download the complete text of each chapter in PDF format for elegant printing, or browse the HTML version. Part introductions are included in the PDF of the following chapter. Projects are included in the PDF of the preceding chapter.
  • Red-Team
    • Red Team Operations with Cobalt Strike (2019) - Raphael Mudge
      • Red Team Operations with Cobalt Strike is a course on Adversary Simulations and Red Team Operations. Learn how to stand up sophisticated command and control infrastructure, weaponize a payload, send a phishing email, conduct post-exploitation, evade defenses, escalate privileges, take over an Active Directory domain, and tunnel tools and attacks through compromised systems.
  • Regular Expressions
  • Reverse Engineering
    • Binary Auditing Training - Thorsten Schneider
      • The training package includes all necessary files to run a complete lecture for Binary Auditing and Reverse Code Engineering at university. All files are well sorted by topics and with increasing difficulty. You need Windows XP, Windows Vista or Windows 7 to use this training package. The training package does NOT include runnable viruses!
    • exrs - Binary Exploitation/Reverse Engineering Challenge training
      • Exercises for learning Reverse Engineering and Exploitation. All binaries for these challenges are ELF 64-bit LSB executable, x86-64.
    • mammon_'s tales to his grandson - Reverse Engineering
    • Software Modeling and Verification - Static Analysis
    • The Life of Binaries
      • Topics include but are not limited to:
        • Scanning and tokenizing source code.
        • Parsing a grammar.
        • Different targets for x86 assembly object files generation. (E.g. relocatable vs. position independent code).
        • Linking object files together to create a well-formed binary.
        • Detailed descriptions of the high level similarities and low level differences between the Windows PE and Linux ELF binary formats. (NOTE: we didn't get to this in the class where the video was recorded, but the materials are in the slides)
        • How an OS loads a binary into memory and links it on the fly before executing it.
        • Along the way we discuss the relevance of security at different stages of a binary’s life, from the tricks that can be played by a malicious compiler, to how viruses really work, to the way which malware “packers” duplicate OS process execution functionality, to the benefit of a security-enhanced OS loader which implements address space layout randomization (ASLR).
    • Introduction to Reverse Engineering Software - Dartmouth
    • CSCI 4974 / 6974 Hardware Reverse Engineering
    • Reverse Engineering 101 - MalwareUnicorn
    • Reverse Engineering 102 - MalwareUnicorn
    • Binary Analysis Course - Max Kersten
      • This course starts at the very start, where it is assumed that the reader has little to no low level knowledge. It is expected that the reader is able to understand basic programming aspects such as functions/methods, variables, types and system calls. Unlike most courses, this course aims to only use free and open-source software. This way, everybody can participate and follow the course, whereas most other courses are focused on proprietary tools which cost up to thousands of dollars. This won’t exclude such tools from being used in additional examples later on, but they will not be used as the sole tool in an example. As the course progresses, the material gets more in-depth and complex. Throughout the chapters, there are practical cases included. These cases serve two purposes. Firstly, the reader is greeted with a puzzle every once in a while, instead of pure theory. Secondly, it provides insight in the reader’s learning curve with the help of a given case.
    • Reverse-Engineering-Intel-x64-101
      • Material for a RE 101 class on Intel x64 binaries
    • Android App Reversing 101 - Maddie Stone
    • Program Obfuscation, Fall 2013 - CSCI
      • The issue of program protection has never been more relevant. Commerical software companies need techniques to protect their intellectual property, malware authors try to slow the down the process of reversing and detecting their creations, and nation-states are creating cyber-weapons that they do not want reverse engineered and repurposed. Program protection is has two main approaches, tamper-resistance and obfuscation. Tamperresistance focuses on the detection and corruption of tools used to analyze programs. Obfuscation focuses on making a program hard to understand, even when under flawless analysis tools. Tamper-resistance techniques tend to be an arms race, of one off tricks versus analysis tool updates. Obfuscation offers a much more stable and provably secure avenue in which to protect programs. Obfuscation is thorougly grounded in the formal methods and proofs of cryptography. The only distinction between obfuscation and cryptography is the location of the key. In cryptography, the key is outside the system or data under analysis. In obfuscation, the obfuscated data and key are together, making it a challenging problem of its own. It is the difficulty of provable security and the great need program protection in the current day, that make this class relevant and necessary. In this readings class, we will focus on 15 of the most important works in program obfuscation. We will attain thorough understanding of these papers through paper reviews, discussion, and a project implementing an obfuscation scheme from one of the papers.
    • Advanced Binary Deobfuscation(2020)
      • This repository contains the course materials of Advanced Binary Deobfuscation at the Global Cybersecurity Camp (GCC) Tokyo in 2020. Reverse engineering is not easy, especially if a binary code is obfuscated. Once obfuscation performed, the binary would not be analyzed accurately with naive techniques alone. In this course, you will learn obfuscation principles (especially used by malware), theory and practice of obfuscated code analysis, and how to write your own tool for deobfuscation. In particular, we delve into data-flow analysis and SAT/SMT-based binary analysis (e.g., symbolic execution) to render obfuscation ineffective.
  • Security (Awareness) Training
    • Security Training for Engineers - Pagerduty
      • This is an open-source version of "Security Training for Engineers", PagerDuty's internal technical security training, open to all PagerDuty employees as part of our continuous security training program. Unlike our course for everyone, this course covers more technical topics and is more applicable to those in an engineering role. While it delves into various technical topics, it has been designed in such a way as it should be useful regardless of your skill level, whether you've just started your engineering career, or you've been doing this for years. While some of the material we present internally contains sensitive PagerDuty information, the majority consists of generic security lessons, presented in a light-hearted and informative way. Many employees asked for a version of the training they could share with friends and family. This site is the culmination of our efforts to do just that.
  • Threat Hunting
    • Flow Analysis & Network Hunting
      • This course focuses on network analysis and hunting of malicious activity from a security operations center perspective. We will dive into the netflow strengths, operational limitations of netflow, recommended sensor placement, netflow tools, visualization of network data, analytic trade craft for network situational awareness and networking hunting scenarios.
  • Threat Intelligence
  • UEFI/BIOS Training
  • Web Security Focused Training
  • Wireless
    • Dissecting Industrial Wireless Implementations - DEF CON 25
      • https://github.com/vortessence/vortessence
    • RFID INFOSEC
      • RFID INFOSEC is designed to teach undergraduate students about radio frequency identification (RFID) information systems security (INFOSEC). It provides a system-wide description of a RFID system using a layered reference model that describes the tag, media interface, reader, network, middleware, and application layers. In addition, it addresses RFID security and privacy threats, risks, and mitigation techniques. These materials include lesson plans, slides, homework, laboratories, and assessment rubrics organized into modules.
  • Resources for Instructors and Trainers