diff --git a/ESPortal-Templates/error.html b/ESPortal-Templates/error.html
old mode 100644
new mode 100755
diff --git a/ESPortal-Templates/spoof_other.html b/ESPortal-Templates/spoof_other.html
old mode 100644
new mode 100755
diff --git a/ESPortal-Templates/welcome.html b/ESPortal-Templates/welcome.html
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
index dfb3929..daef6e3
--- a/README.md
+++ b/README.md
@@ -33,6 +33,8 @@ Select Sketch - Include Library - Manage Libraries. Search for "Json".
Install "ArduinoJson by Benoit Blanchon version 5.11.0" and click "Close"
Download https://github.com/exploitagency/esp8266FTPServer/archive/feature/bbx10_speedup.zip
Click Sketch - Include Library - Add .ZIP Library and select bbx10_speedup.zip from your Downloads folder.
+Download https://github.com/keyboardio/FingerprintUSBHost/archive/master.zip
+Click Sketch - Include Library - Add .ZIP Library and select FingerprintUSBHost-master.zip from your Downloads folder.
The Arduino IDE is now configured and ready for the code.
Use git to clone this repo: https://github.com/exploitagency/ESPloitV2.git
@@ -172,6 +174,10 @@ To make a generic delay:
-"Delay"
--"Delay" would wait for The Default Delay x 2 before proceeding to next item in payload
+To detect the OS of the victim computer:
+-"GetOS:"
+--"After executing the command "GetOS:" in the Exfiltrate section an OS.txt file will appear. In this file you can find the operating system that has the victim computer."
+
For individual keypresses or combinations of key presses:
-"Press:X" or "Press:X+Y" or "Press:X+Y+Z" and so forth
--Expects Decimal Key Code Values for X,Y,Z,etc
@@ -311,7 +317,18 @@ The victim is forced to access the URL above and now under "List Exfiltrated Dat
For FTP exfiltration method use the credentials configured in the "Configure ESPloit" page. Also note that only Passive Mode FTP is supported.
See the example payloads for more in depth examples.
-
+
+-----
+Detect OS
+-----
+
+Based on the Keyboardio FingerprintUSBHost library.
+
+Inspect USB Descriptors and guess the host operating system based on markers it sees.
+
+Execute the "GetOS:" command in the textarea or in a payload.
+After executing the command "GetOS:" in the Exfiltrate section an OS.txt file will appear. In this file you can find the operating system that has the victim computer.
+
-----
ESPortal Credential Harvester(Phisher)
-----
diff --git a/flashing/README.md b/flashing/README.md
old mode 100644
new mode 100755
diff --git a/flashing/esp8266Programmer/esp8266Programmer.ino b/flashing/esp8266Programmer/esp8266Programmer.ino
old mode 100644
new mode 100755
diff --git a/images/MainMenu.png b/images/MainMenu.png
old mode 100644
new mode 100755
diff --git a/payloads/LinExfilWiFiCreds.txt b/payloads/LinExfilWiFiCreds.txt
old mode 100644
new mode 100755
diff --git a/payloads/LinFTPExfiltrate.txt b/payloads/LinFTPExfiltrate.txt
old mode 100644
new mode 100755
diff --git a/payloads/LinHTTPExfiltrate.txt b/payloads/LinHTTPExfiltrate.txt
old mode 100644
new mode 100755
diff --git a/payloads/LinSerialEXFIL.txt b/payloads/LinSerialEXFIL.txt
old mode 100644
new mode 100755
diff --git a/payloads/WinHTTPExfiltrate.txt b/payloads/WinHTTPExfiltrate.txt
old mode 100644
new mode 100755
diff --git a/payloads/WinPSFTPExfil.txt b/payloads/WinPSFTPExfil.txt
old mode 100644
new mode 100755
diff --git a/payloads/WinSerialEXFIL.txt b/payloads/WinSerialEXFIL.txt
old mode 100644
new mode 100755
diff --git a/payloads/blink.txt b/payloads/blink.txt
old mode 100644
new mode 100755
diff --git a/payloads/kali2hiddenpayld.txt b/payloads/kali2hiddenpayld.txt
old mode 100644
new mode 100755
diff --git a/payloads/macidentifykb.txt b/payloads/macidentifykb.txt
old mode 100644
new mode 100755
diff --git a/payloads/mousetest.txt b/payloads/mousetest.txt
old mode 100644
new mode 100755
diff --git a/payloads/winhiddenpayload.txt b/payloads/winhiddenpayload.txt
old mode 100644
new mode 100755
diff --git a/payloads/winkiOSKhack.txt b/payloads/winkiOSKhack.txt
old mode 100644
new mode 100755
diff --git a/payloads/winpropopups.txt b/payloads/winpropopups.txt
old mode 100644
new mode 100755
diff --git a/source/Arduino_32u4_Code/Arduino_32u4_Code.ino b/source/Arduino_32u4_Code/Arduino_32u4_Code.ino
index 9a8f8f6..72a97eb 100644
--- a/source/Arduino_32u4_Code/Arduino_32u4_Code.ino
+++ b/source/Arduino_32u4_Code/Arduino_32u4_Code.ino
@@ -30,6 +30,7 @@
//Requires Keyboard and SoftwareSerial library
#include
#include
+#include "FingerprintUSBHost.h"
//#include
//Setup RX and TX pins to be used for the software serial connection
@@ -41,13 +42,14 @@
//const int debug=0;
String version = "2.2";
+String os;
//Used later for determining if we are ready to release a key press or a combination of key presses
int keypressdone=0;
//Start serial interfaces and HID keyboard emulator
-void setup() {
-
+void setup() {
+
//Start up the ESP 8266
pinMode(13, OUTPUT);
digitalWrite(13,HIGH);
@@ -59,6 +61,9 @@ void setup() {
Serial1.begin(38400);
Serial.begin(38400);
Keyboard.begin();
+ delay(3000);
+ FingerprintUSBHost.guessHostOS(os);
+ delay(3000);
}
//Do-IT!
@@ -105,6 +110,12 @@ void loop() {
keypressdone=0;
}
}
+
+ //If command equals "GetOS"
+ else if(cmd.startsWith("GetOS")) {
+ Serial1.print("OS: ");
+ Serial1.println(os);
+ }
//If command equals "Print:X"
else if(cmd == "Print") {
diff --git a/source/Arduino_32u4_Code/LICENSE.txt b/source/Arduino_32u4_Code/LICENSE.txt
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/Duckuino.h b/source/ESP_Code/Duckuino.h
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/ESP_Code.ino b/source/ESP_Code/ESP_Code.ino
index 70c86d6..4b87453 100644
--- a/source/ESP_Code/ESP_Code.ino
+++ b/source/ESP_Code/ESP_Code.ino
@@ -1168,6 +1168,13 @@ void loop() {
f.println(SerialEXFIL);
f.close();
}
+ else if(cmd == "OS"){
+ String os = Serial.readStringUntil('\n');
+ File f = SPIFFS.open("/OS.txt", "a+");
+ f.print("Target OS: ");
+ f.println(os);
+ f.close();
+ }
else if(cmd == "BlinkLED") {
String cmdinput = Serial.readStringUntil('\n');
int blinkcount = cmdinput.toInt();
diff --git a/source/ESP_Code/ESP_Code.ino.generic.bin b/source/ESP_Code/ESP_Code.ino.generic.bin
index 2e25aa2..0455225 100644
Binary files a/source/ESP_Code/ESP_Code.ino.generic.bin and b/source/ESP_Code/ESP_Code.ino.generic.bin differ
diff --git a/source/ESP_Code/HelpText.h b/source/ESP_Code/HelpText.h
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/LICENSE.txt b/source/ESP_Code/LICENSE.txt
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/License.h b/source/ESP_Code/License.h
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/inputmode.h b/source/ESP_Code/inputmode.h
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/spoof_page.h b/source/ESP_Code/spoof_page.h
old mode 100644
new mode 100755
diff --git a/source/ESP_Code/version.h b/source/ESP_Code/version.h
old mode 100644
new mode 100755