Mostrando entradas con la etiqueta sistema operativo. Mostrar todas las entradas
Mostrando entradas con la etiqueta sistema operativo. Mostrar todas las entradas

jueves, 10 de marzo de 2016

Ncat: Abriendo puertos a la escucha e iniciar un chat.









Como mencionamos anteriormente, veríamos ejemplos sobre Netcat para ver lo que nos ofrece y en esta entrada en el blog comenzamos con ello. Lo primero antes de nada es decir el entorno que usaremos en adelante para las pruebas y ejemplos que no será mas que dos máquinas cliente/servidor con S.O. derivados de Debian, pero también usaremos entornos Windows para estos ejemplos.

Hoy vamos a ver como podemos dejar a la escucha un puerto abierto para recibir conexiones o por ejemplo iniciar un chat entre ellos. Lo primero es ver la sintáxis de ncat. 

nc [-options] hostname port[s] [ports]
nc -l -p port [-options] [hostname] [port]

Ahora procederemos abrir el puerto que quedará a la escucha para el cliente mediante la orden "nc -l -p 8080" donde -l es listen(a la escucha) -p es el puerto en el que se quedará a la escucha y abierto( 8080). Una vez ejecutado ahora desde el cliente lanzaremos el comando para conectarnos al puerto en concreto "nc [ip del destino] 8080". Ahora en la siguiente imagen (a la izquierda el cliente y a la derecha el servidor) vemos como hemos entablado la conexión e iniciamos la conversación entre ambos. Como dato estas conversaciones van en texto en blanco sin ningún tipo de cifrado.




Es un primer ejemplo sencillo para que veamos la facilidad y potencial de Netcat.



miércoles, 24 de febrero de 2016

Atop, monitorizando la carga en nuestro servidor Linux.






Hoy vamos a hablar de un monitor de sistema el cual nos es más que permitirá monitorizar el sistema, crear logs del mismo con reportes de actividad de los procesos de nuestro servidor Linux y el cual es básico para centralizar todos las cargas de trabajo de nuestro servidor.. 

Atop es un monitor interactivo que nos permite ver los usos de los recursos de todos los procesos, ver la utilización de los discos,adaptadores de red, cpu, memoria y un largo etcétera de posibilidades. Para instalarlo como nosotros hacemos uso de debian nos basta con "sudo aptitude atop" si tenemos otra distribución variaría. Una vez instalado lo iniciamos mediante "sudo atop".




Como vemos en la imagen se nos despliega la interfaz de terminal con todos los procesos y recursos monitorizados. Ahora vamos a dar un repaso los acrónimos que se nos muestran:

PRC: Este línea contiene el total de tiempo consumido de la CPU por el sistema (sys), el usuario (user), el total de los procesos presentes en este momento (proc), el total de número de entradas en ese momento(run), dormidos interrumpibles(tslpi), dormidos ininterrumpibles(tslpu), el número de procesos zombies(zombie), numero de llamadas clonadas del sistema(clones) y el numero de procesos finalizado durante el intervalo de resfresco (exit).

CPU: Esta línea contiene el porcentage de tiempo de CPU que usa en modo kernnel por todos los procesos (sys), en modo usuario (user) por todos los procesos activos (incluidos los procesos iniciados con un valor mas largo de cero), el manejo de las interrupciones(irq), también el porcentaje de tiempo de CPU no usada mientras no hay procesos esperando entrar o salir de disco(idle), tambien mientras un proceos espera a entrar o salir (wait), en casos de multiprocesador hay una línea adicional por cada uno de los procesador individuales.

CPL: Esta línea contiene la información sobre la carga de CPU, el numero de entradas que son permitidas para iniciarse en la CPU o también la espera de entrada/salida del disco, el número de cambios de contexto (csw), el número de servicios interrupidos(intr) y el numero de CPUs disponibles.

MEM: Esta línea contiene información relatada al consumo de memoria, como el total de la cantidad de la memoria física(tot), la cantidad de memoria libre(free), la cantidad de memoria uso cache(cache), la cantidad  memoria usada por el sistema de ficheros metadatos (buff) y la cantidad memoria usada por el kernel malloc's(slab).

SWP: Esta línea contiene la cantidad total de swap en el disco (tot), y la cantidad del espacio libre(feee), la convinación de la memoria virtual.

DSK: Esta línea contiene información sobre la utilización del disco, el porcentaje de tiempo que la unidad esta esperando respuesta (busy), el numero de solicitudes de lectura(read), el número de peticiones de lectura emitidas(write), el número de KiBytes por lectura(KiB/r), el número de KiBytes por escritura(KiB/w), el número de MiBytes por segundo de rendimiento por lecturas (MBr/s), el número de MiBytes por segundo de rendimiento por escritura(MBw/s), la media de espera (avq), la media de numero de milisegundos necesarios por una búsqueda(avio) por búsqueda, latencia y transferencia de datos.

