miércoles, 28 de agosto de 2013

Como instalar sqlmap en Ubuntu 12.04

No nos vamos a meter en temas de seguridad informatica ni mucho menos,pero estaba intentando instalar esta herramienta la cual si se encuentra en los repos de ubuntu,pero no la instala,lo raro es que si aparece al buscarla en los paquetes:

apt-cache search sqlmap
Bueno no,pero al escribir sqlmap el programa de autobusqueda nos dice que instalemos el paquete sqlmap.




Pero al intentar instalarla no la encuentra:

sudo apt-get install sqlmap

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
E: No se ha podido localizar el paquete sqlmap

Lo que haremos es descargar el proyecto desde git y luego configurar algunas cosas:

Primero instalamos git:

Entramos a root:

su
Ahora cambiamos a /opt

cd /opt

Instalamos git

apt-get install git

Bajamos el proyecto:

git clone git://github.com/sqlmapproject/sqlmap.git

Eso es todo ahora solo creamos un alias:

 echo 'alias sqlmap.py="/opt/sqlmap/sqlmap.py"' >> ~/.bashrc

Ahora  ejecutamos así estando como root:

sqlmap.py

O con sudo:

sudo sqlmap.py

Para que nuestro usuario normal pueda ejecuar salimos de root y ejecutamos:

echo 'alias sqlmap.py="/opt/sqlmap/sqlmap.py"' >> ~/.bashrc

Eso es todo,para ver la salida del scan tenemos que ir al /opt

cd /opt/sqlmap/output

También podríamos crear una variable de entorno pero no es muy seguro.

Y recuerda si te sirvió y tienes cuenta de google dale google aya abajo

Leer más...

martes, 27 de agosto de 2013

[Shell] Juego de ahorcado en Perl

Bueno,estaba un poco aburrido hace unos días y me programe este juego de ahorcado en perl,sirve sin módulos,solamente lenguaje perl,ya que no tenia Internet en ese momento para instalar algún modulo que le ayudara a verse mejor.

Para jugar bajan el paquete zip:

Enlace
Versión 2:

Enlace

Y lo descomprimen.

Luego entran a la la carpeta desde terminal,o con nautilus/dolphin y le dan abrir en terminal y escriben:

perl ahorcado.pl

Y eligen una categoría,por defecto esta una categoría de programación con nombres de lenguajes de programación,pero si quieren añadir mas solo entran a la carpeta categorías y crean un archivo con el nombre de la categoría con extensión .txt y adentro de este meten las palabras para jugar de esa categoría.


Las letras se ven rojas por la configuración de mi $PS1,eso es todo,luego le pongo modulos para mejorar la función clear que no me gusto nada usarla,o un modo multijugador en modo online local,etc.

Leer más...

jueves, 8 de agosto de 2013

Tutorial python Gtk3 Hola Mundo

Hola Mundo


Bueno este es el primer tutorial de programación Python/Gtk3, voy a realizar una serie de estos a ver que tal.

Y bueno,para comenzar este tutorial necesitamos tener una editor configurado para facil programación,recomiendo alguno de estos programas:

sublimetext

kate

gedit+plugins

vim-configurado

nano-configurado

eclipse+pydev

Bueno,también necesitamos el modulo Gtk3 que esta ya en la mayoría de distribuciones de Linux,así que no creo que lo necesiten instalar.

Y saber algo de programación en Python2 o Python3.

Primero que nada en este caso vamos a manipular un modulo,lo que seria como una libreria y la mayor parte del código van a ser clases o funciones del mismo modulo,por lo cual es necesario aprender python solamente antes para manipular bien Gtk3.

Comenzamos:

Primero que nada creamos una carpeta para trabajar limpio,en mi caso voy a usar solo la terminal:

mkdir -p ~/Documentos/python/pygtk && cd ~/Documentos/python/pygtk

Si usan un IDE como eclipse o un editor como gedit,kate pueden hacerlo visualmente a la hora de guardar el programa .py (solo es la forma de hacer las cosas).

