Mini Coleccion de BASH miniscripts 2


Aqui algunas mas BASH scripts que he recolectado, espero te sean de utilidad.

#listando archivos con espacios entre-enmedio
ls “archivo con espacios en el nombre”

# Renombra nombre de archivos que contengan espacio por el caracter ‘_’
for i in *; do echo $i | grep -q ” “; [[ $? -eq $FOUND ]] && mv $i `echo $i | sed -e “s/ /_/g”`; done

# Genera un numero aleatorio usando urandom
head -c10 /dev/urandom | md5sum | tr -d [a-z] | tr -d 0 | cut -c1

# Visualizar estandarizados codigos de error usados en proyecto de la Universidad de Berkeley, California (ups!, dije BSD?, nota: la mayor parte de linux fue transportada desde *BSD)
cat /usr/include/sysexits.h

# Visualizar info de la bateria (en mi caso uso una Fujitsu, si no recibes nada ver el contenido de /proc/acpi/battery y cat el archivo correcto).
cat /proc/acpi/battery/CMB1/info

# Otra forma de Visualizar las devices del network
echo `/sbin/ifconfig | grep ^[a-z] | awk ‘{print $1}’`

# Visualiza un ps aux grafico
pstree

# Info de un binario
readelf -h /bin/bash

# Lista conexiones (debe ser root para ver todas)
lsof -an -i