NET: Esta es la información realatada a la utilización de red (TCP/IP), una de estas líneas muestra la actividad de la capa de transporte(TCP y UDP), una línea es la capa IP y una linea por cada interfaz activa.

Esta información del sistema está acompañada por la información del nivel de proceso, información que indica detalles relacionados con los procesos de utilización de los recursos que cambian durante el ultimo intervalo de tiempo( 10 segundos por defecto).

Un importante punto a mencionar son los colores usados por atop (rojo, cian y otros) para indicar el nivel critico del consumo de recursos, como ejemplo un uso excesivo o crítico se indicaría con color rojo.

En cuánto a los comandos interactivos, se puede controlar la salida de información desde el teclado. Por ejemplo, escribiendo m par amostrar la memoria usada, d para ver el uso de la memoria. n para ver la información relacionada al red, v para mostrar las características de los procesos, c la línea de comandos de los procesos, etc... En la siguiente imagen vemos un ejemplo de la opción v.




En definitiva Atop es una herramienta muy util que nos provee de un bucle de actualización de la información sobre la carga de trabajo de nuestro servidor y sus recursos. Como siempre podemos ver más exaustivamente los comandos de configuración en 'man atop'.

martes, 15 de diciembre de 2015

Nmap: Detectando impresoras



Como hemos visto anteriormente a lo largo de las entradas de nmap este tiene la versatilidad de poder amoldarse a nuestras necesidades. Por ejemplo en este caso veremos como nos puede servir para la detección de impresoras, muchas veces nuestros clientes se conectan a la red empresarial y tenemos que detectar donde se encuentra la impresora o simplemente nosotros mismos tenemos que detectarla. Esta búsqueda de la dirección ip de la misma la tenemos que hacer a mano, pero siempre tenemos la posibilidad de detectar en que ip está la impresora mediante nmap.

Lo primero que tenemos que ver, los puertos donde podemos buscar las impresoras, estos pueden ser:

9100 - Servicio de impresión RAW de la mayoría de las impresoras.
515   - Puerto LPR/LPD de la mayoría de las impresoras.
631   - El puerto IPP para la mayoría de impresoras modernas y servidores de impresión CUPS.

Con todo esto ya podemos lanzar la petición de detección de impresoras la cual exportaremos a un fichero xml llamado "printer.xml".

nmap -p 9100,515,631 192.168.1.0/24 -oX printer.xml

La clase de red y el rango de dirección IP lo tendremos que modificar en función del tipo de red en el que nos encontremos. Una configurada y lanzada la orden revisaremos el fichero "printer.xml" en busca de las direcciones de las impresoras.





martes, 17 de noviembre de 2015

Securizando nuestras conexiones: Instalando y configurarando OpenVPN









Como IT una parte importante es la seguridad y esta hay que tomársela bastante en serio y para el ámbito empresarial más aún. En el mundo empresarial son muchas las ocasiones en que sus empleados trabajan en remoto fuera de la intranet, ya sea por trabajo a pie de calle, porque  su estructura empresarial no está centralizada en un lugar concreto en definitiva, a la hora de trabajar con sus sistemas y redes se tienen que vale de conexiones remotas que no son ni seguras ni estables y es aquí donde entra VPN.

Una VPN o red privada virtual nos permite tener una conexión estable, segura, fiable e incluso más rápida que otro tipo de conexiones remotas. Este tipo de conexión nos permite trabajar  a través de la WAN como si estuviéramos en la propia LAN y esto lo permite creando un túnel de conexión desde nuestro cliente hasta la red interna permitiendo trabajar al cliente remoto de una manera local y segura.





Para poner en práctica todo esto nos vamos a valer de un servidor Debian  y de OpenVPN. Antes de empezar la instalación recomiendo que visitéis los enlaces puestos a lo largo de la entrada y que os empapéis bien de los conocimientos previos, también es recomendable la web de OpenVPN que está en perfecto inglés como se ha de esperar. Vuelvo a repetir OpenVPN no es una instalación sencilla, requiere de conocimientos previos para poder llevar a cabo su correcta instalación, configuración y puesta en marcha.

1.- Instalación: Actualizamos el sistema e instalamos OpenVPN.

sudo apt-get update
sudo apt-get install openvpn

2.- Configuración: Comenzamos con la configuración de ficheros y generación de certificados necesarios.

Copiamos ficheros:

cp –r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

Nos movemos al directorio easy-rsa:

cd /etc/openvpn/easy-rsa

Editamos el fichero vars:

