<?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: Aditya Pidurkar</title>
    <description>The latest articles on DEV Community by Aditya Pidurkar (@adityapidurkar).</description>
    <link>https://dev.to/adityapidurkar</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%2F3212617%2Fbe50406d-c2e6-494f-a92e-8d90f0cb1856.jpg</url>
      <title>DEV Community: Aditya Pidurkar</title>
      <link>https://dev.to/adityapidurkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adityapidurkar"/>
    <language>en</language>
    <item>
      <title>Installing Apache Hadoop 3.4.2 on Linux 2026 (Single Node Cluster) Complete Step-by-Step Guide</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Wed, 29 Jul 2026 22:21:03 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/installing-apache-hadoop-342-on-linux-2026-single-node-cluster-complete-step-by-step-guide-2bnl</link>
      <guid>https://dev.to/adityapidurkar/installing-apache-hadoop-342-on-linux-2026-single-node-cluster-complete-step-by-step-guide-2bnl</guid>
      <description>&lt;h2&gt;
  
  
  S1. Update the System
&lt;/h2&gt;

&lt;p&gt;Before installing Hadoop, update your system packages.&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;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  S2. Install and Configure Java 21
&lt;/h2&gt;

&lt;p&gt;Apache Hadoop is written in Java and requires a compatible Java Runtime Environment (JRE) and Java Development Kit (JDK).&lt;/p&gt;

&lt;p&gt;This guide uses &lt;strong&gt;OpenJDK 21 (LTS)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java Compatibility
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Installed Java Version&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Java 21&lt;/td&gt;
&lt;td&gt;Continue with the installation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java 17&lt;/td&gt;
&lt;td&gt;May work with some Hadoop versions, but this guide uses Java 21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java 22–25&lt;/td&gt;
&lt;td&gt;Install Java 21 and switch to it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java Not Installed&lt;/td&gt;
&lt;td&gt;Install OpenJDK 21&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  S2.1 Check if Java is Installed
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;java &lt;span class="nt"&gt;-version&lt;/span&gt;
javac &lt;span class="nt"&gt;-version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  If Java is NOT Installed
&lt;/h4&gt;

&lt;p&gt;Install OpenJDK 21.&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;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;openjdk-21-jdk &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;java &lt;span class="nt"&gt;-version&lt;/span&gt;
javac &lt;span class="nt"&gt;-version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  If Java is Already Installed
&lt;/h4&gt;

&lt;p&gt;Check the installed version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;java &lt;span class="nt"&gt;-version&lt;/span&gt;
javac &lt;span class="nt"&gt;-version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compare the output with the compatibility table above.&lt;/p&gt;

&lt;p&gt;If Java 21 is already active, continue to the next step.&lt;/p&gt;

&lt;p&gt;Otherwise, switch to Java 21.&lt;/p&gt;




&lt;h3&gt;
  
  
  S2.2 List All Installed Java Versions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;update-java-alternatives &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;java-1.17.0-openjdk-amd64
java-1.21.0-openjdk-amd64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S2.3 Switch to Java 21
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;update-alternatives &lt;span class="nt"&gt;--config&lt;/span&gt; java
&lt;span class="nb"&gt;sudo &lt;/span&gt;update-alternatives &lt;span class="nt"&gt;--config&lt;/span&gt; javac
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select the option corresponding to &lt;strong&gt;Java 21&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  S2.4 Verify the Active Java Version
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;java &lt;span class="nt"&gt;-version&lt;/span&gt;
javac &lt;span class="nt"&gt;-version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both commands should display &lt;strong&gt;Java 21&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  S2.5 Find the Correct JAVA_HOME
&lt;/h3&gt;

&lt;p&gt;Different Linux distributions may install Java in different directories.&lt;/p&gt;

&lt;p&gt;Instead of copying someone else's path, determine it automatically.&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;readlink&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;which java&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/lib/jvm/java-21-openjdk-amd64/bin/java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Therefore,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Never blindly copy the &lt;code&gt;JAVA_HOME&lt;/code&gt; path from a tutorial. Always determine it using the command above.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  S3. Download Apache Hadoop 3.4.2
&lt;/h2&gt;

&lt;p&gt;Move to the directory where you want to download Hadoop.&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;cd&lt;/span&gt; ~/Downloads
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download Hadoop from the official Apache Archive.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://archive.apache.org/dist/hadoop/common/hadoop-3.4.2/hadoop-3.4.2.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the download.&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;ls&lt;/span&gt; &lt;span class="nt"&gt;-lh&lt;/span&gt; hadoop-3.4.2.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-rw-r--r-- 1 user user 734M hadoop-3.4.2.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  S4. Extract and Install Hadoop
&lt;/h2&gt;

&lt;p&gt;After downloading the Hadoop archive, the next step is to extract it and install Hadoop on your system.&lt;/p&gt;

&lt;p&gt;In this guide, Hadoop will be installed under &lt;strong&gt;&lt;code&gt;/opt/hadoop&lt;/code&gt;&lt;/strong&gt;, which is the standard location for optional third-party software on Linux.&lt;/p&gt;

&lt;h3&gt;
  
  
  S4.1 Extract the Archive
&lt;/h3&gt;

&lt;p&gt;Move to the directory where the archive was downloaded.&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;cd&lt;/span&gt; ~/Downloads
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Extract the archive.&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;tar&lt;/span&gt; &lt;span class="nt"&gt;-xvzf&lt;/span&gt; hadoop-3.4.2.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create a directory named:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hadoop-3.4.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the extraction.&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;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hadoop-3.4.2
hadoop-3.4.2.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S4.2 Move Hadoop to /opt
&lt;/h3&gt;

&lt;p&gt;Move the extracted directory to &lt;code&gt;/opt&lt;/code&gt;.&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;sudo mv &lt;/span&gt;hadoop-3.4.2 /opt/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S4.3 Verify the Installation Directory
&lt;/h3&gt;

&lt;p&gt;Check that Hadoop has been moved successfully.&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;ls&lt;/span&gt; /opt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;View the contents of the Hadoop directory.&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;ls&lt;/span&gt; /opt/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bin
etc
include
lib
libexec
licenses
sbin
share
NOTICE.txt
README.txt
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S4.4 Change Ownership
&lt;/h3&gt;

&lt;p&gt;By default, the Hadoop directory is owned by the root user because it was moved using &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Change the ownership so your user can modify the configuration files without requiring root privileges every time.&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;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; &lt;span class="nv"&gt;$USER&lt;/span&gt;:&lt;span class="nv"&gt;$USER&lt;/span&gt; /opt/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the ownership.&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;ls&lt;/span&gt; &lt;span class="nt"&gt;-ld&lt;/span&gt; /opt/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;drwxr-xr-x &amp;lt;username&amp;gt; &amp;lt;username&amp;gt; ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S4.5 Verify the Hadoop Version
&lt;/h3&gt;

&lt;p&gt;Run the Hadoop executable directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/opt/hadoop/bin/hadoop version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hadoop 3.4.2
Source code repository ...
Compiled by ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, Hadoop has been successfully installed on the system. However, it cannot yet be executed from any directory because its binaries have not been added to the system's PATH.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We are intentionally using the full path (&lt;code&gt;/opt/hadoop/bin/hadoop&lt;/code&gt;) for now. In the next section, we will configure environment variables so that the &lt;code&gt;hadoop&lt;/code&gt;, &lt;code&gt;hdfs&lt;/code&gt;, and &lt;code&gt;yarn&lt;/code&gt; commands can be run from anywhere in the terminal.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  S5. Configure Environment Variables
&lt;/h2&gt;

&lt;p&gt;After installing Hadoop, we need to configure environment variables. These variables tell the operating system where Hadoop and Java are installed, allowing Hadoop commands to be executed from any directory.&lt;/p&gt;

&lt;p&gt;The main environment variables are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;JAVA_HOME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Points to the Java installation directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HADOOP_HOME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Points to the Hadoop installation directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HADOOP_CONF_DIR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Specifies the Hadoop configuration directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PATH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Allows Hadoop commands to be executed from anywhere&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  S5.1 Check Your Default Shell
&lt;/h3&gt;

&lt;p&gt;Before editing your shell configuration, determine which shell you are using.&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="nv"&gt;$SHELL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Possible outputs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bin/bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bin/zsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S5.2 Open the Shell Configuration File
&lt;/h3&gt;

&lt;h3&gt;
  
  
  If you are using Bash
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  If you are using Zsh
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S5.3 Add the Hadoop Environment Variables
&lt;/h3&gt;

&lt;p&gt;Append the following lines to the end of the file.&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="c"&gt;# Java&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;readlink&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;which java&lt;span class="si"&gt;))))&lt;/span&gt;

&lt;span class="c"&gt;# Hadoop&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HADOOP_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/hadoop
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HADOOP_CONF_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;/etc/hadoop

&lt;span class="c"&gt;# Hadoop Components&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HADOOP_COMMON_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HADOOP_HDFS_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HADOOP_MAPRED_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;YARN_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;

&lt;span class="c"&gt;# Native Libraries&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HADOOP_COMMON_LIB_NATIVE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;/lib/native

&lt;span class="c"&gt;# PATH&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;:&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;/bin:&lt;span class="nv"&gt;$HADOOP_HOME&lt;/span&gt;/sbin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why use &lt;code&gt;$(dirname $(dirname $(readlink -f $(which java))))&lt;/code&gt;?
&lt;/h3&gt;

&lt;p&gt;Instead of hardcoding the Java installation path, this command automatically determines the correct &lt;code&gt;JAVA_HOME&lt;/code&gt; directory. This makes the guide more portable across different Linux distributions and Java installation methods.&lt;/p&gt;




