GoGPT Best VPN GoSearch

icono de página de OnWorks

sslsplit: en línea en la nube

Ejecute sslsplit en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando sslsplit que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


sslsplit: interceptación SSL / TLS transparente y escalable

SINOPSIS


división ssl [-kckopzddggsrreumjpllsfi] -c pem especificaciones de proxy [...]
división ssl [-kckopzddggsrreumjpllsfi] -c pem -t dir especificaciones de proxy [...]
división ssl [-OPZdDgGsrReumjplLSFi] -t dir especificaciones de proxy [...]
división ssl -E
división ssl -V
división ssl -h

DESCRIPCIÓN


SSLsplit es una herramienta para ataques man-in-the-middle contra redes cifradas SSL / TLS
conexiones. Las conexiones se interceptan de forma transparente a través de una dirección de red
motor de traducción y redirigido a SSLsplit. SSLsplit termina SSL / TLS e inicia
una nueva conexión SSL / TLS a la dirección de destino original, mientras se registran todos los datos
transmitido. SSLsplit está destinado a ser útil para la penetración y análisis forense de redes
pruebas.

SSLsplit admite conexiones TCP sin formato, SSL sin formato, HTTP y HTTPS a través de IPv4 y
IPv6. Para conexiones SSL y HTTPS, SSLsplit genera y firma X509v3 falsificado
certificados sobre la marcha, basados ​​en el DN del sujeto del certificado del servidor original y
extensión subjectAltName. SSLsplit es totalmente compatible con la indicación de nombre de servidor (SNI) y es
capaz de trabajar con claves RSA, DSA y ECDSA y conjuntos de cifrado DHE y ECDHE. Dependiendo de
la versión de OpenSSL, SSLsplit es compatible con SSL 3.0, TLS 1.0, TLS 1.1 y TLS 1.2, y
opcionalmente SSL 2.0 también. SSLsplit también puede utilizar certificados existentes de los que
La clave privada está disponible, en lugar de generar claves falsificadas. SSLsplit admite NULL-
prefijo certificados CN y puede denegar solicitudes OCSP de forma genérica. Para HTTP y HTTPS
conexiones, SSLsplit elimina los encabezados de respuesta para HPKP para evitar la clave pública
anclado, para que HSTS permita al usuario aceptar certificados que no son de confianza, y alternativo
Protocolos para evitar el cambio a QUIC / SPDY.

SSLsplit admite varios motores NAT, reenvío estático y búsquedas de DNS SNI para
determinar el destino original de las conexiones redirigidas (ver NAT ENGINES y PROXY
ESPECIFICACIONES a continuación).

Para implementar realmente un ataque, también necesita redirigir el tráfico al sistema
correr división ssl. Tus opciones incluyen correr división ssl en un enrutador legítimo, ARP
suplantación de identidad, suplantación de ND, envenenamiento de DNS, implementación de un punto de acceso no autorizado (por ejemplo, usando hostap
modo), recableado físico, reconfiguración de VLAN maliciosa o inyección de ruta, / etc / hosts
modificación y así sucesivamente. SSLsplit no implementa la redirección de tráfico real.

OPCIONES


-c archivo pem
Usar certificado CA de archivo pem para firmar certificados falsificados sobre la marcha. Si archivo pem
también contiene la clave privada de CA correspondiente, también está cargada; de lo contrario, debe ser
proporcionado con -k. Si archivo pem también contiene parámetros de grupo Diffie-Hellman,
también se cargan, de lo contrario se les puede proporcionar -g. Si -t también se da,
SSLsplit solo falsificará un certificado si no hay un certificado coincidente en el
directorio de certificados proporcionado.

-C archivo pem
Utilice certificados de CA de archivo pem como certificados adicionales en la cadena de certificados.
Esto es necesario si la CA dada con -k y -c es una sub-CA, en cuyo caso cualquier
Los certificados de CA intermedios y el certificado de CA raíz deben incluirse en el
cadena de certificados.

-d Desconecte de TTY y ejecútelo como un demonio, registrando mensajes de error en syslog en lugar de
Error estándar.

-D Ejecute en modo de depuración, registre mucha información de depuración hasta el error estándar. Esto también
fuerza el modo de primer plano y no se puede utilizar con -d.

