jueves, 27 de noviembre de 2014

Comprimiendo y descomprimiendo ficheros/archivos (.zoo)









En "Comprimiendo y descomprimiendo" esta vez veremos .zoo: 

- Comprimir:            zoo -a archivo.zoo /ruta/archivo
- Descomprimir:       zoo -x archivo.zoo
- Descomprimir:       zoo -v archivo.zoo
                        








viernes, 21 de noviembre de 2014

SSH, asignar servicio a una interfaz








Muchas veces disponemos de varias interfaces de red en nuestro servidor en el que tenemos un servidor de SSH instalado o simplemente estamos trabajando con una máquina virtual en la que no queremos que el servicio de SSH esté disponible en todas las interfaces de red y que solo lo esté en la red privada anfitrión – invitado y todo esto para tener un mayor control sobre el servicio o protegerlo de una mejor manera.

Lo primero es que tendremos que tener instalado el servidor de ssh. Después de tener nuestro servidor ssh editaremos el fichero 'sshd_config' que se encuentra en la ruta '/etc/ssh/' en el buscaremos 'ListenAddress ....' aquí configuraremos esto de tal manera de que asignaremos la ip de la interfaz que queremos asignar al servicio SSH.


Edito el fichero con el siguiente comando 'vim /etc/ssh/sshd_config'. 






Editamos el apartado 'ListenAddress' y ahí ponemos la dirección ip asignada a la interfaz de red que queramos darle acceso ssh.






Una vez echo esto reiniciamos el servicio 'service ssh restart'




Ahora vamos a otra máquina e iniciamos acceso 'ssh usuario@iphost' y vemos que se realiza la conexión correctamente.



Ahora para comprobar que funciona lo que haremos será asignarle la dirección 'x.x.x.102' reinicar el servicio 'service ssh restart' y volver a intentar conectar a la ip real 'x.x.x.101' y finalmente veremos que no se puede acceder.







martes, 18 de noviembre de 2014

Auditando: #Creepy ( geolocalización & OSINT )












La obtención de información es básica y muy valiosa, como bien me decían " los datos no tienen precio" pues es cierto un dato puede darnos la llave de pasar al siguiente escalón y es en este aspecto donde nos valemos de herramientas OSINT o simplemente de los comúnmente conocidos métodos de hacking con buscadores. 

Esta vez nos vamos a valer de una herramienta de geolocalización como es creepy que se vale de las redes sociales como Twitter, Instagram y Flickr para usar esos datos y explotarlos para la obtención de información.

Para este ejemplo vamos a usar un s.o. virtualizado como Kali Linux, comenzaremos descargando el fichero necesario como son el programa.

Una vez descargados los descomprimimos e instalamos unas dependencias.

apt-get install python-qt4 python-pip

Después de esto instalamos unas librerías necesarias.

pip install tweepy yapsy configobj python-instagram flickrapi

Ahora nos dirigimos a la ruta donde hemos descomprimido nuestro creepy entramos en la carpeta creepy y ejecutamos el script.

python CreepyMain.py











Una vez echo esto tendremos que configurar los plugins para ello nos dirigimos a 'edit > plugins configuration' y elegimos el plugin que queremos configurar en nuestro caso twitter e iniciamos el 'Run Configuration Wizard'.




Ahora se nos mostrará el login de twitter para sincronizar la cuenta con Creepy.




Seguidamente se nos muestra el pin de sincronización para twitter y finalizamos.




Una vez configurado el plugin crearemos un nuevo proyecto para nuestro objetivo dirigiéndonos a 'New proyect>Person Based Project' y seguidamente ponemos el nombre del proyecto y rellenamos demás campos.




Una vez echo esto podemos empezar con la búsqueda eligiendo el usuario de twitter @nombreusario, activamos twitter y le damos a 'search'. Una vez encontradas las imágenes, las añadimos haciendo clic en 'Add To Targets' y finalmente en 'siguiente'




Una vez añadido todo esto podemos ya geolocalizar con los datos obtenidos.








Explorando powershell: listar el historial de comandos



 



