Bugtraq mailing list archives
promisc.c,v null: test devices for sniffers and device moniters.
From: blind () XMISSION COM (blind)
Date: Wed, 3 Sep 1997 23:29:24 -0600
This will scan your devices to detect sniffers on your system. Linux support is ready but SunOS has some problems (mainly in net/if.h when i tried compiling i got a lot of parse errors in if.h and socket.h <shrug> maybe the system i was on was damaged.) Comments welcome :-). begin promisc.c -- // $Id: promisc.c,v null 1997/03/09 10:35:58 trevorl Exp $ // promisc.c: test devices for sniffers and device moniters. // // Copyright (C) 1997 Trevor F. Linton (blind () xmission com) // // Created for Linux based loosely upon linux ioctl controls. // ioctl() is used to detect different flags set on devices used // on your system. // // gcc -o sys_test promisc.c // #include <stdio.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <errno.h> #if defined (__linux__) #include <linux/if.h> #else #include <net/if.h> #endif #define size(p) (sizeof(p)) int dev_flags=0, device_flags=0, set_look_all=0; int main(int argc, char **argv) { struct ifreq ifreq, *ifr; struct ifconf ifc; char buf[BUFSIZ], *cp, *cplim; if(argc <= 1) set_look_all++; if((dev_flags = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { fprintf(stderr, "An error occured establiashing while establishing a socket\n"); perror("socket"); exit(1); } ifc.ifc_len = sizeof(buf); ifc.ifc_buf = buf; if(ioctl(dev_flags, SIOCGIFCONF, (char *)&ifc) < 0) { perror("SIOCGIFCONF"); exit(1); } ifr = ifc.ifc_req; cplim=buf+ifc.ifc_len; for(cp = buf; cp < cplim; cp += sizeof (ifr->ifr_name) + size(ifr->ifr_addr)) { ifr = (struct ifreq *)cp; if(argv[1]) if(strcmp(ifr->ifr_name, argv[1]) && !set_look_all) continue; ifreq = *ifr; if(ioctl(dev_flags, SIOCGIFFLAGS, (char *)&ifreq) < 0) { fprintf(stderr, "SIOCGIFFLAGS: %s (get interface flags): %s\n", ifr->ifr_name,strerror(errno)); continue; } device_flags=0; device_flags = ifreq.ifr_flags; fprintf(stdout, "%s: ", ifreq.ifr_name); if((device_flags & IFF_PROMISC) != 0) fprintf(stdout, "Promiscuous: Sniffer detected.\n"); else fprintf(stdout, "Not-Promiscous: No Sniffers detected.\n"); if(!set_look_all) exit(0); // We're finished.. else continue; // Go onto next device.. } if(!set_look_all) fprintf(stdout, "%s: Unknown device.\n", argv[1]); // Device not found.. } end promisc.c --
Current thread:
- Re: FW: [Alert] Website's uploader.exe (from demo) vulnerable Aleph One (Sep 05)
- promisc.c,v null: test devices for sniffers and device moniters. blind (Sep 03)
- Re: FW: [Alert] Website's uploader.exe (from demo) vulnerable David J. Meltzer (Sep 05)
- procfs take II Brian Mitchell (Sep 05)
- Security hole in Linux TCP stack (2.1.53 and all the rest) Superuser (Sep 07)
- sleath port scanning fix Superuser (Sep 07)
- DOS vulnerability in Livingston portmasters (pre 3.7) Dave Andersen (Sep 07)
- Re: sleath port scanning fix Darren Reed (Sep 08)
- Re: sleath port scanning fix Thamer Al-Herbish (Sep 08)