                      ==Phrack Magazine==

          Volume Four, Issue Forty-Two, File 6 of 14
          
 
                   A User's Guide to XRAY

                         By  N.O.D.


This file was made possible by a grant from a local
McDonnell Douglas Field Service Office quite some 'tyme'
ago.  This was originally written about version 4, although
we are pretty sure that BT has now souped things up to version 6.
Everything still seems the same with the exception of a few
commands, one of which we will point out in particular.

Any comments/corrections/additions/updates or subpoenas
can be relayed to us through this magazine.

XRAY is a monitoring utility that gives the user a real-time
window into a Tymnet-II node.  Used in tandem with other
utilities, XRAY can be a very powerful tool in monitoring network
activity.

In this file we will discuss key features of XRAY and give command
formats for several commands.  Some commands are omitted from this
file since they can only be used from dedicated terminals.  Several
others are likewise omitted since they deal with the utilization of
XRAY in network configuration and debugging the actual node code, and
would probably be more damaging than useful, and commands to reset
circuits and ports are similarly missing.


ACCESS

The most obvious way to access XRAY is to find the username/password
pair that either corresponds to the host number of an XRAY port, or
is otherwise in the goodguy list of a particular node.

XRAY can also be accessed through the DDT utility by typing

    ?STAT

Either will respond with the following

**X-RAY**  NODE:  XXX   HOST:  ZZZ  TIME:  DD:HH:MM:SS

If all ports are currently in use the user will only be allowed access
if his/her is of greater precedence in the goodguy list than that of
someone previously online.  In such a case, that user will be forcibly
logged out and will receive the following message:

    "xray slot overridden"

Otherwise the user will see:

    "out of xray slots"

XRAY users are limited in their power by the associated "licence" level
given them in the XRAY goodguy list.  The levels are:

    0 - normal
    1 - privileged
    2 - super-privileged


There are several user names associated with the
XRAY utility.  These exist on almost any network utilizing
the Tymnet-II style networking platform.

  PRIORITY    USERNAME

     2        XMNGR
     2        ISISTECX
     2        XNSSC
     1        TNSCMX
     1        TNSUKMX
     1        XSOFT
     1        XEXP
     1        XCOMM
     1        XSERV1
     0        XRTECH
     0        XTECH
     0        XOPPS
     0        XSERV
     0        XRAY



COMMANDS  with parameters in <brackets>

HE  Help

    Use this command to display the commands available for that
    particular node.

GP  Get power <security string>

    This command allows the user to move up to the maximum security
    level allowed by his username, as specified in the good guy
    list.

XG  Display and/or modify XRAY goodguy list <entry number> <P/M>

    This command without parameters will display the XRAY goodguy
    list.  When added with an entry number and 'P' (purge) or
    'M' (modify), the user can edit the contents of the table.
    The XGI command will allow the user to enter a new entry
    into the list.  Any use of XG or XGI to alter the list is
    a super-privileged command and is audited.

    >XG

    XRAY GOODGUY LIST

    NO.   PRIV  OVER  NAME
    ----  ----  ----  ----
    0001  0002  00FF  TIIDEV
    0002  0001  0030  RANDOMUSER
    0003  0000  0000  XRAY

    >XGI

    ENTER UP TO 12 CHARACTERS OF USERNAME

    NOD

    ENTER NEW PRIVILEGE AND OVERRIDE - 2,FF

    >XG

    XRAY GOODGUY LIST

    NO.   PRIV  OVER  NAME
    ----  ----  ----  ----
    0001  0002  00FF  TIIDEV
    0002  0001  0030  RANDOMUSER
    0003  0000  0000  XRAY
    0004  0002  00FF  NOD

BG  Display and/or modify Bad Guy List <node number> <R/I>

    This command when entered without any parameters displays the
    "bad guy" list.  When used with a node number and 'R' it will remove
    that node from the list, and 'I' will included.  The 'R' and 'I'
    features are privileged commands and usage is noted in audit trails.

    >BG

    2000 701 1012

    >BG 2022 I

    2022 2000 701 1012

HS  Display host information



ND  Display node descriptor

    This command displays information about the node and its network
    links.

NS  Display node statistics

    This command displays various statistics about the node including
    time differentiations in packet loops, which can then be used to
    determine the current job load on that particular node.

KD  Display link descriptor <linked node>

    This command displays the values of the link to the node specified.
    This is displayed with columns relating to type of node (TP), speed
    of the link (SP), number of channels on the link (NCHN), etc..

KS  Display link statistics <up to 8 node numbers>

    This command provides a report on various factors on the integrity
    of the link to the given node(s), such as bandwidth usage, packet
    overhead, characters/second transmitted, delays in milliseconds, etc.

BZ  "Zap" link to node <node number>

    This command will cause the link to the specified node to be
    reset.  This command is privileged and is audited.  If the node
    "zapped" is not currently linked a "??" error message will be
    displayed.