&lt;h3&gt;
  
  
  S5.4 Save the File
&lt;/h3&gt;

&lt;p&gt;For Nano:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Press &lt;strong&gt;Ctrl + O&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Ctrl + X&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  S5.5 Reload the Configuration
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Bash
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Zsh
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S5.6 Verify the Environment Variables
&lt;/h3&gt;

&lt;p&gt;Check that Hadoop is configured correctly.&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="nv"&gt;$JAVA_HOME&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/lib/jvm/java-21-openjdk-amd64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the Hadoop installation directory.&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="nv"&gt;$HADOOP_HOME&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the configuration directory.&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="nv"&gt;$HADOOP_CONF_DIR&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/hadoop/etc/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S5.7 Verify Hadoop Commands
&lt;/h3&gt;

&lt;p&gt;You should now be able to run Hadoop commands from any directory.&lt;/p&gt;

&lt;p&gt;Check the Hadoop version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hadoop version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the HDFS version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hdfs version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the YARN version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each command should report &lt;strong&gt;Hadoop 3.4.2&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If any of these commands return &lt;code&gt;command not found&lt;/code&gt;, ensure that the shell configuration file has been reloaded using the &lt;code&gt;source&lt;/code&gt; command or open a new terminal session.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  S6. Configure Passwordless SSH
&lt;/h2&gt;

&lt;p&gt;Apache Hadoop uses SSH to start and stop its daemons. Even in a single-node cluster, passwordless SSH is required for Hadoop scripts such as &lt;code&gt;start-dfs.sh&lt;/code&gt; and &lt;code&gt;start-yarn.sh&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  S6.1 Check if OpenSSH is Installed
&lt;/h3&gt;

&lt;p&gt;Run the 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;ssh &lt;span class="nt"&gt;-V&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If OpenSSH is installed, you will see output similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OpenSSH_10.x
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the command is not found, install the OpenSSH server.&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;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;openssh-server &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S6.2 Start and Enable the SSH Service
&lt;/h3&gt;

&lt;p&gt;Start the SSH service.&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;sudo &lt;/span&gt;systemctl start ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enable it to start automatically on boot.&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;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the service status.&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;sudo &lt;/span&gt;systemctl status ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The status should show &lt;strong&gt;active (running)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Exit the status screen by pressing &lt;strong&gt;Q&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  S6.3 Generate an SSH Key Pair
&lt;/h3&gt;

&lt;p&gt;If you do not already have an SSH key, generate one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; rsa &lt;span class="nt"&gt;-b&lt;/span&gt; 4096
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When prompted for the file location, simply press &lt;strong&gt;Enter&lt;/strong&gt; to accept the default location.&lt;/p&gt;

&lt;p&gt;When prompted for a passphrase, press &lt;strong&gt;Enter&lt;/strong&gt; twice to leave it empty.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enter file in which to save the key:
/home/&amp;lt;username&amp;gt;/.ssh/id_rsa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S6.4 Enable Passwordless SSH
&lt;/h3&gt;

&lt;p&gt;Append the public key to the authorized keys file.&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;cat&lt;/span&gt; ~/.ssh/id_rsa.pub &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set the correct permissions.&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;chmod &lt;/span&gt;700 ~/.ssh
&lt;span class="nb"&gt;chmod &lt;/span&gt;600 ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  S6.5 Test the SSH Connection
&lt;/h3&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh localhost
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first time you connect, you may see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Are you sure you want to continue connecting (yes/no)?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything is configured correctly, you will be logged into your own machine without entering a password.&lt;/p&gt;

&lt;p&gt;Exit the SSH session.&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;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Why is Passwordless SSH Required?
&lt;/h3&gt;

&lt;p&gt;Hadoop's management scripts use SSH to launch and stop services such as the NameNode, DataNode, ResourceManager, and NodeManager. Without passwordless SSH, these scripts will repeatedly prompt for a password, making automated startup impossible.&lt;/p&gt;




&lt;h2&gt;
  
  
  S7. Create Hadoop Data Directories
&lt;/h2&gt;

&lt;p&gt;Hadoop requires a few directories to store its metadata and temporary files. These directories are referenced by the Hadoop configuration files.&lt;/p&gt;

&lt;p&gt;Create the required directories by running the following commands:&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;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/hadoopdata/namenode
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/hadoopdata/datanode
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/hadooptmp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can verify that the directories were created successfully using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tree &lt;span class="nt"&gt;-L&lt;/span&gt; 2 ~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the &lt;code&gt;tree&lt;/code&gt; command is not installed, install it using:&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;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;tree &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/home/&amp;lt;username&amp;gt;
├── hadoopdata
│   ├── datanode
│   └── namenode
└── hadooptmp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The directory names must match the paths specified in the Hadoop configuration files (&lt;code&gt;core-site.xml&lt;/code&gt; and &lt;code&gt;hdfs-site.xml&lt;/code&gt;). If you changed those paths, create the directories accordingly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  S8. Install the Hadoop Configuration Files
&lt;/h2&gt;

&lt;p&gt;Instead of manually editing multiple Hadoop configuration files, use the installation script provided in the GitHub repository. The script downloads and installs all the required configuration files automatically.&lt;/p&gt;

&lt;p&gt;Download the installation script.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://raw.githubusercontent.com/itsadityapidurkar/hadoop-installation-guide/main/linux/install-configs.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make the script executable.&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;chmod&lt;/span&gt; +x install-configs.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the script.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./install-configs.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The script downloads and installs the following configuration files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;core-site.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hdfs-site.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mapred-site.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yarn-site.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;workers&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These files are automatically copied to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/hadoop/etc/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the script completes successfully, you should see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;========================================
 Apache Hadoop Configuration Installer
========================================

[+] Downloading configuration files...
[✓] Download complete.

[+] Installing configuration files...

[✓] Configuration files installed successfully!

Installed to:
/opt/hadoop/etc/hadoop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The provided configuration files are intended for a &lt;strong&gt;Single Node Hadoop 3.4.2&lt;/strong&gt; installation. If you modified the directory paths while following this guide, update the configuration files accordingly before installing them.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  S9. Configure &lt;code&gt;hadoop-env.sh&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;hadoop-env.sh&lt;/code&gt; file is used to configure environment variables required by Hadoop. The only change required for this guide is to set the &lt;code&gt;JAVA_HOME&lt;/code&gt; variable.&lt;/p&gt;

&lt;p&gt;Open the file using a text editor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano /opt/hadoop/etc/hadoop/hadoop-env.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Search for the line containing:&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;export &lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&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="c"&gt;# export JAVA_HOME=&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace it with:&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;export &lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;readlink&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;which java&lt;span class="si"&gt;))))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the file and exit.&lt;/p&gt;

&lt;p&gt;For Nano:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Press &lt;strong&gt;Ctrl + O&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt; to save the file.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Ctrl + X&lt;/strong&gt; to exit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can verify that the &lt;code&gt;JAVA_HOME&lt;/code&gt; path is detected correctly by running:&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="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dirname&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;readlink&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;which java&lt;span class="si"&gt;))))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/lib/jvm/java-21-openjdk-amd64
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This command automatically detects the Java installation directory, making the configuration portable across different Linux distributions and Java installation paths.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  S10. Format the NameNode
&lt;/h2&gt;

&lt;p&gt;Before starting Hadoop for the first time, the NameNode must be formatted. This initializes the Hadoop Distributed File System (HDFS) and creates the required metadata.&lt;/p&gt;

&lt;p&gt;Run the 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;hdfs namenode &lt;span class="nt"&gt;-format&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During the formatting process, you may be prompted with the following message if the NameNode directory already contains data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Re-format filesystem in Storage Directory root=... ? (Y or N)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If the formatting is successful, the last few lines of the output should look similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
INFO common.Storage: Storage directory ... has been successfully formatted.
INFO namenode.FSImageFormatProtobuf: Saving image file ...
INFO namenode.NameNode: SHUTDOWN_MSG:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Formatting the NameNode permanently removes all existing HDFS metadata and data stored in the configured NameNode and DataNode directories. This command should only be executed during the initial setup or when you intentionally want to reset the Hadoop cluster. Do &lt;strong&gt;not&lt;/strong&gt; run this command every time you start Hadoop.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  S11. Start HDFS
&lt;/h2&gt;

&lt;p&gt;Now that the NameNode has been formatted, you can start the Hadoop Distributed File System (HDFS).&lt;/p&gt;

&lt;p&gt;Run the 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;start-dfs.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If HDFS starts successfully, you should see output similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [&amp;lt;hostname&amp;gt;]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To verify that all HDFS daemons are running, execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NameNode
DataNode
SecondaryNameNode
Jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The order of the processes may vary depending on your system.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can also verify that the NameNode is running by opening the following URL in your web browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:9870
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If HDFS has started successfully, the NameNode web interface will be displayed, showing information about the cluster, storage usage, live DataNodes, and the HDFS filesystem.&lt;/p&gt;




&lt;h2&gt;
  
  
  S12. Start YARN
&lt;/h2&gt;

&lt;p&gt;After starting HDFS, the next step is to start YARN (Yet Another Resource Negotiator), which is responsible for resource management and job scheduling in the Hadoop cluster.&lt;/p&gt;

&lt;p&gt;Run the 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;start-yarn.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If YARN starts successfully, you should see output similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Starting resourcemanager
Starting nodemanagers
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To verify that the YARN daemons are running, execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
Jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The order of the processes may vary depending on your system.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can also verify that YARN is running by opening the following URL in your web browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8088
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If YARN has started successfully, the ResourceManager web interface will open, displaying information about the cluster, available resources, running applications, and node status.&lt;/p&gt;