Bien,comencemos creamos un archivo con extensión .py,por ejemplo ventana.py.

En mi caso voy a usar vim:

vim ventana.py

Y empezamos a escribir lineas de código.

Antes que nada vamos a definir el hashbang:

#!/usr/bin/env python

Yo voy a usar Python 2.7.

También vamos a usar utf8 para poder usar caracteres especiales,en el texto de las ventanas,etc.

# -*- coding: utf-8 -*-

Ahora vamos a importar el modulo Gtk3:

from gi.repository import Gtk

El modulo se llama Gtk3,si queremos que sea como en la version pasada podriamos hacer algo como esto:

from gi.repository import Gtk as gtk

Pero no es muy buena practica así que trabajaremos con el nombre real.

Vamos a crear una ventana con todo lo necesario para abrirse:

 win = Gtk.Window()  
 win.connect("delete-event",Gtk.main_quit)  
 win.set_title("Hola Mundo!!!")  
 win.show_all()  
 Gtk.main()  

Ahora ejecutamos en una terminal:

python ventana.py

Y se abre la ventana :D.



Ahora lo explico :

win = Gtk.Window() # Inicia un objeto ventana de Gtk

win.connect("delete-event",Gtk.main_quit)

^-Llamamos la funcion connect de la clase ventana,y le pasamos el parámetro ("delete-event") que es la señal que recibe(en este caso cuando le damos clic al boton de cerrar de nuestro window manager) y el parametro ("main_quit" de Gtk) que es lo que ejecuta cuando recibe el primer parametro,en este caso cerrar todo su main.

win.set_title("Hola Mundo!!!") # Llamamos la función que coloca un titulo en la ventana,con el parámetro string("Hola Mundo).

win.show_all() # Llamamos la función show_all que muestra la ventana en la pantalla.

Gtk.main() # Iniciamos el main de Gtk que crea un bucle infinito que mantiene la ventana abierta,hasta recibir la señal de cerrado.

Bien, explicado eso,ahora vamos a añadir un botón que nos salude en la terminal,para eso creamos una variable que sera igual al boton:

button = Gtk.Button(label="Saluda") # Le pasamos un parametro definido(label) que es el nombre que mostrara el boton

Y lo añadimos a la ventana:

win.add(button)

En estos momentos podemos ejecutar el script de nuevo y se ve así,sin embargo no hace nada,ya que no esta definida la función saludar,la definimos y se la pasamos como señal al botón así:

win.button.connect('clicked',saluda) # El primer argumento es la señal(event) y el segundo la respuesta a ejecutar(callback) y hay un tercero.

Y así la función:


def saluda(x): # La x es un argumento que nos pasa la respuesta del boton automáticamente (el tercero[widget]),no lo usaremos en este momento.
    print "Hola mundo!!!"

Así va el script hasta ahora:

 #!/usr/bin/env python  
 # -*- coding: utf-8 -*-  
 from gi.repository import Gtk  
 def saluda(x):  
   print "Hola mundo!!!"  
 win = Gtk.Window() # Inicia un objeto ventana de Gtk  
 win.connect("delete-event",Gtk.main_quit)  
 win.set_title("Hola Mundo!!!")  
 button = Gtk.Button(label="Saluda")  
 button.connect('clicked',saluda)  
 win.add(button)  
 win.show_all()  
 Gtk.main()  

Y funciona :D



Bien antes de continuar déjenme les digo que como estamos programando hasta ahora es programación imperativa al estilo perl,ya que todas las variables,funciones están libres,se puede programar así y yo así lo hago al ser perlero,pero de ahora en adelante vamos a usar programación orientada a objetos,como debe ser :D.

