Herramientas de penetración de intranet de uso común, ¡guárdelas!


Insertar descripción de la imagen aquí

Prefacio

Desde la perspectiva de la penetración, este artículo resume varias herramientas de penetración de intranet y proxy de intranet comúnmente utilizadas por individuos, y presenta sus principios simples y métodos de uso.

1. nps-np

1.1 Introducción

nps es un servidor proxy de penetración de intranet ligero, potente y de alto rendimiento. Actualmente, admite el reenvío de tráfico TCP y UDP, y puede admitir cualquier protocolo de capa superior TCP y UDP (acceso a sitios web de intranet, depuración de interfaz de pago local, acceso SSH, escritorio remoto, resolución DNS de intranet, etc.), y también admite proxy http de intranet, proxy calcetines5 de intranet, p2p, etc., y viene con un potente terminal de administración web.

  • Un servidor (VPS) con una IP pública ejecuta el servidor ( NPS )

  • Uno o más servidores o PC ejecutándose en la intranet ejecutando clientes ( NPC )

    Insertar descripción de la imagen aquí

    1.2 Características

    • Escrito en idioma Go.
    • Soporte multiplataforma
    • Proxies que soportan múltiples protocolos
    • terminal de gestión web

    1.3 Cómo utilizar

    https://github.com/ehang-io/nps/releases

    1,4 NPS

    Configuración de instalación

    Busque el servidor de la versión correspondiente de su servidor:

    cd ~  
    wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz  
    tar xzvf linux_amd64_server.tar.gz  
    cd ~/nps 
    

    Habrá un archivo ejecutable nps, un directorio de configuración conf y un directorio de página web en el directorio nps, solo necesitamos modificarlo conf/nps.conf:

    vim conf/nps.conf  
    

    Necesita cambiar #weblos siguientes parámetros:

    web_host= 服务器IP或者域名  
    web_username= admin(登录用户名)  
    web_password= 你的密码  
    web_port=8080(web管理端口)  
    

    Modificación: #bridgePuedes cambiar el puerto de conexión de NPC. Por ejemplo, si tenemos un servidor con permisos limitados y un firewall, es posible que solo algunos puertos (80, 443) puedan salir, por lo que debemos cambiarlos a puertos de salida.

    ##bridge  
    bridge_type=tcp  
    bridge_port=443        # 修改连接端口  
    bridge_ip=0.0.0.0  
    
    
    ##### 启动
    
    
    #Mac/Linux  
    ./nps test|start|stop|restart|status  测试配置文件|启动|停止|重启|状态  
      
    #Windows  
    nps.exe test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态  
    

    1.5 PNJ

    ./npc -server=你的IP:8024 -vkey=唯一验证密码 -type=tcp 
    

Insertar descripción de la imagen aquí

Después de crear un nuevo cliente, también puede +ver el comando detallado de conexión del cliente en:

Insertar descripción de la imagen aquí

1.6 terminal de gestión web

Las conexiones del cliente se pueden agregar en la interfaz del cliente a través de 新增y la clave virtual de cada conexión se distingue de forma única.

Cada cliente puede establecer múltiples túneles con diferentes protocolos después de establecer una conexión, cada uno de estos túneles es un proxy diferente.

Insertar descripción de la imagen aquí

Puede conectarse a la máquina de intranet del agente a través de diferentes protocolos y puertos.

2. frp

2.1 Introducción

frp es una aplicación de proxy inverso de alto rendimiento centrada en la penetración de intranet y que admite múltiples protocolos como TCP, UDP, HTTP y HTTPS. Los servicios de intranet pueden exponerse a la red pública mediante el tránsito con nodos IP de la red pública de forma segura y cómoda.

Insertar descripción de la imagen aquí

2.2 Características

  • La comunicación cliente-servidor admite múltiples protocolos como TCP, KCP y Websocket.
  • Reutilización de puertos, se exponen múltiples servicios a través del mismo puerto del servidor.
  • Multiplataforma, pero admite un poco menos que nps
  • Una variedad de complementos que proporcionan muchas funciones.

2.3 Cómo utilizar

Descargar: https://github.com/fatedier/frp/releases

El siguiente contenido está tomado de: https://segmentfault.com/a/1190000021876836

1) Acceda a la máquina de su hogar a través de rdp

  1. Modifique el archivo frps.ini. Por razones de seguridad, es mejor configurar la autenticación aquí. Si tokenlos parámetros en la configuración común del servidor y el cliente son consistentes, la autenticación pasará:
# frps.ini  
[common]  
bind_port = 7000  
# 用于身份验证,请自行修改,要保证服务端与客户端一致  
token = abcdefgh  
  1. Iniciar FRP:
./frps -c ./frps.ini
  1. Modifique el archivo frpc.ini, suponiendo que la IP pública del servidor donde se encuentra frps es xxxx:
# frpc.ini  
[common]  
server_addr = x.x.x.x  
server_port = 7000  
# 用于身份验证,请自行修改,要保证服务端与客户端一致  
token = abcdefgh  
  
[rdp]  
type = tcp  
local_ip = 127.0.0.1  
local_port = 3389  
remote_port = 6000  
  1. Iniciar frpc:
    ./frpc -c ./frpc.ini
  2. Acceda a la máquina remota a través de rdp, la dirección es:x.x.x.x:6000

Iniciar automáticamente al arrancar

Para sistemas Windows, para facilitar su uso, puede configurarlo para que se inicie de forma silenciosa al iniciar.

  1. Cree un start_frpc.vbs en el mismo directorio que frpc.exe:
'start_frpc.vbs  
'请根据实际情况修改路径  
CreateObject("WScript.Shell").Run """D:\Program Files\frp_windows_amd64\frpc.exe""" & "-c" &"""D:\Program Files\frp_windows_amd64\frpc.ini""",0  
  1. Copie el archivo start_frpc.vbs, abra el siguiente directorio, preste atención a
<USER_NAME>  

Cambie a su nombre de usuario:

C:\Users\<USER_NAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup  
  1. Haga clic derecho y pegue como acceso directo.

**
**

2) Acceder a la máquina de la intranet de la empresa a través de SSH

Los pasos de implementación para frps son los mismos que los anteriores.

  1. Inicie frpc y configúrelo de la siguiente manera:
# frpc.ini  
[common]  
server_addr = x.x.x.x  
server_port = 7000  
# 用于身份验证,请自行修改,要保证服务端与客户端一致  
token = abcdefgh  
  
[ssh]  
type = tcp  
local_ip = 127.0.0.1  
local_port = 22  
remote_port = 6000  
  1. Acceda a la máquina de la intranet a través de SSH, asumiendo que el nombre de usuario es prueba:
ssh -oPort=6000 [email protected]

**
**

3) Acceder a los servicios web implementados en la intranet a través de un nombre de dominio personalizado

A veces queremos permitir que otros accedan o prueben el servicio web que creamos localmente a través del nombre de dominio, pero debido a que la máquina local no tiene una IP pública, el nombre de dominio no se puede resolver en la máquina local. Esta función se puede lograr a través de frp El siguiente ejemplo es el servicio http, el método de configuración del servicio https es el mismo, reemplace vhost_http_port con vhost_https_port y establezca el tipo en https.

  1. Modifique el archivo frps.ini y configure el puerto de acceso http en 8080:
# frps.ini  
[common]  
bind_port = 7000  
vhost_http_port = 8080  
# 用于身份验证,请自行修改,要保证服务端与客户端一致  
token = abcdefgh  
  1. Iniciar FRP:
./frps -c ./frps.ini
  1. Modifique el archivo frpc.ini, suponiendo que la IP del servidor donde se encuentra frps es xxxx, local_port es el puerto correspondiente al servicio web en la máquina local y vincule un nombre de dominio personalizado www.yourdomain.com:
# frpc.ini  
[common]  
server_addr = x.x.x.x  
server_port = 7000  
# 用于身份验证,请自行修改,要保证服务端与客户端一致  
token = abcdefgh  
  
[web]  
type = http  
local_port = 80  
custom_domains = www.yourdomain.com  
  1. Iniciar frpc:
./frpc -c ./frpc.ini
  1. Resuelva www.yourdomain.comel nombre de dominio Un registro de IP x.x.x.xSi el servidor ya tiene un nombre de dominio correspondiente, también puede resolver el registro CNAME al nombre de dominio original del servidor.

  2. http://www.yourdomain.com:8080Puede acceder al servicio web en la máquina de la intranet accediendo a través de un navegador .

4) Proporcionar servicios sencillos de acceso a archivos al mundo exterior.

static_fileSe puede proporcionar externamente un servicio simple de acceso a archivos basado en HTTP a través del complemento.

Los pasos de implementación para frps son los mismos que los anteriores.

  1. Inicie frpc, habilite static_fileel complemento y configúrelo de la siguiente manera:
# frpc.ini  
[common]  
server_addr = x.x.x.x  
server_port = 7000  
# 用于身份验证,请自行修改,要保证服务端与客户端一致  
token = abcdefgh  
  
[test_static_file]  
type = tcp  
remote_port = 6000  
plugin = static_file  
# 要对外暴露的文件目录  
plugin_local_path = /tmp/file  
# 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径  
plugin_strip_prefix = static  
plugin_http_user = abc  
plugin_http_passwd = abc  
  1. http://x.x.x.x:6000/static/Para ver los archivos ubicados en el directorio accediendo a través de un navegador /tmp/file, se le pedirá que ingrese el nombre de usuario y la contraseña que se han configurado.