&lt;p&gt;At this point, your Hadoop Single Node Cluster is up and running.&lt;/p&gt;




&lt;h2&gt;
  
  
  S13. Verify the Hadoop Installation
&lt;/h2&gt;

&lt;p&gt;After starting both HDFS and YARN, verify that all Hadoop services are running correctly.&lt;/p&gt;

&lt;p&gt;Check the running Hadoop daemons.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
Jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;View the HDFS cluster report.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hdfs dfsadmin &lt;span class="nt"&gt;-report&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the cluster is running correctly, the report will display information about the configured capacity, remaining storage, live DataNodes, and other cluster details.&lt;/p&gt;

&lt;p&gt;Next, open the NameNode Web UI in your browser.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:9870
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The NameNode dashboard should display information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster Summary&lt;/li&gt;
&lt;li&gt;Live DataNodes&lt;/li&gt;
&lt;li&gt;Storage Information&lt;/li&gt;
&lt;li&gt;HDFS Overview&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then open the ResourceManager Web UI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8088
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ResourceManager dashboard should display:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster Metrics&lt;/li&gt;
&lt;li&gt;Node Status&lt;/li&gt;
&lt;li&gt;Running Applications&lt;/li&gt;
&lt;li&gt;Available Resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If all the above commands and web interfaces are accessible, your Hadoop Single Node Cluster has been installed and configured successfully.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hadoop Web UI Port Quick-Reference
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Web UI URL&lt;/th&gt;
&lt;th&gt;Default Port&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HDFS NameNode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;http://localhost:9870&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9870&lt;/td&gt;
&lt;td&gt;File system status, capacity, browser directories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;YARN ResourceManager&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;http://localhost:8088&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;8088&lt;/td&gt;
&lt;td&gt;Job executions, node resource allocation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HDFS DataNode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;http://localhost:9864&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9864&lt;/td&gt;
&lt;td&gt;Individual DataNode status &amp;amp; blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  S14. Shut Down the Hadoop Cluster
&lt;/h2&gt;

&lt;p&gt;To stop the Hadoop daemons and release system resources safely, stop the YARN resource manager and HDFS services in order.&lt;/p&gt;

&lt;p&gt;Run the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;stop-yarn.sh
stop-dfs.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To verify that all Hadoop services have been stopped successfully, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only the &lt;code&gt;Jps&lt;/code&gt; process itself should be running, confirming that HDFS and YARN have successfully shut down.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>wp2shell: The Bug That Turned an Empty WordPress Install Into a Shell</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Wed, 22 Jul 2026 21:49:38 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/wp2shell-the-bug-that-turned-an-empty-wordpress-install-into-a-shell-2n2</link>
      <guid>https://dev.to/adityapidurkar/wp2shell-the-bug-that-turned-an-empty-wordpress-install-into-a-shell-2n2</guid>
      <description>&lt;p&gt;Okay, so if you run anything on WordPress, or manage servers for people who do, you've probably already seen this name floating around: &lt;strong&gt;wp2shell&lt;/strong&gt;. It's been viral in every infosec feed for the past few days, and if you haven't patched yet, stop reading in about two minutes and go do that first. I'll wait.&lt;/p&gt;

&lt;p&gt;Here's one guide by me summarising from sources how to safeguard&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adityapidurkar/how-to-actually-protect-yourself-from-wp2shell-not-just-update-wordpress-4ead" class="crayons-story__hidden-navigation-link"&gt;How to Actually Protect Yourself From wp2shell (Not Just "Update WordPress")&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/adityapidurkar" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3212617%2Fbe50406d-c2e6-494f-a92e-8d90f0cb1856.jpg" alt="adityapidurkar profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adityapidurkar" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Aditya Pidurkar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Aditya Pidurkar
                
              
              &lt;div id="story-author-preview-content-4209069" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/adityapidurkar" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3212617%2Fbe50406d-c2e6-494f-a92e-8d90f0cb1856.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Aditya Pidurkar&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/adityapidurkar/how-to-actually-protect-yourself-from-wp2shell-not-just-update-wordpress-4ead" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 22&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/adityapidurkar/how-to-actually-protect-yourself-from-wp2shell-not-just-update-wordpress-4ead" id="article-link-4209069"&gt;
          How to Actually Protect Yourself From wp2shell (Not Just "Update WordPress")
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/wordpress"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;wordpress&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/wp2shell"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;wp2shell&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cve"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cve&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cybersecurity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cybersecurity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/adityapidurkar/how-to-actually-protect-yourself-from-wp2shell-not-just-update-wordpress-4ead#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              2&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;Back? Good. Let's actually talk about what this thing is, because most of the coverage I've seen either buries the interesting part under fifteen paragraphs of CVE numbers, or oversimplifies it into "WordPress bad, update now" without explaining why this one is actually worth your attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what actually happened here
&lt;/h2&gt;

&lt;p&gt;On July 17, WordPress quietly shipped 6.9.5 and 7.0.2. Nothing unusual about a point release — except this one came with forced background updates turned on, which WordPress basically never does unless something is genuinely on fire. And something was.&lt;/p&gt;

&lt;p&gt;A researcher named Adam Kues, working under Searchlight Cyber's Assetnote arm, had found a way to get &lt;strong&gt;remote code execution on a completely default WordPress site&lt;/strong&gt;. No plugins. No theme customizations. No login. Just an anonymous HTTP request against a fresh install, and you're running code on someone's server. That's about as bad as it gets for a CMS that a huge chunk of the internet runs on.&lt;/p&gt;

&lt;p&gt;He did the responsible thing — reported it quietly through HackerOne, gave WordPress time to patch, and didn't publish exploit details right away. Instead his team put up a little checker site (wp2shell.com) so admins could test if they were exposed without anyone needing to hand out a working exploit to the entire internet. Genuinely good disclosure hygiene, and worth calling out because it doesn't always go that way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "wp2shell" and not just a CVE number
&lt;/h2&gt;

&lt;p&gt;Because it's not one bug, it's two, chained together — and the chaining is what makes it dangerous.&lt;/p&gt;

&lt;p&gt;Bug one lives in the REST API's batch endpoint (&lt;code&gt;/wp-json/batch/v1&lt;/code&gt;), which has been sitting there, enabled by default, since 2020. Turns out the code validates requests and then &lt;em&gt;executes&lt;/em&gt; them in two separate steps, and that gap between "checking" and "doing" is exactly the kind of seam attackers love. That's CVE-2026-63030.&lt;/p&gt;

&lt;p&gt;Bug two is a SQL injection tucked into &lt;code&gt;WP_Query&lt;/code&gt; — specifically how it handles the &lt;code&gt;author__not_in&lt;/code&gt; parameter. &lt;code&gt;WP_Query&lt;/code&gt; is about as core as core gets in WordPress; it's the thing behind almost every database call the CMS makes. On its own, this lets someone pull data out of the database, including password hashes. That's CVE-2026-60137.&lt;/p&gt;

&lt;p&gt;Neither of those alone gets you a shell. Chained together, though, they do. You use the route confusion to reach code you shouldn't be able to reach, use the injection to leverage database access, and the end result is code execution on the server with zero credentials. Hence, "WordPress to shell." wp2shell.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who's actually affected
&lt;/h2&gt;

&lt;p&gt;If you're on anything from &lt;strong&gt;6.9.0 to 6.9.4&lt;/strong&gt;, or &lt;strong&gt;7.0.0 to 7.0.1&lt;/strong&gt;, you were sitting exposed. Fixed versions are &lt;strong&gt;6.9.5&lt;/strong&gt; and &lt;strong&gt;7.0.2&lt;/strong&gt;. If you're still on the 6.8 branch, that's a separate story — you want &lt;strong&gt;6.8.6&lt;/strong&gt; to close the standalone SQL injection piece, even though the full chain doesn't reach that far back.&lt;/p&gt;

&lt;p&gt;Anything on 6.8.5 or earlier was never part of this particular mess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's the part that should actually worry you
&lt;/h2&gt;

&lt;p&gt;Disclosure was July 17. By the 18th through the 20th, security vendors were already confirming active exploitation in the wild. By the 21st, both CVEs landed on CISA's Known Exploited Vulnerabilities list. And the next day, Searchlight Cyber published the full technical breakdown, and public proof-of-concept code started showing up.&lt;/p&gt;

&lt;p&gt;So the window between "this is theoretical" and "this is being actively abused" was something like 24-48 hours. That's the reality of vulnerability disclosure now — even with a responsible researcher holding back details, once WordPress ships a patch, people diff the code, figure out what changed, and reverse-engineer the bug faster than most orgs can even confirm their sites updated.&lt;/p&gt;

&lt;p&gt;Which brings me to the thing I actually want you to take away from this post.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Forced auto-update" doesn't mean "you're fine"
&lt;/h2&gt;

&lt;p&gt;I get it, WordPress flipped the switch, sites update themselves in the background, problem solved, right? Except — managed hosting setups, staging environments, sites where someone installed a "disable auto-updates" plugin eleven months ago and forgot about it, sites where &lt;code&gt;wp-config.php&lt;/code&gt; has auto-updates turned off for "stability" reasons... none of those get saved by the forced-update mechanism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go check your actual running version.&lt;/strong&gt; Don't trust that it happened. &lt;code&gt;wp-admin &amp;gt; Updates&lt;/code&gt;, or &lt;code&gt;wp core version&lt;/code&gt; if you've got WP-CLI. It takes thirty seconds and it's the difference between "I patched" and "I assumed I patched."&lt;/p&gt;

