4 oct 2015

Introducción a scripting en Linux y Windows


1. Introducción

Bash (Bourne again shell) es el intérprete de comandos más empleado en sistemas Unix-like. Además de ser una capa entre el núcleo del Sistema Operativo y el usuario es un lenguaje de programación bastante potente.
Los scripts son los programas escritos en Shell (ya sea bash u otros) definidos de manera sencilla son varios comandos consecuentes que se ejecutarán uno detrás de otro. Un buen administrador de sistemas es imprescindible que conozca al menos las bases de scripting.

"Ningún lenguaje de programación es perfecto. Ni siquiera hay uno que sea el mejor - solo hay lenguajes que son buenos o malos para una tarea concreta." Herbert Mayer.

A la hora de cargar el sistema, Linux ejecuta muchas secuencias de scripts, situados en /etc/rc.d, que ajustan el sistema e inician los servicios necesarios. La comprensión detallada de estos scripts iniciales nos permitirá analizar y, en caso de necesidad, modificar el comportamiento del sistema.

2. Ejemplos

2.1 Ejemplo 1

Un script se crea primeramente como un documento de texto y luego se le asigna el permiso de ejecución. Voy a emplear el editor Nano. Mi script se va a llamar root. Tecleamos: nano root

He encontrado un script que al ejecutarlo, en el caso de que no seamos root, imprime "debe ejecutarse desde el usuario root". Si ya somos root no hace nada. Su código es siguiente:


Nota: la variable EUID tiene el valor de 0 si somos superusuario (root), el valor 1 en caso contrario.

Guardamos el script y le damos el permiso de ejecución con un chmod +x root.
Probamos ejecutarlo desde un usuario normal y vemos el resultado:


Voy a ampliar su funcionalidad, de manera que, si el usuario root, imprima en pantalla "Ya eres root" y si no lo es, que lo imprima por pantalla y permita cambiarse al modo root (introduciendo la contraseña). Además no influirá si la S o la N sean minúsculas o mayúsculas:


Vamos a probarlo. Nos situamos en el directorio del script y ejecutamos ./root1



2.2 Ejemplo 2

En este ejemplo voy a escribir un script con varias opciones para elegir. La opción 1 nos mostrará el usuario actual con el comando whoami, la 2 imprimirá el espacio libre con el comando df, la 3 muestra la versión del kernel con el uname -r y la última nos permitirá salir. En este script lo óptimo va a ser emplear la estructura case.













Probamos, sin olvidar darle el permiso de ejecución















3. Scripting en Windows

En el entorno Windows los scripts tienen extensión .bat o .batch, además no les tenemos que dar permiso de ejecución, ya que en windows no existe.

3.1 Ejemplo 1

Voy a realizar un script de formateo falso del ordenador que imprimirá por pantalla, y tras unos segundos reiniciará el equipo.

Para ello abrimos Notepad.exe, introducimos el código (con el cual no tendrás ningún problema si has entendido todo lo anterior) y guardamos en extensión .bat.


En el código empleo redirecciones del comando timeout a un fichero inexistente nul para que no aparezca nada relacionado con la pausa en la pantalla.

Probamos ejecutarlo:






3.2 Ejemplo 2

Este ejemplo constistirá en un script muy sencillo que finalice el proceso explorer.exe, lo que hará desaparecer el entorno gráfico. Para ello forzaremos el cierre del proceso explorer.exe. Si queremos inicarlo de nuevo, lo haremos desde el administrador de tareas.

Código:



El resultado de ejecución:


Volvemos al entorno gráfico otra vez:


Además, si queréis ir un poco más allá, podemos juntar alguno de nuestros scripts a un ejecutable legítimo.

1. Antes de juntar el script con ejecutable legítimo tenemos que hacer que sea ejecutable. Para ello emplearemos WinRaR. Boton derecho sobre el script -> añadir al archivo...

Marcamos la casilla de Crear un archivo autoextraible en la pestaña principal.


2. Vamos a la pestaña Avanzado -> Autoextraible. En el primer campo de la pestaña Instalación introducimos el nombre de nuestro script, para que se ejecute tras extraerse.


3. En la pestaña Modos seleccionamos Ocultar todo, para que se extraiga silenciosamente.


4. Ya tenemos preparado nuestro ejecutable malicioso! Queda juntarlo con otro que sea legítimo. Por ejemplo el instalador de Media Player Classic.

Emplearé el programa IExpress 2.0 para esta tarea. Inciamos el programa:


1. Le decimos que tras extraer, ejecute directamente la instalación.


 2. Elegimos los ejecutables que queremos meter en nuestro ejecutable nuevo.


3. Elegimos el orden de la ejecución de los 2 programas.


4. Ocultamos la ventana de extracción.


5. Y finalmente indicamos el nombre del nuevo ejecutable.


6. Esperamos a que finalice el proceso.


Al final tendremos un ejecutable con un aspecto parecido. Si lo abrimos, primero se ejecutara nuestro script.exe y después la instalación del programa legítimo.


Espero que os haya gustado este tutorial. Para cualquier duda, opinión o sugerencia sobre mis post tenéis mi correo: andrewover0@gmail.com y, por supuesto, los comentarios.

Saludos!

No hay comentarios:

Publicar un comentario