This is a partial and quick and dirty proof of concept implementation of the following specifications to configure a tor client to use trusted exit relays only.

Overview

This is a partial and quick and dirty proof of concept implementation of the following specifications to configure a tor client to use trusted exit relays only.

NOTE: This PoC is NOT fit for general use and not meant to be used by end-users!

This limited version only selects exit relays and leaves other positions unchanged. It supports a max_depth of 0 only (no recusion to find trusted operators).

this PoC performs the following steps

  • reads the trust configuration and validation cache
  • connects to a local tor client via it's ControlPort to find relays claiming to be from a trusted operator
  • validates claims via HTTPS (routed via tor) or DNS including DNSSEC check (can also be routed via tor but requires dnscrypt-proxy)
  • writes a validation cache to disk
  • configures the local tor client (non-persistently) to only use exits from trusted operators that passed the validation steps

requirements

  • a local tor client must be running (see sample torrc file)
  • dnssec-root-trust must contain the DNSSEC Root Trust Anchor (IANA)
  • local dnscrypt-proxy daemon, configured to route (encrypted) DNS via tor's SOCKSPort
force_tcp = true

proxy = 'socks5://127.0.0.1:9050'

...

configuration

  • this PoC comes with an empty trust_config file, users need to add entries (example)
  • dnscrypt-proxy is expected to listen on 127.0.2.1:53 otherwise configure the IP address in the resolv.conf file
  • generate a password hash via tor --hash-password randomstringgoeshere and paste it into the torrc config (or use ControlSocket instead)
  • add the plaintext password to the controller_password= line in the script
  • torcontactinfoparser needs to be installed manually
  • on debian pyunbound is in the python3-unbound package

used libraries

You might also like...
Proof of concept to check if hosts are vulnerable to CVE-2021-41773

