Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

13 de mayo de 2019

Algunos comandos útiles de openssl


Para consultar la longitud de una clave privada RSA:

openssl rsa -in private.key -text -noout



Para ver los datos de una petición de certificado (CSR):

openssl req -text -noout -in fichero.csr


Para ver los datos de un certificado en formato x509:

openssl x509 -text -noout -in certificado.cer


Para generar un fichero .pfx a partir de un certificado en formato x509:

openssl pkcs12 -export -out fichero.pfx -inkey claveprivada.key -in certificado.cer -certfile certificadoCA.cer


Para establecer una contraseña en un fichero de clave privada ya existente
openssl rsa -aes256 -in fichero.key -out fichero.cifrado.key


Para generar una clave privada (de 4096 bits)
openssl genrsa -des3 -out clave.key 4096


Para generar una solicitud de certificado
openssl req -new -key clave.key -out solicitud.csr


Para generar una clave privada, de 2048 bits, y solicitud de certificado
openssl req -newkey rsa:2048 -keyout clave.key -out solicitud.csr


Para generar un certificado (con validez de un año)
openssl x509 -req -days 365 -in solicitud.csr -signkey clave.key -out certificado.crt


Para eliminar la contraseña de una clave privada

openssl rsa -in clave.key -out clave.key.sincontraseña


Para convertir un certificado de formato .crt / .cer / .der a .pem:
openssl x509 -inform der -in certificado.cer -out certificado.pem


Para convertir un certificado de formato .pem a .crt / .cer / .der:
openssl x509 -outform der -in certificado.pem -out certificate.cer


Para verificar la validez de un certificado respecto a la clave privada:
openssl x509 -noout -modulus -in certificado.crt| openssl md5
openssl rsa -noout -modulus -in clave.key| openssl md5


Para convertir un certificado de formato .pem a .p12 con contraseña:
openssl pkcs12 -export -out cert.p12 -in cert.pem -inkey key.pem



Más comandos en Certificado Digitales con OpenSSL aquí

Otros comandos OpenSSL para conversión de formato de certificados y uso habitual de openssl

Etiquetas: ,

27 de julio de 2016

Algunas distribuciones Linux no tan conocidas

Al menos yo no las conocía aunque soy mal ejemplo porque hace tiempo que no sigo las muchas distribuciones que salen.

Estas distribuciones me han parecido interesantes para probarlas:

antiX - Una distribución basada en Debian, ligera, sin systemd, que arranca rápidamente desde pendrive y permite salvar cambios en la versión live.

Parrot Security OS - Distribución para realizar auditorías de seguridad que tiene versiones para Raspberry Pi y otros gadgets basados en procesadores ARM además de las típicas para arquitectura x86.

CoreOS - Es un sistema operativo ligero basado en kernel Linux más que una distro, creado para el despliegue en cluster de contenedores y basado en ChromeOS.

KaOS - Una distribución creada desde cero y centrada en KDE/Qt para arquitectura x86_64.

Alpine Linux - Distribución muy ligera para sistemas embebidos. Tiene versiones para gadgets con procesadores ARM.

Kali Linux - Distribución orientada a la seguridad. Esta distro es bastante más conocida pero la incluyo para los más despistados.

Etiquetas: , ,

8 de abril de 2015

Buscar usuarios que puedan logarse en un sistema Linux

Un mini script para buscar usuarios que puedan logarse en el sistema y no sea root:
for usuario in `grep -v -e "nologin$\|false$" passwd|awk -F":" '{ print $1 }'`;
do
 grep -E "^${usuario}:[^*\!]:" /etc/shadow|grep -v -e '^root:'
done;

Se aceptan sugerencias y correcciones

Etiquetas: , ,

13 de mayo de 2014

Ingeniería inversa para principiantes

He encontrado un magnífico libro gratuito sobre ingeniería inversa que comienza desde 0 y tiene 600 páginas: Reverse Engineering for Beginners

La página del autor, Dennis Yurichev, también tiene mucho material interesante.

Etiquetas: , , , ,

15 de abril de 2014

Heartbleed test

El gravísimo fallo de SSL que ha sido llamado Heartbleed permite obtener bloques de 64Kb de datos de la memoria del servidor o del cliente y se ha considerado el fallo más importante en los últimos años.

