created a way to make sure the arguments that you pass are implemented into Zeus production and are not still in the testing phase

This commit is contained in:
ekultek 2018-02-07 11:55:38 -06:00
parent 69a9305e11
commit 6cecf4f6d1
5 changed files with 39 additions and 7 deletions

View file

@ -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

View file

@ -19,4 +19,7 @@ class InvalidInputProvided(Exception): pass
class InvalidTamperProvided(Exception): pass
class PortScanTimeOutException(Exception): pass
class PortScanTimeOutException(Exception): pass
class ZeusArgumentException(Exception): pass

View file

@ -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])
)
)

View file

@ -44,7 +44,7 @@ CLONE = "https://github.com/ekultek/zeus-scanner.git"
ISSUE_LINK = "https://github.com/ekultek/zeus-scanner/issues"
# current version <major.minor.commit.patch ID>
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}

View file

@ -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(