{"id":615,"date":"2016-11-17T15:41:42","date_gmt":"2016-11-17T15:41:42","guid":{"rendered":"http:\/\/www.adlice.com\/?p=615"},"modified":"2022-12-21T10:35:52","modified_gmt":"2022-12-21T10:35:52","slug":"exploits-kits-part-3","status":"publish","type":"post","link":"https:\/\/www.adlice.com\/de\/exploits-kits-part-3\/","title":{"rendered":"Exploits Explained, Exploit Kits (Part 3)"},"content":{"rendered":"\n<h4 class=\"has-accent-color has-text-color wp-block-heading\"><br>Introduction<\/h4>\n\n\n\n<p>As we have seen in the previous parts of this article, numerous exploitation methods exist. In this part, we will analyze some of them and means to protect again them. Basic understanding of the <strong>C\/C++ language<\/strong> and of the <strong>x86 assembly instruction set<\/strong> architecture is required to fully grasp the content of this article. This article is written with Windows in mind, so some of its content is not applicable to other operating systems. Furthermore, it\u2019s intended for intermediary skills level audience, so expect some vulgarization. In this section we&#8217;ll have exploits explained, from the technical standpoint.<\/p>\n\n\n\n<h4 class=\"has-accent-color has-text-color wp-block-heading\"><br>Exploits Explained: PE Format and Memory<\/h4>\n\n\n\n<p>Before learning about exploit protections, we need to state some elements about the &#8220;PE&#8221; Portable Executable format, the executable format introduced in Windows 95\/NT. A PE file contains multiple parts, but we will focus here on only one of them, the <strong>image section header format<\/strong>, represented by the <strong>IMAGE_SECTION_HEADER<\/strong> structures. Sections headers are used to organise code and data in an efficient way. In this representation, only interesting members are show :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>typedef struct _IMAGE_SECTION_HEADER {\n        BYTE  Name&#91;IMAGE_SIZEOF_SHORT_NAME];\n        DWORD VirtualAddress;\n        DWORD SizeOfRawData;\n        DWORD PointerToRawData;\n        DWORD Characteristics;\n} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;<\/code><\/pre>\n\n\n\n<p><br><strong>Name<\/strong> : Name of the section, usually automatically added by the compiler<br><strong>VirtualAddress<\/strong> : Offset in virtual memory where to load the section (RVA)<br><strong>SizeOfRawData<\/strong> : Size of the section<br><strong>PointerToRawData<\/strong> : Pointer to the \u201ccode\u201d part of the section<br><strong>Characteriscs<\/strong> : Section attributes to set when loading in memory<\/p>\n\n\n\n<p>Let\u2019s take a look at some common sections:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>.text<\/strong><\/li>\n\n\n\n<li><strong>.bss<\/strong><\/li>\n\n\n\n<li><strong>.data<\/strong><\/li>\n<\/ul>\n\n\n\n<p>The <strong>.text section<\/strong> is where all the program instructions emitted by the compiler ends up. Its attributes are <strong>Executable<\/strong> and <strong>Writable<\/strong>.<br>The<strong> .bss section<\/strong> is where all uninitialized data are stored. Its attributes are usually <strong>Readable<\/strong> and <strong>Writable<\/strong>.<br>The <strong>.data section<\/strong> is where all the initialized data goes, except local variables that are located on the thread&#8217;s stack. Its attributes are <strong>Readable<\/strong> and <strong>Writable<\/strong>.<\/p>\n\n\n\n<p>When a PE file is loaded into memory, <strong>each section is instantiated with its following attributes<\/strong>. The memory layout of a PE file has the following pattern.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Memory_Layout-400x1024.jpg\" alt=\"stack representation\" class=\"wp-image-619\" width=\"190\" height=\"487\" srcset=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Memory_Layout-400x1024.jpg 400w, https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Memory_Layout-117x300.jpg 117w, https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Memory_Layout.jpg 425w\" sizes=\"(max-width: 190px) 100vw, 190px\" \/><figcaption class=\"wp-element-caption\">Source : wikipedia.com<\/figcaption><\/figure>\n\n\n\n<p>We can notice the presence of two additional fields, the <strong>heap<\/strong> and the <strong>stack<\/strong>. The heap segment is a block of memory where dynamic memory allocation takes place. Global variables are also stored on the heap. Its attributes are <strong>Readable<\/strong> and <strong>Writable<\/strong> and, on legacy systems, <strong>Executable<\/strong>. <\/p>\n\n\n\n<p>The stack segment handles allocation of all non-static variables and functions call data (parameters, return address, registers contexts, etc.) and as such, is responsible for the control-flow of the program. Its attributes are <strong>Readable<\/strong> and <strong>Writable<\/strong> and, on legacy systems, <strong>Executable<\/strong>.<\/p>\n\n\n\n<h4 class=\"has-accent-color has-text-color wp-block-heading\"><br>Exploits Explained: Exploitation methods<\/h4>\n\n\n\n<p>The goal of an attacker is to manipulate the target program control-flow (shellcode) in order to execute some code of its own (payload). Usually the attack is used to gain access to some system or data.<\/p>\n\n\n\n<p><br><strong>Buffer overflow exploitation<\/strong><br>Let\u2019s consider the following C vulnerable code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;stdio.h&gt;\n\nvoid foo() {\n        char buffer&#91;10];\n        printf(\"Input:\\n\");\n        scanf(\"%s\", buffer);\n        printf(\"Output: %s\\n\", buffer);\n}\n\nint main() {\n        foo();\n        return 0;\n}<\/code><\/pre>\n\n\n\n<p><br>This program calls the foo() function that allocates a space of 10 bytes on the stack and asks the user for input. It then displays the input characters and exits. However, <strong>no verification of the input is made<\/strong>, so it\u2019s possible for the user to write data outside the allocated space: a <strong>stack buffer overflow <\/strong>can occur.<\/p>\n\n\n\n<p>The approximate disassembly of the foo() function is the following (x86 <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/zkwh89ks.aspx\">CDECL<\/a> calling convention):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>; _foo\npush\tebp;                ; Save the return address to _main into the stack\nmov \tebp, esp            ; New call frame\nsub     esp, D4h            ; Allocate memory on the stack to store variables content\n\n; printf() and stack cleaning\npush\t\"Input:\\n\"\ncall\t_printf\nadd     esp, 4h\n\n; user input and stack cleaning\nlea     eax, &#91;ebp+buffer]\t\npush \teax\t\t\t\npush \t\"%s\"\ncall\t_scanf\nadd \tesp, 8h\n\n; user output and stack cleaning\nlea     eax, &#91;ebp+buffer]\t\npush    eax\t\t\t\npush    \"Output: %s\\n\"\ncall    _printf\nadd     esp, 8h\n\n; Stack unwinding and exit\nmov     ebp, esp\npop     ebp                 ; Recover the return address to _main from the stack\nret                         ; Return to _main<\/code><\/pre>\n\n\n\n<p><br>As we can see, it\u2019s possible when inputting enough characters <strong>to overwrite the stack frame designed to store the variable content<\/strong>. The goal of an attacker is to overwrite the return address to _main stored into the stack (line 2) by an address pointing to its own code using a shellcode as input sequence.<\/p>\n\n\n\n<p>Usually this won\u2019t work because of Data Execution Prevention (see Protection mechanisms below) <strong>forcefully terminating the process<\/strong> if code is executed on the stack or heap.<\/p>\n\n\n\n<p><br><strong>ROP Chaining exploitation<\/strong><br>A trick to bypass such protection is known as <strong>Return-oriented programming (ROP)<\/strong>. This technique makes use of <strong>executable instructions found within the program code<\/strong> (.text section) and <strong>shared libraries<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\"><img decoding=\"async\" width=\"533\" height=\"350\" src=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\" alt=\"stack representation of exploits\" class=\"wp-image-620\" srcset=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png 533w, https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration-300x197.png 300w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><\/a><figcaption class=\"wp-element-caption\">Source : k7computing.com<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The attacker will look for <strong>code sequences (gadget) containing the POP assembly instruction<\/strong> to load <strong>suitable values<\/strong> in the processor registers then calling a function with these values as parameters (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Return-to-libc_attack\">return-to-libc<\/a>). This process can be repeated multiple time to find an exploitable function, hence the name <strong>ROP Chaining<\/strong>.<\/p>\n\n\n\n<h4 class=\"has-accent-color has-text-color wp-block-heading\"><br>Exploits Explained: Protection methods<\/h4>\n\n\n\n<p>Many protection mechanisms have been developed to protect users against exploitation of insecurely written software (see <a href=\"https:\/\/www.adlice.com\/exploit-kits-part-1\/\">part I<\/a>). Each software has its own way to implement such mechanisms. Since only closed source anti-exploit software is currently available, we will refer to the protections methods implemented in the <strong>Enhanced Mitigation Experience Toolkit (EMET)<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Canaries<\/strong><\/li>\n\n\n\n<li><strong>Data Execution Prevention (DEP)<\/strong><\/li>\n\n\n\n<li><strong>Address Space Layout Randomization (ASLR)<\/strong><\/li>\n\n\n\n<li><strong>Structured Exception Handler Overwrite Protection (SEHOP)<\/strong><\/li>\n\n\n\n<li><strong>Null Page Protection<\/strong><\/li>\n\n\n\n<li><strong>Heap Spray Protection<\/strong><\/li>\n\n\n\n<li><strong>Export Address Table Access Filtering (EAF)<\/strong><\/li>\n\n\n\n<li><strong>Stack Pivot Protection<\/strong><\/li>\n<\/ul>\n\n\n\n<p><br><strong>Canaries<\/strong><\/p>\n\n\n\n<p>Canaries are <strong>known values placed between an allocated buffer and control data on the stack or heap<\/strong>. If a buffer overflow occurs, <strong>the first data to be corrupted will be the canary one<\/strong>. Functions that will check data integrity will fail and an error or exception will be raised.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/Canary_Illustration.png\"><img decoding=\"async\" width=\"760\" height=\"92\" src=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/Canary_Illustration.png\" alt=\"buffer representation for exploits\" class=\"wp-image-621\" srcset=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/Canary_Illustration.png 760w, https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/Canary_Illustration-300x36.png 300w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/a><figcaption class=\"wp-element-caption\">Source : duartes.org<\/figcaption><\/figure>\n<\/div>\n\n\n<p>In the example above, the magic value represented by the third bloc is likely to be overwritten if a buffer overflow occurs.<\/p>\n\n\n\n<p><br><strong>Executable space protection \/ Data Execution Prevention (DEP)<\/strong><\/p>\n\n\n\n<p>Data execution prevention is a <strong>system-level memory protection feature that marks one or more pages of memory as non-executable<\/strong>, usually heap and stack sections. If a program attempts to run code from a page memory where execution is disabled <strong>a memory access violation exception occurs.<\/strong> A hardware solution marketed as the <strong>NX bit<\/strong> is present on modern CPUs. Any operating system with support for the NX bit can mark areas of memory as non-executable. The processor <strong>will not execute any code residing in these specific areas<\/strong>.<\/p>\n\n\n\n<p><br><strong>Address Space Layout Randomization (ASLR)<\/strong><\/p>\n\n\n\n<p>When the linker creates an executable, it assumes it will be placed in a <strong>specific memory-mapped area<\/strong>, by default at address <strong>0x400000<\/strong>. When the process is loaded, its instructions and resources <strong>are always present at the same address<\/strong>. An exploit writer can use this fact to write buffer overflow or ROP exploits more easily. <strong>Address Space Layout Randomization (ASLR)<\/strong> is a technique which <strong>randomizes the base addresses (ImageBase) of executable code, heap and stack<\/strong> in a process\u2019s address space <strong>on each boot<\/strong>, which really complicate exploitation and shellcode development.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/DEP_ASLR_Sample.png\"><img decoding=\"async\" width=\"410\" height=\"483\" src=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/DEP_ASLR_Sample.png\" alt=\"DEP and ASLR Illustration for exploits\" class=\"wp-image-622\" srcset=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/DEP_ASLR_Sample.png 410w, https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/DEP_ASLR_Sample-255x300.png 255w\" sizes=\"(max-width: 410px) 100vw, 410px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>The image above, represents the base value of process smss.exe (Session Manager Subsystem) of a Windows 7 x64 system with Data Execution Prevention and Address Space Load Randomization features enabled.<\/p>\n\n\n\n<p><br><strong>Structured Exception Handler Overwrite Protection (SEHOP)<\/strong><\/p>\n\n\n\n<p>On Windows OS, <strong>hardware and software exceptions<\/strong> are handled through the use of the <strong>structured exception handling mechanism (SEH)<\/strong>. This mechanism makes use of the exception registration record structure, which is composed of a pointer to the next structure and an exception handler function pointer.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>typedef struct _EXCEPTION_REGISTRATION_RECORD {\n        struct _EXCEPTION_REGISTRATION_RECORD *Next;\n        PEXCEPTION_ROUTINE                     Handler;\n} EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;<\/code><\/pre>\n\n\n\n<p><br>When an exception occurs, <strong>the program control-flow will be redirected to the address of the exception handler function<\/strong>. Using buffer overflow, it may be possible <strong>to replace this address with anything<\/strong>, which may force the application to jump to a shellcode.<\/p>\n\n\n\n<p><strong>SEHOP<\/strong> complicate the use of the technique by verifying <strong>that a thread\u2019s exception handler recorded list is not altered<\/strong>, using a symbolic record,<strong> before allowing any of the registered exception handlers to be called<\/strong>. If the symbolic record cannot be reached, the system assumes <strong>SEH overwrite<\/strong> may have occurred and <strong>terminate the thread<\/strong>.<\/p>\n\n\n\n<p><br><strong>Null Page Protection<\/strong><\/p>\n\n\n\n<p>By default, a <strong>null pointer<\/strong> point at virtual address <strong>0x00000000<\/strong>, which content may be overwritten (<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/hardware\/ff554836%28v=vs.85%29.aspx\">kernel mode<\/a>) with any address. A software vulnerability may arise when a null pointer is used, allowing a shellcoder to execute any code. The <strong>Null Page Protection<\/strong> pre-allocates memory at the virtual address 0x00000000 and enable <strong>memory protection<\/strong> on this specific memory page. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dangling_pointer\">Dangling or wild pointers<\/a>, pointers that do not point to a valid destination, can be exploited in a similar way, allocating memory at the address they point to.<\/p>\n\n\n\n<p><br><strong>Heap Spray Protection<\/strong><\/p>\n\n\n\n<p>Heap spray attack involves allocating the thread\u2019s heap memory at predetermined (the heap is deterministic) addresses with the <strong>right values<\/strong> in order to store a shellcode at a <strong>predictable address<\/strong>. The <strong>Heap Spray Protection<\/strong> works by pre-allocating certain regions in the heap, <strong>breaking the possibility to insert a shellcode<\/strong> using heap spray.<\/p>\n\n\n\n<p><br><strong>Export Address Table Access Filtering (EAF)<\/strong><\/p>\n\n\n\n<p>Usually a program relies on external functions provided in other executables or DLLs files. These functions are listed on the PE files <strong>Export Address Table (EAT)<\/strong>. In order to do something useful, an exploit usually needs to import functions exported by Windows internal modules (kernel32.dll, ntdll.dll, etc.). Because of <strong>ASLR<\/strong>, the exploit must first find where it is loaded.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Export_Illustration.png\"><img decoding=\"async\" width=\"784\" height=\"293\" src=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Export_Illustration.png\" alt=\"Ndll.dll export table first elements for exploits\" class=\"wp-image-623\" srcset=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Export_Illustration.png 784w, https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/PE_Export_Illustration-300x112.png 300w\" sizes=\"(max-width: 784px) 100vw, 784px\" \/><\/a><figcaption class=\"wp-element-caption\">Ndll.dll export table first elements<\/figcaption><\/figure>\n<\/div>\n\n\n<p><br>This mitigation method works by<strong> terminating<\/strong> any thread which tries <strong>to access the export table of these modules<\/strong>.<\/p>\n\n\n\n<p><br><strong>Stack Pivot Protection<\/strong><br>Stack pivoting may be used to facilitate <strong>ROP Chaining<\/strong>. This method alters the address contained within the special <strong>register ESP<\/strong>, altering the stack frame, even replacing it with a <strong>fake stack<\/strong> containing more ROP gadgets.<\/p>\n\n\n\n<p>This protection is able to detect if the thread\u2019s stack has been pivoted, and also monitor stack registers of some <a href=\"https:\/\/en.wikipedia.org\/wiki\/Windows_API\">Windows API<\/a> functions.<\/p>\n\n\n\n<h4 class=\"has-accent-color has-text-color wp-block-heading\"><br>Conclusion<\/h4>\n\n\n\n<p>Many exploits mitigations techniques <strong>are now available<\/strong> for systems administrators to use, to protect their clients and infrastructures. <strong>None of them are 100% reliable<\/strong> and may be bypass-able but <strong>implementing them makes software exploitation many more difficult<\/strong>.<\/p>\n\n\n\n<p>Since the huge majority of exploits are based on overflow, <strong>applications developers must take action<\/strong>, like adopting <a href=\"https:\/\/en.wikipedia.org\/wiki\/Defensive_programming\">defensive programming<\/a> style. They are in the front line in this field and producing secure code <strong>is the only way<\/strong> it won\u2019t be exploitable nor exploited. We hope you enjoyed this exploits explained technical article !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Discover exploitation methods, exploits development and inner workings and learn about the countermeasures that exists to protect your infrastructure.<\/p>\n","protected":false},"author":1,"featured_media":620,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[477,476,155,335,6,367],"class_list":["post-615","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analysis","tag-assembly","tag-buffer-overflow","tag-c","tag-exploit","tag-pe","tag-stack","category-36","description-off"],"views":2595,"yoast_score":82,"yoast_readable":30,"featured_image_src":"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png","author_info":{"display_name":"tigzy","author_link":"https:\/\/www.adlice.com\/de\/author\/tigzy\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exploits Explained, Exploit Kits (Part 3) \u2022 Adlice Software<\/title>\n<meta name=\"description\" content=\"Discover exploitation methods, exploits development, inner workings and learn the countermeasures that exist to protect your infrastructure.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploits Explained, Exploit Kits (Part 3) \u2022 Adlice Software\" \/>\n<meta property=\"og:description\" content=\"Discover exploitation methods, exploits development, inner workings and learn the countermeasures that exist to protect your infrastructure.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Adlice Software\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RogueKiller\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-17T15:41:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-21T10:35:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\" \/>\n\t<meta property=\"og:image:width\" content=\"533\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"tigzy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@AdliceSoftware\" \/>\n<meta name=\"twitter:site\" content=\"@AdliceSoftware\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"tigzy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\"},\"author\":{\"name\":\"tigzy\",\"@id\":\"https:\/\/www.adlice.com\/#\/schema\/person\/a02b30804320a4059d268dc2567a307d\"},\"headline\":\"Exploits Explained, Exploit Kits (Part 3)\",\"datePublished\":\"2016-11-17T15:41:42+00:00\",\"dateModified\":\"2022-12-21T10:35:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\"},\"wordCount\":1626,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.adlice.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\",\"keywords\":[\"assembly\",\"buffer overflow\",\"c++\",\"exploit\",\"pe\",\"stack\"],\"articleSection\":[\"Analysis\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\",\"url\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\",\"name\":\"Exploits Explained, Exploit Kits (Part 3) \u2022 Adlice Software\",\"isPartOf\":{\"@id\":\"https:\/\/www.adlice.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\",\"datePublished\":\"2016-11-17T15:41:42+00:00\",\"dateModified\":\"2022-12-21T10:35:52+00:00\",\"description\":\"Discover exploitation methods, exploits development, inner workings and learn the countermeasures that exist to protect your infrastructure.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.adlice.com\/exploits-kits-part-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage\",\"url\":\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\",\"contentUrl\":\"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png\",\"width\":533,\"height\":350,\"caption\":\"Source : k7computing.com\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.adlice.com\/exploits-kits-part-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.adlice.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exploits Explained, Exploit Kits (Part 3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.adlice.com\/#website\",\"url\":\"https:\/\/www.adlice.com\/\",\"name\":\"Adlice Software\",\"description\":\"Anti-malware and analysis tools\",\"publisher\":{\"@id\":\"https:\/\/www.adlice.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.adlice.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.adlice.com\/#organization\",\"name\":\"Adlice Software\",\"url\":\"https:\/\/www.adlice.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.adlice.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.adlice.com\/wp-content\/uploads\/2020\/05\/B1rTNpTG_400x40_10.png\",\"contentUrl\":\"https:\/\/www.adlice.com\/wp-content\/uploads\/2020\/05\/B1rTNpTG_400x40_10.png\",\"width\":276,\"height\":276,\"caption\":\"Adlice Software\"},\"image\":{\"@id\":\"https:\/\/www.adlice.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RogueKiller\",\"https:\/\/x.com\/AdliceSoftware\",\"https:\/\/fr.linkedin.com\/company\/adlice-software\",\"https:\/\/www.youtube.com\/channel\/UC4CQ-gIZMGWxl-auf0QqYhQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.adlice.com\/#\/schema\/person\/a02b30804320a4059d268dc2567a307d\",\"name\":\"tigzy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.adlice.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d81e380961b1b69969fa84994ad1e4cba26afe93a49d8dd3148e9c33ffe4ccac?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d81e380961b1b69969fa84994ad1e4cba26afe93a49d8dd3148e9c33ffe4ccac?s=96&d=mm&r=g\",\"caption\":\"tigzy\"},\"description\":\"Founder and owner of Adlice Software, Tigzy started as lead developer on the popular Anti-malware called RogueKiller. Involved in all the Adlice projects as lead developer, Tigzy is also doing research and reverse engineering as well as writing blog posts.\",\"url\":\"https:\/\/www.adlice.com\/de\/author\/tigzy\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exploits Explained, Exploit Kits (Part 3) \u2022 Adlice Software","description":"Discover exploitation methods, exploits development, inner workings and learn the countermeasures that exist to protect your infrastructure.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.adlice.com\/exploits-kits-part-3\/","og_locale":"de_DE","og_type":"article","og_title":"Exploits Explained, Exploit Kits (Part 3) \u2022 Adlice Software","og_description":"Discover exploitation methods, exploits development, inner workings and learn the countermeasures that exist to protect your infrastructure.","og_url":"https:\/\/www.adlice.com\/exploits-kits-part-3\/","og_site_name":"Adlice Software","article_publisher":"https:\/\/www.facebook.com\/RogueKiller","article_published_time":"2016-11-17T15:41:42+00:00","article_modified_time":"2022-12-21T10:35:52+00:00","og_image":[{"width":533,"height":350,"url":"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png","type":"image\/png"}],"author":"tigzy","twitter_card":"summary_large_image","twitter_creator":"@AdliceSoftware","twitter_site":"@AdliceSoftware","twitter_misc":{"Verfasst von":"tigzy","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#article","isPartOf":{"@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/"},"author":{"name":"tigzy","@id":"https:\/\/www.adlice.com\/#\/schema\/person\/a02b30804320a4059d268dc2567a307d"},"headline":"Exploits Explained, Exploit Kits (Part 3)","datePublished":"2016-11-17T15:41:42+00:00","dateModified":"2022-12-21T10:35:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/"},"wordCount":1626,"commentCount":0,"publisher":{"@id":"https:\/\/www.adlice.com\/#organization"},"image":{"@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png","keywords":["assembly","buffer overflow","c++","exploit","pe","stack"],"articleSection":["Analysis"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/","url":"https:\/\/www.adlice.com\/exploits-kits-part-3\/","name":"Exploits Explained, Exploit Kits (Part 3) \u2022 Adlice Software","isPartOf":{"@id":"https:\/\/www.adlice.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage"},"image":{"@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png","datePublished":"2016-11-17T15:41:42+00:00","dateModified":"2022-12-21T10:35:52+00:00","description":"Discover exploitation methods, exploits development, inner workings and learn the countermeasures that exist to protect your infrastructure.","breadcrumb":{"@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.adlice.com\/exploits-kits-part-3\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#primaryimage","url":"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png","contentUrl":"https:\/\/www.adlice.com\/wp-content\/uploads\/2016\/11\/ROP_Illustration.png","width":533,"height":350,"caption":"Source : k7computing.com"},{"@type":"BreadcrumbList","@id":"https:\/\/www.adlice.com\/exploits-kits-part-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.adlice.com\/de\/"},{"@type":"ListItem","position":2,"name":"Exploits Explained, Exploit Kits (Part 3)"}]},{"@type":"WebSite","@id":"https:\/\/www.adlice.com\/#website","url":"https:\/\/www.adlice.com\/","name":"Adlice Software","description":"Anti-malware and analysis tools","publisher":{"@id":"https:\/\/www.adlice.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.adlice.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.adlice.com\/#organization","name":"Adlice Software","url":"https:\/\/www.adlice.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.adlice.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.adlice.com\/wp-content\/uploads\/2020\/05\/B1rTNpTG_400x40_10.png","contentUrl":"https:\/\/www.adlice.com\/wp-content\/uploads\/2020\/05\/B1rTNpTG_400x40_10.png","width":276,"height":276,"caption":"Adlice Software"},"image":{"@id":"https:\/\/www.adlice.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RogueKiller","https:\/\/x.com\/AdliceSoftware","https:\/\/fr.linkedin.com\/company\/adlice-software","https:\/\/www.youtube.com\/channel\/UC4CQ-gIZMGWxl-auf0QqYhQ"]},{"@type":"Person","@id":"https:\/\/www.adlice.com\/#\/schema\/person\/a02b30804320a4059d268dc2567a307d","name":"tigzy","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.adlice.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d81e380961b1b69969fa84994ad1e4cba26afe93a49d8dd3148e9c33ffe4ccac?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d81e380961b1b69969fa84994ad1e4cba26afe93a49d8dd3148e9c33ffe4ccac?s=96&d=mm&r=g","caption":"tigzy"},"description":"Founder and owner of Adlice Software, Tigzy started as lead developer on the popular Anti-malware called RogueKiller. Involved in all the Adlice projects as lead developer, Tigzy is also doing research and reverse engineering as well as writing blog posts.","url":"https:\/\/www.adlice.com\/de\/author\/tigzy\/"}]}},"_links":{"self":[{"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/posts\/615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/comments?post=615"}],"version-history":[{"count":0,"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/posts\/615\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/media\/620"}],"wp:attachment":[{"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/media?parent=615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/categories?post=615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.adlice.com\/de\/wp-json\/wp\/v2\/tags?post=615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}