&lt;p&gt;If you genuinely can't update right this second — maybe there's a compatibility issue, maybe it's a change-freeze week, whatever — there are stopgaps: block anonymous access to the REST API at the WAF level, or specifically block &lt;code&gt;/wp-json/batch/v1&lt;/code&gt; and its query-string cousin &lt;code&gt;?rest_route=/batch/v1&lt;/code&gt;. Just know that'll probably break something else (the block editor, mobile apps, integrations), so treat it as a bandage, not a fix.&lt;/p&gt;

&lt;p&gt;I menttioned more on this on the above post. Do check out.&lt;/p&gt;

&lt;h2&gt;
  
  
  the bigger point buried in all this
&lt;/h2&gt;

&lt;p&gt;We spend so much energy auditing plugins because that's historically where WordPress compromises come from some abandoned plugin nobody updated since 2019. wp2shell is a good reminder that core itself isn't immune, and when core breaks, it doesn't matter how careful you were about plugin hygiene. Every default install in that version range was exposed, full stop.&lt;/p&gt;

&lt;p&gt;Patch your version, verify it actually took, and if you were in the blast radius, assume compromise until you've checked. That's really the whole post.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Written off public reporting from SecurityWeek, The Hacker News, Rapid7, Strobes, Hadrian, SOCRadar, and Korben, current as of July 22-23, 2026. If you're reading this later, double-check the CVE status — it moves fast.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>wp2shell</category>
      <category>cybersecurity</category>
      <category>cve</category>
    </item>
    <item>
      <title>How to Actually Protect Yourself From wp2shell (Not Just "Update WordPress")</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Wed, 22 Jul 2026 21:39:42 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/how-to-actually-protect-yourself-from-wp2shell-not-just-update-wordpress-4ead</link>
      <guid>https://dev.to/adityapidurkar/how-to-actually-protect-yourself-from-wp2shell-not-just-update-wordpress-4ead</guid>
      <description>&lt;p&gt;Everyone's telling you the same thing right now: update WordPress. Which is, fine, yes, obviously but that's not enough. Patching closes the hole. What is someone is already In your system?&lt;/p&gt;

&lt;p&gt;So let's actually walk through this properly what to do right now, what to do if you can't patch immediately, and what to do if you think you were already hit.&lt;/p&gt;

&lt;p&gt;Need more context? I wrote a summarising one here.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adityapidurkar/wp2shell-the-bug-that-turned-an-empty-wordpress-install-into-a-shell-2n2" class="crayons-story__hidden-navigation-link"&gt;wp2shell: The Bug That Turned an Empty WordPress Install Into a Shell&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/adityapidurkar" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3212617%2Fbe50406d-c2e6-494f-a92e-8d90f0cb1856.jpg" alt="adityapidurkar profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adityapidurkar" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Aditya Pidurkar
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Aditya Pidurkar
                
              
              &lt;div id="story-author-preview-content-4209122" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/adityapidurkar" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3212617%2Fbe50406d-c2e6-494f-a92e-8d90f0cb1856.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Aditya Pidurkar&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/adityapidurkar/wp2shell-the-bug-that-turned-an-empty-wordpress-install-into-a-shell-2n2" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 22&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/adityapidurkar/wp2shell-the-bug-that-turned-an-empty-wordpress-install-into-a-shell-2n2" id="article-link-4209122"&gt;
          wp2shell: The Bug That Turned an Empty WordPress Install Into a Shell
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/wordpress"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;wordpress&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/wp2shell"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;wp2shell&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cybersecurity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cybersecurity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cve"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cve&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/adityapidurkar/wp2shell-the-bug-that-turned-an-empty-wordpress-install-into-a-shell-2n2#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h2&gt;
  
  
  S1: Stop assuming you're patched. Go check.
&lt;/h2&gt;

&lt;p&gt;WordPress flipped on forced automatic background updates for this one because of how serious it is. That's great, except "forced" doesn't mean "guaranteed", VERIFY IT.&lt;/p&gt;

&lt;p&gt;Go look at your actual running version right now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the dashboard: &lt;code&gt;wp-admin &amp;gt; Updates&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Via WP-CLI, if you have shell access: &lt;code&gt;wp core version&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You want to see &lt;strong&gt;7.0.2&lt;/strong&gt; if you're on the 7.0 line, or &lt;strong&gt;6.9.5&lt;/strong&gt; if you're on 6.9. &lt;/p&gt;

&lt;p&gt;If you see anything else — 6.9.0 through 6.9.4, or 7.0.0/7.0.1 — you're still exposed. Update it now!! Come back when done.&lt;/p&gt;

&lt;p&gt;A few situations where the forced update quietly doesn't happen, in what I read on internet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managed hosting environments where the host controls the update pipeline and hasn't pushed it yet&lt;/li&gt;
&lt;li&gt;Sites with a "disable auto-updates" plugin installed months ago for stability reasons and never revisited&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wp-config.php&lt;/code&gt; with &lt;code&gt;WP_AUTO_UPDATE_CORE&lt;/code&gt; explicitly set to &lt;code&gt;false&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Staging or dev environments nobody thinks of as "production" but that are still internet-facing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of that describes you, don't wait on the automation. Update manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  S2: If you genuinely can't update right now, here's your stopgap
&lt;/h2&gt;

&lt;p&gt;aybe you're facing a compatibility issue, a change freeze, or a custom plugin that isn't ready yet. It happens. If you need a little more time before applying the real fix, here's a workaround that helps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block anonymous access to the batch REST endpoint.&lt;/strong&gt; The vulnerable surface is specifically &lt;code&gt;/wp-json/batch/v1&lt;/code&gt; and its query-string equivalent, &lt;code&gt;?rest_route=/batch/v1&lt;/code&gt;. You can handle this a couple of ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;At your WAF or reverse proxy (Cloudflare, Nginx, whatever sits in front of your site) — block or challenge requests to those paths from unauthenticated traffic&lt;/li&gt;
&lt;li&gt;With a plugin that restricts REST API access to logged-in users only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I want to be upfront about the tradeoff here: both of these can break legitimate things. The block editor uses REST endpoints. So do a lot of mobile apps and third-party integrations. This is a temporary bandage, not a real fix — treat it that way and get back to updating properly as soon as you can.&lt;/p&gt;

&lt;p&gt;If you're behind Cloudflare, also check whether their managed ruleset for this specific vulnerability is switched on for your zone. They shipped detection rules pretty quickly after disclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  S3: Figure out if you were already hit
&lt;/h2&gt;

&lt;p&gt;This is the part almost everyone skips, and it's the part that actually matters if your site was sitting in an affected version between when this became exploitable and when you patched.&lt;/p&gt;

&lt;p&gt;Quick gut check on timeline: disclosure was July 17. In-the-wild exploitation was confirmed within days of that. So if your site was running 6.9.0-6.9.4 or 7.0.0-7.0.1 and internet-facing anytime after that, don't just assume nothing happened please go look.&lt;/p&gt;

&lt;p&gt;Things worth checking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Admin accounts.&lt;/strong&gt; Anything new that you didn't create? Any password resets you didn't trigger? This is usually the first thing an attacker does once they've got code execution — plant a persistent admin account so they don't need the exploit again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File timestamps.&lt;/strong&gt; Look through &lt;code&gt;wp-content&lt;/code&gt;, especially theme and plugin directories, for files modified around dates that don't line up with anything you actually did. A stray &lt;code&gt;.php&lt;/code&gt; file with a weird name sitting in an upload directory is a classic sign.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scheduled tasks.&lt;/strong&gt; Check &lt;code&gt;wp_cron&lt;/code&gt; for anything unfamiliar. Attackers sometimes use this for persistence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access logs.&lt;/strong&gt; Search for anonymous POST requests hitting &lt;code&gt;/wp-json/batch/v1&lt;/code&gt; or &lt;code&gt;?rest_route=/batch/v1&lt;/code&gt; around your exposure window. That's the fingerprint of someone probing or actually exploiting the chain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database.&lt;/strong&gt; If you're comfortable poking around directly, check &lt;code&gt;wp_users&lt;/code&gt; and &lt;code&gt;wp_options&lt;/code&gt; for anything that looks off — unexpected serialized data, options keys you don't recognize.&lt;/p&gt;

&lt;p&gt;If you find something genuinely anything from that list — this stops being a "patch and move on" situation. At that point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rotate every credential tied to the site: WordPress admin passwords, database credentials, API keys, FTP/SSH if applicable&lt;/li&gt;
&lt;li&gt;Actually search for backdoors rather than just deleting the one file you found — attackers who get RCE rarely plant just one way back in&lt;/li&gt;
&lt;li&gt;If you've got a clean backup from before the exposure window, restoring from that is usually faster and safer than trying to manually clean an infected install&lt;/li&gt;
&lt;li&gt;If this is a business-critical site, this is probably the point where you loop in someone who does incident response for a living rather than doing forensics solo at 1am&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  S4: The stuff that's worth doing regardless of this specific bug
&lt;/h2&gt;

&lt;p&gt;None of this is wp2shell-specific, but it's exactly the kind of thing that determines whether the &lt;em&gt;next&lt;/em&gt; core vulnerability catches you exposed or not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Actually turn on auto-updates for core, and check periodically that it's still working rather than assuming it forever&lt;/li&gt;
&lt;li&gt;Keep an eye on whether your host's update pipeline is timely — some managed hosts lag behind official releases&lt;/li&gt;
&lt;li&gt;Don't expose more REST API surface than you need; if you're not using the batch endpoint for anything legitimate, there's no downside to restricting it permanently&lt;/li&gt;
&lt;li&gt;Have a "did this site get patched" checklist for exactly moments like this one, so you're not scrambling to remember which of your fifteen WordPress installs is still on an old version&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  telling simply, if that's all you needed(so longer one)
&lt;/h2&gt;

