package src; import java.util.StringTokenizer; import java.lang.Math; import jpcap.*; import jpcap.packet.Packet; public class AttackDetector implements PacketReceiver { public void receivePacket(Packet packet) { //tokenize packet String packetString = packet.toString(); StringTokenizer packetToken = new StringTokenizer(packetString, " "); packetToken.nextToken(); String srcip = packetToken.nextToken(); //get the src IP token in the packet StringTokenizer ipToken = new StringTokenizer(srcip, "/"); //separate the src and dst IP srcip = ipToken.nextToken(); String dstip = ipToken.nextToken(); //dst IP StringTokenizer srcToken = new StringTokenizer(srcip, "-"); srcip = srcToken.nextToken(); //src IP //packet header byte[] header = packet.header; //get src port for(int i = 0; i < 6; i++) packetToken.nextToken(); int srcport = Integer.parseInt(packetToken.nextToken()); //get dst port packetToken.nextToken(); int dstport = Integer.parseInt(packetToken.nextToken()); //printing out what kind of packet has been detected if(((int)header[47])== 2) { //SYN Flag System.out.println("** SYN scan detected with dst: " + dstip + ":" + dstport + " and src: " + srcip + ":" + srcport +" **"); } else if(((int)header[47])== 41) { //URG, PSH, FIN flag on System.out.println("** XMAS scan detected with dst: " + dstip + ":" + dstport + " and src: " + srcip + ":" + srcport +" **"); } else if(((int)header[47])== 0) { //no flags on System.out.println("** NULL scan detected with dst: " + dstip + ":" + dstport + " and src: " + srcip + ":" + srcport +" **"); } //print out the packet System.out.println("Packet sent by scan: "); System.out.println(packet); System.out.println("**---------------------End of Packet--------------------------**"); System.out.println(" "); } public static void main(String[] args) throws Exception { NetworkInterface[] devices = JpcapCaptor.getDeviceList(); //checks what interfaces are available to listen on if(args.length<1){ System.out.println("usage: java Tcpdump