<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Eskor | Security Engineering]]></title><description><![CDATA[Security Engineering, Digital Forensics and Investigation Response]]></description><link>https://iameskor.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6a64bdb3c1ff09677a4c91f3/befbf663-fef8-4105-a6c1-688d8c642f48.png</url><title>Eskor | Security Engineering</title><link>https://iameskor.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 24 Oct 2026 11:36:17 GMT</lastBuildDate><atom:link href="https://iameskor.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Port Security Rules ]]></title><description><![CDATA[Master core network port exposure rules (SSH, SMB, RDP, MySQL) and reconstruct Windows attack narratives using SHA-256, Event IDs, and Prefetch.]]></description><link>https://iameskor.hashnode.dev/port-security-rules</link><guid isPermaLink="true">https://iameskor.hashnode.dev/port-security-rules</guid><category><![CDATA[networksecurity]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[DFIR]]></category><category><![CDATA[blueteam]]></category><dc:creator><![CDATA[victor nkereuwem]]></dc:creator><pubDate>Sun, 18 Oct 2026 22:22:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a64bdb3c1ff09677a4c91f3/cd71f5ec-0d4b-47b1-8bc8-48c16b016121.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>The Rule of Least Exposure</h3>
<p>When configuring network firewalls or assessing endpoint risk, one principle holds true: <strong>if a service isn't meant for public consumption, it shouldn't be publicly reachable.</strong></p>
<hr />
<h3>Guidelines:</h3>
<p>1. Public Exposure (YES): Only services intended for unauthenticated/public access (e.g., HTTP/HTTPS, public DNS).</p>
<p>2. Restricted Exposure (NO / VPN / IP Allowlist): Administrative (SSH, RDP) and Database (MySQL, SMB) ports.</p>
<p>3. Plaintext Protocols (NO): Insecure protocols (Telnet, FTP) that transmit credentials unencrypted must be disabled/replaced.</p>
<hr />
<table>
<thead>
<tr>
<th>Port</th>
<th>Protocol</th>
<th>Service</th>
<th>Internet-Facing?</th>
<th>Justification &amp; Security Guidance</th>
</tr>
</thead>
<tbody><tr>
<td>21</td>
<td>TCP</td>
<td>FTP</td>
<td>NO</td>
<td>Transmits credentials and data in plaintext. Replace with SFTP (Port 22) or FTPS (Port 990).</td>
</tr>
<tr>
<td>22</td>
<td>TCP</td>
<td>SSH</td>
<td>NO (VPN/IP Only)</td>
<td>High-value admin target. Restrict to internal management VPN or explicit source IP allowlist + key auth.</td>
</tr>
<tr>
<td>23</td>
<td>TCP</td>
<td>Telnet</td>
<td>NO</td>
<td>Obsolete and insecure. Transmits data/passwords in cleartext. Replace with SSH.</td>
</tr>
<tr>
<td>25</td>
<td>TCP</td>
<td>SMTP</td>
<td>RESTRICTED</td>
<td>Allow publicly ONLY if operating an inbound Mail Transfer Agent (MTA). Block or require auth/TLS.</td>
</tr>
<tr>
<td>53</td>
<td>TCP/UDP</td>
<td>DNS</td>
<td>YES (If Public)</td>
<td>Required for public domain name resolution. Restrict recursive queries to prevent DNS amplification.</td>
</tr>
<tr>
<td>80</td>
<td>TCP</td>
<td>HTTP</td>
<td>YES</td>
<td>Public web server port. Must auto-redirect all incoming traffic to HTTPS (Port 443).</td>
</tr>
<tr>
<td>443</td>
<td>TCP</td>
<td>HTTPS</td>
<td>YES</td>
<td>Standard encrypted public web traffic (TLS). Default baseline for facing the public internet.</td>
</tr>
<tr>
<td>445</td>
<td>TCP</td>
<td>SMB</td>
<td>NO</td>
<td>Critical Windows file-sharing protocol. High risk for wormable exploits (e.g., EternalBlue). Internal only.</td>
</tr>
<tr>
<td>3306</td>
<td>TCP</td>
<td>MySQL</td>
<td>NO</td>
<td>Database management. Should only accept local loopback connections or requests from app servers.</td>
</tr>
<tr>
<td>3389</td>
<td>TCP</td>
<td>RDP</td>
<td>NO (VPN/IP Only)</td>
<td>High-priority target for brute-force/ransomware. Limit strictly to Zero Trust/VPN or Jump Box gateways.</td>
</tr>
</tbody></table>
<p><em>I’m documenting my journey through an 84-day DFIR &amp; Security Engineering sprint. Follow my daily lab updates and playbooks on my</em> <a href="https://github.com/Eskorbar/security-engineering-roadmap"><em>GitHub Repository</em></a><em>.</em></p>
]]></content:encoded></item><item><title><![CDATA[What I Found Inside a Forensic Disk Image Using Autopsy & Zimmerman Tools]]></title><description><![CDATA[Step-by-step DFIR analysis of the 2020JimmyWilson.E01 disk image using Autopsy & Zimmerman tools to uncover insider exfiltration and chain of custody]]></description><link>https://iameskor.hashnode.dev/what-i-found-inside-a-forensic-disk-image-using-autopsy-zimmerman-tools</link><guid isPermaLink="true">https://iameskor.hashnode.dev/what-i-found-inside-a-forensic-disk-image-using-autopsy-zimmerman-tools</guid><category><![CDATA[Security]]></category><category><![CDATA[engineering]]></category><category><![CDATA[SecurityEngineering]]></category><category><![CDATA[#digitalforensic ]]></category><category><![CDATA[incident response]]></category><category><![CDATA[blueteam]]></category><dc:creator><![CDATA[victor nkereuwem]]></dc:creator><pubDate>Sat, 17 Oct 2026 23:17:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a64bdb3c1ff09677a4c91f3/9f1ef103-e9a8-46ea-aa9c-efac10e7cb9b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When investigating an active security breach or insider threat, a disk image is a digital crime scene frozen in time. During my DFIR and Security Engineering sprint, I analyzed a practice disk image (<code>2020JimmyWilson.E01</code> sourced from the <strong>NIST CFReDS</strong> repository) using <strong>Autopsy</strong>, Eric Zimmerman’s <strong>Registry Explorer</strong>, and <strong>Windows Event Viewer</strong>. Here is what I uncovered.</p>
<h3>(a) What I Was Investigating</h3>
<p>I investigated a suspect workstation assigned to a domain user (<code>jimmy wilson</code>) to determine whether sensitive corporate pricing files and address lists were staged, encoded, and exfiltrated to unauthorized external media.</p>
<h3>(b) Chain of Custody: Why the SHA-256 Hash Comes First</h3>
<p>Before analyzing a single file, I computed and recorded the evidence image's <strong>SHA-256 cryptographic hash</strong>:</p>
<p><code>a1102c70a50768b588225fdcad6efa5d5d57341b</code></p>
<p>A SHA-256 hash acts as a unique digital fingerprint. Recording it first establishes <strong>chain of custody</strong>: if a single bit of data changes during analysis, the hashes mismatch, making the evidence inadmissible in court or internal audits. Matching hashes prove the evidence was never altered.</p>
<h3>(c) Two Key Forensic Artifacts</h3>
<ol>
<li><p><strong>User Hive Registry Artifacts (</strong><code>NTUSER.DAT</code><strong>):</strong> Extracted and parsed using Eric Zimmerman's <a href="https://ericzimmerman.github.io/#!index.md">Registry Explorer</a>. Examining the Most Recently Used (MRU) keys tracked administrative tool execution, specifically the launching of Task Scheduler (<code>taskschd.msc</code>) and Computer Management (<code>compmgmt.msc</code>).</p>
</li>
<li><p><strong>USB &amp; File Artifacts (</strong><code>USBSTOR</code> <strong>&amp; LNK Files):</strong> Parsed directly inside <a href="https://www.autopsy.com/">Autopsy</a>. Autopsy's artifact extraction parsed <code>USBSTOR</code> keys to prove physical connection of external USB flash drives (including serial numbers for SanDisk and Kingston drives), while LNK files proved target document interaction on the user’s Desktop.</p>
</li>
</ol>
<h3>(d) How Timestamps Tied Everything Into a Story</h3>
<p>Correlating timestamps across artifacts transformed isolated logs into an undeniable narrative:</p>
<ul>
<li><p><strong>Initial Intent (Feb 2014):</strong> IE browser history logged searches for <em>"how to steal identities"</em> and visits to <code>zebra.com</code> to download datasheets for ID card printers (drivers were later found installed on the host).</p>
</li>
<li><p><strong>Collusion:</strong> Parsed EML email files revealed communications with <code>jose.badguy@hushmail.com</code> containing instructions to encode staging files.</p>
</li>
<li><p><strong>Rapid Staging Burst (May 26, 2015):</strong> LNK timestamps captured a rapid, 3-second sequence at <strong>13:46:13 WAT</strong> where <code>name that need addresses.xls</code> was accessed, followed immediately by <code>NewPrices.txt</code> and <code>New Price List Encoded.TXT</code>.</p>
</li>
<li><p><strong>Exfiltration:</strong> USB connection timestamps parsed in Autopsy directly coincided with this file-encoding window, establishing the physical vector used to exfiltrate the staged data.</p>
</li>
</ul>
<pre><code class="language-plaintext">[2014-02-10] Web Research (Zebra ID Printers &amp; Identity Theft)
     │
[2015-05-26 13:46:12] Rapid File Access (XLS → TXT → Encoded TXT in 3s)
     │
[2015-05-26 13:52:41] USBSTOR Timestamps in Autopsy (Exfiltration to Kingston USB)
</code></pre>
<h3>(e) What I Would Do Next in a Real Case</h3>
<p>In a live enterprise incident response scenario, my next steps would be:</p>
<ol>
<li><p><strong>Revoke &amp; Contain:</strong> Immediately disable the user's Active Directory credentials and revoke active session tokens.</p>
</li>
<li><p><strong>Network Sweep:</strong> Convert extracted file hashes and domain IOCs (<code>hushmail.com</code>) into <strong>YARA &amp; Sigma rules</strong> to sweep endpoints across the enterprise.</p>
</li>
<li><p><strong>Policy Enforcement:</strong> Update Active Directory Group Policy (GPO) to block unauthorized USB mass storage devices company-wide.</p>
</li>
</ol>
<p><em>I’m documenting my journey through an 84-day DFIR &amp; Security Engineering sprint. Follow my daily lab updates and playbooks on my</em> <a href="https://github.com/Eskorbar/security-engineering-roadmap"><em>GitHub Repository</em></a><em>.</em></p>
]]></content:encoded></item></channel></rss>