diff options
| -rw-r--r-- | __init__.py | 4 | ||||
| -rw-r--r-- | pyproject.toml | 2 | ||||
| -rwxr-xr-x | sploit.py | 2 | ||||
| -rw-r--r-- | sploit/__init__.py | 16 | ||||
| -rw-r--r--[l---------] | sploit/__main__.py | 78 | ||||
| -rw-r--r-- | sploit/builder/__init__.py | 5 | ||||
| -rw-r--r-- | sploit/comm/__init__.py | 1 | ||||
| -rw-r--r-- | sploit/comm/comm.py (renamed from sploit/comm.py) | 2 | ||||
| -rw-r--r-- | sploit/main.py | 65 | ||||
| -rw-r--r-- | sploit/payload/__init__.py | 3 | ||||
| -rw-r--r-- | sploit/payload/gadhint.py (renamed from sploit/builder/gadhint.py) | 0 | ||||
| -rw-r--r-- | sploit/payload/payload.py (renamed from sploit/builder/payload.py) | 0 | ||||
| -rw-r--r-- | sploit/payload/rop.py (renamed from sploit/builder/rop.py) | 4 | ||||
| -rw-r--r-- | sploit/rev/__init__.py | 10 | ||||
| -rw-r--r-- | sploit/rev/ldd.py | 4 | ||||
| -rw-r--r-- | sploit/rev/r2.py | 4 | ||||
| -rw-r--r-- | sploit/util/__init__.py | 2 | ||||
| -rw-r--r-- | sploit/util/cmd.py (renamed from sploit/util.py) | 0 | ||||
| -rw-r--r-- | sploit/util/log.py (renamed from sploit/log.py) | 0 | 
19 files changed, 101 insertions, 101 deletions
| diff --git a/__init__.py b/__init__.py deleted file mode 100644 index 8a53886..0000000 --- a/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from os.path import join, dirname -libpath=join(dirname(__file__),"sploit") -__path__ = [libpath] -exec(open(join(libpath,"__init__.py")).read()) diff --git a/pyproject.toml b/pyproject.toml index 041ee3f..5ac11e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ dynamic = ["version"]  "Homepage" = "https://github.com/dusoleil/sploit"  [project.scripts] -sploit = "sploit.main:main" +sploit = "sploit.__main__:main"  [build-system]  requires = ["hatchling"] @@ -1,3 +1,3 @@  #!/usr/bin/env python3 -from sploit.main import main +from sploit.__main__ import main  main() diff --git a/sploit/__init__.py b/sploit/__init__.py index 1eb570c..dc5943f 100644 --- a/sploit/__init__.py +++ b/sploit/__init__.py @@ -1,12 +1,6 @@ -from sploit import ( -        arch, -        builder, -        comm, -        log, -        rev, -        symtbl, -        until, -        util, -) +from sploit.arch import * +from sploit.symtbl import * +from sploit.until import * -__version__ = util.git_version() +from sploit.util import git_version as __git_version +__version__ = __git_version() diff --git a/sploit/__main__.py b/sploit/__main__.py index 98537fc..5d53ca6 120000..100644 --- a/sploit/__main__.py +++ b/sploit/__main__.py @@ -1 +1,77 @@ -../sploit.py
\ No newline at end of file +from argparse import ArgumentParser, REMAINDER +import gc +from os.path import isdir +import tempfile +import traceback + +from sploit.comm.comm import * +from sploit.util.log import * +from sploit import __version__ + +def print_banner(color, line1=__version__, line2='', line3=''): +    ilog() +    ilog(' ░▒█▀▀▀█░▒█▀▀█░▒█░░░░▒█▀▀▀█░▀█▀░▀▀█▀▀    ', end='', color=ALT) +    ilog(line1, color=ALT) +    ilog(' ░░▀▀▀▄▄░▒█▄▄█░▒█░░░░▒█░░▒█░▒█░░░▒█░░    ', end='', color=color) +    ilog(line2, color=ALT) +    ilog(' ░▒█▄▄▄█░▒█░░░░▒█▄▄█░▒█▄▄▄█░▄█▄░░▒█░░    ', end='', color=ALT) +    ilog(line3, color=ALT) +    ilog() + +def main(): +    parser = ArgumentParser(description='Execute Sploit script against target') +    parser.add_argument('script', help='Exploit script to run') +    parser.add_argument('target', nargs=REMAINDER, help='Target cmdline or pipes directory') +    args = parser.parse_args() + +    if len(args.target) == 0: +        with tempfile.TemporaryDirectory() as tmpdir: +            pipe(args.script, tmpdir) +    elif len(args.target) == 1 and isdir(args.target[0]): +        pipe(args.script, args.target[0]) +    else: +        target(args.script, args.target) + +def pipe(script, tmpdir): +    print_banner(ERROR, line3='Pipe Mode') +    while True: +        try: +            p = Pipes(tmpdir) +        except KeyboardInterrupt: +            break +        runscript(script, Comm(p)) +        del p + +def target(script, target): +    print_banner(STATUS, line3='Subprocess Mode') +    runscript(script, Comm(Process(target))) + +def user_scope(comm): +    import sploit as lib +    scope = { name: getattr(lib, name) for name in dir(lib) } +    scope['__version__'] = __version__ +    scope['print'] = elog +    scope['io'] = comm +    return scope + +def runscript(script, comm): +    try: +        ilog("Running Script...") +        code = compile(open(script).read(), script, 'exec') +        exec(code, user_scope(comm)) +        ilog("Script Finished!") +        return +    except KeyboardInterrupt: +        pass +    except: +        ilog(traceback.format_exc(), end='', color=ERROR) +    finally: +        comm.shutdown() +        comm.readall() +        gc.collect() + +    ilog("Script Ended Early!", color=WARNING) + + +if __name__ == "__main__": +    main() diff --git a/sploit/builder/__init__.py b/sploit/builder/__init__.py deleted file mode 100644 index 758d511..0000000 --- a/sploit/builder/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from . import ( -        gadhint, -        payload, -        rop, -) diff --git a/sploit/comm/__init__.py b/sploit/comm/__init__.py new file mode 100644 index 0000000..ffbc402 --- /dev/null +++ b/sploit/comm/__init__.py @@ -0,0 +1 @@ +from .comm import * diff --git a/sploit/comm.py b/sploit/comm/comm.py index 522d540..3bc448e 100644 --- a/sploit/comm.py +++ b/sploit/comm/comm.py @@ -4,8 +4,8 @@ import os  import sys  import select -from sploit.log import *  from sploit.until import bind +from sploit.util.log import *  class Comm:      logonread = True diff --git a/sploit/main.py b/sploit/main.py deleted file mode 100644 index 6d71196..0000000 --- a/sploit/main.py +++ /dev/null @@ -1,65 +0,0 @@ -from argparse import ArgumentParser, REMAINDER -import gc -from os.path import isdir -import tempfile -import traceback - -from sploit.comm import * -from sploit.log import * -from sploit import __version__ - -def print_banner(color, line1=__version__, line2='', line3=''): -    ilog() -    ilog(' ░▒█▀▀▀█░▒█▀▀█░▒█░░░░▒█▀▀▀█░▀█▀░▀▀█▀▀    ', end='', color=ALT) -    ilog(line1, color=ALT) -    ilog(' ░░▀▀▀▄▄░▒█▄▄█░▒█░░░░▒█░░▒█░▒█░░░▒█░░    ', end='', color=color) -    ilog(line2, color=ALT) -    ilog(' ░▒█▄▄▄█░▒█░░░░▒█▄▄█░▒█▄▄▄█░▄█▄░░▒█░░    ', end='', color=ALT) -    ilog(line3, color=ALT) -    ilog() - -def main(): -    parser = ArgumentParser(description='Execute Sploit script against target') -    parser.add_argument('script', help='Exploit script to run') -    parser.add_argument('target', nargs=REMAINDER, help='Target cmdline or pipes directory') -    args = parser.parse_args() - -    if len(args.target) == 0: -        with tempfile.TemporaryDirectory() as tmpdir: -            pipe(args.script, tmpdir) -    elif len(args.target) == 1 and isdir(args.target[0]): -        pipe(args.script, args.target[0]) -    else: -        target(args.script, args.target) - -def pipe(script, tmpdir): -    print_banner(ERROR, line3='Pipe Mode') -    while True: -        try: -            p = Pipes(tmpdir) -        except KeyboardInterrupt: -            break -        runscript(script, Comm(p)) -        del p - -def target(script, target): -    print_banner(STATUS, line3='Subprocess Mode') -    runscript(script, Comm(Process(target))) - -def runscript(script, comm): -    try: -        ilog("Running Script...") -        code = compile(open(script).read(), script, 'exec') -        exec(code, {'io': comm, 'print': elog}) -        ilog("Script Finished!") -        return -    except KeyboardInterrupt: -        pass -    except: -        ilog(traceback.format_exc(), end='', color=ERROR) -    finally: -        comm.shutdown() -        comm.readall() -        gc.collect() - -    ilog("Script Ended Early!", color=WARNING) diff --git a/sploit/payload/__init__.py b/sploit/payload/__init__.py new file mode 100644 index 0000000..78769b4 --- /dev/null +++ b/sploit/payload/__init__.py @@ -0,0 +1,3 @@ +from .gadhint import * +from .payload import * +from .rop import * diff --git a/sploit/builder/gadhint.py b/sploit/payload/gadhint.py index 9b077fe..9b077fe 100644 --- a/sploit/builder/gadhint.py +++ b/sploit/payload/gadhint.py diff --git a/sploit/builder/payload.py b/sploit/payload/payload.py index cf105c6..cf105c6 100644 --- a/sploit/builder/payload.py +++ b/sploit/payload/payload.py diff --git a/sploit/builder/rop.py b/sploit/payload/rop.py index 7b58e0e..54226b4 100644 --- a/sploit/builder/rop.py +++ b/sploit/payload/rop.py @@ -25,8 +25,8 @@ supported.  from graphlib import TopologicalSorter  from sploit.arch import arch, btoi, itob -from sploit.builder.gadhint import GadHint -from sploit.builder.payload import Payload +from sploit.payload.gadhint import GadHint +from sploit.payload.payload import Payload  class ROP(Payload):      """ diff --git a/sploit/rev/__init__.py b/sploit/rev/__init__.py index 0d0dc9b..42e2f5b 100644 --- a/sploit/rev/__init__.py +++ b/sploit/rev/__init__.py @@ -1,6 +1,4 @@ -from . import ( -        elf, -        gadget, -        ldd, -        r2, -) +from .elf import * +from .gadget import * +from .ldd import * +from .r2 import * diff --git a/sploit/rev/ldd.py b/sploit/rev/ldd.py index 1a28c7c..b773abf 100644 --- a/sploit/rev/ldd.py +++ b/sploit/rev/ldd.py @@ -1,5 +1,5 @@ -from sploit.util import run_cmd_cached -from sploit.log import ilog +from sploit.util.cmd import run_cmd_cached +from sploit.util.log import ilog  import re  from collections import namedtuple as nt diff --git a/sploit/rev/r2.py b/sploit/rev/r2.py index 1be731c..e81adc9 100644 --- a/sploit/rev/r2.py +++ b/sploit/rev/r2.py @@ -1,8 +1,8 @@  from sploit.arch import arch -from sploit.log import ilog  from sploit.rev.gadget import Gadget  from sploit.symtbl import Symtbl -from sploit.util import run_cmd_cached +from sploit.util.cmd import run_cmd_cached +from sploit.util.log import ilog  from collections import namedtuple as nt  from functools import cache diff --git a/sploit/util/__init__.py b/sploit/util/__init__.py new file mode 100644 index 0000000..32a079b --- /dev/null +++ b/sploit/util/__init__.py @@ -0,0 +1,2 @@ +from .cmd import * +from .log import * diff --git a/sploit/util.py b/sploit/util/cmd.py index 3a2b842..3a2b842 100644 --- a/sploit/util.py +++ b/sploit/util/cmd.py diff --git a/sploit/log.py b/sploit/util/log.py index 823b252..823b252 100644 --- a/sploit/log.py +++ b/sploit/util/log.py | 