-e motor
Use motor como el motor NAT predeterminado para especificaciones de proxy sin motor NAT explícito,
dirección de destino estática o modo SNI. motor puede ser cualquiera de los motores NAT
soportado por el sistema, según lo devuelto por -E.

-E Enumere todos los motores NAT compatibles disponibles en el sistema y salga. Ver MOTORES NAT
para obtener una lista de los motores NAT compatibles actualmente con SSLsplit.

-F especificación de registro
Registre el contenido de la conexión en archivos de registro separados con la especificación de ruta dada (consulte
ESPECIFICACIONES DE REGISTRO a continuación). Para cada conexión, se escribirá un archivo de registro, que
contendrá ambas direcciones de los datos transmitidos. Información sobre el
La conexión estará contenida solo en el nombre del archivo. Si -F se usa con -j, especificación de registro
es relativo a Jaildir. Si -F se usa con -u, especificación de registro debe ser escribible por usuario.

-g archivo pem
Utilice los parámetros de grupo Diffie-Hellman de archivo pem para Ephemereal Diffie-Hellman
(EDH / DHE) conjuntos de cifrado. Si -g no se proporciona, SSLsplit primero intenta cargar DH
parámetros de los archivos PEM dados por -K, -k or -c. Si no se encuentran parámetros DH
en los archivos de claves, los parámetros de grupo integrados de 512 o 1024 bits se utilizan automáticamente
si se proporciona una clave privada no RSA con -K. Esto se debe a que las claves privadas DSA / DSS
por sí mismos solo se pueden usar para firmar y, por lo tanto, requieren que DH intercambie un
Clave de sesión SSL / TLS. Si -g se da, los parámetros de la dada archivo pem will
ser utilizado siempre, incluso con claves privadas RSA (dentro de los conjuntos de cifrado disponibles en
OpenSSL). los -g La opción solo está disponible si SSLsplit se creó con una versión
de OpenSSL que admite conjuntos de cifrado Diffie-Hellman.

-G curva
Utilice el nombre curva para cifrado de curva elíptica efemereal Diffie-Hellman (EECDH)
suites. Si -G no se da, una curva predeterminada (secp160r2) se utiliza automáticamente si
se proporciona una clave privada no RSA con -K. Esto se debe a que las claves privadas ECDSA / ECDSS
por sí mismos solo pueden usarse para firmar y, por lo tanto, requieren que ECDH intercambie un
Clave de sesión SSL / TLS. Si -G se da, el nombrado curva siempre se utilizará, incluso
con claves privadas RSA (dentro de los conjuntos de cifrado disponibles en OpenSSL). los -G
La opción solo está disponible si SSLsplit se creó con una versión de OpenSSL que
admite conjuntos de cifrado Elliptic Curve Diffie-Hellman.

-h Muestra ayuda sobre el uso y la salida.

-i Para cada conexión, busque el proceso local que posee la conexión. Esto hace
procesar información como pid, propietario: grupo y ruta ejecutable para las conexiones
que se origina en el mismo sistema que SSLsplit disponible para el registro de conexión y habilita
el respectivo -F directivas de especificación de ruta. -i está disponible en Mac OS X y
FreeBSD; el soporte para otras plataformas aún no se ha implementado.

-j Jaildir
Cambie el directorio raíz a Jaildir usando chroot(2) después de abrir archivos. Nota
que esto tiene implicaciones para -F, -Sy para sni especificaciones de proxy. El camino dado con
-S or -F será relativo a Jaildir ya que los archivos de registro no se pueden abrir antes
llamar chroot(2). Dependiendo de su sistema operativo, necesitará copiar archivos
como / Etc / resolv.conf a Jaildir para que la resolución de nombres funcione. Utilizando
sni proxyspecs depende de la resolución del nombre. Algunos sistemas operativos requieren
nodos de dispositivo como / dev / null estar presente dentro de la cárcel. Compruebe su sistema
documentación para más detalles.

-k archivo pem
Utilice la clave privada de CA de archivo pem para firmar certificados falsificados sobre la marcha. Si archivo pem
también contiene el certificado de CA correspondiente, también se carga, de lo contrario debe ser
proporcionado con -c. Si archivo pem también contiene parámetros de grupo Diffie-Hellman,
también se cargan, de lo contrario se les puede proporcionar -g. Si -t también se da,
SSLsplit solo falsificará un certificado si no hay un certificado coincidente en el
directorio de certificados proporcionado.