Eso que hicimos en OPP(Programación Orientada a Objetos), se ve así:

 #!/usr/bin/env python  
 # -*- coding: utf-8 -*-  
   
 from gi.repository import Gtk  
   
 class Win(Gtk.Window): # Heredamos de la clase Window
   def __init__(self):  
     Gtk.Window.__init__(self,title="Saluda") # Llamamos las variables y funciones de Window que estén en su __init__
     self.button = Gtk.Button(label="Hola Mundo!!!")  
     self.button.connect('clicked',self.saluda)  
     # Ya no necesitamos poner window.algo ya que como heredamos solo usamos self.  
     self.add(self.button)  
   def saluda(self,x):  
     print "Hola Mundo"  
   
 win = Win()  
   
 win.connect("delete-event",Gtk.main_quit)  
   
 win.show_all()  
 Gtk.main()  

Por ultimo vamos a hacer algo interesante que veremos en la siguiente parte:

 #!/usr/bin/env python  
 # -*- coding: utf-8 -*-  
   
 from gi.repository import Gtk  
   
 class Win(Gtk.Window):  
   def __init__(self):  
     Gtk.Window.__init__(self,title="Saluda")  
     self.button = Gtk.Button(label="Saluda")  
     self.button.connect('clicked',self.saluda)  
     self.box = Gtk.Box(spacing=10)  
     self.label = Gtk.Label()  
     self.label.set_label("Hola Mundo")  
     self.label.set_angle(25)  
     self.label.set_halign(Gtk.Align.END)  
     self.box.pack_start(self.button, True, True, 0)  
     self.box.pack_start(self.label, True, True, 0)  
     self.add(self.box)  
   def saluda(self,x):  
     self.label.set_angle(self.label.get_angle()+6)  
   
 win = Win()  
   
 win.connect("delete-event",Gtk.main_quit)  
   
 win.show_all()  
 Gtk.main()  




Leer más...

miércoles, 7 de agosto de 2013

Pasar marcadores de chrome/chromium a pdf

Bien,ahora que vimos la entrada pasada de como guardar las paginas en pdf,se me ocurrio guardar las paginas que tenemos en los marcadores de chrome o chromium a pdf.

Esto se hace fácil con un script en bash a base de pipes Unix:

Enlace

Lo único que deben hacer es ejecutar ese script desde la terminal,luego  indicarle donde esta el archivo con los marcadores para esto primero deben exportar los marcadores de chome o chromium y automáticamente los pasa a Pdf con el programa que vimos en la entrada pasada:





Eso es todo.



Leer más...

[Shell] Guardar paginas web en pdf

Este es un sencillo tutorial de como guardar las paginas que estan en html,php,etc en formato pdf para verlas después.

Solo guardara una impresión de la web ya que aun no hay tecnología que guarde las paginas enteras(como si tuviéramos Internet),(creo) ya que paginas con vídeos,contenido flash,etc no lo rerproducira.

Pero bueno mas que nada es por la información,por si vemos mucho una pagina de wikipedia,o de algún lugar similar y necesitamos la información en pdf.

Tutorial

1.Instalamos wkhtmltopdf:

Solo lo he probado en Ubuntu,pero supongo que esta en todos los sistemas Linux,solo usamos el comando de instalación.

sudo apt-get install wkhtmltopdf

2. Descagamos la pagina:

La sintaxis es wkhtmltopdf url nombre_de_salida,por ejemplo

wkhtmltopdf http://www.itimetux.com/2013/07/shell-tee-tuberia-en-t-unix.html tee.pdf && xdg-open tee.pdf

Eso de rojo no es necesario es solo para que lo habrá automáticamente cuando lo tenga.


Y Listo:



Así de fácil,al parecer mi script en javascript detecto un user agent muy raro,pero bueno.

Tiene argumentos este programa,para verlos tecleen:

wkhtmltopdf -h

Como ven esta en una entrada de las de tipo shell y no todo lo que hace la shell se queda en la shell,en próximas entradas veremos mas como esta.


Eso es todo.





Leer más...

lunes, 5 de agosto de 2013

Búsqueda de directorios en forma recursiva con python