Para comprobar la seguridad de tu web, o algún servidor donde tengas datos importantes, puedes usar estos servicios online:

Chromebleed. Extensión de Chrome para detectar el fallo en una URL

Heartbleed-Ext. Extensión de Firefox para detectar Heartbleed en una URL

LastPass Heartbleed checker

Heartbleed test

Qualys SSL Labs - SSL Server Test

Este último enlace proporciona información muy completa sobre el certificado del servidor así que debería estar en la caja de herramientas de cualquier sysadmin.

Etiquetas: ,

23 de enero de 2014

Recomendaciones de seguridad para Tomcat

Con esta entrada quiero hacer una mini guía de referencia para securizar un Tomcat. En resumen, los puntos a seguir serían los siguientes:

1º No ejecutar el proceso con usuario root en sistemas Unix / Linux. Es mejor ejecutar el fichero startup.sh o catalina.sh con un usuario con pocos provilegios en el sistema. Por ejemplo se podría utilizar el usuario nobody o daemon que suelen incluir las distribuciones Linux.

2º Eliminar lo que no vaya a usarse en el directorio webapps de Tomcat.
Si no necesitaremos la consola web de administración eliminaría los directorios host-manager y manager, además de los directorios de documentación y ejemplos (docs y examples).
En el subdirectorio ROOT suelo dejar sólo un fichero index.html que redirecciona a la aplicación desplegada o bien muestra un mensaje al usuario.

3º En el conector HTTP usaremos una configuración de este tipo, cambiando los puertos por los que queramos usar:

  <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" minSpareThreads="25" maxSpareThreads="75"

maxHttpHeaderSize="8192"  enableLookups="false" 
disableUploadTimeout="true" acceptCount="100" maxThreads="200"
           
xpoweredBy="false" allowTrace="false" />

4º En el conector HTTPS usaremos una configuración como la siguiente:


      <Connector
           port="8443" minSpareThreads="25" maxSpareThreads="75" maxHttpHeaderSize="8192" enableLookups="false" disableUploadTimeout="true" acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true" xpoweredBy="false" allowTrace="false" keystoreFile="path_del_keystore.jks" keystorePass="contraseña_keystore" clientAuth="false" sslProtocol="TLS"
 ciphers="SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA" />


Si es necesario validar certificados de cliente tendremos que añadir al conector SSL las propiedades truststoreFile y truststorePass y si queremos que el cliente se autentique con un certificado de cliente debemos poner la propiedad clientAuth a true


Los conectores se configuran en el fichero server.xml de Tomcat

5º Asegurarnos de que el fichero web.xml tiene configurado el DefaultServlet de este modo:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>readonly</param-name>
        <param-value>true</param-value>
    </init-param>
     <load-on-startup>1</load-on-startup>
</servlet>

6º Deshabilitar los métodos HTTP que no sean imprescindibles. Esto puede hacerse pegando las siguientes líneas tras la especificación del DefaultServlet en el fichero web.xml:

<security-constraint>
      <web-resource-collection>
      <web-resource-name>DisabledMethods</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>PUT</http-method>
            <http-method>DELETE</http-method>
            <http-method>HEAD</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
      </web-resource-collection>
      <auth-constraint/>
</security-constraint>


7º No olvidar que tener versiones anticuadas y con bugs conocidos de Tomcat o de la JVM que lo ejecuta es una fuente de problemas así que mejor estar actualizado.

Etiquetas: ,

5 de julio de 2013

Auditorías de seguridad y gestión de logs en Linux

Voy a publicar en esta entrada del blog un compendio de utilidades para realizar auditorías de seguridad y gestionar logs en Linux. Seguramente son conocidas la mayor parte de ellas pero las resumo aquí para que no se me olviden y de paso sirva a los administradores de sistemas que lleguen a esta entrada desde Google ;-)

Tiger - Herramienta para detección de intrusos
Lynis - Herramienta para realizar auditorías de seguridad
Logwatch - Herramienta para análisis de logs
Swatch - Herramienta para monitorización de logs
Tripwire - Herramienta para monitorizar integridad de ficheros
AIDE - Herramienta para monitorizar integridad de ficheros