-K archivo pem
Usar clave privada de archivo pem para certificados falsificados sobre la marcha. Si -K no es
dado, SSLsplit generará una clave RSA aleatoria de 1024 bits.

-l archivo de registro
Registrar conexiones a archivo de registro en una sola línea por formato de conexión, incluyendo
direcciones y puertos y cierta información HTTP y SSL, si está disponible.

-L archivo de registro
Registrar el contenido de la conexión en archivo de registro. El registro de contenido contendrá un registro analizable
formato con datos transmitidos, precedidos de encabezados que identifican la conexión y
la longitud de los datos de cada segmento registrado.

-m Al eliminar privilegios usando -u, anula el grupo primario de destino que se establecerá en
grupo de XNUMX.

-O Denegar todas las solicitudes del Protocolo de estado de certificado en línea (OCSP) en todos especificaciones de proxy y
para todos los servidores OCSP con una respuesta OCSP de intenta más tarde, provocando que los clientes OCSP
aceptar temporalmente incluso certificados revocados. Las solicitudes HTTP se tratan como
OCSP solicita si el método es y el URI contiene un sintácticamente válido
OCSPRequest ASN.1 estructura analizable por OpenSSL, o si el método es PUBLICAR y
Content-Type is solicitud / ocsp-request. Para que esto sea efectivo, SSLsplit debe
estar manejando el tráfico destinado al puerto utilizado por el servidor OCSP. En particular,
SSLsplit debe configurarse para recibir tráfico a todos los puertos utilizados por los servidores OCSP de
certificados de destino dentro del certificado especificado por -t.

-p archivo pid
Escriba el ID del proceso en archivo pid y negarse a correr si el archivo pid Esta en uso
por otro proceso.

-P Conexiones de paso a través SSL / TLS que no se pueden dividir en lugar de descartarlas.
Las conexiones no se pueden dividir si -c y -k no se dan y el sitio no coincide
cualquier certificado cargado usando -t, o si la conexión al servidor original da
Errores SSL / TLS. Específicamente, esto sucede si el sitio solicita un cliente
certificado. Passthrough con -P resulta en un servicio ininterrumpido para los clientes,
mientras que la caída es la alternativa más segura si las conexiones no monitoreadas deben ser
prevenido.

-r proto
Forzar la versión del protocolo SSL / TLS tanto en el lado del cliente como en el del servidor para proto seleccionando
el constructor del método OpenSSL respectivo en lugar del método SSLv23_method () predeterminado
que admite todas las versiones de protocolo. Esto es útil al analizar el tráfico a un
servidor que solo admite una versión específica de SSL / TLS y no implementa
negociación adecuada del protocolo. Dependiendo de las opciones de compilación y la versión de OpenSSL
que se utiliza, los siguientes valores para proto son aceptados: ssl2, ssl3, tls10, tls11
y tls12. Tenga en cuenta que la compatibilidad con SSL 2.0 no está integrada de forma predeterminada porque algunos
los servidores no manejan correctamente los mensajes de saludo del cliente SSL 2.0.

-R proto
Deshabilite la versión del protocolo SSL / TLS proto tanto en el lado del cliente como en el del servidor
deshabilitando los respectivos protocolos en OpenSSL. Para deshabilitar varios protocolos
versiones, -R se puede administrar varias veces. Si -r también se da, no habrá
efecto en la desactivación de otras versiones del protocolo. Deshabilitar las versiones de protocolo es útil
al analizar el tráfico a un servidor que no maneja algunas versiones de protocolo
bien, o para probar el comportamiento con diferentes versiones de protocolo. Dependiendo de la construcción
opciones y la versión de OpenSSL que se utiliza, los siguientes valores para proto están
aceptado: ssl2, ssl3, tls10, tls11 y tls12. Tenga en cuenta que la compatibilidad con SSL 2.0 no es
integrado de forma predeterminada porque algunos servidores no manejan los mensajes de saludo del cliente SSL 2.0
graciosamente.

