Beispiel #1
0
def main():
    assert get_distribution("stem").version > "1.0.1", "Stem module version must be higher then 1.0.1."
    parser = ArgumentParser(description="Probe RTTs of Tor circuits.")
    parser.add_argument("--circuits", type=int, default=10, help="Number of circuits to probe.")
    parser.add_argument("--samples", type=int, default=10, help="Number of samples taken for each circuit.")
    parser.add_argument("--time", type=int, default=1800, help="Milliseconds between measures.")
    parser.add_argument(
        "--output", type=str, default="/home/juan/src/tor-measure/Measures/temp", help="Prefix for output files."
    )
    parser.add_argument("--hops", type=int, default="2", help="Number of hops.")
    parser.add_argument("--port", type=int, default="80", help="Listening port of the server.")
    parser.add_argument("--auth", type=str, default="juan", help="Authenticate password for control Tor")
    args = parser.parse_args()
    controller = connect_port()
    if not controller:
        sys.stderr.write("ERROR: Couldn't connect to Tor.\n")
        sys.exit(1)
    if not controller.is_authenticated():
        controller.authenticate(args.auth)
    try:
        controller.set_conf("UseMicrodescriptors", "0")
        controller.set_conf("__DisablePredictedCircuits", "1")
        controller.set_conf("__LeaveStreamsUnattached", "1")

        # Close previous circuits
        for circ in controller.get_circuits():
            if not circ.build_flags or "IS_INTERNAL" not in circ.build_flags:
                controller.close_circuit(circ.id)
        manager = torController(controller, args.hops, args.circuits, args.samples, args.time, args.output, args.port)
        manager.join()
    finally:
        controller.reset_conf("__DisablePredictedCircuits")
        controller.reset_conf("__LeaveStreamsUnattached")
        controller.reset_conf("MaxCircuitDirtiness")
        controller.close()
Beispiel #2
0
def _main():
    """
    Parse command line arguments, connect to tor and call NavigaTor().
    """
    # connect_port support in Stem
    assert get_distribution('stem').version > '1.4.0', \
        'Stem module version must be greater then 1.4.0.'
    parser = ArgumentParser(description="Probe RTTs of Tor circuits.")
    parser.add_argument("--circuits", type=int, default=1,
                        help="Number of circuits to build and measure.")
    parser.add_argument("--rttprobes", type=int, default=1,
                        help="Number of RTT measurements on each circuit.")
    parser.add_argument("--ttfbprobes", type=int, default=1,
                        help="Number of TTFB measurements on each circuit.")
    parser.add_argument("--bwprobes", type=int, default=1,
                        help="Number of throughput measurements on each " +
                             "circuit.")
    parser.add_argument("--probesleep", type=float, default=0,
                        help="Waiting interval between probes in seconds.")
    parser.add_argument("--threads", type=int, default=1,
                        help="Number of parallel measurement threads.")
    parser.add_argument("--output", type=str, default='probe_',
                        help="Prefix for output files.")
    parser.add_argument('--network-protection', dest='network_protection',
                        action='store_true', help="Prevent hammering the " +
                                                  "Tor network.")
    parser.add_argument('--no-network-protection', dest='network_protection',
                        action='store_false', help="Do not prevent hammering" +
                                                   "the Tor network.")
    parser.add_argument("--port", type=int, default=9051,
                        help="tor control port.")
    parser.set_defaults(network_protection=True)
    args = parser.parse_args()

    controller = connect_port(port=args.port)
    if not controller:
        sys.stderr.write("ERROR: Couldn't connect to tor.\n")
        sys.exit(1)
    if not controller.is_authenticated():
        controller.authenticate()
    NavigaTor(controller, args.circuits, args.rttprobes, args.ttfbprobes,
              args.bwprobes, args.probesleep, args.threads, args.output,
              args.network_protection)
    controller.close()
