Results 1 to 1 of 1
hello,
Actually i used these three program for develop net security but getting these are the error. how can i solve this?
tcpg_funcs.c:43: error: ‘struct tcphdr’ has no member named ...
- 04-19-2008 #1Just Joined!
- Join Date
- Apr 2008
- Posts
- 2
‘struct tcphdr’ has no member named ‘th_dport’
hello,
Actually i used these three program for develop net security but getting these are the error. how can i solve this?
tcpg_funcs.c:43: error: ‘struct tcphdr’ has no member named ‘th_dport’
tcpg_funcs.c:44: error: ‘struct tcphdr’ has no member named ‘th_flags’
tcpg_funcs.c: In function ‘tcpg_oob’:
tcpg_funcs.c:54: error: ‘struct tcphdr’ has no member named ‘th_flags’
tcpg_funcs.c: In function ‘tcpg_portd’:
tcpg_funcs.c:63: error: ‘struct tcphdr’ has no member named ‘th_dport’
tcpg_funcs.c: In function ‘tcpg_queso’:
tcpg_funcs.c:70: error: ‘struct tcphdr’ has no member named ‘th_win’
tcpg_funcs.c: In function ‘tcpg_synflood’:
tcpg_funcs.c:79: error: ‘struct tcphdr’ has no member named ‘th_flags’
/
tcpg_funcs.c:79: error: ‘struct tcphdr’ has no member named ‘th_flags’
tcpg_funcs.c:80: error: ‘struct tcphdr’ has no member named ‘th_seq’
tcpg_funcs.c:80: error: ‘struct tcphdr’ has no member named ‘th_seq’
tcpg_funcs.c: In function ‘tcpg_syn’:
tcpg_funcs.c:92: error: ‘struct tcphdr’ has no member named ‘th_flags’
tcpg_funcs.c:92: error: ‘struct tcphdr’ has no member named ‘th_flags’
tcpg_funcs.c:93: error: ‘struct tcphdr’ has no member named ‘th_sport’
tcpg_funcs.c:93: error: ‘struct tcphdr’ has no member named ‘th_dport’
tcpg_funcs.c: In function ‘tcpg_land’:
tcpg_funcs.c:100: error: ‘struct tcphdr’ has no member named ‘th_sport’
tcpg_funcs.c:100: error: ‘struct tcphdr’ has no member named ‘th_dport’
tcpg_funcs.c: In function ‘tcpg_kill’:
tcpg_funcs.c:111: error: ‘struct tcphdr’ has no member named ‘th_dport’
tcpg_funcs.c:113: error: ‘struct tcphdr’ has no member named ‘th_sport’
tcpg_funcs.c:114: error: ‘struct tcphdr’ has no member named ‘th_dport’
tcpg_funcs.c:117: error: ‘struct tcphdr’ has no member named ‘th_seqgetting error in this part tcpg/-funcs.cCode:these three program...... #include <stdlib.h> #include <syslog.h> #include <stdio.h> #include <unistd.h> #include <netdb.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/ip.h> #include <netinet/in.h> #include <netinet/udp.h> #include <netinet/tcp.h> #include <string.h> struct ippkt { struct iphdr ip; struct udphdr udp; char buffer[10000]; } pkt; int main(int argc, char *argv[]) { int s;char VERSION; struct in_addr src_addr; openlog("udpguard", 0, LOG_DAEMON); #ifndef NO_EUID_CHECK if(geteuid()!=0) { syslog(LOG_INFO, "launched by normal user (uid %d).\n", geteuid()); printf("This program uses raw sockets. On most systems, that requires root.\n"); printf("If you know that your systems allows usage of raw sockets by normal\n"); printf("users, re-compile the program with -DNO_EUID_CHECK.\n"); _exit(1); } #endif if((s=socket(AF_INET, SOCK_RAW, IPPROTO_UDP))==-1) { perror("socket()"); _exit(2); } if(fork()!=0) _exit(0); setsid(); syslog(LOG_INFO, "UDPguard %s Copyright (c) 1999 Monk.", VERSION); syslog(LOG_INFO, "launched with pid %d.\n", getpid()); while(1) { read(s, (struct ippkt *)&pkt, 9999); src_addr.s_addr=0; src_addr.s_addr=pkt.ip.saddr; syslog(LOG_INFO, "UDP packet from %s:%d to port %d.", inet_ntoa(src_addr), ntohs(pkt.udp.source), ntohs(pkt.udp.dest)); } }
Code:#include "tcpguard.h" u_long prev_seq=0; void tcpg_die() { syslog(LOG_INFO, "TCPguard has now found a horrid death."); _exit(0); } void tcpg_init() { openlog("tcpguard", 0, LOG_DAEMON); #ifndef NO_EUID_CHECK if(geteuid()!=0) { syslog(LOG_INFO, "launched by normal user (uid %d).\n", geteuid()); printf("This program uses raw sockets. On most systems, that requires root.\n"); printf("If you know that your systems allows usage of raw sockets by normal\n"); printf("users, re-compile the program with -DNO_EUID_CHECK.\n"); _exit(1); } #endif if((s=socket(AF_INET, SOCK_RAW, IPPROTO_TCP))==-1) { perror("socket()"); _exit(2); } } /* HPing detection. (also makes noise if it finds packets sent to port 0) */ void tcpg_hping() { if(pkt.tcp.th_dport==0) if(pkt.tcp.th_flags&TH_FIN) syslog(LOG_INFO, "WARNING: HPing packet detected from %s !", inet_ntoa(src_addr)); else syslog(LOG_INFO, "WARNING: Packet to TCP port 0 from %s !", inet_ntoa(src_addr)); } /* OOB check... this usually means WinNuke... * There still are many kiddies out there who try to winnuke ppl... */ void tcpg_oob() { if(pkt.tcp.th_flags&TH_URG) syslog(LOG_INFO, "ATTACK: WinNuke attempt from %s !", inet_ntoa(src_addr)); } /* A common shell daemon uses 31337 as the default TCP port... * Sscan tries to connect to this port... */ void tcpg_portd() { if(pkt.tcp.th_dport==htons(31337)) syslog(LOG_INFO, "WARNING: Backdoor on 31337 probed from %s !", inet_ntoa(src_addr)); } /* Queso sends all its packets with a constant window size ... */ void tcpg_queso() { if(pkt.tcp.th_win==htons(4660)) syslog(LOG_INFO, "ATTACK: A packet probably sent by QUESO was received !"); } /* A rather basic detector for a couple of TCP/IP-based attacks. * (especially SYN-flooding) */ void tcpg_synflood() { if((pkt.tcp.th_flags&TH_SYN)&&(!(pkt.tcp.th_flags&TH_ACK))) if(pkt.tcp.th_seq!=prev_seq) prev_seq=pkt.tcp.th_seq; else { syslog(LOG_INFO, "ATTACK: YOU ARE BEING SYN-FLOODED !"); syslog(LOG_INFO, "ATTACK: YOU ARE BEING SYN-FLOODED !!"); syslog(LOG_INFO, "ATTACK: YOU ARE BEING SYN-FLOODED !!!"); tcpg_die(); } } void tcpg_syn() { if((pkt.tcp.th_flags&TH_SYN)&&(!(pkt.tcp.th_flags&TH_ACK))) syslog(LOG_INFO, "WARNING: TCP connection attempted from %s:%d to port %d.", inet_ntoa(src_addr), ntohs(pkt.tcp.th_sport), ntohs(pkt.tcp.th_dport)); } /* Land attack check. */ void tcpg_land() { if((pkt.ip.saddr==pkt.ip.daddr)&&(pkt.tcp.th_sport==pkt.tcp.th_dport)) syslog(LOG_INFO, "ATTACK: LAND attack detected !!!"); } /* Sends a RST to the client...KILLAH !.. =;-) */ void tcpg_kill(u_short kport) { u_long src_ip=0, dst_ip=0, ack; /* The following kills all TCP connections to port kport ! */ /* WARNING: This part does not make any checks !!! */ if(ntohs(pkt.tcp.th_dport)==kport) { sport=ntohs(pkt.tcp.th_sport); dport=ntohs(pkt.tcp.th_dport); src_ip=pkt.ip.daddr; dst_ip=pkt.ip.saddr; ack=ntohl(pkt.tcp.th_seq)+1; buff=malloc(TCP_H+IP_H); bzero(buff, TCP_H+IP_H); build_ip(TCP_H, IPTOS_LOWDELAY | IPTOS_THROUGHPUT, 242, 0, 64, IPPROTO_TCP, src_ip, dst_ip, NULL, 0, buff); build_tcp(sport, dport, ack, ack, TH_RST, 4096, 0, NULL, 0, buff+IP_H); do_checksum(buff, IPPROTO_TCP, TCP_H); lns=open_raw_sock(IPPROTO_RAW); syslog(LOG_INFO, "WARNING: Killing connection from %s to port %d.", inet_ntoa(src_addr), kport); write_ip(lns, buff, IP_H+TCP_H); close(lns); } }Code:#include "tcpguard.h" int main() { tcpg_init(); if(fork()!=0) _exit(0); setsid(); syslog(LOG_INFO, "TCPguard %s Copyright (c) 1999 Monk.", VERSION); syslog(LOG_INFO, "launched with pid %d.\n", getpid()); while(1) { read(s, (struct ippkt *)&pkt, 5000); src_addr.s_addr=0; src_addr.s_addr=pkt.ip.saddr; #ifdef TCPG_SYN tcpg_syn(); #endif #ifdef TCPG_HPING tcpg_hping(); #endif #ifdef TCPG_QUESO tcpg_queso(); #endif #ifdef TCPG_SYNFLOOD tcpg_synflood(); #endif #ifdef TCPG_KILL tcpg_kill(TCPG_KILL); #endif #ifdef TCPG_LAND tcpg_land(); #endif #ifdef TCPG_OOB tcpg_oob(); #endif #ifdef TCPG_PORTD tcpg_portd(); #endif } }Code:/* If you want TCPguard to announce all connection attemps... */ #define TCPG_SYN /* Log QUESO probes. */ #define TCPG_QUESO /* SYN flooding detection. */ #define TCPG_SYNFLOOD /* WinNuke detection. */ #define TCPG_OOB /* Log LAND attacks. */ #define TCPG_LAND /* Log HPing probes and port 0 connection packets. */ #define TCPG_HPING /* Shell daemon default port probe detection. */ #define TCPG_PORTD /* Kill connections to TCP port TCPG_KILL. */ #define TCPG_KILL 110 /* DON'T CHANGE ANYTHING BELOW THIS LINE !!!!!!!!!!!!!! */ /* DON'T CHANGE ANYTHING BELOW THIS LINE !!!!!!!!!!!!!! */ /* DON'T CHANGE ANYTHING BELOW THIS LINE !!!!!!!!!!!!!! */ /* Biggest list of includes you've ever seen, eh?! =;-) */ #include <libnet.h> #include <syslog.h> /* Why not make all variables global ?! */ struct ippkt { struct iphdr ip; struct tcphdr tcp; char buffer[5000]; } pkt; int s, lns; int IP_H, TCP_H; char VERSION; struct in_addr src_addr; u_char *buff; u_int sport, dport; void tcpg_syn(); void tcpg_hping(); void tcpg_synflood(); void tcpg_portd(); void tcpg_queso(); void tcpg_land(); void tcpg_oob(); void tcpg_die(); void tcpg_init(); void tcpg_kill(u_short);


Reply With Quote