&lt;p&gt;Check your actual WordPress version, don't trust that the forced update ran. Get to 7.0.2, 6.9.5, or 6.8.6 depending on your branch. If you can't update immediately, block anonymous access to &lt;code&gt;/wp-json/batch/v1&lt;/code&gt; as a temporary measure. If your site was exposed anytime after July 17, go check for signs of compromise before you assume patching was the end of it. That's the whole job.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Based on public source from WordPress.org, and Cloudflare's reporting on wp2shell (CVE-2026-63030 / CVE-2026-60137), current as of late July 2026.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>wp2shell</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>How to run Kali Linux from USB</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Fri, 03 Jul 2026 10:06:31 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/how-to-run-kali-linux-from-usb-5c5g</link>
      <guid>https://dev.to/adityapidurkar/how-to-run-kali-linux-from-usb-5c5g</guid>
      <description>&lt;h3&gt;
  
  
  Why Live Boot?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Advantages of a Kali Linux Live Boot&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides direct access to the computer's hardware.&lt;/li&gt;
&lt;li&gt;Portable just plug and play.&lt;/li&gt;
&lt;li&gt;Offers near-native performance with no virtualization overhead.&lt;/li&gt;
&lt;li&gt;Supports Wi-Fi monitor mode and packet injection more reliably.&lt;/li&gt;
&lt;li&gt;Allows better access to USB devices, Bluetooth adapters, and other peripherals.&lt;/li&gt;
&lt;li&gt;Delivers improved GPU and graphics performance.&lt;/li&gt;
&lt;li&gt;Does not require installation, so it can be used temporarily without modifying the host system.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;p&gt;Before starting, make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;USB drive(8 GB minimum, 16 GB or larger recommended)&lt;/li&gt;
&lt;li&gt;Windows, Linux, or macOS computer&lt;/li&gt;
&lt;li&gt;Stable internet connection&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pbatard/rufus/releases/download/v4.15/rufus-4.15p.exe" rel="noopener noreferrer"&gt;Rufus&lt;/a&gt; (for Windows users) or Use &lt;a href="https://etcher.balena.io/#download-etcher" rel="noopener noreferrer"&gt;Etcher&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Kali Linux ISO image&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will be using a HP 16GB Pendrive and Rufus Portable.&lt;/p&gt;

&lt;h4&gt;
  
  
  S1:
&lt;/h4&gt;

&lt;p&gt;Download Kali Linux Live Image from here &lt;a href="https://cdimage.kali.org/kali-2026.2/kali-linux-2026.2-live-amd64.iso.torrent" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  S2:
&lt;/h4&gt;

&lt;p&gt;Open Rufus. &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%2Fiqsahl93g3f90susiobh.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%2Fiqsahl93g3f90susiobh.png" alt=" " width="745" height="341"&gt;&lt;/a&gt;&lt;br&gt;
CLick No.&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%2Fonmerfpu7h65o41275y9.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%2Fonmerfpu7h65o41275y9.png" alt=" " width="645" height="776"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select your USB device and set the following settings&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Boot Selection: ISO and select the iso that we downloaded.&lt;/li&gt;
&lt;li&gt;Persistent Partition Size: Maximum Possible if you want to keep your session saved and not lose data.&lt;/li&gt;
&lt;li&gt;Partition Scheme to GPT&lt;/li&gt;
&lt;li&gt;Volume Label: Any name you want to give&lt;/li&gt;
&lt;li&gt;Keep rest settings same if you don't know what it actual does.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;and then click Start.&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%2Foktvhjkslcy47dbpi4pz.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%2Foktvhjkslcy47dbpi4pz.png" alt=" " width="577" height="767"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After done just restart your desktop or laptop and based on your model of device open bootloader and select your USB.&lt;/p&gt;

&lt;p&gt;After selecting your USB Drive this screen will load.&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%2Fvmj97ngicakvpevm8tl6.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%2Fvmj97ngicakvpevm8tl6.png" alt=" " width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select 4th option &lt;strong&gt;Live system with USB persistence&lt;/strong&gt; if you want persistence.&lt;/p&gt;

&lt;p&gt;You finally have a pendrive you can plug into any pc or laptop and use your kali for whatever you want 👀.&lt;/p&gt;

&lt;p&gt;If you face any issues or need help message at &lt;br&gt;
&lt;a href="//t.me/adityapidurkar"&gt;t.me/adityapidurkar&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Get Your CTF Listed on CTFtime</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Mon, 08 Jun 2026 07:19:19 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/how-to-get-your-ctf-listed-on-ctftime-34dj</link>
      <guid>https://dev.to/adityapidurkar/how-to-get-your-ctf-listed-on-ctftime-34dj</guid>
      <description>&lt;p&gt;If you're organizing a CTF, getting it listed on &lt;a href="https://ctftime.org/" rel="noopener noreferrer"&gt;CTFtime&lt;/a&gt; can significantly increase visibility and attract participants from around the world.&lt;/p&gt;

&lt;p&gt;Some benefits of listing on CTFtime&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reach a global cybersecurity audience&lt;/li&gt;
&lt;li&gt;Increase registration numbers&lt;/li&gt;
&lt;li&gt;Build credibility for their event&lt;/li&gt;
&lt;li&gt;Gain recognition within the CTF community&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Before you submit collect this info
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Event name&lt;/li&gt;
&lt;li&gt;Start and end dates/times (UTC recommended)[Use this &lt;a href="https://aigenops.github.io/ctftime-tools/" rel="noopener noreferrer"&gt;tool&lt;/a&gt; to convert to UTC easily]&lt;/li&gt;
&lt;li&gt;Event website&lt;/li&gt;
&lt;li&gt;Registration link&lt;/li&gt;
&lt;li&gt;Event description&lt;/li&gt;
&lt;li&gt;Organizer information&lt;/li&gt;
&lt;li&gt;Format of the competition (Jeopardy, Attack-Defense, Mixed, etc.)&lt;/li&gt;
&lt;li&gt;Eligibility requirements (if any)&lt;/li&gt;
&lt;li&gt;Prize details (optional)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now do this&lt;/p&gt;

&lt;h2&gt;
  
  
  S1: Go to CTFtime site
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ctftime.org/" rel="noopener noreferrer"&gt;Open&lt;/a&gt;
&lt;/h3&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%2Fz29olhczi2gbl7x02atx.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%2Fz29olhczi2gbl7x02atx.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  S2: Log in with anything
&lt;/h2&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%2Fp42ty3frbajeaiho0571.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%2Fp42ty3frbajeaiho0571.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  S3: Create a team
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ctftime.org/team/new/" rel="noopener noreferrer"&gt;New Team&lt;/a&gt;
&lt;/h3&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%2F3ag7zkc0phedh2zj8puw.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%2F3ag7zkc0phedh2zj8puw.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill in the details and click save and continue.(Team Name will be organizer name in the CTF)&lt;/p&gt;

&lt;h2&gt;
  
  
  S4: Register your CTF Series name
&lt;/h2&gt;

&lt;p&gt;CTF Series name is a general name of your CTF.&lt;/p&gt;

&lt;p&gt;Open the below form to fill details&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ctftime.org/event/mail" rel="noopener noreferrer"&gt;Form&lt;/a&gt;
&lt;/h3&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%2Ffmi1r11siag9zumx4nkl.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%2Ffmi1r11siag9zumx4nkl.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;br&gt;
Fill the form properly and click Send.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Put a general name for the CTF name. Don't put your whole event name. It can't be changed in future.&lt;/p&gt;

&lt;h3&gt;
  
  
  Done
&lt;/h3&gt;

&lt;p&gt;Now you will have to wait for their approval, once they approve you can view the CTF Details at &lt;a href="https://ctftime.org/ctfprofile" rel="noopener noreferrer"&gt;CTF&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%2Fcdnl4rdfmyujtukflr21.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%2Fcdnl4rdfmyujtukflr21.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once approved then follow steps from the next article of this series to finally put your CTF on CTFtime.&lt;/p&gt;

&lt;p&gt;Thank You for reading! Suggestion in comments are always welcome!&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>resources</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Agentic AI: The Next Big Cybersecurity Threat?</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Thu, 26 Feb 2026 06:21:40 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/agentic-ai-the-next-big-cybersecurity-threat-55dd</link>
      <guid>https://dev.to/adityapidurkar/agentic-ai-the-next-big-cybersecurity-threat-55dd</guid>
      <description>&lt;p&gt;Few years till today we used to have tools like chatbots who replied to what we asked, what we required with and only with specific info. But there was a problem it always required us to put something in it if we wanted it to find us something or do a task. It is way too tedious task.&lt;/p&gt;

&lt;p&gt;Now the AI world is changing with a new concept, something which can think on its own, take action on its own .. Known as &lt;strong&gt;Agentic AI&lt;/strong&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%2Fao40iv7dp5ogrhkc030w.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%2Fao40iv7dp5ogrhkc030w.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exactly Is Agentic AI?
&lt;/h2&gt;

&lt;p&gt;Let's take a example&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Find vulnerabilities in this system and report them."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A normal AI might help analyze logs or scan code when told to.&lt;/p&gt;

&lt;p&gt;But Agentic AI would &lt;br&gt;
Decide where to start scanning -&amp;gt; Choose which tools to use -&amp;gt; Analyze data -&amp;gt; Adjust strategy if something fails -&amp;gt; Keep working until the objective is achieved&lt;/p&gt;

&lt;p&gt;All without our interaction. It doesn't just follow instructions, it takes decisions!&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Cybersecurity Experts Are Getting Nervous
&lt;/h2&gt;

&lt;p&gt;Till now, we fought war(Attackers vs Defenders) but the point was it was all human driven.&lt;br&gt;
Even with the automated tools, the main strategies were planned by Humans.&lt;/p&gt;

