#include "tcpip.h" void ssyn(int sendsock, u_long srcaddr, u_long dstaddr, u_short srcport, u_short dstport, u_long seq) { char *pack, *tpack; int sent; struct sockaddr_in stuffz; tpack = create_tcp(srcaddr, dstaddr, htons(srcport), htons(dstport), htonl(seq), 0, TH_SYN, NULL, 0); pack = create_ip (srcaddr, dstaddr, IPPROTO_TCP, 75, 1, tpack, 20); stuffz.sin_family = AF_INET; stuffz.sin_port = htons(dstport); stuffz.sin_addr.s_addr = dstaddr; sent = sendto(sendsock, pack, 40, 0, (struct sockaddr *)&stuffz, sizeof(stuffz)); if (sent != 40) { perror("sending SYN"); exit(-1); } } int getpack(int listsock, u_long srcaddr, u_long dstaddr, u_short srcport, u_short dstport, u_long seq) { return 1; } main (int c, char *v[]) { int ssock, lsock; struct hostent *hent; struct servent *srvent; u_long us, them, fuckk; u_short sport, eport; u_short skrap; u_char flags; char mahname[80]; struct tcphdr *tcphead; if (c!=4) { printf("usage: %s \n", v[0]); exit(-1); } gethostname(mahname, 79); hent = gethostbyname(mahname); if (hent == NULL) { printf("couldn't get my hostname!@#\n"); exit(-1); } bcopy(hent->h_addr, (char *)&us, hent->h_length); hent = gethostbyname(v[1]); if (hent!=NULL) bcopy(hent->h_addr, (char *)&them, hent->h_length); else { printf("could not resolve: %s\n", v[1]); exit(-1); } sport = atoi(v[2]); if (sport==0) { printf("can't use %s as a starting port..\n", v[2]); exit(-1); } eport = atoi(v[3]); if (eport==0) { printf("can't use %s as an ending port..\n", v[3]); exit(-1); } ssock = socket(AF_INET, SOCK_RAW, 255); if (ssock == -1) { perror("getting send socket"); exit(-1); } lsock = socket(AF_INET, SOCK_RAW, 6); if (lsock == -1) { perror("getting listen socket"); exit(-1); } printf("active ports between: %d and %d:\n", sport, eport); for (skrap=sport;skrapth_sport) != getpid()+skrap) & (ntohs(tcphead->th_dport) != skrap) & ((tcphead->th_flags == TH_SYN) || (tcphead->th_flags == TH_RST))) { tcphead = read_tcp(); } if (tcphead->th_flags & TH_SYN) { fuckk = tcphead->th_ack - ntohs(tcphead->th_sport) - getpid(); if (fuckk = 26777216) { srvent = getservbyport(tcphead->th_sport, "tcp"); if (srvent != 0) printf("%s.%d(%s)\n", v[1], ntohs(tcphead->th_sport), srvent->s_name); else printf("%s.%d\n", v[1], ntohs(tcphead->th_sport)); execl("rst %s %d %s %d %ul", gethostbyname(mahname), getpid()+skrap, gethostbyname(v[1]), skrap, htonl(seqnum)); } } } }