diff --git a/etc/checksum/md5sum.md5 b/etc/checksum/md5sum.md5 index 646e4ee..dd5ce3e 100644 --- a/etc/checksum/md5sum.md5 +++ b/etc/checksum/md5sum.md5 @@ -1,4 +1,4 @@ -e46c781638861a5651a51a5a71f5d997 ./zeus.py +685a20fa3fc7652b5c3e39821cdc6f25 ./zeus.py 4b32db388e8acda35570c734d27c950c ./etc/scripts/launch_sqlmap.sh 6ad5f22ec4a6f8324bfb1b01ab6d51ec ./etc/scripts/cleanup.sh 869025acb457dc881e53e440aa11dd7b ./etc/scripts/reinstall.sh @@ -105,10 +105,10 @@ c5b69617f040fef1d5930948905aa8d0 ./lib/attacks/whois_lookup/whois.py 0114ebe3d45612ef143f2777f027374c ./lib/header_check/__init__.py 2a8acb2191d80da75f0e4d09c00df9f6 ./lib/core/common.py de4254c5e40f7aa4fb81e0608f758a2c ./lib/core/decorators.py -4433353fb5c55578391d8b4006191ee8 ./lib/core/errors.py +3f045c64ef155a517b7a3f3b66905325 ./lib/core/errors.py d41d8cd98f00b204e9800998ecf8427e ./lib/core/__init__.py -993a8df2025cfed6c0fa96cc1107f76b ./lib/core/settings.py -1db34403d9eed871a5c39baab6fe1efd ./lib/core/parse.py +445f23739acd35a11a38cb1688699741 ./lib/core/settings.py +278847c51cdf7b4690c9ea6eb21e3d2b ./lib/core/parse.py d41d8cd98f00b204e9800998ecf8427e ./var/__init__.py d41d8cd98f00b204e9800998ecf8427e ./var/auto_issue/__init__.py c58e73857e42a07fa6eb559433b32c1a ./var/auto_issue/github.py diff --git a/lib/core/errors.py b/lib/core/errors.py index a6957ad..5adf1a2 100644 --- a/lib/core/errors.py +++ b/lib/core/errors.py @@ -19,4 +19,7 @@ class InvalidInputProvided(Exception): pass class InvalidTamperProvided(Exception): pass -class PortScanTimeOutException(Exception): pass \ No newline at end of file +class PortScanTimeOutException(Exception): pass + + +class ZeusArgumentException(Exception): pass \ No newline at end of file diff --git a/lib/core/parse.py b/lib/core/parse.py index c8c8fe3..88a8298 100644 --- a/lib/core/parse.py +++ b/lib/core/parse.py @@ -1,3 +1,4 @@ +import sys from optparse import ( OptionParser, OptionGroup, @@ -6,6 +7,7 @@ from optparse import ( import lib.core.settings import lib.core.common +import lib.core.errors import lib.attacks.nmap_scan.nmap_opts import lib.attacks.sqlmap_scan.sqlmap_opts @@ -269,3 +271,23 @@ class ZeusParser(OptionParser): )) lib.core.settings.update_zeus() lib.core.common.shutdown() + + @staticmethod + def verify_args(args=sys.argv): + not_implemented_args = ( + "-T", "--x-threads", "--force-ssl", "--thread", + "-g", "--github-search", "-u", "--url" + ) + # check if any of the arguments are not implemented that have been passed + # via the command line + for arg in args: + for nia in not_implemented_args: + if arg == nia: + raise lib.core.errors.ZeusArgumentException( + "\n\nit appears that one of the arguments you have passed ('{}'), " + "has not been implemented into Zeus production yet. This usually means " + "that the option is still in testing and is not ready for use. Arguments " + "that are still in testing are: {}\n".format( + nia, ", ".join(["'{}'".format(a) for a in not_implemented_args]) + ) + ) \ No newline at end of file diff --git a/lib/core/settings.py b/lib/core/settings.py index a89254c..6a8accb 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -44,7 +44,7 @@ CLONE = "https://github.com/ekultek/zeus-scanner.git" ISSUE_LINK = "https://github.com/ekultek/zeus-scanner/issues" # current version -VERSION = "1.5".format(PATCH_ID) +VERSION = "1.5.1".format(PATCH_ID) # colors to output depending on the version VERSION_TYPE_COLORS = {"dev": 33, "stable": 92, "other": 30} diff --git a/zeus.py b/zeus.py index 8cc57c4..4688173 100755 --- a/zeus.py +++ b/zeus.py @@ -15,7 +15,8 @@ from lib.header_check import main_header_check from lib.core.parse import ZeusParser from lib.core.errors import ( InvalidInputProvided, - InvalidProxyType + InvalidProxyType, + ZeusArgumentException ) from lib.core.common import ( start_up, @@ -53,6 +54,10 @@ if __name__ == "__main__": ZeusParser().single_show_args(opt) + # verify all the arguments passed before we continue + # with the process + ZeusParser().verify_args() + # run the setup on the program setup(verbose=opt.runInVerbose) @@ -378,6 +383,8 @@ if __name__ == "__main__": "do not interrupt the browser when selenium is running, " "it will cause Zeus to crash", level=30 )) + except ZeusArgumentException: + shutdown() except Exception as e: if "url did not match a true url" in str(e).lower(): logger.error(set_color(