Comentaban en una entrada de un comando como tree para Windows,el cual existe que es lstree.exe desde la cmd de Windows,pero también pensé en programar uno similar usando algún lenguaje de programación,como C o C++ para hacer tree para Windows pero como ya esta lstree.exe no es necesario asi que solo me quede con la idea del algoritmo,de como seria y es muy sencillo,una búsqueda recursiva de archivos y directorios,claro que tree tiene argumentos como ordenar alfabéticamente,solo directorios,mostrar bytes,etc pero luego del algoritmo principal se saca lo demás,así que para una búsqueda recursiva basta usar una función recursiva.

Y que tiene que ver python?

Pues python o ruby son muy sencillos y los uso para hacer prototipos,como un tipo de pseudocodigo que pueda ejecutar,ya que python es mucho mas sencillo que C,C++,C#,Java y bueno:

 #!/usr/bin/env python
 from glob import glob  
 from os import path  
 """  
 Algoritmo:  
   
 1.-Recorrer directorio y selecionar los directorios y archivos.  
   
 2.-Recorrer cada directorio y hacer lo mismo que el paso 1  
   
 """  
   
 def dirs(x,n):  # funcion principal
     di = glob(x+"/"+"*")  # vemos todo lo que esta adentro del directorio que nos manden
     tabs = "  "*n  # Algo de vista
     do = x.split('/')  # Esto es para mostrar el archivo(por culpa de glob)
     print tabs+do[-1]+" /"  # Mostramos la vista
     for i in di:  # Recorremos el directorio
         if path.isdir(i):  # Si es direcotorio
             dirs(i,n+1)  # Empezamos la función recursiva
         elif path.isfile(i):  # Si es archivo
             do = i.split('/')  # gracias a glob :/
             print "|"+tabs+do[-1]  # Lo mostramos
   
   
 if __name__ == "__main__":  # Asi se ejecutan los scripts
     dirs(".",0)  # Iniciamos el script buscando en el directorio actual
   

Veamos.

Creamos algunos archivos y carpetas:



tree :


El script en python:


Como ven le falta mucha vista,pero eso ya se hace teniendo el script principal,lo unico que queria mostrar era la busqueda recursiva usando una funcion recursiva.

Espero que les sirva :D.

Un extra para los Linuxeros/Unixeros:

 find . -print | sed 's;[^/]*/;->|   ;g'


Eso es todo :D.




Leer más...

domingo, 4 de agosto de 2013

Como instalar Windows despues de Linux

Como instalar Windows teniendo Linux instalado


A mi no me gusta ser fan de una cosa en especial,uso solftware libre y me gusta mucho,pero también uso Windows y Mac y BSD,y por eso no voy a dejar de usar uno u otro,Linux me gusta mucho para programar,Windows para Jugar :P,y Mac para desarrollar para iOS/iTunes/Xcode.

Bueno,en esta ocasión aprenderemos a instalar Windows teniendo un sistema Linux ya instalado,algo que a muchas personas les parecería una tontería ya que Linux cuenta con alternativas a los programas de Windows muy buenos y en algunos casos mejores,pero bueno muchas veces no usar Windows no es una elección y bueno,vamos a instalarlo junto a Linux.

No importa que versión tengan,lo único importante es el cargador de arranque usan en el linux que tienen instalado ,yo uso Grub2 en Debian.

Este tutorial lo hice instalando Windows 7 en una pc con Debian y Gentoo instalado.

Primero que nada hay que saber particionar,obligatoriamente necesitamos redimensionar nuestra particion,o particiones para crear una nueva en formato NTFS,para instalar Windows,así que vamos a hacerlo:

Primero que nada necesitamos un livecd de Linux con un programa de particionado,como gparted,cfdisk,etc.

En mi caso usare un liveusb de ubuntu 12.04 con gparted.

Bien primero que nada lo iniciamos.

Luego abrimos gparted,esto de gparted es para mas fácil se puede hacer mas "dificil" con fdisk,o aun mas dificil parted desde consola,pero si sabemos hacer eso no seria necesario este tutorial,el hecho es hacer las cosas sencillas.

Y como ven en mi caso tengo tres particiones:



sda1 para Debian boteable

