{"id":1830,"date":"2019-06-07T20:41:30","date_gmt":"2019-06-07T18:41:30","guid":{"rendered":"https:\/\/archive.brucon.org\/2019\/?page_id=1830"},"modified":"2019-06-10T21:18:04","modified_gmt":"2019-06-10T19:18:04","slug":"corelan-advanced","status":"publish","type":"page","link":"https:\/\/archive.brucon.org\/2019\/brucon-2019-training\/corelan-advanced\/","title":{"rendered":"Corelan Advanced"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h2><span id=\"Course_Description\" class=\"mw-headline\">Course Description<\/span><\/h2>\n<div class=\"thumb tright\">\n<div class=\"thumbinner\">\n<div class=\"thumbcaption\">\n<div class=\"magnify\">\n<p>The Corelan \u201cADVANCED\u201d exploit development class is a fast-paced, mind-bending, hands-on course where you will learn advanced exploit development techniques from an experienced exploit developer. During this (typically 3 \u2018long\u2019 day) course, students will get the opportunity to learn how to write exploits that bypass modern memory protections for the Win32 platform, using Windows 7 and Windows 10 as the example platform, but using techniques that can be applied to other operating systems an applications. We will discuss differences between Windows 7 and Windows 10 and explore previously undocumented techniques to achieve important exploitation primitives in Windows 10. \u00a0The trainer will share his \u201cnotes from the field\u201d and various tips &amp; tricks to become more effective at writing exploits.\u00a0This is most certainly not an entry level course. In fact, this is a one of the finest and most advanced courses you will find on Win32 exploit development.<\/p>\n<p>This hardcore, practical, hands-on course will provide students with solid understanding of x86 Windows heap exploitation.\u00a0 We make sure the course material is kept updated with current evolutions, includes previously undocumented tricks and techniques, and details about research we performed ourselves, so you can apply the research techniques on other applications and operating system versions.\u00a0 Combined with the way the course is built up, this will turn this class into a truly unique learning experience.<\/p>\n<p>During all of our courses, we don\u2019t just focus on techniques and mechanics, but we also want to make sure you understand why a given technique is used, why something works and why something doesn\u2019t work. \u00a0In the advanced course, we also provide you with insights on how to do your own research related with heap exploitation in general (not just Windows 7 or Windows 10)<\/p>\n<p>The new 2019 edition of the course is based on Windows 7 and Windows 10.\u00a0(As the Windows 10 Heap Manager contains additional mitigations, we use Windows 7 first to teach the basics, and then use Windows 10 later on)<\/p>\n<p>We believe those are just a few arguments that makes this training stand out between other exploit development training offerings.\u00a0\u00a0 Feel free to check our\u00a0<a href=\"https:\/\/www.corelan-training.com\/index.php\/testimonials\/\" target=\"_blank\" rel=\"noopener noreferrer\">testimonials\u00a0<\/a>page if you want to see real, voluntary, unmodified and uncensored reactions by some of our students.<\/p>\n<p>Finally, we offer you post-training support as well.\u00a0\u00a0 If you have taken the course and you still have questions afterwards, we will help.<\/p>\n<p><strong>WARNING:<\/strong> We do\u00a0not\u00a0provide solutions for any of the exercises in this course, but we will help you to find the solutions yourself, either during the course of after the course (via the student-only forum)<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243; css=&#8221;.vc_custom_1528310734661{margin-top: 50% !important;}&#8221;][vc_single_image image=&#8221;1059&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; css=&#8221;.vc_custom_1528310773006{margin-top: 50% !important;}&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2><span id=\"Course_contents\" class=\"mw-headline\">Course contents<\/span><\/h2>\n<h3>ASLR &amp; DEP Refresher<\/h3>\n<ul>\n<li>Bypassing ASLR<\/li>\n<li>Bypassing DEP<\/li>\n<\/ul>\n<h3>WinDBG<\/h3>\n<ul>\n<li>Introduction to WinDBG<\/li>\n<\/ul>\n<h3>Windows Heap Management<\/h3>\n<ul>\n<li>Terminology &amp; building blocks<\/li>\n<li>Windows 7 Heap, Windows 10 Heap (\u201cNT\u201d and \u201cSegment\u201d heap)<\/li>\n<li>Front-End-ALlocator and Back-End-Allocator<\/li>\n<li>Differences between Windows 7 and Windows 10<\/li>\n<li>Heap manipulation primitives<\/li>\n<\/ul>\n<h3>Heap Spraying<\/h3>\n<ul>\n<li>Basic mechanisms<\/li>\n<li>Data &amp; object spraying<\/li>\n<li>Precise heap spraying<\/li>\n<\/ul>\n<h3>Heap Exploitation<\/h3>\n<ul>\n<li>Use-After-Free<\/li>\n<li>Linear &amp; non-linear overflows \/ controlled write<\/li>\n<li>Double Free<\/li>\n<li>Type confusion<\/li>\n<li>Use of uninitialized memory<\/li>\n<li>Memory leaks \/ Information Disclosure<\/li>\n<li>Heap Manipulations and heap primitives<\/li>\n<\/ul>\n<h3>Modern userland memory protection mechanisms<\/h3>\n<ul>\n<li>Overview of memory protection evolutions<\/li>\n<\/ul>\n<h3>Finding your own bugs<\/h3>\n<ul>\n<li>Thoughts &amp; experiences on fuzzing<\/li>\n<\/ul>\n<p>During the course, students will get the opportunity to work on real vulnerabilities in real applications, use a wide range of heap exploitation techniques \u00a0and most importantly learn how to do your own research to find exploitation primitives in complex applications and new versions of Windows.<\/p>\n<p><strong>Warning \u2013<\/strong> The course has a steep learning curve and will require full attention and focus.<\/p>\n<p>The \u201c<em>Course Contents<\/em>\u201d on this page is subject to change without prior notice &amp; can be updated between the moment of registration and the actual course. \u00a0We will try to cover as much as we can from the \u201cCourse Contents\u201d, based on the overall ability to absorb knowledge and time needed to complete the exercises, but Corelan cannot ever guarantee that we will be able to cover everything.[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2><span id=\"Target_audience\" class=\"mw-headline\">Target audience<\/span><\/h2>\n<p>Pentesters, auditors, network\/system administrators, reverse engineers, malware analysts, developers, members of a security department, security enthusiasts, or anyone that has a solid and practical basic knowledge of exploit development for Windows already.<\/p>\n<h2>Why take this course\u00a0?<\/h2>\n<ul>\n<li>Are you familiar with the basics of exploit development ? \u00a0Do you know how to write exploits for saved return pointer overwrites and abuse SEH records with your eyes closed ? \u00a0Are you interested in understanding how heap spraying works, and why it works ? \u00a0Is heap exploitation still a mysterious black box for you? Are you now ready for the next step ?<\/li>\n<li>Have you taken the Bootcamp or other commercial courses on exploit development and want to move to the next phase ?<\/li>\n<li>Do you want to learn modern techniques to exploit heap related memory corruptions on Windows 7 and Windows 10 ?<\/li>\n<li>Do you want to learn the fine art of writing browser exploits or exploit for other complex applications ?<\/li>\n<li>Do you want to learn the skills to investigate heap managers on modern Windows versions (Win7, Win10) and how to look for your own exploitation primitives?<\/li>\n<li>Would you like to know what (generic) questions to ask (rather than being spoonfed exploit-specific solutions &amp; answers)<\/li>\n<li>Would you like to know how to approach fuzzing\/bug hunting in complex applications, how to recognize and determine exploitability for heap based corruptions?<\/li>\n<li>Are you involved in malware research or do Incident Response &amp; interested in understanding how exploits work?<\/li>\n<li>Would you like to understand better how to detect exploits and how to protect against them?<\/li>\n<li>Would you like to get a basic view on common development mistakes, how to avoid them and how compiler options can help?<\/li>\n<li>Are you able to write ROP chains blindfolded ?\u00a0\u00a0(It is fundamentally important that you have practical experience with constructing\/writing your own ROP chain!)<\/li>\n<li>Are you willing to suffer and bleed, absorb new knowledge fast and not intimidated by debuggers and assembly instructions\u2026<\/li>\n<li>\u2026then this course is exactly what you need !<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2><span id=\"Requirements\" class=\"mw-headline\">Requirements<\/span><\/h2>\n<p>Students should\u00a0:<\/p>\n<ul>\n<li>be able to read and write simple C\/C++ code and simple scripts (python, javascript)<\/li>\n<li>truly master all basic concepts of exploit development, as listed in our \u201cBOOTCAMP\u201d course. \u00a0If you have taken the Bootcamp course and done a lot of practice after taking the class, then you\u2019re probably ready for this class.<\/li>\n<li>be familiar with ROP (i.e. understand how it works on Windows, know how to build a ROP chain, know how to use mona.py to generate a chain and how to fix the chain if it doesn\u2019t work)<\/li>\n<li>be familiar with using debuggers (we\u2019ll use WinDBG for most part of the course, but we\u2019ll spend some time explaining the basics of using WinDBG. \u00a0It is assumed that you have practical experience with Immunity Debugger and mona.py)<\/li>\n<li>be ready to dive into a debugger and read asm for hours and hours and hours<\/li>\n<li>be ready to think out of the box and have a strong desire to learn<\/li>\n<li>be\u00a0fluent\u00a0with managing Windows \/ Linux operating system and with using vmware workstation\/virtualbox<\/li>\n<li>be familiar with using Metasploit to generate shellcode<\/li>\n<li>have basic practical knowledge of assembly<\/li>\n<\/ul>\n<p>It\u2019s imperative for students to comply with these prerequisites.[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2><span id=\"Hardware.2Fsoftware_Requirements\" class=\"mw-headline\">Hardware\/Software Requirements<\/span><\/h2>\n<p>Unless specified otherwise, students are required to bring the following :<\/p>\n<ul>\n<li>A laptop (no netbook) with vmware workstation\/virtualbox and enough processing power and RAM (we recommend 4Gb of RAM) to run up to 2 virtual machines at the same time. \u00a0The use of a 64bit processor and a 64bit operating system on the laptop will make the exercises more realistic.<\/li>\n<li>3 Virtual machines (Windows 10 (no patches), Windows 7 SP1 (no patches), Kali Linux (fully up-to-date))<\/li>\n<\/ul>\n<p><strong>Note\u00a0:<\/strong> you will receive the exact installation instructions after registration, about a week before class begins, so\u00a0don\u2019t start installling the VMs yet.<\/p>\n<p>All required tools and applications will be provided during the training or will be downloaded from the internet during the training.<\/p>\n<p>You must have full administrator access to all machines. You must be able to install and remove software, and you must be able to disable and\/or remove firewall\/antivirus\/\u2026 when necessary.<\/p>\n<h2><span id=\"Testimonials\" class=\"mw-headline\">Testimonials<\/span><\/h2>\n<p>In case you still need it\u00a0;-), you can find a large amount of testimonials on this\u00a0<a class=\"external text\" href=\"https:\/\/www.corelan-training.com\/index.php\/testimonials\/\" target=\"_blank\" rel=\"nofollow noreferrer noopener\">page<\/a>\u00a0of the Corelan Training website.<\/p>\n<h2><span id=\"Legal_Prerequisites\" class=\"mw-headline\">Legal Prerequisites<\/span><\/h2>\n<p>It will be required to sign a confidentiality agreement at the start of the course. \u00a0You will not be admitted to the course without signing this document. \u00a0You can find a copy of the document\u00a0<a href=\"https:\/\/www.corelan-training.com\/Confidentiality%20Agreement%20Courseware.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2><span id=\"Trainer_Biography\" class=\"mw-headline\">Trainer Biography<\/span><\/h2>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<strong>Peter Van Eeckhoutte<\/strong> is the founder of Corelan Team and the author of the well-known tutorials on Win32 Exploit Development Training, available at\u00a0<a href=\"https:\/\/www.corelan.be\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.corelan.be<\/a>. The team gathers a group of IT Security enthusiasts and researchers from around the world, who all share common interests : doing research, gather &amp; share knowledge, and perform responsible\/coordination disclosure. Above all, the team is well known for their ethics and their dedication to helping other people in the community. Together with the team, he has developed and published numerous tools that will assist pentesters and exploit developers, and published whitepapers\/video\u2019s on a wide range of IT Security related topics (pentesting tools, (malware) reverse engineering, etc).\u00a0You can find some of the tools on the Corelan github page:\u00a0<a href=\"https:\/\/github.com\/corelan\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/corelan<\/a><\/p>\n<p>The team also moderates a Slack workplace (with various channels) that provides a platform for people who want to talk about exploit development or discuss wider IT Security topics. \u00a0Follow us on Twitter (<a href=\"https:\/\/www.twitter.com\/corelanconsult\" target=\"_blank\" rel=\"noopener noreferrer\">@corelanconsult<\/a>) and Facebook (<a href=\"https:\/\/www.facebook.com\/corelanconsulting\" target=\"_blank\" rel=\"noopener noreferrer\">corelanconsulting<\/a>) to get a Slack invite.<\/p>\n<p>Peter is reachable on Twitter via\u00a0<a href=\"https:\/\/www.twitter.com\/corelanc0d3r\" target=\"_blank\" rel=\"noopener noreferrer\">@corelanc0d3r<\/a><\/p>\n<p>Peter has been an active member of the IT Security community since 2000 and has been working on exploit development since 2006.\u00a0He presented at various international security conferences (Athcon, Hack In Paris, DerbyCon, ISSA Belgium) and taught various Win32 Exploit Development courses at numerous places around the globe. He trained security enthusiasts &amp; professionals from private companies, government agencies and military organizations.<\/p>\n<p>You can read more about their experiences here:\u00a0<a href=\"https:\/\/www.corelan-training.com\/index.php\/testimonials\/\">https:\/\/www.corelan-training.com\/index.php\/testimonials\/<\/a>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;489&#8243; alignment=&#8221;center&#8221; css=&#8221;.vc_custom_1528394151007{margin-top: 50% !important;}&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_empty_space][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column width=&#8221;5\/6&#8243;][vc_column_text] Course Description The Corelan \u201cADVANCED\u201d exploit development class is a fast-paced, mind-bending, hands-on course where you will learn advanced exploit development techniques from an experienced exploit developer. During this (typically 3 \u2018long\u2019 day) course, students will get the opportunity to learn how to write exploits that bypass modern memory protections for the Win32 platform, using Windows 7 and Windows 10 as the example platform, but using techniques that can be applied to other&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":75,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1830","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/pages\/1830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/comments?post=1830"}],"version-history":[{"count":4,"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/pages\/1830\/revisions"}],"predecessor-version":[{"id":1866,"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/pages\/1830\/revisions\/1866"}],"up":[{"embeddable":true,"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/pages\/75"}],"wp:attachment":[{"href":"https:\/\/archive.brucon.org\/2019\/wp-json\/wp\/v2\/media?parent=1830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}