Last active
July 21, 2024 09:20
Revisions
-
glenux revised this gist
Jan 15, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,6 +1,6 @@ # Faking DNS from userland To give false DNS responses from userland we need to handle different type of syscalls : `gethostbyname()`, `gethostbyname2()`, `getaddrinfo()`, `getnameinfo()`, etc. To cover all these cases, and to prevent leaks to real dns servers, we will use two libraries : libresolv_wrapper and libnss_wrapper. -
glenux revised this gist
Jan 15, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ # Faking DNS from userland To give false DNS responses from userland we need to handle different type of syscalls : gethostbyname(), gethostbyname2(), getaddrinfo(), getnameinfo(), etc. To cover all these cases, and to prevent leaks to real dns servers, we will use two libraries : libresolv_wrapper and libnss_wrapper. ## Installation -
glenux revised this gist
Jan 15, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ # Faking DNS from userland To give false DNS responses from userland we need to handle different type of syscalls : gethostbyname(), gethostbyname2(), getaddrinfo(), getnameinfo(), etc. To cover all these cases, prevent leaks to real dns servers, we will use two libraries : libresolv_wrapper and libnss_wrapper. ## Installation -
glenux revised this gist
Jan 15, 2018 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,12 +1,12 @@ # Faking DNS from userland To give false DNS responses from userland we need to handle different type of syscalls : gethostbyname(), gethostbyname2(), getaddrinfo(), getnameinfo(), etc. To cover all cases, prevent leaks to real dns servers, we will use two libraries : libresolv_wrapper and libnss_wrapper. ## Installation Install [resolv_wrapper](https://cwrap.org/resolv_wrapper.html) and [nss_wrapper](https://cwrap.org/nss_wrapper.html), either from sources or from your favorite Linux distribution. ## Configuration @@ -15,7 +15,7 @@ Add the following content to your `.bashrc` (or .profile) ``` export LD_PRELOAD export NSS_WRAPPER_HOSTS="$HOME/.fakehosts" export RESOLV_WRAPPER_HOSTS="$HOME/.fakedns" if [ -f "/usr/local/lib/libresolv_wrapper.so" ]; then @@ -31,7 +31,7 @@ fi ### Adding a fake DNS In your `~/.fakehosts` : ``` 127.0.0.10 my-super-site.example.com www.my-super-site.example.com -
glenux renamed this gist
Jan 15, 2018 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
glenux renamed this gist
Jan 15, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,4 @@ # Faking DNS from userland To give false DNS responses from userland we need to handle different type of syscalls : gethostbyname(), gethostbyname2(), getaddrinfo(), getnameinfo(), etc. To cover all cases, prevent leaks to real dns servers, we will use two libraries : libresolv_wrapper and libnss. -
glenux created this gist
Jan 15, 2018 .There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,56 @@ # Fake DNS from userland To give false DNS responses from userland we need to handle different type of syscalls : gethostbyname(), gethostbyname2(), getaddrinfo(), getnameinfo(), etc. To cover all cases, prevent leaks to real dns servers, we will use two libraries : libresolv_wrapper and libnss. ## Installation Install libresolv_wrapper and libnss from sources ## Configuration Add the following content to your `.bashrc` (or .profile) ``` export LD_PRELOAD export NSS_WRAPPER_HOSTS="$HOME/.hosts" export RESOLV_WRAPPER_HOSTS="$HOME/.fakedns" if [ -f "/usr/local/lib/libresolv_wrapper.so" ]; then LD_PRELOAD="/usr/local/lib/libresolv_wrapper.so $LD_PRELOAD" fi if [ -f "/usr/local/lib/libnss_wrapper.so" ]; then LD_PRELOAD="/usr/local/lib/libnss_wrapper.so $LD_PRELOAD" fi ``` ## Usage ### Adding a fake DNS In your `~/.hosts` : ``` 127.0.0.10 my-super-site.example.com www.my-super-site.example.com 192.168.33.100 fake-dns-for-real-site.com www.fake-dns-for-real-site.com ``` and in file `~/.fakedns` : ``` A my-super-site.example.com 127.0.0.10 A www.my-super-site.example.com 127.0.0.10 A fake-dns-for-real-site.com 192.168.33.100 A www.fake-dns-for-real-site.com 192.168.33.100 ``` ### Using the fake DNS resolver 1. First, make sure the environment variable LD_PRELOAD includes both libraries 2. then run the program (ex: firefox, chrome) that should access to the fake DNS .