Ngrok es un servicio que nos permite crear nuestro servidor local en un subdominio para poder visualizarlo fuera de la LAN, a través de internet; por ejemplo, para realizar pruebas de intrusión necesitamos de un túnel donde recibiremos las conexiones, un método que puede sustituir el uso de Ngrok es el “PortForwarding”, sin embargo, este método es más laborioso, a comparación de Ngrok.
Esto nos ayudará mucho principalmente si nuestro objetivo se encuentra fuera de la red local 😎, también cabe recalcar que no solo sirve para realizar pruebas de intrusión, ustedes podrán subir sus aplicaciones o plataformas de forma online.
En pocas palabras, aquí podremos almacenar nuestros archivos y establecer conexiones.
Ngrok cuenta con una versión de paga y gratuita, la de paga nos permite crear subdominios permanentes, en cambio la otra es temporal, por lo que nos toparemos con la desventaja de estar cambiando la dirección URL cada cierto tiempo, otro problema es que no soportará varias conexiones al mismo tiempo, así que, en vez de mostrar nuestros archivos, dará un mensaje de error al abrir el link.
Sí estás pensando realizar pruebas de intrusión en el que requieras que tu subdominio permanezca por mucho tiempo, te recomiendo la versión de paga, ya que, al momento de querer establecer la conexión con otro dispositivo, no se perderá, esto lo digo por experiencia.
Cabe destacar que Ngrok es muy utilizado por crackers, ya que podemos solicitar un subdominio para crear páginas phishing, ¿Por qué?, simplemente Ngrok no infringe restricciones para utilizar sus servidores, sorprendente verdad.
Para descargar la herramienta, ingresamos a la plataforma de Ngrok, yo lo instalaré en Kali Linux.
Le damos clic en “empezar gratis”
Ahora nos toca crear una cuenta, lo pueden hacer con sus correos personales, pero yo les recomiendo que lo hagan con un correo temporal, aquí les dejo una página que nos brinda correos temporales (https://temp-mail.org/es/) colocan un nombre y una contraseña, por último le dan clic en “no soy un robot”.
Cuando nos hayamos logueado, descargamos la versión compatible con nuestro sistema, en mi caso estoy utilizando una distribución de Linux de 64 bits.
Cuando termine la descarga, nos dirigimos donde se encuentra la herramienta, por ejemplo, el mío aparece en descargas, lo pasaré al escritorio, por comodidad, ustedes lo pueden dejar así, pero yo les recomiendo que lo pongan en el escritorio. Ahora copiamos la llave que nos brinda Ngrok para ejecutar la herramienta, en la siguiente captura he seleccionado toda la llave, solo para que lo tomen como ejemplo.
Antes de empezar a correr la herramienta, recuerden que ustedes ya deben tener listo el puerto en el que desean recibir las conexiones o en el que quieren mostrar sus archivos, si no saben hacer esto, no se preocupen, ya que conforme vayamos haciendo las prácticas entenderán a la perfección esta parte.
Aquí lo más importante es que sepan cómo funciona este tipo de servicios, ya que la mayoría de herramientas automatizadas sobre hacking suelen usar Ngrok para establecer las conexiones, dicho esto, continuemos.
Extraemos la herramienta, abrimos una terminal y colocamos los siguientes comandos:
En la siguiente captura podemos observar que la herramienta ha funcionado perfectamente, tenemos una sesión en línea; seguramente algunos se preguntarán: ¿Por qué arroja dos links distintos?, la gran diferencia que encontraremos es que en el primer link no cuenta con el certificado SSL, por esta razón es mucho más común utilizar el segundo.
Sígueme en mi cuenta de Arthii, encontrarás más publicaciones gratis, también estaré compartiendo más contenido.
Hola buenas, al final cuando intento abrir el link me sale esto
si alguien le sale este error solo pongan este comando:
/etc/init.d/apache2 start
Hola lugi, ese error sucede cuando no hay nada ejecutándose en dicho puerto, revisa que tengas corriendo algo en ese puerto, te compartiré una captura con el mismo error para que me entiendas, gracias por comentar, si tienes otras dudas aquí estaré pendiente.
podria explicar detalladamente por que tengo el mismo error
Hola
En el artículo se muestra un ejemplo donde Ngrok utiliza el puerto 80 (./ngrok http 80)
Para poder visualizar el contenido que los enlaces de Ngrok genera, tienes que tener algo corriendo en dicho túnel, por ejemplo, una página web o algún servicio.
Si no hay ningún servicio ejecutándose en el puerto que especifiques te daré el error que señalas.
Te recomiendo que leas y analices el siguiente artículo: https://www.elcursodelhacker.com/saycheese
Es un ejemplo para que veas en qué escenarios se utiliza Ngrok.
Gracias por dejar tu comentario.
Hola, no entiendo que más hacer, pongo el comando ./ngrok http 80 pero no sale nada, llevo más de una hora intentando:/.
Hola Jordan, coloca el siguiente comando: ls y después me compartes la captura, para que pueda analizar mejor el error que tienes, gracias por comentar.
Si gustas, envía un correo a contacto@elcursodelhacker.com para que puedas resolver el proplema que tienes.
Hola, quiza es por que debes tener una cadena de comandos corrienso y despues ejecutar el ./ngrok http 80 u 8080 para que te de las url.
NAME:
http – start an HTTP tunnel
USAGE:
ngrok http [address:port | port] [flags]
DESCRIPTION:
Starts a tunnel listening for HTTP/HTTPS traffic with a specific hostname.
The HTTP Host header on incoming public requests is inspected to
determine which tunnel it matches.
HTTPS endpoints terminate TLS traffic at the ngrok server using the
appropriate certificates. The decrypted, HTTP traffic is then forwarded
through the secure tunnel and then to your local server. If you don’t want
your TLS traffic to terminate at the ngrok server, use a TLS or TCP tunnel.
TERMS OF SERVICE: https://ngrok.com/tos
EXAMPLES:
ngrok http 8080 # forward ngrok.io subdomain to port 80
ngrok http example.com:9000 # forward traffic to example.com:9000
ngrok http –subdomain=bar 80 # request subdomain name: ‘bar.ngrok.io’
ngrok http –hostname=ex.com 1234 # request tunnel ‘ex.com’ (DNS CNAME)
ngrok http –basic-auth=’falken:joshua’ 80 # enforce basic auth on tunnel endpoint
ngrok http –host-header=ex.com 80 # rewrite the Host header to ‘ex.com’
ngrok http file:///var/log # serve local files in /var/log
ngrok http https://localhost:8443 # forward to a local https server
OPTIONS:
–authtoken string ngrok.com authtoken identifying a user
–basic-auth strings enforce basic auth on tunnel endpoint, ‘user:password’
–cidr-allow strings reject connections that do not match the given CIDRs
–cidr-deny strings reject connections that match the given CIDRs
–circuit-breaker float reject requests when 5XX responses exceed this ratio
–compression gzip compress http responses from your web service
–config strings path to config files; they are merged if multiple
-h, –help help for http
–host-header string set Host header; if ‘rewrite’ use local address hostname
–hostname string host tunnel on custom hostname (requires DNS CNAME)
–inspect enable/disable http introspection (default true)
–log string path to log file, ‘stdout’, ‘stderr’ or ‘false’ (default “false”)
–log-format string log record format: ‘term’, ‘logfmt’, ‘json’ (default “term”)
–log-level string logging level: ‘debug’, ‘info’, ‘warn’, ‘error’, ‘crit’ (default “info”)
–mutual-tls-cas string path to TLS certificate authority to verify client certs in mutual tls
–oauth string enforce authentication oauth provider on tunnel endpoint, e.g. ‘google’
–oauth-allow-domain strings allow only oauth users with these email domains
–oauth-allow-email strings allow only oauth users with these emails
–oauth-client-id string oauth app client id, optional
–oauth-client-secret string oauth app client secret, optional
–oauth-scope strings request these oauth scopes when users authenticate
–oidc string oidc issuer url, e.g. https://accounts.google.com
–oidc-client-id string oidc app client id
–oidc-client-secret string oidc app client secret
–oidc-scope strings request these oidc scopes when users authenticate
–proxy-proto string version of proxy proto to use with this tunnel, empty if not using
–region string ngrok server region [us, eu, au, ap, sa, jp, in] (default “us”)
–request-header-add strings header key:value to add to request
–request-header-remove strings header field to remove from request if present
–response-header-add strings header key:value to add to response
–response-header-remove strings header field to remove from response if present
–scheme strings which schemes to listen on (default [https])
–subdomain string host tunnel on a custom subdomain
–verify-webhook string validate webhooks are signed by this provider, e.g. ‘slack’
–verify-webhook-secret string secret used by provider to sign webhooks, if any
–websocket-tcp-converter convert ingress websocket connections to TCP upstream
ERROR: Your account is limited to 1 simultaneous ngrok agent session.
ERROR: Active ngrok agent sessions in region ‘sa’:
ERROR: – ts_29LUADYW13ExrvIJK5CYiTTIbzN (45.199.184.7)
ERROR:
ERROR: ERR_NGROK_108
ERROR:
//Me podrias ayudar me sale este error?
Hola Marco, puede haber dos errores que estén causando eso, primero verifica el correo con el que te registraste en Ngrok, debió de llegarte un correo de verificación por parte de Ngrok, si no lo has hecho te generará ese error.
El otro error puede ser que estés intentando generar dos túneles al mismo tiempo, la versión gratuita no permita realizar esa función, gracias por dejar tu comentario.
Hola muy buenas Alexi, quiero saber cómo puedo obtener los dos links de ngrok, debido a que solo me da el de formato http .
Espero pronta su respuesta, muchas gracias
Hola Jared
Para esto te recomiendo que pruebes con una nueva descarga, no es común que esto suceda o intenta ejecutar más tarde la herramienta, tal vez el detalle esta con la red que utilizas con tu conexión a internet.
Gracias por comentar.
Porq al abrir mi enlace de ngrok aparece esto como podría quitar esto para q no parezca en mi enlace
Hola Carlos, la mejor opción es optar por la versión de paga, esto eliminará el mensaje de alerta y te dará más beneficios.
Sin embargo, puedes intentar con las otras opciones que menciona el mensaje en “To remove this page:“