Buenas tardes mi amigo trabajador de la red.
Hace algún tiempo se acusó de IPv4 y todo el mundo está prestando atención a este asunto.
Los amigos que aún no lo sepan pueden leer este artículo: "Amazon: el año que viene se cobrará por todas las direcciones IPv4 públicas" .
Como todos sabemos, el número de direcciones de red IPv4 es muy limitado. Con el desarrollo de Internet global hasta el nivel actual, es obviamente imposible que a cada dispositivo se le asigne una dirección IPv4.
Entonces, ¿cómo se conecta ahora la banda ancha doméstica a Internet? Aquí se utilizan generalmente extensiones NAT.
Teniendo en cuenta que la principal demanda de la mayoría de los usuarios es obtener diversos recursos en Internet, los operadores nacionales en la mayoría de las ciudades no asignan dinámicamente direcciones de redes públicas a los usuarios domésticos de banda ancha de forma predeterminada.
En cambio, se reemplaza con una dirección de intranet detrás de una o más capas de NAT.
En este momento, no es muy amigable para algunos usuarios que tienen necesidades de conexión remota, acceso a archivos NAS o servicios de depuración temporal.
La herramienta de penetración de intranet es para resolver el problema de la falta de IP pública que acabamos de mencionar.
Hoy, desde la perspectiva de la penetración, resumiré varias herramientas de penetración de intranet y proxy de intranet comúnmente utilizadas por los trabajadores de la red.
Beneficio de lectura del artículo de hoy: "Descarga de recursos de la herramienta de penetración de intranet"
Las herramientas de penetración de intranet y proxy mencionadas hoy, los recursos se organizarán directamente para ustedes, amigos, presten atención al aprendizaje y uso del tutorial.
Envíame un mensaje privado , envía la contraseña "Penetración de Intranet" para obtener recursos limitados.
01 servidor proxy de penetración de intranet nps-npc
01 Introducción a nps
nps es un servidor proxy de penetración de intranet potente, ligero y de alto rendimiento.
Actualmente admite tcp, reenvío de tráfico udp, puede admitir cualquier protocolo de capa superior tcp, udp (acceso al sitio web de la intranet, depuración de la interfaz de pago local, acceso ssh, escritorio remoto, análisis dns de la intranet, etc.).
Además, también admite proxy http de intranet, proxy calcetines5 de intranet, p2p, etc., y tiene un potente terminal de gestión web.
- Un servidor (VPS) con una IP de red pública ejecutando el servidor (NPS)
- Uno o más servidores que se ejecutan en la intranet o PC que ejecutan clientes (NPC)
02 características nps
- Escrito en idioma Go.
- Soporte multiplataforma
- Proxies que soportan múltiples protocolos
- terminal de gestión web
03 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
En el directorio nps, habrá un archivo ejecutable nps, un directorio de configuración conf y un directorio de página web, solo necesitamos modificar conf/nps.conf :
vim conf/nps.conf
Es necesario cambiar algunos parámetros debajo de #web :
web_host= 服务器IP或者域名
web_username= admin(登录用户名)
web_password= 你的密码
web_port=8080(web管理端口)
Modificar #bridge puede 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 de la red, por lo que debemos modificarlos para que salgan.
##bridge
bridge_type=tcp
bridge_port=443 # 修改连接端口
bridge_ip=0.0.0.0
puesta en marcha.
#Mac/Linux
./nps test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态
#Windows
nps.exe test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态
04 PNJ
./npc -server=你的IP:8024 -vkey=唯一验证密码 -type=tcp
Después de crear un nuevo cliente, también puede verlo en +, el comando detallado de conexión del cliente:
05 terminal de gestión web
En la interfaz del cliente, las conexiones del cliente se pueden agregar de una manera nueva y la clave virtual de cada conexión se distingue de forma única.
Cada cliente, tras establecer una conexión, puede establecer múltiples túneles con diferentes protocolos, cada uno de los cuales es un agente diferente.
La máquina de intranet del agente se puede conectar a través de diferentes protocolos y puertos.
02 aplicación de proxy inverso de penetración de intranet frp
01 Introducción a frp
frp es una aplicación de proxy inverso de alto rendimiento centrada en la penetración de intranet y que admite TCP, UDP, HTTP, HTTPS y otros protocolos.
Los servicios de intranet pueden ser expuestos a la red pública de forma segura y conveniente mediante el tránsito de nodos con IP de red pública.
02 características de frp
- La comunicación cliente-servidor admite varios protocolos, como TCP, KCP y Websocket.
- Multiplexació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.
03 escenarios de uso de frp
Antes de realizar una configuración específica, descargue la última versión del programa desde la página de lanzamiento de acuerdo con el sistema operativo y la arquitectura correspondientes.
Coloque frps y frps.ini en la máquina con IP pública. Tenga cuidado de configurar el firewall o el grupo de seguridad para liberar los puertos utilizados en el archivo de configuración.
Coloque frpc y frpc.ini en la máquina en el entorno de intranet.
1. Acceda a la máquina de casa a través de rdp
(1) Modifique el archivo frps.ini. Por razones de seguridad, es mejor configurar la autenticación aquí.
Si los parámetros del token en la configuración común del servidor y del cliente son los mismos, la autenticación pasará:
# frps.ini
[common]
bind_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = abcdefgh
(2) Iniciar FRP:
./frps -c ./frps.ini
(3) Modifique el archivo frpc.ini, asumiendo 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
(4) Inicie frpc:
./frpc -c ./frpc.ini
(5) Acceda a la máquina remota a través de rdp, la dirección es: xxxx:6000
*Inicia automáticamente
Para el sistema Windows, para facilitar su uso, puede configurarlo para que se inicie silenciosamente 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
(2) Copie el archivo start_frpc.vbs, abra el siguiente directorio, preste atención a
<USER_NAME> a tu nombre de usuario:
C:\Users\<USER_NAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
(3) Haga clic derecho en el mouse y péguelo 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 de frps son los mismos que los anteriores.
(1) Inicie frpc, la configuración es la siguiente:
# 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
(2) Acceda a la máquina de la intranet a través de SSH, asumiendo que el nombre de usuario es prueba:
ssh -oPort=6000 prueba@xxxx
3. Acceda al servicio web implementado en la intranet a través de un nombre de dominio personalizado
A veces queremos permitir que otros accedan o prueben los servicios web que creamos localmente a través del nombre de dominio;
Sin embargo, dado que la máquina local no tiene una IP de red pública, el nombre de dominio no se puede resolver en la máquina local y esta función se puede realizar 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
(2) Iniciar FRP:
./frps -c ./frps.ini
(3) 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 el nombre de dominio personalizado www.sudominio.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
(4) Inicie frpc:
./frpc -c ./frpc.ini
(5) Resuelva el registro del nombre de dominio A de http://www.sudominio.com a IP xxxx. Si el servidor ya tiene un nombre de dominio correspondiente, también puede resolver el registro CNAME al nombre de dominio original del servidor.
(6) Acceso a través del navegador
http://www.yourdomain.com:8080 puede acceder al servicio web en la máquina de la intranet.
4. Proporcionar servicios sencillos de acceso a archivos al mundo exterior.
Se puede proporcionar externamente un servicio simple de acceso a archivos basado en HTTP a través del complemento static_file .
Los pasos de implementación de frps son los mismos que los anteriores.
(1) Inicie frpc, habilite el complemento static_file 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
(2) Acceso a través del navegador
http://xxxx:6000/static/ para ver los archivos ubicados en el directorio /tmp/file, se le pedirá que ingrese el nombre de usuario y la contraseña que se han configurado.
04 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 una gran cantidad 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 acceder a la interfaz del panel a través de http://[server_addr]:7500 , y 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 configurarse en frpc.ini para habilitar el cifrado y la compresión para el agente especificado. 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 ha identificado y bloqueado el acceso del tráfico a la red externa, como deshabilitar el protocolo SSH, etc.
Al configurar use_encryption = true , el contenido de la comunicación entre frpc y frps se cifrará y transmitirá, lo que evitará efectivamente que se intercepte el tráfico.
Si la longitud del mensaje transmitido es larga, comprimir el contenido de la transmisión configurando use_compression = true puede reducir efectivamente el tráfico de red entre frpc y fps y acelerar el 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 mediante el protocolo TLS entre frpc y frps.
Habilite esta función configurando tls_enable = true en común de frpc.ini , que es más seguro.
Para la multiplexación de puertos, el primer byte de frp para establecer una conexión TLS es 0x17.
Nota: Después de habilitar esta función, no necesita configurar use_encryption excepto para xtcp.
4. Límite de velocidad del proxy
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 ancho de banda_límite en la configuración del proxy para habilitar esta función; actualmente solo admite unidades MB y KB .
5. Mapeo de puertos de rango
En el archivo de configuración de frpc, se pueden especificar varios puertos para asignar. Actualmente, solo se admiten los tipos tcp y udp.
Esta función se implementa a través de la etiqueta de párrafo rango : y 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 mapear los 6 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 8 servidores proxy, denominados test_tcp_0, test_tcp_1... test_tcp_7 .
03 Herramienta de penetración de red portátil EW
01 Introducción a la SE
EW es un conjunto de herramientas portátiles de penetración de red, con dos funciones principales de creación de servicios SOCKS v5 y reenvío de puertos, que pueden completar la penetración de la red en entornos de red complejos. Sin embargo, la herramienta ya no se actualiza.
02 características de la guerra electrónica
- Ligero, escrito en lenguaje C.
- Se puede configurar un proxy multinivel
- Multiplataforma
- Pero sólo es compatible con el proxy Socks5
03 Cómo utilizar EW
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.
La 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:
(1) Primero ejecute el siguiente comando en un host A con una IP de red pública:
$ ./ew -s rcsocks -l 1080 -e 8888
(2) 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
La herramienta viene con tres instrucciones de reenvío de puertos y 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 en la capa profunda de la red se pueden reenviar a la raíz, como SOCKS v5.
Primero proporcione dos muestras de prueba SOCKS locales en "cascada secundaria":
(1) Uso de lcx_tran
$ ./ew -s ssocksd -l 9999
$ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
(2) Uso de lcx_listen y lcx_slave
$ ./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
(3) Proporcionar un caso de prueba SOCKS local de "cascada de tres niveles" como referencia
$ ./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
Dirección del flujo de datos: SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks
04 proxy inverso ngrok
01 Introducción a ngrok
ngrok es un proxy inverso. Al establecer un canal seguro entre el punto final público y el servidor web que se ejecuta localmente, los servicios del host de la red interna pueden 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 del programa del servidor.
02 características de ngrok
- Mantenimiento oficial, generalmente más estable.
- Multiplataforma, código cerrado
- Con registro de flujo y función de retransmisión.
03 Cómo utilizar ngrok
1. Ingrese al sitio web oficial de ngrok ( https://ngrok.com/ ), registre la cuenta de ngrok y descargue ngrok.
2. Ejecute el siguiente comando de autorización de acuerdo con el código de autorización proporcionado en el sitio web oficial.
3、./ngrok token de autenticación 1hAotxhmORtzCYvUc3BsxDBPh1H_****
4. ./ngrok http 80 puede exponer 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.
Puede ver los paquetes de datos y el tráfico 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.
Uso compartido de archivos de configuración autorizados
ngrok http -auth="user:password" file:///Users/alan/share
Compartir archivos de instalación no autorizados
ngrok http "file:///C:\Users\alan\Public Folder"
Exponer el puerto TCP 3389 del host a la red pública
ngrok tcp 3389
Terminando: Lao Yang 丨 ingeniero de redes senior de 10 años, más trabajadores de redes para mejorar los productos secos, preste atención a la cuenta oficial: Network Engineer Club