1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669
|
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
* Sniffit V.0.3.7 Beta *
# By Brecht Claerhout #
* *
# This program is intended to demonstrate the unsafeness of TCP (currently) #
* No illegal activities are encouraged! *
# Please read the LICENSE file #
* *
# Sniffit grew a little upon its original intentions and is now #
* extended for network debugging (UDP, ICMP, netload, etc.) *
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
* Libpcap library *
# This product includes software developed by the Computer Systems #
* Engineering Group at Lawrence Berkeley Laboratory. *
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
0. Introduction, and some stuff you should know.
0.1 Credits and contact
0.2 Compiling
0.3 License
1. Programmers notes
excuses for my incompetence
2. Use of the program
flags and examples
3. Extra info on use
3.1 Running interactive mode
3.2 Forcing network devices (*READ*)
3.3 Format of the config file
3.4 Loglevels
4. The output
4.1 Normal
4.2 Logfile
5. IMPORTANT NOTES, READ!
this also!
------------------------------------------------------------------------------
0. Introduction, and some stuff you should know.
------------------------------------------------
0.3.7 (Beta). It has been a while I know. But this year has been a hell, last
year of uni, projects, thesis, .... it didn't stop. Well that is behind us
now, the most important thing, is that I'm back working on the program again,
and intend to keep on doing it.
I hope you enjoy this beta version. Like always, I removed some bugs. There
is a new 'logging' feature. It is now possible to record traffic with
Sniffit and process it later! (it is completely different from the logging
done in the 0.3.6 version, that is known to some hardcore Sniffit users)
Please take a minute to skim through the text and read the passages marked
with a '*', these are the new features.
(Please read BETA-TESTING)
I use the libpcap library developed at Berkeley Laboratory, for easy
porting (Read the licence).
0.1 Credits and contact
-----------------------
Credits go to (in order of appearance on the Sniffit scene):
Wim Vandeputte <wvdputte@reptile.rug.ac.be>,
best friend and UNIX guru, for support, testing and
providing me with a WWW site.
Godmar Back, for fixing that kernel 1.2.X bug (Sniffit 0.1.X).
Peter Kooiman, of Paradigm Systems Technology for providing the
facilities to port Sniffit, and for the endless testing
(although he laughs this away with "no big deal, I
don't need no credits").
Without him, there would have been no ports at all.
Brooke Paul, for providing me with an SGI account.
Qing Long, for the bash/zsh libpcap/configure script.
Guy Gustavson, for giving me a FreeBSD account.
Woju <woju@freebsd.ee.ntu.edu.tw>, for the ncurses SunOS/FreeBSD fixing,
and for his other efforts.
Amlan Saha <eng40607@nus.sg>, for adding Packet Generation to
Sniffit, and adding other features (not implemented yet).
I'm sure that in the near future you will see more of his
work in Sniffit.
Shudoh Kazuyuki, for changing getaddrbyname() and improving the
config-file interpreting.
Fyodor <fyodor@dhp.com>, for pointing out the hideous small
fragments problem.
David O'Brien <obrien@nuxi.com>, for netbsd information.
everybody, who ever mailed me with suggestions help, etc...
Also a big thanks to my Beta testers (alphabetically, I hope)...
Charles G Stuart <charles.stuart@juno.com> IRIX / RedHat LINUX
Patrick Schoppenhorst <pschoppe@thumper.indianapolis.sgi.com> IRIX
Shahid Mahmood <smahmood@hns.com> Slackware LINUX / SunOS
Stephen Hillier <shillier@tuns.ca> RedHat LINUX
And many others who wish to be anonymous....
Suggestions and comments can be sent to:
coder@reptile.rug.ac.be
Brecht Claerhout
Meulebeeksestw. 51
8700 Tielt
Belgium
The original distribution program can be obtained from (my site):
http://sniffit.rug.ac.be/sniffit/sniffit.html
MIND YOU: this program is run as root, and thus could easily contain
dangerous trojans. If you get it from the above site you can
safely compile and use it.
(no trojan versions are discovered yet.. it's just a warning)
0.2 Compiling
-------------
Just type 'configure' and then 'make' (if configure made it without errors).
Mind you, you can still modify some things in the 'sn_config.h' file, but
by default all sections that can be added on your system are added.
IMPORTANT NOTES:
1. This source code has only been tested with GNU versions of make/C
compiler. (i.e. don't come complaining to me if your 'native' system
compiler screws up, use GNU!)
2. curses IS NOT equal to ncurses.
(ncurses is available at your local sunsite mirror.)
3. READ THE FAQ when experiencing problems.
Other stuff....
make clean : cleans all directories for a compiling from scratch
0.3 License (this is a copy of the LICENSE file)
-----------
Sniffit 0.3.7 Copyright (c) 1996-1998 Brecht Claerhout
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
4. Redistribution of source code must be conform with the 'libpcap'
copyright conditions, if that library is included.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1. Programmers notes
--------------------
I wasn't educated to be a programmer, so I write lousy code. Please forgive
me.
Still I note the use of shared memory, with Linux you should take extra
care when recompiling your kernel! Answer YES to 'System V IPC
(CONFIG_SYSVIPC) [y]'.
2. Use of the program
---------------------
(The man pages have detailed info on what parameters you can mix)
(* indicates New Features)
Options:
ONE of these is required!
-v Show version and exit (just added because it's such a
wide spread option)
-t <IP nr/name> tells the sniffer to check out packets GOING TO <IP>
-s <IP nr/name> tells the sniffer to check out packets COMING FROM <IP>
You can use the '@' wildcard (only IP NUMBERS of course).
e.g. -t 199.145.@
-t 199.14@
mind you -t @ is also a valid option.
-i Interactive mode, overrides all other options
* -I Extended Interactive mode, overrides all other options
* Much more fun then -i, watch and enjoy...
* (best viewed in a xterm that is stretched wide...)
-c <file> Use <file> as a config file for Sniffit
See 3.3 for format of the config file.
NOTE: -t or -s only apply to TCP and UDP packages, ICMP, IP packages
are ALL interpreted.
Also, any selection on ports, -p only applies to TCP, UDP packages.
Parameters for all modes:
-F <device> force sniffit to use a network device
(READ 3.2 ON THIS SUBJECT, IMPORTANT)
-n Turn off IP checksum checking. This can show you
bogus packets. (mind you ARP, RARP, other non-IP
packets will show up bogus too) (compatible with
ALL options)
-N Disables all functions that Sniffit has build in, useful
for wanting to run ONLY a plugin
Parameters for not running in -i:
-b does both -t and -s, doesn't matter what function you used
(-t or -s)
-d Dump mode, shows the packets on the screen in bytes (not
like tcpdump). For test purposes. (numbers are hex)
-a same of '-d' but outputs ASCII.
-x Prints extended info on TCP packets (SEQ numbers, ACK, Flags)
Like SEQ, ACK, the flags, etc... (works wit '-a', '-d', '-s',
'-t', '-b' or on its own.)
(Mind you it is always shown on stdout, so not logged when
using '-t', '-s', '-b' without another parameter)
* -R <file> Record all traffic in <file>
* This file can then be fed to Sniffit with the '-r' option.
* -r <file> This option feeds the recorded <file> to Sniffit. This
* option requires the '-F' option with the correct device.
* Suppose you log a file on a machine with 'eth0'. When
* feeding the logged file to sniffit, you will need to add '-F eth0'
* or '-F eth' to the command line.
* It doesn't need much explanation that using '-i' or '-I'
* in combination with '-r' makes no sense (at this moment).
-A <char> When in logging mode, all non-printable chars will be
replaced by <char>. (see note below 4.The output)
-P protocol specify the protocols examined (default TCP)
possible options currently are: IP, TCP, ICMP, UDP
They can be combined.
-p <port> Logs connections on port <port>, 0 means all ports, default
is 0 (all), look out with that on loaded nets!
-l <length> Amount of information to log (default 300 bytes).
Length 0 logs everything. (look out with diskspace when
logging everything!)
-M <Plugin> Activate Plugin nr. <Plugin>, for a list on all plugins
compiled in your version, just type 'sniffit'.
Read all about Plugins in the PLUGIN-HOWTO (READ IT!)
Parameters with -i,-I:
-D <device> All logging output will be send to that device.
It's cool to get the same IRC screen as the guy y'r
sniffing upon ;-)
Parameters with -c:
* -L <logparam> enable logging with <logparam> as 'loglevel'
* 'loglevels' were not flexible enough I think, so I changed
* the system to 'logparameters'.
* <logparam> can be a concatenation of any of these words:
*
* raw : Raw level
* norm : Normal level
* telnet: Log passwords (login port 23)
* ftp : Log passwords (ftp port 21)
* mail : Log mailinfo (mail port 25)
* e.g 'ftpmailnorm' would be a valid <logparam>
* (see '2. The Output' for more info)
Some examples:
Imagine the following setup: 2 hosts on a subnet, one is running the
sniffer (sniffit.com), the other one is 66.66.66.7 (target.com).
1. You want to test if the sniffer is working:
sniffit:~/# sniffit -d -p 7 -t 66.66.66.7
and in another window:
sniffit:~/$ telnet target.com 7
you should see the sniffer giving you packets as you telnet to
the 'echo' service.
2. I want to log some passwords from people on 66.66.66.7:
sniffit:~/# sniffit -p 23 -t 66.66.66.7
3. Root of target.com tells me he gets strange ftp connections and
wants to find out the commands typed:
sniffit:~/# sniffit -p 21 -l 0 -t 66.66.66.7
4. You want to read all incoming and outgoing mail on target.com:
sniffit:~/# sniffit -p 25 -l 0 -b -t 66.66.66.7 &
or
sniffit:~/# sniffit -p 25 -l 0 -b -s 66.66.66.7 &
5. You want to use the menu based interface.
sniffit:~/# sniffit -i
6. Something is really wrong and you want to see the Control Messages
with error codes.
sniffit:~/# sniffit -P icmp -b -s 66.66.66.7
7. Go wild on scrolling the screen.
sniffit:~/# sniffit -P ip -P icmp -P tcp -p 0 -b -a -d -x -s
66.66.66.7
witch is the same as
sniffit:~/# sniffit -P ipicmptcp -p 0 -b -a -d -x -s 66.66.66.7
8. Log passwords in that way you can read them with 'more 66*'
sniffit:~/# sniffit -p 23 -A . -t 66.66.66.7
or
sniffit:~/# sniffit -p 23 -A ^ -t dummy.net
9. This could go on for ever..............
3. Extra info on use
--------------------
3.1 Running interactive mode
----------------------------
When running in interactive mode:
UP or 'k' : self explanatory
DOWN or j': self explanatory
F1 or '1' : Enter a host (enter 'all' for no mask) for packet filtering
(host that sends the packets)
F2 or '2' : Enter a host (enter 'all' for no mask) for packet filtering.
(host that receives the packets)
F3 or '3' : Enter a port (enter '0' for no mask) for packet filtering.
(host that sends the packets)
F4 or '4' : Enter a port (enter '0' for no mask) for packet filtering.
(host that receives the packets)
F5 or '5' : Start a program 'sniffit_key5' with arguments
<from IP> <from port> <to IP> <to port>
If the program doesn't exist, nothing is done. Sniffit should
be in the same path as sniffit was STARTED FROM (not necessarily
the path sniffit is stored in)
This is useful for interactive connection killing or extra
monitoring. A little shell script can always transform the
arguments given and pass them on to other programs.
F6 or '6' : Same as F5 or '5', but with program 'sniffit_key6'
F7 or '7' : Same as F5 or '5', but with program 'sniffit_key7'
F8 or '8' : Same as F5 or '5', but with program 'sniffit_key8'
ENTER : a window will pop up and log the connection, or the connection
output will be send at a chosen device if you used the '-D'
option.
'q' : When in logging mode, stop logging. Otherwise, quit.
'n' : Toggle netstatistics. These are sampled at 3 secs, look in
the config.h file to change this (could be needed if y'r
computer is slow).
'g' : Generate Packets!
Sniffit is now able to generate some traffic load. Currently
this is a 'underdeveloped' feature with very few options,
but it will be expanded a lot...
Currently only UDP packets are generated. When pressing 'G'
you will be asked the source/dest IP/port and how many packets
are to be transmitted.
Packets contain the line: "This Packet was fired with Sniffit!"
'r' : Reset.. clears all current connections from memory and restarts.
3.2 Forcing network devices (*READ*)
--------------------------------------
NOTE: the correct name (for sniffit) of a device can be found by running
'ifconfig', 'route', ...
When forcing network devices, sniffit tries to find out what device it is.
If sniffit recognises the name, everything is okay.
If it does not recognise the name it will set the ethernet headlength
according to the compiled-in value FORCED_HEAD_LENGTH. The ethernet
headlength is the length in bytes of an ethernet packet header.
So if you have to force a non-ethernet device that is not recognised by
sniffit, make sure you change that headlength correctly in the 'sn_config.h'
file.
The -F option was added, because I noticed device names can differ from
system to system, and because some ppl have multiple devices present.
When having problems with this option, please think twice before you mail me.
e.g: sniffit -F eth1 -t foobar.com -dx
Notice you don't have to add /dev/ (some ppl mentioned me this was not
completely clear).
3.3 Format of the config file
-----------------------------
The configfile should have lines with the following format:
<field1> <field2> <field3> <field4> [<field5>]
(separators are spaces (any number of), NO TABS!!!)
Lines that don't match this pattern are discarded, so standard unix
comments '#' can be used in this file... (this also means that if you
have a typo there, Sniffit won't report it but just discard the line)
* Be sure to end the file with a blank line. If you don't do so, the last
* line of the command file will be ignored.
(read this list, even if you don't get it at first, it will become clear
in the examples)
<field1> can be:
select : Sniffit will look for packets that match the following
description (other fields)
deselect : Sniffit will ignore packets that match the description
logfile : change the logfile name to <field2> instead of the
default 'sniffit.log'
<field2> can be:
from : Packets FROM the host matching the following desc. are
considered
to : similar, Packets TO the....
both : similar, Packets FROM or TO the....
a filename : as an argument of 'logfile' in <field1>
<field3> can be:
host : The (de)selection criteria involves a hostname.
port : similar, ... a portnumber
mhosts : The (de)selection criteria involves multiple-hosts, like
with the wildcards in 0.3.0, but without the 'x'
<field4> can be:
* either a hostname, a portnumber, a service name or a number-dot partial
* notation indicating multiple hosts depending on <field3>
* (service names like 'ftp' are resolved as the services available
* present on the host that runs Sniffit, and translated into a port nr)
<field5> can be:
a portnumber or service name, if <field3> was 'host' or 'mhosts'
Maybe it would have been wise to mention explicitly, that the config-file
currently only works with TCP packets.
examples:
1. Look at this configuration file:
select from host 100.100.12.2
select from host 100.100.12.3 1400
select to host coder.sniffit.com
select both port 23
This file would cause Sniffit to give you the packets:
a) Send by host 100.100.12.2
b) Send by host 100.100.12.3 from port 1400
c) Send to coder.sniffit.com
d) All packets on our subnet going to or coming from a telnet port.
2. another example:
select both mhosts 100.100.12.
deselect both port 80
select both host enemy.sniffit.com
This file would cause Sniffit to give you the packets:
a) Send by hosts '100.100.12.*'
b) EXCEPT the WWW packets
c) BUT showing the WWW packets concerning enemy.sniffit.com
The config file is interpreted SEQUENTIALLY, so mixing up those lines
could have unwanted results e.g.:
select both mhosts 100.100.12.
select both host enemy.sniffit.org
deselect both port 80
This will give you the packets:
a) Send by hosts '100.100.12.*'
b) Send from/to enemy.sniffit.org
c) deselecting all WWW packets on the subnet
So if someone on enemy.sniffit.org is netscaping (assuming his 'target'
has his httpd installed on port 80), you would see the packets with
the first config file, BUT NOT with the second file, and that could
spoil y'r fun when he's surfing to some kinky page.
3. example:
select both mhosts 1
select both mhosts 2
deselect both mhosts 1 80
deselect both mhosts 2 80
This would show you all subnet traffic excluding WWW traffic
(concerning port 80.)
4. example:
* select both host target.com 21
* and
* select both host target.com ftp
* are equal configurations.
NOTE: Everything is DESELECTED by default, so an empty config file will
get you nothing.
3.4 Loglevels
-------------
* The system of loglevels was not flexible enough, so I changed it. I expect
* you will like it more this way.
*
* Loglevels are now activated by '-L <logparam>'.
* The following <logparam>'s are valid (concatenation is allowed):
*
* 'raw':
* Log all SYN, FIN, RST packets. This will give you an overview of
* all network (TCP) traffic in a 'RAW' way (a connection starting could
* give you at least 2 SYN packets, etc...).
* This is a great way to waste diskspace...
* Messages are:
* Connection initiated. (SYN)
* Connection ending. (FIN)
* Connection reset. (RST)
*
* 'norm' (levels 10-29)
* Same as 'raw', but a bit more intelligent. Unless packets are
* transmitted multiple times because of packet loss, you will
* only get 1 notice of a connection starting or ending. (the packet id
* will state the host that initiated the connection first)
* Messages are:
* Connection initiated.
* Connection closed.
*
* 'telnet':
* Sniffit will try to catch user and passwords for the telnet login
* on port 23.
*
* NOTE:
* We only try to catch the first attempt, so if someone fails the
* first login, you will miss his password.
* A '~' in the login and passwords fields can be a nonprintable
* character (if in the beginning of a field, probably due to an early
* start of registration) or a '~'.
* This all makes it sound a little messy, but I 'test-drove' a lot and
* was pleased with the results after adding some funky shit (if y'r
* interested have a look at in function 'packethandler' in
* sniffit.*.c)
*
* 'ftp':
* Sniffit will try to catch user and passwords for ftp sessions
* on port 21.
*
* NOTE:
* Easy catching. Even multiple tries are registered.
*
* 'mail':
* Interested in who writes mail to who? Well you get all senders and
* recipients nicely logged with this feature (port 25 mail).
4. The output
-------------
4.1 Normal
----------
- IP header info (not logged, displayed):
Examples:
from 100.100.60.80 to 100.100.69.63
IP Packet precedence: Routine (-T-)
FLAGS: -- -- Time to live (secs): 59
Protocol (6): TCP
from 100.100.69.31 to 100.100.69.63
IP Packet precedence: Routine (---)
FLAGS: -- -- Time to live (secs): 60
Protocol (17): UDP
from 100.100.69.51 to 100.100.69.63
IP Packet precedence: Routine (---)
FLAGS: -- -- Time to live (secs): 255
Protocol (1): ICMP
explanation:
Precedence can be:
Routine, Priority, Immediate, Flash, Flash override, Critical,
Internetwork Control, Network control
The Flags between brackets: (DTR) Delay-Throughput-reliability
FLAGS: DF MF DF=Don't Fragment MF=More Fragments
- TCP Packets (logged or displayed):
The sniffer logs the data in ascii format. So when logging telnet
connections, you will need to use 'joe' or something else that can
support control chars (look for '-A <char>' below).
Telnet 'negotiates' (binary) in the beginning of every connection, and
'catting' an output file, will most of the time show nothing (due to
control chars).
Of course when logging mail, there are no problems.
The new '-A <char>' takes care of the control characters, that way you
will be able to read the logfiles with 'more', 'vi', etc...
-a and -d give you raw packets i.e. not unwrapped, on the screen
(nothing is logged), -x gives you more info on the TCP package
(everything is still logged unless using -a or -d mode),
The flags are:
U: Urgent pointer significant
A: Acknowledgement is signif (will be shown)
P: Push function
R: Reset the connection
S: Synchronizes sequence numbers
F: No more data from sender (end connection)
Filenames Created:
Imagine a subnet with the hosts 66.66.66.66 and 66.66.66.7, and we
run a sniffer on the first.
The sniffer creates the following files:
When logging packets TO host 66.66.66.7 (-t 66.66.66.7) files like
77.77.7.7.15000-66.66.66.7.23 are created, when the data CAME FROM
host 77.77.7.7-15000 (with 15000 port used on 77.77.7.7 for that
connection, and received on port 23 of 66.66.66.7)
When logging packets FROM host 66.66.66.7 (-s 66.66.66.7) files
like 66.66.66.7.15000-77.77.7.7-23 are created, when the data
GOES TO host 77.77.7.7 (with 15000 port used on 66.66.66.7 for
that connection)
- ICMP Packets (not logged, displayed):
On host 100.100.69.63 someone tried 'telnet 100.100.23.23'
Suppose this host is unreachable, this could be a possible output:
ICMP message id: 100.100.69.254 > 100.100.69.63
ICMP type: Destination unreachable
Error: Host unreachable
ICMP message concerned following IP packet:
from 100.100.69.63 to 100.100.23.23
IP Packet precedence: Routine (---)
FLAGS: -- -- Time to live (secs): 63
Protocol (6): TCP
- UDP Packets (not logged, displayed)
You get the package id. When using -d, -a you get the contents of the
package. (pretty basic)
4.2 Logfile
-----------
If you use a configfile (-c) and enable the Logging option, a logfile is
created. Unless you set 'logfile' in the config file, that file will be
named 'sniffit.log'.
It will contain lines with the following FIXED format:
1) Date - Connection id.: message
e.g. [Mon Aug 19 22:38:56 1996] - 100.100.10.10.1046-110.110.11.11.23:
Connection initiated.
(conn. init. on the same line as the rest)
2) Except the starting line and the ending line of each session, they are:
[Mon Aug 19 22:38:51 1996] - Sniffit session started.
[Mon Aug 19 22:39:44 1996] - Sniffit session ended.
3) Lines containing other data (future versions), will NOT begin with '['
and will have also easily interpretable formats.
Other data is e.g. packet contents
I do this because I can imagine (when this is more expanded) that people
will use their own parsers for these logfiles. Well, if you respect those 3
rules, your parser will work on all future versions of Sniffit.
5. IMPORTANT NOTES, READ!
-------------------------
First of all, some stuff people who use this program should already know,
if you don't, well here ya got it:
Some other notes:
- Sniffers can only be run by ROOT
- Sniffers can only log packets that 'travel' on THEIR ethernet cable.
So there has to be some host on your subnet involved (either as
sender or receiver).
- Working with '-d' or '-a' gives you raw packets, they are still
packed in IP, when logging to files, only sent data is logged,
the packets are 'unwrapped'.
- Sniffers can NORMALLY not be detected by outsiders (or outsiders
SHOULD not be able to...).
Unfortunately some systems contain bugs that will allow outsiders to
probe your network device for PROMISC mode (which is a good indication
for 'sniffer running')
- (LINUX) Your KERNEL should support System V IPC.
If you will use '-i' or '-I'.
- (BSD systems) Your KERNEL should have BPF included.
------------------------ Thx for using Sniffit(tm) ---------------------------
|