Muchas veces tenemos que buscar en nuestro powershell usando las flechas para encontrar ese comando que escribimos hace un rato y no nos acordamos o simplemente para ahorrarnos tiempo, para ahorrarnos tiempo tenemos un acceso rápido mediante get-history con el cual vamos a listar todos los comandos anteriormente usados. Para ello la forma las rápida es pulsar en nuestro powershell F7 para listarlos todos y así elegirlos.







También podemos listar los comandos escribiendo get-history o finalmente usando los aliases h, ghy o history






Finalmente podemos tomar valores a partir de número concreto del historial con 'get-history 14 -count 3' (mostrará 3 registros hasta llegar al 14) y finalmente podemos modificar el tamaño de la cantidad de registros almacenados modificando la variable '$MaximumHistoryCount = 150'



lunes, 17 de noviembre de 2014

Virtualbox: Instalando Guest Additions en Linux ( Kali Linux )







En unos sencillos pasos veremos como instalar guest additions de Virtualbox en Kali Linux

Insertamos la imagen de guest aditions haciendo clic en dispositivos > 'insertar imagen de cd de las<Guest Additons>' o apretamos la tecla de acceso directo 'HOST + D'. Una vez echo esto tendremos montada la imagen para poder trabajar con ella.

Y ahora comenzamos a trabajar con el terminal.

apt-get update && apt-get install -y linux-headers-$(uname -r)




Ahora seguimos los siguientes pasos y lo primero es copiar el contenido en otra ruta.

cp /media/cdrom0/VboxLinuxAdditions.run /root/

A continuación cambiamos los permisos.

chmod 755 /root/VBoxLinuxAdditions.run 

Nos movemos donde esta el ejecutable.

cd /root/

Y por último lo ejecutamos.

./VBoxLinuxAddtions.run




Ya tenemos instalado nuestro Guest Additions de Virtualbox y si tenemos dudas lo comprobamos con 'lsmod | grep vboxguest'








jueves, 13 de noviembre de 2014

Explorando powershell: Script automatizado con envío de ip pública vía email ( Windows Server 2012 + Powershell + email + SCHTASKS )







Hoy veremos un simple script para enviar un email a nuestra email desde powershell con un simple script y automatizaremos esto para que se ejecute cada cierto tiempo, teniendo así actualizada la dirección IP pública.

Lo primero que tenemos que hacer es comprobar que nuestra powershell esté en la versión 4.0, ejecutando 'get-host' nos mostrará la versión actual.

Despues de comprobar la versión vamos a realizar el script esto, lo podemos hacer con un editor cualquiera como notepad++, block de notas o como en mi caso Powershell ISE.

Abrimos a nuestro Powershell ISE (con permisos de administrador) e introducimos la script (mis valores son con cuenta gmail y en las letras en rojo tendréis que editarlas con vuestros valores).


#almacenamos la fecha en la variable $date
$date = Get-Date -format d
#Extraemos la ip de la web "http://chekip.dyndns.com" y la almacenados en la variable $currentip
$currentip = (New-Object net.webclient).downloadstring("http://checkip.dyndns.com") -replace "[^\d\.]" 
while ($currentip -eq '') {$currentip = (New-Object net.webclient).downloadstring("http://checkip.dyndns.com") -replace "[^\d\.]"} 
#Montamos nuestro correo añadimos las variables almacenadas y lo enviamos
Write-Host "sending public ip $currentip ..." 
$EmailFrom = "usuario@gmail.com"
$EmailTo = "usuario@gmail.com
$Subject = "#$date - ip windows server
$Body = "Fecha: $date // Public server ip $currentip
$SMTPServer = "smtp.gmail.com
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("cuenta_usuario_mail_sin_dominio", "contraseña_del_email"); 

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)


Una vez escrito todo lo comprobamos que funciona desde el mismo edito ejecutamos > guardamos y comprobamos que funciona bien tanto en la pantalla, como que llega a nuestro email.






Una vez ejecutado sin fallos comprobamos nuestro email.






Una vez realizado todo lo anterior ahora vamos a crear una tarea programada para añadir este script y que se ejecute cuando nosotros queramos.

