Exemple #1
0
def main(argv=None):
    parser = argparse.ArgumentParser(
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument('-l',
                        '--loglevel',
                        choices=('DEBUG', 'INFO', 'WARN', 'ERROR'),
                        default='INFO',
                        help='Show only messages of at least this level')
    parser.add_argument(
        '--bright',
        action='store_true',
        help='Use colors corresponding to a bright background (if available)')
    parser.add_argument('-p', '--port', type=int, help='Server port')
    parser.add_argument('-i', '--ip', help='Server IP')
    parser.add_argument('-I',
                        '--intf',
                        default='lo',
                        help='Interface to sniff/intercept')
    parser.add_argument('-m',
                        '--method',
                        default='GET',
                        help='HTTP Method to use')
    parser.add_argument('-H',
                        '--header',
                        action='append',
                        help='Additional HTTP-Headers')
    parser.add_argument('-d', '--data', help='HTTP POST data')
    parser.add_argument('-u', '--url', help='URL to send requests to (victim)')
    parser.add_argument('-b',
                        '--cookies',
                        help='Cookies to be send by the victim')

    subparsers = parser.add_subparsers(title='Plugins', dest="PLUGIN")
    subparsers.required = True
    for name, plugin in Demos.available_plugins.items():
        plugin_parser = subparsers.add_parser(
            name, formatter_class=argparse.ArgumentDefaultsHelpFormatter)
        plugin.add_arguments(plugin_parser)

    args = parser.parse_args(argv)

    default_config(level=args.loglevel)

    demos = Demos(args)
    demos.start_plugin(args.PLUGIN)
def main(argv=None):
    default_config()

    desc = 'TCP Catch All {}'.format(__version__)
    desc += '\n' + '#' * len(desc)
    parser = argparse.ArgumentParser(description=desc, formatter_class=argparse.RawDescriptionHelpFormatter)
    parser.add_argument('-i', '--interface', required=True, help='interface to sniff on (e.g. eth0)')
    parser.add_argument('-s', '--src-ip', help='start servers only if a request is coming from this ip')
    parser.add_argument('-b', '--bind-ip', default='', help='IP to bind to (e.g. the IP of the interface)')
    parser.add_argument('-p', '--port', action='append', type=int,
                        help='Start server for port (allowed multiple times)')
    parser.add_argument('-n', '--notify', action='store_true', help='show a notification with notify-send when a server was started')
    parser.add_argument('-d', '--dir', help='target directory for logfiles')
    parser.add_argument('-r', '--drop-rst', action='store_true', help='use iptables to drop outgoing RST packets (required to accept even the earliest request)')

    args = parser.parse_args(args=argv)

    cmd = ['iptables', '-A', 'OUTPUT', '-o', args.interface,
           '-p', 'tcp', '--tcp-flags', 'RST', 'RST', '-j', 'DROP']
    if args.src_ip:
        cmd += ['-d', args.src_ip]
    if args.bind_ip:
        cmd += ['-s', args.bind_ip]

    if args.drop_rst:
        subprocess.check_call(cmd)
    else:
        print('You might want to consider to filter outgoing closed ports by')
        print(' '.join(cmd))


    tca = TCPCatchAll(args.interface, args.bind_ip, args.src_ip, args.notify, args.dir)
    signal.signal(signal.SIGUSR1, partial(stop_server_handler, tca))

    if args.port:
        for port in args.port:
            tca.start_server(port)
    tca.run()
    dbvuln.risk_factor = vuln.get_vuln_risk['risk_factor']
    dbvuln.solution = vuln.solution
    dbvuln.synopsis = vuln.synopsis
    if 'plugin_modification_date' in plugin:
        dbvuln.plugin_modificated = datetime.strptime(plugin['plugin_modification_date'], '%Y/%m/%d')
    if 'plugin_publication_date' in plugin:
        dbvuln.plugin_published = datetime.strptime(plugin['plugin_publication_date'], '%Y/%m/%d')

    session.add(dbvuln)

    for name, value in vuln.get_vuln_info.items():
        dbvi = VulnInfo()
        dbvi.vuln = dbvuln
        dbvi.name = name
        dbvi.value = json.dumps(value)
        session.add(dbvi)


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('REPORT', type=argparse.FileType('r'), nargs='+')

    args = parser.parse_args()

    default_config(disable_existing_loggers=False)

    connect()
    for report in args.REPORT:
        log.info(report.name)
        import_report(report)
    install_hook()
    parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument('TEMPLATE', type=argparse.FileType('rb'))
    parser.add_argument('-m', '--marker', default='§', help='marker for encrypted sample')
    parser.add_argument('-H', '--host', help='host to attack')
    parser.add_argument('-p', '--port', type=int, help='port to attack')
    parser.add_argument('-s', '--ssl', action='store_true', help='use ssl')
    parser.add_argument('-e', '--encoding', action='append',
                        choices=('base64', 'lower_hex', 'upper_hex', 'url'),
                        help='chain of encoders to use')
    parser.add_argument('-b', '--blocksize', default=16, type=int, help='blocksize to use')
    parser.add_argument('-v', '--verbose', action='store_true', help='increase verbosity')

    args = parser.parse_args()

    if default_config:
        default_config(level='DEBUG' if args.verbose else 'INFO', disable_existing_loggers=False)
    else:
        logging.basicConfig(level='DEBUG' if args.verbose else 'INFO')

    decrypted = run(target=(args.host, args.port),
                    template=args.TEMPLATE.read(),
                    use_ssl=args.ssl,
                    marker=args.marker.encode('utf-8'),
                    encodings=args.encoding,
                    blocksize=args.blocksize)

    log.info("Decrypted: %s", decrypted)
    log.info("Decrypted (hex): %s", b2a_hex(decrypted).decode())
    log.info("Decrypted (raw): %s", decrypted.decode())
Exemple #5
0
from helperlib.logging import default_config, LogPipe
from helperlib.exception import install_hook
from helperlib.terminal import Table, ProgressBar, TerminalController
from helperlib import *
import logging
import time
import subprocess

default_config(level='DEBUG')
install_hook()

logging.debug('test')
logging.info('test')
logging.warning('test')
logging.error('test')

info("Pending....")
done()

x = prompt("Input")
success(x)

spinner.waitfor("Doing long running stuff")
time.sleep(3)
spinner.status("Almost done")
time.sleep(2)
spinner.succeeded()

try:
    raise ValueError(123)
except: