[Perl] Project Kakilles 0.3

Iniciado por BigBear, Enero 05, 2014, 06:59:38 PM

Tema anterior - Siguiente tema

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

Un simple script que hice como parodia del famoso programa Achilles , el kakilles viene por lo caca del programa.

Les dejo un video que tiene 3 ejemplos de uso :

* HTTP Header Injection
* Bypass Uploaders
* Cookie Handling

El video :



El codigo :

Código: perl

#!usr/bin/perl
#Project Kakilles 0.3
#(C) Doddy Hackman 2014

use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
use HTTP::Proxy::BodyFilter::complete;

my $port;

head();

if ( $ARGV[1] ne "" ) {
    $port = $ARGV[1];
}
else {
    $port = 8080;
}

if ( $ARGV[0] eq "" ) {
    sintax();
    copyright();
}

$SIG{INT} = \&copyright;

my $logs       = "logs.txt";
my $leer_datos = "center.txt";

print "\n[+] Kakilles Online : $port ...\n";

my $server = HTTP::Proxy->new( port => $port );
$server->host();

$server->push_filter(
    mime     => undef,
    response => HTTP::Proxy::BodyFilter::complete->new()
);

$server->push_filter(
    mime     => undef,
    request  => HTTP::Proxy::BodyFilter::simple->new( \&enable ),
    response => HTTP::Proxy::BodyFilter::simple->new( \&enable2 )
);

$server->start();

sub enable {

    my @logs;

    my ( $self, $dataref, $message, $protocol, $buffer ) = @_;

    if ( $ARGV[0] =~ /p/ ) {

        if ( $message->content ne "" and $message->method eq "POST" ) {

            print
"\n########################################################################\n";
            print "[+] Method : " . $message->method;
            print "\n[+] Content : " . $message->content;
            savefile( $leer_datos, $message->content );
            print
"\n########################################################################\n";

            print "\n[+] Change ? [y/n] : ";
            chomp( my $rta = <stdin> );

            if ( $rta =~ /y/ ) {

                system_leida($leer_datos);

                my $source = abrir();
                $message->header( "content-length" => length($source) );
                $message->content($source);

                print "\n[+] Changed !\n";

            }
        }
    }

    if ( $ARGV[0] =~ /g/ ) {

        if ( $message->uri =~ /(.*)\?(.*)/ ) {

            print
"\n########################################################################\n";
            print "[+] GET : " . $message->uri;
            savefile( $leer_datos, $message->uri );
            print
"\n########################################################################\n";

            print "\n[+] Change ? [y/n] : ";
            chomp( my $rta = <stdin> );

            if ( $rta =~ /y/ ) {

                system_leida($leer_datos);

                my $source = abrir();

                $message->uri($source);

                print "\n[+] Changed !\n";

            }

        }

    }

    if ( $ARGV[0] =~ /a/ ) {

        print
"\n########################################################################\n";
        print "[+] User-Agent : " . $message->header("user-agent");
        savefile( $leer_datos, $message->header("user-agent") );
        print
"\n########################################################################\n";

        print "\n[+] Change ? [y/n] : ";
        chomp( my $rta = <stdin> );

        if ( $rta =~ /y/ ) {

            system_leida($leer_datos);

            my $source = abrir();

            $message->header( "user-agent" => $source );

            print "\n[+] Changed !\n";

        }
    }

    if ( $ARGV[0] =~ /o/ ) {

        print
"\n########################################################################\n";
        print "[+] Cookie : " . $message->header("cookie");
        savefile( $leer_datos, $message->header("cookie") );
        print
"\n########################################################################\n";

        print "\n[+] Change ? [y/n] : ";
        chomp( my $rta = <stdin> );

        if ( $rta =~ /y/ ) {

            system_leida($leer_datos);

            my $source = abrir();

            $message->header( "cookie" => $source );

            print "\n[+] Changed !\n";

        }
    }

}

sub enable2 {
    my ( $j, $k, $l, $m, $n ) = @_;

    if ( $ARGV[0] =~ /c/ ) {

        if ( $$k ne "" ) {

            print
              "\n##########################################################\n";
            print "[+] Content : " . $$k;
            savefile( $leer_datos, $$k );
            print
              "\n##########################################################\n";

            print "\n[+] Change ? [y/n] : ";
            chomp( my $rta = <stdin> );

            if ( $rta =~ /y/ ) {

                system_leida($leer_datos);

                my $source = abrir();

                $$k = $source;

                print "\n[+] Changed !\n";

            }

        }

    }

}

# Functions

sub system_leida {
    my $os = $^O;
    if ( $os =~ /Win/ig ) {
        system( "start " . $_[0] );
    }
    else {
        system( "sudo gedit " . $_[0] );
    }
}

sub abrir {
    open my $FILE, q[<], $leer_datos;
    my $word = join q[], <$FILE>;
    close $FILE;
    chomp $word;
    return $word;
}

sub savefile {
    unlink($leer_datos);
    open( SAVE, ">>" . $_[0] );
    print SAVE $_[1] . "\n";
    close SAVE;
}

sub head {
    print "\n-- == Project Kakilles 0.3 == --\n";
}

sub copyright {
    print "\n-- == (C) Doddy Hackman 2014 == --\n\n";
    exit(1);
}

sub sintax {
    print "\n[+] Sintax : $0 <options> <port>\n";
    print "\n[?] Options ...\n\n";
    print "-g : Form with GET\n";
    print "-p : Form with POST\n";
    print "-a : Edit User-Agent\n";
    print "-c : Edit Content\n";
    print "-o : Edit Cookie\n";
    print "\n[+] Example : $0 -pc 666\n";
}

# The End ?


Si quieren bajar el codigo lo pueden hacer de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login