Skip to content

Commit

Permalink
update listes to custom list, add readme and changelog version bump
Browse files Browse the repository at this point in the history
  • Loading branch information
HackingDave committed Jun 3, 2019
1 parent 76866af commit d4edac0
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 12 deletions.
18 changes: 18 additions & 0 deletions README.md
Expand Up @@ -57,6 +57,20 @@ use modules/exploitation/install_update_all

This will only install the exploitation modules. You can do this for any module category.

### Customize your own installed tools

You can only install the tools you want to by going to the modules/custom_list/list.py section. Modify the list.py file and add the tools you only want to install or update.

Then when in PTF:

```
./ptf
use modules/custom_list/list
yes
```

This allows you to carry your module configuration over and only install the tools that you want and keep them updated.

### Modules:

First, head over to the modules/ directory, inside of there are sub directories based on the Penetration Testing Execution Standard (PTES) phases. Go into those phases and look at the different modules. As soon as you add a new one, for example testing.py, it will automatically be imported next time you launch PTF. There are a few key components when looking at a module that must be completed.
Expand Down Expand Up @@ -101,6 +115,10 @@ You also have the ability for repository locations to specify both a 32 bit and

Note that ArchLinux packages are also supported, it needs to be specified for both DEBIAN and ARCH in order for it to be properly installed on either platform in the module

### GITLAB Support

You can create your own modules and also supports gitlab access. Instead of specify git, wget, etc., simply specify gitlab and point to your own internal gitlab tools for modules.

### BYPASS UPDATES:

When using traditional git or svn as a main method, what will happen after a module is installed is it will just go and grab the latest version of the tool. With after commands, normally when installing, you may need to run the after commands after each time you update. If you specify bypass updates to YES (`BYPASS_UPDATE="YES"`), each time the tool is run, it will check out the latest version and still run after commands. If this is marked to no, it will only git pull the latest version of the system. For `FILE` options, it is recommended to always use `BYPASS_UPDATE="YES"` so that it will overwrite the files each time.
Expand Down
File renamed without changes.
17 changes: 17 additions & 0 deletions readme/CHANGELOG
@@ -1,3 +1,20 @@
~~~~~~~~~~~~~~~~~
version 2.3
~~~~~~~~~~~~~~~~~

* added support for gitlab (pr)
* added support for custom tool installations based on modules (pr)
* added rdp scanner (pr)
* nosqlmap depend fix
* nmap depend fix
* added new tool unicorscan
* added new tool oracle assessment framework
* added SSH-Audit launcher
* added new tool Dirb
* added new tool soapui
* added new tool postman


~~~~~~~~~~~~~~~~~
version 2.2
~~~~~~~~~~~~~~~~~
Expand Down
4 changes: 2 additions & 2 deletions src/core.py
Expand Up @@ -117,7 +117,7 @@ def count_modules():
return counter

# version information
grab_version = "2.2"
grab_version = "2.3"

# banner
banner = bcolors.RED + r"""
Expand Down Expand Up @@ -156,7 +156,7 @@ def count_modules():
"""Version: %s""" % (grab_version) + bcolors.ENDC + "\n"

banner += bcolors.YELLOW + bcolors.BOLD + """ Codename: """ + \
bcolors.BLUE + """Tool Haven""" + "\n"
bcolors.BLUE + """All the Tools""" + "\n"

banner += """ """ + bcolors.ENDC + bcolors.backRed + \
"""Red Team Approved""" + bcolors.ENDC + "\n"
Expand Down
20 changes: 10 additions & 10 deletions src/framework.py
Expand Up @@ -183,7 +183,7 @@ def get_password_gitlab():
def use_module(module, all_trigger):
prompt = ("")
# if we aren't using all
if not "install_update_all" in module and not "update_installed" in module and not "__init__" in module and not "listes" in module:
if not "install_update_all" in module and not "update_installed" in module and not "__init__" in module and not "custom_list" in module:

# set terminal title
set_title("ptf - %s" % module)
Expand Down Expand Up @@ -635,7 +635,7 @@ def handle_prompt(prompt, force=False):
prompt = prompt.split(" ")

# do a quick sanity check to see if the module is there first
if "install_update_all" in prompt[1] or "listes" in prompt[1]:
if "install_update_all" in prompt[1] or "custom_list" in prompt[1]:
counter = 3
try:
if not force:
Expand All @@ -652,7 +652,7 @@ def handle_prompt(prompt, force=False):
# do auto update check first
auto_update()

if not "listes" in prompt[1]:
if not "custom_list" in prompt[1]:
modules_path = definepath() + "/" + (prompt[1])[:-18]
else:
modules_path = definepath() + "/modules/"
Expand All @@ -673,7 +673,7 @@ def handle_prompt(prompt, force=False):

for path, subdirs, files in os.walk(modules_path):
for name in files:
if "listes" in prompt[1] and name[:-3] not in open(definepath() + "/" + prompt[1] + ".py").read():
if "custom_list" in prompt[1] and name[:-3] not in open(definepath() + "/" + prompt[1] + ".py").read():
break
# join the structure
filename = os.path.join(path, name)
Expand All @@ -688,14 +688,14 @@ def handle_prompt(prompt, force=False):
ostype = profile_os()

if ostype == "DEBIAN":
if not "install_update_all" in filename_short and not "listes" in filename:
if not "install_update_all" in filename_short and not "custom_list" in filename:
from src.platforms.debian import base_install_modules
# grab all the modules we need
deb_modules = deb_modules + "," + module_parser(filename_short, "DEBIAN")

# archlinux
if ostype == "ARCHLINUX":
if not "install_update_all" in filename_short and not "listes" in filename:
if not "install_update_all" in filename_short and not "custom_list" in filename:
from src.platforms.archlinux import base_install_modules
# grab all the modules we need
arch_modules = ""
Expand All @@ -704,14 +704,14 @@ def handle_prompt(prompt, force=False):
filename_short, "ARCHLINUX")
# fedora
if ostype == "FEDORA":
if not "install_update_all" in filename_short and not "listes" in filename:
if not "install_update_all" in filename_short and not "custom_list" in filename:
from src.platforms.fedora import base_install_modules
# grab all the modules we need
fedora_modules = fedora_modules + "," + \
module_parser(filename_short, "FEDORA")
# openbsd
if ostype == "OPENSBD":
if not "install_update_all" in filename_short and not "listes" in filename:
if not "install_update_all" in filename_short and not "custom_list" in filename:
from src.platforms.openbsd import base_install_modules
# grab all the modules we need
openbsd_modules = openbsd_modules + "," + \
Expand Down Expand Up @@ -747,11 +747,11 @@ def handle_prompt(prompt, force=False):

for path, subdirs, files in os.walk(modules_path):
for name in files:
if "listes" in prompt[1] and name[:-3] not in open(definepath() + "/" + prompt[1] + ".py").read():
if "custom_list" in prompt[1] and name[:-3] not in open(definepath() + "/" + prompt[1] + ".py").read():
break
# join the structure
filename = os.path.join(path, name)
if not "__init__.py" in filename and not ignore_module(filename) and include_module(filename) and ".py" in filename and not ".pyc" in filename and not "install_update_all" in filename and not "__init__" in filename and not "listes" in filename:
if not "__init__.py" in filename and not ignore_module(filename) and include_module(filename) and ".py" in filename and not ".pyc" in filename and not "install_update_all" in filename and not "__init__" in filename and not "custom_list" in filename:
# strip un-needed files
# if not "__init__.py" in filename and not ignore_module(filename):
# shorten it up a little bit
Expand Down

0 comments on commit d4edac0

Please sign in to comment.