Classes & Training
Table of Contents
- General Security Classes
- General Sources/Repositories of Classes
- Incident Response and Forensics Training
- Penetration Testing Training
- Programming Classes/Training
- Reverse Engineering Classes/Training
- Exploitation Development Training
- UEFI/BIOS Training
- Web Security Focused Training
- Resources for instructors/Trainers
Classes & Training
- HEADS UP
- General Sources/Repository of Classes
Learning How to Learn
- Free Coursera Course
- About this course: This course gives you easy access to the invaluable learning techniques used by experts in art, music, literature, math, science, sports, and many other disciplines. We’ll learn about the how the brain uses two very different learning modes and how it encapsulates (“chunks”) information. We’ll also cover illusions of learning, memory techniques, dealing with procrastination, and best practices shown by research to be most effective in helping you master tough subjects.
ENISA CERT Exercises and Training
- ENISA CERT Exercises and training material was introduced in 2008, in 2012 and 2013 it was complemented with new exercise scenarios containing essential material for success in the CERT community and in the field of information security. In this page you will find the ENISA CERT Exercise material, containing Handbook for teachers, Toolset for students and Virtual Image to support hands on training sessions.
- People learn from mistakes. In security education, we study mistakes that lead to software vulnerabilities. Studying mistakes from the past not only help students understand why systems are vulnerable, why a "seemly-benign" mistake can turn into a disaster, and why many security mechanisms are needed. More importantly, it also helps students learn the common patterns of vulnerabilities, so they can avoid making similar mistakes in the future. Moreover, using vulnerabilities as case studies, students can learn the principles of secure design, secure programming, and security testing.
Hopper's Roppers Intro to Security
- A free, self-paced curriculum that builds a base of knowledge in computers and networking prior to moving on to the fundamentals of security and defense. The course is intended to build up a student with no prior technical knowledge to be confident in their ability to learn anything and continue their security education.
- Teach Yourself Computer Science
- Technical Development Guide - Google
OSS University - Computer Science
- Path to a free self-taught education in Computer Science!
- List of Computer Science courses with video lectures.
- Secure Software Principles - CSCI 4971, Spring 2010
- Learning How to Learn
- Coursera Cryptography
Matsano Crypto Challenges
- Go through a series of increasingly difficult challenges while learning all about cryptography. Expected knowledge level: You passed 9th grade math and you have 0 knowledge of crypto.
A Graduate Course in Applied Cryptography - Dan Boneh and Victor Shoup
- Version 0.3 - posted Dec. 9, 2016
- Data Science
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.
- Intro to Databases Systems(CMU) / Fall 2019)
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.
- Repository to train/learn memory corruption exploitation on the ARM platform. This is the material of a workshop I prepared for my CTF Team.
- 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
- 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.
- exrs - Binary Exploitation/Reverse Engineering Challenge training
- Incident Response/Forensics/NSM Training
- Machine Learning
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 - CSCI 4976
Mobile Application Security
Mobile Security Trainings
- Mobile security trainings based on android
- Mobile Security Trainings
- 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.
- 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
- Security training aimed towards developers. Free.
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 :).
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.
- SpecterOps Adversary Tactics: PowerShell Course *
- Pentester Lab
asm - 0xAX
- Learning assembly for linux-x64
Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration
- This class serves as a foundation for the follow on Intermediate level x86 class. It teaches the basic concepts and describes the hardware that assembly code deals with. It also goes over many of the most common assembly instructions. Although x86 has hundreds of special purpose instructions, students will be shown it is possible to read most programs by knowing only around 20-30 instructions and their variations.
- Win32 ASM tutorials - Iczelion
Network Examples - knorrie
- Linux networking examples and tutorials
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.
- A repository of Labs and other information for learning how PowerShell can help with infosec
Concepts, Techniques, and Models of Computer Programming
- Textbook and Reference Work
Discrete Mathematics and Functional Programming - Thomas VanDrunen
- This site provides information about and supplemental material for Thomas VanDrunen, Discrete Mathematics and Functional Programming August 2012 by Franklin, Beedle and Associates. (See Franklin Beedle's catalogue entry.)
- Beej's Guide to C Programming
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.
- asm - 0xAX
- Learn RegEx through crosswords
- RegEx Crossword
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
- 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).
- Topics include but are not limited to:
- 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.
- 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.
- Binary Auditing Training - Thorsten Schneider
- UEFI/BIOS Training
Web Security Focused Training
- Google Gruyere - Web Application Exploits and Defenses
- Professionally Evil Web App Pen Testing 101 Course - secureideas
OWASP Broken Web Applications Project
- OWASP Broken Web Applications Project is a collection of vulnerable web applications that is distributed on a Virtual Machine.
- OWASP Juiceshop
- Hacker101 is structured as a set of video lessons -- some covering multiple topics, some covering a single one -- and can be consumed in two different ways. You can either watch them in the order produced as in a normal class (§ Sessions), or you can watch individual videos (§ Vulnerabilities). If you're new to security, we recommend the former; this provides a guided path through the content and covers more than just individual bugs.
- OpenDNS application security training program. This hands-on training lab consists of 10 fun real world like hacking exercises, corresponding to each of the OWASP Top 10 vulnerabilities. Hints and solutions are provided along the way. Although the backend for this is written in PHP, vulnerabilities would remain the same across all web based languages, so the training would still be relevant even if you don’t actively code in PHP.
PortSwigger Web Security Academy
- Free, online web security training from the creators of Burp Suite
- Sunny Wear's Brakeing Down Security Web App Sec Training
Dissecting Industrial Wireless Implementations - DEF CON 25
- 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.
- Dissecting Industrial Wireless Implementations - DEF CON 25
Resources for Instructors and Trainers
- How To Give A Digital Security Training
- Resources for the global digital safety training community.
- Be a Better Trainer
- Teaching Evil - Chris Niemira
- The Distribution of Users’ Computer Skills: Worse Than You Think
Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching - Paul Kirschner, John Sweller, Richard Edward Clark
- Evidence for the superiority of guided instruction is explained in the context of our knowledge of human cognitive architecture, expert–novice differences, and cognitive load. Although unguided or minimally guided instructional approaches are very popular and intuitively appealing, the point is made that these approaches ignore both the structures that constitute human cognitive architecture and evidence from empirical studies over the past half-century that consistently indicate that minimally guided instruction is less effective and less efficient than instructional approaches that place a strong emphasis on guidance of the student learning process. The advantage of guidance begins to recede only when learners have sufficiently high prior knowledge to provide “internal” guidance. Recent developments in instructional research and instructional designmodels that support guidance during instruction are briefly described.
Epistemological Pluralism and the Revaluation of the Concrete - Sherry Turkle and Seymour Papert
- The prevailing image of the computer represents it as a logical machine and computer programming as a technical, mathematical activity. Both the popular and technical culture have constructed computation as the ultimate embodiment of the abstract and formal. Yet the computer's intellectual personality has another side: our research finds diversity in the practice of computing that is denied by its social construction. When we looked closely at programmers in action we saw formal and abstract approaches; but we also saw highly successful programmers in relationships with their material that are more reminiscent of a painter than a logician. They use concrete and personal approaches to knowledge that are far from the cultural stereotypes of formal mathematics.'
"How to teach programming (and other things)?" by Felienne Hermans
- Everyone should learn programming, right? Yes! But how... Should we allow children to explore and learn about syntax on their own, or should we drill programming like we rote memorize the table of multiplication or German grammatical cases? Felienne's talk outlines this history of programming education and didactics beliefs in programming that lead to the prevalence of exploratory forms of teaching, starting with Papert's LOGO. She will then explore programming education in relation to mathematics and language education and explore how rote learning could look like for programming. Felienne will discuss her own research into misconceptions and code phonology as means to teach programming more effectively.
- The case for case studies of programming problems - Marcia C. Linn, Michael J Clancy
- The Effect of Reading Code Aloud on Comprehension: An Empirical Study with School Students - Alaaeddin Swidan, Felienne Hermans
- Constructivism in computer science education - Mordechai Ben-Ari
- Reflections on Teaching Wargame Design - James Fielder(War on the Rocks)