-s sistemas de cifrado
Utilice OpenSSL sistemas de cifrado especificación para conexiones SSL / TLS de servidor y cliente.
If -s no se da, una lista cifrada de TODOS: -aNULL se utiliza. Normalmente, SSL / TLS
las implementaciones eligen las suites de cifrado más seguras, no las más rápidas. Por
especificando una lista de cifrado OpenSSL apropiada, el conjunto de conjuntos de cifrado puede ser
limitado a algoritmos rápidos, o eNULO Se pueden agregar conjuntos de cifrado. Tenga en cuenta que para
conexiones para tener éxito, los conjuntos de cifrado SSLsplit deben incluir al menos una
suite de cifrado compatible tanto con el cliente como con el servidor de cada conexión. Ver
sistemas de cifrado(1) para obtener detalles sobre cómo construir listas de cifrado OpenSSL.

-S registrodir
Registre el contenido de la conexión en archivos de registro separados en registrodir. Para cada conexión, un
Se escribirá el archivo de registro, que contendrá ambas direcciones de datos como
transmitido. La información sobre la conexión estará contenida en el nombre del archivo
solo. Si -S se usa con -j, registrodir es relativo a Jaildir. Si -S se usa con
-u, registrodir debe ser escribible por usuario.

-t certificado
Utilice la clave privada, el certificado y la cadena de certificados de los archivos PEM en certificado para
sitios que coinciden con los respectivos nombres comunes, en lugar de utilizar certificados falsificados
sobre la marcha. Un solo archivo PEM debe contener una sola clave privada, una sola
certificado y, opcionalmente, certificados de CA raíz e intermedia para usar como
cadena de certificados. Si -c y -k también se dan, los certificados se falsificarán en-
sobre la marcha para sitios que no coincidan con ninguno de los certificados cargados desde certificado.
De lo contrario, las conexiones que no coincidan con ningún certificado se descartarán, o si -P es dado,
pasó sin dividir SSL / TLS.

-u Elimine los privilegios después de abrir sockets y archivos configurando lo real, efectivo y
ID de usuario almacenados en usuario y carga de los grupos primarios y auxiliares apropiados.
If -u no se proporciona, SSLsplit eliminará los privilegios del UID almacenado si EUID! = UID
(escenario de bit setuid), o para nadie si se ejecuta con lleno raíz privilegios (EUID ==
UID == 0) y -S no se utiliza. Debido a un error de Apple, -u no se puede utilizar con pf
proxyspecs en Mac OS X.

-V Muestra la versión y la información de características compiladas y sale.

-Z Desactive la compresión SSL / TLS en todas las conexiones. Esto es útil si su limitación
El factor es la CPU, no el ancho de banda de la red. los -Z La opción solo está disponible si SSLsplit
se creó con una versión de OpenSSL que admite la desactivación de la compresión.

PROXY ESPECIFICACIONES


Especificaciones de proxy (especificaciones de proxy) constan del tipo de conexión, la dirección de escucha y
dirección de reenvío estática o mecanismo de resolución de dirección (motor NAT, búsqueda de DNS SNI):

https escuchadir Puerto [nat-motor|fwdaddr Puerto|sni Puerto]
ssl escuchadir Puerto [nat-motor|fwdaddr Puerto|sni Puerto]
http escuchadir Puerto [nat-motor|fwdaddr Puerto]
tcp escuchadir Puerto [nat-motor|fwdaddr Puerto]

https Intercepción SSL / TLS con decodificación del protocolo HTTP, incluida la eliminación de HPKP,
Encabezados de respuesta HSTS y protocolo alternativo.

ssl Intercepción SSL / TLS sin decodificación de protocolo de nivel inferior; descifrado
el contenido de la conexión se trata como un flujo opaco de bytes y no se modifica.

http Conexión TCP simple sin SSL / TLS, con decodificación de protocolo HTTP, incluida la
eliminación de los encabezados de respuesta de HPKP, HSTS y Alternate Protocol.

tcp Conexión TCP simple sin SSL / TLS y sin decodificación de protocolo de nivel inferior;
el contenido de la conexión descifrado se trata como un flujo opaco de bytes y no se modifica.

escuchadir Puerto
Dirección IPv4 o IPv6 y puerto o nombre de servicio para escuchar. Esta es la dirección
y el puerto al que el motor NAT debería redirigir las conexiones.

nat-motor
Motor NAT para consultar para determinar la dirección de destino original y el puerto de
conexiones redirigidas de forma transparente. Si no se proporciona ningún motor, el motor predeterminado es
utilizado, a menos que se anule con -e. Cuando se utiliza un motor NAT, división ssl necesita correr
el mismo sistema que las reglas NAT que redirigen el tráfico a división ssl. Ver NAT
ENGINES para obtener una lista de motores NAT compatibles.

