O'Reilly logo

Network Security Tools by Justin Clarke, Nitesh Dhanjani

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The SYNplescan Tool Source Code

Example 11-9 provides the full source code to the SYNplescan tool. This should compile on most Linux distributions as follows:

gcc -o synplescan synplescan.c -lnet -lpcap

If that does not work, libnet provides a tool called libnet-config that contains definitions and library references that might be required for your libnet installation. You can use this with back quotes as follows:

gcc -o synplescan synplescan.c `libnet-config -defines` \
     `libnet-config -libs` `libnet-config -cflags` -lpcap

This tool was written on Gentoo Linux. It should work on most Linux installations; however, some tweaking might be necessary to get this working on other Unix and Unix-like environments.

Example 11-9. Source code to the SYNplescan tool

#define _BSD_SOURCE 1 #include <stdio.h> #include <unistd.h> #include <time.h> #include <libnet.h> #include <pcap.h> int answer = 0; /* flag for scan timeout */ /* usage */ void usage (char *name) { printf ("%s - Simple SYN scan\n", name); printf ("Usage: %s -i ip_address\n", name); printf (" -i IP address to scan\n"); exit (1); } void packet_handler (u_char * user, const struct pcap_pkthdr *header, const u_char * packet) { struct tcphdr *tcp = (struct tcphdr *) (packet + LIBNET_IPV4_H + LIBNET_ETH_H); if (tcp->th_flags == 0x14) { printf ("Port %d appears to be closed\n", ntohs (tcp->th_sport)); answer = 0; } else { if (tcp->th_flags == 0x12) { printf ("Port %d appears to be open\n", ntohs (tcp->th_sport)); answer = 0; } } } int main ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required