Beispiel #3
0
def _main():
    """
    Parse command line arguments, connect to tor, and call findpath().
    """
    # connect_port support in Stem
    assert get_distribution('stem').version > '1.4.0', \
        'Stem module version must be greater than 1.4.0.'
    parser = ArgumentParser(description="Generate Tor paths.")
    parser.add_argument("--port", type=int, default=9051,
                        help="tor control port.")
    parser.set_defaults(network_protection=True)
    args = parser.parse_args()

    controller = connect_port(port=args.port)
    if not controller:
        sys.stderr.write("ERROR: Couldn't connect to tor.\n")
        sys.exit(1)
    if not controller.is_authenticated():
        controller.authenticate()
    findpath(controller)
    controller.close()
Beispiel #4
0
def _main():
    """
    Parse command line arguments, connect to tor, and call findpath().
    """
    # connect_port support in Stem
    assert get_distribution('stem').version > '1.4.0', \
        'Stem module version must be greater than 1.4.0.'
    parser = ArgumentParser(description="Generate Tor paths.")
    parser.add_argument("--port",
                        type=int,
                        default=9051,
                        help="tor control port.")
    parser.set_defaults(network_protection=True)
    args = parser.parse_args()

    controller = connect_port(port=args.port)
    if not controller:
        sys.stderr.write("ERROR: Couldn't connect to tor.\n")
        sys.exit(1)
    if not controller.is_authenticated():
        controller.authenticate()
    findpath(controller)
    controller.close()
Beispiel #5
0
        print(term.format(line, term.Color.BLUE))

if __name__ == '__main__':

    tor_process = stem.process.launch_tor_with_config(
        config = {
            'SocksPort':str(9050),
            'ControlPort':str(9051),
        },
        init_msg_handler = print_bootstrap_lines,
        completion_percent = 100,
        timeout = 3600,
        take_ownership = True
    )

    controller = connect_port()

    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
    socket.socket = socks.socksocket
    socket.create_connection = create_connection
    ##
    ## import the browser class **after** the tor proxy is set
    ##
    import mechanize
    from mechanize import Browser

    ##
    ## loop 20 times, changing exit node each time
    ##      ...there may be a better way to do this
    ##
    for i in range(0,19):
Beispiel #6
0
def _main():
    """
    Parse command line arguments, connect to tor and call NavigaTor().
    """
    # connect_port support in Stem
    assert get_distribution('stem').version > '1.4.0', \
        'Stem module version must be greater then 1.4.0.'
    parser = ArgumentParser(description="Probe RTTs of Tor circuits.")
    parser.add_argument("--circuits",
                        type=int,
                        default=1,
                        help="Number of circuits to build and measure.")
    parser.add_argument("--rttprobes",
                        type=int,
                        default=1,
                        help="Number of RTT measurements on each circuit.")
    parser.add_argument("--ttfbprobes",
                        type=int,
                        default=1,
                        help="Number of TTFB measurements on each circuit.")
    parser.add_argument("--bwprobes",
                        type=int,
                        default=1,
                        help="Number of throughput measurements on each " +
                        "circuit.")
    parser.add_argument("--probesleep",
                        type=float,
                        default=0,
                        help="Waiting interval between probes in seconds.")
    parser.add_argument("--threads",
                        type=int,
                        default=1,
                        help="Number of parallel measurement threads.")
    parser.add_argument("--output",
                        type=str,
                        default='probe_',
                        help="Prefix for output files.")
    parser.add_argument('--network-protection',
                        dest='network_protection',
                        action='store_true',
                        help="Prevent hammering the " + "Tor network.")
    parser.add_argument('--no-network-protection',
                        dest='network_protection',
                        action='store_false',
                        help="Do not prevent hammering" + "the Tor network.")
    parser.add_argument("--port",
                        type=int,
                        default=9051,
                        help="tor control port.")
    parser.set_defaults(network_protection=True)
    args = parser.parse_args()

    controller = connect_port(port=args.port)
    if not controller:
        sys.stderr.write("ERROR: Couldn't connect to tor.\n")
        sys.exit(1)
    if not controller.is_authenticated():
        controller.authenticate()
    NavigaTor(controller, args.circuits, args.rttprobes, args.ttfbprobes,
              args.bwprobes, args.probesleep, args.threads, args.output,
              args.network_protection)
    controller.close()