fwdaddr Puerto
Dirección de destino estática, IPv4 o IPv6, con puerto o nombre de servicio. Cuando esto es
utilizadas, las conexiones se reenvían a la dirección y al puerto del servidor indicados. Si fwdaddr
es un nombre de host, se resolverá en una dirección IP.

sni Puerto
Utilice el nombre de host de Indicación de nombre de servidor (SNI) enviado por el cliente en ClientHello
Mensaje SSL / TLS para determinar la dirección IP del servidor al que conectarse. Solo esto
trabaja para ssl y https especificaciones de proxy y necesita un puerto o nombre de servicio como argumento.
Debido a que esto requiere búsquedas de DNS, es preferible utilizar búsquedas de motor NAT (consulte
arriba), excepto cuando eso no sea posible, como cuando no hay NAT compatible
motor o en funcionamiento división ssl en un sistema diferente al de las reglas NAT
redireccionando las conexiones reales. Tenga en cuenta que al usar -j con sni, tu puedes necesitar
prepararse Jaildir para que la resolución de nombres funcione desde el directorio chroot.

LOG ESPECIFICACIONES


Las especificaciones de registro se componen de cero o más directivas de estilo printf; ordinario
los caracteres se incluyen directamente en la ruta de salida. La corriente SSLsplit admite la
siguientes directivas:

%T La hora de conexión inicial como una marca de tiempo UTC ISO 8601.

%d La dirección y el puerto de destino.

%s La dirección de origen y el puerto.

%x El nombre del proceso local. Requiere -i para ser utilizado. Si la información del proceso es
no disponible, esta directiva se omitirá de la ruta de salida.

%X La ruta completa del proceso local. Requiere -i para ser utilizado. Si proceso
la información no está disponible, esta directiva se omitirá de la ruta de salida.

%u El nombre de usuario o uid numérico del proceso local. Requiere -i para ser utilizado. Si
la información del proceso no está disponible, esta directiva se omitirá de la salida
camino.

%g El nombre de grupo o gid numérico del proceso local. Requiere -i para ser utilizado. Si
la información del proceso no está disponible, esta directiva se omitirá de la salida
camino.

%% Un carácter '%' literal.

NAT MOTORES


SSLsplit actualmente admite los siguientes motores NAT:

pf Filtro de paquetes OpenBSD (pf) RDR/rdr-a Redirecciones NAT, también disponibles en FreeBSD,
NetBSD y Mac OS X. Totalmente compatible, incluido IPv6. Suponiendo interfaz entrante
em0, primero en la sintaxis antigua (FreeBSD, Mac OS X), luego en la nueva (OpenBSD 4.7+):

RDR pass on em0 proto tcp de 2001: db8 :: / 64 a cualquier Puerto 80 \
-> :: 1 Puerto 10080
RDR pass on em0 proto tcp de 2001: db8 :: / 64 a cualquier Puerto 443 \
-> :: 1 Puerto 10443
RDR pass on em0 proto tcp de 192.0.2.0/24 a cualquier Puerto 80 \
-> 127.0.0.1 Puerto 10080
RDR pass on em0 proto tcp de 192.0.2.0/24 a cualquier Puerto 443 \
-> 127.0.0.1 Puerto 10443

pass in rápido on em0 proto tcp de 2001: db8 :: / 64 a cualquier \
Puerto 80 rdr-a :: 1 Puerto 10080
pass in rápido on em0 proto tcp de 2001: db8 :: / 64 a cualquier \
Puerto 443 rdr-a :: 1 Puerto 10443
pass in rápido on em0 proto tcp de 192.0.2.0/24 a cualquier \
Puerto 80 rdr-a 127.0.0.1 Puerto 10080
pass in rápido on em0 proto tcp de 192.0.2.0/24 a cualquier \
Puerto 443 rdr-a 127.0.0.1 Puerto 10443

ipfw FreeBSD IP firewall (IPFW) desvío de sockets, también disponible en Mac OS X. Disponible
en FreeBSD y OpenBSD usando pf desviar a. Totalmente compatible con FreeBSD y OpenBSD,
incluido IPv6. Solo es compatible con IPv4 en Mac OS X debido a la versión antigua de IPFW
incluido. Primero en IPFW, luego en pf desviar a sintaxis:

