2-DAY TRAINING 5 – Pwn & Fix JS apps, shells, injections and fun!

DURATION: 2 DAYS

CAPACITY: 20 pax

SEATS AVAILABLE: 20


EUR1899 (early bird)

EUR2599 (normal)

Early bird registration rate ends on the 31st of January


Overview

This course is the culmination of years of experience gained via practical penetration testing of JavaScript applications as well as countless hours spent doing research. We have structured this course around the OWASP Security Testing Guide, it covers the OWASP Top Ten and specific attack vectors against Electron and Node.js apps. This course provides participants with actionable skills that can be applied immediately from day 1.

Please note our courses are 90%+ hands-on, we do not lecture students with boring bullet points and theories, instead we give you practical challenges and help you solve them, teaching you how to troubleshoot common issues and get the most out of this training. Training then continues after the course through our frequently updated training portal, for which you keep lifetime access, as well as unlimited email support.

Each day starts with a brief introduction to the JavaScript platform (i.e. Node.js, Electron) for that day and then continues with a look at static analysis, moves on to dynamic checks finishing off with a nice CTF session to test the skills gained.

Day 1: Focused specifically on Node.js: We start with understanding the platform and then deep dive into static and dynamic analysis of the applications at hand. This day is packed with hands on exercises and CTF-style challenges.

Day 2: Focused on Electron: We start with understanding Electron and various security considerations. We then focus on static and dynamic analysis of the applications at hand. The day is filled with hands on exercises ending with a CTF for more practical fun.

Key Learning Objectives

This course will take any student and make sure that:

  • The general level of proficiency is much higher than when they came
  • The skills acquired can be immediately applied to Node.js/Electron app security assessments
  • Skills can be sharpened via continued education in our training portal for free
  • The student is equipped to defeat common Node.js and Electron app assessment challenges
  • People who are new to JavaScript security will learn a lot in this training.
  • Advanced students will come out with enhanced skills and more efficient workflows
  • The skills gained are highly practical and applicable to real-world assessments

Attendees will be provided with

  • Lifetime access to training portal, with all course materials
  • Unlimited access to future updates and step-by-step video recordings
  • Unlimited email support, if you need help while you practice at home later
  • Interesting vulnerable apps to practice
  • Digital copies of all training material
  • Custom Build Lab VMs
  • Purpose Build Vulnerable Test apps
  • Source code for test apps

Who Should Attend

Any Node.js/Electron/JavaScript developer, penetration tester or person interested in Node.js, Electron JavaScript security will benefit from attending this training regardless of the initial skill level:

This course is for beginners, intermediate and advanced level students. While beginners are introduced to the nuances of Node.js and Electron app security from scratch, intermediate and advanced level learners get to perfect both their knowledge and skills on the subject. Extra mile challenges are available in every module to help more advanced students polish their skills.

The course is crafted in a way that regardless of your skill level you will significantly improve your JavaScript security skills:

If you are new and cannot complete the labs during the class, that is OK, as you keep training portal access, you will learn a lot in the class but can continue from home with the training portal.

If you are more advanced in JavaScript security you can try to complete the labs in full and then take the CTF challenges we have for each day, you will likely also attempt to complete some exercises from home later :

Prerequisite Knowledge

  • This course has no prerequisites as it is designed to accommodate students with different skills:
    • Advanced students will enjoy comprehensive labs, extra miles and CTF challenges
    • Less experienced students complete what they can during the class, and can continue at their own pace from home using the training portal.
  • This said, the more you learn about the following ahead of the course, the more you will get out of the course:
    • Linux command line basics
    • Node.js basics
    • Electron basics

Hardware / Software Requirements

  • A laptop with the following specifications:
    • Ability to connect to wireless and wired networks.
    • Ability to read PDF files
    • Administrative rights: USB allowed, the ability to deactivate AV, firewall, install tools, etc.
    • Knowledge of the BIOS password, in case VT is disabled.
    • Minimum 8GB of RAM (recommended: 16GB+)
    • 60GB+ of free disk space (to copy a lab VM and other goodies)
    • VirtualBox 6.0 or greater, including the “VirtualBox Extension Pack”

What to expect

Lifetime access to training portal (including all future updates), unlimited email support, access to private groups to communicate with other students, interesting apps from various countries.

A fully practical class that will seriously improve your Node.js, Electron and JavaScript security knowledge and skills, regardless of the skill level you come in with. Battle-tested tips and tricks that take your abilities to the next level and that you can apply as soon as you go back to your workplace, making security testing of Node.js/Electron/JavaScript apps as efficient as possible.
Intensive hands-on exercises that challenge you to deep dive into the world of JavaScript security.

What not to expect

This is more than a physical attendance course: You get the physical course but also lifetime access to a training portal with step-by-step video recordings, slides and lab exercises, including all future updates for free.

The course does not cover: Node.js or Electron 0-day, Windows/Linux/Mac OS exploits, x86 exploit writing, writing buffer or heap overflows.

Do not expect the teachers to be talking through slides most of the time: This class is practical not theoretical, the teachers don’t bore you with slides all the time, instead you do exercises all the time and the teachers help you solve the challenges you face as you complete them.

Agenda Day 1: Pwn & Fix Node.js apps by Example

  • Part 0 – Node.js Security Crash Course
    • The state of Node.js Security
    • Node.js architecture
    • Introduction to Node.js apps
    • Node.js apps the filesystem
    • JavaScript prototypes
    • Recommended lab setup tips
  • Part 1 – Static Analysis, Node.js frameworks and Tools
    • Node.js frameworks and their components
    • Finding vulnerabilities in Node.js dependencies
    • Common misconfigurations / flaws in Node.js applications and frameworks
    • Tools and techniques to find security flaws in Node.js apps
  • Part 2 – Finding and fixing Node.js vulnerabilities
    • Identification of the attack surface of Node.js apps and general information gathering
    • Identification of common vulnerability patterns in Node.js apps:
      • CSRF
      • XSS
      • Access control flaws
      • NOSQL Injection, MongoDB attacks
      • SQL Injection
      • RCE
      • Crypto
    • Monitoring data: Logs, Insecure file storage, etc.
  • Part 3 – Test Your Skills
    • CTF time

Agenda Day 2: Pwn & Fix Electron apps by Example

  • Part 0 – Electron Security Crash Course
    • The state of Electron Security
    • Electron security architecture and its components
    • Electron apps and the filesystem
    • Recommended lab setup tips
  • Part 1 – Static Analysis and Tools
    • Tools and techniques to reverse and review Electron apps
    • Finding vulnerabilities in Electron dependencies
    • Identification of the attack surface of Electron apps & information gathering
    • Static modification of Electron apps for analysis and debugging
    • Identification of common vulnerability patterns in Electron apps:
      • Common misconfigurations
      • Hardcoded secrets
      • Logic bugs
      • Access control flaws
      • URL handlers
      • XSS, Injection attacks and more
    • Modifying Electron apps to alter behaviour and debug issues
  • Part 2 – Dynamic Analysis
    • Monitoring data: caching, logs, app files, insecure file storage, unsafe storage of app secrets, etc.
    • Crypto flaws
    • The art of MitM: Intercepting Network Communications
    • Defeating certificate pinning at runtime
    • The art of Instrumentation: Introduction to Frida
    • App behaviour monitoring at runtime
    • Modifying app behaviour at runtime
  • Part 3 – Test your Skills
    • CTF time

TRAININGS
Location: Training Rooms Date: April 20, 2020 Time: 9:00 am - 6:00 pm Abraham Aranguren Anirudh Anand