Apply conversion script to all *.md files. authored by Alexander Hansen Færøy's avatar Alexander Hansen Færøy
...@@ -2,32 +2,32 @@ Moved to #15213. ...@@ -2,32 +2,32 @@ Moved to #15213.
Brainstorming and planning for a DNS-based pluggable transport. Brainstorming and planning for a DNS-based pluggable transport.
Encode data in recursive DNS queries and responses. Your local recursive resolver sends your packets to the right place. A dns bridge would be an authoritative name server for a particular domain; users would configure a domain rather than an IP address in their `Bridge` lines. Tools already exist to do DNS tunneling, for example [http://code.kryo.se/iodine/ iodine] and [https://github.com/iagox86/dnscat2 dnscat2]. Probably requires a reliability layer and periodic polling by the client. Encode data in recursive DNS queries and responses. Your local recursive resolver sends your packets to the right place. A dns bridge would be an authoritative name server for a particular domain; users would configure a domain rather than an IP address in their `Bridge` lines. Tools already exist to do DNS tunneling, for example [iodine](http://code.kryo.se/iodine/) and [dnscat2](https://github.com/iagox86/dnscat2). Probably requires a reliability layer and periodic polling by the client.
[[./Survey|Survey of DNS tunnel encodings]] [[./Survey|Survey of DNS tunnel encodings]]
Brainstorming options for a reliability layer: Brainstorming options for a reliability layer:
* [https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md#dnscat-protocol dnscat2 protocol]: uses SYN, FIN, SEQ, ACK. Independent of DNS. (dnscat2 also has a separate procedure for encoding data as DNS requests/responses.) * [dnscat2 protocol](https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md#dnscat-protocol): uses SYN, FIN, SEQ, ACK. Independent of DNS. (dnscat2 also has a separate procedure for encoding data as DNS requests/responses.)
* [https://github.com/skywind3000/kcp/blob/master/README.en.md KCP] * [KCP](https://github.com/skywind3000/kcp/blob/master/README.en.md)
* [http://lksctp.sourceforge.net/ libsctp] or other user-space SCTP * [libsctp](http://lksctp.sourceforge.net/) or other user-space SCTP
Demo of encoding/decoding DNS with Scapy: Demo of encoding/decoding DNS with Scapy:
{{{ ```
>>> from scapy.all import * >>> from scapy.all import *
>>> str(DNS(rd=True, qd=DNSQR(qtype="A", qname="example.com"))).encode("base64") >>> str(DNS(rd=True, qd=DNSQR(qtype="A", qname="example.com"))).encode("base64")
'AAABAAABAAAAAAAAB2V4YW1wbGUDY29tAAABAAE=\n' 'AAABAAABAAAAAAAAB2V4YW1wbGUDY29tAAABAAE=\n'
}}} ```
{{{ ```
$ echo -n AAABAAABAAAAAAAAB2V4YW1wbGUDY29tAAABAAE= | base64 -d | curl -H 'Content-Type: application/dns-udpwireformat' --data-binary @- https://cloudflare-dns.com/dns-query -o - | base64 $ echo -n AAABAAABAAAAAAAAB2V4YW1wbGUDY29tAAABAAE= | base64 -d | curl -H 'Content-Type: application/dns-udpwireformat' --data-binary @- https://cloudflare-dns.com/dns-query -o - | base64
AACBgAABAAEAAAAAB2V4YW1wbGUDY29tAAABAAHADAABAAEAAAiRAARduNgi AACBgAABAAEAAAAAB2V4YW1wbGUDY29tAAABAAHADAABAAEAAAiRAARduNgi
}}} ```
{{{ ```
>>> DNS("AACBgAABAAEAAAAAB2V4YW1wbGUDY29tAAABAAHADAABAAEAAAiRAARduNgi") >>> DNS("AACBgAABAAEAAAAAB2V4YW1wbGUDY29tAAABAAHADAABAAEAAAiRAARduNgi")
<DNS id=16705 qr=0L opcode=8L aa=0L tc=1L rd=1L ra=0L z=1L ad=0L cd=0L rcode=server-failure qdcount=26433 ancount=16706 nscount=16705 arcount=17729 qd='' an='' ns='' ar='' |<Raw load='AAAAB2V4YW1wbGUDY29tAAABAAHADAABAAEAAAiRAARduNgi' |>> <DNS id=16705 qr=0L opcode=8L aa=0L tc=1L rd=1L ra=0L z=1L ad=0L cd=0L rcode=server-failure qdcount=26433 ancount=16706 nscount=16705 arcount=17729 qd=_ an=_ ns=_ ar=_ |<Raw load='AAAAB2V4YW1wbGUDY29tAAABAAHADAABAAEAAAiRAARduNgi' |>>
}}} ```
== Mailing list discussions == ## Mailing list discussions
* [anti-censorship-team] How to run Tor Browser through a DoH/DoT tunnel\\ * [anti-censorship-team] How to run Tor Browser through a DoH/DoT tunnel\\
https://lists.torproject.org/pipermail/anti-censorship-team/2020-April/000080.html https://lists.torproject.org/pipermail/anti-censorship-team/2020-April/000080.html
... ...
......