&lt;p&gt;For the first time now, attackers can deploy systems that&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Think&lt;/li&gt;
&lt;li&gt;Adapt&lt;/li&gt;
&lt;li&gt;Persist&lt;/li&gt;
&lt;li&gt;Scale infinitely&lt;/li&gt;
&lt;li&gt;Operate 24/7 without fatigue&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  1. Attacks Could Become Fully Automated
&lt;/h3&gt;

&lt;p&gt;Right now, hackers spend a lot of time doing manual work: - Searching for weak points - Testing exploits - Trying different attack methods&lt;/p&gt;

&lt;p&gt;Agentic AI could do all of this automatically.&lt;/p&gt;

&lt;p&gt;It could: - Scan thousands of systems at once - Identify vulnerabilities instantly - Launch attacks continuously, day and night&lt;/p&gt;

&lt;p&gt;Unlike humans, AI doesn't sleep, take breaks, or lose focus.&lt;/p&gt;

&lt;p&gt;This means cyberattacks could become faster, cheaper, and massively scalable.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. AI Can Adapt Faster Than Humans Can Defend
&lt;/h3&gt;

&lt;p&gt;One of the scariest things about Agentic AI is its ability to learn while attacking.&lt;/p&gt;

&lt;p&gt;Imagine this scenario:&lt;/p&gt;

&lt;p&gt;A security system blocks an intrusion attempt.&lt;/p&gt;

&lt;p&gt;A human hacker might take hours or days to figure out another approach.&lt;/p&gt;

&lt;p&gt;But an Agentic AI could: - Analyze why it failed - Generate new attack strategies - Try again immediately&lt;/p&gt;

&lt;p&gt;This creates a situation where defenses are constantly playing catch‑up.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Social Engineering Could Become Extremely Powerful
&lt;/h3&gt;

&lt;p&gt;Many cyberattacks don't rely on technical hacks --- they rely on&lt;br&gt;
tricking people.&lt;/p&gt;

&lt;p&gt;Agentic AI could take social engineering to a whole new level.&lt;/p&gt;

&lt;p&gt;Future AI agents may be able to: - Write highly personalized phishing&lt;br&gt;
emails - Hold realistic conversations with victims - Create deepfake&lt;br&gt;
voices or videos - Study a person's behavior to manipulate them&lt;/p&gt;

&lt;p&gt;In simple terms, scams could become &lt;strong&gt;almost impossible to distinguish&lt;br&gt;
from reality&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. The Rise of Self‑Evolving Malware
&lt;/h3&gt;

&lt;p&gt;Traditional malware is static --- once created, it has a fixed design.&lt;/p&gt;

&lt;p&gt;Agentic AI could change that completely.&lt;/p&gt;

&lt;p&gt;We may soon see malware that can: - Rewrite its own code - Change its&lt;br&gt;
attack patterns - Hide intelligently - Decide when to attack or stay&lt;br&gt;
silent&lt;/p&gt;

&lt;p&gt;This kind of malware would behave less like software... and more like a&lt;br&gt;
living digital organism.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Attacks That Never Stop
&lt;/h3&gt;

&lt;p&gt;Human hackers usually work in phases.&lt;/p&gt;

&lt;p&gt;Agentic AI could operate continuously for years.&lt;/p&gt;

&lt;p&gt;It could: - Monitor systems quietly - Collect data slowly - Expand&lt;br&gt;
access over time - Avoid detection strategically&lt;/p&gt;

&lt;p&gt;This would create a new category of threats: &lt;strong&gt;long‑term autonomous&lt;br&gt;
intrusions&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real‑World Threat Scenarios We Might See Soon
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Autonomous Corporate Espionage
&lt;/h4&gt;

&lt;p&gt;An AI agent infiltrates a company network and silently gathers trade&lt;br&gt;
secrets for months without human involvement.&lt;/p&gt;

&lt;h4&gt;
  
  
  AI‑Driven Ransomware
&lt;/h4&gt;

&lt;p&gt;Instead of random attacks, AI could choose the most valuable targets and&lt;br&gt;
time the attack for maximum damage.&lt;/p&gt;

&lt;h4&gt;
  
  
  Autonomous Cyber Warfare
&lt;/h4&gt;

&lt;p&gt;Governments could deploy AI agents to: - Disrupt power grids - Attack&lt;br&gt;
financial systems - Interfere with communication networks&lt;/p&gt;

&lt;p&gt;This could lead to a future where cyber wars are fought largely by&lt;br&gt;
machines.&lt;/p&gt;




&lt;h2&gt;
  
  
  But It's Not All Doom --- AI Can Also Defend
&lt;/h2&gt;

&lt;p&gt;The same technology can also protect us.&lt;/p&gt;

&lt;p&gt;Security teams are already developing AI agents that can:&lt;/p&gt;

&lt;p&gt;Monitor networks 24/7 -&amp;gt; Detect unusual behavior instantly -&amp;gt; Automatically patch vulnerabilities -&amp;gt; Respond to attacks in seconds&lt;/p&gt;

&lt;p&gt;In the future, cybersecurity may become a battlefield of &lt;strong&gt;AI vs AI&lt;/strong&gt;,&lt;br&gt;
where autonomous defenders fight autonomous attackers.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Questions We Need to Answer
&lt;/h2&gt;

&lt;p&gt;Agentic AI raises serious ethical and legal challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Who is responsible if an AI launches an attack?&lt;/li&gt;
&lt;li&gt;  Can autonomous cyber weapons be controlled?&lt;/li&gt;
&lt;li&gt;  Should there be global rules limiting AI autonomy?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are questions governments and tech leaders are still struggling to&lt;br&gt;
answer.&lt;/p&gt;




&lt;p&gt;The biggest challenge ahead isn't just building smarter AI.&lt;/p&gt;

&lt;p&gt;It's making sure we can &lt;strong&gt;control it, secure it, and defend against it&lt;/strong&gt;&lt;br&gt;
before it becomes a tool that attackers can fully exploit.&lt;/p&gt;

&lt;p&gt;Because one thing is clear:&lt;/p&gt;

&lt;p&gt;The future of cybersecurity will not just involve protecting systems...&lt;/p&gt;

&lt;p&gt;It will involve managing intelligent digital agents themselves.&lt;/p&gt;

&lt;p&gt;And that future has already begun.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>agentaichallenge</category>
    </item>
    <item>
      <title>Nobody Talks About This Cyber Threat, But It's Everywhere</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Wed, 04 Feb 2026 11:35:11 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/nobody-talks-about-this-cyber-threat-but-its-everywhere-1482</link>
      <guid>https://dev.to/adityapidurkar/nobody-talks-about-this-cyber-threat-but-its-everywhere-1482</guid>
      <description>&lt;p&gt;There's a class of attacks I see in incident reports again and again, TBs of data leaving the network but not a single security tool raised a red flag.&lt;/p&gt;

&lt;p&gt;No flashy zero-days. No nation-state tooling. No malware that triggers&lt;br&gt;
antivirus.&lt;/p&gt;

&lt;p&gt;Just &lt;strong&gt;someone who logged in&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Not all breaches starts with dramatic zero days, ransomwares or any alert popping up saying Data Hacked!!!&lt;/p&gt;

&lt;p&gt;The threat I am talking about is &lt;strong&gt;Credential Abuse&lt;/strong&gt; : using valid credentials to walk straight in like invited ones!&lt;/p&gt;




&lt;h3&gt;
  
  
  Why This Matters More than any Vuln
&lt;/h3&gt;

&lt;p&gt;We focus more on CVEs, patch cycles, and EDR signatures but attackers skip those coz why stress over that if you can login directly!&lt;/p&gt;

&lt;p&gt;Your firewall won't care, EDR won't care and the SIEM will barely notice it even SOC Analyst will see it as normal user logging in.&lt;/p&gt;

&lt;p&gt;From the defender's side, it looks legitimate.&lt;br&gt;
From the attacker's side, it's perfect &lt;strong&gt;camouflage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In most enterprise breaches, the initial foothold was &lt;strong&gt;not&lt;/strong&gt; malware.&lt;/p&gt;




&lt;h3&gt;
  
  
  How Credential Abuse Works (Under the Hood)
&lt;/h3&gt;

&lt;p&gt;This is not guessing passwords blindly. It's much smarter.&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.amazonaws.com%2Fuploads%2Farticles%2F7hx6unzk903g3tfm0orm.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%2F7hx6unzk903g3tfm0orm.png" alt="Provided by elastic.co" width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  1) Credential Harvesting
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Phishing kits (evilginx-style reverse proxies)&lt;/li&gt;
&lt;li&gt;Infostealers&lt;/li&gt;
&lt;li&gt;Data breaches from unrelated websites&lt;/li&gt;
&lt;li&gt;Keylogging malware&lt;/li&gt;
&lt;li&gt;Browser password dumps&lt;/li&gt;
&lt;li&gt;OS cred dumping&lt;/li&gt;
&lt;li&gt;Credentials from Password stores&lt;/li&gt;
&lt;li&gt;unhashed or plain text creds passing over network&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2) Credential Validation (Password Spraying)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 o365spray.py &lt;span class="nt"&gt;--domain&lt;/span&gt; company.com &lt;span class="nt"&gt;--userlist&lt;/span&gt; users.txt &lt;span class="nt"&gt;--password&lt;/span&gt; &lt;span class="s1"&gt;'Winter@123'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3) Living Off the Land After Login
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  PowerShell&lt;/li&gt;
&lt;li&gt;  RDP&lt;/li&gt;
&lt;li&gt;  SMB&lt;/li&gt;
&lt;li&gt;  Azure portal&lt;/li&gt;
&lt;li&gt;  AWS console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No malware required.&lt;/p&gt;




