<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Awaab Kheiri | Cybersecurity Researcher</title><link>https://atank.vercel.app/</link><description>Recent content on Awaab Kheiri | Cybersecurity Researcher</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 10 Oct 2026 12:34:48 +0000</lastBuildDate><atom:link href="https://atank.vercel.app/index.xml" rel="self" type="application/rss+xml"/><item><title>Hardware Security Assessment: $10 IoT Camera Firmware Analysis</title><link>https://atank.vercel.app/projects/hardware-security-assessment-10-iot-camera-firmware-analysis/</link><pubDate>Tue, 15 Sep 2026 15:15:00 +0000</pubDate><guid>https://atank.vercel.app/projects/hardware-security-assessment-10-iot-camera-firmware-analysis/</guid><description>&lt;h1 id="tldr"&gt;TL;DR&lt;/h1&gt;&#10;&lt;p&gt;Find &lt;a href="https://atank.vercel.app/projects/hardware-security-assessment-usd10-iot-camera-uart-extraction-and-firmware" title="Hardware Security Assessment: $10 IoT Camera UART Extraction &amp;amp; Firmware Analysis"&gt;Part 1&lt;/a&gt; of the series and &lt;a href="https://atank.vercel.app/projects/hardware-security-assessment-usd10-iot-camera-network-analysis" title="Hardware Security Assessment: $10 IoT Camera Network Analysis"&gt;Part 2&lt;/a&gt; of the series&lt;/p&gt;&#10;&lt;p&gt;I got the appropriate tools to dump the camera&amp;rsquo;s firmware directly from the camera&amp;rsquo;s flash chip. I managed to get it off, and now I have a complete &amp;ldquo;copy&amp;rdquo; of the device&amp;rsquo;s firmware to analyze.&lt;/p&gt;&#10;&lt;p&gt;When examining the firmware, a number of important features were discovered. Firstly, unlike what I thought, RTSP was not disabled, it is active and available. Stream credentials were found in a configuration file in the firmware image.&lt;/p&gt;</description></item><item><title>Dynamic Analysis of njRAT v0.6.4</title><link>https://atank.vercel.app/projects/dynamic-analysis-of-njrat-v0-6-4/</link><pubDate>Thu, 02 Jul 2026 13:06:00 +0000</pubDate><guid>https://atank.vercel.app/projects/dynamic-analysis-of-njrat-v0-6-4/</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;&#10;&lt;p&gt;Following the static analysis of the sample, I came up with a few findings that needed confirmation, as well as, some things that are either contradicting or weird that needed further clarification. In this post I will try to clarify/confirm these things through dynamic analysis.&lt;/p&gt;&#10;&lt;h1 id="main-findings"&gt;Main Findings&lt;/h1&gt;&#10;&lt;p&gt;From the static analysis I gathered some clues and made the following hypothesis;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;The main exe is only a dropper and not the actual payload/malicious software.&lt;/li&gt;&#10;&lt;li&gt;The presence of the malware is unknown to the user since ShowInTaskBar is set to false and the opacity of the window is set to 0.0.&lt;/li&gt;&#10;&lt;li&gt;Conflicting manifests suggest that one of them (the default) is used as a decoy or a means to escalate privileges.&lt;/li&gt;&#10;&lt;li&gt;Uses TCP Client to communicate and possibly exfiltrate data to the C2 server.&lt;/li&gt;&#10;&lt;li&gt;Uses camera and microphone&lt;/li&gt;&#10;&lt;li&gt;Makes changes to the registry for persistence&lt;/li&gt;&#10;&lt;li&gt;Makes configuration changes to the firewall&lt;/li&gt;&#10;&lt;li&gt;zaaptoo C2 server&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The main goal of this paper is to go through my setup, the problems faced, the tools I used and finally confirm the above hypothesis through dynamic analysis.&lt;/p&gt;</description></item><item><title>Static Analysis of njRAT v0.6.4</title><link>https://atank.vercel.app/projects/static-analysis-of-njrat-v0-6-4/</link><pubDate>Mon, 29 Jun 2026 10:41:00 +0000</pubDate><guid>https://atank.vercel.app/projects/static-analysis-of-njrat-v0-6-4/</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;&#10;&lt;p&gt;The njRAT is a RAT which was seen for the first time in 2012 and has since been linked to a developer referred to as njq8. njRAT has been popularly used in targeted campaigns in the Middle East and North Africa region and stands out due to the wide variety of capabilities that it possesses, such as keylogging, credential theft, remote shells, and camera spying. In this paper, I perform a static analysis of njRAT version 0.6.4 which is hosted in the theZoo malware repository. The analysis involves the examination of sample ID, execution, persistence, capabilities, encryption techniques, and attribution.&lt;/p&gt;</description></item><item><title>Hardware Security Assessment: $10 IoT Camera Network Analysis</title><link>https://atank.vercel.app/projects/hardware-security-assessment-usd10-iot-camera-network-analysis/</link><pubDate>Mon, 13 Apr 2026 08:44:00 +0000</pubDate><guid>https://atank.vercel.app/projects/hardware-security-assessment-usd10-iot-camera-network-analysis/</guid><description>&lt;p&gt;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/2596ad3d0164.jpeg" alt="WhatsApp Image 2026-04-14 at 12.29.40"&gt;&#10; &lt;figcaption&gt;WhatsApp Image 2026-04-14 at 12.29.40&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;&#10;&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;&#10;&lt;p&gt;After being stalled by a faulty RX pin on the UART interface in a prior hardware-level analysis, I turned to the network layer. This latter effort is focused on capturing and decoding the packets of data sent to and from the camera to determine the underlying tech stack and possible entry points.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h1 id="methodology"&gt;Methodology&lt;/h1&gt;&#10;&lt;p&gt;Since the hardware interface proved to be not so reliable, I resorted to a wireless traffic analysis. The camera will act as a local Access Point (AP), and it can be hardwired to the device and a smartphone app. I took advantage of this network of ad-hoc that I was at the center of communication channel.&lt;/p&gt;</description></item><item><title>Hardware Security Assessment: $10 IoT Camera UART Extraction &amp; Firmware Analysis</title><link>https://atank.vercel.app/projects/hardware-security-assessment-usd10-iot-camera-uart-extraction-and-firmware/</link><pubDate>Sun, 12 Apr 2026 22:36:00 +0000</pubDate><guid>https://atank.vercel.app/projects/hardware-security-assessment-usd10-iot-camera-uart-extraction-and-firmware/</guid><description>&lt;p&gt;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/6c339500be2e.jpeg" alt="WhatsApp Image 2026-04-12 at 18.58.26"&gt;&#10; &lt;figcaption&gt;WhatsApp Image 2026-04-12 at 18.58.26&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;&#10;&lt;h1 id="target"&gt;Target&lt;/h1&gt;&#10;&lt;p&gt;The Target is a $10 IoT security camera. The camera has many features like remote microphone, infrared (night vision), saving footage to an internal SD card, a companion mobile application, panning and tilting. This many features in such a cheap device could be home to a large attack surface, anything from video feed capture to microphone eavesdropping. Additionally, low cost-focused devices such as this most likely call home and/or have unencrypted video and audio data transmission.&lt;/p&gt;</description></item><item><title>Simple Encryptor HTB Challenge</title><link>https://atank.vercel.app/writeups/simple-encryptor-htb-challenge/</link><pubDate>Fri, 06 Mar 2026 21:45:00 +0000</pubDate><guid>https://atank.vercel.app/writeups/simple-encryptor-htb-challenge/</guid><description>&lt;p&gt;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/935502ea9b7f.png" alt="Simple Encryptor Cover"&gt;&#10; &lt;figcaption&gt;Simple Encryptor Cover&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;&#10;&lt;h1 id="reconnaissance"&gt;Reconnaissance&lt;/h1&gt;&#10;&lt;p&gt;The unzipped folder contains 2 files. &amp;ldquo;encrypt&amp;rdquo; and &amp;ldquo;flag.enc&amp;rdquo;. I started by running the standard commands to learn more about the files.&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;code&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="code code block"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;someone@someone:~/HTB/ReverseEngineering/simple/rev_simpleencryptor$ cat flag.enc&#10;Z5�b�&amp;gt;�����u���9�K�!�C#qe�&amp;#39;K% &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;code&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="code code block"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;someone@someone:~/HTB/ReverseEngineering/simple/rev_simpleencryptor$ file flag.enc&#10;flag.enc: data&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;code&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="code code block"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;someone@someone:~/HTB/ReverseEngineering/simple/rev_simpleencryptor$ file encrypt&#10;encrypt: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0bddc0a794eca6f6e2e9dac0b6190b62f07c4c75, for GNU/Linux 3.2.0, not stripped&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;code&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="code code block"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;someone@someone:~/HTB/ReverseEngineering/simple/rev_simpleencryptor$ strings encrypt&#10;/lib64/ld-linux-x86-64.so.2&#10;libc.so.6&#10;srand&#10;fopen&#10;ftell&#10;time&#10;__stack_chk_fail&#10;fseek&#10;fclose&#10;malloc&#10;fwrite&#10;fread&#10;__cxa_finalize&#10;__libc_start_main&#10;GLIBC_2.4&#10;GLIBC_2.2.5&#10;_ITM_deregisterTMCloneTable&#10;__gmon_start__&#10;_ITM_registerTMCloneTable&#10;u+UH&#10;dH3&amp;lt;%(&#10;[]A\A]A^A_&#10;flag&#10;flag.enc&#10;:*3$&amp;#34;&#10;GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0&#10;crtstuff.c&#10;deregister_tm_clones&#10;__do_global_dtors_aux&#10;completed.8061&#10;__do_global_dtors_aux_fini_array_entry&#10;frame_dummy&#10;__frame_dummy_init_array_entry&#10;encrypt.c&#10;__FRAME_END__&#10;__init_array_end&#10;_DYNAMIC&#10;__init_array_start&#10;__GNU_EH_FRAME_HDR&#10;_GLOBAL_OFFSET_TABLE_&#10;__libc_csu_fini&#10;_ITM_deregisterTMCloneTable&#10;fread@@GLIBC_2.2.5&#10;_edata&#10;fclose@@GLIBC_2.2.5&#10;__stack_chk_fail@@GLIBC_2.4&#10;__libc_start_main@@GLIBC_2.2.5&#10;srand@@GLIBC_2.2.5&#10;__data_start&#10;ftell@@GLIBC_2.2.5&#10;__gmon_start__&#10;__dso_handle&#10;_IO_stdin_used&#10;time@@GLIBC_2.2.5&#10;__libc_csu_init&#10;malloc@@GLIBC_2.2.5&#10;fseek@@GLIBC_2.2.5&#10;__bss_start&#10;main&#10;fopen@@GLIBC_2.2.5&#10;fwrite@@GLIBC_2.2.5&#10;__TMC_END__&#10;_ITM_registerTMCloneTable&#10;__cxa_finalize@@GLIBC_2.2.5&#10;.symtab&#10;.strtab&#10;.shstrtab&#10;.interp&#10;.note.gnu.property&#10;.note.gnu.build-id&#10;.note.ABI-tag&#10;.gnu.hash&#10;.dynsym&#10;.dynstr&#10;.gnu.version&#10;.gnu.version_r&#10;.rela.dyn&#10;.rela.plt&#10;.init&#10;.plt.got&#10;.plt.sec&#10;.text&#10;.fini&#10;.rodata&#10;.eh_frame_hdr&#10;.eh_frame&#10;.init_array&#10;.fini_array&#10;.dynamic&#10;.data&#10;.bss&#10;.comment&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;code&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="code code block"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;someone@someone:~/HTB/ReverseEngineering/simple/rev_simpleencryptor$ chmod +x encrypt&#10;someone@someone:~/HTB/ReverseEngineering/simple/rev_simpleencryptor$ ./encrypt&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Nothing special there, although I realized that there is the word flag and flag.enc, so I changed the file name to flag and it outputted another file called flag.enc with different content.&lt;/p&gt;</description></item><item><title>HackTheBox -- Pterodactyl (MEDIUM) Experience</title><link>https://atank.vercel.app/writeups/hackthebox-pterodactyl-medium-experience/</link><pubDate>Wed, 04 Mar 2026 13:06:00 +0000</pubDate><guid>https://atank.vercel.app/writeups/hackthebox-pterodactyl-medium-experience/</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;&#10;&lt;p&gt;This write‑up contains spoilers for the entire user flag.&lt;/p&gt;&#10;&lt;p&gt;This is my second time attempting a medium-difficulty machine on Hack The Box. Before starting, I searched for write-ups and passed one of them to Claude, instructing it not to reveal any solutions and only give hints when requested. From there, I worked through the machine step by step, using the hints and my own analysis to reach the user flag.&lt;/p&gt;</description></item><item><title>ZTE ZXHN H298A Home Gateway – Hardware Recon &amp; Boot Process Analysis</title><link>https://atank.vercel.app/projects/zte-zxhn-h298a-home-gateway-hardware-recon-and-boot-process-analysis/</link><pubDate>Mon, 02 Feb 2026 08:46:00 +0000</pubDate><guid>https://atank.vercel.app/projects/zte-zxhn-h298a-home-gateway-hardware-recon-and-boot-process-analysis/</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;/h1&gt;&#10;&lt;p&gt;The target device is ZTE ZXHN H298A Home Gateway, a commercial router commonly provided by ISPs. This post highlights how I got physical access of the router, found and interface UART and finally analyzed the boot process. I have not performed any type of exploitation or code execution yet.&#10;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/5e9d5684eea8.jpeg" alt="Enclosure Router"&gt;&#10; &lt;figcaption&gt;Enclosure Router&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;&#10;&lt;h1 id="objectives"&gt;Objectives&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Gain physical access to the PCB&lt;/li&gt;&#10;&lt;li&gt;Identify exposed UART interface&lt;/li&gt;&#10;&lt;li&gt;Identify UART pads and interface with its console&lt;/li&gt;&#10;&lt;li&gt;Analyze boot process and identify attack surfaces&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h1 id="threat-model"&gt;Threat Model&lt;/h1&gt;&#10;&lt;h2 id="attacker-capabilities"&gt;Attacker Capabilities&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Physical access to the device&lt;/li&gt;&#10;&lt;li&gt;Ability to disasemble the enclosure and access the PCB&lt;/li&gt;&#10;&lt;li&gt;Ability to interface with exposed debug interfaces&lt;/li&gt;&#10;&lt;li&gt;Tooling limited to low cost;&#10;&lt;ul&gt;&#10;&lt;li&gt;USB-to-TTL adapter&lt;/li&gt;&#10;&lt;li&gt;Generic Saleae Logic Analyzer&lt;/li&gt;&#10;&lt;li&gt;Soldering Iron&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="assests-of-interest"&gt;Assests of Interest&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;UART console access level&lt;/li&gt;&#10;&lt;li&gt;Bootloader interaction capabilities&lt;/li&gt;&#10;&lt;li&gt;Firmware and filesystem access&lt;/li&gt;&#10;&lt;li&gt;Credentials or configuration data&lt;/li&gt;&#10;&lt;li&gt;Debug interfaces left exposed in production&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h1 id="methodology"&gt;Methodology&lt;/h1&gt;&#10;&lt;h2 id="device-teardown"&gt;Device Teardown&lt;/h2&gt;&#10;&lt;p&gt;The enclosure could be popped open and the PCB could simply unscrews from the enclosure. I have not taken any destructive measures to get physical access to the PCB. I then visually inspected the PCB for 4 exposed test points, headers and unpopulated pads.&#10;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/2383402d0177.jpeg" alt="PCB inside the enclosure"&gt;&#10; &lt;figcaption&gt;PCB inside the enclosure&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;</description></item><item><title>Reverse Engineering Challenge: Silent Oracle</title><link>https://atank.vercel.app/writeups/reverse-engineering-challenge-silent-oracle/</link><pubDate>Fri, 05 Dec 2025 16:00:00 +0000</pubDate><guid>https://atank.vercel.app/writeups/reverse-engineering-challenge-silent-oracle/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;&#10;&lt;p&gt;This reverse-engineering challenge was part of the Neurogrid CTF hosted by HTB.&lt;/p&gt;&#10;&lt;p&gt;The task included a Docker instance and a local source file mirroring the remote service (chall). Running it displayed an ASCII witch and prompted for an unknown input string. Any incorrect input produced a failure message.&lt;/p&gt;&#10;&lt;p&gt;The initial objective was simple: determine the exact string the program expected and check whether submitting it would reveal a flag.&lt;/p&gt;</description></item><item><title>HackTheBox -- Imagery (MEDIUM) Experience</title><link>https://atank.vercel.app/writeups/hackthebox-imagery-medium-experience/</link><pubDate>Sat, 15 Nov 2025 16:00:00 +0000</pubDate><guid>https://atank.vercel.app/writeups/hackthebox-imagery-medium-experience/</guid><description>&lt;p&gt;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/9892cf7ab54c.png" alt="ImageryCard"&gt;&#10; &lt;figcaption&gt;ImageryCard&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;&#10;&lt;h3 id="intro"&gt;Intro&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;This write‑up contains spoilers for the entire user flag.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;This was my first time attempting a medium-difficulty machine on Hack The Box. Before starting, I searched for write-ups and passed one of them to an AI assistant, instructing it not to reveal any solutions and only give hints when requested. From there, I worked through the machine step by step, using the hints and my own analysis to reach the final root.&lt;/p&gt;</description></item><item><title>HackTheBox -- Soulmate (Easy) Experience</title><link>https://atank.vercel.app/writeups/hackthebox-soulmate-easy-experience/</link><pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate><guid>https://atank.vercel.app/writeups/hackthebox-soulmate-easy-experience/</guid><description>&lt;h1 id="reconnaissance"&gt;Reconnaissance&lt;/h1&gt;&#10;&lt;p&gt;I started with enumerating the network using nmap.&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;bash&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="bash code block"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nmap -sC -sV -oA nmap/nmap 10.10.11.86&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;This is the output of nmap&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;bash&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="bash code block"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Starting Nmap 7.97 &lt;span class="o"&gt;(&lt;/span&gt; https://nmap.org &lt;span class="o"&gt;)&lt;/span&gt; at 2025-09-22 00:42 +0000&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Nmap scan report &lt;span class="k"&gt;for&lt;/span&gt; 10.10.11.86&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Host is up &lt;span class="o"&gt;(&lt;/span&gt;0.20s latency&lt;span class="o"&gt;)&lt;/span&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Not shown: &lt;span class="m"&gt;998&lt;/span&gt; closed tcp ports &lt;span class="o"&gt;(&lt;/span&gt;reset&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;PORT STATE SERVICE VERSION&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 &lt;span class="o"&gt;(&lt;/span&gt;Ubuntu Linux&lt;span class="p"&gt;;&lt;/span&gt; protocol 2.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; ssh-hostkey: &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="m"&gt;256&lt;/span&gt; 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f &lt;span class="o"&gt;(&lt;/span&gt;ECDSA&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt;_ &lt;span class="m"&gt;256&lt;/span&gt; 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 &lt;span class="o"&gt;(&lt;/span&gt;ED25519&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;80/tcp open http nginx 1.18.0 &lt;span class="o"&gt;(&lt;/span&gt;Ubuntu&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt;_http-server-header: nginx/1.18.0 &lt;span class="o"&gt;(&lt;/span&gt;Ubuntu&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;|&lt;/span&gt;_http-title: Did not follow redirect to http://soulmate.htb/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Service Info: OS: Linux&lt;span class="p"&gt;;&lt;/span&gt; CPE: cpe:/o:linux:linux_kernel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Nmap &lt;span class="k"&gt;done&lt;/span&gt;: &lt;span class="m"&gt;1&lt;/span&gt; IP address &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; host up&lt;span class="o"&gt;)&lt;/span&gt; scanned in 16.99 seconds&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;I gather that this is a web app running on port 80 and I need to add it to my /etc/hosts file.&lt;/p&gt;</description></item><item><title>HackTheBox -- Code (EASY) Experience</title><link>https://atank.vercel.app/writeups/hackthebox-code-easy-experience/</link><pubDate>Sat, 26 Apr 2025 04:00:00 +0000</pubDate><guid>https://atank.vercel.app/writeups/hackthebox-code-easy-experience/</guid><description>&lt;p&gt;&lt;figure class="markdown-figure"&gt;&#10; &lt;img src="https://atank.vercel.app/contentful/b31545bf79a6.png" alt="HTB Code"&gt;&#10; &lt;figcaption&gt;HTB Code&lt;/figcaption&gt;&#10;&lt;/figure&gt;&lt;/p&gt;&#10;&lt;h3 id="reconnaissance"&gt;Reconnaissance&lt;/h3&gt;&#10;&lt;p&gt;As usual we begin with the nmap scan.&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;nmap -sC -sV -oA scan 10.10.XX.XX&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;This nets us the following output;&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-block-head"&gt;&lt;span class="code-block-language"&gt;code&lt;/span&gt;&lt;button type="button" class="copy-code" aria-label="Copy code"&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&#10; &lt;div class="code-block-body" role="group" aria-label="code code block"&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-26 07:39 EDT&#10;Nmap scan report for 10.10.11.62&#10;Host is up (0.18s latency).&#10;Not shown: 998 closed tcp ports (reset)&#10;PORT STATE SERVICE VERSION&#10;22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.12 (Ubuntu Linux; protocol 2.0)&#10;| ssh-hostkey: &#10;| 3072 b5:b9:7c:c4:50:32:95:bc:c2:65:17:df:51:a2:7a:bd (RSA)&#10;| 256 94:b5:25:54:9b:68:af:be:40:e1:1d:a8:6b:85:0d:01 (ECDSA)&#10;|_ 256 12:8c:dc:97:ad:86:00:b4:88:e2:29:cf:69:b5:65:96 (ED25519)&#10;5000/tcp open http Gunicorn 20.0.4&#10;|_http-title: Python Code Editor&#10;|_http-server-header: gunicorn/20.0.4&#10;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel&#10;&#10;Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .&#10;Nmap done: 1 IP address (1 host up) scanned in 27.44 seconds&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;From this I could see that there is ssh running as usual but then there is this service I have never seen before running on port 5000 Gunicorn version 20.0.4. I&amp;rsquo;ll take note of that. Navigating to http://10.10.XX.XX:5000 we are greeted with a python editor, immediately the first thing that came to mind was some sort of code execution using the code editor.&lt;/p&gt;</description></item><item><title>Simple Physics Simulation: Humble Beginnings</title><link>https://atank.vercel.app/projects/simple-physics-simulation/</link><pubDate>Mon, 30 Dec 2024 00:19:00 +0000</pubDate><guid>https://atank.vercel.app/projects/simple-physics-simulation/</guid><description>&lt;h3 id="introduction"&gt;Introduction&lt;/h3&gt;&#10;&lt;p&gt;As I am continuing my C endeavors, I have started working on a simple physics simulation. The main idea of the project is to simulate particles; as I want this project to simulate what happens in real life when you suspend some particles in the air and then letting go of them and observing what happens - the collisions between the particles and the walls etc.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h3 id="the-project-so-far"&gt;The Project So Far&lt;/h3&gt;&#10;&lt;p&gt;The project currently only displays a rectangle on the screen. Which then a simple algorithm generates a circle from the square.&lt;/p&gt;</description></item><item><title>Resume</title><link>https://atank.vercel.app/resume/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://atank.vercel.app/resume/</guid><description/></item></channel></rss>