Funciones comunes

(1) Panel de estadísticas

Vea el estado de frp y la visualización de estadísticas de proxy a través del navegador.

Nota: El Panel no se ha optimizado para mostrar grandes cantidades de datos de proxy. Si el acceso al Panel es lento, no habilite esta función.

Debe especificar el puerto utilizado por el servicio del panel en frps.ini para habilitar esta función:

[common]  
dashboard_port = 7500  
# dashboard 用户名密码,默认都为 admin  
dashboard_user = admin  
dashboard_pwd = admin  

Abra el navegador para http://[server_addr]:7500acceder a la interfaz del panel. El nombre de usuario y la contraseña predeterminados son admin.

(2) Cifrado y compresión

Estas dos funciones no están habilitadas de forma predeterminada. Debe habilitar el cifrado y la compresión para el proxy especificado a través de la configuración en frpc.ini. El algoritmo de compresión utiliza snappy:

# frpc.ini  
[ssh]  
type = tcp  
local_port = 22  
remote_port = 6000  
use_encryption = true  
use_compression = true  

Si el firewall de la intranet de la empresa identifica y bloquea el tráfico de acceso a la red externa, por ejemplo, deshabilitando el protocolo SSH, etc., al configurar la use_encryption = truetransmisión cifrada del contenido de la comunicación entre frpc y frps, evitará efectivamente que el tráfico sea interceptado.

Si la longitud del mensaje transmitido es larga, configurar use_compression = truela compresión del contenido transmitido puede reducir efectivamente el tráfico de red entre frpc y frps y acelerar la velocidad de reenvío del tráfico, pero consumirá algunos recursos adicionales de la CPU.

(3)TLS

A partir de la versión v0.25.0, se admite la transmisión cifrada a través del protocolo TLS entre frpc y frps. Habilite esta función configurándola para frpc.inimayor seguridad.commontls_enable = true

Para la reutilización de puertos, el primer byte utilizado por frp para establecer una conexión TLS es 0x17.

Nota: Después de habilitar esta función, no es necesario configurar use_encryption excepto xtcp.

(4) Límite de velocidad del agente

Actualmente, se admite establecer un límite de velocidad a nivel de proxy en la configuración de proxy del cliente para limitar el ancho de banda que puede ocupar un solo proxy.

# frpc.ini  
[ssh]  
type = tcp  
local_port = 22  
remote_port = 6000  
bandwidth_limit = 1MB  

Agregue el campo en la configuración del proxy bandwidth_limitpara habilitar esta función. Actualmente, solo se admiten MBlas unidades y .KB

(5) Mapeo de puertos de rango

Se pueden especificar varios puertos para asignarlos en el archivo de configuración frpc. Actualmente, solo se admiten los tipos tcp y udp.

Esta función se range:implementa a través de la etiqueta de párrafo. El cliente analizará la configuración en esta etiqueta y la dividirá en varios servidores proxy. Cada proxy se nombra con un número como sufijo.

Por ejemplo, para asignar los seis puertos locales 6000-6005, 6007, la configuración principal es la siguiente:

# frpc.ini  
[range:test_tcp]  
type = tcp  
local_ip = 127.0.0.1  
local_port = 6000-6006,6007  
remote_port = 6000-6006,6007  

Una vez que la conexión real sea exitosa, se crearán y nombrarán 8 servidores proxy test_tcp_0, test_tcp_1 ... test_tcp_7.

3. puaj

3.1 Introducción

EW es una herramienta de penetración de red portátil con dos funciones principales: configuración del servicio SOCKS v5 y reenvío de puertos, que puede completar la penetración de la red en entornos de red complejos. Sin embargo, la herramienta ya no se actualiza. . .

imagen

3.2 Características

  1. Ligero, escrito en lenguaje C.
  2. Se pueden configurar servidores proxy de varios niveles
  3. Multiplataforma
  4. Pero sólo es compatible con el proxy Socks5

3.3 Cómo utilizar

Los siguientes métodos de uso se han tomado de: http://rootkiter.com/EarthWorm/

En todos los ejemplos siguientes, a menos que se especifique lo contrario, el puerto de proxy es 1080 y el servicio es el servicio de proxy SOCKSv5.

Esta herramienta tiene 6 formatos de comando (ssocksd, rcsocks, rssocks, lcx_slave, lcx_listen, lcx_tran).

1. Reenviar servidor SOCKS v5

$ ./ew -s ssocksd -l 1080  

2. Servidor SOCKS v5 de rebote