# Visualizar cosas interezantes en /proc (procesa basura tambien)
for i in $( find /proc -type f -name ‘*’ ) ; do [[ “`file -b $i`” = “ASCII text” ]] && ( echo -en “33[0;34m***** archivo $i *****33[0;00m”; echo;[[ “$i” != “/proc/kpagecount” && “$i” != “/proc/kallsyms” && “$i” != “/proc/kmsg” ]] && [[ ! -d $i ]] && ( more $i;read -p “continuar?” -n 1 dumpinput;echo;echo )) ;done

# Otra variacion de lo mismo (incluye directorios con numeros)
for i in $( find /proc -type f -name ‘*’ ) ; do echo -en “33[0;34m***** archivo $i *****33[0;00m”; echo;[[ “$i” != “/proc/kpagecount” && “$i” != “/proc/kallsyms” && “$i” != “/proc/kmsg” ]] && [[ ! -d $i ]] && ( [[ “`file -b $i`” = “ASCII text” || “`file -b $i`” = “empty” ]] && more -s $i;read -p “continuar?” -n 1 dummyinput;echo;echo ) ;done

# Y otra (mejorada, solo directorios que empiezan con letra)
for i in $( find /proc/{a..z}* -type f -name ‘*’ | sort ) ; do echo -en “***** $i *****”; echo;[[ “$i” != “/proc/kpagecount” && “$i” != “/proc/kallsyms” && “$i” != “/proc/kmsg” ]] && [[ ! -d $i ]] && ( [[ “`file -b $i`” = “ASCII text” || “`file -b $i`” = “empty” ]] && grep -e [a-zA-Z0-9] $i;echo ) ;done | less

# Listando valores de virtuales keystrokes en acpi
cat /usr/share/acpi-support/key-constants

# Jugando con acpi_fakekey, haste root y segun vez en la lista de arriba KEY_VOLUMENDOWN=114, entonces, hago un for-loop y le mando 20 veses un volumen-abajo para que baje el volumen de las parlantes/bocinas:
for i in {1..20}; do acpi_fakekey 114;done

# Segun KEY_VOLUMENUP=115, entonces haste root con su root y sube el volumen 20 veses:
for i in {1..20}; do acpi_fakekey 115;done

# Analizando /etc
for i in $( find /etc/ -type f -name ‘*’ | sort ) ; do echo “*****”;echo -en “***** archivo $i *****”; echo; [[ ! -d $i ]] && cat $i;done | less

# Otra forma de listar los network interfaces:
/sbin/ifconfig | awk ‘/^[^ ]+/ {print $1}’

# Quitar comentarios de un archivo.
echo $(cat /etc/usplash.conf | grep -v ‘^#’)

# Visualiza $USER enviroment.
echo $(getent passwd “$USER”)

# Lista espacio df de ext2, ext3, xfs
df -P –type=ext2 –type=ext3 –type=xfs 2>/dev/null | awk ‘/\/dev\// { print }’ | sed -e ‘s/ [[:space:]]*/ /g’

# Version debian.
cat /etc/debian_version

# Version de distro.
cat /etc/issue

# Montar un iso imagen.
sudo mount -t iso9660 -o loop archivo.iso /media/test/

# Envenenar arp cache (arp poisoning) con arping
sudo arping -s source-ip destino-ip

# Usando ettercap con ncurses
sudo ettercap –curses

# Directamente haciendo un “man-in-the-middle” attack con ettercap
sudo ettercap -w miArchivo.pcap –text –mitm arp:remote /target-ip-1/ /target-ip-2/

# Deshabilitando .bash_history creando un symlink a /dev/null
ln -s /dev/null ~.bash_history

# Lista procesos con process-id, parent-process-id y comando
ps -e -o pid,ppid,command

# Densamblando a bin 32 (usando prog. ‘ndisasm’ del paquete ‘nasm’)
ndisasm -b 32 /media/ntfs/adin/adin.exe > adin.s

# Asignar otra ip a la ethernet card
ip addr add IP3 eth0
for ip in {1..254} ; do ip addr add 192.168.0.$ip/24 eth0 ; done

###############################################################3
# Hacer un FIFO local con dos terminates;
mkfifo /tmp/fifo
cat /tmp/fifo

Escriba algunas lineas, cada vez que pressione ENTER, la linea de texto se mandara
por el FIFO y aparecera en la primera terminal, Cierra el FIFO con Ctrl+D
Quita el FIFO:
rm /tmp/fifo

# Escribir hacia una terminal usando un FIFO en proc
echo “Hello, world” >> /proc//fd/1
###########################################################

# Probar sonido
cat /dev/urandom > /dev/audio

# Crear disco virtual de 10mb
dd if=/dev/zero of=/tmp/disk-image count=20480 /* en bloques de 512 * 20480 = 10mb */
mke2fs -q /tmp/disk-image
mkdir /tmp/virtual-fs
mount -o loop=/dev/loop0 /tmp/disk-image /tmp/virtual-fs

# Crear disk image de un cdrom
cp /dev/cdrom /tmp/cdrom-image
mount -o loop=/dev/loop0 /tmp/cdrom-image /mnt/cdrom

################################################################
# Visualizando load averange
cat /proc/loadavg

Los primeros 3 numeros corresponden al promedio de numero de tareas activas
corriendo en el proceso-del-sistema en los ultimos 1, 5 y 15 minutos respectivamente.
La siguiente columna es procesos activos en el instante que estan por ser ejecutados
en el arbol de procesos en lugar de estar bloqueados en una llamada del systema,
seguidos por / y el numero de procesos en sistema, por ultimo el PID del
ultimo proceso corrido.
###############################################################

# Recobrar archivos borrados con:
apt-get install photorec photorec

# Adicionando medibuntu al sources.list y instalando.
sudo wget –output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get –quiet update && sudo apt-get –yes –quiet –allow-unauthenticated install medibuntu-keyring && sudo apt-get –quiet update; sudo apt-get –yes install app-install-data-medibuntu apport-hooks-medibuntu

# Descripcion algunos parametros de fsck (FileSystemCKeck utileria)
# -C=Pon =arra progreso, -R=Brinca root en caso de estar montado, -A=Procesa todo fstab y -a=auto repara (pero es mapeada a e2fsck -p )
fsck -C -R -A -a

# Otro parametro de fsck
# -t= tipo a checar, debe ser igual al de /etc/fstab
fsck -C -a -t ext3 /dev/sda2

# Inicializa Random SEED y genera 10 passwords con sus hashes
SEED=$(head -1 /dev/urandom|od -N 1|awk ‘{print $2}’);for i in {1..10};do passwordtmp=$(echo “`mkpasswd ${RANDOM:2:9}`”);password=$(echo “${passwordtmp:2:9}”);echo “pass: $password Hash: `mkpasswd $password`”;done

# Subir poder al ath0 (mi inalambrica es atheros)
sudo iwconfig ath0 txpower 10

# Reiniciar el panel
kill -HUP $(pgrep panel)

# Regresar iptables a valores por defecto.
iptables -X; iptables -t nat -F; iptables -t nat -X; iptables -t mangle -F; iptables -t mangle -X; iptables -P INPUT ACCEPT; iptables -P FORWARD ACCEPT;iptables -P OUTPUT ACCEPT

# Reiniciar audio
pkill pulseaudio && start-pulseaudio-x11

# Visualiza BIOS y info de tarjeta madre.
demidecode -t bios
demidecode -t baseboard

# Actualiza la base de datos de locate
su -l root -c updatedb

# Busca toda la subnet cuando conecta y reporta si estan up.
sudo dhclient ath0 && sbnt=$(ifconfig ath0 |grep “inet addr” |cut -d “:” -f 2 | cut -d “.” -f 1-3) && nmap $sbnt.0/24 -sP

# Busca por -As en el man page.
man tar | grep -B2 -A5 remove | head

# Desde Windows 2 formas de recuperar mbr record
bootrec /fixboot
bootrec /fixmbr

# Copiando con scp
scp myfile you@remote:/path/to/where
scp “you@remote.machine.org:/userdisk/yourdir/*” ./

# Desde host hacia mi recurcivamente
scp -r alex@192.168.100.104:/home/alex/Desktop/text/* .

# Probando teclado.
xev -rv

# quitarle al nautilus el modo confirmacion de borrar trash.
gconftool-2 -s /apps/nautilus/preference/confirm_trash –type=bool false

# Expulsar el cdrom
eject /dev/sr0

# poniendo un salvapantallas desde consola
/usr/lib/xscreensaver/glblur -root

# Visualizando particiones disco duro
parted /dev/sda print

##############################################################
# Adicionando FreeBSD al GRUB2 , primero ver en que particion esta FreeBSD
parted /dev/sda print

# Luego al archivo modifique segun sus necesidades
nano /etc/default/grub

# Adicione al archivo /etc/grub.d/40_custom las siguientes lineas.

# the ‘exec tail’ line above.
menuentry “FreeBSD 8.1-RELEASE i386” {
set root=(hd0,3)
chainloader +1
}

# Alternativamente si lo deseas y quieres deshabilitar el “linux mem-test” del menu de grub
chmod -x /etc/grub.d/20_memtest86+

# Para finalizar ejecute
update-grub
#####################################################################

# Forma mas segura de asignar lista de archivos
# a un array.
shopt -s nullglob
textfile_listing=( *.txt )

# lista IP’s en /etc
find /etc -type f -exec cat ‘{}’ \; | tr -c ‘.[:digit:]’ ‘\n’ | grep ‘^[^.][^.]*\.[^.][^.]*\.[^.][^.]*\.[^.][^.]*$’

# List archivos con suid a root (+4000)
for file in $( find /usr/bin /sbin /bin /usr/local/bin -perm +4000 ); do ls -ltF –author “$file”;done

# Creando un respaldo de archivos en $PWD hacia otro directorio
ls . | xargs -i -t cp ./{} otro_directorio

# Ejecuta un ‘reverse DNS lookup’ a IP
ipcalc -h IP

# Usando banner
banner -w 60 Hola Mundo

# Leyendo en voz alta /etc/issue
espeak -v es-la -l 10 -s 170 -p 15 < /etc/issue

# Analizando un archivo en HEX
dd if=/bin/ls | hexdump -C | less

# Des-ensamblando un archivo binario
objdump -d /bin/ls | more

# Deja de echo a terminal
stty -echo
stty echo #muestra echoes en terminal (default)

# Lista services
`which service` –status-all

# Lista interfaces
echo $(/sbin/ifconfig | sed -e 's/ .*//')
echo $(/sbin/ifconfig | awk '/^[a-z]/ { print $1 }')

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: