The best penetration testing and tech tools unified into one beatiful command line interface!
·
Report Bug
·
Request Feature
Table of Contents
TropX is a command line application to run penetration testing scripts. It aims to more efficiently run long processes and tedious tasks by allowing the creation of custom scripts in the CLI that can be run whenever. To make scripting even easier, there are premade functions and variables for bash and python to be used to simplify the process. TropX also allows for maximum customization and optimization by providing a settings menu controlled trough the CLI. This project is free and opensource so all funding originates from donations.
Vote on the next feature to be implemented into TropX.
- This feature is not setup yet
Learn how to install, setup, and update Tropx.
A local copy of TropX can be obtained using the git clone
command.
- Navigate to your terminal (e.g. Terminator)
- Navigate to the directory you want TropX saved
- Clone the repository using the
git clone
commandgit clone https://github.com/troopek/TropX
- Navigate to the TropX folder
cd TropX
The setup is automatically done after running the setup.sh
file. The installation time may vary according to some variables.
- Run the
setup.sh
file with bash and follow along with the setup tutorialbash setup.sh
To run TropX, you will have to run the main.sh
file.
- Navigate to the TropX folder
cd TropX
- Run the
main.sh
file with bashbash main.sh
You can update TropX to the newest version without losing any custom scripts and while also preserving your settings and other modified things. You can do this automatically trough TropX.
- Start up TropX
- Select
Check for Updates
in the main menu - If a newer version is available, you will be promted to install it
Learn how to use TropX efficiently and to it's fullest.
- Start up TropX
- You will be prompted to select out of an ample of scripts
- To select any script, you will have to input its corresponding number like
4
and then pressEnter
- All tools and scripts will send you back to the main menu after executing
- This same navigation also applies to navigation within scripts.
- To return to the menu you can use
CTRL
+C
Find out what to do first after Starting up TropX
Currently available tools offered by tropx by default.
System Management
├── Manage Mac & IP
└── Manage Wireless Interface
Wireless Exploits
└── Wifi Cracking
Physical Exploits
Client Side Attacks
Server Side Attacks
Social Engineering
- Configure your wireless Interface in the settings tab
TropX has a settings page that allows you do customize TropX to the rim
- List of available Settings
- Wireless Interface : (wlan0) | wlan1 | mon0 | mon1
- Animations : ON | MINIMAL | (OFF)
- Default Scripts : (SHOW) | HIDE
- Breadcrumbs : (ON) | OFF
- Primary Color : (WHITE) | RED | BLUE | GREEN | CYAN | PINK | YELLOW | GRAY
- Secondary Color : (RED) | WHITE | BLUE | GREEN | CYAN | PINK | YELLOW | GRAY
- Text Folding : ON | (OFF)
- Developer Mode : (ON) | OFF
Here are some screenshots of how TropX looks like
Here are all the tools TropX offers by default
- Manage Wireless Interface
- Manage Mac Address
You can very easily add Custom Scripts to TropX to further personalize the CLI, it supports both bash and python. Additionally you can clone a tool from github also.
TropX has some default functions and variables to simplify the programming pillar of custom scripts.
- Create custom files for your tool to use
- To add custom files into your tools file tree navigate into the TropX folder and go to the
custom_scripts
folder, in here you can find your tool's folder and add any file youw ant to. - To acces these files within the file tree you will have to prefix them with the following directory
$folder
for it to look like such:"$folder/wordlist.txt"
- It is neccesarry to wrap it in double qoutes
- replace
worldist.txt
with the file you wish to access $folder
is a built in variable that holds the folder of the current script
- To add custom files into your tools file tree navigate into the TropX folder and go to the
- Install Packages more simply and reliably without causing errors and messing up the script
installPackages "python3" "network-manager" "macchanger"
- All packages listed after the
installPackages
command will be installed automatically. - If they already are installed nothing will happen.
- The function accepts an infinite amount of packages.
- All packages listed after the
-
With
selectOptions
you can ask the user to select an option, the CLI equivalent of good navigation.selectOptions "Options" "Select Desired Option" "Select a Valid Option" "Option1" "Option2" "Option3"
"Options"
is the title for the option choices"Enter selection Here" "Try another selection"
These two are thetype here
text before the>
, the second will be shown in case of an error."Option1" "Option2" "Option3"
The rest are options which will be shown to the user, they can be passed singularly or in an Array- The ouput can be saved into a variable like so, where
choice
is the number corresponding to the option, so if you chooseOption2
, then$SO
and alsochoice
will be set to2
. This extra step is recommended as sometimes the variable gets overwritten by this function getting run somewhere else and then its value will change to something completely diffrent and irrelevant.choice=$SO
- The function has a built-in check for the selected option to confirm it's validity.
-
With
getInput
you can get user input to save into a variable and use within your custom scriptgetInput "File Name" "Type a file name" "file.txt"
-
"File Name"
is the title for the get input function -
"Type a file name"
is going to be the action they are to perform or write -
"file.txt"
is an example of what their input should look likeinput=$SI
-
The ouput can be saved into a variable like so, where input is the text inputted, so if you typed in
foo
, then$SI
and alsoinput
will be set tofoo
. This extra step is recommended as sometimes the variable gets overwritten by this function getting run somewhere else and then its value will change to something completely diffrent and irrelevant. -
In the below example im using getInput to obtain a valid path to a file
-
To ensure that your user returns a proper and useful string, you can run it trough an until loop
getInput "File Path" "Please type in the relative or full path of the script" "Do not incldue a file extension" "file.txt" path=$SI until [ -f $path ] #this is a bash built-in way to check if a file exists do getInput error "File Path" "Please type in the relative or full path of the script" "Do not incldue a file extension" "file.txt" path=$SI done
-
First I just
getInput
normally from the user -
Here I run an
until
loop which checks if the path exists, if it does nothing happens, otherwise it will loop until the expression is true. -
Make sure to pass
error
as the first argument in the getInput function and keep the rest as is
-
-
With the
message
function you can display a message to the user that waits until they press a key on their keyboard.Message="TropX is cool!" message "Disclaimer" "$Message"
"Disclaimer"
is the title for the message"$Message"
is the variable in which the message is stored
-
With the
attackPending
function you inform the user with a message that the script/tool is in progress.attackPending
- With the
changeWImode
function, you can easily change the mode of your Wireless InterfacechangeWImode monitor # ... changeWImode managed
- The only argument passed will be the mode you want to change the Wireless Interface to
- The Wireless Interface used will be the one the user has saved in the settings page
- With the
changeMac
function, you can easily change your Mac Address to either a random or specific onechangeMac # ... changeMac "00:d0:70:00:20:69" # ... changeMac reset
- If no argument is passed, a random Mac Address will be choosen to replace your current
- Optionally, you can specify what you want your Mac Address to be
reset
will set your Wireless Interface back to it's default permanent Mac Address- The Wireless Interface used will be the one the user has saved in the settings
- With the
changeIP
function, you can easily manage your IP AddresschangeIP # ... changeIP "132.52.98.1629" # ... changeIP reset
- If no argument is passed, a random IP Address will be choosen to replace your current
- Optionally, you can specify what you want your IP Address to be
reset
will set the IP back to its default- The Wireless Interface used will be the one the user has saved in the settings
- The
WI
variable holds the name of the Wireless Interface (e.g.wlan0
) - This is obtained from the user's settings and changed in the settings page also
- The
DI
variable holds the name of the Default Interface (e.g.eth0
), this is to be used when setting localports, etc - This is obtained from the user's settings and changed in the settings page also
- The
IP
variable holds the ip of the primary Wireless Interface - This is obtained automatically
- The
$PRIMARY
variable holds the color code for the primary (no shit) color - The
$SECONDARY
variable holds the color code for the secondary (no shit again) color - Make sure to escape it like such
echo -e "${PRIMARY}Hello ${SECONDARY}World!"
- Even though it is not neccesary to use these variables, it is highly recommended so your script stays in sync with the user's settings
Sadly this language does not have any premade functions or variables yet!
The custom script creation process.
- To create a new Custom Script, firstly start up TropX (No Shit)
- Afterwards, select
M
to Manage Scripts - Choose the first option
1
to create a new script - Type in the script name and continue
- Select the script language or github
- Select the way in which you want to provide TropX with the script and confirm
TropX is still looking for more tools and scripts!
- If you believe that you made a decent tool or script that you would like featured as a default, make sure to share it with us
- Firstly, head on over to the TropX directory in your file manager
- Then, head on over to the
custom_scripts
folder - When there, locate the folder of the custom script you wish to upload
- Copy the
main.sh
file - Upload it to this Google Form
View our Trello Roadmap: Trello TropX
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the Apache 2.0 License. See LICENSE.txt
for more information.
Project Link: https://github.com/troopek/TropX
Big shoutout to all these people as their scripts helped make TropX possible, make sure to check them out!
- Netattack2 by Chrizater
- WifiSpammer by 125k
- Ducky Flasher by Hak5
TropX is a free tool, and the only source of income generated by it is trough your donations.
- Kali Linux
- Ubuntu
- Kali Nethunter
- Parrot OS
- Is troopek cool?
- Yes
- Does it have bugs?
- Absolutely not okay maybe some
I am not held responsible for any misdeeds done with the help of this tool, I provide it to you for educational purposes only. By using this tool you accept that I am not held responsible for any consequences your usage of my tool might yield.