コード例 #1
0

def ip_target(t):
    return str(ipaddress.ip_address(t.ipv4()))


def save_certif(name):
    def _cb(t, lvl4sm, hsm, buf):
        with open("%s_%s" % (name, ip_target(t)), "wb+") as f:
            f.write(buf.tobytes())
        return False

    return _cb


engine = pynodescan.AsyncEngine(targets, 40000, 60)
engine.set_lvl4_connected_callback(
    ProtoRouter({
        tcp_22:
        pynodescan.protocols.SSH().on_certificate(save_certif(
            "ssh")).on_invalid_answer(lambda t, lvl4sm, hsm, buf: print(
                "SSH failed for %s" % ip_target(t))),
        tcp_443:
        pynodescan.protocols.SSL().on_certificate(save_certif("ssl"))
    }))

try:
    engine.auto_save_state("scan_state.xml", 60)
    engine.launch()
except KeyboardInterrupt:
    engine.save_state("scan_state.xml")
コード例 #2
0
ファイル: stdin.py プロジェクト: andruxa-smirnov/nodescan
import pyleeloo
import pynodescan
import ipaddress

targets = pynodescan.ReinjectableTargetStdin(pyleeloo.tcp_port(1245))
engine = pynodescan.AsyncEngine(targets, 1, 100)

def ip2str(ip):
    return str(ipaddress.ip_address(ip))

def send_hello(self, target, lvl4sm, hsm):
    print("send hello to %s" % ip2str(target.ipv4()))
    s = "hello"
    target.send(s)
    return False

n = 4
def finish(target, err):
    print("finished for %s/%s: %d" % (ip2str(target.ipv4()), str(target.port()), err))
    global n
    if n > 0:
        targets.add_target(pynodescan.Target(target.ipv4(), pyleeloo.tcp_port(1246)))
        n -= 1

engine.set_lvl4_connected_callback(send_hello)
engine.set_lvl4_finish_callback(finish)
engine.launch()
コード例 #3
0
import pyleeloo
import pynodescan

ips = pyleeloo.ip_list_intervals()
ips.add("127.0.0.1")

ports = pyleeloo.port_list_intervals()
ports.add(pyleeloo.tcp_port(5555))
ports.add(pyleeloo.tcp_port(5556))

targets = pynodescan.IPV4TargetSet(ips, ports)

engine = pynodescan.AsyncEngine(targets, 2, 60)


def on_connect(t, l, h):
    print("on_connect %s" % str(t.port()))
    return True


engine.set_lvl4_connected_callback(on_connect)


def timeout_of_target(t):
    if t.port() == pyleeloo.tcp_port(5555):
        return 5
    return 10


engine.set_timeout_of_target(timeout_of_target)
engine.set_lvl4_finish_callback(lambda t, b, e: print("finish for %s/%d" %