Para esto utilizaremos schtask, podemos consultar el enlace anterior o simplemente buscar la ayuda en nuestro powershell con 'schtask /?'. 

Ejemplo explicado:

schtasks /create /sc el_tipo_de_tiempos /mo cada_cuanto_tiempo /d cuantos_dias /tn nombre_tarea_programada /tr /ruta/del/script /st hora_de_inicio

Ejemplo: 


schtasks /create /sc minute /mo 10 /d 31 /tn send_public_ip /tr C:\scripts\public_ip_email_send.ps1 /st 08:00:00







Y por último mostramos el estado de la tarea programada con el comando de consulta query 'schtask /query /TN send_public_ip'.




Y finalmente como vemos en la imagen nos muestra el estado del proceso y cuándo se va a ejecutar la próxima vez. 

Si queremos eliminar nuestro schtask ejecutaremos por ejemplo como es mi caso 'schtask /delete /TN send_public_ip'









domingo, 9 de noviembre de 2014

Crear usb boteable desde el terminal ( dd)







Vamos a crear un usb boteable con nuestro terminal y comando dd, para ello en este caso usaremos un pendrive, un sistema basado en Debian y una imagen iso.


Conectamos nuestro pendrive, una vez conectado lo localizamos con el siguiente comando 'sudo fdisk -l' .





Localizamos nuestro pendrive, una vez echo esto lo desmontamos mediante 'sudo umount /dev/sdb1'.




Una vez desmontado procedemos a utilizar el comado dd que funciona de la siguiente manera, 'sudo dd if=/ruta/de/imagen.iso of=/ruta/del/pendrive'

En nuestro caso sera 'sudo dd if=~/imagen.iso of=/dev/sdb'




Cuando acaba de formatear se nos muestra un pequeño resumen y ya tenemos listo nuestro usb boteable.







miércoles, 5 de noviembre de 2014

Script automatizado con envío de ip pública vía email ( Linux + sSMTP + email + cron&crontab )










Anteriormente vimos en "Enviando email desde consola (Linux): SSMTP + GMAIL" como configurar nuestro sistema para enviar emails desde el terminal y también vimos en "Buscando nuestra dirección ip pública" como saber cual es nuestra ip pública. 

En este caso tiraremos de lo anterior y generaremos un script el cual nos va a permitir tener en nuestro correo la dirección ip pública de nuestro host de forma automatizada y que se ejecutará cuando nosotros queramos. Para esto último tiraremos de cron&contrab que nos permitirá ponerle un tiempo de ejecución a nuestro script para mantener actualizado y saber si hemos tenido algún cambio en nuestra ip pública.


" Como aspecto de seguridad esta "herramienta" la podríamos tener en nuestro propio portátil, así en caso de ser sustraído y conecten nuestro ordenador este ya enviaría la ip pública a nuestro email. Con esta información ya tendríamos un gran paso y nos pondríamos manos a la obra en la recuperación de nuestro portátil. "

Una vez repasado todo la anterior, nos ponemos manos a la obra con nuestro script. Como editor utilizaré vim, pero siempre se puede usar el sencillo nano para ello. Nos vamos al terminal y creamos el script mediante "vim nombrescript.sh". Una vez dentro introducimos el código.


#!/bin/sh
# Script envío ip pública via email.
echo "# Ip publica mserv --> $(curl icanhazip.com) || fecha: $(date)" | mail -s "# mserv ip: $(curl icanhazip.com) | fecha: $(date)" usuario@gmail.com                       

        
                                                 
                                                                    

Este script hace un envío de la ip pública con la fecha y hora al correo electrónico en mi caso gmail.

Una vez tenemos, automatizaremos el proceso para que este script se ejecute cada 5 minutos en nuestro caso (en vuestro caso según el tiempo que deseéis), pero antes de nada vamos hacer un pequeño repaso a crontab.

Con crontab podemos controlar el momento en ele que se ejecutan determinadas tareas según una fecha, una hora, una serie de veces, etc. 

Para usar crontab podemos hacerlo de la siguiente manera:

