# Utilizando IP publica para auditorias reales

Tener una IP pública es esencial en el contexto de realizar una auditoría de seguridad en ambientes productivos por varias razones clave. Primero, muchos de los riesgos de seguridad más críticos para un sistema en producción provienen de amenazas externas, incluidos ataques que buscan explotar vulnerabilidades accesibles a través de internet. Al auditar un sistema desde una IP pública, los auditores pueden simular ataques reales que un atacante externo podría llevar a cabo, lo que proporciona una evaluación realista de la exposición del sistema a riesgos externos.

Una IP pública permite al auditor:

1. <mark style="color:red;">**Evaluación de la Exposición a Internet**</mark><mark style="color:red;">:</mark> Identificar qué servicios y puertos están expuestos al internet, lo cual es crucial para comprender la superficie de ataque visible desde fuera de la red interna de la organización.
2. <mark style="color:red;">**Pruebas de Penetración**</mark><mark style="color:red;">:</mark> Realizar pruebas de penetración desde una perspectiva externa para identificar vulnerabilidades que podrían ser explotadas por atacantes remotos. Esto incluye la evaluación de firewalls, sistemas de detección de intrusiones y otras medidas de seguridad perimetral.
3. <mark style="color:red;">**Simulación de Ataques**</mark><mark style="color:red;">:</mark> Simular ataques cibernéticos reales para evaluar la capacidad de respuesta de los sistemas de seguridad, incluyendo la detección y mitigación de ataques.

Sin embargo, en muchos escenarios, particularmente en el desarrollo y prueba de aplicaciones en entornos locales o detrás de NAT (Network Address Translation), no se dispone directamente de una IP pública. Aquí es donde herramientas como **ngrok** pueden ser extremadamente útiles.

<mark style="color:red;">**Ngrok**</mark> es una herramienta que permite exponer un servidor que corre en una máquina local a internet, creando un túnel seguro desde un endpoint público (una URL ngrok) hacia el servicio local. Esto significa que incluso si un auditor o desarrollador está trabajando en un entorno sin una IP pública, puede utilizar ngrok para:

* <mark style="color:red;">**Exponer Servicios Locales de Forma Segura**</mark><mark style="color:red;">:</mark> Crear un endpoint accesible públicamente para servicios que corren en una red local, permitiendo realizar pruebas de seguridad como si el servicio estuviera expuesto con una IP pública.
* <mark style="color:red;">**Pruebas de Integración**</mark><mark style="color:red;">:</mark> Verificar cómo se comportan las aplicaciones y servicios en un entorno de producción simulado, incluyendo la interacción con APIs externas y servicios de terceros.
* <mark style="color:red;">**Demostraciones en Vivo**</mark><mark style="color:red;">:</mark> Compartir desarrollos y prototipos con stakeholders externos de forma segura sin desplegar en un ambiente de producción.

## <mark style="color:red;">Configuracion de Ngrok</mark>

Para la configuracion de Ngrok desde kali utiliza la siguiente pagina para crearte una cuenta:

{% embed url="<https://ngrok.com/download>" %}

Y luego ejecuta lo siguiente:

```bash
kali@kali=> wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz                                                                                   
--2023-09-28 22:53:36--  https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
Resolving bin.equinox.io (bin.equinox.io)... 52.202.168.65, 54.237.133.81, 18.205.222.128, ...
Connecting to bin.equinox.io (bin.equinox.io)|52.202.168.65|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8752388 (8.3M) [application/octet-stream]
Saving to: ‘ngrok-v3-stable-linux-amd64.tgz’

ngrok-v3-stable-linux-amd64.tgz                      100%[=====================================================================================================================>]   8.35M  10.3MB/s    in 0.8s    

2023-09-28 22:53:38 (10.3 MB/s) - ‘ngrok-v3-stable-linux-amd64.tgz’ saved [8752388/8752388]

kali@kali=> tar xvzf ngrok-v3-stable-linux-amd64.tgz 
ngrok

kali@kali=> ./ngrok config add-authtoken PEGA_AQUI_TU_TOKEN
Authtoken saved to configuration file: /root/.config/ngrok/ngrok.yml
```
