<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ItzNeel&apos;s Space</title>
    <link>https://itzneel05.github.io/</link>
    <description>No description</description>
    <language>en</language>
    <lastBuildDate>Mon, 12 Oct 2026 15:55:00 GMT</lastBuildDate>
    <atom:link href="https://itzneel05.github.io/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Watchlist CTF 2026 - Writeup</title>
      <link>https://itzneel05.github.io/posts/watchlist-ctf-2026-writeup/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/watchlist-ctf-2026-writeup/</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <description>A writeup covering the challenges solved during Watchlist CTF 2026, where our team justAdapt placed 51st out of 213 teams.</description>
      <content:encoded><![CDATA[<p>We recently competed in the <strong>Watchlist CTF</strong> and managed to secure <strong>51st place out of 213 teams</strong> as team justAdapt! I've put together writeups covering the challenges we solved during the event.</p>
<p>The whole CTF was themed around <em>Westworld</em> — Aletheia, Decima, Northern Lights, The Machine — and every challenge asked for a flag in the <code>number{...}</code> format. It was mostly forensics-heavy, which was very much my kind of CTF. Solves below are ordered by points.</p>
<h2>1. Reduced Footprint</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Lab</li>
<li><strong>Points:</strong> 100</li>
<li><strong>Target:</strong> SSH into a decommissioned "all quiet" node, find the three things that look legit (one isn't), and extract a hidden key.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>We got SSH credentials to a node that was supposedly cleaned up. The MOTD said <em>"nothing to see here"</em> — classic.</p>
<ul>
<li>SSH Access: Connected to <code>node0447</code> as the investigator user. Home dir had <code>notes.txt</code>, which told us to look for three artifacts.</li>
<li>System Enumeration: Checked <code>/etc/systemd/system/</code> for anything that still "wakes on a schedule". Found <code>sysupdate.service</code> + <code>sysupdate.timer</code> running a script from a <strong>hidden directory</strong> — <code>/usr/local/lib/.sysupdate/run.sh</code>. The dot-prefix was mimicking legit system tooling.</li>
<li>Accidental Evidence: <code>/home/relay/</code> had a <code>cleanup.sh</code> and a leftover <code>.bash_history</code>. The author tried to wipe history with <code>history -c</code>, but that only clears memory, not the file already written to disk. The script even had a "TODO finish before handoff" comment.</li>
</ul>
<p>The flag was a base64 token sitting right in the helper script:</p>
<pre><code>echo 'bnVtYmVye3RoZV9mb290cHJpbnRfd2FzX25ldmVyX3JlZHVjZWR9' | base64 -d
# number{the_footprint_was_never_reduced}
</code></pre>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{the_footprint_was_never_reduced}</code></p>
<p>&lt;/details&gt;</p>
<h2>2. Satoshi</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Trivia</li>
<li><strong>Points:</strong> 100</li>
<li><strong>Target:</strong> Solve a riddle pointing at "the day the Machine was tested for the first time, somewhere else another system was being born."</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>No files this time, just a riddle. The clue mentioned a "first transmission" on <strong>Jan 3, 2009</strong> that embedded a sentence quoted from a newspaper of that morning about failed institutions needing something different.</p>
<p>That's unmistakably the <strong>Bitcoin genesis block</strong>. Satoshi Nakamoto embedded The Times headline in the coinbase transaction's scriptSig — partly as a timestamp proof, partly as commentary on the 2008 financial crisis.</p>
<ul>
<li>Recognized the reference: The Times 03/Jan/2009, the exact embedded sentence.</li>
<li>Hashed it: Ran the exact string through SHA-256 and took the first 16 hex chars lowercase.</li>
</ul>
<pre><code>import hashlib
s = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
print(hashlib.sha256(s.encode()).hexdigest()[:16])  # a6d72baa3db900b0
</code></pre>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{a6d72baa3db900b0}</code></p>
<p>&lt;/details&gt;</p>
<h2>3. Witness</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> POI</li>
<li><strong>Points:</strong> 250</li>
<li><strong>Target:</strong> Fact-check a manager's HR statement against badge logs, email, and a photo "evidence" exhibit.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>A zip with four files: a manager's written statement accusing his employee of stalking, a SQLite badge-access database, the employee's mbox email export, and a JPEG screenshot. The statement gave two exact times to verify: <strong>21:00</strong> (he saw her outside) and <strong>21:15</strong> (she texted him a threat) on 13 March.</p>
<ul>
<li>Badge Logs: Filtered <code>badge_events</code> for the exact names. Maya badged <strong>out at 18:30</strong> and never came back. Pierce badged into <code>SL2-MAIN</code> (a restricted sub-level) at 19:40 and <strong>didn't leave until 21:18</strong> — he was locked in a restricted room the entire window he claims to have been outside watching her.</li>
<li>Email: Maya's mbox showed a home-network device login at ~20:03 and an <strong>ethics complaint submission at 21:07</strong> — she was home filing a complaint against him, not outside threatening him.</li>
<li>EXIF: The 'evidence' screenshot was edited in <strong>Adobe Photoshop at 01:22 on March 14</strong> — over four hours after the claimed 21:15 receipt, and Photoshopped rather than a native phone capture. The story fell apart in three layers.</li>
</ul>
<p>The answer was the case reference in the complaint's <code>X-Case-Ref</code> header.</p>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{AR-ETH-884213}</code></p>
<p>&lt;/details&gt;</p>
<h2>4. Signal</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Lab (Network / PCAP)</li>
<li><strong>Points:</strong> 200</li>
<li><strong>Target:</strong> Find a covert C2 channel hidden inside ten hours of ordinary DNS noise.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>A ~16,000 packet capture that was almost entirely DNS — the "noise" the challenge mentioned. The instruction said <em>READ the pcap</em>, find what the implant said, what it was told, and "ask the same question it did."</p>
<ul>
<li>Anomaly Spotting: Three odd patterns stood out — <code>*.k.enroll.rl7f3a.net</code> queries with a hex char + two-digit sequence, underscore-prefixed TXT queries (<code>_msg</code>, <code>_note</code>, <code>_root</code>...), and <code>sync.relay-7f3a.rl7f3a.net</code> returning oversized TXT responses.</li>
<li>Enrollment Channel: Reading the hex chars in sequence order (<code>a.00</code>, <code>7.01</code>, <code>f.02</code>, <code>3.03</code>, <code>c.04</code>, <code>1.05</code>) gave the implant's session ID: <strong>a7f3c1</strong>.</li>
<li>C2 Sync Script: Five chunked base64 TXT responses reassembled into a tiny Perl script — the implant's sync code. It pointed to <code>https://l200-c2.xonnie.ai/telemetry/sync</code> and took the session ID as a <code>sid</code> parameter.</li>
</ul>
<p>"Ask the same question it did" meant just querying the endpoint with the recovered SID:</p>
<pre><code>curl -s "https://l200-c2.xonnie.ai/telemetry/sync?sid=a7f3c1"
</code></pre>
<p>The JSON response contained a base64 <code>auth_token</code>:</p>
<pre><code>echo "bnVtYmVye3RoZV9jb25maWdfd2FzX3RoZV9wYXlsb2FkfQ==" | base64 -d
# number{the_config_was_the_payload}
</code></pre>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{the_config_was_the_payload}</code></p>
<p>&lt;/details&gt;</p>
<h2>5. Checkpoint</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Lab (Database / SQLite)</li>
<li><strong>Points:</strong> 250</li>
<li><strong>Target:</strong> Recover a record purged from a seized node before the SQLite database wrote back.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>We got a tarball with a SQLite database in <strong>WAL (Write-Ahead Logging) mode</strong> — <code>surveillance.db</code> plus <code>-wal</code> and <code>-shm</code> files. An operator had deleted one record right before the node was seized, and the WAL was never checkpointed.</p>
<ul>
<li>The trap: Opening the DB in a normal client triggers a checkpoint, which flushes and destroys the recoverable data. The README explicitly warned about this.</li>
<li>The lead: The <code>analyst_log</code> table recorded a purge directive — the target was flagged <code>RELEVANT</code> and its alias ended in <code>0001</code>. A query on the main table came back empty (the row was gone from there).</li>
<li>The recovery: In WAL mode, deletes are recorded in the WAL, which still holds the pre-deletion page images until a checkpoint. So I just pulled strings out of the WAL:</li>
</ul>
<pre><code>strings surveillance.db-wal | grep "0001"
</code></pre>
<p>That surfaced the deleted row: alias <code>PRIMARY</code>, ssn <code>000-00-0001</code>, status <code>RELEVANT</code>, and a base64 <code>intel</code> field. Decoding it gave the flag.</p>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{the_log_remembers_what_the_table_forgot}</code></p>
<p>&lt;/details&gt;</p>
<h2>6. Trap Street</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Forensics (Honeypot / Log Analysis)</li>
<li><strong>Points:</strong> 250</li>
<li><strong>Target:</strong> Find the one real human visitor in ~70 days of Cowrie SSH honeypot noise and follow the canary file they took.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>Three directories: <code>logs/</code> (Cowrie JSON), <code>downloads/</code> (SHA-named files), <code>tty/</code> (raw session recordings) — plus a <code>cowrie.json.decoys</code> manifest listing the automated bot downloads.</p>
<ul>
<li>Diff the downloads: Comparing the <code>downloads/</code> folder against the decoy manifest left exactly <strong>one</strong> file that wasn't on the decoy list — <code>c9c34aa1...</code>. <code>file</code> confirmed it was an Excel 2007+ file. Canary found.</li>
<li>Trace the session: Grepping the logs for the session returned 20 events. A human hit at <code>3.84.226.129</code>, logged in with default creds (<code>root</code> / <code>123456</code>), ran basic recon, <code>wget</code>-ed the canary from a Cloudflare Workers URL, ran <code>history -c</code>, and closed the session 59 seconds later. Classic cover-up behavior.</li>
<li>Read the xlsx: Excel files are ZIP archives. Extracting the XML showed two visible roster sections plus rows 30-35 that <em>looked</em> empty — but they held URL fragments styled near-invisible (gray 8pt italic and pure white font on white background) and a hidden formula <code>=A30&amp;A31&amp;A32&amp;A33</code> stitching them together.</li>
<li>Follow the callback: The formula built <code>https://transit.ottrargal.workers.dev/checkin?id=NLA-2026-04</code>, the canary's beacon URL. Fetching it returned the flag.</li>
</ul>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{shaw_followed_the_breadcrumbs}</code></p>
<p>&lt;/details&gt;</p>
<h2>7. Tmpfs</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Forensics (Memory Analysis)</li>
<li><strong>Points:</strong> 300</li>
<li><strong>Target:</strong> Recover secrets from a LiME memory dump of an operative who deleted his files before capture.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>A ~2 GB LiME memory dump (with a Volatility symbol file) of an operative named Marcus Reyes. He'd deleted his files, believing "erased on screen" meant gone everywhere. The RAM held everything.</p>
<ul>
<li>Dead end: I started with Volatility plugins (<code>linux.pslist</code>, <code>linux.bash</code>, etc.) and they crawled for minutes on a 2 GB dump. Wrong first move.</li>
<li>Fast triage: <code>strings</code> + <code>grep</code> found the <code>VLT1</code> magic, a base64 vault blob, and the assembled AES key almost instantly. Lesson: don't overcomplicate the first step.</li>
</ul>
<pre><code>strings reyes.lime | grep -B2 -A2 "VLT1"
</code></pre>
<ul>
<li>Split key: The dumped bash history told the whole story. The operative's session (PID 1450) showed him wiping <code>.vault.enc</code>, <code>vault.py</code>, and <code>notes.txt</code> from <code>/tmp/.cache</code>. The author's own session (PID 1365) had the full decryption command — the AES-128-CBC key split between an env var (<code>VAULT_KEY_HEAD</code>) and a CLI arg (<code>KEY_TAIL</code>): <code>8b3f7e2a1c4d6f9b0e8a7c5d2f1b3e6a</code>.</li>
<li>Decrypt: Decoded the base64 blob, stripped the 4-byte <code>VLT1</code> header, and decrypted with an all-zero IV:</li>
</ul>
<pre><code>tail -c +5 vault.enc &gt; ct.bin
openssl enc -d -aes-128-cbc -K 8b3f7e2a1c4d6f9b0e8a7c5d2f1b3e6a -iv 00000000000000000000000000000000 -in ct.bin -out flag.txt
</code></pre>
<p>The decrypted JSON held the operative's auth phrase: <code>volatile_storage_has_a_half_life</code>.</p>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{volatile_storage_has_a_half_life}</code></p>
<p>&lt;/details&gt;</p>
<h2>8. Mirror Sites</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Forensics (Cloud / Incident Response)</li>
<li><strong>Points:</strong> 400</li>
<li><strong>Target:</strong> Prove that a senior engineer exfiltrated a client dataset across GCP, AWS, and Azure — correlated by a single fingerprint.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>Three log directories (GCP audit + inventory, AWS CloudTrail + S3 access + inventory, Azure activity + storage + blob inventory) and a README warning that "the data carried the same fingerprint into every cloud it touched."</p>
<ul>
<li>GCP: <code>admin_activity</code> showed adrian.kessler creating a <code>svc-dataflow-relay</code> service account at 23:37, its key at 23:43, and <code>storage.objectViewer</code> access at 23:46. <code>data_access</code> showed BigQuery queries from him using wildly different user-agents (azure-storage-blob, aws-cli, boto3, gsutil...) — the sign of one person hopping environments.</li>
<li>AWS: CloudTrail only covered pre-incident dates, so the S3 server access logs were the real evidence. Found <code>ds_0917.bin</code> — a 29,201-byte object with ETag <code>c47f74a1d55cf905790b9c97b4640730</code>, then a 38-byte decoy overwrite. Logs showed PUT, GET, then overwrite from one IP.</li>
<li>Azure: A deleted blob <code>backup_final.dat</code>, same size (29,201), with a <code>Content-MD5</code> of <code>xH90odVc+QV5C5yXtGQHMA==</code>. Base64-decoding that gave <code>c47f74a1d55cf905790b9c97b4640730</code> — <strong>the same hash as the AWS ETag</strong>. Same content fingerprint in both clouds.</li>
<li>Matching in GCP: Searching the GCP inventory for a 29,201-byte object found <code>nl_client_roster_2026Q4.xlsx</code> with the same MD5 and a <code>CLIENT-CONFIDENTIAL</code> classification.</li>
</ul>
<p>Three clouds, one object, one hash. Each cloud's inventory slapped a base64 <code>mfrag</code> metadata fragment on it, and together they spelled the flag.</p>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{the_clouds_do_not_speak_to_each_other_but_we_do}</code></p>
<p>&lt;/details&gt;</p>
<h2>9. Mission Creep</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Lab (DFIR / Disk Image)</li>
<li><strong>Points:</strong> 400</li>
<li><strong>Target:</strong> Reconstruct an attacker's full path — entry, persistence, privilege escalation, exfiltration — from a disk image.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>A decommissioned Ubuntu 22.04 disk image (<code>relay-07.img.xz</code>) of a box flagged for anomalous outbound traffic.</p>
<ul>
<li>Mounting: The image uses LVM, so plain <code>mount</code> won't work. <code>xz -dk</code> to decompress, then <code>guestmount -a relay-07.img -i --ro</code> to mount it read-only (forensically sound) — guestmount handles LVM transparently.</li>
<li>The false lead: <code>auth.log</code> was almost all SSH brute-force traffic — background noise, all failed. Not the entry, just internet radiation. The real entry was in <code>nginx access.log</code>: a <code>POST /upload.php</code> from <code>203.0.113.7</code>, followed by webshell command executions (<code>sess_4f1c.php?c=...</code>) that downloaded and ran a dropper.</li>
<li>Persistence: <code>/etc/systemd/system/</code> had <code>cleanup.service</code> + <code>cleanup.timer</code> running every 15 minutes, executing <code>/usr/local/sbin/.sysupd</code> — a script that re-applies the SUID bit to <code>/usr/bin/pkexec</code> (PwnKit, CVE-2021-4034) every cycle so the privesc stays warm after patches.</li>
<li>Exfiltration: <code>/var/tmp/.x/</code> held <code>core.exfil.1551</code> (a 2.8 MB ELF core dump) and <code>loot.tgz</code> (target dossiers staged for exfil, handler "northern lights").</li>
<li>The flag: the challenge hint said strings on text files wouldn't find it — so I ran <code>strings</code> on the <strong>binary</strong>:</li>
</ul>
<pre><code>strings core.exfil.1551 | grep -i flag
# relay exfil channel auth = number{a_foothold_is_never_just_a_foothold}
</code></pre>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{a_foothold_is_never_just_a_foothold}</code></p>
<p>&lt;/details&gt;</p>
<h2>10. Endgame</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> POI / Cryptographic Forensics</li>
<li><strong>Points:</strong> 450</li>
<li><strong>Target:</strong> Prove who an anonymous data-export service account really is, decrypt their encrypted plan, and report the crime.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>The finale of the Person-of-Interest series. Artifacts: a badge-access SQLite DB, an audit export log, an AES-GCM encrypted operation note, a personnel PDF, and an evidence cache with a recovered device key.</p>
<ul>
<li>The flaw: The building's access-control system signs badge events and export requests with the <strong>same per-device HMAC key</strong> — <code>HMAC_SHA256(device_key, identifier || timestamp)[:16 hex]</code>. Find a second where an export and a badge event collide and you can prove one person did both.</li>
<li>The collision: At <code>2026-03-13T19:40:33</code>, the audit log showed <code>svc_export_04</code> firing a bulk export with signature <code>954698a53a1c93f9</code>. The badge DB showed <code>Daniel Pierce</code> (AR-304-77-1592) entering <code>SL2-MAIN</code> with token <code>8bb15baca2401b57</code>. Both matched the HMAC for the same key. Smoking gun — Pierce is the anonymous exporter.</li>
<li>The decrypt: Key derivation was <code>SHA256(Maya's designation || "SL2-MAIN" || SHA256(exhibit_A.jpg))</code>. Maya's designation came from the personnel PDF; the exhibit hash from <code>sha256sum</code>. Decrypting <code>pierce_plan.enc</code> with AES-256-GCM (12-byte nonce + ciphertext with GCM tag) revealed Pierce's plan to "silence" Maya Cole at a fake meeting, and his signature <code>[designation on file: 304771592]</code>.</li>
</ul>
<p>&lt;details&gt;&lt;summary&gt;Flag&lt;/summary&gt;</p>
<p><code>number{304771592}</code></p>
<p>&lt;/details&gt;</p>
<hr />
<p>Honestly this was a really fun CTF and the first time I did proper forensics-heavy challenges — memory analysis, WAL recovery, DNS exfil, disk images, cross-cloud correlation. Big thanks to the rest of justAdapt for grinding through the event with me. Watchlist CTF, definitely coming back for the next one. Happy hacking!</p>
]]></content:encoded>
      <category>CTF Writeups</category>
    </item>
    <item>
      <title>Maltego community OSINT CTF - Qualifier A - 2026</title>
      <link>https://itzneel05.github.io/posts/maltego-ctf-2026-writeup/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/maltego-ctf-2026-writeup/</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
      <description>A writeup covering some of the OSINT challenges solved during Maltego OSINT CTF 2026, where our team placed 15th out of 160 teams.</description>
      <content:encoded><![CDATA[<p>We recently competed in the Maltego community OSINT CTF - Qualifier A - 2026 and managed to secure 15th place out of 160 teams! I have put together some writeups covering some of the interesting challenges we solved during the event.</p>
<p>I mostly solved maritime, aviation, geolocation, and Threat Intelligence challenges, and my other partner solved other categories.</p>
<h2>1. Lost at Sea - 1</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Maritime OSINT</li>
<li>Points: 100</li>
<li>Target: Identify the floating metallic object highlighted inside a red square in a satellite image.</li>
</ul>
<p>&lt;img src="/assets/images/posts/Maltego-CTF-Qualifier-A/Ship_Tracking.jpg" width="300" /&gt;</p>
<h3>The Approach &amp; Solution</h3>
<p>Instead of overcomplicating things with satellite telemetry or complex ocean mapping tools, I started with the simplest step possible: Google Reverse Image Search.</p>
<ul>
<li>Reverse Image Search: Uploaded the image to Google Lens.</li>
<li>Source Match: Found an exact matching satellite photo in a news report on Mezha.net covering a SpaceX soft splashdown recovery in the Indian Ocean.</li>
<li>Identification: The article confirmed the floating hull was SpaceX's Starship 40 (S40) following Flight 13.</li>
</ul>
<p><code>Flag: flag{Starship_40}</code></p>
<h2>2. Lost at Sea - 2</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Maritime OSINT</li>
<li><strong>Points:</strong> 100</li>
<li><strong>Target:</strong> Identify the vessel pulling the rocket inside the yellow circle and extract its official IMO registry number.</li>
</ul>
<p>&lt;img src="/assets/images/posts/Maltego-CTF-Qualifier-A/Ship_Tracking_-_2.jpg" width="300" /&gt;</p>
<h3>The Approach &amp; Solution</h3>
<p>Since this was a direct continuation of the first challenge, I didn't even need to search for a new source.</p>
<ul>
<li>Source Re-examination: The ship details were right in the same Mezha.net article I used for Part 1 — the name was mentioned directly in the article text and the image caption.</li>
<li>Vessel Identification: Extracted the ship's name as the Norwegian anchor-handling tugboat Normand Ranger.</li>
<li>IMO Lookup: Did a quick Google search for the ship's IMO number to pull its official registry ID (9413432).</li>
</ul>
<p><code>Flag: flag{Normand_Ranger_9413432}</code></p>
<h2>3. Identify the Aircraft</h2>
<h3>Challenge Overview</h3>
<ul>
<li><strong>Category:</strong> Aviation OSINT</li>
<li><strong>Points:</strong> 182 (200 Pts)</li>
<li><strong>Target:</strong> Analyze an intercepted aviation signal and identify the complete aircraft model from the embedded registration.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>So this was an aviation challenge where I had to identify an aircraft from a signal string. The string looked like random junk at first: <code>/QUKAXBA.ADS.G-VIIW0301072498E7FD3D0021B4DA9F7EC2</code></p>
<ul>
<li>Initial Search: I just threw the whole string into Google, but got nothing useful. Classic dead end.</li>
<li>Signal Analysis: After staring at it for a bit, I noticed the <code>G-</code> prefix in the middle — <code>G-VIIW</code>. I had some basic aviation OSINT knowledge from previous challenges, so I knew <code>G-</code> is a UK aircraft registration prefix.</li>
<li>Registration Lookup: I searched <code>G-VIIW</code> directly on Google. Found a few plane names pop up, so I just tried them one by one.</li>
<li>Trial and Error: Some attempts failed, but eventually I landed on the right one: <strong>Boeing 777-236(ER)</strong>.</li>
</ul>
<h3>Flag Formatting</h3>
<p>The challenge wanted the model name with special characters removed and spaces replaced by underscores:</p>
<p><code>Flag: flag{Boeing_777_236_ER}</code></p>
<h2>4. Where Did It Land?</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Aviation OSINT</li>
<li>Points: 300</li>
<li>Target: Identify the airport where a specific aircraft was located on 11 February 2025 at around 11:00 UTC.</li>
</ul>
<p>&lt;img src="/assets/images/posts/Maltego-CTF-Qualifier-A/wherediditland.jpg" width="300" /&gt;</p>
<h3>The Approach &amp; Solution</h3>
<p>So this challenge gave me an image of an aircraft and asked me to figure out where it landed on a specific date. Here's how I did it:</p>
<ul>
<li>Reverse Image Search: First I just did a Google reverse image lookup on the aircraft photo. That led me to a Planespotters.net page with all the aircraft details.</li>
<li>Registration Extraction: From Planespotters, I got the aircraft's registration number.</li>
<li>ADS-B Exchange Search: I went to ADS-B Exchange and searched with that registration number to pull up the plane's full flight history.</li>
<li>Date Filtering: The challenge specified 11 February 2025 around 11:00 UTC, so I filtered the flight history for that date.</li>
<li>Route Discovery: Found the landing and takeoff route for that day.</li>
<li>Coordinate Lookup: Copied the landing coordinates and looked them up on Google. The coordinates <strong>43.691°, -79.640°</strong> correspond to <strong>Toronto Pearson International Airport</strong> (also known as Lester B. Pearson International Airport).</li>
</ul>
<h3>Airport Codes</h3>
<ul>
<li><strong>IATA Code:</strong> YYZ</li>
<li><strong>ICAO Code:</strong> CYYZ</li>
</ul>
<h3>Flag</h3>
<p><code>Flag: flag{YYZ}</code></p>
<h2>5. The Unknown Hex ID</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Aviation OSINT</li>
<li>Points: 180</li>
<li>Target: Identify the aircraft and its owner/operator from an intercepted HEX ID.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>So this challenge gave me a HEX ID and asked me to figure out who owns the aircraft. Here's how it went down:</p>
<ul>
<li>Initial Google Search: First thing I did was just Google the whole hex string <code>8DA0551499091184C00400519503</code> — got nothing useful. Classic.</li>
<li>Signal Analysis: The description mentioned it contained an important identifier, so I looked at it more carefully. Found <code>A05514</code> embedded in there — that's the <strong>Mode S transponder code</strong> (24-bit ICAO address) for an aircraft.</li>
<li>ADS-B Exchange Lookup: With that hex code, it was easy. I just went to ADS-B Exchange and searched <code>A05514</code>. Got the full aircraft details instantly, including the registration and owner info.</li>
<li>Owner Identification: The database showed the aircraft was registered as <strong>N120QD</strong>, a <strong>Pilatus PC-12</strong>, operated by <strong>Quest Diagnostics Clinical Laboratories Inc</strong>.</li>
</ul>
<p>Super easy challenge once I spotted the hex code hiding in the string.</p>
<h3>Flag Formatting</h3>
<p>The challenge wanted the complete owner/operator name in uppercase with underscores:</p>
<p><code>Flag: flag{QUEST_DIAGNOSTICS_CLINICAL_LABORATORIES_INC}</code></p>
<h2>6. Who Took the Shot?</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Image OSINT / Google Maps</li>
<li>Points: 185</li>
<li>Target: Identify the Google Maps contributor who uploaded a specific photograph.</li>
</ul>
<p>&lt;img src="/assets/images/posts/Maltego-CTF-Qualifier-A/Who_Took_the_Shot.png" width="300" /&gt;</p>
<h3>The Approach &amp; Solution</h3>
<p>So this challenge gave me a photo of some old church ruins in a field and asked me to find who uploaded it to Google Maps. Here's how I solved it:</p>
<ul>
<li>Reverse Image Search: First thing I did was a Google Lens reverse image lookup on the photo. That found the location — the <strong>Malliehagen church ruins</strong> in Germany — but didn't give me the original uploader.</li>
<li>Initial Search: Searched around a bit for the original image source but didn't find it in any obvious list or article.</li>
<li>Google Maps Check: After some time, I went to Google Maps directly, searched for the location, and checked the user-uploaded photos for that spot.</li>
<li>Contributor Found: Scrolled through the uploaded images and found the exact photo. The uploader's name was right there: <strong>Martina Simon</strong>.</li>
</ul>
<p>Easy pz once I checked Google Maps directly instead of relying on search engines.</p>
<h3>Flag Formatting</h3>
<p>The challenge wanted the contributor's name as <code>first_last</code>:</p>
<p><code>Flag: flag{Martina_Simon}</code></p>
<h2>7. Before the Registration - 1</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Web OSINT / Due Diligence</li>
<li>Points: 100</li>
<li>Target: Find the original price listed on the first Daniel Wellington website.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>So this challenge was about finding what Daniel Wellington's website looked like back when they first started selling watches. Here's how I did it:</p>
<ul>
<li>Domain Discovery: First I found the original website domain for Daniel Wellington.</li>
<li>Internet Archive Search: Went straight to the <strong>Wayback Machine</strong> (web.archive.org) and searched for snapshots of the site.</li>
<li>Earliest Snapshots: Found snapshots from <strong>October, November, and December 2011</strong> — these were their first ever website versions.</li>
<li>Collection Tab: Clicked into the "Collection" tab on the archived site, and the price was right there: <strong>$145</strong>.</li>
</ul>
<p>That's it. Easy pz.</p>
<h3>Flag</h3>
<p><code>Flag: flag{145}</code></p>
<h2>8. Before the Registration - 2</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Web OSINT / Due Diligence</li>
<li>Points: 200</li>
<li>Target: Find the number of days between Daniel Wellington's website creation and its official company registration date.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>So this was a follow-up to the previous Daniel Wellington challenge. The task was to find the gap between when their website went live and when the company was officially registered in Sweden. Here's how I did it:</p>
<ul>
<li>Website Creation Date: From the previous challenge, I already knew the website existed in 2011. I checked the Wayback Machine again to find the earliest snapshot — the domain was created on <strong>16 February 2011</strong>.</li>
<li>Official Registration Date: Went to the <strong>Swedish Companies Registration Office</strong> (Bolagsverket) and looked up Daniel Wellington AB. The official registration date was <strong>8 December 2011</strong>.</li>
<li>Date Calculation: Calculated the days between the two dates, excluding the end date:
<ul>
<li>From 16 Feb 2011 to 8 Dec 2011 = <strong>295 days</strong>.</li>
</ul>
</li>
</ul>
<p>The interesting part was that the website was live and selling watches months before the company was legally registered — that's the discrepancy the challenge was pointing at.</p>
<h3>Flag</h3>
<p><code>Flag: flag{295}</code></p>
<h2>9. Behind the University VPN</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: Network OSINT / Threat Intelligence</li>
<li>Points: 300</li>
<li>Target: Identify the Autonomous System Number (ASN) associated with the University of London's VPN infrastructure.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>Ngl this was the most basic question in the whole set. I didn't use any lookup website, didn't read any official docs or articles about it. Just did one single Google search and got the answer instantly.</p>
<ul>
<li>Single Google Search: Typed <strong>"University of London's network infrastructure ASN number"</strong> into Google.</li>
<li>AI Mode Result: Google's AI mode search gave me the full details directly in the results — the ASN for University of London's network is <strong>AS786</strong>.</li>
<li>Confirmation: AS786 is registered to <strong>Jisc Services Limited</strong>, which manages the JANET network used by UK universities and research institutions.</li>
</ul>
<p>That was literally it. Super duper easy task for 300 points, ez.</p>
<h3>Flag</h3>
<p><code>Flag: flag{AS786}</code></p>
<h2>10. Behind Cloudflare - 1</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: DNS OSINT / Threat Intelligence</li>
<li>Points: 200</li>
<li>Target: Find one of the two MX records associated with coinbase.com in 2016.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>So the challenge was about coinbase.com's old MX records from 2016 — before Cloudflare obscured their origin infrastructure. Here's how I did it:</p>
<ul>
<li>Initial Google Search: First I just Googled for coinbase.com MX records. Got some results but none of them worked as the flag. Classic dead end.</li>
<li>SecurityTrails Lookup: I already had a SecurityTrails account, so I went deeper. Searched for <code>coinbase.com</code> in the search bar.</li>
<li>Historical Data: Navigated to the <strong>Historical Data</strong> section and filtered for <strong>MX records</strong>.</li>
<li>2016 Records: Scrolled down through the timeline and found the 2016 entries. Picked the first two records from that year.</li>
<li>Flag: Used the first one — <code>smf.inline.email.fireeyecloud.com</code> — and it worked. Boom, solved.</li>
</ul>
<p>The other MX record from that period was <code>iad.inline.email.fireeyecloud.com</code>, also valid.</p>
<h3>Flag</h3>
<p><code>Flag: flag{smf.inline.email.fireeyecloud.com}</code></p>
<h2>11. Behind the Infrastructure</h2>
<h3>Challenge Overview</h3>
<ul>
<li>Category: OSINT / Due Diligence</li>
<li>Points: 100</li>
<li>Target: Find the business email address of the IT Infrastructure Manager at GSF Car Parts.</li>
</ul>
<h3>The Approach &amp; Solution</h3>
<p>Another easy win. Literally just one Google search and Google AI mode handed me the answer.</p>
<ul>
<li>Single Google Search: Typed something like <strong>"GSF Car Parts IT Infrastructure Manager email"</strong> into Google.</li>
<li>AI Mode Result: Google's AI mode straight up gave me the name and email — <strong>Shaun Devey</strong> is the IT Director at GSF Car Parts, and his email is <code>shaun.devey@gsfcarparts.com</code>.</li>
<li>No Further Steps Needed: Didn't have to go to the official site, didn't have to search LinkedIn, didn't have to guess email formats. Just straight answer.</li>
</ul>
<p>Ez pz, ez 100 points.</p>
<h3>Flag</h3>
<p><code>Flag: flag{shaun.devey@gsfcarparts.com}</code></p>
<p>Honestly, I did use AI help and most of the help came from Google AI Mode Search, which solved challenges in minutes. These are some writeups, and it was just the Qualifier A round — the B round will come in Nov 2026. I'll be waiting. To be honest, this was my first OSINT challenge CTF and the first time getting a pretty high rank here. I'm happy that I scored 15th rank. Happy hacking!</p>
]]></content:encoded>
      <category>CTF Writeups</category>
    </item>
    <item>
      <title>TryHackMe Web Application Pentesting Path - Completed</title>
      <link>https://itzneel05.github.io/posts/thm_webpentesting/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/thm_webpentesting/</guid>
      <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
      <description>Wrapped up the Web App Pentesting path. Deep programming knowledge required, heavy on modern exploitation techniques. Learning phase officially over.</description>
      <content:encoded><![CDATA[<p>Just finished the <strong>Web Application Pentesting</strong> learning path on TryHackMe. This one was significantly harder and way more programming-heavy than the previous paths. Honestly, a good thing to learn deep enough to actually exploit websites properly.</p>
<h2>Modules Covered</h2>
<ul>
<li><strong>Authentication Attacks</strong> - Learned about auth security testing and lots of ways to attack and bypass authentication systems</li>
<li><strong>Injection Attacks</strong> - Advanced injection attacks, not just basic stuff but advanced techniques with much deeper knowledge</li>
<li><strong>Advanced Server-Side Attacks</strong> - Same as above, advanced stuff with new modern techniques for pentesting</li>
<li><strong>Advanced Client-Side Attacks</strong> - Advanced client-side attacks: XSS, CSRF, DOM, CORS, etc.</li>
<li><strong>HTTP Request Smuggling</strong> - The most brain-eating stuff. HTTP Request Smuggling can access internal resources, bypass permissions, cause privilege escalation, and even RCE</li>
</ul>
<h2>End of Learning Phase</h2>
<p>This marks the end of the learning phase for now. I spent <strong>1.5 months</strong> after my internship, learning advanced methods and techniques to pentest and hunt for bugs in websites. Also learned red teaming stuff and lots of CTF-related tools and methods.</p>
<p>Now I'll focus on actually using this learning on <strong>CTFs</strong> and <strong>Bug Bounty</strong>.
Btw, I reached <strong>top 2%</strong> on TryHackMe with a <strong>50-day streak</strong>, which is massive for me. Consistency is a very hard skill to master.</p>
<p>&lt;div style="margin: 2rem 0;"&gt;
&lt;img src="/assets/images/posts/THM-SQZEQPSR39.jpg" alt="TryHackMe Web Application Pentesting Certificate" style="width: 100%; max-width: 600px; height: auto;" /&gt;
&lt;/div&gt;
&lt;img src="/assets/images/posts/TryHackMe_Profile.png" alt="Top 2% Ranking - 30th April"&gt;</p>
<p>Happy hacking!</p>
]]></content:encoded>
      <category>Learning</category>
    </item>
    <item>
      <title>TryHackMe CompTIA Pentest+ &amp; Offensive Pentesting Path - Completed</title>
      <link>https://itzneel05.github.io/posts/thm_compplus-offpentesting/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/thm_compplus-offpentesting/</guid>
      <pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate>
      <description>Completed two heavyweight TryHackMe paths focused on industry-standard pentesting tools and AD exploitation. A practical deep dive.</description>
      <content:encoded><![CDATA[<p>Just wrapped up two more major learning paths on TryHackMe: <strong>CompTIA Pentest+</strong> and <strong>Offensive Pentesting</strong>. These were significantly more challenging than my previous paths, with a heavy focus on real-world attack scenarios and Active Directory exploitation.</p>
<h2>CompTIA Pentest+ Path</h2>
<p>This path was designed around the practical skills needed for the CompTIA PenTest+ certification. Unlike the exam-focused theory dumps, this was pure hands-on CTF rooms. The structure covered:</p>
<ul>
<li><strong>Planning &amp; Scoping:</strong> Red team engagements, governance, and pentesting fundamentals</li>
<li><strong>Tools:</strong> Metasploit, Wireshark, Burp Suite, Hydra, and Python for pentesters</li>
<li><strong>Information Gathering:</strong> Passive/active recon and advanced Nmap scanning techniques</li>
<li><strong>Attacks &amp; Exploits:</strong> Windows/Linux privilege escalation, Active Directory attacks, phishing, lateral movement, and credential harvesting</li>
<li><strong>OWASP Top 10 (2025):</strong> Updated vulnerabilities including IAAA failures, design flaws, and insecure data handling</li>
</ul>
<p><strong>OWASP Juice Shop</strong> was probably the most fun part - breaking a vulnerable web app in creative ways never gets old. The <strong>Active Directory modules</strong>, though? Those were brutal. Kerberos attacks, Bloodhound, Mimikatz, PowerView - it's a lot to process. I still don't have a complete grasp on all the AD attack chains, so that's definitely going on my research list for later.</p>
<h2>Offensive Pentesting Path</h2>
<p>This path was CTF-heavy with a strong Active Directory focus. Since I'd already completed many of the prerequisite modules, I moved through the initial sections faster:</p>
<ul>
<li><strong>Getting Started:</strong> Active recon, vulnerability scanning, privilege escalation, web attacks</li>
<li><strong>Advanced Exploitation:</strong> Public exploit handling, password cracking, Metasploit, port redirection</li>
<li><strong>Buffer Overflow Exploitation:</strong> Windows buffer overflows and basic exploit development (this was challenging but incredibly valuable)</li>
<li><strong>Active Directory Deep Dive:</strong> Breaching, enumerating, lateral movement, exploitation, persistence, and credential harvesting across AD environments</li>
</ul>
<p>Full disclosure: I did use external writeups for some of the harder rooms. But honestly, learning is learning, right? The goal isn't just to get the flag - it's to understand <em>how</em> and <em>why</em> the attack works. And I definitely came out of this path with a much deeper understanding of Windows environments and AD infrastructure.</p>
<h2>Where I Stand Now</h2>
<p>I can confidently say I've moved past the beginner threshold. There's still a ton to learn (especially around Active Directory), but my toolkit and methodology have improved significantly. I'm also working through the <strong>AI Security path</strong> - check that out on my site if you're interested.</p>
<p>Here are the certificates for both paths:</p>
<p>&lt;div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 2rem 0;"&gt;</p>
<p>&lt;img src="/assets/images/posts/THM-1V5UONJODK.jpg" alt="TryHackMe CompTIA Pentest+ Certificate" style="width: 100%; height: auto;" /&gt;
&lt;img src="/assets/images/posts/THM-I115QY2AUJ.jpg" alt="TryHackMe Offensive Pentesting Certificate" style="width: 100%; height: auto;" /&gt;
&lt;/div&gt;</p>
<p>Happy hacking!</p>
]]></content:encoded>
      <category>Learning</category>
    </item>
    <item>
      <title>TryHackMe AI Security Path — Completed</title>
      <link>https://itzneel05.github.io/posts/thm_ai-security/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/thm_ai-security/</guid>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <description>Exploring the intersection of AI and security through TryHackMe&apos;s latest learning path—plus a chance at some cool swag.</description>
      <content:encoded><![CDATA[<p>I just finished the New AI Security Path on TryHackMe. Honestly, it was a win-win situation: I got to dive into the world of AI security and, since there's a raffle giveaway, I might even snag some swag or a premium subscription. Win-win, right? Hehe.</p>
<p>This path was broken down into five core modules that really pushed my understanding of how AI works and, more importantly, how it breaks.</p>
<h1>Breaking Down the Modules</h1>
<ul>
<li><strong>AI Fundamentals:</strong> This was all about the basics LLMs, models, and the common threats facing them. I even learn little bit of AI Forensics.</li>
<li><strong>Securing AI Systems:</strong> I learned how vulnerable these systems actually are. This module focused on the specific attack surfaces that threat actors target when messing with AI.</li>
<li><strong>Prompt Injection:</strong> This was the highlight for me. I got to practice actual attacks like jailbreaking and system prompt reveals. It wasn’t just about attacking, though; I also learned the defensive side of how to stop these injections.</li>
<li><strong>AI Supply Chain Security &amp; Data Poisoning:</strong> These last two modules were definitely the hardest to wrap my head around. I explored RAG (Retrieval-Augmented Generation), its specific attack vectors, and how the AI supply chain can be compromised.</li>
</ul>
<h1>Final Thoughts</h1>
<p>I’ll be honest—this path felt a bit more Blue Team heavy than I expected, with less focus on pure Red Team attacks. I haven't fully digested every single detail yet, especially the supply chain stuff, but it has given me a solid foundation-to-mid-level understanding of the field.</p>
<p>&lt;img src="/assets/images/posts/AISec_THM-7GFNSEPFBU.jpg" alt="TryHackMe AI Security Certificate" width="400" /&gt;</p>
<p>It’s a great starting point for anyone looking to see where the industry is heading. I still have a lot to learn, but I'm glad I've built this foundation. Now, let’s hope I win that raffle!</p>
<p>Happy hacking!</p>
]]></content:encoded>
      <category>Learning</category>
    </item>
    <item>
      <title>TryHackMe Jr Penetration Tester &amp; Web Fundamentals Path — Completed</title>
      <link>https://itzneel05.github.io/posts/thm_jrptwebfund/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/thm_jrptwebfund/</guid>
      <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
      <description>My experience completing the Jr Penetration Tester and Web Fundamentals learning paths on TryHackMe - a fully practical journey.</description>
      <content:encoded><![CDATA[<p>I just wrapped up two major learning paths on TryHackMe: <strong>Jr Penetration Tester</strong> and <strong>Web Fundamentals</strong>. Honestly, the experience was amazing, mainly because it was full-on hands-on practical work. If you're tired of dry theory and just want to get your hands dirty with actual machines and vulnerabilities, these paths are exactly what you need.</p>
<p>Just like my experience with the SEC1 exam, these paths skip the fluff and dive straight into the "how-to". It’s one thing to read about an attack, but it’s a whole different feeling when you actually execute it on a target machine.</p>
<h2>What I Learned (The Practical Way)</h2>
<p>Instead of just sitting through slides, I spent my time actually doing things. Here's a quick look at the core stuff I tackled:</p>
<ul>
<li><strong>Privilege Escalation:</strong> I spent a good amount of time learning how to go from a low-level user to root/admin on both <strong>Linux and Windows</strong> systems. It's all about finding those misconfigurations that shouldn't be there.</li>
<li><strong>Shells &amp; Reverse Shells:</strong> Mastered the art of getting that initial foothold and then upgrading it to a more stable shell.</li>
<li><strong>Burp Suite Mastery:</strong> Probably one of the most useful tools I've learned. From intercepting traffic to automating attacks, Burp Suite is a beast for web testing.</li>
<li><strong>Nmap &amp; Metasploit:</strong> Spent a lot of time on <strong>Nmap mastery</strong> for network discovery and <strong>Metasploit</strong> for exploiting known vulnerabilities.</li>
<li><strong>Web Attacks &amp; OWASP:</strong> Dove deep into the <strong>TOP OWASP attacks</strong> like SQLi, XSS, and IDOR. It's eye-opening to see how common these still are.</li>
<li><strong>API Testing:</strong> Learned how to poke around APIs and find security holes in how data is being handled.</li>
<li><strong>Methodology &amp; Enumeration:</strong> This was a big one. Learning a solid <strong>penetration methodology</strong> and the importance of thorough <strong>enumeration</strong> changed how I approach any target. If you don't enumerate properly, you're just shooting in the dark.</li>
</ul>
<h2>Final Thoughts</h2>
<p>The best part about these paths is that they are <strong>fully practical</strong>. There's almost zero "just read this" sections—it's all about "do this and find the flag." It was incredibly helpful in bridging the gap between knowing a concept and actually being able to use it in a real-world scenario.</p>
<p>If you're looking to build actual skills that you can use, I can't recommend these enough. It’s been a great journey so far, and I’m definitely looking forward to the next challenge!</p>
<p>Here are the certificates for completing the paths:</p>
<p>&lt;div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 2rem 0;"&gt;</p>
<p>&lt;img src="/assets/images/posts/JrPT_THM-VDSYEQTC8H.jpg" alt="TryHackMe Jr Penetration Tester Certificate" style="width: 100%; height: auto;" /&gt;
&lt;img src="/assets/images/posts/WebF_THM-AZSD1RL5JV.jpg" alt="TryHackMe Web Fundamentals Certificate" style="width: 100%; height: auto;" /&gt;
&lt;/div&gt;</p>
<p>Happy hacking!</p>
]]></content:encoded>
      <category>Learning</category>
    </item>
    <item>
      <title>TryHackMe SEC1 Exam Writeup - 690/700</title>
      <link>https://itzneel05.github.io/posts/sec1-thm-exam/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/sec1-thm-exam/</guid>
      <pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate>
      <description>My experience completing the TryHackMe SEC1 exam with a score of 690/700 after finishing the CS101 learning path</description>
      <content:encoded><![CDATA[<p>I recently completed the TryHackMe SEC1 certification exam and managed to score 690 out of 700 points, which I'm pretty happy about! This writeup is about my journey preparing for the exam through the CS101 learning path and what the actual exam experience was like. If you're an entry-level cybersecurity student looking to validate your skills, this certification is honestly a great place to start.</p>
<h2>What is the SEC1 Exam?</h2>
<p>So let me talk about what the SEC1 exam actually is. It's TryHackMe's entry-level cybersecurity certification that tests your practical skills across multiple domains. The format is completely hands-on, meaning there are absolutely no theory-based questions where you just pick an answer from multiple choices. Everything is about interacting with actual machines and finding the answers yourself.</p>
<p>The exam structure breaks down like this:</p>
<ul>
<li>7 sections total covering 6 major topics</li>
<li>10 questions per section (70 questions total)</li>
<li>Time limit per section</li>
<li>100% hands-on, no theory</li>
<li>Open book (you can revisit THM modules during the exam)</li>
</ul>
<p>The distribution is pretty balanced too. There were 3 purple team modules, 2 red team modules, and 2 blue team modules. This means you get tested on offensive security, defensive security, and that hybrid purple team approach. What I really liked is that the exam is open book, so you can actually revisit TryHackMe modules during the exam if you need to refresh your memory on something. This makes it way more realistic to how things work in the real world where you have access to documentation.</p>
<h2>Preparation with CS101 Learning Path</h2>
<p>Before I even thought about taking the SEC1 exam, I completed the entire CS101 learning path on TryHackMe, and honestly, this was the key to my success. The CS101 path is basically the blueprint for everything you'll see in the SEC1 exam. Almost everything covered in the exam comes directly from the CS101 learning path, and I mean almost everything.</p>
<p>The CS101 path covers topics like:</p>
<ul>
<li>Linux fundamentals (command line, file systems, permissions)</li>
<li>Windows fundamentals (environments and security)</li>
<li>Networking basics (TCP/IP, protocols, analysis)</li>
<li>Web application security (OWASP Top 10, common vulnerabilities)</li>
<li>Cryptography (encryption, hashing, encoding)</li>
<li>Security operations (logs, SIEM, incident response)</li>
</ul>
<p>If you're planning to take SEC1, my biggest recommendation is to finish CS101 first. The investment in learning really pays off during the actual test. What made CS101 so valuable was that it gave me hands-on practice with a similar approach to what I'd face in the exam. By the time I finished the learning path, I felt confident that I was actually ready to attempt the certification. The comprehensive coverage meant I wasn't blindsided by any topics during the exam.</p>
<h2>The Exam Experience</h2>
<p>When it came to the actual exam experience, I completed all 7 sections in about 5 hours. The exam is definitely manageable if you've properly prepared with CS101. I'd say the difficulty level is easy to moderate for someone who's gone through the learning path. I didn't feel rushed at all, the questions were clear and straightforward, and I had no technical issues with the lab environment. Everything just worked smoothly.</p>
<p>The open book feature was clutch. I did revisit some modules during the exam to confirm certain concepts and commands, especially when I wanted to double-check syntax or remember specific techniques. This feature makes the exam feel more like a real-world scenario rather than a pure memorization test. You're being tested on your ability to apply knowledge and find solutions, not just regurgitate facts.</p>
<p>My approach during the exam was pretty straightforward:</p>
<ul>
<li>Read all questions in a section first to get an overview</li>
<li>Start with topics I felt most comfortable with</li>
<li>Use open-book strategically when needed</li>
<li>Double-check answers before submitting</li>
<li>Keep track of time per section</li>
</ul>
<h2>Results and Key Takeaways</h2>
<p>I ended up scoring 690 out of 700 points, which I'm quite proud of. The 10 points I missed were probably due to small oversights in a couple of questions or maybe rushing through one section a bit too quickly. But overall, the scoring felt fair and reflected my actual understanding of the material.</p>
<p>&lt;div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 2rem 0;"&gt;
&lt;img src="/assets/images/posts/SEC1_THM_Exam.jpg" alt="TryHackMe SEC1 Certificate" style="width: 100%; height: auto;" /&gt;
&lt;img src="/assets/images/posts/THM-ASIFFXKJ0B.jpg" alt="TryHackMe SEC1 Score" style="width: 90%; height: auto;" /&gt;
&lt;/div&gt;</p>
<p>What I learned from this whole experience is that practical skills really matter. The hands-on format tests whether you can actually perform tasks, not just remember theory. Having strong fundamentals in Linux, networking, and web security carries you far. I also realized that knowing how to quickly find information is just as important as memorizing it, and understanding both offensive and defensive perspectives through that purple team mindset is genuinely valuable.</p>
<p>Happy hacking, and good luck with your SEC1 exam!</p>
]]></content:encoded>
      <category>Learning</category>
    </item>
    <item>
      <title>TryHackMe Pre-Security Path — Completed</title>
      <link>https://itzneel05.github.io/posts/thm_pre-security/</link>
      <guid isPermaLink="true">https://itzneel05.github.io/posts/thm_pre-security/</guid>
      <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
      <description>My journey completing the TryHackMe Pre-Security path and what I learned.</description>
      <content:encoded><![CDATA[<p>Completed the TryHackMe Pre-Security path. Some of it I already knew
from my internship and HTB machines — but going through it properly
helped connect the dots and fill in gaps I didn't even know I had.</p>
<p>Here's a quick breakdown of each module and what I took away.</p>
<hr />
<h2>Modules</h2>
<h3>1. Introduction to Cyber Security</h3>
<p>Offensive vs defensive security, how they work together, and what
different roles in cybersecurity actually do. Good orientation before
everything else — especially the bit about how attackers and defenders
think differently.</p>
<h3>2. Network Fundamentals</h3>
<p>OSI model, TCP/IP, how packets travel, types of network weaknesses.
The most practically useful module in the path. Knowing how computers
communicate with each other is the foundation of every single pentest
and CTF — you can't enumerate what you don't understand.</p>
<h3>3. How The Web Works</h3>
<p>DNS resolution, HTTP requests and responses, how a browser talks to
a server. If you've ever used Burp Suite and wondered what you're
actually intercepting — this module explains exactly that.</p>
<h3>4. Computer Fundamentals</h3>
<p>Hardware basics, how a CPU processes instructions, memory, storage,
all the way up to cloud basics. Less directly useful for hacking but
important for understanding what you're targeting.</p>
<h3>5. Operating Systems Basics</h3>
<p>Windows and Linux fundamentals — file systems, user permissions,
processes, CLI interaction. I use Linux daily but going through this
methodically helped me understand things I was doing by muscle memory
without fully knowing why.</p>
<h3>6. Software Basics</h3>
<p>How computers handle data, intro to Python, JavaScript, and SQL.
The SQL section is worth paying attention to — understanding how
databases work is directly relevant to SQL injection later.</p>
<h3>7. Attacks and Defenses</h3>
<p>How attackers think, how data is protected, real-world attack and
defense scenarios. Good final module — ties everything together with
actual security context.</p>
<hr />
<h2>What I Took Away</h2>
<p>The biggest thing wasn't any single concept — it was having everything
properly connected. I knew bits and pieces from my VAPT internship and
CTFs, but there were gaps I didn't realise were there until I filled them.</p>
<p>The networking, web, and software modules especially — understanding how
data flows end to end makes everything else make more sense. Exploitation,
enumeration, traffic interception — it all sits on top of this foundation.</p>
<hr />
<h2>Certificate</h2>
<p>&lt;img src="/assets/images/posts/THM-A6RKRVPNBA.jpg" alt="TryHackMe Pre-Security Certificate" width="400" /&gt;</p>
<p>Verify: <a href="https://tryhackme.com/certificate/THM-A6RKRVPNBA">THM Certificate Link</a></p>
<hr />
]]></content:encoded>
      <category>Learning</category>
    </item>
  </channel>
</rss>