ShellShock.- Vulnerabilidad importante

La shell de bash y sh son vulnerables. Ya estan saliendo los parches, hay que actualizar el sistema.

Para saber tienen el problema ejecuten en una shell sin permisos de root:

Para bash:

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Es vulnerable (si ejecuta el primer comando echo, el que está dentro de la variable x) si les devuelve algo así como:

vulnerable
this is a test

Para sh:

rm -f echo
env X='() { (a)=>\' sh -c "echo date"; cat echo

Es vulnerable si (ejecuta el comando date):

sh: X: line 1: syntax error near unexpected token `=’
sh: X: line 1: `’
sh: error importing function definition for `X’
Thu 25 Sep 2014 08:50:18 BST

 

 

 

Para más información:
https://lists.debian.org/debian-security-announce/2014/msg00220.html
http://barrapunto.com/articles/14/09/24/2114240.shtml
http://apple.stackexchange.com/questions/146849/how-do-i-recompile-bash-to-avoid-shellshock-the-remote-exploit-cve-2014-6271-an
https://es-us.noticias.yahoo.com/descubren-vulnerabilidad-seguridad-que-podr%C3%ADa-ser-m%C3%A1s-grande-235300902.html

Comando.- xdg-mime

Comando.- xdg-mime

 

El comando xdg-mime sirve para vincular un programa a un tipo de archivo (mime).

 

Ayuda:

xdg-mime --help

xdg-mime --manual

man xdg-mime

 

Ver cual es el tipo mime de un fichero

xdg-mime query filetype 'FICHERO'

Devuelve:

MIME

Ej., ver cual es el mime de un GIF:

xdg-mime query filetype 'imagen.gif'

Devuelve:

image/gif

El mime de las carpetas:

xdg-mime query filetype /home

Devuelve:

inode/directory

Estos son los tipos que me arroja ejecutando xdg-mime query filetype:

gif ==> image/gif
png ==> image/png
bmp ==> image/bmp
jpg/jpeg ==> image/jpeg
avi ==> video/x-msvideo (en proinf.net dicen que es video/avi)
mkv ==> video/x-matroska
flv ==> video/x-flv
webm ==> video/webm
mp4 ==> video/mp4
srt ==> application/x-subrip
txt ==> text/plain
rar ==> application/x-rar
zip ==> application/zip
html ==> text/html
xcf ==> image/x-xcf
oga ==> audio/x-vorbis+ogg
directorios ==> inode/directory
pdf ==> application/pdf
Administrador de archivos ==> inode/directory

 

Ver el tipo mime asociado a un programa. También sirve para comprobar si el cambio de tipo mime a otro tipo de llevo a cabo.

xdg-mime query default MIME

Devuelve:

PROGRAMA

Ejemplos:

xdg-mime query default image/gif

Devuelve:

gpicview.desktop

xdg-mime query default inode/directory

Devuelve:

nautilus.desktop

 

Cambiar el programa asociado a un tipo mime:

xdg-mime default PROGRAMA MIME

Ejemplos:

xdg-mime default gpicview.desktop image/gif

xdg-mime default pcmanfm.desktop inode/directory

Algunos ejemplos de programas:

vlc ==> vlc.desktop
GNOME Mplayer ==> totem.desktop
The Gimp ==> gimp.desktop
SubtitleEditor ==> subtitleeditor.desktop
GpicView ==> gpicview.desktop
evince ==> evince.desktop
FBreader ==> FBReader.desktop
pcmanfm ==> pcmanfm.desktop
nautilus ==> nautilus.desktop

 

 

 

http://proinf.net/permalink/comando_linux_para_asociar_un_programa_a_un_tipo_de_archivo
http://linux.ues.edu.sv/node/627

 

 

 

Comandos.- Consultas rápidas sobre la shell y bash

La shell es el programa de interprete de mandatos. Para ver donde la tenemos instalada y en que directorio:

echo $SHELL

La ruta hacia el binario de Bash

echo $BASH

Otra forma de ver donde esta instalado Bash

whereis bash

Todos los shell que dispone la máquina junto con sus rutas

cat /etc/shells

Versión de Bash

echo $BASH_VERSION

Nombre del usuario que ejecuta la Shell:

echo $LOGNAME

 

 

 

Comandos.- /etc/shells

En el fichero de texto /etc/shells esta la lista de todas las shells que dispone la máquina con la ruta completa de los logins validos de las shells.

Se puede ver el contenido ejecutando en la terminal:

cat /etc/shells

Me devuelve:

# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash

Esas son las shells de las que dispongo junto con sus rutas completas.

 

http://man.he.net/man5/shells

 

 

 

Manuales de Linux, redes, programación para descargarse por P2P

Gracias a cuelgame.net encontré unos manuales de GNU/Linux con muy buena pinta, para descargar por P2P. Les dejo el enlace magnético:

magnet:?xt=urn:btih:7628b235a486abc87b287b3ed19f48eb54affeba&dn=Manuales%3ALinux,redes,programacion&tr=http%3A%2F%2Ftracker.thepiratebay.org%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Ft

Nota: Si da error el enlace magnético como lo puse, lo encuentran en la entrada de cuelgame.net que enlace más arriba.

 

Contenido:

  • Administración avanzada de GNU-Linux.pdf
  • Administración de una red local basada en Internet.pdf
  • Aitken Peter - Aprendiendo C En 21 Dias.PDF
  • Análisis de seguridad de los protocolos TCP-IP.pdf
  • Anaya.La Biblia de C.pdf
  • Apuntes C.pdf
  • Aspectos avanzados de seguridad en Redes.pdf
  • Curso C.pdf
  • Curso completo de HTML.pdf
  • El shell Bash.pdf
  • GNULinux-Programacion de sistemas.pdf
  • Guia de administración de redes con Linux.pdf
  • Guía de Linux para el usuario.pdf
  • Guía de redes.pdf
  • Guia de seguridad del administrador de Linux.pdf
  • Guía Linux de programación(GULP).pdf
  • Introduction to the Command Line.pdf
  • La Guía del enROOTador para Linux.pdf
  • Lenguaje ensamblador para PC.pdf
  • Linux 2.4 Filtrado de paquetes.COMO.pdf
  • Linux from scratch.pdf
  • Manuales de programacion en Linux.pdf
  • Más allá de Linux from scratch.pdf
  • Prentice Hall - Linux Maxima Seguridad - Edicion Especial.PDF
  • Programación avanzada en shell.pdf
  • Programación de socket Linux (Sean Walton).pdf
  • Programación en C.pdf
  • Python.pdf
  • Redes de área local.Aplicaciones y servicios Linux.pdf
  • Redes de computadoras.pdf
  • Redes de computadoras (A. Tanenbaum.4ª Edición).pdf
  • Redes Linux con TCP-IP.pdf
  • Redes tcp-ip.pdf
  • Seguridad en Unix y redes.pdf
  • Tanenbaum Andrew - Sistemas Operativos Modernos.PDF
  • Tutorial de IPtables (O. Andreasson).pdf
  • Tutorial de Python..pdf
  • XHTML+CSS.pdf

 

 

 

Firefox.- Guardar los marcadores utilizando la terminal en un archivo de texto plano

En snarves.com.ar encontré como guardar los marcadores (favoritos o bookmarks) de Firefox a un archivo de texto plano y desde la terminal. El tutorial sigue vigente, el lo hizo en un Firefox 3 y yo en un Firefox 20.0 sin que se me presentaran problemas.

Para pedir ayuda para sqlite3; dentro de su shell escribimos .help. Y salimos de ella con .quit.

Estos fueron los pasos que seguí.

Paso 1.-

Como carecía de sqlite, tuve que instalarlo con:

sudo apt-get install sqlite3

Paso 2.-

Después busque el archivo places.slite con:

find /home/`whoami` -iname "*sqlite*" 2> /dev/null

De esa línea:

find ==> Es el comando que busca ficheros.
/home/`whoami` ==> Es la ruta de nuestro home, y el comando whoami entrecomillado con la backquote hace que se muestre el nombre de nuestro usuario.
-iname ==> Es una opción de find para que no sea sensible a mayúsculas/minúsculas.
"*sqlite*" ==> Con esto le decimos que busque cualquier fichero que tenga sqlite dentro de su nombre
2> ==> Hace redireccionamento de la salida de error patrón. Con ello evitamos que se muestren en pantalla los posibles errores y que solo veamos el resultado de nuestra búsqueda.
/dev/null ==> Realmente este archivo no existe. Cuando guardamos, redirecionamos la salida de error patrón, etc. en esa ruta es como mandar a la nada al archivo, información, etc. Estos se pierden y no ocupan espacio de ningún tipo.

Paso 3.-

Entrar a la shell de sqlite.

sqlite3 /LA_RUTA/places.sqlite

Ej.

sqlite3 /home/travesuras/.mozilla/firefox/chjpt3j6.default/places.sqlite

Sale algo como esto:

SQLite version 3.7.7 2011-06-23 19:49:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

Paso 4.-

Dentro de la shell de sqlite ejecuten:

Ver las tablas de bases de datos:

sqlite> .tables

Sale algo como:

moz_anno_attributes  moz_favicons         moz_items_annos
moz_annos            moz_historyvisits    moz_keywords
moz_bookmarks        moz_hosts            moz_places
moz_bookmarks_roots  moz_inputhistory

Paso 5.-

Asignar el archivo donde se van a volcar los datos:

sqlite> .output ff3_bookmarks.txt

Paso 6.-

Hacer el volcado de la base de datos.

Con la línea de abajo lo que se hace es consultar la base de datos (SQL), haciendo que nos devuelva la columna url y une las tablas moz_bookmarks y moz_places. El resultado queda guardado en ff3_bookmarks.txt o en cualquier archivo que hayamos indicado en el paso anterior.

sqlite> select url from moz_bookmarks, moz_places where fk=moz_places.id ;

Paso 7.-

Salir de la shell de sqlite:

sqlite> .quit

Notas:

Pedir ayuda para sqlite:

sqlite> .help

Si están como yo y no saben donde quedo el archivo ff3_bookmarks.txt hagan:

find / -iname "*ff3_bookmarks.txt*" 2> /dev/null

En la página snarves.com.ar advierten de algunos problemas que se pueden presentar y dan la solución:

Caso 1.- Sqlite. Error: Database is locked

Es cuando esta en uso el archivo (lockeado) por Firefox. La solución es cerrar Firefox y volver a intentarlo.

Caso 2.- Unable to open database "Ruta_del_places.sqlite": file is encrypted or is not a database

La versión de sqlite que usamos es distinta a la que genero el archivo .sqlite. Se soluciona usando el comando sqlite3.

 

 

 

http://snarvaez.com.ar/libertad/index.php/2008/05/26/obtener_bookmarks_firefox3_linea_comandos/
http://kb.mozillazine.org/Places.sqlite

 

 

 

Comando.- file

Comando.- file

El comando file sirve para determinar el tipo de archivo.

Con este comando podemos comprobar fácilmente el tipo de fichero, esto es útil porque no tiene extensión, que por algún motivo creemos no es la correcta o porque desconfiamos por alguna razón. Y entre otras cosas muestra la codificación de caracteres de los archivos de texto, srt, etc.

Ayuda

file --help

man file

Sintaxis

file [OPCIóN…] [FICHERO…]

Caso 1

Primero la forma más básica de usar el comando file.

Sintaxis:

file Fichero_sin_extensión

Ej.

Para esto necesitamos crear un archivo con:

touch travesuras

Vemos que nos arroja cuando ejecutamos:

file travesuras

Como es un archivo vacío nos muestra:

travesuras: empty

¿Qué pasa si lo modificamos con algún procesador de texto como nano?

nano travesuras

Escribimos cualquier cosa y guardamos. Entonces volvemos a ejecutar:

file travesuras

Y ahora nos arroja:

travesuras: ASCII text

Caso 2

Cuando ejecutamos el comando file en la linea que nos devuelve aparece el nombre del fichero, con la opción -b evitamos que esto suceda:

Ej.

file -b /etc/hosts

Nos devuelve:

ASCII English text

Caso 3

Ver el tipo de archivo, se utiliza la opción --mime-type. Lo utilizo para comprobar que el tipo de fichero sea el que declara ser, como cuando intento convertir un vídeo de un formato a otro, o desconfió de el. También es muy útil cuando carece de extensión por el motivo que sea.

Ej.

file --mime-type /etc/hosts

Nos devuelve:

/etc/hosts: text/plain

Caso 4

Con la opción --mime-encoding se puede averiguar la codificación de caracteres con que fue guardado un archivo. útil cuando estas para averiguar la codificación de caracteres (encoding) de un subtitulo cuando no se muestran bien a la hora de estar viendo una película.

file --mime-encoding subtitulo.srt

Caso 5

La opción -z trata de ver que hay dentro de un archivo comprimido.

file -z Archivo_comprido.zip

Caso 6

Cuando tenemos un archivo con una lista de nombre de ficheros para ver el tipo de archivo se llama con la opción -f.

file -f Listado-de-archivos.txt

Caso 7

La opción -p conserva la fecha de ultimo acceso del fichero. Bueno cuando no queremos dejar rastro de que anduvimos husmeando por ahí.

file -p /etc/hosts

file --preserve-date /etc/hosts

Caso 8

Algunos ejemplos donde se muestra mezcla de opciones y la utilización con otros comandos.

Este ejemplo en lo que devuelve no muestra el nombre del archivo, pero conserva la fecha del último acceso y el encoding.

file -pb --mime-encoding /etc/hosts

Cuando queremos analizar todos los ficheros:

file *

Cuando queremos analizar todos los ficheros en una carpeta como por ejemplo /boot.

file /boot/*

Cuando solo queremos analizar los ficheros cuyo nombre empiece desde "a" hasta "g".

file [a-g]*

Para ver todos los directorios. El comando file analiza todos los documentos que hay en esa path y se los pasa al comando grep para que los filtre y nada más muestre los que digan: directory

file * | grep directory

Lo mismo que el anterior pero los va paginando gracias al comando more

file * | grep directory | more

Gracias al comando head solo muestra los primeros 10 (solo porque lo dejamos que funcionara por defecto, si queremos otra cantidad por ejemplo utilizamos: head -n 2 y solo muestra dos resultados)

file * | grep directory | head

Cuenta el numero de pdf. El comando file analiza todos los ficheros de esa path, se los pasa al comando grep y este filtra solo los que digan: "PDF document", el resultado pasa al comando wc y por la opción -l cuenta la cantidad de líneas, mostrando así el número de documentos pdf en esa ruta

file * | grep "PDF document" | wc -l

 

 

 

http://gnu-linux-fsloizp.blogspot.mx/2009/08/comando-file.html
http://cosaslibres.com.co/ayuda-en-linux/man-comandos-linux/comando-file-linux/
http://es.hscripts.com/tutoriales/linux-commands/file.html
https://es.wikipedia.org/wiki/File_%28Unix%29
http://manpages.ubuntu.com/manpages/precise/es/man1/file.1.html
http://www.linfo.org/file_command.html

 

 

 

Comando.- wc

Comando.- wc

 

El comando wc sirve para hacer un conteo de bytes, caracteres, lineas y palabras de un archivo(s). Y si se pide información de varios archivos da además un total de los parámetros.

 

Ayuda

wc --help
man wc

 

Sintaxis

Use: wc [OPCIÓN(ES)]… [ARCHIVO(S)]…
o: wc [OPCIÓN(ES)]… --files0-from=F

 

Opciones:

-c, --bytes Imprime la cantidad de bytes.

-m, --chars Imprime la cantidad de caracteres.

-l, --lines Imprime la cantidad de lineas.

--files0-from=F read input from the files specified by NUL-terminated names in file F; If F is - then read names from standard input.

-L, --max-line-length Imprime la longitud de la linea más larga.

-w, --words Imprime el número de palabras.

--help Muestra esta ayuda y sale.

--version Muestra la información de la versión y sale.

 

Caso 1:

Contar lineas, palabras y caracteres escritos dentro de la terminal.

wc

Escribimos cualquier cosa, damos enter para que se vea bonito el resultado y salimos con las teclas Ctrl+D. Si hacemos esto y metemos el texto: "Este es un texto de muestra." sin las comillas, nos devuelve: 1       6      29. Indicándonos que es una linea, con seis palabras y 29 caracteres.

 

Caso 2:

El comando wc en su más siempre expresión muestra el número de lineas, palabras y caracteres

wc archivo
wc archivo1 archivo2 archivoetc

 

Caso 3:

Para pedirle al comando wc que tome en cuenta todos los archivos del directorio actual se teclea:

wc . *

El punto le indica a wc que trabaje sobre el directorio actual y el asterisco (*) que tome en cuenta todo lo que se encuentre dentro de esa path.

Si quisiera que fueran nada más un tipo de archivo pongo: *.EXTENSIÓN:

wc . *.jpg
wc . *.pdf
wc . *.gif
etc.

 

Caso 4:

Mostrar el tamaño de uno o varios archivos en bytes

wc -c archivo
wc -c archivo1 archivo2 archivoetc
wc --bytes archivo
wc --bytes archivo1 archivo2 archivoetc

Ejemplos:

wc -c /etc/passwd
wc --bytes /etc/passwd /etc/hosts

 

Caso 5:

Mostrar la cantidad de caracteres en uno o varios archivos.

wc -m archivo
wc -m archivo1 archivo2 archivoetc
wc --chars archivo
wc --chars archivo1 archivo2 archivoetc

Ejemplos:

wc --chars /etc/hosts
wc -m /etc/passwd /etc/hosts

 

Caso 6:

Nos dice cuantas lineas tiene un archivo(s)

wc -l archivo
wc -l archivo1 archivo2 archivoetc
wc --lines archivo
wc --lines archivo1 archivo2 archivoetc

Ejemplos:

wc -l /etc/passwd
wc --lines /etc/passwd /etc/hosts

 

Caso 7:

Muestra cual es la línea más larga de un archivo(s)

wc -L archivo
wc -L archivo1 archivo2 archivoetc
wc --max-line-length archivo
wc --max-line-length archivo1 archivo2 archivoetc

Ejemplos:

wc --max-line-length /etc/hosts
wc -L /etc/hosts /etc/passwd /etc/hostname

 

Caso 8:

Mostrar la cantidad de palabras en un archivo.

wc -w archivo
wc -w archivo1 archivo2 archivoetc
wc --words archivo
wc --words archivo1 archivo2 archivoetc

 

Caso 9:

Saber el cantidad de palabras y la linea más larga.

wc -wL archivo

Ejemplos:

wc -wL /etc/hosts
wc -wL /etc/hosts /etc/passwd /etc/hostname

 

Caso 10:

Se puede usar en combinación con otros comandos para contar el número de resultados. En este caso nos dice el número de archivos que hay en un directorio:

ls | wc -l

El número de pdf en un directorio:

ls *.pdf | wc -l

 

Caso 11:

Ver el tamaño de algún tipo de archivo dentro de una carpeta en bytes.

wc -c *.jpg
wc -c *.pdf
wc -c *.gif
etc.

 

Caso 12:

Podemos guardar la información arrojada usando > y >>.

Con esta se borra la anterior si existiera y deja la nueva:

wc -lw archivo > estadisticasdelarchivo

Con esta se van agregando los nuevos datos al final del archivo:

wc -lw archivo >> estadisticasdelarchivo

Ejemplos:

wc -wL /etc/hosts > estadisticasdelarchivo
wc -wL /etc/hosts /etc/passwd /etc/hostname >> estadisticasdelarchivo

 

 

 

http://www.linfo.org/wc.html

 

 

 

Cambiar el nombre del equipo en Linux

Cambiar el nombre del equipo en Linux

Cambiar el nombre del equipo en Linux es tan sencillo como sustituir el nombre antiguo por el nuevo en los archivos /etc/hostname y /etc/hosts y reiniciar. Por seguridad se recomienda respaldar los archivos antes de hacer cualquier cambio.

 

Paso a paso

Paso 1

Abrimos una terminal del root:

sudo su

Nota: Si no queremos abrir una terminal del root, a cada linea de comandos agregamos al principio la palabra sudo.

Paso 2

Respaldamos los archivos originales.

cp /etc/hostname /etc/hostname.bak

cp /etc/hosts /etc/hosts.bak

Así siempre podremos regresar al archivo original en caso de error con unas simples lineas de comando.

Paso 3

Abrimos con algún editor de texto simple el archivo /etc/hostname dentro de la terminal del root.

nano /etc/hostname

Paso 4

Sustituimos el nombre antiguo del equipo por el nuevo y guardamos.

Paso 5

Abrimos el archivo /etc/hosts, también dentro de una terminal de root con un editor de textos sencillo.

nano /etc/hosts

Paso 6

Sustituimos el nombre antiguo del equipo por el nuevo y guardamos.

Paso 7

Al reiniciar la computadora tiene el nombre nuevo.

 

 

 

https://santib90.wordpress.com/2007/04/10/cambiar-el-nombre-del-equipo-en-ubuntu/