TCP stack


    Linux 2.1.53 and all the rest


    Duncan Simpson inspired by an  article in phrack that checked  for
    ports by using bugs:

        1) Send an ACK and FIN packet.  If you get an RST the port  is
           not listenning
        2) Send an ACk  and check the RST  for ttl decrease or  window
           expansion (either means listenning)

    Duncan discovered another bug. If  you send a packet with  FIN but
    not ACK  set then  Linux will  disgard the  packet if  the port is
    listening  and  send  RST  if  not.   This  allows  "sleath"  port
    scanning...  not good.  Anyway, it's the way the protocol is
    defined. Worse still a FIN to a listening port in itself is
    legitimate for some TCP close down paths. You have to ignore the
    out of sequence FIN for the protocol to work and you have to RST
    it for connection close down to work.


    Roll  on  IPv6  with  proper  security  built  in...  and  helpful
    tehnnology  like  policy  routing  so  that  IP  address  goes  in
    different  directions  for  different  people---Linux  2.1.x  both