TL  Set/Reset trace on link  <node number>
TN  Set/Reset trace on line  <node number>
TM  Display trace events     <B(ackground) / F(oreground)>

    These commands are used to display activity between two active
    nodes.


AC  Display active channels <starting channel> <range of channels>

    This command will display all active channel numbers for the given
    range starting at the given channel number.  Range is in hex.

QC  Query channel status <channel number>

    This command displays information about the given channel,
    including throughput speed, source and output buffer size and
    address location.


TC  Enable/disable data trace on channel <channel number> <0/1>

    This command with no arguments displays the channels
    that are being diagnosed by the trace.  The command with
    a channel number and a '1' will enable data trace for that
    channel, and a '0' will disable trace on that channel.  Enabling
    or disabling trace is a privileged command.

TD  Display channel trace data in hex  <count> <I/O>
TE  Display channel trace data in hex including escapes <count> <I/O>
TA  Display channel trace data as ASCII  <count> <I/O>

    With these commands trace data is displayed for a specified
    time count.  A prefixed 'I' or 'O' will show input or output
    data.  The default is both.

    >ta 5

    I/O   CHN   TIME
    OUT  0040   ECC5  \86\86\0F\00\8A\80h\80\8CS\83valinfo;
    IN   0040   EC87  \00\09\86\86\0D\08\00\00h
    OUT  0040   0F67  \86\86\0E\00\880\8D
    IN   0040   1029  \00,\86\86\09\86\00\00\90\1B\19\80 \06\86\00\00h
                      \15\1B\08J\04\0B\04\0F\04=\0DR\80JS\80\80
                      \8CVALINFO\8D
    OUT  0040   102F  \86\86\14\89p\90\1B\19\86\86\14\89j\18\15\13

**Note:  Although this will allow one to follow the network connections
         on specific channels, password data is filtered out.  As you
         can see from the above example, usernames are not.  Many
         usernames do not have passwords, as you all know.  **

On more recent versions of XRAY a similar command "DR" performs a
similar function to the trace commands, but shows both hex and
ascii of the data in memory registers of the node.

    >DR

    I NOS 0001 A0  *
    I SND 0001 A1  *  !
    I DTA 4920 616D 2061 6E20 6964 696F 7420 6265  *I am an idiot be*
          0002 9D63 6175 7365 2049 206C 6566 7420  *   cause I left *
          6D79 7365 6C66 206C 6F67 6765 6420 696E  *myself logged in*
          2061 6E64 2077 656E 7420 686F 6D65 2E0D  * and went home. *
          6F70 7573 2520 0D0A 0D0A 0D0A 0D0A 0D0A  *opus%           *

BS  Display bufferlet use statistics

    This command shows the current and past usage of the memory
    allocated to data buffering.  This shows total usage, total peak
    usage, and available buffer size.

RB  Read buffer <buffer index>

    This command displays the entire contents of the given buffer.
    This is a privileged command and its use is not primarily for user
    circuits.  Primarily.

    >RB 69

    50 61 72 74 79 20 6F 6E 20 64 75 64 65 21 21 21

WB  Write buffer <buffer index>

    This command writes up to seven bytes into the specified buffer.
    The buffer must greater than 4.  This is also a privileged command.

CD  Set/reset CRYPTO auto display mode <Y/N>
CL  Display CRYPTO log <number of minutes>
CM  Display CRYPTO messages by type
SM  Enable/Disable CRYPTO messages by type

    CRYPTO messages are informational messages about the activity of
    the node.  Up to 256 such entries are stored in a circular buffer
    to record this activity.  You can turn on automatic reporting
    of these messages with the CD command prefixed with a 'Y' for
    on and 'N' for off.  Certain message types that become bothersome
    can be disabled with the SM command and the message type.

DB  Begin delay measurement
DD  Display delay measurement statistics
DE  Terminate delay measurement
DL  Begin data loopback circuit

    These commands are used to build circuits for testing the speed and
    integrity of data flow between two nodes.  The DL command is
    super privileged and only one such circuit can be built on
    a node at a given time.  The data traffic generated by the DL is for
    diagnostic use only and can be monitored by viewing node and link
    statistics.

PM  Measure performance on a channel <channel number>

    This command measures the performance of a given channel by
    inserting a timing sequence into the packet stream.  Once it has
    reached the given channel it is returned and a value corresponding
    to the total time elapsed in milliseconds is displayed.  If the
    channel is not active, or no response is returned in 8 seconds the
    message "BAD CHANNEL OR TIMEOUT" is displayed.

LE  Set local echo mode
RE  Set remote echo mode

    One would use the set local echo command if the XRAY terminal
    is not echoing commands typed by the user.  By default, XRAY does
    not echo output.


SUMMARY

    XRAY is pretty confusing.  Be careful with what you are doing
    since you are essentially prodding around in the memory of the
    node.  Think of it in terms of using a utility to poke and prod
    the memory of your own computer.  Think of how disastrous a
    command written to the wrong portion of memory can be.  Don't
    do anything stupid, or you might bring down a whole network,
    or at minimum lose your access.
