lunes, 23 de octubre de 2017

Comandos para comprobar puertos abiertos en PC/Servidor remoto

NMAP Es una herramienta de exploración de redes y de sondeo de puertos.
En caso de que no deseen hacer un scaneo detallado, sino que simplemente deseen saber si en el ordenador o servidor está abierto un determinado puerto, sería así:

1.- nmap {IP_O_DOMINIO} -p {PUERTO} | grep -i tcp

Ejemplo:

nmap localhost -p 22 | grep -i tcp

O bien:

nmap 127.0.0.1 -p 22 | grep -i tcp

2.- nmap {IP_O_DOMINIO} | grep -i tcp

Ejemplo:

nmap localhost | grep -i tcp

O bien:

nmap 127.0.0.1 | grep -i tcp

3.- nmap -sV {IP_O_DOMINIO} | grep -i tcp

Ejemplo:

nmap -sV localhost | grep -i tcp

O bien:

nmap -sV 127.0.0.1 | grep -i tcp

Lo que hace esto es simple, pregunta a la IP o Host si el puerto dado está abierto o no, luego el grep filtra y solo muestra la línea que desean leer, la que les indica si está abierto (open) o cerrado (closed) ese puerto.

nc

nc o netcat, es una opción mucho más simple para saber si un puerto está o no abierto:

1.- nc -zv {IP_O_DOMINIO} {PUERTO}

El -zv lo que hace es simple, la v nos permite ver si está abierto o no el puerto, mientras que la z cierra la conexión tan pronto se comprueba el puerto, de no poner la z entonces tendríamos que hacer un Ctrl + C para cerrar el nc.

telnet

Esta es la variante que hace un tiempo usaba (por desconocimiento de las antes mencionadas), a su vez telnet nos sirve para mucho más que solo saber si un puerto está abierto o no.

telnet {IP_O_HOST} {PUERTO}


El problema de telnet es el cierre de la conexión. Es decidir, en varias ocasiones no podremos cerrar la solicitud de telnet y nos veremos obligados a cerrar esa terminal, o de lo contrario en otra terminal hacer un killall telnet o algo similar. Es por eso que evito usar telnet a no ser que me sea muy necesario.

jueves, 19 de octubre de 2017

WPScan: Analisis de Vulnerabilidades de WordPress


WPScan

Una herramienta que permite realizar analisis de vulnerabilidad en sitios web que fueron creadas en WordPress, puedes saber si hay vulnerabilidades en cores, plugins y temas. También puede detectar si tienes contraseñas débiles y problemas de configuración de seguridad. Se usa la base de datos de wpvulndb.com para comprobar vulnerabilidades de software y el equipo de WPScan tiene una lista de nuevas vulnerabilidades siempre en expansión.

Entrando a WPScan
cd /usr/share/wpscan