CVE-2021-41773 PoC Proof of concept to check if hosts are vulnerable to CVE-2021-41773. Description (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CV

Proof of Concept Exploit for ManageEngine ServiceDesk Plus CVE-2021-44077
Proof of Concept Exploit for ManageEngine ServiceDesk Plus CVE-2021-44077

CVE-2021-44077 Proof of Concept Exploit for CVE-2021-44077: PreAuth RCE in ManageEngine ServiceDesk Plus 11306 Based on: https://xz.aliyun.com/t/106

This is a proof-of-concept exploit for Grafana's Unauthorized Arbitrary File Read Vulnerability (CVE-2021-43798).
This is a proof-of-concept exploit for Grafana's Unauthorized Arbitrary File Read Vulnerability (CVE-2021-43798).

CVE-2021-43798 – Grafana Exploit About This is a proof-of-concept exploit for Grafana's Unauthorized Arbitrary File Read Vulnerability (CVE-2021-43798

A proof-of-concept exploit for Log4j RCE Unauthenticated (CVE-2021-44228)
A proof-of-concept exploit for Log4j RCE Unauthenticated (CVE-2021-44228)

CVE-2021-44228 – Log4j RCE Unauthenticated About This is a proof-of-concept exploit for Log4j RCE Unauthenticated (CVE-2021-44228). This vulnerability

A Proof-Of-Concept for the recently found CVE-2021-44228 vulnerability
A Proof-Of-Concept for the recently found CVE-2021-44228 vulnerability

log4j-shell-poc A Proof-Of-Concept for the recently found CVE-2021-44228 vulnerability. Recently there was a new vulnerability in log4j, a java loggin

Log4Shell Proof of Concept (CVE-2021-44228)
Log4Shell Proof of Concept (CVE-2021-44228)

CVE-2021-44228 Log4Shell Proof of Concept (CVE-2021-44228) Make sure to use Java 8 JDK. Java 8 Download Images Credits Casey Dunham - Java Reverse She

proof-of-concept running docker container from omero web

docker-from-omero-poc proof-of-concept running docker container from omero web How-to Edit test_script.py so that the BaseClient is created pointing t

Proof of concept of CVE-2022-21907 Double Free in http.sys driver, triggering a kernel crash on IIS servers
Proof of concept of CVE-2022-21907 Double Free in http.sys driver, triggering a kernel crash on IIS servers

CVE-2022-21907 - Double Free in http.sys driver Summary An unauthenticated attacker can send an HTTP request with an "Accept-Encoding" HTTP request he

The Devils Eye is an OSINT tool that searches the Darkweb for onion links and descriptions that match with the users query without requiring the use for Tor.
The Devils Eye is an OSINT tool that searches the Darkweb for onion links and descriptions that match with the users query without requiring the use for Tor.

The Devil's Eye searches the darkweb for information relating to the user's query and returns the results including .onion links and their description

Comments
  • Do you know anyone with a valid dns-rsa contact info?

    Do you know anyone with a valid dns-rsa contact info?

    I've been doing some testing of ContactInfo, both dns-rsa and uri-rsa and the results are quite shockingly bad. A lot of the urls in relays with contactinfo don't even resolve.

    1. Do you have the ContactInfo for any dns-rsa relays that you know are good? They should resolve with dig relayfp.domain.name TXT at least, even if it's not secure. I want to try testing them, but I haven't yet found a good one that resolves.
    2. Should relays that provide a https:// url be considered bad if they use a self-signed cert?
    3. Should relays that provide a https:// url be considered bad if they use an expired cert?

    The problem I see if that people may look at a list of relays and presume that relays with a contact info are more reliable: e.g. https://github.com/nusenu/noContactInfo_Exit_Excluder

    In fact, I'm getting the opposite feeling, that people who are running bad relays are putting up fake ContactInfo knowing this, and that the Tor project never validates the info.

    And BTW, I think they're trolling you personally:

    ERROR HTTP HEAD request failed for https://verification-for-nusenu.net/.well-known/tor-relay/rsa-fingerprint.txt [SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:1145)    
    WARNING 4A69010FF36830D6949CA4456974E8585E920F4A did NOT VERIFY         
    
    opened by emdee-is 7
  • dnscrypt-proxy

    dnscrypt-proxy

    dnscrypt-proxy might not yet perform local DNSSEC validation, see:

    • https://github.com/DNSCrypt/dnscrypt-proxy/discussions/1954
    • https://github.com/DNSCrypt/dnscrypt-proxy/issues/167#issuecomment-367689381

    Not sure you'd like to merge this. Could you consider enabling github issues please? Would have made posting this comment easier.

    opened by adrelanos 3
Owner
https://nusenu.medium.com/
null
Proof of concept for CVE-2021-31166, a remote HTTP.sys use-after-free triggered remotely.

CVE-2021-31166: HTTP Protocol Stack Remote Code Execution Vulnerability This is a proof of concept for CVE-2021-31166 ("HTTP Protocol Stack Remote Cod

Axel Souchet 820 Dec 18, 2022
Spring4Shell Proof Of Concept/And vulnerable application CVE-2022-22965

Spring4Shell-POC (CVE-2022-22965) Spring4Shell (CVE-2022-22965) Proof Of Concept/Information + A vulnerable Tomcat server with a vulnerable spring4she

Daniel Christensen 309 Jan 2, 2023
Proof of Concept Exploit for vCenter CVE-2021-21972

CVE-2021-21972 Proof of Concept Exploit for vCenter CVE-2021-21972

Horizon 3 AI Inc 210 Dec 31, 2022
Proof of concept for CVE-2021-24086, a NULL dereference in tcpip.sys triggered remotely.

CVE-2021-24086 This is a proof of concept for CVE-2021-24086 ("Windows TCP/IP Denial of Service Vulnerability "), a NULL dereference in tcpip.sys patc

Axel Souchet 220 Dec 14, 2022
Proof-of-concept obfuscation toolkit for C# post-exploitation tools

InvisibilityCloak Proof-of-concept obfuscation toolkit for C# post-exploitation tools. This will perform the below actions for a C# visual studio proj

null 259 Dec 19, 2022
Proof on Concept Exploit for CVE-2021-38647 (OMIGOD)

OMIGOD Proof on Concept Exploit for CVE-2021-38647 (OMIGOD) For background information and context, read the our blog post detailing this vulnerabilit

Horizon 3 AI Inc 231 Nov 12, 2022
Python-based proof-of-concept tool for generating payloads that utilize unsafe Java object deserialization.

Python-based proof-of-concept tool for generating payloads that utilize unsafe Java object deserialization.

Astro 9 Sep 27, 2022
IP Denial of Service Vulnerability ")A proof of concept for CVE-2021-24086 ("Windows TCP/IP Denial of Service Vulnerability ")

CVE-2021-24086 This is a proof of concept for CVE-2021-24086 ("Windows TCP/IP Denial of Service Vulnerability "), a NULL dereference in tcpip.sys patc

Carry 1 Nov 25, 2021
Proof of concept GnuCash Webinterface

Proof of Concept GnuCash Webinterface This may one day be a something truly great. Milestones [ ] Browse accounts and view transactions [ ] Record sim

Josh 14 Dec 28, 2022