sd3 para Gentoo.

sda2 extendida->sda5 swap de ambos sistemas.

Bien ahora le damos clic derecho a alguna y Resize/Move:

En mi caso bajare la de Debian de 190 Gb a 100 y dejare 90 Gb para Windows:

Como pueden pensar esto se puede hacer desde la otra partición,por ejemplo en mi caso,inician Gentoo y redimencionan la partición de Debian,o viceversa,pero es un ejemplo y pueden elegir la mejor manera,en este caso recomiendo tener un live porque lo usaremos mas adelante también.

Con esto se crea una partición unallocated:

Le damos clic derecho y new,elegimos en File system: ntfs




Y le damos add y a la paloma verde de aceptar:



Esperamos......(esto se tarda un rato).

Bien cuando termine:



Tendremos una nueva partición en NTFS donde instalaremos Windows,ahora reiniciamos la pc y quitamos el live.

En este momento inician nuestros sistemas normalmente,la diferencia se vera solo al medir el tamaño.



Apagamos la Pc y iniciamos el disco de instalación de Windows:

Ahora elegimos la partición que creamos:



Instalamos normal y como saben si ya han instalado Windows alguna vez,se reinicia varias veces y en ese proceso no veremos los sistemas Linux.

Cuando termine de instalar y podamos usar Windows,ya no podremos iniciar los sistemas linux,para poder iniciarlas apagamos el equipo y iniciamos de nuevo el live que usamos para particionar:

Abrimos una terminal y recuperamos el grub.

Para eso tenemos que enjaular el sistema donde estaba instalado nuestro grub,por ejemplo en mi caso si miran la primera imagen,dice que la sda1 es booteable,en ese caso era Debian,pero puede que incluso sea una partición de solo Boot,si tenían Ubuntu,Debian o descendientes no hay problema,solo enjaulan esa partición,pero si tienen Arch o Slackware con Boot aparte o incluso Ubuntu con Boot aparte necesitan montar ambas particiones,también otra cosa es si tienen Lilo o syslinux,yo en mi caso tengo grub2 y es muy sencillo,pero veamos como se hace:

Esto es para todos:

Abrimos una terminal en el Livecd:

Iniciamos como root:

Para mas fácil(ya que quien sabe cual es la contraseña de root del live que estoy usando y asi le hacen muchas distros):

sudo su

Ahora nos cambiamos a mnt

cd /mnt

Creamos una carpeta:

mkdir linux

Montamos la partición donde teníamos el grub:

Para ello vamos a verlas con el comando:

fdisk -l


Como ven en mi caso la de Windows es la /dev/sda2 ya que es NTFS,así que no me movió la de Debian que era la uno:

Montamos

mount /dev/sda1 linux

Ahora comprobamos

cat linux/etc/issue

Y debe regresar el nombre de su sistema linux,en mi caso si es donde tenia el grub :D,si no es donde tenían su grub desmonten:

umount /dev/sda1

Y monten otra.

Ya teniendo la partición del grub o cargador de arranque montada,vamos a iniciar una jaula root:

Montamos dev,proc y sys:

mount --bind /dev /mnt/linux/dev
mount --bind /dev/pts /mnt/linux/dev/pts
mount --bind /proc /mnt/linux/proceso
mount --bind /sys /mnt/linux/sys

Y inciamos el cambio de root:

chroot /mnt/linux


Ahora es como si estuviéramos en Debian(en mi caso),ya solo basta instalar el cargador de arranque y hacer un update al cargador de arranque que teníamos.

En el caso de grub2:

grub-install --recheck /dev/sda

update-grub2

Y eso es todo,para otra distro deben visitar la documentacion de como hacer un update a Lilo,por ejemplo o instalar grub2 si se les hace mas facil.

Eso es todo ahora iniciamos normal y listo.


A mi me salen dos Debian porque uno es Gentoo,ya que debo modificar el archivo de configuración manualmente para poder usar plymouth en Gentoo,pero eso es asunto mio :P.






Leer más...