Primero necesitamos agregar el soporte para shodan:
https://sourceforge.net/projects/fhttp/files/Extra/
se bajan los modulos en la carpeta del FHTTP y esa es toda la instalacion.
Tambien tenemos un ejemplo usando ese modulo:
http://sourceforge.net/projects/fhttp/files/Extra/Examples%20-%20Shodan/finder.pl/download
Vamos a usar ese script.
Pero antes vamos a explicar un poco el funcionamiento, no del modulo de shodan, del script.
Inicializamos:
my $shodan = shodan->new();
$shodan->login($user,$password);
como tal no es necesario logearse, pero lo hacemos para que de mas resultados (mas de 1 pagina).
y buscamos:
my @tmpenlaces = $shodan->buscar($busqueda,$page);
$page es el numero de pagina que queremos que nos retorne.
($proto,$host,$hostheader,$path,$puerto) = &tools::parseurl($enlace);
$sock = IO::Socket::INET->new(PeerAddr => $host,
PeerPort => $puerto,
Timeout => 1,
Proto => 'tcp');
if(!$sock) {
$i = 2;
$down++;
next;
}
Parseamos los enlaces y armamos un socket, en caso de que falle lo registramos como "caido".
$maketunnel = tools::maketunnel($sock,$hosttest,$porttest,0,0);
Nota: los dos ultimos valores son: debug (0 o 1) y version (version de HTTP)
Intentamos crear un tunnel HTTP (mediante "CONNECT"), tools lo hace todo automatico para nosotros ;)... $maketunnel sera 1 si se creo correctamente, 0 si no y 2 si hay un 404 (que esta tomando CONNECT como GET y puede ser un honneypot :P).
De otro modo cerramos el socket, no nos sirve bajarnos a ese nivel para probar un proxy normal.
$paquete = http->new("GET","http://".$hosttest.(($puerto != 80 ) ? (":".$puerto) : "")."/","1.1");
$paquete->agregarencabezados(0,@encabezados);
my %resp = $paquete->enviar($host,$puerto);
Usamos el generador de peticiones (http.pm) y finalmente lo demas es cosa de checar los encabezados/contenido y determinar si el proxy hizo la conexion correctamente (para eso se usa el argumento regex).
Ahora a jugar...
linux-7nli:/home/xianur0/fhttp-v1.3 # perl finder.pl squid "" "" google.com 80 Google
Comprobando dependencias...
Felicidades: FHTTP funcionando al 100%!
Tunnel: google.com:80
Target: 9
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[!] Proxy HTTP: 209.xxx.1x1.xxx:xx
[x] No se puede crear el tunnel: HTTP/1.0 400 Bad Request!
[x] No se puede crear el tunnel: HTTP/1.0 400 Bad Request!
[!] Proxy HTTP: 222.xxx.1x1.xxx:xxx
[x] No se puede crear el tunnel: HTTP/1.1 501 Not Implemented!
[x] No se puede crear el tunnel: HTTP/1.1 501 Not Implemented!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[!] Proxy HTTP: 189.xxx.x68.xxx:xxx
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[!] Proxy HTTP: 186.xxx.2x2.xxx:xxx
[x] No se puede crear el tunnel: HTTP/1.0 407 Proxy Authentication Required!
[x] No se puede crear el tunnel: HTTP/1.0 407 Proxy Authentication Required!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[!] Proxy HTTP: 203.xxx.1x9.xxx:xxx
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[!] Proxy HTTP: 202.xxx.17x.xxx:xxx
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[x] No se puede crear el tunnel: HTTP/1.0 403 Forbidden!
[!] Proxy HTTP: 186.xxx.15x.xxx:xxx
Down: 1
Honeypot: 0
CONNECT: 0
Others: 7