Esta operación se divide en dos pasos:
a) Primero ejecute el siguiente comando en un host A con una IP de red pública:

$ ./ew -s rcsocks -l 1080 -e 8888   

b) Inicie el servicio SOCKS v5 en el host B de destino y rebote al puerto 8888 del host de la red pública.

$ ./ew -s rssocks -d 1.1.1.1 -e 8888   

éxito.

3. Cascada multinivel

Hay tres instrucciones de reenvío de puertos que vienen con la herramienta. Sus formatos de parámetros son:

$ ./ew -s lcx_listen -l  1080   -e 8888    
$ ./ew -s lcx_tran   -l  1080   -f 2.2.2.3 -g 9999    
$ ./ew -s lcx_slave  -d 1.1.1.1 -e 8888    -f 2.2.2.3  -g  9999  

A través de estas instrucciones de reenvío de puertos, los servicios basados ​​en TCP que se encuentran en lo profundo de la red se pueden reenviar a la raíz, como SOCKS v5. Primero, se proporcionan dos muestras de prueba SOCKS locales de "cascada secundaria":

lcx_tranUso de a)

$ ./ew -s ssocksd  -l 9999  
$ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999  

b) lcx_listen, lcx_slaveuso

$ ./ew -s lcx_listen -l 1080 -e 8888  
$ ./ew -s ssocksd    -l 9999  
$ ./ew -s lcx_slave  -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999  

Se proporciona como referencia un caso de prueba SOCKS local de "cascada de tres niveles".

$ ./ew -s rcsocks -l 1080 -e 8888   
$ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999    
$ ./ew -s lcx_listen -l 9999 -e 7777    
$ ./ew -s rssocks -d 127.0.0.1 -e 7777  

Flujo de datos:SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

4. ronquidos

4.1 Introducción

ngrok es un proxy inverso que establece un canal seguro entre un punto final público y un servidor web que se ejecuta localmente para que los servicios del host de la intranet puedan exponerse a la red externa. ngrok puede capturar y analizar el tráfico en todos los canales para su posterior análisis y reproducción, por lo que ngrok puede ayudar fácilmente en las pruebas de programas del lado del servidor.

4.2 Características

  1. Mantenimiento oficial, generalmente relativamente estable.
  2. Multiplataforma, código cerrado
  3. Tiene funciones de grabación y retransmisión de tráfico.

4.3 Cómo utilizar

  1. Ingrese al sitio web oficial de ngrok (https://ngrok.com/), registre una cuenta de ngrok y descargue ngrok;
  2. De acuerdo con el código de autorización proporcionado en el sitio web oficial, ejecute el siguiente comando de autorización;
  3. ./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_****
  4. ./ngrok http 80El servicio http del puerto 80 de la máquina se puede exponer a la red pública y se proporcionará un nombre de dominio de red pública.

imagen

Puede ver paquetes de datos, tráfico, etc. a través de la interfaz UI del sitio web oficial (pero debe pagar ==,)

Insertar descripción de la imagen aquí

También puede exponer archivos y otros servicios TCP en la intranet a la red pública mediante algunos comandos.

Configurar el uso compartido de archivos con autorización

ngrok http -auth="user:password" file:///Users/alan/share  

Configurar el uso compartido de archivos sin autorización

ngrok http "file:///C:\Users\alan\Public Folder"  

Exponer el puerto TCP 3389 del host a la red pública

ngrok tcp 3389  

Para obtener más referencias de uso: https://ngrok.com/docs

n 1hAotxhmORtzCYvUc3BsxDBPh1H_**** 4../ngrok http 80` expondrá el servicio http del puerto 80 de la máquina a la red pública y proporcionará un nombre de dominio de red pública.

[Las imágenes del enlace externo se están transfiriendo...(img-Hy0jSrCW-1693900445840)]

Puede ver paquetes de datos, tráfico, etc. a través de la interfaz UI del sitio web oficial (pero debe pagar ==,)

[Las imágenes del enlace externo se están transfiriendo...(img-oHS77AKN-1693900445840)]

También puede exponer archivos y otros servicios TCP en la intranet a la red pública mediante algunos comandos.

Configurar el uso compartido de archivos con autorización

ngrok http -auth="user:password" file:///Users/alan/share  

Configurar el uso compartido de archivos sin autorización

ngrok http "file:///C:\Users\alan\Public Folder"  

Exponer el puerto TCP 3389 del host a la red pública

ngrok tcp 3389  

Para obtener más referencias de uso: https://ngrok.com/docs

! ! ! Enlace original: https://ngrok.com/docs

Supongo que te gusta

Origin blog.csdn.net/LSW1737554365/article/details/132694128
Recomendado
Clasificación