Algunas otras utilidades para realizar auditorías y gestionar logs en Linux en esta entrada de ServerFault:
What tool or scripts do you use to audit a Linux box?

En esta lista echo en falta otra herramienta para buscar rootkits, al margen de Rootkit Hunter, es chkrootkit Si conocen alguna otra digna de mención no duden en publicarlo como comentario.

Etiquetas: , , ,

19 de enero de 2013

Obtener certificado SSL de un servidor remoto



Para obtener la clave pública del certificado, su DN y forma de comunicación segura con un servidor remoto (protocolo de comunicación SSL, entre otras cosas), independientemente de si es un servidor web, correo, etc. podemos usar la auténtica navaja suiza para estos casos que es OpenSSL.

OpenSSL tiene un parámetro s_client con el que podemos obtener toda esta información sólo indicando el servidor y puerto donde responde de forma segura.
Por ejemplo, para obtener el certificado de la web de Amazon:

openssl s_client -connect amazon.com:443


Viene muy bien a la hora de importar un certificado en un repositorio sin tener un navegador o cliente que permita obtenerlo directamente del servidor.

Etiquetas: , ,

18 de mayo de 2012

JBOSS en puerto 80 y 443

Montar un servidor JBOSS accesible desde el puerto 80 o 443 no es tan sencillo como en el caso de Tomcat, que con compilar el demonio jscv y arrancar Tomcat con este demonio lo tenemos solucionado.

Por la documentación de la propia gente de JBOSS, hay que liar un verdadero berenjenal.

Etiquetas: ,

29 de octubre de 2011

Capturar tráfico HTTP en el navegador

Para ver las peticiones y respuestas HTTP completas, incluyendo las cabeceras HTTP, cookies, etc. he usado varios complementos de Firefox como Live HTTP Headers que dejó de funcionar en una de las actualizaciones de Firefox porque no era compatible, HTTPFox que dejó de funcionar al actualizar a Firefox 7.0 y el último que he usado y es compatible con todos los navagadores que admitan el uso de un proxy (Opera, Chrome, Internet Explorer, Safari, Firefox, etc.) es Fiddler2.

Fiddler2 es una aplicación realizada en .NET y es completísima además de freeware (lástima que no sea open source) pero sólo está disponible para Windows.

Etiquetas: , ,

27 de septiembre de 2011

Crear un keystore vacío desde línea de comandos

Estaba buscando una forma de crear un almacén de certificados vacío y la única forma que he encontrado es crearlo con una clave y luego borrarla. Ahí van las dos líneas necesarias para crear el fichero vacío en dos formatos (PKCS12 y JKS) desde línea de comandos con la utilidad keytool que se incluye en JDK.


Creando el keystore en formato PKCS12:

keytool -genkey -alias prueba -storetype pkcs12 -keystore fichero.pfx
keytool -delete -alias prueba -storetype pkcs12 -keystore fichero.pfx


Y para crearlo en formato jks:

keytool -genkey -alias prueba -storetype jks  -keystore fichero.jks
keytool -delete -alias prueba -storetype jks  -keystore fichero.jks



Actualización (07/08/2013):

Viendo que esta es una de las entradas más visitadas del blog, os recomiendo usar una herramienta gráfica libre para crear, modificar o importar/exportar certificados: Portecle.
La he usado muchas veces y funciona perfectamente pero hay que tener en cuenta que con algunos certificados puede fallar debido a las restricciones de exportación de criptografía en EEUU y los límites impuestos en el JRE que tengamos instalado. Para no sufrir este problema deben descargar el fichero Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy y descomprimirlo en el directorio lib/security del JRE. Cierren Portecle y vuelvan a ejecutarlo tras este cambio en el JRE.

Etiquetas: , , ,

29 de abril de 2011

Controlados con los smartphones

La potencia y amplio uso de los smartphones están facilitando enormemente el control por parte de empresas (y gobiernos, para qué engañarnos) de la población.

Como alguna vez dijo Richard Stallman, los móviles son un peligro para la privacidad de las personas ya que permiten tener localizados a sus propietarios, entre muchas otras cosas.

