Leprechaun : Tool Used To Map Out Network Data Flow To Help Penetration Testers

Leprechaun purpose of this tool is to help penetration testers identify potentially valuable targets on the internal network environment. By aggregating netstat routes from multiple hosts, you can easily figure out what’s going on within.

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

You’ll need a few Ruby gems to get started – if you don’t have them already, that is.

gem install ‘securerandom’
gem install ‘terminal-table’
gem install ‘getopt’

Lastly, make sure you have Graphviz installed. You can install that with the following command:

apt install graphviz -y

Also Read – Evil-Winrm : The Ultimate WinRM Shell For Hacking/Pentesting

Tool Help Menu

If you run the script without any arguments, you’ll see the following help menu:

[root:vonahisec-kali:~/scripts/leprechaun]# ./leprechaun.rb

————————————————————————————————-
Leprechaun v1.0 – Alton Johnson (@altonjx)
————————————————————————————————-

Usage: ./leprechaun.rb -f /path/to/netstat_results.txt -p

-f File containing the output of netstat results
-p Port you’re interested in. e.g., 80. Specify “all”, “common”, or separate ports with commas
-e The type of destination IP addresses you want to see connections to (e.g. external/internal/all)

Example: ./leprechaun.rb -f netstat_output.txt -p 80
Example: ./leprechaun.rb -f netstat_output.txt -p all
Example: ./leprechaun.rb -f netstat_output.txt -p common
Example: ./leprechaun.rb -f netstat_output.txt -p 80,443 -t external

Example Outputs

+--------------+-----------------------------+----------------------------+
| Server       | Number of connected clients | Highest traffic destination port |
+--------------+-----------------------------+----------------------------+
| 192.12.70.71 | 4                           | 80/tcp (4 clients)               |
| 192.12.70.18 | 2                           | 443/tcp (2 clients)              |
| 192.12.70.45 | 1                           | 445/tcp (1 clients)              |
+--------------+-----------------------------+----------------------------+

Credit: Alton Johnson

R K

Recent Posts

git fetch vs git pull: How They Work and When to Use Each

Both git fetch and git pull talk to a remote repository, but they do very different things to your…

15 hours ago

git cherry-pick Command: Apply Commits from Another Branch

Sometimes the change you need already exists, just on the wrong branch. A hotfix lands…

15 hours ago

Best Email APIs for Secure Business Email: Why Developers Are Moving Beyond SMTP

Email is still one of the most important communication channels inside modern applications. Password resets,…

2 days ago

Nginx Commands in Linux: Start, Stop, Reload, Test, and Log

Nginx is a high-performance web server and reverse proxy trusted by some of the largest…

4 days ago

ufw Command in Linux: Manage Firewall Rules with Examples

ufw (Uncomplicated Firewall) sits on top of iptables (or nftables on newer systems) and replaces…

4 days ago

who Command in Linux: Show All Logged-In Users and Sessions

When you share a server with a team or investigate unexpected activity, the first question…

4 days ago