vim /etc/openvpn/easy-rsa/vars

Dejamos esta línea así:

export KEY_SIZE=2048

Ponemos los valores siguientes:

export KEY_COUNTRY="ES"
export KEY_PROVINCE="SE"
export KEY_CITY="Seville"
export KEY_ORG="TEST"
export KEY_EMAIL="mail.mydomain"
export KEY_EMAIL="mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

Generamos los certificados dentro del directorio easy-rsa, esto puede variar en el tiempo de exportación en función del tamaño del key:

source ./vars
./clean-all

./build-ca

Generamos el certificado del server:

./build-key-server saw

Ahora generamos el certificado del cliente:

./build-key

Generamos la clave HMAC:

openvpn --genkey --secret ta.key
cp ta.key keys

cp -r easy-rsa/keys/ .

Modificamos la configuración VPN para poner el servidor en funcionamiento:

vim /etc/openvpn/server.conf

Dejamos el archivo como aparece a continuación:

port 1194
proto tcp
dev tun

#Nuevos certificados
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/saw.crt
key /etc/openvpn/keys/saw.key
dh /etc/openvpn/keys/dh2048.pem
tls-auth /etc/openvpn/keys/ta.key 0

#rangos de direcciones
server 192.168.1.50 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"

#DNS 
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

client-to-client
keepalive 10 120

cipher AES-256-CBC # Triple-DES
comp-lzo

max-clients 5

user nobody
group nogroup
tcp-nodelay
persist-key
persist-tun

log /var/log/openvpn.log
status /var/log/openvpn-status.log

verb 3
mute 20
#client-config-dir ccd

Habilitamos el bit de forwarding:

echo 1 > /proc/sys/net/ipv4/ip_forward

Eliminamos decomentamos la linea "net.ipv4.ip_forward=1"en el fichero "/etc/sysctl.conf":

vim /etc/syscrl.conf

Cargamos el módulo tun:

modprobe tun

Después de esto habilitamos el servicio y lo arrancamos:

/etc/init.d/openvpn start

Añadimos la siguiente línea de comando para iptables:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s "192.168.88.0/24" -j ACCEPT
iptables -A FORWARD -j REJECT

iptables -t nat -A POSTROUTING -s "192.168.1.0/24" -j MASQUERADE

Finalmente guardar las reglas:

iptables-save


Finalmente vuelvo a recordar que para montar un servidor de este tipo debemos de tener unos conocimientos previos, esta guía es una mera muestra de como montarlo. Para llevarlo a acabo se deben tener conocimientos preestablecidos sobre redes, sistemas operativos, VPN y OpenVPN.



miércoles, 15 de abril de 2015

Explorando powershell: Comprobar si Windows está activado (slmgr)






Muchas veces queremos saber si el sistema operativo con el que trabajamos es original ya que si no lo es y es una copia falsa el cliente podría estar en peligro trabajando con un sistema operativo modificado. 

Para comprobar que nuestro sistema operativo está activado, lo haremos  abriendo nuestra consola Powershell y escribiendo "slmgr.vbs -xpr".





Y como podéis ver nos indica que está permanentemente activado. Un método sencillo y rápido para saber la validez de nuestro sistema operativo.




miércoles, 8 de abril de 2015

Solución de problemas - Internet / Acceso a la Red en Linux: Comprobando/configurando dirección IP & puerta de enlace (GW)




En esta entrada vamos a ver como comprobar/cambiar/establecer la dirección IP y su máscara de red ( estática, DHCP) y por último la puerta de enlace (GW).


Para mostrar la dirección IP usaremos 'ifconfig' ( 'ipconfig -a' para mostrar todos los dispositivos sin importar si están levantados o no). 





Ahora tendremos que decidirnos por una dirección estática o dinámica (DHCP).


· Dirección dinámica (DHCP): En este tipo de asignación sera al servidor DHCP al que le solicitaremos la dirección, después de solicitarlo este nos asignará una dirección IP, también nos asignará una puerta de enlace y una DNS.





A la hora de solicitar la dirección ip para el dispositivo de red nos bastará con escribir 'dhclient -r eth1' y 'dhclient eth1'.




· Dirección estática: En este tipo de asignación seremos nosotros el que lo asignaremos.

Ahora para asignar una dirección manual o estática, asignaremos la dirección IP y la máscara de red.

En este ejemplo trabajar con una ip con máscara clase C, en la imagen veremos como asignarla simplemente escribiendo 'ifconfig eth1 192.168.1.90/24' y comprobaremos la dirección nueva 'ifconfig eth1'







Para hacer que estos cambios sean persistentes, es decir que se mantengan tras el reinicio tendremos que alterar un fichero. Y si vamos a alterar el fichero lo mejor que podemos hacer es realizar una copia del mismo 'cp -f /etc/network/interfaces{,.bak}





