<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on CrippledMind's InfoSec Journal</title><link>https://crippledmind-infosec-journal.netlify.app/post/projects/</link><description>Recent content in Projects on CrippledMind's InfoSec Journal</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 09 Mar 2025 13:07:54 +0530</lastBuildDate><atom:link href="https://crippledmind-infosec-journal.netlify.app/post/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>SecureNet</title><link>https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/</link><pubDate>Sun, 16 Jun 2024 14:55:54 +0530</pubDate><guid>https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/</guid><description>&lt;h1 id="securenet-project">SecureNet Project
&lt;/h1>&lt;h2 id="overview">Overview
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/VikasShavi/SecureNet" target="_blank" rel="noopener"
>SecureNet&lt;/a> is a comprehensive network security project that leverages a Network Intrusion Detection System (NIDS) to enhance the security of networks. The project involves data preprocessing, feature selection, machine learning-based log classification, and a Streamlit dashboard for insightful visualization of key metrics.&lt;/p>
&lt;h2 id="workflow">Workflow
&lt;/h2>&lt;h3 id="1-data-collection-and-preprocessing">1. Data Collection and Preprocessing
&lt;/h3>&lt;p>The project begins with the collection of network logs, which are sent to a Kafka topic named &amp;ldquo;logs&amp;rdquo; for initial preprocessing. The first Python file handles this task, preparing the data for feature selection.&lt;/p>
&lt;h3 id="2-feature-selection-and-further-preprocessing">2. Feature Selection and Further Preprocessing
&lt;/h3>&lt;p>A second Python file retrieves the preprocessed data from the &amp;ldquo;logs&amp;rdquo; Kafka topic, performs additional preprocessing, and sends the refined data to another Kafka topic named &amp;ldquo;logsprocessed.&amp;rdquo;&lt;/p>
&lt;h3 id="3-machine-learning-based-log-classification">3. Machine Learning-Based Log Classification
&lt;/h3>&lt;p>The third Python file retrieves data from the &amp;ldquo;logsprocessed&amp;rdquo; Kafka topic. It passes the logs through a trained machine learning model to classify them into categories: Background, Normal, or Botnet. The results are then sent to the &amp;ldquo;logslabelled&amp;rdquo; Kafka topic.&lt;/p>
&lt;h3 id="4-data-storage-with-apache-pinot">4. Data Storage with Apache Pinot
&lt;/h3>&lt;p>Apache Pinot acts as a consumer, ingesting data from the &amp;ldquo;logslabelled&amp;rdquo; Kafka topic and storing it in a database. This ensures efficient storage and retrieval of labeled log data.&lt;/p>
&lt;h3 id="5-streamlit-dashboard">5. Streamlit Dashboard
&lt;/h3>&lt;p>The final component is a Streamlit dashboard that fetches data from Apache Pinot. The dashboard displays key metrics and insights derived from the labeled log data. This visualization aids in better defending against network attacks by providing a real-time overview of network security.&lt;/p>
&lt;h2 id="getting-started">Getting Started
&lt;/h2>&lt;p>To set up and run the SecurNet project, follow these steps:&lt;/p>
&lt;ul>
&lt;li>Clone the repository:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-lua" data-lang="lua">&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">git&lt;/span> &lt;span class="n">clone&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">github.com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">yourusername&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">SecurNet.git&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">cd&lt;/span> &lt;span class="n">SecurNet&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Then download the files required from here, &lt;a class="link" href="https://iitgoffice-my.sharepoint.com/:f:/g/personal/v_shavi_iitg_ac_in/EipXYnDl2_VOm3tJh03EbswBaUhZxTKsDsLQEB9q40NKrg?e=wKbOVs" target="_blank" rel="noopener"
>LINK&lt;/a> and move it to the SecureNet folder.&lt;/li>
&lt;/ul>
&lt;h2 id="model-training">Model Training
&lt;/h2>&lt;p>The preproccessing.py file cleans and makes the raw log data ready for training. It outputs prepro.csv file. This processed log data is used by MLmodeltraining.py file to train the model.&lt;/p>
&lt;ul>
&lt;li>First run the preprocessing.py file&lt;/li>
&lt;li>It will generate a csv file in folder named outprepro.&lt;/li>
&lt;li>Change the name of the csv file to prepro.csv&lt;/li>
&lt;li>Now run the MLmodeltraining.py file. This will save the model in Model folder ready to be used.&lt;/li>
&lt;/ul>
&lt;h2 id="network-intrusion-detection">Network Intrusion Detection
&lt;/h2>&lt;p>Here we will simulate log data coming in realtime. I am reading a csv file of raw log data and sending it in chunks of 10 rows to Kafka.
Flow of the log data can be seen below:
&lt;img src="https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/path.jpeg"
width="1280"
height="277"
srcset="https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/path_hubcca10d22de4111a6ec221ed211b1a02_51101_480x0_resize_q75_box.jpeg 480w, https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/path_hubcca10d22de4111a6ec221ed211b1a02_51101_1024x0_resize_q75_box.jpeg 1024w"
loading="lazy"
alt="Screenshot 2023-12-01 at 18 57 38-PhotoRoom png-PhotoRoom"
class="gallery-image"
data-flex-grow="462"
data-flex-basis="1109px"
>
Running the project, follow the steps below,
NOTE: Run all the individual commands in a separate terminal.&lt;/p>
&lt;ol>
&lt;li>Run Apache zookeeper and kafka in different terminals one after the other by following commnads:&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-lua" data-lang="lua">&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">zookeeper&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">server&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">start&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zookeeper&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zoo.cfg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">kafka&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">server&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">start&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">kafka&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">server.properties&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="2">
&lt;li>Create Kafka topics, &amp;ldquo;logs&amp;rdquo;, &amp;ldquo;logsprocessed&amp;rdquo; and logslabelled&amp;quot;&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">kafka&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">topics&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">create&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">topic&lt;/span> &lt;span class="n">logs&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">bootstrap&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">server&lt;/span> &lt;span class="n">localhost&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">9092&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">kafka&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">topics&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">create&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">topic&lt;/span> &lt;span class="n">logsprocessed&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">bootstrap&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">server&lt;/span> &lt;span class="n">localhost&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">9092&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">kafka&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">topics&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">create&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">topic&lt;/span> &lt;span class="n">logslabelled&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">bootstrap&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">server&lt;/span> &lt;span class="n">localhost&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">9092&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="3">
&lt;li>Start Apache Pinot Controller, Broker and Server&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-lua" data-lang="lua">&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">pinot&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">admin&lt;/span> &lt;span class="n">StartController&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">zkAddress&lt;/span> &lt;span class="n">localhost&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">2181&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">clusterName&lt;/span> &lt;span class="n">PinotCluster&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">controllerPort&lt;/span> &lt;span class="mi">9001&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">pinot&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">admin&lt;/span> &lt;span class="n">StartBroker&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">zkAddress&lt;/span> &lt;span class="n">localhost&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">2181&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">clusterName&lt;/span> &lt;span class="n">PinotCluster&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">brokerPort&lt;/span> &lt;span class="mi">7001&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">pinot&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">admin&lt;/span> &lt;span class="n">StartServer&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">zkAddress&lt;/span> &lt;span class="n">localhost&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">2181&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">clusterName&lt;/span> &lt;span class="n">PinotCluster&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">serverPort&lt;/span> &lt;span class="mi">8001&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">serverAdminPort&lt;/span> &lt;span class="mi">8011&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="4">
&lt;li>Send the table schema and table config to Apache Pinot.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-lua" data-lang="lua">&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">pinot&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">admin&lt;/span> &lt;span class="n">AddTable&lt;/span> &lt;span class="err">\&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">-&lt;/span>&lt;span class="n">schemaFile&lt;/span> &lt;span class="n">files_config&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">transcript_schema.json&lt;/span> &lt;span class="err">\&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">-&lt;/span>&lt;span class="n">tableConfigFile&lt;/span> &lt;span class="n">files_config&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">transcript_table_realtime.json&lt;/span> &lt;span class="err">\&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">-&lt;/span>&lt;span class="n">controllerPort&lt;/span> &lt;span class="mi">9001&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">exec&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="6">
&lt;li>
&lt;p>Start 0.py, 1.py, 2.py in three separate terminals one after the other&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Open the apache pinot dashboard to see data ingesting &amp;mdash;-&amp;gt; &lt;a class="link" href="http://localhost:9001" target="_blank" rel="noopener"
>Link&lt;/a>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Run streamlit app to see the dashboard&lt;/p>
&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-lua" data-lang="lua">&lt;span class="line">&lt;span class="cl">&lt;span class="err">❯&lt;/span> &lt;span class="n">streamlit&lt;/span> &lt;span class="n">run&lt;/span> &lt;span class="n">app.py&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="screenshot">Screenshot
&lt;/h2>&lt;p>This is how your dashboard will look like&amp;hellip;😁
&lt;img src="https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/design.png"
width="3360"
height="7296"
srcset="https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/design_hud254addf9de37335e242818218b88a91_1474565_480x0_resize_box_3.png 480w, https://crippledmind-infosec-journal.netlify.app/posts/projects/securenet/design_hud254addf9de37335e242818218b88a91_1474565_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="screenshot (6)"
class="gallery-image"
data-flex-grow="46"
data-flex-basis="110px"
>&lt;/p></description></item><item><title>RustNecCommander</title><link>https://crippledmind-infosec-journal.netlify.app/posts/projects/rustneccommander/</link><pubDate>Sun, 16 Jun 2024 14:55:54 +0530</pubDate><guid>https://crippledmind-infosec-journal.netlify.app/posts/projects/rustneccommander/</guid><description>&lt;!-- # Hey Fuck off!! -->
&lt;h1 id="basic-c2-server">Basic C2 Server
&lt;/h1>&lt;p>The Basic C2 Server is a Rust-based implementation of a basic Command and Control (C2) server that allows you to manage multiple clients, generate unique names and IDs for each client, and execute commands remotely. It periodically reads commands from a file and sends them to all connected clients, collects the output from clients, and prints it.&lt;/p>
&lt;h2 id="features">Features
&lt;/h2>&lt;ul>
&lt;li>Asynchronous handling of multiple client connections.&lt;/li>
&lt;li>Unique name and ID generation for each client.&lt;/li>
&lt;li>Periodic command execution given the commands in a file and output collection from all connected clients.&lt;/li>
&lt;/ul>
&lt;h1 id="intermediate-c2-server">Intermediate C2 Server
&lt;/h1>&lt;p>The Intermediate C2 Server is a command-line tool implemented in Rust that provides a comprehensive set of features for managing multiple clients, including starting the server, listing connected clients, stopping the manager, and interacting with specific clients.&lt;/p>
&lt;h2 id="features-1">Features
&lt;/h2>&lt;ul>
&lt;li>Start the server on port 8080, with each client connection handled in a separate background thread.&lt;/li>
&lt;li>List all connected clients using a HashMap that maps unique names to client IP addresses and TcpStreams.&lt;/li>
&lt;li>Stop the server manager gracefully.&lt;/li>
&lt;li>Interact with specific clients by sending custom commands and receiving output in real-time.&lt;/li>
&lt;/ul>
&lt;h3 id="screenshots">Screenshots
&lt;/h3>&lt;img width="1031" alt="image" src="https://github.com/VikasShavi/RustNetCommander/assets/83757578/3ce251cd-e21d-48e9-aa9e-c3ee7dfb0cb7"></description></item><item><title>Kerberos auth with GSSAPI for Mac</title><link>https://crippledmind-infosec-journal.netlify.app/posts/projects/gssapiformac/</link><pubDate>Sun, 09 Mar 2025 13:07:54 +0530</pubDate><guid>https://crippledmind-infosec-journal.netlify.app/posts/projects/gssapiformac/</guid><description>&lt;h2 id="fix-macos-dynamically-detect-homebrew-installed-gssapi-library">Fix macOS: Dynamically Detect Homebrew-installed GSSAPI Library
&lt;/h2>&lt;h3 id="problem">Problem:
&lt;/h3>&lt;p>On macOS, the GSSAPI library path is hardcoded as &lt;code>/usr/lib/libgssapi_krb5.dylib&lt;/code>. However, when installed via Homebrew, the library is located in &lt;code>/opt/homebrew/lib/libgssapi_krb5.dylib&lt;/code> (or &lt;code>/usr/local/lib/...&lt;/code> for Intel Macs).&lt;/p>
&lt;p>This causes &lt;code>ffi_lib&lt;/code> to fail unless the user manually modifies the path.&lt;/p>
&lt;p>&lt;img src="https://crippledmind-infosec-journal.netlify.app/posts/projects/gssapiformac/proof.png"
width="1258"
height="619"
srcset="https://crippledmind-infosec-journal.netlify.app/posts/projects/gssapiformac/proof_hu988d37e25538fcf7dfb5eb55560ef433_126608_480x0_resize_box_3.png 480w, https://crippledmind-infosec-journal.netlify.app/posts/projects/gssapiformac/proof_hu988d37e25538fcf7dfb5eb55560ef433_126608_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Error message"
class="gallery-image"
data-flex-grow="203"
data-flex-basis="487px"
>&lt;/p>
&lt;h3 id="solution">Solution:
&lt;/h3>&lt;ul>
&lt;li>Used &lt;code>File.exist?&lt;/code> to check if the Homebrew-installed library exists.&lt;/li>
&lt;li>If found, used &lt;code>brew --prefix&lt;/code> to dynamically get the correct path.&lt;/li>
&lt;li>Falls back to &lt;code>/usr/lib/libgssapi_krb5.dylib&lt;/code> if Homebrew is not installed.&lt;/li>
&lt;/ul>
&lt;h3 id="code-changes">Code Changes:
&lt;/h3>&lt;p>Updated &lt;code>lib_gssapi_loader.rb&lt;/code> to:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-ruby" data-lang="ruby">&lt;span class="line">&lt;span class="cl">&lt;span class="k">when&lt;/span> &lt;span class="sr">/darwin/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">brew_prefix&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sb">`brew --prefix`&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strip&lt;/span> &lt;span class="k">rescue&lt;/span> &lt;span class="kp">nil&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">gssapi_lib&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="n">brew_prefix&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="o">!&lt;/span>&lt;span class="n">brew_prefix&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">empty?&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">#{&lt;/span>&lt;span class="n">brew_prefix&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/lib/libgssapi_krb5.dylib&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;/usr/lib/libgssapi_krb5.dylib&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">end&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ffi_lib&lt;/span> &lt;span class="n">gssapi_lib&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="no">FFI&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">Library&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="no">LIBC&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>AdvKeylogger</title><link>https://crippledmind-infosec-journal.netlify.app/posts/projects/advkelogger/</link><pubDate>Mon, 17 Jun 2024 10:13:34 +0530</pubDate><guid>https://crippledmind-infosec-journal.netlify.app/posts/projects/advkelogger/</guid><description>&lt;h1 id="keylogger">Keylogger
&lt;/h1>&lt;p>#Key Features:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>It records keys to a temporary string, encrypts them and saves them to file named TestData.txt in &amp;ldquo;MyDocuments&amp;rdquo; folder.&lt;/p>
&lt;pre>&lt;code> You can specify custom folder by setting folder variable.
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>After some time, the file is decrypted to a new file named &amp;ldquo;new.text&amp;rdquo;, then it is sent to the discord server and then the file is deleted permanently.&lt;/p>
&lt;pre>&lt;code> To change time of decrypting, change the if condition shown below in range of 3000-4000, which is about every 5 minutes.
&lt;/code>&lt;/pre>
&lt;img width="708" alt="Screenshot 2022-07-06 at 23 59 40" src="https://user-images.githubusercontent.com/83757578/177618561-84d3c056-9697-425c-894b-66f1b9ea0e69.png">
&lt;/li>
&lt;li>
&lt;p>Before running make sure to use your Discord webhook link in &amp;ldquo;discordHoo&amp;rdquo; variable.&lt;/p>
&lt;img width="600" alt="Screenshot 2022-07-07 at 00 03 00" src="https://user-images.githubusercontent.com/83757578/177619106-d2228084-cec6-4603-b381-20778f0c183c.png">&lt;/li>
&lt;/ol></description></item></channel></rss>