<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hackpuntes</title><link>https://hackpuntes.com/</link><description>Recent content on Hackpuntes</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 23 Aug 2087 00:00:00 +0000</lastBuildDate><atom:link href="https://hackpuntes.com/index.xml" rel="self" type="application/rss+xml"/><item><title>RedTeam Command Generator</title><link>https://hackpuntes.com/tools/redteam-command-generator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/tools/redteam-command-generator/</guid><description>&lt;p&gt;Like &lt;a href="https://www.revshells.com/" target="_blank" rel="noopener noreferrer"&gt;revshells.com&lt;/a&gt;
/ &lt;a href="https://wadcoms.github.io/" target="_blank" rel="noopener noreferrer"&gt;WADComs&lt;/a&gt;
, but for &lt;strong&gt;Active Directory and red teaming&lt;/strong&gt;. Enter the target details once and every command below fills itself in — no more rewriting IPs, domains or hashes for each tool. Use the search box to filter by technique or tool.&lt;/p&gt;</description></item><item><title>OWASP Risk Assessment Calculator</title><link>https://hackpuntes.com/tools/owasp-risk-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/tools/owasp-risk-calculator/</guid><description>&lt;p&gt;Score the risk of a vulnerability following the &lt;a href="https://owasp.org/www-community/OWASP_Risk_Rating_Methodology" target="_blank" rel="noopener noreferrer"&gt;OWASP Risk Rating Methodology&lt;/a&gt;
. Tune the 16 factors (threat agent, vulnerability, technical and business impact) and instantly get the &lt;strong&gt;likelihood&lt;/strong&gt;, &lt;strong&gt;impact&lt;/strong&gt; and overall &lt;strong&gt;severity&lt;/strong&gt;, with its radar chart. The &lt;strong&gt;vector&lt;/strong&gt; is stored in the URL — copy the link to share or document the assessment.&lt;/p&gt;</description></item><item><title>CVSS 4.0 Calculator</title><link>https://hackpuntes.com/tools/cvss-calculator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/tools/cvss-calculator/</guid><description>&lt;p&gt;Score a vulnerability&amp;rsquo;s severity with &lt;strong&gt;CVSS v4.0&lt;/strong&gt; using &lt;strong&gt;&lt;a href="https://www.first.org/cvss/calculator/4.0" target="_blank" rel="noopener noreferrer"&gt;FIRST.org&lt;/a&gt;
&amp;rsquo;s official scoring engine&lt;/strong&gt; (same result as the official calculator). Tune the &lt;strong&gt;Base&lt;/strong&gt;, &lt;strong&gt;Threat&lt;/strong&gt;, &lt;strong&gt;Environmental&lt;/strong&gt; and &lt;strong&gt;Supplemental&lt;/strong&gt; metrics — each one explained — and instantly get the score, severity and the &lt;strong&gt;vector&lt;/strong&gt;, stored in the URL to share or document the assessment.&lt;/p&gt;</description></item><item><title>Logging WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/logging-writeup/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/logging-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/logging/logging-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/logging/logging-banner.webp" alt="Logging WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Logging&lt;/strong&gt; is a &lt;code&gt;🟧 Medium&lt;/code&gt; difficulty machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;, and it is one of those Active Directory boxes where you keep chaining one flaw after another until you own the whole domain. We start by reading a plaintext password someone left lying around in a log, we abuse permissions over a gMSA account to grab its hash, we jump to another user with a DLL hijacking in a scheduled task, and to finish we request an ADCS certificate via ESC1 and impersonate a WSUS server to run code as SYSTEM on the Domain Controller. It sounds like a lot, but we are going to take it slow and go bit by bit.&lt;/p&gt;</description></item><item><title>CCTV WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/cctv-writeup/</link><pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/cctv-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/cctv/cctv-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/cctv/cctv-banner.webp" alt="CCTV WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CCTV&lt;/strong&gt; is a &lt;code&gt;🟩 Easy&lt;/code&gt; machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;. It chains a SQL Injection in &lt;strong&gt;ZoneMinder&lt;/strong&gt; to obtain SSH credentials, with the discovery of internal video surveillance services after pivoting from the compromised machine. Escalation to root is achieved through an authenticated RCE in &lt;strong&gt;motionEye&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IP&lt;/strong&gt;: &lt;code&gt;10.129.3.35&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Approximate time&lt;/strong&gt;: &lt;code&gt;~1.5h&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-attack-chain"&gt;🗺️ Attack Chain&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Nmap → Port 80 (ZoneMinder 1.37.63)
│
▼
Default credentials admin:admin → panel access
│
▼
CVE-2024-51482 (Boolean SQLi) → sqlmap → mark:opensesame
│
▼
SSH as mark
│
▼
LinPEAS → tcpdump (cap_net_raw) + internal ports
│
▼
Port Forwarding → motionEye 0.43.1b4 on :8765
│
▼
/etc/motioneye/motion.conf → admin:989c5a8ee87a0e9521ec81a79187d162109282f0
│
▼
CVE-2025-60787 (Metasploit RCE) → root 🏴
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="-reconnaissance"&gt;🔍 Reconnaissance&lt;/h2&gt;
&lt;h3 id="port-scanning"&gt;Port Scanning&lt;/h3&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;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;10.129.3.35 cctv.htb&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee -a /etc/hosts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nmap -p- --open -Pn --min-rate &lt;span class="m"&gt;5000&lt;/span&gt; -oA ports -vvv cctv.htb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -oP &lt;span class="s1"&gt;&amp;#39;\d+/open&amp;#39;&lt;/span&gt; ports.gnmap &lt;span class="p"&gt;|&lt;/span&gt; cut -d&lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt; -f1 &lt;span class="p"&gt;|&lt;/span&gt; sort -u &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed &lt;span class="s1"&gt;&amp;#39;s/,$//&amp;#39;&lt;/span&gt; &amp;gt; ports.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nmap -sCV -p&lt;span class="k"&gt;$(&lt;/span&gt;cat ports.txt&lt;span class="k"&gt;)&lt;/span&gt; -Pn -oA scan -vvv cctv.htb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;OpenSSH 9.6p1 Ubuntu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;80&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;td&gt;Apache 2.4.58 → &lt;code&gt;SecureVision CCTV&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Small attack surface. Port 22 is not vulnerable, so we focus on port 80.&lt;/p&gt;</description></item><item><title>DevArea WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/devarea-writeup/</link><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/devarea-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/devarea/devarea-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/devarea/devarea-banner.webp" alt="DevArea WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DevArea&lt;/strong&gt; is a &lt;code&gt;🟧 Medium&lt;/code&gt; machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;, part of &lt;strong&gt;Season 10&lt;/strong&gt;, created by &lt;strong&gt;EmSec&lt;/strong&gt;. It simulates a development environment with multiple exposed services: a SOAP web service running on Apache CXF/Jetty, an FTP server with anonymous access, and a Hoverfly service virtualization platform. The path chains an arbitrary file read vulnerability with API abuse to gain initial access, then exploits a critical misconfiguration in the system&amp;rsquo;s bash binary to escalate to root.&lt;/p&gt;</description></item><item><title>WingData WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/wingdata-writeup/</link><pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/wingdata-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/wingdata/wingdata-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/wingdata/wingdata-banner.webp" alt="WingData WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WingData&lt;/strong&gt; is an &lt;code&gt;🟩 Easy&lt;/code&gt; difficulty machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;, Season 10, created by &lt;strong&gt;WackyH4cker&lt;/strong&gt;. The attack chain combines exploiting a &lt;strong&gt;vulnerable Wing FTP Server&lt;/strong&gt; for initial access, extracting and cracking credentials from configuration files, and privilege escalation through a vulnerability in Python&amp;rsquo;s &lt;code&gt;tarfile&lt;/code&gt; module.&lt;/p&gt;
&lt;h2 id="-attack-chain"&gt;🗺️ Attack Chain&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Reconnaissance → Port 80 + 22
│
▼
Web enumeration → ftp.wingdata.htb (Wing FTP Server v7.4.3)
│
▼
CVE-2025-47812 → Unauthenticated RCE → Shell as wingftp
│
▼
/opt/wftpserver/Data/1/users/wacky.xml → Salted SHA-256 hash
│
▼
Hashcat (mode 1410) → Plaintext password → SSH as wacky
│
▼
sudo -l → restore_backup_clients.py (root) → CVE-2025-4517
│
▼
Malicious tar → path traversal → /etc/sudoers → root 🏴
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="-reconnaissance"&gt;🔍 Reconnaissance&lt;/h2&gt;
&lt;h3 id="etchosts-setup"&gt;/etc/hosts Setup&lt;/h3&gt;
&lt;p&gt;Before we start, we add the machine IP to &lt;code&gt;/etc/hosts&lt;/code&gt; so we can use the domain name across all tools:&lt;/p&gt;</description></item><item><title>NanoCorp WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/nanocorp-writeup/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/nanocorp-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/nanocorp/nanocorp-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/nanocorp/nanocorp-banner.webp" alt="NanoCorp WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NanoCorp&lt;/strong&gt; is a &lt;code&gt;🟥 Hard&lt;/code&gt; difficulty machine from the &lt;strong&gt;Hack The Box&lt;/strong&gt; platform. The attack chain starts at a job portal that accepts résumés in ZIP format: by packaging a malicious &lt;code&gt;.library-ms&lt;/code&gt; file (CVE-2025-24071) we get the server, on extraction, to try to authenticate over SMB against our machine, leaking the NetNTLMv2 hash of a service account. After cracking that password, we use &lt;strong&gt;BloodHound&lt;/strong&gt; to map the domain and discover a DACL abuse chain that lets us join a privileged group and reset the password of another service account with WinRM access. The final escalation exploits &lt;strong&gt;CVE-2024-0670&lt;/strong&gt; in the &lt;strong&gt;Checkmk&lt;/strong&gt; monitoring agent, abusing the repair of its MSI installer to run our own script as &lt;code&gt;NT AUTHORITY\SYSTEM&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>VariaType WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/variatype-writeup/</link><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/variatype-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/variatype/variatype-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/variatype/variatype-banner.webp" alt="VariaType WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VariaType&lt;/strong&gt; is a &lt;code&gt;🟧 Medium&lt;/code&gt; difficulty machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;, Season 10. The attack chain starts by discovering an exposed Git repository on an internal portal, extracting credentials from the commit history, exploiting an arbitrary file write in &lt;strong&gt;fontTools&lt;/strong&gt; to get a shell, moving laterally by abusing command injection in &lt;strong&gt;FontForge&lt;/strong&gt; via a malicious ZIP file, and escalating to root by leveraging a path traversal in &lt;strong&gt;setuptools&lt;/strong&gt; through a misconfigured &lt;code&gt;sudo&lt;/code&gt; rule.&lt;/p&gt;</description></item><item><title>Facts WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/facts-writeup/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/facts-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/facts/facts-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/facts/facts-banner.webp" alt="Facts WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Facts&lt;/strong&gt; is a &lt;code&gt;🟩 Easy&lt;/code&gt; difficulty machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;. It chains the exploitation of a web CMS with a credential leak into a &lt;strong&gt;MinIO&lt;/strong&gt; S3-compatible storage server, from which we extract a password-protected SSH private key. Privilege escalation is achieved by abusing a binary allowed via &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="-attack-chain"&gt;🗺️ Attack Chain&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Nmap → Port 80 (CamaleonCMS 2.9.0) + Port 54321 (MinIO)
│
▼
CVE-2025-2304 → Privilege Escalation + S3 Config Leak
│
▼
MinIO Credentials → Bucket &amp;#34;internal&amp;#34;
│
▼
.ssh/id_ed25519 (encrypted private key)
│
▼
ssh2john + john → passphrase: dragonballz → user: trivia
│
▼
sudo /usr/bin/facter → custom fact (.rb) → /bin/bash as root 🏴
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="-reconnaissance"&gt;🔍 Reconnaissance&lt;/h2&gt;
&lt;h3 id="port-scanning"&gt;Port Scanning&lt;/h3&gt;
&lt;p&gt;We perform reconnaissance in &lt;strong&gt;two phases&lt;/strong&gt;: fast discovery followed by version detection on the found ports.&lt;/p&gt;</description></item><item><title>Interpreter WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/interpreter-writeup/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/interpreter-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/interpreter/interpreter-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/interpreter/interpreter-banner.webp" alt="Interpreter WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interpreter&lt;/strong&gt; is a &lt;code&gt;🟨 Medium&lt;/code&gt; difficulty machine from the &lt;strong&gt;Hack The Box&lt;/strong&gt; platform, Season 10. The attack chain combines the exploitation of &lt;strong&gt;Mirth Connect 4.4.0&lt;/strong&gt; through insecure Java deserialization to obtain unauthenticated RCE, extraction of credentials from the internal database, cracking of a PBKDF2-HMAC-SHA256 hash, and privilege escalation by abusing a Flask service with Python f-string injection.&lt;/p&gt;
&lt;h2 id="-attack-chain"&gt;🗺️ Attack Chain&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Reconnaissance → Ports 22, 80, 443
│
▼
Web Enumeration → Mirth Connect 4.4.0 (via JNLP)
│
▼
CVE-2023-43208 → Insecure Java Deserialization → RCE as mirth
│
▼
/usr/local/mirthconnect/conf/mirth.properties → DB Credentials
│
▼
MariaDB (mc_bdd_prod) → PBKDF2-HMAC-SHA256 hash of sedric
│
▼
Hashcat (mode 10900) → snowflake1 → SSH as sedric
│
▼
/usr/local/bin/notif.py → Flask + eval() in f-strings → SSTI
│
▼
SUID bash → root 🏴
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="-reconnaissance"&gt;🔍 Reconnaissance&lt;/h2&gt;
&lt;h3 id="etchosts-configuration"&gt;/etc/hosts Configuration&lt;/h3&gt;
&lt;p&gt;Before starting, we add the machine&amp;rsquo;s IP to the &lt;code&gt;/etc/hosts&lt;/code&gt; file:&lt;/p&gt;</description></item><item><title>MonitorsFour WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/monitorsfour-writeup/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/monitorsfour-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/monitorsfour/monitorsfour-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/monitorsfour/monitorsfour-banner.webp" alt="MonitorsFour WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MonitorsFour&lt;/strong&gt; is an &lt;code&gt;🟩 Easy&lt;/code&gt; difficulty machine on the &lt;strong&gt;Hack The Box&lt;/strong&gt; platform. The attack chain starts by exploiting an IDOR endpoint with PHP loose comparison to leak administrator credentials, continues with remote code execution in &lt;strong&gt;Cacti 1.2.28&lt;/strong&gt; via &lt;strong&gt;CVE-2025-24367&lt;/strong&gt;, and ends by escaping the Docker container by abusing the &lt;strong&gt;daemon API&lt;/strong&gt; exposed without authentication on the internal Docker Desktop subnet (&lt;strong&gt;CVE-2025-9074&lt;/strong&gt;).&lt;/p&gt;
&lt;h2 id="-attack-chain"&gt;🗺️ Attack Chain&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Reconnaissance → Ports 80, 5985
│
▼
Subdomain enumeration → cacti.monitorsfour.htb
│
▼
IDOR + PHP Type Juggling → /api/v1/user?token=0 → MD5 hash → marcus:wonderful1
│
▼
CVE-2025-24367 → Cacti 1.2.28 authenticated RCE → www-data in Docker container
│
▼
user.txt → /home/marcus/user.txt
│
▼
CVE-2025-9074 → Docker API on 192.168.65.7:2375 → container with C:\ mounted → root 🏴
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="-reconnaissance"&gt;🔍 Reconnaissance&lt;/h2&gt;
&lt;h3 id="etchosts-setup"&gt;/etc/hosts Setup&lt;/h3&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;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;10.129.38.79 monitorsfour.htb&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee -a /etc/hosts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="port-scanning"&gt;Port Scanning&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Phase 1 - Fast TCP port discovery:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Pterodactyl WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/pterodactyl-writeup/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/pterodactyl-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/pterodactyl/pterodactyl-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/pterodactyl/pterodactyl-banner.webp" alt="Pterodactyl WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pterodactyl&lt;/strong&gt; is a &lt;code&gt;🟧 Medium&lt;/code&gt; difficulty Linux machine on &lt;strong&gt;Hack The Box&lt;/strong&gt;, part of Season 10 (week 2). The name is no coincidence — the main attack vector is &lt;strong&gt;Pterodactyl Panel&lt;/strong&gt;, a popular open-source game server manager widely deployed on the internet. The attack chain combines an &lt;strong&gt;unauthenticated path traversal&lt;/strong&gt; that exposes PEAR and enables RCE, followed by database credential extraction, bcrypt hash cracking to pivot to an SSH user, and root escalation by chaining &lt;strong&gt;CVE-2025-6018&lt;/strong&gt; (PAM) with &lt;strong&gt;CVE-2025-6019&lt;/strong&gt; (udisks2/libblockdev).&lt;/p&gt;</description></item><item><title>Overwatch WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/overwatch-writeup/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/overwatch-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/overwatch/overwatch-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/overwatch/overwatch-banner.webp" alt="Overwatch WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overwatch&lt;/strong&gt; is a &lt;code&gt;🟧 Medium&lt;/code&gt; difficulty machine on the &lt;strong&gt;Hack The Box&lt;/strong&gt; platform. The attack chain involves enumerating an SMB share accessible with a guest account to obtain a .NET binary with embedded credentials, connecting to an MSSQL server on a non-standard port to discover a misconfigured linked server, poisoning the domain DNS (ADIDNS) to intercept cleartext credentials of a service account, accessing via WinRM and escalating privileges by abusing an internal WCF service with command injection in the &lt;code&gt;KillProcess&lt;/code&gt; method.&lt;/p&gt;</description></item><item><title>Fridagate - Android Tool to Manage Frida and Intercept Traffic with Burp Suite</title><link>https://hackpuntes.com/posts/fridagate-android-pentesting-tool/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/fridagate-android-pentesting-tool/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/fridagate-android-pentesting-tool/fridagate-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/fridagate-android-pentesting-tool/fridagate-banner.webp" alt="Fridagate - Android Tool to Manage Frida and Intercept Traffic with Burp Suite" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fridagate&lt;/strong&gt; is an open source Android application designed for &lt;strong&gt;mobile application pentesters&lt;/strong&gt;. It allows you to manage &lt;strong&gt;frida-server&lt;/strong&gt;, intercept HTTPS traffic with &lt;strong&gt;Burp Suite&lt;/strong&gt;, and inject bypass scripts directly from the device — without having to run commands manually at the start of every audit session.&lt;/p&gt;
&lt;p&gt;The project was born out of a real need: during an Android app audit the usual workflow involves connecting via ADB, pushing frida-server, setting permissions, starting it, configuring the system proxy, adding iptables rules&amp;hellip; Fridagate automates all of that from a clean interface on the phone itself.&lt;/p&gt;</description></item><item><title>DarkZero WriteUp</title><link>https://hackpuntes.com/posts/hackthebox/machines/darkzero-writeup/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/darkzero-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/hackthebox/machines/darkzero/darkzero-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/hackthebox/machines/darkzero/darkzero-banner.webp" alt="DarkZero WriteUp" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DarkZero&lt;/strong&gt; is a &lt;code&gt;🟥 Hard&lt;/code&gt; difficulty machine on the &lt;strong&gt;Hack The Box&lt;/strong&gt; platform that simulates an enterprise Active Directory environment with &lt;strong&gt;two separate domains&lt;/strong&gt;, multihoming, and advanced attack vectors. The ultimate goal is to fully compromise both Domain Controllers.&lt;/p&gt;
&lt;p&gt;At the start, we are given initial credentials: 🔑 &lt;code&gt;john.w:RFulUtONCOL!&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="-attack-chain"&gt;🗺️ Attack Chain&lt;/h2&gt;
&lt;p&gt;Before diving into the details, here is the full attack chain at a glance:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;john.w credentials
│
▼
MSSQL DC01 (guest) ──linked server──► MSSQL DC02 (sysadmin)
│
▼
xp_cmdshell ► Shell as svc_sql on DC02 (172.16.20.2)
│
▼
Ligolo-MP ► Access to internal network 172.16.20.0/24
│
▼
AD CS (Certify) ► NTLM hash of svc_sql ► Password change
│
▼
RunasCs (LogonType 5) ► SeImpersonatePrivilege
│
▼
SigmaPotato ► NT AUTHORITY\SYSTEM on DC02
│
▼
Rubeus monitor + xp_dirtree ► DC01$ TGT
│
▼
Pass-the-Ticket ► secretsdump ► DC01 Administrator hash
│
▼
evil-winrm ► Administrator on DC01 🏴
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="-reconnaissance"&gt;🔍 Reconnaissance&lt;/h2&gt;
&lt;h3 id="port-scanning"&gt;Port Scanning&lt;/h3&gt;
&lt;p&gt;We perform reconnaissance in &lt;strong&gt;two phases&lt;/strong&gt;: first we quickly discover open ports, then we run detection scripts against them.&lt;/p&gt;</description></item><item><title>PortSwigger Labs - Exploiting LLM APIs with Excessive Agency</title><link>https://hackpuntes.com/posts/portswigger/web-security/llm-attacks/lab-exploiting-llm-apis-with-excessive-agency/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/portswigger/web-security/llm-attacks/lab-exploiting-llm-apis-with-excessive-agency/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/portswigger/web-security/llm-attacks/lab-exploiting-llm-apis-with-excessive-agency/lab-exploiting-llm-apis-with-excessive-agency-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/portswigger/web-security/llm-attacks/lab-exploiting-llm-apis-with-excessive-agency/lab-exploiting-llm-apis-with-excessive-agency-banner.webp" alt="PortSwigger Labs - Exploiting LLM APIs with Excessive Agency" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;re auditing a web application that uses a &lt;strong&gt;Large Language Model (LLM)&lt;/strong&gt; as a customer support assistant. On the surface it looks harmless — user asks, model answers. But underneath that chat interface something far more dangerous is hiding: &lt;strong&gt;the LLM has direct access&lt;/strong&gt; to a debug API that runs &lt;strong&gt;arbitrary SQL commands&lt;/strong&gt; against the production database.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s exactly the scenario behind the &lt;strong&gt;&amp;ldquo;Exploiting LLM APIs with Excessive Agency&amp;rdquo;&lt;/strong&gt; lab from PortSwigger Web Security Academy.&lt;/p&gt;</description></item><item><title>Fixing the Kerberos KRB_AP_ERR_SKEW Error</title><link>https://hackpuntes.com/posts/fixing-krb-ap-err-skew-kerberos-clock-skew/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/fixing-krb-ap-err-skew-kerberos-clock-skew/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/fixing-krb-ap-err-skew-kerberos-clock-skew/fixing-krb-ap-err-skew-kerberos-clock-skew-banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/fixing-krb-ap-err-skew-kerberos-clock-skew/fixing-krb-ap-err-skew-kerberos-clock-skew-banner.webp" alt="Fixing the Kerberos KRB_AP_ERR_SKEW Error" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;You are deep into an intrusion exercise, you have successfully compromised a vulnerable certificate template in Active Directory Certificate Services (ADCS), and you already hold the precious &lt;code&gt;administrator.pfx&lt;/code&gt; file. The logical next step is to request a &lt;strong&gt;Ticket Granting Ticket (TGT)&lt;/strong&gt; and extract the administrator&amp;rsquo;s hash. You launch &lt;code&gt;certipy-ad&lt;/code&gt; with a smile on your face, and suddenly, the terminal spits this out:&lt;/p&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;certipy-ad auth -pfx &lt;span class="s1"&gt;&amp;#39;administrator.pfx&amp;#39;&lt;/span&gt; -dc-ip 10.2.10.10 -debug
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt; Using principal: &lt;span class="s1"&gt;&amp;#39;administrator@hackpuntes.loc&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt; Trying to get TGT...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;+&lt;span class="o"&gt;]&lt;/span&gt; Sending AS-REQ to KDC hackpuntes.loc &lt;span class="o"&gt;(&lt;/span&gt;10.2.10.10&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;-&lt;span class="o"&gt;]&lt;/span&gt; Got error &lt;span class="k"&gt;while&lt;/span&gt; trying to request TGT: Kerberos SessionError: KRB_AP_ERR_SKEW&lt;span class="o"&gt;(&lt;/span&gt;Clock skew too great&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;impacket.krb5.kerberosv5.KerberosError: Kerberos SessionError: KRB_AP_ERR_SKEW&lt;span class="o"&gt;(&lt;/span&gt;Clock skew too great&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That infamous &lt;code&gt;KRB_AP_ERR_SKEW&lt;/code&gt;. The disappointment is immeasurable and your day is ruined.&lt;/p&gt;</description></item><item><title>IPA Signing with Sideloadly</title><link>https://hackpuntes.com/posts/ios-ipa-signing-sideloadly/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/ios-ipa-signing-sideloadly/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/ios_ipa_signing_sideloadly/ios_ipa_signing_sideloadly_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/ios_ipa_signing_sideloadly/ios_ipa_signing_sideloadly_banner.webp" alt="IPA Signing with Sideloadly" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In Apple&amp;rsquo;s closed ecosystem, arbitrary code execution is the first wall we hit. Historically, we relied on &lt;strong&gt;jailbreaks&lt;/strong&gt; to audit applications, but in corporate environments or with latest-generation devices (where a stable jailbreak might not exist), we need to adapt.&lt;/p&gt;
&lt;p&gt;This is where &lt;strong&gt;Sideloading&lt;/strong&gt; comes in. Essentially, we abuse Apple&amp;rsquo;s &lt;strong&gt;Free Developer Account&lt;/strong&gt; functionality to sign our own applications (or modified third-party apps) and deploy them to the target device. While tools like AltStore exist, today we focus on &lt;strong&gt;Sideloadly&lt;/strong&gt;, a Swiss Army knife that not only signs but facilitates on-the-fly dynamic library injection (&lt;code&gt;.dylib&lt;/code&gt; / Frida Gadgets).&lt;/p&gt;</description></item><item><title>Androdialer Writeup</title><link>https://hackpuntes.com/posts/8ksec/android/androdialer-writeup/</link><pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/8ksec/android/androdialer-writeup/</guid><description>&lt;h1 id="androdialer-the-ultimate-phone-experience"&gt;AndroDialer: The Ultimate Phone Experience&lt;/h1&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Ever wanted to break free from the limitations of your regular Android dialer? &lt;strong&gt;&lt;em&gt;Meet AndroDialer!&lt;/em&gt;&lt;/strong&gt; A sleek, full‑featured dialer app that takes your calls to the next level.&lt;/p&gt;
&lt;p&gt;It brings together smart contact organization, customizable quick‑dial widgets, and a “Business Focus” mode that filters interruptions so you stay in control of every conversation. Behind the scenes, AndroDialer delivers in‑depth call analytics to help you spot communication trends, plus enhanced security features. Its highly adaptable interface is complete with light and dark themes, call‑time limits, and fully personalized settings that strike the ideal balance of efficiency and elegance for both personal and professional calling.&lt;/p&gt;</description></item><item><title>AppLocker: Bypassing Default Rules with MSBuild</title><link>https://hackpuntes.com/posts/applocker-install-and-bypass-with-msbuild/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/applocker-install-and-bypass-with-msbuild/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/applocker_install_and_bypass_with_msbuild/applocker_install_and_bypass_with_msbuild_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/applocker_install_and_bypass_with_msbuild/applocker_install_and_bypass_with_msbuild_banner.webp" alt="AppLocker: Bypassing Default Rules with MSBuild" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;AppLocker has established itself as a primary line of defense for restricting software execution within corporate environments. However, a hasty implementation that blindly relies on &lt;strong&gt;Default Rules&lt;/strong&gt; can provide a false sense of security.&lt;/p&gt;
&lt;p&gt;If an administrator configures AppLocker to allow anything signed by Microsoft or anything residing in &lt;code&gt;C:\Windows\*&lt;/code&gt;, a malicious user could leverage native system binaries (LOLBins) to execute arbitrary code. Today, we are going to dissect how &lt;code&gt;MSBuild.exe&lt;/code&gt; can become our gateway to a Meterpreter session, effectively evading these basic restrictions.&lt;/p&gt;</description></item><item><title>Discovering Tradecraft Garden</title><link>https://hackpuntes.com/posts/exploring-tradecraft-garden/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/exploring-tradecraft-garden/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/exploring_tradecraft_garden/exploring_tradecraft_garden_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/exploring_tradecraft_garden/exploring_tradecraft_garden_banner.webp" alt="Discovering Tradecraft Garden" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Taking advantage of the recent &lt;strong&gt;Black Friday&lt;/strong&gt; deals, I decided to purchase the &lt;a href="https://www.zeropointsecurity.co.uk/course/red-team-ops-ii" target="_blank" rel="noopener noreferrer"&gt;CRTL (Certified Red Team Lead)&lt;/a&gt;
course from ZeroPointSecurity. While the material is dense and deeply technical (typical of &lt;a href="https://x.com/_RastaMouse" target="_blank" rel="noopener noreferrer"&gt;Rasta Mouse&lt;/a&gt;
), one of the first gems I stumbled upon isn&amp;rsquo;t hidden behind a paywall. It&amp;rsquo;s a public project that deserves much more attention from the community: &lt;a href="https://tradecraftgarden.org/" target="_blank" rel="noopener noreferrer"&gt;Tradecraft Garden&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Essentially, this repository is a development environment or &amp;ldquo;playground&amp;rdquo; designed to drastically simplify the creation of &lt;strong&gt;Shellcode&lt;/strong&gt; and &lt;strong&gt;Position Independent Code (PIC)&lt;/strong&gt; using C and Makefiles.&lt;/p&gt;</description></item><item><title>TryHackMe - Machine - Pickle Rick v2</title><link>https://hackpuntes.com/posts/tryhackme/machines/pickle-rick-writeup/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/tryhackme/machines/pickle-rick-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/thm-machine-pickle-rick-v2/thm-machine-pickle-rick-v2_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/thm-machine-pickle-rick-v2/thm-machine-pickle-rick-v2_banner.webp" alt="TryHackMe - Machine - Pickle Rick v2" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Hey hackers! 👋&lt;/p&gt;
&lt;p&gt;Today we’re diving into the &lt;a href="https://tryhackme.com/room/picklerick" target="_blank" rel="noopener noreferrer"&gt;Pickle Rick machine&lt;/a&gt;
on TryHackMe. It’s a classic &lt;strong&gt;🟩 Easy&lt;/strong&gt; challenge, perfect for practicing web enumeration and basic privilege escalation.&lt;/p&gt;
&lt;h2 id="-before-starting"&gt;🚀 Before Starting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Add&lt;/strong&gt; the machine to the &lt;code&gt;/etc/hosts&lt;/code&gt; file, &lt;strong&gt;check connectivity&lt;/strong&gt; with &lt;code&gt;ping&lt;/code&gt;, and &lt;strong&gt;create the working folders&lt;/strong&gt;&lt;/p&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;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;10.10.34.26\tpicklerick.thm&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee -a /etc/hosts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ping -c &lt;span class="m"&gt;1&lt;/span&gt; picklerick.thm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p ~/thm/picklerick/&lt;span class="o"&gt;{&lt;/span&gt;exploits,fuzz,http,nmap&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/thm/picklerick/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-reconnaissance"&gt;🔎 Reconnaissance&lt;/h2&gt;
&lt;h3 id="scan-with-nmap"&gt;Scan with nmap&lt;/h3&gt;
&lt;p&gt;Check &lt;strong&gt;all ports&lt;/strong&gt; that are &lt;strong&gt;open&lt;/strong&gt;, detect the service and its version with &lt;code&gt;nmap&lt;/code&gt; and generate &lt;code&gt;all.html&lt;/code&gt; to see information.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - TimeOff</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-timeoff/</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-timeoff/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_timeoff/snyk_fetch_the_flag_timeoff_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_timeoff/snyk_fetch_the_flag_timeoff_banner.webp" alt="Snyk Fetch The Flag - TimeOff" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In this CTF challenge, we are tasked with performing a &lt;strong&gt;pentest&lt;/strong&gt; on a web application following the &lt;strong&gt;Model-View-Controller (MVC)&lt;/strong&gt; pattern, developed in &lt;code&gt;Ruby on Rails&lt;/code&gt;. The application allows employees to &lt;strong&gt;request time off&lt;/strong&gt;, and we are provided with the source code and two credentials (&lt;code&gt;admin&lt;/code&gt; and &lt;code&gt;user&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;While reviewing the application, we noticed that the time-off request form &lt;strong&gt;allows file uploads&lt;/strong&gt;, which is always an interesting point to investigate during a security audit.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Coding Mountains</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-coding-mountains/</link><pubDate>Sat, 08 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-coding-mountains/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_coding_mountains/snyk_fetch_the_flag_coding_mountains_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_coding_mountains/snyk_fetch_the_flag_coding_mountains_banner.webp" alt="Snyk Fetch The Flag - Coding Mountains" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scripting challenges&lt;/strong&gt; are my favorite in CTFs, and this one has undoubtedly been my favorite from Snyk Fetch The Flag 2025. The challenge consists of &lt;strong&gt;answering 50 quick questions about the most famous mountains on Earth&lt;/strong&gt;. We need to answer with their height (in feet) and the year they were first climbed using the following format: &lt;code&gt;height,year&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A sample of the game start:&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - ClickityClack</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-clickityclack/</link><pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-clickityclack/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_banner.webp" alt="Snyk Fetch The Flag - ClickityClack" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In this challenge, we started with a &lt;code&gt;pcapng&lt;/code&gt; file that contains the hidden flag inside. Initially, I tried to analyze it using &lt;strong&gt;Wireshark&lt;/strong&gt;, but couldn&amp;rsquo;t find anything relevant. That&amp;rsquo;s when a simple Google search gave me the key clue:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pcapng usb ctf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_001.webp" alt="Snyk Fetch The Flag - ClickityClack" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;This search led me to discover a tool called &lt;a href="https://raw.githubusercontent.com/5h4rrk/CTF-Usb_Keyboard_Parser/refs/heads/main/Usb_Keyboard_Parser.py" target="_blank" rel="noopener noreferrer"&gt;Usb_Keyboard_Parser.py&lt;/a&gt;
that parses USB traffic packets, such as keypresses.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Science 100</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-science-100/</link><pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-science-100/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_science_100/snyk_fetch_the_flag_science_100_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_science_100/snyk_fetch_the_flag_science_100_banner.webp" alt="Snyk Fetch The Flag - Science 100" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In this CTF challenge, we encounter a &lt;strong&gt;Robco Industries terminal&lt;/strong&gt;, similar to the ones found in the Fallout video game series. Our mission is to decipher the correct password using the &lt;code&gt;Likeness&lt;/code&gt; mechanic, which tells us how many letters match in the exact position with the correct password.&lt;/p&gt;
&lt;h2 id="-connecting-to-the-challenge"&gt;🖥️ Connecting to the Challenge&lt;/h2&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;$ nc challenge.ctf.games &lt;span class="m"&gt;32377&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Upon connecting, the system welcomes us and presents a list of &lt;strong&gt;potential passwords&lt;/strong&gt; hidden among random symbols.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - CTF 101</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-ctf-101/</link><pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-ctf-101/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_ctf_101/snyk_fetch_the_flag_ctf_101_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_ctf_101/snyk_fetch_the_flag_ctf_101_banner.webp" alt="Snyk Fetch The Flag - CTF 101" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;This challenge is designed as an &lt;strong&gt;introduction to CTFs&lt;/strong&gt; (Capture The Flag). It is a simple challenge aimed at getting familiar with exploiting vulnerabilities in web applications.&lt;/p&gt;
&lt;p&gt;By analyzing the provided source code, we can see that it is a web application developed with &lt;strong&gt;Flask (Python)&lt;/strong&gt;. Here is the code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;flash&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;supersecretkey&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;GET&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;form&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error: Name cannot be empty.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# I sure hope no one tries to run any commands by injecting here...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;echo &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STDOUT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;! Good luck!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ...alright, the challenges won&amp;#39;t be this obvious on game day, but I hope it gives you a good idea of how the game is played!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CalledProcessError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;index.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;0.0.0.0&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-where-is-the-vulnerability"&gt;🔍 Where is the vulnerability?&lt;/h2&gt;
&lt;p&gt;The main issue lies in the following piece of code:&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Screaming Crying Throwing up</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-screaming-crying-throwing-up/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-screaming-crying-throwing-up/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_screaming_crying_throwing_up/snyk_fetch_the_flag_screaming_crying_throwing_up_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_screaming_crying_throwing_up/snyk_fetch_the_flag_screaming_crying_throwing_up_banner.webp" alt="Snyk Fetch The Flag - Screaming Crying Throwing up" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;This challenge consists of decrypting a binary file encrypted with &lt;a href="https://en.wikipedia.org/wiki/Scream_%28cipher%29" target="_blank" rel="noopener noreferrer"&gt;scream&lt;/a&gt;
. To do this, we can use the &lt;a href="https://scream-cipher.netlify.app/" target="_blank" rel="noopener noreferrer"&gt;Scream Cipher Translator&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;If we open the &lt;code&gt;screaming.bin&lt;/code&gt; file in &lt;strong&gt;VSCode&lt;/strong&gt;, we will see the following content:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;a̮ăaa̋{áa̲aȧa̮ȧaa̮áa̲a̧ȧȧa̮ȧaa̲a̧aa̮ȧa̲aáa̮a̲aa̲a̮aaa̧}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;However, if we use &lt;code&gt;cat&lt;/code&gt; in the terminal (CMD, PowerShell, or Bash), we get a different result:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ cat screaming.bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aăaa{áaaȧaȧaaáaaȧȧaȧaaaaaȧaaáaaaaaaaa}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;⚠️ Attention! ⚠️&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Unfurl</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-unfurl/</link><pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-unfurl/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_banner.webp" alt="Snyk Fetch The Flag - Unfurl" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In this challenge, we face a web application that &lt;strong&gt;fetches metadata&lt;/strong&gt; from any URL entered into the form.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_001.webp" alt="Snyk Fetch The Flag - Unfurl" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;A quick analysis of the source code reveals that the application is developed in &lt;strong&gt;NodeJS&lt;/strong&gt;, and the use of the &lt;code&gt;child_process&lt;/code&gt; module suggests the possibility of &lt;strong&gt;remote command execution (RCE)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;📄 &lt;code&gt;adminRoutes.js&lt;/code&gt; file&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;exec&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;child_process&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/execute&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// This isn&amp;#39;t terribly secure, but we&amp;#39;re only going to bind this app to the localhost so you&amp;#39;d need to be on the actual host to run any commands.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="c1"&gt;// So I think we&amp;#39;re good!
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;clientIp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Definitely making sure to lock this down to the localhost
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;clientIp&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;clientIp&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;::1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[WARN] Unauthorized access attempt from &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;clientIp&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;403&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Forbidden: Access is restricted to localhost.&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;No command provided!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[ERROR] Command execution failed: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`Error: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[INFO] Command executed: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;h1&amp;gt;Command Output&amp;lt;/h1&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;pre&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;stdout&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;stderr&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;&amp;lt;/pre&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;a href=&amp;#34;/admin&amp;#34;&amp;gt;Back to Admin Panel&amp;lt;/a&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; `&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The code indicates that the application allows executing commands on the &lt;code&gt;/execute&lt;/code&gt; endpoint via the &lt;code&gt;cmd&lt;/code&gt; parameter, but only &lt;strong&gt;locally&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Zero Ex Six One</title><link>https://hackpuntes.com/posts/snyk-fetch-the-flag-zero-ex-six-one/</link><pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/snyk-fetch-the-flag-zero-ex-six-one/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_zero_ex_six_one/snyk_fetch_the_flag_zero_ex_six_one_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_zero_ex_six_one/snyk_fetch_the_flag_zero_ex_six_one_banner.webp" alt="Snyk Fetch The Flag - Zero Ex Six One" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In this challenge, we obtain a file named &lt;code&gt;flag.txt.encry&lt;/code&gt;, which contains a hexadecimal string.&lt;/p&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;$ cat flag.txt.encry
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0x070x0d0x000x060x1a0x020x540x510x050x590x530x020x510x000x530x540x070x520x040x570x550x550x050x510x560x510x530x030x550x500x050x030x050x510x590x540x000x1c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The 💡 hint in the challenge description suggests that an &lt;strong&gt;XOR encryption&lt;/strong&gt; was used, and the challenge title, &lt;strong&gt;Zero Ex Six One&lt;/strong&gt;, might indicate that the encryption key is &lt;code&gt;0x61&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I&amp;#39;m XORta out of ideas for how to get the flag. Does this look like anything to you?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="solution-1---using-the-encryption-key"&gt;Solution 1 - Using the Encryption Key&lt;/h2&gt;
&lt;p&gt;In this first solution, &lt;strong&gt;we convert the hexadecimal string into bytes&lt;/strong&gt; and apply an &lt;strong&gt;XOR decryption&lt;/strong&gt; using the key 🔑 &lt;code&gt;0x61&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>HTB Machine BountyHunter</title><link>https://hackpuntes.com/posts/hackthebox/machines/bountyhunter-writeup/</link><pubDate>Sat, 20 Nov 2021 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/bountyhunter-writeup/</guid><description>&lt;p&gt;&lt;a href="images/htb-machine-bountyhunter/htb-machine-bountyhunter_banner.png"&gt;&lt;img src="images/htb-machine-bountyhunter/htb-machine-bountyhunter_banner.png" alt="Hack The Box - Machine - BountyHunter" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;h1 id="overview"&gt;Overview&lt;/h1&gt;
&lt;p&gt;Welcome to the writeup of the &lt;strong&gt;bountyhunter machine&lt;/strong&gt; of the Hack The Box platform. BountyHunter is a Linux based machine that was active since July 24th to November 20th, on this machine we will find a XXE vulnerability and use it with a php wrapper to read internal files and get sensitive information, with the information gotten we will be able to connect to the machine through SSH, once inside the machine we will analyze a python script to find how we can abuse it to get code execution as root user and finish with the machine.&lt;/p&gt;</description></item><item><title>HTB Machine Explore</title><link>https://hackpuntes.com/posts/hackthebox/machines/explore-writeup/</link><pubDate>Sat, 30 Oct 2021 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/explore-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/htb-machine-explore/htb-machine-explore_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/htb-machine-explore/htb-machine-explore_banner.webp" alt="Hack The Box - Machine - Explore" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Welcome to the writeup of the &lt;strong&gt;explore machine&lt;/strong&gt; of the Hack The Box platform. Explore is an &lt;strong&gt;easy&lt;/strong&gt; difficulty machine on android.&lt;/p&gt;
&lt;h1 id="before-starting"&gt;Before starting&lt;/h1&gt;
&lt;p&gt;Connect to &lt;strong&gt;Hack The Box VPN&lt;/strong&gt; in background with &lt;code&gt;TMUX&lt;/code&gt;&lt;/p&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;tmux new -s htb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo openvpn ~/.vpn/htb.ovpn
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Add&lt;/strong&gt; machine to &lt;code&gt;/etc/hosts&lt;/code&gt; file, &lt;strong&gt;check connection&lt;/strong&gt; with &lt;code&gt;ping&lt;/code&gt; and &lt;strong&gt;create work folders&lt;/strong&gt;&lt;/p&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;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;10.10.10.247 explore.htb&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/hosts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ping -c &lt;span class="m"&gt;4&lt;/span&gt; explore.htb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p ~/htb/explorer.htb/&lt;span class="o"&gt;{&lt;/span&gt;exploits,fuzz,http,nmap&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="recon"&gt;Recon&lt;/h1&gt;
&lt;p&gt;Check &lt;strong&gt;all open ports&lt;/strong&gt;, detect the service and its version with &lt;code&gt;nmap&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Create your own log-free VPN</title><link>https://hackpuntes.com/posts/create-your-own-log-free-vpn/</link><pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/create-your-own-log-free-vpn/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/create-your-own-log-free-vpn/create-your-own-log-free-vpn_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/create-your-own-log-free-vpn/create-your-own-log-free-vpn_banner.webp" alt="Create your own log-free VPN" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;h1 id="preface"&gt;Preface&lt;/h1&gt;
&lt;p&gt;Welcome to the tutorial on &lt;strong&gt;how to create our own log-free VPN&lt;/strong&gt; by setting up an OpenVPN server on a cloud machine.&lt;/p&gt;
&lt;p&gt;Before starting with the tutorial, you must create a machine in the cloud, for this tutorial, we have chosen to use a &lt;strong&gt;DigitalOcean VPS&lt;/strong&gt; with an Ubuntu 20.04 machine, which has a cost of $5 per month, through the following &lt;a href="https://m.do.co/c/67dd38080d62" target="_blank" rel="noopener noreferrer"&gt;link&lt;/a&gt;
you can get &lt;strong&gt;$100 for free&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>HTB Chaos Writeup</title><link>https://hackpuntes.com/posts/hackthebox/machines/chaos-writeup/</link><pubDate>Sat, 25 May 2019 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/posts/hackthebox/machines/chaos-writeup/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/write-up-htb-chaos/write-up-htb-chaos_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/write-up-htb-chaos/write-up-htb-chaos_001.webp" alt="HTB Chaos Writeup" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Hello everyone,&lt;/p&gt;
&lt;p&gt;With this post we&amp;rsquo;re starting a new series where we&amp;rsquo;ll learn how to exploit vulnerable machines and solve hacking challenges.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re kicking things off with the latest retired machine from &lt;a href="https://www.hackthebox.eu/" target="_blank" rel="noopener noreferrer"&gt;Hack The Box&lt;/a&gt;
, &lt;strong&gt;Chaos&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For those who don&amp;rsquo;t know &lt;strong&gt;HTB&lt;/strong&gt;, it&amp;rsquo;s a pentesting lab that provides different machines and challenges for its users. I usually recommend these types of platforms because they let us learn different technologies by tackling them head on.&lt;/p&gt;</description></item><item><title>About Me</title><link>https://hackpuntes.com/pages/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/pages/about/</guid><description>&lt;p&gt;Hi there! 👋 I&amp;rsquo;m &lt;strong&gt;Javier Olmedo&lt;/strong&gt;, a Cybersecurity Professional and CTF Player based in &lt;strong&gt;Toledo, Spain&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;With over &lt;strong&gt;8 years of professional experience&lt;/strong&gt;, I specialize in &lt;strong&gt;Offensive Security&lt;/strong&gt;, &lt;strong&gt;Web Exploitation&lt;/strong&gt;, and &lt;strong&gt;Red Teaming&lt;/strong&gt;. This blog is my personal knowledge base where I document my research, CVE discoveries, and capture-the-flag methodologies.&lt;/p&gt;
&lt;h2 id="-certifications"&gt;🏆 Certifications&lt;/h2&gt;
&lt;div style="display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; align-items: center;"&gt;
&lt;a href="https://www.credential.net/4e346191-179b-4063-89ed-2b5a197ff07f" target="_blank" title="OSCP Certification"&gt;
&lt;img src="https://templates.images.credential.net/1677682410975725023965573912354.png" alt="OSCP" height="110"&gt;
&lt;/a&gt;
&lt;a href="https://www.credly.com/badges/818636d7-b447-42be-8f4f-cde81c44e26f" target="_blank" title="OSWE Certification"&gt;
&lt;img src="https://images.credly.com/size/340x340/images/0a375324-4f9e-412d-b276-b6e96c428709/image.png" alt="OSWE" height="110"&gt;
&lt;/a&gt;
&lt;a href="https://www.credential.net/1b534535-619f-4ba5-abba-cd198a111a1c" target="_blank" title="OSEP Certification"&gt;
&lt;img src="https://api.accredible.com/v1/frontend/credential_website_embed_image/badge/175128406" alt="OSEP" height="110"&gt;
&lt;/a&gt;
&lt;a href="https://certs.zeropointsecurity.co.uk/a4cbfb9a-a7d9-44a0-832a-9ea6e805d58a" target="_blank" title="CRTO Certification"&gt;
&lt;img src="https://raw.githubusercontent.com/JavierOlmedo/JavierOlmedo/main/img/crto.png" alt="CRTO" height="110"&gt;
&lt;/a&gt;
&lt;a href="https://www.credential.net/ccca6121-5126-4eb4-b85e-618d3e9d668b#gs.0z7no9" target="_blank" title="ICSI CNSS"&gt;
&lt;img src="https://raw.githubusercontent.com/JavierOlmedo/JavierOlmedo/main/img/cnss.png" alt="ICSI CNSS" height="110"&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;h2 id="-badges--achievements"&gt;🎖️ Badges &amp;amp; Achievements&lt;/h2&gt;
&lt;div style="display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; align-items: center;"&gt;
&lt;a href="https://credentials.offsec.com/a98f1857-f7ed-422f-9966-5d5c6de24355" target="_blank" title="MITRE ATT&amp;CK - Resource Development"&gt;
&lt;img src="https://raw.githubusercontent.com/JavierOlmedo/JavierOlmedo/main/img/badge_mitre_attck_resource_development.png" alt="MITRE ResDev" height="90"&gt;
&lt;/a&gt;
&lt;a href="https://credentials.offsec.com/3d0dc418-6478-4c20-b019-65379718e923" target="_blank" title="MITRE ATT&amp;CK - Lateral Movement"&gt;
&lt;img src="https://raw.githubusercontent.com/JavierOlmedo/JavierOlmedo/main/img/badge_mitre_attck_lateral_movement.png" alt="MITRE LatMov" height="90"&gt;
&lt;/a&gt;
&lt;a href="https://app.hackthebox.com/profile/37005" target="_blank" title="Offshore Pro Lab"&gt;
&lt;img src="https://raw.githubusercontent.com/JavierOlmedo/JavierOlmedo/main/img/offshore.gif" alt="Offshore Pro Lab" height="90"&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;h2 id="-disclosed-cves"&gt;🐛 Disclosed CVEs&lt;/h2&gt;
&lt;p&gt;I have discovered and reported vulnerabilities in various software. Below is a list of my assigned CVEs.&lt;/p&gt;</description></item><item><title>Search</title><link>https://hackpuntes.com/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/search/</guid><description/></item></channel></rss>