ipfw add fwd :: 1,10080 tcp de 2001: db8 :: / 64 a cualquier 80
ipfw add fwd :: 1,10443 tcp de 2001: db8 :: / 64 a cualquier 443
ipfw add fwd 127.0.0.1,10080 tcp de 192.0.2.0/24 a cualquier 80
ipfw add fwd 127.0.0.1,10443 tcp de 192.0.2.0/24 a cualquier 443

pass in rápido on em0 proto tcp de 2001: db8 :: / 64 a cualquier \
Puerto 80 desviar a :: 1 Puerto 10080
pass in rápido on em0 proto tcp de 2001: db8 :: / 64 a cualquier \
Puerto 443 desviar a :: 1 Puerto 10443
pass in rápido on em0 proto tcp de 192.0.2.0/24 a cualquier \
Puerto 80 desviar a 127.0.0.1 Puerto 10080
pass in rápido on em0 proto tcp de 192.0.2.0/24 a cualquier \
Puerto 443 desviar a 127.0.0.1 Puerto 10443

filtro ip
IPFilter (ipfilter, ipf), disponible en muchos sistemas, incluidos FreeBSD, NetBSD,
Linux y Solaris. Solo admite IPv4 debido a limitaciones en el SIOCGNATL ioctl(2)
interfaz. Suponiendo interfaz entrante bge0:

RDR bge0 0.0.0.0/0 Puerto 80 -> 127.0.0.1 Puerto 10080
RDR bge0 0.0.0.0/0 Puerto 443 -> 127.0.0.1 Puerto 10443

netfilter
Netfilter de Linux usando el objetivo de iptables REDIRECT. Solo es compatible con IPv4 debido a
limitaciones en el SO_ORIGINAL_DST recibe(2) interfaz.

iptables -t nat -A PREROUTING -s 192.0.2.0/24 \
-p tcp --dport 80 \
-j Redireccionar --a-puertos 10080
iptables -t nat -A PREROUTING -s 192.0.2.0/24 \
-p tcp --dport 443 \
-j Redireccionar --a-puertos 10443

proxy Netfilter de Linux usando el destino TPROXY de iptables junto con la tabla de enrutamiento mágica
para permitir que el tráfico no local se origine en sockets locales. Totalmente compatible
incluido IPv6.

ip -f inet6 gobernar add marca de fw 1 lookup 100
ip -f inet6 ruta add local la página predeterminada dev lo mesa 100
tablas ip6 -t desaparecido -N DESVIAR
tablas ip6 -t desaparecido -A DESVIAR -j MARCA --establecer marca 1
tablas ip6 -t desaparecido -A DESVIAR -j ACEPTAR
tablas ip6 -t desaparecido -A PREROUTING -p tcp -m enchufe -j DESVIAR
tablas ip6 -t desaparecido -A PREROUTING -s 2001: db8 :: / 64 \
-p tcp --dport 80 \
-j Tproxy --tproxy-marca 0x1 / 0x1 --en puerto 10080
tablas ip6 -t desaparecido -A PREROUTING -s 2001: db8 :: / 64 \
-p tcp --dport 443 \
-j Tproxy --tproxy-marca 0x1 / 0x1 --en puerto 10443
ip -f inet gobernar add marca de fw 1 lookup 100
ip -f inet ruta add local la página predeterminada dev lo mesa 100
iptables -t desaparecido -N DESVIAR
iptables -t desaparecido -A DESVIAR -j MARCA --establecer marca 1
iptables -t desaparecido -A DESVIAR -j ACEPTAR
iptables -t desaparecido -A PREROUTING -p tcp -m enchufe -j DESVIAR
iptables -t desaparecido -A PREROUTING -s 192.0.2.0/24 \
-p tcp --dport 80 \
-j Tproxy --tproxy-marca 0x1 / 0x1 --en puerto 10080
iptables -t desaparecido -A PREROUTING -s 192.0.2.0/24 \
-p tcp --dport 443 \
-j Tproxy --tproxy-marca 0x1 / 0x1 --en puerto 10443

Tenga en cuenta que el filtrado de la ruta de retorno (rp_filter) también debe desactivarse en las interfaces
que manejan el tráfico redirigido de TPROXY.

EJEMPLOS