&lt;h3&gt;
  
  
  Real-Life Case: The Uber Breach (2022)
&lt;/h3&gt;

&lt;p&gt;A contractor working with Uber had their password stolen. Not from Uber. From their own personal machine earlier, thanks to an infostealer. Those logs were purchased by a hacker.&lt;/p&gt;

&lt;p&gt;He attempted login on Uber's VPN but&lt;br&gt;
MFA pops up! &lt;/p&gt;

&lt;p&gt;Instead of bypassing it or using any exploit the attacker simply kept spamming MFA Prompts and the contractor kept denying it but being tired he clicked Approve to make it stop and done was the play!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instant Access&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Where Most Organizations Mess This Up
&lt;/h3&gt;

&lt;p&gt;I’ve seen this pattern so many times it’s almost predictable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“We have MFA, so we’re fine.”&lt;/li&gt;
&lt;li&gt;Nobody looks at impossible travel if the login worked&lt;/li&gt;
&lt;li&gt;Password spray attempts get ignored because no one got locked out&lt;/li&gt;
&lt;li&gt;A user adds a new MFA method and no alert is generated&lt;/li&gt;
&lt;li&gt;Mailbox rules get created and nobody ever checks them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this comes from one dangerous assumption:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If the login is successful, it must be the real user.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s exactly what attackers rely on.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What You (or Your SOC) Should Actually Watch For
&lt;/h3&gt;

&lt;p&gt;Pay attention to things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A successful login from a country the user has never been to&lt;/li&gt;
&lt;li&gt;A new MFA device getting added to an existing account&lt;/li&gt;
&lt;li&gt;Inbox rules being created, especially ones that hide or forward emails&lt;/li&gt;
&lt;li&gt;Large downloads from OneDrive or SharePoint&lt;/li&gt;
&lt;li&gt;Users granting permissions to random OAuth apps inside Microsoft 365

&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  If You Think This Already Happened to You
&lt;/h3&gt;

&lt;p&gt;If you faced something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You got MFA prompts you didn’t request&lt;/li&gt;
&lt;li&gt;Your mailbox had rules you don’t remember creating&lt;/li&gt;
&lt;li&gt;Security emails were marked as read or moved to folders&lt;/li&gt;
&lt;li&gt;Colleagues said you sent emails you don’t recall writing&lt;/li&gt;
&lt;li&gt;Login history shows locations you’ve never been to&lt;/li&gt;
&lt;li&gt;Your account suddenly asked you to re-authenticate everywhere&lt;/li&gt;
&lt;li&gt;Files in OneDrive or SharePoint show unusual download activity&lt;/li&gt;
&lt;li&gt;An unfamiliar app shows up in your Microsoft 365 app permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Then Do this&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check and delete all mailbox rules&lt;/li&gt;
&lt;li&gt;Review MFA methods and remove anything you don’t recognize&lt;/li&gt;
&lt;li&gt;Force sign-out from all sessions&lt;/li&gt;
&lt;li&gt;Revoke OAuth app permissions you didn’t approve&lt;/li&gt;
&lt;li&gt;Inform your IT/SOC team with the timeline of what you noticed&lt;/li&gt;
&lt;li&gt;Ask for sign-in logs to be reviewed for the past 30–60 days&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So stay safe, stay secure.&lt;br&gt;
Thank You for reading!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.upguard.com/blog/what-caused-the-uber-data-breach#was-any-sensitive-user-data-stolen-during-the-uber-breach" rel="noopener noreferrer"&gt;Uber Data Breach&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.elastic.co/blog/elastic-global-threat-report-breakdown-credential-access" rel="noopener noreferrer"&gt;Elastic.co blog by Devon Kerr&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>cybersecurity</category>
      <category>credentialaccess</category>
      <category>threatanalysis</category>
      <category>databreach</category>
    </item>
    <item>
      <title>Setup Oracle VirtualBox in Windows 11</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Tue, 20 Jan 2026 12:30:00 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/setup-oracle-virtualbox-in-windows-11-phm</link>
      <guid>https://dev.to/adityapidurkar/setup-oracle-virtualbox-in-windows-11-phm</guid>
      <description>&lt;p&gt;Today lemme demonstrate how to download and setup &lt;strong&gt;Oracle VirtualBox in Windows 11&lt;/strong&gt;. I know its a vary basic thing to do but some of us dont know where and how to do this. &lt;/p&gt;

&lt;p&gt;Lets start with Downloading required files&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Oracle VirtualBox&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://download.virtualbox.org/virtualbox/7.2.4/VirtualBox-7.2.4-170995-Win.exe" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Extension Pack&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://download.virtualbox.org/virtualbox/7.2.4/Oracle_VirtualBox_Extension_Pack-7.2.4.vbox-extpack" rel="noopener noreferrer"&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now lets install it&lt;br&gt;
Double click to open the setup and proceed with this steps&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%2Fmju2d7i684zh2nr0ohzz.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%2Fmju2d7i684zh2nr0ohzz.png" width="585" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click 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%2F78n5usyypnw5z6uu8g8m.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%2F78n5usyypnw5z6uu8g8m.png" width="580" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check the I accept the terms of the license agreement and click 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%2Fe6thxo0muacr45jai3r6.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%2Fe6thxo0muacr45jai3r6.png" width="583" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simply click 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%2Ftmtyiaqx0x0ssq5fj5cb.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%2Ftmtyiaqx0x0ssq5fj5cb.png" width="585" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Yes&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%2F7042rgfsr3ooztrtv9kt.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%2F7042rgfsr3ooztrtv9kt.png" width="587" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Yes&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%2F7gcpa4xbapyeeac1td35.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%2F7gcpa4xbapyeeac1td35.png" width="582" height="462"&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%2Fl6bvhtrapasde77yr54g.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%2Fl6bvhtrapasde77yr54g.png" width="584" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Install&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%2F2oqm9ex2trp0uocj1a44.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%2F2oqm9ex2trp0uocj1a44.png" width="585" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Finish Now and open VirtualBox&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%2Fy8t3rb83hd01hbxte52b.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%2Fy8t3rb83hd01hbxte52b.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now press Ctrl+T to go to Extensions tab&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%2F33vbv9n65dpv4xhttetw.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%2F33vbv9n65dpv4xhttetw.png" width="649" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then click on install and select the extension file we downloaded&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%2Ff9cg1pybrcjteuc7qtkx.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%2Ff9cg1pybrcjteuc7qtkx.png" width="568" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Install and press Agree&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Done!!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you face any issues contact me at&lt;/p&gt;

&lt;p&gt;&lt;a href="mailto:adityapidurkar@proton.me"&gt;Mail&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>cybersecurity</category>
      <category>virtualmachine</category>
    </item>
    <item>
      <title>20% of internet down: Why X, ChatGPT, and Cloudflare were Down</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Tue, 18 Nov 2025 13:39:11 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/update-why-x-chatgpt-and-cloudflare-are-down-14b6</link>
      <guid>https://dev.to/adityapidurkar/update-why-x-chatgpt-and-cloudflare-are-down-14b6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; November 18, 2025&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Ongoing / Recovering&lt;/p&gt;

&lt;p&gt;If you cannot refresh your X (Twitter) feed or log into your favorite game right now, you aren't alone. A massive chunk of the internet struggles at this moment.&lt;/p&gt;

&lt;p&gt;Rumors suggest a massive cyberattack causes this, but the reality involves a more technical explanation. Here is the full list of what broke, why it broke, and when it returns.&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%2Fzh3gc52pf2px4p68s1h3.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%2Fzh3gc52pf2px4p68s1h3.png" alt=" " width="799" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Full List of Affected Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt; causes the issue. Cloudflare acts as a "backbone" provider for millions of websites. Because Cloudflare faces issues, every app that relies on them faces issues too.&lt;/p&gt;

&lt;p&gt;Based on Downdetector spikes and user reports, the following services currently fail:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Social Media:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;X (formerly Twitter):&lt;/strong&gt; Fails to load feeds globally; users cannot post.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facebook / Meta:&lt;/strong&gt; Rejects logins and fails to load pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Truth Social:&lt;/strong&gt; Displays accessibility errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grindr:&lt;/strong&gt; App fails to connect.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI &amp;amp; Productivity:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI:&lt;/strong&gt; ChatGPT and even the new video tool, &lt;strong&gt;Sora&lt;/strong&gt;, deny access or show capacity errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Canva:&lt;/strong&gt; The editor runs slowly or fails to load entirely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon / AWS:&lt;/strong&gt; Specific services show instability (though core AWS remains up).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entertainment &amp;amp; Gaming:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spotify:&lt;/strong&gt; Stops music streams and prevents app access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;League of Legends:&lt;/strong&gt; Login servers and matchmaking systems fail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Letterboxd:&lt;/strong&gt; The site refuses to load properly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;bet365:&lt;/strong&gt; Cloudflare error messages block access to the betting site.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utilities:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NJ Transit:&lt;/strong&gt; Commuters face disruptions on the app and site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Downdetector:&lt;/strong&gt; Ironically, the outage briefly took down the very site used to track outages.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Did a DDoS Attack Cause This?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Short Answer:&lt;/strong&gt; No, a maintenance error caused this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long Answer:&lt;/strong&gt; Confusion exists because two big stories broke at the same time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;The Real Issue (Cloudflare Outage):&lt;/strong&gt; Cloudflare officially attributes the problem to &lt;strong&gt;internal infrastructure issues&lt;/strong&gt;. Engineers performed scheduled maintenance in several data centers, but the traffic re-routing failed. This failure created a cascade of "500 errors."&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The "Fake" News (Azure Attack):&lt;/strong&gt; You might read headlines today about the "Largest DDoS Attack in History" (15.7 Terabits per second). &lt;strong&gt;Microsoft blocked this attack weeks ago.&lt;/strong&gt; They simply released the report today. That attack &lt;strong&gt;did not&lt;/strong&gt; cause the outages you see right now.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Current Status (As of 7:10 PM IST)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare:&lt;/strong&gt; Engineers identified the fix and are implementing it now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery:&lt;/strong&gt; Services slowly return online, but expect error pages for the next few hours as traffic stabilizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Bottom Line:&lt;/strong&gt; Do not change your passwords or reset your router. Engineers are currently fixing the internet's plumbing. We simply wait for the water to flow again.&lt;/p&gt;

