Directorio de artículos
- Prefacio
- 1. nps-np
- 2. frp
-
-
- 2.1 Introducción
- 2.2 Características
- 2.3 Cómo utilizar
-
- 1) Acceda a la máquina de su hogar a través de rdp
- 2) Acceder a la máquina de la intranet de la empresa a través de SSH
- 3) Acceder a los servicios web implementados en la intranet a través de un nombre de dominio personalizado
- 4) Proporcionar servicios sencillos de acceso a archivos al mundo exterior.
- Funciones comunes
- (1) Panel de estadísticas
- (2) Cifrado y compresión
- (3)TLS
- (4) Límite de velocidad del agente
- (5) Mapeo de puertos de rango
-
- 3. puaj
- 4. ronquidos
![Insertar descripción de la imagen aquí](https://img-blog.csdnimg.cn/24dd9524d3324502ac3dd493fb34fc2e.png)
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 )
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
#web
los siguientes parámetros:web_host= 服务器IP或者域名 web_username= admin(登录用户名) web_password= 你的密码 web_port=8080(web管理端口)
Modificación:
#bridge
Puedes 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
Después de crear un nuevo cliente, también puede +
ver el comando detallado de conexión del cliente en:
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.
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.
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
- Modifique el archivo frps.ini. Por razones de seguridad, es mejor configurar la autenticación aquí. Si
token
los 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
- Iniciar FRP:
./frps -c ./frps.ini
- 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
- Iniciar frpc:
./frpc -c ./frpc.ini
- 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.
- 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
- 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
- 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.
- 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
- 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.
- 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
- Iniciar FRP:
./frps -c ./frps.ini
- 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
- Iniciar frpc:
./frpc -c ./frpc.ini
-
Resuelva
www.yourdomain.com
el nombre de dominio Un registro de IPx.x.x.x
Si el servidor ya tiene un nombre de dominio correspondiente, también puede resolver el registro CNAME al nombre de dominio original del servidor. -
http://www.yourdomain.com:8080
Puede 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_file
Se 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.
- Inicie frpc, habilite
static_file
el 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
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]:7500
acceder 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 = true
transmisió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 = true
la 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.ini
mayor seguridad.common
tls_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_limit
para habilitar esta función. Actualmente, solo se admiten MB
las 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. . .
3.2 Características
- Ligero, escrito en lenguaje C.
- Se pueden configurar servidores proxy de varios niveles
- Multiplataforma
- 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_tran
Uso de a)
$ ./ew -s ssocksd -l 9999
$ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
b) lcx_listen
, lcx_slave
uso
$ ./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
- Mantenimiento oficial, generalmente relativamente estable.
- Multiplataforma, código cerrado
- Tiene funciones de grabación y retransmisión de tráfico.
4.3 Cómo utilizar
- Ingrese al sitio web oficial de ngrok (https://ngrok.com/), registre una cuenta de ngrok y descargue ngrok;
- De acuerdo con el código de autorización proporcionado en el sitio web oficial, ejecute el siguiente comando de autorización;
./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_****
./ngrok http 80
El 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.
Puede ver paquetes de datos, tráfico, etc. a través de la interfaz UI del sitio web oficial (pero debe pagar ==,)
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