Una vez realizada la copia de seguridad podremos editar el fichero 'vim /etc/network/interfaces' para disponer de una dirección asignada mediante DHCP o manualmente.


DHCP persistente: Añadiremos al fichero que estamos editando lo siguiente.

auto eth0
iface eth0 inet dhcp

IP estática persistente: Añadiremos al fichero que estamos editando lo siguiente que variará en función de la configuración que queramos.

iface eth0 inet static
address 192.168.1.90
netmask 255.255.255.0
gateway 

Por último veremos como mostrar/configurar la puerta de enlace (GW). Para mostrar la puerta de enlace que tenemos actualmente lo veremos mediante 'route -n'.





Una vez mostrada, para cambiar la puerta de enlace asignada en este adaptador de red tan solo tendremos que asignarla manualmente mediante 'route add default gw 192.168.1.2 eth1'





Para eliminar una puerta de enlace tan solo con escribir 'route delete default gw 192.168.1.2 eth1'









martes, 31 de marzo de 2015

Windows "la técnica del setch": Comprometiendo autenticación en sistemas Windows/xp/vista/8/8.1






Muchas veces como IT nos vemos en la necesidad de saltarnos las credenciales o el proceso de autenticación en sistemas Windows, para los que hay varios métodos con los cuales podemos saltarnos la autenticación como usar el Kon-boot que hemos visto anteriormente.

El proceso que vamos a realizar a continuación es un proceso que afecta a sistemas Windows/xp/vista/7/8/8.1 y que consiste en editar el fichero sethc.exe y sustituirlo por el fichero cmd.exe. Una vez reiniciemos el sistema, nos encontramos en la pantalla de autenticación, pulsamos 5 veces la tecla shift y ya tendremos nuestra ventana de comandos con privilegios para manejar a nuestro antojo.

Este fichero lo podremos editar con cualquier Live-CD Linux o con el mismo CD de instalación Windows. El ejemplo lo realizaré tanto con el Live-CD Linux (Kali Linux) como el CD de instalación de Windows.


Mediante Live-CD Linux (Kali Linux):

Iniciamos el Live-CD Kali Linux y una vez dentro abrimos un terminal en el que identificaremos el disco ntfs de windows mediante el comando "fdisk -l | grep NTFS". A continuación crearemos la carpeta donde montaremos el disco "mkdir /media/windows" y finalmente lo montaremos en la carpeta creada "mount -t ntfs-3g /dev/sda2 /media/windows"




Ahora en esta siguiente imagen editaremos el ejecutable. Para ello nos dirigimos a la ruta donde se encuentra"cd /media/windows/Windows/System32/" . Cambiamos el nombre del fichero "mv setch.exe sethccp.exe"  y finalmente copiamos el cmd.exe y le ponemos un nuevo nombre "cp cmd.exe sethc.exe"

Y para acabar desmontamos "umount /dev/sda2" y reinciamos "reboot".






Ahora una vez reiniciado el sistema y llegamos a la parte de la autenticación, aquí pulsaremos la tecla shift 5 veces para que se ejecute el programa sethc.exe. Una vez pulsado ya tenemos una ventana de comandos en la cual llamaremos mediante el comando "control userpasswords2" > seleccionaremos el usuario > restearemos la contraseña y finalmente la cambiaremos o dejaremos en blanco y le daremos a aceptar para aplicar los cambios.




Y ya tendremos acceso al sistema.




Mediante el CD de Instalación de Windows:


Iniciamos el CD de instalación de windows y le damos a "Next" o "Siguiente"





Ahora seguimos y le damos a "Repair your computer" o "Reparar el ordenador".





Ahora hacemos clic en "Troubleshooting" o "Solución de problemas".





Ahora "Advanced options" o "Opciones avanzadas".




Ahora a "Command Prompt" o "Símbolo del sistema".



Ahora nos dirigiremos a la ruta donde vamos a editar el ejecutable. Primero "d:" > "Windows" > "System32" > "ren sethc.exe sethccp.exe" > "copy cmd.exe sethc.exe"  > "Exit".





Y finalmente apagamos el sistema haciendo clic en "Turn off your PC".





Ahora iniciamos el sistema y llegamos a la parte de la autenticación, aquí pulsaremos la tecla shift 5 veces para que se ejecute el programa sethc.exe. Una vez pulsado ya tenemos una ventana de comandos con la cual llamaremos mediante el comando "control userpasswords2" > seleccionaremos el usuario > restearemos la contraseña y finalmente la cambiaremos o dejaremos en blanco y le daremos a aceptar para aplicar los cambios.




Y ya tendremos acceso al sistema.