&lt;h3&gt;
  
  
  More Updates coming soon!!!
&lt;/h3&gt;

</description>
      <category>ddos</category>
      <category>outage</category>
      <category>cyberattack</category>
      <category>cloudflare</category>
    </item>
    <item>
      <title>OWASP Top 10 2025 What You Need To Know as a Security Engineer or Hacker</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Fri, 14 Nov 2025 12:30:00 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/owasp-top-10-2025-what-you-need-to-know-as-a-security-engineer-or-hacker-1cp1</link>
      <guid>https://dev.to/adityapidurkar/owasp-top-10-2025-what-you-need-to-know-as-a-security-engineer-or-hacker-1cp1</guid>
      <description>&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%2F2zemn9o92eywqmtxur8m.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%2F2zemn9o92eywqmtxur8m.png" alt="owasptop10" width="799" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The OWASP Top 10 is one of the first things people mention when they talk about web security. But if you work in security long enough, you learn that most people talk about it without ever reading the details.&lt;br&gt;&lt;br&gt;
So let me explain you through the &lt;strong&gt;2025 edition&lt;/strong&gt; in a clear, direct way. I’ll mention what changed, why it matters, and where you should focus if you break, test, or defend web apps.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the 2025 Edition Matters
&lt;/h2&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%2Fe8631hlu5x64mv0xqxp7.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%2Fe8631hlu5x64mv0xqxp7.png" alt="order" width="799" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OWASP didn’t just reshuffle the list. They &lt;strong&gt;added two new categories&lt;/strong&gt;, &lt;strong&gt;expanded supply-chain risk&lt;/strong&gt;, and &lt;strong&gt;grouped weaknesses by root cause&lt;/strong&gt;, not by symptom. That gives you a more precise view of &lt;em&gt;where systems actually fail&lt;/em&gt; today.&lt;/p&gt;

&lt;h3&gt;
  
  
  The 2025 Top 10 focuses on:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Bad access rules
&lt;/li&gt;
&lt;li&gt;Misconfigured systems
&lt;/li&gt;
&lt;li&gt;Compromised dependencies
&lt;/li&gt;
&lt;li&gt;Weak cryptography
&lt;/li&gt;
&lt;li&gt;Injection flaws
&lt;/li&gt;
&lt;li&gt;Poor design
&lt;/li&gt;
&lt;li&gt;Broken authentication
&lt;/li&gt;
&lt;li&gt;Integrity failures
&lt;/li&gt;
&lt;li&gt;Missing alerts
&lt;/li&gt;
&lt;li&gt;Unsafe error handling
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;A01 — Broken Access Control&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Developers still trust user input too much and protect data too little. You’ll see users reaching admin functions, bypassing role checks, or escalating privileges. SSRF now lives here because it crosses trust boundaries.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A02 — Security Misconfiguration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Cloud, containers, and complex frameworks create endless ways to misconfigure systems: debug modes left open, unsafe headers, open buckets, or weak CORS rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A03 — Software Supply Chain Failures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Expanded beyond “Vulnerable Components.” This covers malicious packages, poisoned builds, dependency confusion, and unsafe update paths.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A04 — Cryptographic Failures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Most crypto issues come from bad implementation: outdated ciphers, hardcoded keys, weak TLS, or plaintext secrets.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A05 — Injection&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Still a core issue: SQLi, OS command injection, XSS, template injection, LDAP injection. Assume injection exists until proven otherwise.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A06 — Insecure Design&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Deep structural flaws: missing threat modeling, unsafe workflows, weak trust boundaries, and flawed business logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A07 — Authentication Failures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Modern frameworks help, but issues remain: broken session handling, missing MFA, weak password rules, and leaked tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A08 — Software or Data Integrity Failures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Covers unsafe deserialization, unverified updates, manipulated files, and missing integrity checks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A09 — Logging &amp;amp; Alerting Failures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Systems that fail to log events, never alert, or log the wrong data leave teams blind during attacks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A10 — Mishandling of Exceptional Conditions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A new category highlighting failures under stress: resource exhaustion, unexpected states, bad error handling, or fail-open behavior.&lt;/p&gt;




&lt;h2&gt;
  
  
  How OWASP Built the List
&lt;/h2&gt;

&lt;p&gt;OWASP used &lt;strong&gt;real-world testing data&lt;/strong&gt; and &lt;strong&gt;expert survey feedback&lt;/strong&gt;. Instead of counting raw vulnerabilities, they looked at whether an app had &lt;em&gt;at least one instance&lt;/em&gt; of a weakness. That paints a clearer picture of prevalence and risk. The data has came from reputated companies and community surveys.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Security Professionals
&lt;/h2&gt;

&lt;p&gt;If you test or defend applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with &lt;strong&gt;access control&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Hunt for &lt;strong&gt;misconfiguration&lt;/strong&gt; early
&lt;/li&gt;
&lt;li&gt;Treat &lt;strong&gt;supply-chain attacks&lt;/strong&gt; as routine
&lt;/li&gt;
&lt;li&gt;Encourage &lt;strong&gt;secure design&lt;/strong&gt; from day one
&lt;/li&gt;
&lt;li&gt;Verify &lt;strong&gt;crypto correctness&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Review &lt;strong&gt;logging and alerting&lt;/strong&gt; for IR readiness
&lt;/li&gt;
&lt;li&gt;Stress-test &lt;strong&gt;error paths&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This version reflects real attacks and real failures more than past editions.&lt;/p&gt;

&lt;p&gt;Got questions about these 10? Don’t worry — I got a full series coming your way, each topic explained with ease!&lt;/p&gt;

&lt;p&gt;STAY CONNECTED!!&lt;/p&gt;

</description>
      <category>owasp</category>
      <category>owasptop10</category>
      <category>security</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Blackbird: The AI-Powered OSINT Account Enumeration Tool</title>
      <dc:creator>Aditya Pidurkar</dc:creator>
      <pubDate>Fri, 10 Oct 2025 04:11:28 +0000</pubDate>
      <link>https://dev.to/adityapidurkar/blackbird-the-ai-powered-osint-account-enumeration-tool-4382</link>
      <guid>https://dev.to/adityapidurkar/blackbird-the-ai-powered-osint-account-enumeration-tool-4382</guid>
      <description>&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%2Fnhisk9ul28mm2lob8ybq.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%2Fnhisk9ul28mm2lob8ybq.png" alt="1" width="800" height="829"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About
&lt;/h2&gt;

&lt;p&gt;Blackbird is a fast and powerful Open Source Intelligence (OSINT) tool designed to search for user accounts by &lt;strong&gt;username&lt;/strong&gt; and &lt;strong&gt;email address&lt;/strong&gt; across a massive range of online platforms, often exceeding 600 sites.&lt;/p&gt;

&lt;p&gt;It distinguishes itself by including &lt;strong&gt;free AI-powered profiling&lt;/strong&gt;, which analyzes the platforms a target is found on to generate a behavioral and technical summary of the user. It ensures high-quality results by leveraging community-driven data sources like WhatsMyName.&lt;/p&gt;




&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Detail&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Github link&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/p1ngul1n0/blackbird" rel="noopener noreferrer"&gt;https://github.com/p1ngul1n0/blackbird&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Devloper&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;p1ngul1n0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;License&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open Source (Check the repository for the specific license file.)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  How to set it up
&lt;/h2&gt;

&lt;p&gt;Blackbird requires Python 3 and its dependencies.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clone the repository:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &lt;span class="o"&gt;[&lt;/span&gt;https://github.com/p1ngul1n0/blackbird]&lt;span class="o"&gt;(&lt;/span&gt;https://github.com/p1ngul1n0/blackbird&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Navigate to the directory:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;blackbird
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install the necessary dependencies:&lt;/strong&gt;&lt;br&gt;
Use &lt;code&gt;pip&lt;/code&gt; or &lt;code&gt;pip3&lt;/code&gt; depending on your system's Python configuration.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
OR
pip3 &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;The tool can be run using the Command Line Interface (CLI) or as a self-hosted Web interface.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command Line Usage&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Search by Username&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Search across platforms using a target username (e.g., &lt;code&gt;johndoe&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python blackbird.py --username johndoe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Search by Email&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Search platforms to see if an account is registered with the provided email.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python blackbird.py --email johndoe@example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Export Results (PDF)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Execute a search and save the output, including the AI analysis, as a formatted PDF report.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python blackbird.py --username johndoe --pdf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Export Results (CSV)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Export the findings into a CSV file for further data analysis.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python blackbird.py --username johndoe --csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Web Interface Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Start a local web server to use the tool with a Graphical User Interface (GUI).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python blackbird.py --web&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Access the GUI via your browser (usually&lt;/em&gt; &lt;code&gt;http://127.0.0.1:5000&lt;/code&gt;&lt;em&gt;).&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Advanced Filtering&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Use filters to limit the search to specific categories (e.g., only "social" networks).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;python blackbird.py --filter "cat=social" --username johndoe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