Coincidiendo con las muestras de configuración del motor NAT anteriores, intercepte HTTP y HTTPS sobre IPv4
e IPv6 usando certificados falsificados con clave privada de CA ca.clave y certificado ca.crt,
registrando conexiones a conectar.log y datos de conexión en archivos separados bajo / Tmp (añadir
-e nat-motor para seleccionar el motor apropiado si hay varios motores disponibles en su
sistema):

división ssl -k ca.clave -c ca.crt -l conectar.log -L / Tmp \
https :: 1 10443 https 127.0.0.1 10443 \
http :: 1 10080 http 127.0.0.1 10080

Interceptar IMAP / IMAPS usando la misma configuración:

división ssl -k ca.clave -c ca.crt -l conectar.log -L / Tmp \
ssl :: 1 10993 ssl 127.0.0.1 10993 \
tcp :: 1 10143 tcp 127.0.0.1 10143

Una configuración más específica, solo HTTPS, utilizando archivos de certificado / cadena / clave de /ruta/a/cert.d
y redirigir estáticamente a www.ejemplo.org en lugar de consultar un motor NAT:

división ssl -t /ruta/a/cert.d -l conectar.log -L / Tmp \
https :: 1 10443 www.ejemplo.org 443 \
https 127.0.0.1 10443 www.ejemplo.org 443

El ejemplo original, pero usando opciones de SSL optimizadas para la velocidad al deshabilitar la compresión
y seleccionando solo conjuntos de cifrado de cifrado de bloque rápido y usando una clave privada precalculada
hoja.key para los certificados falsificados (el aumento de velocidad más significativo se obtiene
elegir algoritmos rápidos y tamaños de clave pequeños para la CA y las claves privadas hoja; cheque
openssl velocidad para el rendimiento del algoritmo en su sistema):

división ssl -Z -s NULO: RC4: AES128 -K hoja.key \
-k ca.clave -c ca.crt -l conectar.log -L / Tmp \
https :: 1 10443 https 127.0.0.1 10443 \
http :: 1 10080 http 127.0.0.1 10080

El ejemplo original, pero ejecutándose como un demonio bajo el usuario división ssl y escribiendo un archivo PID:

división ssl -d -p /var/run/sslsplit.pid -u división ssl \
-k ca.clave -c ca.crt -l conectar.log -L / Tmp \
https :: 1 10443 https 127.0.0.1 10443 \
http :: 1 10080 http 127.0.0.1 10080

Para generar una clave privada de CA ca.clave y certificado ca.crt usando OpenSSL:

gato > x509v3ca.cnf << 'EOF'
[req]
nombre_distinguido = reqdn

[reqdn]

[v3_ca]
basicConstraints = CA: TRUE
identificador de clave de asunto = hash
AuthorityKeyIdentifier = keyid: siempre, emisor: siempre
EOF

openssl Genrsa -fuera ca.clave 1024
openssl req -nuevo -nodos -x509 -sha1 -fuera ca.crt -llave ca.clave \
-config x509v3ca.cnf -extensiones v3_ca \
-sujeto '/ O = SSLsplit root CA / CN = SSLsplit root CALIFORNIA/' \
-set_serial 0 -dias 3650

NOTAS


SSLsplit es capaz de manejar un número relativamente alto de oyentes y conexiones debido a un
arquitectura multiproceso basada en eventos basada en libevent, aprovechando la plataforma
reemplazos específicos de select () como kqueue. El hilo principal maneja los oyentes y
señalización, mientras que un número de subprocesos de trabajo igual al doble del número de núcleos de CPU es
utilizado para manejar las conexiones reales en bases de eventos separadas, incluida la CPU-
manejo intensivo de SSL / TLS.

Se ha tenido cuidado de elegir estructuras de datos de buen rendimiento para almacenar en caché los certificados y
Sesiones SSL. El registro se implementa en subprocesos de escritura de disco separados para garantizar que
Los subprocesos de manejo de eventos de socket no tienen que bloquearse en la E / S del disco. Se realizan búsquedas de DNS
de forma asincrónica. SSLsplit utiliza el almacenamiento en caché de sesiones SSL en ambos extremos para minimizar la cantidad de
apretones de manos SSL completos, pero incluso entonces, el factor limitante en el manejo de conexiones SSL son
los cálculos de bignum reales.

Utilice sslsplit en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad




×
Anuncio
❤ ️Compre, reserve o adquiera aquí: sin costo, ayuda a mantener los servicios gratuitos.