crontab -e  (Nos permite editar y configurar el script o tarea que se vaya a realizar)
crontab -l   (Nos lista tareas que ya están programadas)
crontab -d  (Borra las tareas que ya están programadas)

Una vez dentro del fichero tendremos que escribir con un orden tal que así ''m h dom mon dow user /command/ruta/del/script.sh'
  • m = el minuto en el que se va a ejecutar.
  • h  = la hora en que se va a ejecutar.
  • dom = el día del mes en el que se va a ejecutar.
  • dow = el día de la semana.
  • user = el usuario que lo va a ejecutar.
  • command = la ruta del script que vamos a ejecutar. 

Tenemos también caracteres especiales predefinidos como son:

  • @reboot (al iniciarse el sistema)
  • @yearly (una vez al año)
  • @annually (una vez al año)
  • @monthly (una vez al mes)
  • @weekly (una vez a la semana)
  • @daily (una vez al día)
  • @midnight (una vez al día)
  • @hourly  (una vez cada hora)

Una vez visto por encima pondré un par de ejemplos

*/30 * * * * /ruta/del/script.sh (se ejecutará cada 30 minutos)

30 21 * 7 root apt-get -y update (el domingo a las 21:30 root ejecutará la actualización)

Si necesitáis más ejemplos, aquí los tenéis

Una vez habiendo visto crontab por encima procedemos a hacer nuestro ejemplo. Abrimos la consola y escribimos '
crontab -e'. Una vez ahí escribiré mi ejemplo (si vosotros usáis otro pues el vuestro).


*/5 * * * * /ruta/del/script/enviodecorreoip.sh 


 (esto lo que hará será dirigirse a la ruta del script y ejecutarlo cada 5 minutos) 


Una vez echo esto nos dirigimos a nuestro correo (gmail en mi caso) y comprobamos que ha comenzado a funcionar.












lunes, 3 de noviembre de 2014

Comprimiendo y descomprimiendo ficheros/archivos ( .gz)







En "Comprimiendo y descomprimiendo" esta vez veremos ficheros .gz: 

- Comprimir:            gzip -q ejemplo
- Descomprimir:       gzip -d ejemplo.gz







sábado, 1 de noviembre de 2014

Enviando email desde consola (Linux): SSMTP + GMAIL









Veremos con este sencillo método como configurar sSMTP para que nos permita enviar un email desde la consola. En nuestro caso, usaremos una cuenta de Gmail ( la cuenta de gmail tiene autenticación en dos pasos activada por lo tanto la contraseña usada es una contraseña de aplicación generada para configurar en estos casos) aunque esto es extrapolable a otras cuentas de correo con los debidos cambios. También usaremos un host basado en Debian.

Para comenzar empezaremos instalando sSMTP, esto es tan sencillo como ejecutar lo siguiente en la consola.

sudo apt-get install ssmtp

Una vez echo esto podremos comenzar a configurar los ficheros de configuración de sSMTP, estos se encuentran en la ruta  '/etc/ssmtp'.

Abrimos desde consola el fichero ya sea usando el editor nano o vim, en mi caso uso vim 'sudo vim /etc/ssmtp/ssmtp.conf' donde nos encontraremos el fichero tal como muestra la imagen.






Aquí dejo el código por defecto por si se necesita:


#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES                                                                              


Una vez estamos aquí editaremos el fichero editando los siguientes apartados y generando algunos que no están.


root=tuemail@gmail.com
mailhub=smtp.gmail.com:587

rewriteDomain=gmail.com

hostname=localhost

UseTLS=Yes
 

UseSTARTTLS=Yes

AuthUser=usuario_sin_dominio
 

AuthPass=contraseña
 
FromLineOverride=yes


Nos debería quedar el fichero como se muestra en la imagen a continuación





Una vez configurado, comprobaremos que se envían emails desde la consola con el siguiente comando de prueba.

echo "Email de prueba" | ssmtp -s "sSMTP+GMAIL" usuario@gmail.com
Y finalmente comprobamos como nos llega a nuestro correo.










Como nota final, recordar que la contraseña usada es una contraseña de aplicación generada porque mi cuenta usa la autenticación en dos pasos.