No information is available for this file.
2e578b8bc3a554e7ebb5badda2ee8fd66797805c4e4a2cffcc8a23d50da7a339
#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 <host> <start port> <end port>\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;skrap<eport+1; skrap++) {
ssyn(ssock, us, them, getpid()+skrap, skrap, 10000000+skrap+getpid());
usleep(100);
tcphead = read_tcp();
while ((ntohs(tcphead->th_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));
}
}
}
}