Actualizando WPScan
root@kali-kim:/usr/share/wpscan# ruby wpscan.rb --update
_______________________________________________________________
        __          _______   _____                
        \ \        / /  __ \ / ____|               
         \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
          \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
           \  /\  /  | |     ____) | (__| (_| | | | |
            \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                       Version 2.9.3
          Sponsored by Sucuri - https://sucuri.net
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________

[i] Updating the Database ...
[i] Update completed.

Buscando vulnerabilidades

Con el siguiente comando realizaremos la busqueda de vulnerabilidades en un sitio con WordPress esto permite verificar vulnerabilidades en temas, plugins y usuarios. Nos hara saber si el sitio corre alto riesgo de ser infectado.
Partiendo de esto se deben tomar medidas apropiadas que permita garantizar la seguridad del sitio mediante actualizaciones y/o mediante la desactivación de problemas de seguridad señalados.

ruby2.3 ./wpscan.rb --url http://www.dominio.com

Comprobando vulnerabilidades en los plugins

Para comprobar vulnerabilidades en los plugins que se encuentran en el sitio web creado en WordPress se debe agregar el siguiente argumento -enumerate vp el cual permite comprobar el estado en el que estan los plugins del sitio

ruby2.3 ./wpscan.rb --url http://www.dominio.com --enumerate vp

Si se encuentra alguna vulnerabilidad en plugins, usted verá iconos con un signo de exclamación rojo y referencias para información adicional. Cualquier plugin vulnerable debe ser removido y reemplazado si no se puede actualizar para eliminar esta vulnerabilidad.

Comprobando temas vulnerables 

De manera similar al ejemplo anterior, al añadir –enumerate vt al comando inicial, se comprueba si hay vulnerabilidades en los temas de sitios WordPress.

ruby2.3 ./wpscan.rb --url http://www.dominio.com --enumerate vt
ruby2.3 ./wpscan.rb --url http://www.dominio.com --enumerate t

Comprobando la Enumeración de Usuario
Cuando los hackers conocen sus nombres de usuario de WordPress, un ataque de fuerza bruta se realiza con éxito ya que se hace más fácil.

Para descubrir los logins de usuario de su sitio, utilize el argumento –enumerate u en el fin del comando.

ruby2.3 ./wpscan.rb --url http://www.dominio.com --enumerate u


En un escenario ideal, no se debería ser capaz de obtener la lista de logins de los usuarios de su sitio de WordPress.

Adivinación de Contraseñas

Ahora vamos a intentar usar una variedad de contraseñas. Si usted tiene una lista de contraseñas, WPScan puede utilizarla para tratar de iniciar sesión con cada usuario que se encuentra. A través de este método, se puede ver si alguno de sus usuarios están usando contraseñas débiles.

Se puede crear una lista de palabras, es simplemente un archivo de texto con contraseñas en cada línea. Los hackers tienen enormes colecciones de scontraseñas, pero usted puede crear un simple documento de texto con un número de contraseñas significante. Es necesario que el archivo se coloque en su directorio wpscan para que el WPScan pueda utilizarlo fácilmente.
Cuando usted tiene una lista de palabras en el directorio WPScan, puede agregar un argumento –wordlist con el nombre del archivo de la lista de palabras. También puede especificar el número de threads que se utiliza al mismo tiempo para realizar la lista. Dependiendo del tamaño de la lista, usted puede tomar mucho tiempo para ejecutar la tarea.

ruby2.3 ./wpscan.rb --url http://dominio.com --wordilist passwords.txt threads 50


Aqui les coloco mas ejemplos de esta gran herramienta
Examples :

-Further help ...
ruby ./wpscan.rb --help

-Do 'non-intrusive' checks ...
ruby ./wpscan.rb --url www.example.com

-Do wordlist password brute force on enumerated users using 50 threads ...
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50

-Do wordlist password brute force on the 'admin' username only ...
ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin

-Enumerate installed plugins ...
ruby ./wpscan.rb --url www.example.com --enumerate p

-Enumerate installed themes ...
ruby ./wpscan.rb --url www.example.com --enumerate t

-Enumerate users ...
ruby ./wpscan.rb --url www.example.com --enumerate u

-Enumerate installed timthumbs ...
ruby ./wpscan.rb --url www.example.com --enumerate tt

-Use a HTTP proxy ...
ruby ./wpscan.rb --url www.example.com --proxy 127.0.0.1:8118

-Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)
ruby ./wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000

-Use custom content directory ...
ruby ./wpscan.rb -u www.example.com --wp-content-dir custom-content

-Use custom plugins directory ...
ruby ./wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins

-Update the DB ...
ruby ./wpscan.rb --update

-Debug output ...
ruby ./wpscan.rb --url www.example.com --debug-output 2>debug.log

miércoles, 27 de septiembre de 2017

Cómo saber los puertos abiertos o conexiones establecidas por nuestro servidor

Para evaluar las conexiones establecidas a un servidor o equipo mediante ssh y verificar que puertos estan a escuchas de un servidor se puede verificar con el siguiente comando

Vamos a un terminal -> entramos como root -> y colocamos el siguiente comando

sudo netstat -punta

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp         0      0 127.0.0.1:25             0.0.0.0:*               LISTEN      2101/exim4    
tcp         0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      17132/zabbix_agentd
tcp         0      0 127.0.0.1:3306         0.0.0.0:*               LISTEN      1477/mysqld    
tcp         0      0 0.0.0.0:51598           0.0.0.0:*               LISTEN      928/rpc.statd  
tcp         0      0 0.0.0.0:111               0.0.0.0:*               LISTEN      919/rpcbind    
tcp         0      0 0.0.0.0:80                 0.0.0.0:*               LISTEN      1037/nginx -g daemo
tcp         0      0 0.0.0.0:45296           0.0.0.0:*               LISTEN      947/sshd      
tcp         0      28 106.135.9.105:45296     186.185.69.207:38690    ESTABLISHED 17227/sshd: kimha [
tcp6       0      0 ::1:25                  :::*                             LISTEN       2101/exim4    
tcp6       0      0 :::43967              :::*                             LISTEN       928/rpc.statd  
tcp6       0      0 :::10050              :::*                             LISTEN      17132/zabbix_agentd
tcp6       0      0 :::111                  :::*                             LISTEN       919/rpcbind    
tcp6       0      0 :::45296              :::*                             LISTEN       947/sshd      
udp        0      0 0.0.0.0:111              0.0.0.0:*                                  919/rpcbind    
udp        0      0 0.0.0.0:670              0.0.0.0:*                                  919/rpcbind    
udp        0      0 127.0.0.1:680          0.0.0.0:*                                  928/rpc.statd  
udp        0      0 0.0.0.0:41696          0.0.0.0:*                                  928/rpc.statd  
udp6      0      0 :::40337             :::*                                                  928/rpc.statd  
udp6      0      0 :::111                 :::*                                                  919/rpcbind    
udp6      0      0 :::670                 :::*                                                  919/rpcbind    

lunes, 21 de agosto de 2017

Instalar JBoss Application Server en Linux



1.- Descarga de JBoss Application Server (JBoss AS)

wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip

2.- Instalación de JAVA JDK

Nota: CentOS por defecto en su instalación base trae Java instalado. se puede verificar con el siguiente comando

# java -version

# rpm -qa | grep jdk

Si no lo tiene instalado se realiza la instalación de la siguiente manera

# yum install java-1.7.0-openjdk

3.- Instalación de JBoss

La intalación a partir del paquete precompilado (binary.zip) es sencilla y se realiza de la siguiente manera

# mv jboss-as-7.1.1.Final.zip /opt
# cd /opt/ && unzip jboss-as-7.1.1.Final.zip
# ln -s /opt/jboss-as-7.1.1.Final /opt/jboss
# ls -l /opt/

4.- Configuración de JBoss

El servidor de aplicaciones no va correr como root, se deben crear usuarios especificos para la ejecución de JBoss

# adduser jboss
# passwd jboss

Configuramos las variables de entorno necesarias para que se pueda ejecutar el servidor de aplicaciones

# su - jboss
$ vi ~/ .bashrc

Las variables necesarias son JAVA_HOME , PATH (Añadir el path de java y de JBoss) y JBOSS_HOME


# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
        
export JBOSS_HOME=/opt/jboss
export PATH=$PATH:$JBOSS_HOME/bin

Se puede recargar las variables de entorno ejecutando

$ bash



source .bashrc

como root, se debe cambiar el propietario del directorio JBoss al nuevo usuario creado

# chown -R jboss.jboss /opt/jboss-as-7.1.1.Final

5.- Iniciar el JBoss

Hay varias modalidades de arrancar el JBoss, se puede inicar una unica instancia en modo (standalone) o como (managed domain)

El standalone: permite una instancia local unica
El managed domain: permite controlar y configurar multiples instancias de JBoss de varias maquinas.


Para arrancar el modo standalone ejecutamos el siguiente comando.
standalone:
# su - jboss
$ $JBOSS_HOME/bin/standalone.sh

managed domain
# su - jboss
$ $JBOSS_HOME/bin/domain.sh

Si todo ha salido bien, la ejecución mostrará lo siguiente:

=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /opt/jboss

  JAVA: /usr/lib/jvm/jre-1.7.0-openjdk/bin/java

  JAVA_OPTS:  -server -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml

=========================================================================

21:46:04,082 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
21:46:06,487 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
21:46:07,130 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
21:46:18,898 INFO  [org.xnio] XNIO Version 3.0.3.GA
21:46:18,951 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
21:46:19,451 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
21:46:19,638 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
21:46:20,265 INFO  [org.jboss.as.configadmin] JBAS016200: Activating ConfigAdmin Subsystem
21:46:20,310 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
21:46:20,635 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
21:46:20,630 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
21:46:20,632 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
21:46:20,899 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
21:46:22,029 INFO  [org.jboss.as.security] (MSC service thread 1-2) JBAS013100: Current PicketBox version=4.0.7.Final

[...]
21:46:31,249 INFO  [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on /127.0.0.1:4447
21:46:31,836 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
21:46:32,138 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
21:46:32,145 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 30736ms - Started 133 of 208 services (74 services are passive or on-demand)


La consola de administración y el servicio sólo estan disponibles en local:

21:46:31,249 INFO  [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on /127.0.0.1:4447
21:46:32,138 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990

Para modificar y que escuche por otras IP de la maquina se debe realizar el cambio en el siguiente archivo:

# nano /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml

<interface name="management">
 <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
 </interface>
 <interface name="public">
 <inet-address value="${jboss.bind.address:127.0.0.1}"/>
 </interface>

Si queremos que escuche por todas las IP:

<interface name="management">
 <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
 </interface>
 <interface name="public">
 <inet-address value="${jboss.bind.address:0.0.0.0}"/>
 </interface>


miércoles, 12 de julio de 2017

Hyperterminal en Linux


Para las personas que manejan los dispositivos de hardware, tales como el almacenamiento, routers y muchos más utilizando Microsoft Windows, el hiper terminal plazo es una cosa familiar. Ellos usan hiper terminal para conectarse a todos los dispositivos mencionados anteriormente, utilizando un cable serie. Pero lo que si usted tiene que manejar todos los dispositivos usando linux? 

La respuesta es, linux tiene 2 alternativas a la hiper terminal; uno es de línea de comandos basada en y el otro es basado en GUI. Permítanme empezar con la herramienta de línea de comandos primero. Se llama minicom. Puede instalar esta herramienta utilizando el gestor de paquetes de su máquina Linux. En Fedora / RedHat / Debian / CentOS:

 # yum install minicom

Aquí es donde puede configurar la velocidad de transmisión, el dispositivo de serie que desee utilizar, etc Después de terminar con el ajuste, guardarla para que usted no tiene que hacerlo todo el tiempo. Usted puede guardar por defecto. Dfl archivo, con el nombre de. Minirc.dfl en la carpeta de inicio, o puede especificar el nombre y ubicación ustedes mismos. Para cambiar la configuración guardada, sólo tiene que utilizar el comando anterior de nuevo. 

La segunda herramienta se llama cutecom, un terminal serie gráfica. Para instalarlo en Fedora, CentOS, Debian o redhat:

 # yum install cutecom

Es más fácil de usar ya que cuenta con interfaz gráfica de usuario. La imagen siguiente muestra cutecom pantalla principal, donde se puede configurar el dispositivo, paridad, velocidad de transmisión, etc

martes, 27 de junio de 2017

Evitar que wordpress solicite datos ftp al instalar plugin / template / widget



Cuando vamos a instalar varios temas para probar, varios plugins y widgets nos ralentiza bastante el tener que estar introduciendo los datos de ftp para cada uno de los componentes a instalar, para evitarlo podemos probar lo sigiuente.

Editamos el fichero wp-config.php y añadimos esta línea:

define('FS_METHOD', 'direct');



Reinicias el servicio web y listo

Listar conexiones TCP y UDP establecidas


Utilizando la herramienta netstat es posible listar las conexiones TCP y UDP establecidas en un sistema GNU/Linux. De esta manera es posible tener una noción del número de clientes conectados con nuestro servidor. Aunque, jugando un poco con la salida de netstat, también es posible determinar exactamente el número total de conexiones establecidas y el número de clientes únicos por IP.

Listar todas las conexiones TCP y UDP
# netstat -tun


Listar todas las conexiones TCP y UDP con sus procesos y nombre del programa
# netstat -tun -p


Listar todas las conexiones TCP y UDP con sus procesos, nombre del programa y si es establecida
netstat -tun -p | grep EST


Para mostrar solo la cantidad de conexiones establecidas
# netstat -tun -p | grep EST | wc -l



Un cliente puede establecer varias conexiones simultáneamente. Por ejemplo, al momento de cargar una página Web, cada cliente establece varias conexiones en simultáneo con el servidor HTTP, para descargar los recursos de la página en paralelo (y de esta forma acelerar la descarga de la página).
Eliminando los espacios en blanco repetidos y cortando la IP remota (Foreign Address), es posible obtener el listado de clientes únicos (por IP)
# netstat -tun | grep EST | tr -s '[:space:]' | cut -d':' -f2 | cut -d' ' -f2 | sort | uniq

Con la opción -e es posible visualizar información adicional como el ID de usuario y número de i-nodo



Con -s, netstat muestra estadísticas para cada protocolo. Por ejemplo, para ver las estadísticas del protocolo ICMP