Un ejemplo de lo que comenta Stallman está en los datos de localización que guarda Apple en el iPhone y que se guardan en una simple base de datos SQLite.

La cosa es que los navegadores para coches, como Tomtom, tampoco se quedan atrás en su función de control social. Cualquier día saldremos de casa con una sonda anal para controlar hasta la tendencia al extreñimiento :-))

Etiquetas: ,

28 de marzo de 2011

Certificados SSL fraudulentos

A través de una noticia de Hispasec sobre certificados SSL fraudulentos, me entero de que Firefox 3 y 4, Chrome e IE 9 implementan un protocolo para comprobar el estado de certificados X.509 sin hacer uso de un CRL : OCSP

Aunque como alguien dice en la noticia que han publicado en Barrapunto sobre este asunto, el tema de la seguridad en SSL es como para estar asustado.

Etiquetas:

29 de marzo de 2009

Gusano ataca routers y modems Linux

Se me ha pasado comentar en este blog el ataque de un gusano a los routers y modems con Linux y procesador MIPS.

Para estos casos lo seguro es tener el firmware del router o modem actualizado y deshabilitar la administración del dispositivo desde la interfaz WAN. Por cierto, los routers Comtrend de Jazztel vienen con la interfaz de administración habilitada para el exterior y sin contraseña porque en su día tuve uno de esos routers.


Para probar las configuraciones del cortafuegos de mis ordenadores conectados a Internet o de los modems y routers siempre he usado una web muy útil, GRC - Shields Up!

Esta web permite pedir escanear los puertos desde el exterior para comprobar los que están cerrados (closed) u ocultos (stealth)

Etiquetas:

26 de marzo de 2009

Grave fallo de seguridad en Firefox 3.x

Cuidadito con las páginas que se visitan hasta que tengamos la versión 3.0.8 del navegador la semana que viene.

Parece que hay un grave fallo de seguridad en las versiones 3.x de Firefox que permite ejecutar código en el sistema.

Etiquetas:

18 de junio de 2008

Código fuente de algunas webs muy visitadas

Leo en la bitácora de Mig21 en Barrapunto que ha sido publicado el código fuente de Reddit

Hace poco leí que Facebook había publicado su código fuente pero buscando sólo he encontrado un fallo de seguridad por el que sacaron algo de su código pero no veo que esté oficialmente el código.

De paso he encontrado un artículo en un blog sobre la manera de prevenir que se vea el código fuente de una página en PHP en caso de casque.

También está el códio fuente de Slashdot y Menéame si queremos entretenernos :-)

Etiquetas: ,

18 de octubre de 2007

Guía sobre seguridad en servidores web

Vía Dr. Dobb's Portal encuentro la publicación del National Institute of Standards and Technology (NIST) de una guía sobre seguridad en servidores web públicos. De lectura obligada para administradores.

Etiquetas:

22 de marzo de 2007

Crackeando contraseñas de Windows

Me pregunta un familiar la forma de acceder a un Windows del que se ha perdido la contraseña de administrador.

La verdad es que uso Windows sólo en el trabajo. Allí no tengo este tipo de problemas porque soy programador y la configuración de los sistemas los lleva el CAU de la empresa pero me he interesado en investigar el tema para este familiar y por el camino he encontrado cosillas interesantes
como un artículo en el blog de Sergio Hernando sobre crackeo de contraseñas en Windows con Ophcrack y otro artículo concretamente para Windows XP

En esta otra página explican distintas formas de recuperar/borrar contraseñas de usuarios en XP/W2K y NT. Me sirven las indicaciones que ofrecen pero no estaría yo tan seguro de bajarme ejecutables de esta web y entraría con el JavaScript desactivado por si acaso.

Si lo que se ha perdido es la contraseña de la BIOS y no de Windows hay algunas claves que establecen los fabricantes por defecto y con las que podemos ahorrarnos el quitar la pila para restablecer los valores por defecto de la BIOS.

Actualización (23/03/2007):
Gracias a Manolo Canga por pasarme dos artículos con otras formas de cambiar la contraseña de administrador, concretamente en Windows XP:
change xp administrator password without knowing it

how to hack into a windows xp computer without changing password

Etiquetas: ,