{"componentChunkName":"component---src-templates-post-template-js","path":"/hackthebox-windows-blue-en","result":{"data":{"markdownRemark":{"id":"2ca0a296-9746-5469-810b-b73b876a3341","html":"<blockquote>\n<p>This page has been machine-translated from the <a href=\"/hackthebox-windows-blue\">original page</a>.</p>\n</blockquote>\n<p>I am studying security using “Hack The Box,” a penetration testing learning platform.\nMy current rank on “Hack The Box” is ProHacker at the time of writing.</p>\n<img src=\"http://www.hackthebox.eu/badge/image/327080\" alt=\"Hack The Box\">\n<p>In this article, I summarize what I learned about attack techniques related to “EternalBlue” through solving a HackTheBox machine.</p>\n<p>To better understand attacks related to “EternalBlue,” which caused enormous real-world damage, I will summarize what I studied.</p>\n<p>“EternalBlue” is also known for having been a major factor in the spread of the ransomware “WannaCry,” which wreaked havoc around the world.</p>\n<!-- omit in toc -->\n<h2 id=\"about-this-article\" style=\"position:relative;\"><a href=\"#about-this-article\" aria-label=\"about this article permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>About This Article</h2>\n<p><strong>The content of this article is not intended to promote any actions that violate social order.</strong></p>\n<p>Please note in advance that attempting to attack environments you do not own or have not been authorized to access may violate the “Act on Prohibition of Unauthorized Computer Access” (Unauthorized Access Prohibition Act).</p>\n<p>All opinions expressed here are my own and do not represent any organization I belong to.</p>\n<!-- omit in toc -->\n<h2 id=\"table-of-contents\" style=\"position:relative;\"><a href=\"#table-of-contents\" aria-label=\"table of contents permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Table of Contents</h2>\n<ul>\n<li><a href=\"#what-is-eternalblue\">What Is EternalBlue</a></li>\n<li><a href=\"#the-mechanism-of-eternalblue\">The Mechanism of EternalBlue</a></li>\n<li>\n<p><a href=\"#what-is-file-extendedattribute-fea\">What Is File ExtendedAttribute (FEA)?</a></p>\n<ul>\n<li><a href=\"#the-srvsrvos2fealistsizetont-function\">The <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> Function</a></li>\n</ul>\n</li>\n<li><a href=\"#about-the-smb-protocol\">About the SMB Protocol</a></li>\n<li>\n<p><a href=\"#eternalblue-test-environment\">EternalBlue Test Environment</a></p>\n<ul>\n<li><a href=\"#target-machine-virtual-machine\">Target Machine (Virtual Machine)</a></li>\n<li><a href=\"#attacker-machine-virtual-machine\">Attacker Machine (Virtual Machine)</a></li>\n<li><a href=\"#debug-machine-host\">Debug Machine (Host)</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"#preparing-the-target-machine\">Preparing the Target Machine</a></p>\n<ul>\n<li><a href=\"#enabling-kernel-mode-debugging\">Enabling Kernel-Mode Debugging</a></li>\n<li><a href=\"#verifying-smbv1-is-enabled\">Verifying SMBv1 Is Enabled</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"#kernel-debugging-with-windbg\">Kernel Debugging with WinDbg</a></p>\n<ul>\n<li><a href=\"#installation\">Installation</a></li>\n<li><a href=\"#connecting-to-the-target-machine-with-windbg\">Connecting to the Target Machine with WinDbg</a></li>\n</ul>\n</li>\n<li><a href=\"#getting-a-reverse-shell-by-exploiting-the-vulnerability\">Getting a Reverse Shell by Exploiting the Vulnerability</a></li>\n<li>\n<p><a href=\"#practicing-kernel-debugging-with-windbg\">Practicing Kernel Debugging with WinDbg</a></p>\n<ul>\n<li><a href=\"#tracing-traffic-during-exploitation\">Tracing Traffic During Exploitation</a></li>\n<li><a href=\"#smb-traffic-from-the-attack-server\">SMB Traffic from the Attack Server</a></li>\n<li><a href=\"#kernel-debugging-during-the-buffer-overflow\">Kernel Debugging During the Buffer Overflow</a></li>\n</ul>\n</li>\n<li><a href=\"#summary\">Summary</a></li>\n<li>\n<p><a href=\"#references\">References</a></p>\n<ul>\n<li><a href=\"#book\">Book</a></li>\n<li><a href=\"#web\">Web</a></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"theme-of-this-article\" style=\"position:relative;\"><a href=\"#theme-of-this-article\" aria-label=\"theme of this article permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Theme of This Article</h3>\n<p>This article’s theme is to learn the details of the vulnerability and how it is exploited by reproducing “EternalBlue,” and to apply that knowledge to security measures.</p>\n<h2 id=\"what-is-eternalblue\" style=\"position:relative;\"><a href=\"#what-is-eternalblue\" aria-label=\"what is eternalblue permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What Is EternalBlue</h2>\n<p>EternalBlue refers to an attack tool that exploits a security flaw in Windows SMB1.0.</p>\n<p>By exploiting a flaw in “Windows SMB1.0 (SMBv1),” EternalBlue allows an attacker to execute arbitrary code.</p>\n<p>EternalBlue was addressed by the update “MS17-010,” published in March 2017.\nReference: <a href=\"https://docs.microsoft.com/ja-jp/security-updates/securitybulletins/2017/ms17-010\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Microsoft Security Bulletin MS17-010 - Critical | Microsoft Docs</a></p>\n<p>EternalBlue was used by the ransomware “WannaCry,” which spread worldwide. It reportedly affected around 230,000 computers, and the total global damage caused by WannaCry is estimated to have reached 4 billion USD.</p>\n<p>In Japan as well, many companies, including Hitachi, were affected.</p>\n<p>Reference: <a href=\"https://www.kaspersky.co.jp/resource-center/threats/ransomware-wannacry\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Everything About the WannaCry Ransomware | Kaspersky</a>\nReference: <a href=\"https://monoist.atmarkit.co.jp/mn/articles/1807/04/news042.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">What Did Hitachi Learn from the WannaCry Incident? Turning It into an IoT Security Service: IoT Security (1/2) - MONOist</a></p>\n<p>EternalBlue was included in the offensive tools leaked by the group known as “Shadow Brokers.”\nThese tools are said to have been leaked from the NSA, although the truth of that remains unclear.</p>\n<p>When searching the internet, you will find pages that describe EternalBlue as a vulnerability and others that use the name for the exploit itself. Based on reports from ESET and Trend Micro, however, it seems most accurate to regard EternalBlue as an exploit that abuses the vulnerability addressed by “MS17-010.”</p>\n<p>Reference: <a href=\"https://www.welivesecurity.com/2018/05/10/one-year-later-eternalblue-exploit-wannacryptor/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">One year later: EternalBlue exploit more popular now than during WannaCryptor outbreak | WeLiveSecurity</a>\nReference: <a href=\"https://blog.trendmicro.co.jp/archives/15154\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Trend Micro Security Blog: Explaining How EternalBlue, the Vulnerability Exploit That Spread WannaCry, Works | Trend Micro Security Blog</a></p>\n<p>An interesting point is that by the time EternalBlue was publicly leaked, a patch for “MS17-010” had already been released.</p>\n<p>Reference: <a href=\"https://msrc-blog.microsoft.com/2017/04/14/protecting-customers-and-evaluating-risk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Protecting customers and evaluating risk – Microsoft Security Response Center</a></p>\n<p>Despite the availability of a patch, EternalBlue was still abused around the world.\nAccording to <a href=\"https://press.avast.com/ja-jp/avast-wannacry\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">research by Avast</a>, even one year after the WannaCry outbreak, 29% of Windows PCs worldwide still had not been patched and remained vulnerable.</p>\n<p>If critical patches had simply been applied, infection of individual machines—or at least the spread of the infection—could likely have been prevented. In that sense, this is probably an incident we should learn from.</p>\n<h2 id=\"the-mechanism-of-eternalblue\" style=\"position:relative;\"><a href=\"#the-mechanism-of-eternalblue\" aria-label=\"the mechanism of eternalblue permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Mechanism of EternalBlue</h2>\n<p>Now, let’s take a closer look at the attack mechanism used by EternalBlue.</p>\n<p>The vulnerability exploited by EternalBlue causes a buffer overflow in the Large Non-PagedPool region during File ExtendedAttribute (FEA) processing by the Windows SMB1.0 kernel function <code class=\"language-text\">srv!SrvOs2FeaListToNt</code>.</p>\n<p>More specifically, when the kernel function <code class=\"language-text\">srv!SrvOs2FeaListToNt</code> converts FEA (extended file attributes) into NTFEA (Windows NT FEA), it calls <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> to calculate the size of the FEA list. A bug in that size calculation leads to the overflow.</p>\n<p>According to Trend Micro’s analysis, the overflow occurs through the following flow.</p>\n<blockquote>\n<ol>\n<li>The <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> function calculates the size of the FEA list and updates the received FEA list size.</li>\n<li>At that point, because of a type conversion to the wrong data type (<code class=\"language-text\">WORD</code>, an unsigned 2-byte integer in C), the FEA size becomes larger than the original value.</li>\n<li>Because the list size is inaccurate, an overflow occurs in the non-paged pool during the iterative conversion of the FEA list into an NTFEA list.</li>\n</ol>\n<p>Citation: <a href=\"https://blog.trendmicro.co.jp/archives/15154\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Trend Micro Security Blog: Explaining How EternalBlue, the Vulnerability Exploit That Spread WannaCry, Works | Trend Micro Security Blog</a></p>\n</blockquote>\n<h2 id=\"what-is-file-extendedattribute-fea\" style=\"position:relative;\"><a href=\"#what-is-file-extendedattribute-fea\" aria-label=\"what is file extendedattribute fea permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What Is File ExtendedAttribute (FEA)?</h2>\n<p>So what exactly is FEA (extended file attributes), the feature whose vulnerability is abused by EternalBlue?</p>\n<p>According to RFC8276, extended file attributes are provided to associate opaque metadata that is not interpreted by the file system with files and directories.</p>\n<p>In other words, you can think of them as a mechanism that allows users to associate metadata with a file even though the file system itself does not interpret that metadata.</p>\n<p>On the other hand, permissions and attributes such as atime and ctime are strictly defined by the file system as ordinary attributes and are treated separately from FEA.</p>\n<p>Reference:</p>\n<ul>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E6%8B%A1%E5%BC%B5%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%B1%9E%E6%80%A7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Extended file attribute - Wikipedia</a></li>\n<li><a href=\"https://tex2e.github.io/rfc-translater/html/rfc8276.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">RFC 8276 - File System Extended Attributes in NFSv4 (Japanese translation)</a></li>\n</ul>\n<h3 id=\"the-srvsrvos2fealistsizetont-function\" style=\"position:relative;\"><a href=\"#the-srvsrvos2fealistsizetont-function\" aria-label=\"the srvsrvos2fealistsizetont function permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> Function</h3>\n<p>EternalBlue exploits the buffer overflow that occurs when the FEA list size calculated by <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> is handled.</p>\n<p><code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> is a function included in <code class=\"language-text\">SRV.sys</code>, the kernel driver for the SMB protocol, and it is responsible for converting an OS/2 FEA list into an NT FEA list.</p>\n<p>Reference:</p>\n<ul>\n<li><a href=\"https://medium.com/@singhavijeet1994/eternal-series-part-1-eternal-blue-and-analysis-windows-7-and-8-1-c631572e549b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Eternal Series — Part 1 | Eternal Blue and Analysis | Windows 7 and 8.1 Exploitation | Hack Windows 7 and 8.1 Remotely | by Abhijeet Singh | Medium</a></li>\n</ul>\n<h2 id=\"about-the-smb-protocol\" style=\"position:relative;\"><a href=\"#about-the-smb-protocol\" aria-label=\"about the smb protocol permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>About the SMB Protocol</h2>\n<p>We have now seen that the <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> function exploited by EternalBlue exists in the kernel driver <code class=\"language-text\">SRV.sys</code> used by the SMB protocol.</p>\n<p>But what exactly is the SMB protocol in the first place? (I didn’t really know.)\nI had heard the name often, but I never had a solid grasp of what it actually was.</p>\n<p>The SMB protocol is a collective name for communication protocols used mainly in Windows environments for things like file sharing and printer sharing.</p>\n<p>The SMB protocol can operate over several different protocols, and SMBv1 can also run directly over TCP on port 445 through a feature called direct hosting SMB.</p>\n<p>Originally, the SMB protocol was a file-sharing protocol for file servers running on OS/2-based file server operating systems. It became widely used after file server functionality was added to Windows 3.x and 9x.</p>\n<p>That historical background also seems to explain why <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> performs a conversion from OS/2 FEA lists to NT FEA lists.</p>\n<p>Reference:</p>\n<ul>\n<li><a href=\"https://ja.wikipedia.org/wiki/Server_Message_Block\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Server Message Block - Wikipedia</a></li>\n<li><a href=\"https://www.atmarkit.co.jp/ait/articles/1507/02/news026.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Part 7: An Overview of the SMB File-Sharing Protocol: Windows Network Basics - @IT</a></li>\n<li><a href=\"https://docs.oracle.com/cd/E19253-01/820-5121/gfhaq/index.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Explanation of the SMB Protocol</a></li>\n</ul>\n<h2 id=\"eternalblue-test-environment\" style=\"position:relative;\"><a href=\"#eternalblue-test-environment\" aria-label=\"eternalblue test environment permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>EternalBlue Test Environment</h2>\n<p>Now that I had roughly finished researching how EternalBlue is exploited and what environment is needed, I wanted to verify the attack technique in practice.</p>\n<p>For this validation, I prepared the following environment.</p>\n<h3 id=\"target-machine-virtual-machine\" style=\"position:relative;\"><a href=\"#target-machine-virtual-machine\" aria-label=\"target machine virtual machine permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Target Machine (Virtual Machine)</h3>\n<ul>\n<li>\n<p>Windows 7 64bit (IP:169.254.100.60)</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">kd> vertarget\n\nWindows 7 Kernel Version 7601 (Service Pack 1) MP (1 procs) Free x64\nBuilt by: 7601.17514.amd64fre.win7sp1_rtm.101119-1850\nMachine Name:\nKernel base = 0xfffff800`02e1f000 PsLoadedModuleList = 0xfffff800`03064e90\nDebug session time: Mon Apr 26 01:19:52.742 2021 (UTC + 9:00)\nSystem Uptime: 0 days 0:08:03.468</code></pre></div>\n</li>\n</ul>\n<h3 id=\"attacker-machine-virtual-machine\" style=\"position:relative;\"><a href=\"#attacker-machine-virtual-machine\" aria-label=\"attacker machine virtual machine permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Attacker Machine (Virtual Machine)</h3>\n<ul>\n<li>Parrot OS (IP:169.254.100.10)</li>\n<li>WireShark</li>\n</ul>\n<h3 id=\"debug-machine-host\" style=\"position:relative;\"><a href=\"#debug-machine-host\" aria-label=\"debug machine host permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Debug Machine (Host)</h3>\n<ul>\n<li>Windows 10 Pro 20H2</li>\n<li>Hyper-V</li>\n<li>WinDbg 10.0.19041.685 X86</li>\n</ul>\n<h2 id=\"preparing-the-target-machine\" style=\"position:relative;\"><a href=\"#preparing-the-target-machine\" aria-label=\"preparing the target machine permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Preparing the Target Machine</h2>\n<h3 id=\"enabling-kernel-mode-debugging\" style=\"position:relative;\"><a href=\"#enabling-kernel-mode-debugging\" aria-label=\"enabling kernel mode debugging permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Enabling Kernel-Mode Debugging</h3>\n<p>First, enable kernel debugging on the target machine’s Windows 7.</p>\n<p>Because the target machine in this case is a virtual machine built with Hyper-V, I configured the serial port used for debugging as a named pipe.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 748px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3a736d6c270b9232fa798f7a249d1527/f8915/blue.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 49.16666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABrUlEQVQoz11S2Y7iQAzM/38WL7NaLYfYgSGQkKNz3xckCJZaVyMQIpLluN0uV9ltLPc2QqVQliXKosBut0OSJGjqGmmSoqoquK6rfdM0qOWcPk1TXdO2LcZxxOl0wuVygWF7HnzXgQoCKBVIscS+QnfqUQ81uqHDNE44n88vY/ETZBgGfcaGhRAyVj82fm89HNwIXhAjSHL4QQLLsbD3D/AjpZmSEZnTZ1mm/9/jOI4fgFacYa9iJGmOtuvArxEZ33+/Mf8zh7kzsdlssFqt9DgWi4W27Xarz9frNebzOSIB9H0PRlid4aoQXdvgdrvhnxjnwoLZbAbTNHV3x3GkwNfesiwZj0IgY2J8PB410zBQMOJCJEqyF3bjNGES4zzCMNQdCcKYTfq+f1kn95/GOVKuluyFSjoeUFc1rterlsxNPtksl0u95Vo2W+S5MMk0CBu8G+eYS96IM2ETJfBk22TCj8+BctjRtm2dYwMugTne+7QXYJSW8PxAyyMzsiQQJXNOv76+9DI4x+cbpH83nhHMOuxhjNNFOjwS9/v9JZlglPJ40A9Zn0CfgGT5HyL46XhL9htsAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/3a736d6c270b9232fa798f7a249d1527/8ac56/blue.webp 240w,\n/static/3a736d6c270b9232fa798f7a249d1527/d3be9/blue.webp 480w,\n/static/3a736d6c270b9232fa798f7a249d1527/0bb9d/blue.webp 748w\"\n              sizes=\"(max-width: 748px) 100vw, 748px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/3a736d6c270b9232fa798f7a249d1527/8ff5a/blue.png 240w,\n/static/3a736d6c270b9232fa798f7a249d1527/e85cb/blue.png 480w,\n/static/3a736d6c270b9232fa798f7a249d1527/f8915/blue.png 748w\"\n            sizes=\"(max-width: 748px) 100vw, 748px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/3a736d6c270b9232fa798f7a249d1527/f8915/blue.png\"\n            alt=\"image-20210425142147502\"\n            title=\"image-20210425142147502\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Next, log in to the target machine and enable kernel-mode debugging.</p>\n<p>You can enable it by running the following commands from a command prompt started with administrator privileges.</p>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">bcdedit /debug on\nbcdedit /dbgsettings serial debugport:1 baudrate:115200\nshutdown /r /t 0</code></pre></div>\n<p>It is also fine to launch <code class=\"language-text\">Msconfig.exe</code>, specify the COM1 port from Advanced options, enable debugging, and then reboot.</p>\n<h3 id=\"verifying-smbv1-is-enabled\" style=\"position:relative;\"><a href=\"#verifying-smbv1-is-enabled\" aria-label=\"verifying smbv1 is enabled permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Verifying SMBv1 Is Enabled</h3>\n<p>Next, on the target host’s Windows 7, verify that SMBv1 is enabled.</p>\n<p>If <code class=\"language-text\">DEPENDENCIES: MRxSmb10</code> is present in the output of the following command, you can conclude that SMB 1.0 is enabled.</p>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">sc.exe qc lanmanworkstation</code></pre></div>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 634px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/847de4493cf443ed9f77787bcf91b12d/374ac/2.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 47.91666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABBUlEQVQoz5WR6Y6DMAyEQ7nvo1AoUjkEvP8juvqsBq1W2nb7YxST4PHM2NzvdwG3202GYZDr9apo2/asq6pSRFEkxpj3KIpCQJIkkmXZibIsxXXdzwS/AdHj8VBF1HmeS5qmqoga4qZp9L2ua/3+QGrUKqR930sYhvrAyYBt22QcR1XteZ7iX4Q0rusqx3GoEhq7rpNpmnSQjcZGEsexDuUOJ9y9MjbawFIggoSfsY1NGrDPeblcNFcLx3HOmjdwKlyWReZ5PjNiIhvm9H3/m8UYbSAvlL2mqMJ931X5l5s2p1ws2OCxSaZsOAgCHfrT3ltCQqXR5kWOBI5KIgDka8PHyV+ETz1s2+iG7W7KAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/847de4493cf443ed9f77787bcf91b12d/8ac56/2.webp 240w,\n/static/847de4493cf443ed9f77787bcf91b12d/d3be9/2.webp 480w,\n/static/847de4493cf443ed9f77787bcf91b12d/14369/2.webp 634w\"\n              sizes=\"(max-width: 634px) 100vw, 634px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/847de4493cf443ed9f77787bcf91b12d/8ff5a/2.png 240w,\n/static/847de4493cf443ed9f77787bcf91b12d/e85cb/2.png 480w,\n/static/847de4493cf443ed9f77787bcf91b12d/374ac/2.png 634w\"\n            sizes=\"(max-width: 634px) 100vw, 634px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/847de4493cf443ed9f77787bcf91b12d/374ac/2.png\"\n            alt=\"image-20210425111203549\"\n            title=\"image-20210425111203549\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>With that, preparation on the target machine side is complete.</p>\n<h2 id=\"kernel-debugging-with-windbg\" style=\"position:relative;\"><a href=\"#kernel-debugging-with-windbg\" aria-label=\"kernel debugging with windbg permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Kernel Debugging with WinDbg</h2>\n<h3 id=\"installation\" style=\"position:relative;\"><a href=\"#installation\" aria-label=\"installation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installation</h3>\n<p>Set up WinDbg on the host-side Windows 10 and use it to perform kernel debugging on the target machine.</p>\n<p>WinDbg is a kernel-mode and user-mode debugger included in Debugging Tools for Windows.\nUsing WinDbg also makes it possible to debug Windows system drivers.</p>\n<p>At the time of writing, there are two major ways to set up WinDbg.</p>\n<ol>\n<li>Get the UWP app “WinDbg Preview” from the Microsoft Store</li>\n<li>Get the Windows SDK, which includes Debugging Tools for Windows, from <a href=\"https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Windows 10 SDK</a></li>\n</ol>\n<p>Reference: <a href=\"https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs</a></p>\n<p>The easiest method is to get the preview build of WinDbg from the Microsoft Store, but because it had not yet been officially released and still had many issues, installing the Windows SDK was the safer option.</p>\n<p>Once the Windows SDK installation completes with the Debugging Tools for Windows checkbox enabled, a folder called <code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\</code> is created.</p>\n<p>WinDbg is included there.</p>\n<p>Because the target machine this time is 64-bit Windows 7, I used the WinDbg located under <code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64\\</code>.</p>\n<h3 id=\"connecting-to-the-target-machine-with-windbg\" style=\"position:relative;\"><a href=\"#connecting-to-the-target-machine-with-windbg\" aria-label=\"connecting to the target machine with windbg permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Connecting to the Target Machine with WinDbg</h3>\n<p>Launch WinDbg from the downloaded <code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64\\</code> directory <strong>with administrator privileges</strong>.</p>\n<p>Be careful: if you launch it as a normal user, kernel debugging will fail with the error <code class=\"language-text\">Kernel debugger failed initialization, Win32 error 5 Access is denied</code> when connecting to the target machine.</p>\n<p>After launching WinDbg as administrator, choose [File] > [Kernel Debug], and connect to the target machine using a named pipe as shown in the image below.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 401px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/195ac5d45d15a09936874f470b2ff5dd/9144d/3.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 101.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQ4y51UbVPaQBDO//8L/Wpn7DgWEcEXdKZ+6PgGCEEJtoAgEJIQAnlPRHi6e0yoCrS2mXlm9+72ntt7di/ShXyPsTWG5/kEF0EYkPXg+z5c10X8/IyPfHPGfA4p8EOEUSQ2+0TkEZFH/ng8RkTz1mgE23YQxzEsy8JsNl8QzN/a5JO2tz8hk0khnz/F0dERstksDg8PkcvlxJgtj4+Pj8X45OREIJ/P4+DgAPv7+xRzht1UDttfMpB2drawt/eVSBeLC6SXfjqdXiKTybyK+b2WSu1hZ3cXW1ufIbmOh6FuYqAOoGs6tP4A//K9vLwsbbfbhWRZIxjGkHSyoWkaTNKM50ZkJ5OJ0E3YkYkR+Vwwx3HegPcGQYBarQap3++h2XoUmx7qdZimBZXmWo+P5JtoNBriQIv8McWEYSRimSQBj7kr7u7u6MpUUc5GVVW02x30ej0Mh0ORbbvdFmtMzOuGYaDT6Qj/dZVns5nwFUXhK1tQKDMe8GmsxTP1Hgey7ff74lrLfnvXJq/nBCGn22w28fT0JPqOteCsp9OpABNylrzG44TgPZaEo4mDcu0n2uoQnYGJoU2E8RxTukUUheIwvj5fNwzDlSxXCG0vRKtvoNUlzVQDxsSHHc0QUzeE9Ay5KCwLv5R1r2OFkAM3acIa8vXZchUT8f9IGEXxii7rNm0qysYM14n8N39tUbh6m4I+ijd9uE7D//0EIYvO7ZAgIjj0j9QmAQx7YU0nEP3J4JjE50L5/sJyYuLp8WNP4LoeosDHQ89CtaWiICu4b3RQbGjoDXT8eFBQKpVQp5el6zrUgSb+AxW5ioFuoFyuQOLFBIpSp011XN7e4/Sygvz3Is4ubnF2JaNckVEqFnB1dY2bQgGyzHMVFOmA6+sbyNUqvp2f4xfIseDzcfSdwgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/195ac5d45d15a09936874f470b2ff5dd/8ac56/3.webp 240w,\n/static/195ac5d45d15a09936874f470b2ff5dd/b3c31/3.webp 401w\"\n              sizes=\"(max-width: 401px) 100vw, 401px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/195ac5d45d15a09936874f470b2ff5dd/8ff5a/3.png 240w,\n/static/195ac5d45d15a09936874f470b2ff5dd/9144d/3.png 401w\"\n            sizes=\"(max-width: 401px) 100vw, 401px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/195ac5d45d15a09936874f470b2ff5dd/9144d/3.png\"\n            alt=\"image-20210425143834960\"\n            title=\"image-20210425143834960\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>If a prompt opens and running <code class=\"language-text\">dt nt!_*</code> prints a symbol list like the one below, the connection has succeeded.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 832px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/5bf59694043a70a0ca10ceeaafc4f7ac/ef6b9/4.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.16666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAABnklEQVQ4y3WTWYvCUAyF+/9/kO8+KIooiI772qK27ktr3TP9AilOHS+ENJfk5OTk1vGDlURRKIfDIbVTGEocx3I+n1MfRZFafLnI7Xb7as7PT0c8zxPPdcV1PZlMJmpuEs/nc1ksFhL4gSyXS/3GuNfGp5Mcj0fZbrcaD4dDcUqlknS7XWk2m9LpdPSS4vV6rUkwxOiOv16vapeE6ePxEM7r9VLfbrfFqVarMp1OFQg/Ho/V+v2+xnhimNj4WJjIQhPO8/lUrwzL5bK0Wi0tNkAkYGzG22w26mENUPbAzgCRyanX6zIajRR9MBgoI74BpgHgJJLj+77sdjvVbLVa6ZLeGZLvoFUQBNJoNLQIZgCaniYHI9/v91QvxjXGH4CIu9/vtbsthCawYGQ8+r0fwO3uDyAjUqDPIwFhvNlspqNyhyfmnjwaMjKN/mWIhmj3vmXTzthSbN4Aidn0B2Cv11MGsCGRAuLsiBRhtlX7/gDktXNYAs+nVqtJpVJRxvYrZsG/PZsUEIELhYIUi0XJ5/OSy+UU9P0vseKsZRn+AnqG1cCPblNMAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/5bf59694043a70a0ca10ceeaafc4f7ac/8ac56/4.webp 240w,\n/static/5bf59694043a70a0ca10ceeaafc4f7ac/d3be9/4.webp 480w,\n/static/5bf59694043a70a0ca10ceeaafc4f7ac/de44a/4.webp 832w\"\n              sizes=\"(max-width: 832px) 100vw, 832px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/5bf59694043a70a0ca10ceeaafc4f7ac/8ff5a/4.png 240w,\n/static/5bf59694043a70a0ca10ceeaafc4f7ac/e85cb/4.png 480w,\n/static/5bf59694043a70a0ca10ceeaafc4f7ac/ef6b9/4.png 832w\"\n            sizes=\"(max-width: 832px) 100vw, 832px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/5bf59694043a70a0ca10ceeaafc4f7ac/ef6b9/4.png\"\n            alt=\"image-20210425144046592\"\n            title=\"image-20210425144046592\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>On the first connection, the kernel on the target machine is still running, so it will likely show Busy and you may be unable to enter commands.</p>\n<p>To make WinDbg accept commands, press <code class=\"language-text\">Ctrl+Break</code> (or <code class=\"language-text\">Ctrl+Fn+B</code> if your keyboard has no Break key), or click the Break button.</p>\n<p>While kernel debugging is active, you cannot operate the target machine. If you want to use the target machine again, press <code class=\"language-text\">F5</code> or click the Go button.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 641px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4109c03f368fb927b1b409d11c0347e0/c7dcc/5.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 42.91666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABOElEQVQoz32S246CQBBE5/8/y5jIkzxhIioXFcULeCUBFWtzOpnNxs0uSaWrZ+jq7gK3XC61Xq+12WxUFIV87rFarSxyR8yyzEAOuKfW17u2bRVFkcIw1GQyUZ7nms1mxqfTqcbjsebzuXHeoaiua/V9r8/ner3KdV2n7XZrQmmaWic4kYkQOh6Pulwu2u/3ut/ver/fJvAZb7ebHORnt6qqrBPxfD7rdDpZ3O121hjQ4Pl86vF4fIOcZg4/mGyxWNhESZJYzmpM6j2Cc48wnOg5A2ADzR1CeOaF4QChOI7tjELWBYiTHw4HlWVpE8OZmtxhOKIUc0gniihmbc7w6PV6/QJWec7K5A5/2B3TMbVpGouccwbg/4FVqcFLNxqNNBgMNBwO7RcJgsDA12Vq4G34C7yD9/j+BZUbnj8ILmS5AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/4109c03f368fb927b1b409d11c0347e0/8ac56/5.webp 240w,\n/static/4109c03f368fb927b1b409d11c0347e0/d3be9/5.webp 480w,\n/static/4109c03f368fb927b1b409d11c0347e0/de042/5.webp 641w\"\n              sizes=\"(max-width: 641px) 100vw, 641px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/4109c03f368fb927b1b409d11c0347e0/8ff5a/5.png 240w,\n/static/4109c03f368fb927b1b409d11c0347e0/e85cb/5.png 480w,\n/static/4109c03f368fb927b1b409d11c0347e0/c7dcc/5.png 641w\"\n            sizes=\"(max-width: 641px) 100vw, 641px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/4109c03f368fb927b1b409d11c0347e0/c7dcc/5.png\"\n            alt=\"image-20210425144334695\"\n            title=\"image-20210425144334695\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<h2 id=\"getting-a-reverse-shell-by-exploiting-the-vulnerability\" style=\"position:relative;\"><a href=\"#getting-a-reverse-shell-by-exploiting-the-vulnerability\" aria-label=\"getting a reverse shell by exploiting the vulnerability permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Getting a Reverse Shell by Exploiting the Vulnerability</h2>\n<p>Now that I was ready to observe the behavior of the kernel driver, I went ahead and reproduced the EternalBlue attack.</p>\n<p>For the attack, I used Metasploit’s <code class=\"language-text\">windows/smb/ms17_010_eternalblue</code>.</p>\n<p>When I executed the exploit from the attack server, I was able to obtain a shell with SYSTEM privileges.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 641px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4109c03f368fb927b1b409d11c0347e0/c7dcc/5-165352297411874.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 42.91666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABOElEQVQoz32S246CQBBE5/8/y5jIkzxhIioXFcULeCUBFWtzOpnNxs0uSaWrZ+jq7gK3XC61Xq+12WxUFIV87rFarSxyR8yyzEAOuKfW17u2bRVFkcIw1GQyUZ7nms1mxqfTqcbjsebzuXHeoaiua/V9r8/ner3KdV2n7XZrQmmaWic4kYkQOh6Pulwu2u/3ut/ver/fJvAZb7ebHORnt6qqrBPxfD7rdDpZ3O121hjQ4Pl86vF4fIOcZg4/mGyxWNhESZJYzmpM6j2Cc48wnOg5A2ADzR1CeOaF4QChOI7tjELWBYiTHw4HlWVpE8OZmtxhOKIUc0gniihmbc7w6PV6/QJWec7K5A5/2B3TMbVpGouccwbg/4FVqcFLNxqNNBgMNBwO7RcJgsDA12Vq4G34C7yD9/j+BZUbnj8ILmS5AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/4109c03f368fb927b1b409d11c0347e0/8ac56/5-165352297411874.webp 240w,\n/static/4109c03f368fb927b1b409d11c0347e0/d3be9/5-165352297411874.webp 480w,\n/static/4109c03f368fb927b1b409d11c0347e0/de042/5-165352297411874.webp 641w\"\n              sizes=\"(max-width: 641px) 100vw, 641px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/4109c03f368fb927b1b409d11c0347e0/8ff5a/5-165352297411874.png 240w,\n/static/4109c03f368fb927b1b409d11c0347e0/e85cb/5-165352297411874.png 480w,\n/static/4109c03f368fb927b1b409d11c0347e0/c7dcc/5-165352297411874.png 641w\"\n            sizes=\"(max-width: 641px) 100vw, 641px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/4109c03f368fb927b1b409d11c0347e0/c7dcc/5-165352297411874.png\"\n            alt=\"image-20210426105539203\"\n            title=\"image-20210426105539203\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>This confirmed that the EternalBlue attack could be reproduced in the environment built for this article.</p>\n<h2 id=\"practicing-kernel-debugging-with-windbg\" style=\"position:relative;\"><a href=\"#practicing-kernel-debugging-with-windbg\" aria-label=\"practicing kernel debugging with windbg permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Practicing Kernel Debugging with WinDbg</h2>\n<p>Now let’s finally look at the behavior of <code class=\"language-text\">SRV.sys</code> in WinDbg while the exploit is running.</p>\n<p>Because I was debugging a kernel driver, I proceeded while referring to the steps in <a href=\"https://docs.microsoft.com/ja-jp/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Debugging Windows Drivers</a>.</p>\n<p>First, after <strong>enabling Debugger Markup Language (DML)</strong>, display the command reference help.</p>\n<p>This help is extremely useful.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">kd> .prefer_dml 1\nkd> .hh .prefer_dml</code></pre></div>\n<p>Next, display the list of loaded kernel modules with the <code class=\"language-text\">lm</code> command.</p>\n<p>A number of modules will be displayed, and among them you need to identify <code class=\"language-text\">SRV.sys</code>, which is the target this time.\nYou can search for strings with <code class=\"language-text\">Ctrl+f</code>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 381px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/c6be1bcbac9abf2edaa6d270ba232c00/2add2/7.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 60.416666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAAB+UlEQVQoz4WTSY+bQBSE/f9/R47JJckhkZIZKfICZrGNF/CCsTWKPM6wGDAee1gqXY2MguYQJIRo+n2vXlXT6ff7cBwHpmlis9nAsizMZjNouo70FOIpyvHJDGHsMzw4MQbuGZvnFH+OR0wmFsbjsdzveR7KskRHURQJHI1GEsiPhOq6gUQAj2mBr1YE+/AKoAIvd7vFYDCAbdswDANBEMj1qqrQoUJ20TQNq9VKdJ3IjZqmIwp9hJcSj0JZ301xuRWycCuArJvP56Kx3gayE0FUuF6v5SY2UBRVKIzwci7xfXbCj0XcADke6+5WtYCUzA/D4RCu62K5XGI6nUIV70kc4RAX+GnH2Ac34VHVAP+1qgWkX4TcgRyHa8OhJj08JAUeBDC9Fo2H/wUyCAIJI5Q+EhgLYJiV+DKJYIqU86JsjUyvOXIYhm1gHYLWKKSPtcIIz0LhRyPE4zKB518bYK/Xw2KxeJ8yFxgGFfLJgAhUVBVxFEgPP48jaLszK5qUCeRk71K+KySQnamS3hiGKT2kwl+rRJ7DW16PvNvVHrI5T0RrZHrAVLvdrlTIgOhhfWwC7MMcHxQf3ssVb8JDIrfeTnrIOk7o+76ESSBV8SboKH4n3uzsOEu8ZmcEWYFv4hyq3hnT3xeMnzLEl1wcqZPcx1r+Yfex/wLBf2ZMv8b3hgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/c6be1bcbac9abf2edaa6d270ba232c00/8ac56/7.webp 240w,\n/static/c6be1bcbac9abf2edaa6d270ba232c00/25250/7.webp 381w\"\n              sizes=\"(max-width: 381px) 100vw, 381px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/c6be1bcbac9abf2edaa6d270ba232c00/8ff5a/7.png 240w,\n/static/c6be1bcbac9abf2edaa6d270ba232c00/2add2/7.png 381w\"\n            sizes=\"(max-width: 381px) 100vw, 381px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/c6be1bcbac9abf2edaa6d270ba232c00/2add2/7.png\"\n            alt=\"image-20210425201017305\"\n            title=\"image-20210425201017305\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>I found what looked like <code class=\"language-text\">SRV.sys</code>, and when I clicked it, the following details were displayed.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">kd> lmDvmsrv\nBrowse full module list\nstart    end        module name\n93269000 932ba000   srv        (deferred)             \n    Image path: \\SystemRoot\\System32\\DRIVERS\\srv.sys\n    Image name: srv.sys\n    Browse all global symbols  functions  data\n    Timestamp:        Sat Nov 20 17:45:29 2010 (4CE78AA9)\n    CheckSum:         0005542B\n    ImageSize:        00051000\n    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4\n    Information from resource tables</code></pre></div>\n<p>It appears that <code class=\"language-text\">SRV.sys</code> is loaded starting at address <code class=\"language-text\">93269000</code>.</p>\n<p>Next, I identified the address of the problematic function inside <code class=\"language-text\">SRV.sys</code>.\nRunning the <code class=\"language-text\">srv!a*</code> command displayed the functions in <code class=\"language-text\">SRV.sys</code> alphabetically.</p>\n<p>The vulnerable function is <code class=\"language-text\">SrvOs2FeaListSizeToNt</code>, but because the problematic function is called from <code class=\"language-text\">srv!SrvSmbOpen2</code>, I first identified the address of <code class=\"language-text\">srv!SrvSmbOpen2</code>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 654px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3b2e9850499605353e98bd30eb06bee9/68e9c/8.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 12.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAAsTAAALEwEAmpwYAAAArUlEQVQI1z2OSwuDMBCE/f8/pJfeC4WeWpBGU6KJKamCfSS+RRBvXqbNQl34YJdhZjYYhgH/cc7h+f6geFncpMY5vEIphbIsobVG13VEXddomoY0IQTdy7JgnmcE4zhugXXlEEmD/Ylhd7jgGCbI85yMjDHEcQwpJfq+x7qu8N62bTFNE4VaaxH4pu3DqsLDGIgbJ+5aIU1TcM6JoihgfnoURbR7sixDkiRU6gu/Rj7Xtl5+mUUAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/3b2e9850499605353e98bd30eb06bee9/8ac56/8.webp 240w,\n/static/3b2e9850499605353e98bd30eb06bee9/d3be9/8.webp 480w,\n/static/3b2e9850499605353e98bd30eb06bee9/d7085/8.webp 654w\"\n              sizes=\"(max-width: 654px) 100vw, 654px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/3b2e9850499605353e98bd30eb06bee9/8ff5a/8.png 240w,\n/static/3b2e9850499605353e98bd30eb06bee9/e85cb/8.png 480w,\n/static/3b2e9850499605353e98bd30eb06bee9/68e9c/8.png 654w\"\n            sizes=\"(max-width: 654px) 100vw, 654px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/3b2e9850499605353e98bd30eb06bee9/68e9c/8.png\"\n            alt=\"image-20210425201740669\"\n            title=\"image-20210425201740669\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>After confirming that <code class=\"language-text\">srv!SrvSmbOpen2</code> is located at <code class=\"language-text\">932a156f</code>, I set a breakpoint on the function with the following command.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">bp srv!SrvSmbOpen2</code></pre></div>\n<p>You can verify breakpoints with the <code class=\"language-text\">bl</code> command or from the Disassembly window.</p>\n<p>If you open the Disassembly window with <code class=\"language-text\">Alt+Shift+7</code>, the address where the breakpoint is set is highlighted.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 960px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/ba808daf6d077886ceab59fc100ededd/77672/9.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB7klEQVQ4y42T25KaQBCGff83SSUXqVSqUqnam1xk92Yr6nIeAWURFpCDgqXI6d+eAY1GTTJVzQw9zEd3/z2jh8cpHh4neJqaGBtLYc+aI4yvJ8zDmC3vGt//OWHi/KePXzBSVBWaIsEyGeqqBB9pskK+yYCuxf+N/jtmWRhNJQWSJMFgDOXhIDaCMETXdX9F8O2WHvy7pu2BujHD6IWAsixB13XEcYymaZAkCeq6xoF+wK0sSzFXVXXytQOEA9srII/QMBBSZByUpqk4vN/vhe12OzEf4Xx9E8g4UCagIsM0TRyqIeUgACXzz8ody3IZ4ZRqOH6BzWyUWxKlBpIoETOvdTfU6ZbdjHD22Yb1wYL/1Uf9VKP70SH7lmH7fYt2+Tutc8CVxgPQtOd9yooqQ9VU5EUuNhzXQZyQQG1zAbkHPgKt+aIXRVF6e3VeqfU6RGEkBMqy7Cboz7SvgbIMTdMElCvJVfY8D4x6k6+Lorjbl+c17IFc5QGo6wZ830e0Wp2AKt0ki24Aj3hF/vV6fWon3rMXQHvBb4o89KEuDruuS4cy0To8cp1+pKoK3t58AU2otjX1aDvU93zMFw5GxszGwnFJiCU8P4AfUCRxSpbQFYwoWpojimxTIFvnJFZGvlj4Q/ILo/dNXuD51wTvcgwlZkESd4gAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/ba808daf6d077886ceab59fc100ededd/8ac56/9.webp 240w,\n/static/ba808daf6d077886ceab59fc100ededd/d3be9/9.webp 480w,\n/static/ba808daf6d077886ceab59fc100ededd/e46b2/9.webp 960w,\n/static/ba808daf6d077886ceab59fc100ededd/e811e/9.webp 1060w\"\n              sizes=\"(max-width: 960px) 100vw, 960px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/ba808daf6d077886ceab59fc100ededd/8ff5a/9.png 240w,\n/static/ba808daf6d077886ceab59fc100ededd/e85cb/9.png 480w,\n/static/ba808daf6d077886ceab59fc100ededd/d9199/9.png 960w,\n/static/ba808daf6d077886ceab59fc100ededd/77672/9.png 1060w\"\n            sizes=\"(max-width: 960px) 100vw, 960px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/ba808daf6d077886ceab59fc100ededd/d9199/9.png\"\n            alt=\"image-20210426012153835\"\n            title=\"image-20210426012153835\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>At this point, when I re-ran the exploit, I confirmed that execution stopped and switched to debug mode at the moment the kernel function on which I had set the breakpoint was called.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 435px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/13d8e3584c97f3d3d31e279e410620e8/330eb/10.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 15.833333333333332%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAfklEQVQI121OSwrFIBDz/tcqLgS9gC5dFfwWP12oeYzQRxcdCDMkIRlmjIG1Ftd14b5v1FrRe8fXrLU+7zfHpJQQQuA4DiilwDmH1hqtNYQQdgEZnwAqewppk06Yc26O0Wcppf0hwTmHnPPGeZ5beweSp5Tyv2OM8N5jjLG5H1VJ5rZKClI9AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/13d8e3584c97f3d3d31e279e410620e8/8ac56/10.webp 240w,\n/static/13d8e3584c97f3d3d31e279e410620e8/267d1/10.webp 435w\"\n              sizes=\"(max-width: 435px) 100vw, 435px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/13d8e3584c97f3d3d31e279e410620e8/8ff5a/10.png 240w,\n/static/13d8e3584c97f3d3d31e279e410620e8/330eb/10.png 435w\"\n            sizes=\"(max-width: 435px) 100vw, 435px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/13d8e3584c97f3d3d31e279e410620e8/330eb/10.png\"\n            alt=\"image-20210426012304866\"\n            title=\"image-20210426012304866\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>This completes the setup for kernel debugging with WinDbg.</p>\n<h3 id=\"tracing-traffic-during-exploitation\" style=\"position:relative;\"><a href=\"#tracing-traffic-during-exploitation\" aria-label=\"tracing traffic during exploitation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Tracing Traffic During Exploitation</h3>\n<p>Before tracing memory behavior during the EternalBlue attack, I wanted to inspect the traffic and see what kind of attack packets were being sent.</p>\n<h3 id=\"smb-traffic-from-the-attack-server\" style=\"position:relative;\"><a href=\"#smb-traffic-from-the-attack-server\" aria-label=\"smb traffic from the attack server permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>SMB Traffic from the Attack Server</h3>\n<p>Surprisingly, there were only about 40 SMB packets sent from the attack server, so I started by looking at those.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/974964402402b19c700fd2d08c29f598/0b533/11.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAARlAAAEZQAGA43XUAAAB6ElEQVQoz2WSa3uaQBSE+f//px9agRitKF6SCEZBQG6KgspFkzSpaafnLOqTpB/mYVlm353ZRWpoJr61H6AMHNzeuWiS1KEDWbegDuY056FjRKQQmhmhP1tDnyXoTRPoHzWrJfleD5bdhW3r8FwdQTDEbNrB46SNdWJglz0iSyfY0rPYWyhyC2Vu41i5JAcHVumgKuZC0tQewHbvEcYTTO0hNpkDPzTEeJ3aiJMpfTPBPi8Yw3JG8CMTnj+md0P488JHdYxQHUJIbtCAFypI9x3MFz+QH3rX8b7qXeX4tc8NZPiximXaQvnUF/7ntxHeYeBEklwyBssmQTRaJKM49JHuOmKcVzqKY188vUBBuGoSUMFy3SKPJnR8GeHtfUxAE6e/JqQF7RrENzVw0SCgfgY2aHcd+7In5Pp1MgZzgOWmJTZiPb/enYEGA2VRJRMJvwB5waEWJ/NpY/bGlHCbd8X86+lBgBj4hyR5oSyM2afK2rVySZV3RVd4uPIiUgUwydpYbehP2P5E9TQQtX/9vqeEkYIouf0C/HyG21yjmjcCxlqlbXE5vJbnGcrJLfd7DQyvl/J/5SswroG8cEnJ5nTeNVSltB+AAR00V+GEbGDAZcxnxJW3VJk39c/QS0KG8EVdEtpeA/8ADWgQuFg1U/cAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/974964402402b19c700fd2d08c29f598/8ac56/11.webp 240w,\n/static/974964402402b19c700fd2d08c29f598/d3be9/11.webp 480w,\n/static/974964402402b19c700fd2d08c29f598/b0a15/11.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/974964402402b19c700fd2d08c29f598/8ff5a/11.png 240w,\n/static/974964402402b19c700fd2d08c29f598/e85cb/11.png 480w,\n/static/974964402402b19c700fd2d08c29f598/0b533/11.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/974964402402b19c700fd2d08c29f598/0b533/11.png\"\n            alt=\"image-20210426110622437\"\n            title=\"image-20210426110622437\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>The first thing that caught my eye was a suspicious <code class=\"language-text\">NT Trans Request</code> from the attack server.</p>\n<p>Looking at the packet information, <code class=\"language-text\">Total Data Count</code> is set to <code class=\"language-text\">66512</code>.\nThe data immediately after the SMB header is set to <code class=\"language-text\">0x00010000</code>, followed by a large amount of continuous data.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/a09cd3133aed7bfb6d7fcef81bd9f799/0b533/12.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 77.91666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAARlAAAEZQAGA43XUAAADOElEQVQ4y1VUS28TSRCeH7L8iNVy44B2BQhxQ2IltNKeYAEJ8foFK64clitawQESWAghARQggZV2EYrAiR17np4Z2/PweCZ+JI7tYCcz4/ijqu0EGOnT113V/VV1d9VIU6+zmP03h/n3Gp79J2Puf0WM59+r+OfNJ8yR7W3Ox1LWxeLqGEtZD0uT8eKKQ+yMbQSp2WigXHHg+T4c10WlUoHremLObBgGLNuG47hwPQ9F0xJryuWysNmlMkzLQqlUovUupKDqI5PJQNd1giY4v7aGQr4ARZahKirkQgG5bFZgjX00l8nH/tXVVeHnACXLhFRfj5DL5VAsFmGRwTRNMeYF1WoVURiKyK7jCLvPJ+ETUbZlyo6z9TwfQRCg0WxCqvqeiMiZsZhF6TMHQU2ARdvtLWxvb6NH6Ha76PV6B+gyuj10Oh0BaWd3FyuKhQ9ZA2tFD2a1BdNvwfbrCDcHqG300ejGaPYS4uSAo06C9W4q5i22Eepkl/r9AZqbHWy12+AHqtfrqDeaqIRtBJs7CNs7CDYG3yFqDyjjPtqdz/BbAwEO3tgaQDI0GflKC48ym5heXsdMpo7pj01cepHg18cxzs/H+G0mxrm5GBeexzj9MMYbM0HO7+PPxS5OTaU4ejfGSyMGQBlWyzoe5HZx+C5wbAr45cEYxwlH7gEnyPbzffLR/OQ08NPfwKwBXFwADt0GfrwD/PAX8EiF+CSvZOC13scfL4a48SrB1YUxrr9KcYFs14ivLKSCLy8McfPdAOWog1vLwJkne/h9boSzT0fIhiOSG0Hy6ZVdKlBV1aAQVFUV43xBFsVdoFrTNB0K1SP7dVVGFPjg7btxgjgdIk5S0tobZ1gLqqKudE2DoRsEnbqDBEiYfRygWJzYCRqtq9VCsTlNEuwNU6Qp8d5EkAuXi5ILtELCzBzAplbiF+eWchxn4h+3XJOqQAgOh0JoSDwajSaCUSiq36Z+5c22XRJsUs9GUSQKnUX27bZli0D8JZQhi6Vp+jXDsBaIDYqiiOPtc566hwNxF/Ex+Q6Fn+6UT/RVMBX8jWBNHIU36dr4jrgNZRLmtuMA/MfZt2t8t7Tnuwy/EfwCPHtus+t5UrMAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/a09cd3133aed7bfb6d7fcef81bd9f799/8ac56/12.webp 240w,\n/static/a09cd3133aed7bfb6d7fcef81bd9f799/d3be9/12.webp 480w,\n/static/a09cd3133aed7bfb6d7fcef81bd9f799/b0a15/12.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/a09cd3133aed7bfb6d7fcef81bd9f799/8ff5a/12.png 240w,\n/static/a09cd3133aed7bfb6d7fcef81bd9f799/e85cb/12.png 480w,\n/static/a09cd3133aed7bfb6d7fcef81bd9f799/0b533/12.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/a09cd3133aed7bfb6d7fcef81bd9f799/0b533/12.png\"\n            alt=\"image-20210426132307955\"\n            title=\"image-20210426132307955\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>This value, <code class=\"language-text\">0x00010000</code>, is <code class=\"language-text\">SizeOfListInBytes</code>, which is the key point in the buffer overflow vulnerability exploited by EternalBlue, and the empty data that follows appears to be a crafted FEA list.</p>\n<p>Based on this <code class=\"language-text\">SizeOfListInBytes</code> information, the SMB driver secures the memory buffer needed to convert the FEA list into an NTFEA list.</p>\n<p>It appears that the vulnerable <code class=\"language-text\">srv!SrvOs2FeaListSizeToNt</code> is called in order to allocate this buffer region.</p>\n<p>Reference: <a href=\"https://www.virusbulletin.com/virusbulletin/2018/06/eternalblue-prominent-threat-actor-20172018/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Virus Bulletin :: EternalBlue: a prominent threat actor of 2017–2018</a></p>\n<p>Next, a <code class=\"language-text\">Trans2 Secondary Request</code> with <code class=\"language-text\">Total Data Count</code> equal to <code class=\"language-text\">4096</code> is sent 15 times in a row.</p>\n<p>At first I had absolutely no idea what this was doing, but apparently, in order to exploit the vulnerability, after sending 605 empty FEA records, it is necessary to send a crafted 606th FEA record of size <code class=\"language-text\">0xf383 + 5</code> and a 607th FEA record of size <code class=\"language-text\">0xa8 + 5</code>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2fc24e6c5efcd6d642ff74c27fc92ad1/0b533/13.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAARlAAAEZQAGA43XUAAACAklEQVQ4y6WS6W7bMBCE9f5vVKcOiiIBkqDxKVkXdd+yZJ2+j8mSDoL8aN0AETDYlcj9tLOklOUKTPaCNFOg6U+IExlJModKeZYv6H0G3x/Dcl5hkxx3BMcbIQiniOIZeH1IMaKarrch1e0LTOcOq+YZhjVAWjygolxjA5T1E1btM7LiEbY3hOUOKd7DDe6h017T+Yko/Q3TvoPtD3E4TyFVVMBogUfDHiArH0XOC8rmCkyXDwIo5N+LYo39gEGNBPEv0YgAXgjoeguySpZssqmNoBsTmOYUsvIHzJrBMOmdTcWasniFpo3JOo3JmoPZMu2haMk0AgNVHUKymA1ZVqAoKlRVJxjDYqFBo1zXDfHNcVzk2RJZlqOuW/T95l3rD3XdGm3bQ/J9jwp1GryPNE2wWq2w3W6xXq+FNptr3O93pD12u51Y/5t2uy0knriuizAMBex8PuM7j3Q4HGBbFkE9slPjcrl8S9KeLDDGRIe82688N4Gn0wkBzS/LMjR1g67thNq2pUF36Ltr3jSNcND3/W3LRVEgz5dIk1RA0zRFHCd0qjn9KBAnXBSlALUE7yj+61C4JF4UBCE8mmEcxQgp5/PMCKyqKibjCaqq+q/VD8tRGIHLpU6id6D3CTj+BPzSKbuOA9/zBUjYjSIB5CPg93M+m6MsS3Gd+I04Ho839QY/8hxliSD5CAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/2fc24e6c5efcd6d642ff74c27fc92ad1/8ac56/13.webp 240w,\n/static/2fc24e6c5efcd6d642ff74c27fc92ad1/d3be9/13.webp 480w,\n/static/2fc24e6c5efcd6d642ff74c27fc92ad1/b0a15/13.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/2fc24e6c5efcd6d642ff74c27fc92ad1/8ff5a/13.png 240w,\n/static/2fc24e6c5efcd6d642ff74c27fc92ad1/e85cb/13.png 480w,\n/static/2fc24e6c5efcd6d642ff74c27fc92ad1/0b533/13.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/2fc24e6c5efcd6d642ff74c27fc92ad1/0b533/13.png\"\n            alt=\"image-20210426133625120\"\n            title=\"image-20210426133625120\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>The combined size of the 606th and 607th FEA records is <code class=\"language-text\">62517</code> in decimal, and the transfer is carried by exactly 15 packets of <code class=\"language-text\">4096</code> bytes.</p>\n<p>At the point where the 607th FEA record is sent, the flow appears to be that the buffer overflow is achieved by exceeding the <code class=\"language-text\">0x10000</code> region specified by <code class=\"language-text\">SizeOfListInBytes</code> and overwriting the next pool in memory, which belongs to <code class=\"language-text\">SRVNET.sys</code>.</p>\n<h3 id=\"kernel-debugging-during-the-buffer-overflow\" style=\"position:relative;\"><a href=\"#kernel-debugging-during-the-buffer-overflow\" aria-label=\"kernel debugging during the buffer overflow permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Kernel Debugging During the Buffer Overflow</h3>\n<p>Finally, I wanted to observe via kernel debugging how sending this 607th record overwrites the SRVNET buffer and part of SRVNET itself.</p>\n<p>I set the breakpoints like this.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">bp srv!SrvOs2FeaToNt+04d “.printf \\”MOV2: dst: %p src: %p size:%p\\\\n\\”,ebx,eax,poi(esp+8);g;”\n\nbp srv!SrvOs2FeaListToNt+0xd4</code></pre></div>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 731px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/636594634d60c56de83b1ea595690504/6e9ba/14.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 117.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAYAAAD6S912AAAACXBIWXMAAAsTAAALEwEAmpwYAAADmklEQVQ4y3VVy5LiRhDk/7/BXh88V0f45ItPPjjCs8OsACEhoUEvHpKQEOI5wAzkVhZulvGuO6KiW/3IrqzKarWsQYQvYpaXoO2EOn7qj6SP4Ua52iDO4SWFmp/O9dusdfwUj70h2nLmz78+o9Xr9dDtdNBuP2nf7XbwEgTY7baoyhKLRYXZbIrh0Mfo5QW9XhfhaKTz69UKeTZDFIYYj1NkMm45jgvP8wSoC9/38SKHFosF2JbLJTabDfKiQCCXpGmKMIwwmUwwl8vW6zXKstJ9RTEXJ/Zo9QXQcRxYloV+v68Hd7udAs7nczRNI5sLRFGkPefYE2y/3+s6ra5rbLdbAew7cN1vgLZtYySUDNBKaLHnfCle5XmuDlRVpd/suZesFov6DlDi57quUn9+ftYNpcbw2ndkPY5jiVOmgBwzPPxmWHgxgVu2ACrlfwE5Ji02AjE+PMSL6KUBIUXSJpABVMo3QKFsPEySRAFJhxt5wXA4lGzP9PDhcMDb2xvO5zNOp5Pa8XjUOU3KYDBQSuyZcQIZQBpjyDUaL2WW6T0vM3Esily/b1kmIGVDD0nTZPneQ3pHBZAaM0yvXl9fdWzWJCkuXAHtWALo+drHUfwthvVSewKummu8DAiN4AQ2rWVLhh3PwZeuBS8Qgfe72quH9RzTfIq8ynXPOBsjnaQaS4IylveA5/MFrfAhxvjnMcKfQkx+mSD+FKP+rQb+kEr5dYnmocHyYYn0U4rD7wecHk84nA7A5eYULpeLJuhdrOU+evD+8WD/bSNoB/A/+9jNpFLWkpRARBs1KIMS/pOPbJAhH+W32DJm1B7lw7gzBC17IMIeurB6ltLieL1f3yg32wZZmcH1XVSN1O1qedMgaTOmH3R4TYqjyWByHNFlMAyUUlXyRVmjyAt5YUKkSaqiZsyovff3d9UezWhRZUNtUTaUD40ZZUxYdqamWSWUFdcofHplqBrjBd9VCscEMTo0pUcwftN4EWkT1IBxbrP5QenRUz5hRoeMDWViKoWVRAAmxMiG481GnjOJ6e21IRA38xA9IuV7QF7GeT5fpMx5UiSoqZjj8XT1kJvpIWnxl8Dni7eat44x5IV8safT6e1t/G8TOX5MCnuCkgYbvSE94+n3AJcPppXSl/i5t1+ALdJIdPEKmAlgrQk43dXr/zcCDoawHalh20GvP0CUjDHNCrVgFGMUJRhPM6nhDJNZ/kPjelXLi73e4SvLVu4EGdNPBgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/636594634d60c56de83b1ea595690504/8ac56/14.webp 240w,\n/static/636594634d60c56de83b1ea595690504/d3be9/14.webp 480w,\n/static/636594634d60c56de83b1ea595690504/feeb6/14.webp 731w\"\n              sizes=\"(max-width: 731px) 100vw, 731px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/636594634d60c56de83b1ea595690504/8ff5a/14.png 240w,\n/static/636594634d60c56de83b1ea595690504/e85cb/14.png 480w,\n/static/636594634d60c56de83b1ea595690504/6e9ba/14.png 731w\"\n            sizes=\"(max-width: 731px) 100vw, 731px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/636594634d60c56de83b1ea595690504/6e9ba/14.png\"\n            alt=\"image-20210426140721254\"\n            title=\"image-20210426140721254\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>When I inspected memory with the <code class=\"language-text\">dd</code> command at the timing where execution stopped on the breakpoint, it was filled with zeros.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 585px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/53dde56dfccad24b8757a2be2d2a667f/78a22/15.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 35.833333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAABFElEQVQoz21S6cqDQBDz/Z/Mo160VevV21att6A/pCkZEL5+dGFQM5lsNquy3+/RdZ3U6/XC7XbD9XpFlmV4PB5o2xbP5xOn00nqeDyiKArhlWWJ8/mMy+WCNE3R9z0Uy7Kw2+1wOBwQhqE0OEgiB+Z5FlFuVlWVYMMwCEYTxOq6lv40TVAoRpee58E0TXm6rivPpmnAxcFlWTCOo2Acpktu9n8pvu+LYBRFIkiHdOs4jhyP4kEQSNm2jSRJBCOH6/1+f5WyOiJB0zTJL45jqKoqIoZhYLvdSizsk7fZbOT7pyDd/RVkwHSr67pkug6TR3FiazSr4NeReZv3+x15nstFMGTmw4tZMXJYfGePp+Af8MvhB4kgAsbZPv3DAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/53dde56dfccad24b8757a2be2d2a667f/8ac56/15.webp 240w,\n/static/53dde56dfccad24b8757a2be2d2a667f/d3be9/15.webp 480w,\n/static/53dde56dfccad24b8757a2be2d2a667f/737f1/15.webp 585w\"\n              sizes=\"(max-width: 585px) 100vw, 585px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/53dde56dfccad24b8757a2be2d2a667f/8ff5a/15.png 240w,\n/static/53dde56dfccad24b8757a2be2d2a667f/e85cb/15.png 480w,\n/static/53dde56dfccad24b8757a2be2d2a667f/78a22/15.png 585w\"\n            sizes=\"(max-width: 585px) 100vw, 585px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/53dde56dfccad24b8757a2be2d2a667f/78a22/15.png\"\n            alt=\"image-20210426143302073\"\n            title=\"image-20210426143302073\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Because the addresses also increase by +5 each time, it seems reasonable to think that this is the part filled with empty FEA records (probably).</p>\n<p>Doing this 605 times is quite a lot of work, so I temporarily removed the breakpoint at <code class=\"language-text\">srv!SrvOs2FeaListToNt+0xd4</code> and changed it to <code class=\"language-text\">srv!SrvOs2FeaListToNt+0x120</code> just before the function ends.</p>\n<p>I then let the exploit run all the way through, confirmed that the above processing had executed 607 times, and captured the output.</p>\n<p>In the end, the 607th record was copied to <code class=\"language-text\">fffffa8001c9b000</code> from a value obtained by adding <code class=\"language-text\">0xf383 + 0x5 + 0x5</code> to the previous address, which suggests that the overflow caused by the 607th FEA is happening from there.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7fe0a0744ddaf8ff96b04e1e636f1c16/0b533/16.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 16.249999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAARlAAAEZQAGA43XUAAAAvklEQVQI1x2ObW6DMBAFOU2EAduYNhgTTAAnATWqkn6oitr7n2O67Y8nPWmfZifbFQVl80ToPMYabF0TQs88TwxxwDlHUZakU2LdLpKNaV6wxhCXM68fD96+vrl9PjC1I9vJWEnx7f4fWGnNvvWMY6Q/9LjGoeTpcRpJaWFJiRhHrGyH+cT1/Q/4w12g1jVkqqrItaFxNZV0pZRYNXRi7H1LLcZ5nhP6IMYHSZRbh9YVzz5wTCvn7UpaX9DG8gsxUmPlPFFnhAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/7fe0a0744ddaf8ff96b04e1e636f1c16/8ac56/16.webp 240w,\n/static/7fe0a0744ddaf8ff96b04e1e636f1c16/d3be9/16.webp 480w,\n/static/7fe0a0744ddaf8ff96b04e1e636f1c16/b0a15/16.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/7fe0a0744ddaf8ff96b04e1e636f1c16/8ff5a/16.png 240w,\n/static/7fe0a0744ddaf8ff96b04e1e636f1c16/e85cb/16.png 480w,\n/static/7fe0a0744ddaf8ff96b04e1e636f1c16/0b533/16.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/7fe0a0744ddaf8ff96b04e1e636f1c16/0b533/16.png\"\n            alt=\"image-20210426175537572\"\n            title=\"image-20210426175537572\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Finally, I wanted to confirm that the overflow-based exploit had succeeded by dumping the memory from this address through <code class=\"language-text\">+a8</code>, but I could not tell from the binary sequence alone whether the overwrite had actually succeeded, so I gave up.</p>\n<p>I plan to try again someday after I have gained more knowledge of kernel debugging.</p>\n<h2 id=\"summary\" style=\"position:relative;\"><a href=\"#summary\" aria-label=\"summary permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Summary</h2>\n<p>This time, I summarized the results of various experiments conducted with the goal of learning the details of the vulnerability and how it is exploited by reproducing “EternalBlue.”</p>\n<p>Because this was my very first experience with Windows kernel debugging, I proceeded by trial and error, and it took quite a bit of time.</p>\n<p>I think it is extremely educational not only to solve HackTheBox machines, but also to dig more deeply into the vulnerabilities used there.</p>\n<p>In particular, the “EternalBlue” covered this time can be reproduced easily using code from Metasploit or ExploitDB, so the machine itself is very easy from a box-solving perspective. Even so, I felt that properly understanding the details of the vulnerability is fairly difficult.</p>\n<p>I would like to continue writing deep-dive articles on vulnerabilities in the future.\nI was reminded once again that protocol-related topics are still a bit difficult for me, so I am thinking of approaching them by starting with OSS that can be tested more lightly.</p>\n<h2 id=\"references\" style=\"position:relative;\"><a href=\"#references\" aria-label=\"references permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>References</h2>\n<h3 id=\"book\" style=\"position:relative;\"><a href=\"#book\" aria-label=\"book permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Book</h3>\n<ul>\n<li><a href=\"https://amzn.to/3nuJxo5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Inside Windows, 7th Edition</a></li>\n<li><a href=\"https://amzn.to/2RTn9J1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Windows Sysinternals In-Depth Guide</a></li>\n</ul>\n<h3 id=\"web\" style=\"position:relative;\"><a href=\"#web\" aria-label=\"web permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Web</h3>\n<ul>\n<li><a href=\"https://blog.trendmicro.co.jp/archives/15154\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Trend Micro Security Blog: Explaining How EternalBlue, the Vulnerability Exploit That Spread WannaCry, Works | Trend Micro Security Blog</a></li>\n<li><a href=\"https://www.welivesecurity.com/2018/05/10/one-year-later-eternalblue-exploit-wannacryptor/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">One year later: EternalBlue exploit more popular now than during WannaCryptor outbreak | WeLiveSecurity</a></li>\n<li><a href=\"https://docs.microsoft.com/ja-jp/security-updates/securitybulletins/2017/ms17-010\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Microsoft Security Bulletin MS17-010 - Critical | Microsoft Docs</a></li>\n<li><a href=\"https://japan.zdnet.com/article/35137511/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Hacking tools leaked from the NSA may have been abused in attacks on U.S. cities - ZDNet Japan</a></li>\n<li><a href=\"https://msrc-blog.microsoft.com/2017/04/14/protecting-customers-and-evaluating-risk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Protecting customers and evaluating risk – Microsoft Security Response Center</a></li>\n<li><a href=\"https://www.kaspersky.co.jp/resource-center/threats/ransomware-wannacry\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Everything About the WannaCry Ransomware | Kaspersky</a></li>\n<li><a href=\"https://monoist.atmarkit.co.jp/mn/articles/1807/04/news042.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">What Did Hitachi Learn from the WannaCry Incident? Turning It into an IoT Security Service: IoT Security (1/2) - MONOist</a></li>\n<li><a href=\"https://press.avast.com/ja-jp/avast-wannacry\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Avast Press | Avast reports that even one year after the WannaCry outbreak, about 10% of PCs in Japan remain at risk of infection</a></li>\n<li><a href=\"https://www.exploit-db.com/exploits/42315\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Microsoft Windows 7/8.1/2008 R2/2012 R2/2016 R2 - ‘EternalBlue’ SMB Remote Code Execution (MS17-010) - Windows remote Exploit</a></li>\n<li><a href=\"https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs</a></li>\n<li><a href=\"https://docs.microsoft.com/ja-jp/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#kernelmodedebuggingcommandsandtechniques\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Debugging Windows Drivers—Step-by-Step Lab (Echo Kernel Mode) - Windows drivers | Microsoft Docs</a></li>\n<li><a href=\"https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/u--unassemble-\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">u, ub, uu (Unassemble) - Windows drivers | Microsoft Docs</a></li>\n<li><a href=\"https://tex2e.github.io/rfc-translater/html/rfc8276.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">RFC 8276 - File System Extended Attributes in NFSv4 日本語訳</a></li>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E6%8B%A1%E5%BC%B5%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%B1%9E%E6%80%A7\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">拡張ファイル属性 - Wikipedia</a></li>\n<li><a href=\"https://medium.com/@singhavijeet1994/eternal-series-part-1-eternal-blue-and-analysis-windows-7-and-8-1-c631572e549b\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Eternal Series — Part 1 | Eternal Blue and Analysis | Windows 7 and 8.1 Exploitation | Hack Windows 7 and 8.1 Remotely | by Abhijeet Singh | Medium</a></li>\n<li><a href=\"https://ja.wikipedia.org/wiki/Server_Message_Block\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Server Message Block - Wikipedia</a></li>\n<li><a href=\"https://www.atmarkit.co.jp/ait/articles/1507/02/news026.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">第7回　ファイル共有プロトコルSMBの概要：Windowsネットワークの基礎 - ＠IT</a></li>\n<li><a href=\"https://docs.oracle.com/cd/E19253-01/820-5121/gfhaq/index.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">SMB プロトコルの説明</a></li>\n<li><a href=\"https://www.exploit-db.com/exploits/42315\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Microsoft Windows 7/8.1/2008 R2/2012 R2/2016 R2 - ‘EternalBlue’ SMB Remote Code Execution (MS17-010) - Windows remote Exploit</a></li>\n<li><a href=\"https://github.com/worawit/MS17-010/blob/master/mysmb.py\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MS17-010/mysmb.py at master · worawit/MS17-010</a></li>\n<li><a href=\"https://docs.microsoft.com/ja-jp/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Windows ドライバーのデバッグ-ステップバイステップラボ (Echo カーネルモード) - Windows drivers | Microsoft Docs</a></li>\n<li><a href=\"https://docs.microsoft.com/ja-jp/windows-hardware/drivers/debugger/disassembly-window\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">WinDbg でのアセンブリ コードのデバッグ - Windows drivers | Microsoft Docs</a></li>\n<li><a href=\"https://research.checkpoint.com/2017/eternalblue-everything-know/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">EternalBlue – Everything There Is To Know</a></li>\n<li><a href=\"https://www.virusbulletin.com/virusbulletin/2018/06/eternalblue-prominent-threat-actor-20172018/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Virus Bulletin :: EternalBlue: a prominent threat actor of 2017–2018</a></li>\n</ul>","fields":{"slug":"/hackthebox-windows-blue-en","tagSlugs":["/tag/hack-the-box-en/","/tag/windows-en/","/tag/easy-box-en/","/tag/english/"]},"frontmatter":{"date":"2021-10-04","description":"Learning about EternalBlue through the HackTheBox retired machine [Blue].","tags":["HackTheBox (en)","Windows (en)","EasyBox (en)","English"],"title":"Learning About the EternalBlue Vulnerability Through HackTheBox Blue","socialImage":{"publicURL":"/static/dc4d8b7f8795f3c3d3489d9957d155f2/no-image.png"}}}},"pageContext":{"slug":"/hackthebox-windows-blue-en"}},"staticQueryHashes":["251939775","401334301","825871152"]}