textfiles/hacking/primos4.txt

560 lines
25 KiB
Plaintext

_______________________________________________________________________________
INTRODUCTION TO THE PRIMOS OPERATING SYSTEM
Part IV (Prime Network Communications)
Written by Violence
Copyright (C) 1989 The VOID Hackers
_______________________________________________________________________________
Welcome to Part IV of my continuing series on the PRIMOS operating system. In
this installment I plan on covering Prime's network communications capability
and the associated utilites that you will find useful.
Just like other popular mainframes, Primes too have networking capabilities and
support many communications applications. Prime's main communications products
are PRIMENET, RJE and DPTX. I will only be going over PRIMENET in this series,
as discourses on RJE and DPTX are beyond the scope of this series. For a good
discussion on RJE and DPTX I refer you to Magic Hassan's excellent article on
the subject (appearing in Phrack, Inc., Issue 18).
_______________________________________________________________________________
PRIMENET
Available for all models of Prime computers, PRIMENET is Prime's networking
software. In a nutshell, PRIMENET is like a Token Ring LAN network. PRIMENET
is superior to most Token Ring LAN applications, however. To really be able
to visualize how a PRIMENET ring network operates, you need to be familiar with
the Token Ring type of LAN (Local Area Network). Token Rings are basically
'circles' of computers (referred to as 'nodes') that are electronically connec-
ted to eachother. The individual Prime computers on the PRIMENET ring are res-
ponsible for allowing remote users to be able to access them, however. PRIME-
NET simply allows simplified communications between all the netted systems. In
the following diagram you will see a sample PRIMENET ring with six Prime compu-
ters located on it. Each of the individual nodes may or may not be connected
to the telephone network, another PRIMENET ring, or one of the many public
data networks (PDN's) like TELENET. Here is an example of the manner in which
a PRIMENET ring is set up:
PRIME PRIME
\_/
PRIME-(_)-PRIME
/ \
PRIME PRIME
Each node receives information from it's neighboring system and transmits it to
the node immediately downstream on the ring. In this fashion any node can send
information to any other node by sending it through some or all of the others.
As I stated previously, PRIMENET ring networks are superior to most Token Ring
LAN applications. But in what ways? Some of the features of a PRIMENET system
are listed below:
o Any terminal on the PRIMENET ring can login to any system on
the PRIMENET ring.
o Processes running at the same time on different systems can
communicate interactively.
o Transparent access to any system in the PRIMENET network without
use of any additional commands or protocols.
o Complete access and protocol support for packet-switched
communications between PRIMENET systems and mainframes located
on almost all Public Data Networks (PDN's).
All these features allow you to do things like access disk partitions on system
A from system B, rlogin from system A to system B (requiring ONLY an account
on system B), and so forth. In this installment I will explain the many things
that you can (and should) do with a PRIMENET-equipped system.
_______________________________________________________________________________
CHECKING OUT A PRIMENET SYSTEM
Should you get into a PRIMENET-equipped system, there are a few things that you
should do to learn more about the intra-system links and such. In this section
I will describe all the procedures that you will need to initiate in order for
you to determine said information.
The first thing you should do is to use three of the DSM (Distributed System
Management) utilities (remember, I described the DSM in full in Part II). The
three DSM utilities (external commands, really) you should invoke are:
LIST_PRIMENET_LINKS - Lists PRIMENET status
LIST_PRIMENET_NODES - Lists configured PRIMENET nodes
LIST_PRIMENET_PORTS - Lists assigned PRIMENET ports
The information returned to you by these external commands will describe the
current PRIMENET setup in detail. You will obtain remote nodenames, PRIMENET
addresses, link devices, gateway nodes, configured access, and whether or not
the individual nodes require remote passwords for login. Here is a good examp-
le of the results obtained from a LIST_PRIMENET_NODES:
OK, list_primenet_nodes
** VOID **
Remote Primenet Link Gateway Configured Validation
node address device node access required?
+-----------------------------------------------------------------------------+
| 2600HZ | 99994738593624 | LHC00 | | remote login, RFA | no |
| THRASH | 3110XXX00254 | PNC00 | | remote login, RFA | yes |
| VIOLEN | 3110XXX00245 | SYNC00 | | remote login, RFA | yes |
| PSYCHO | 99994734748381 | SYNC00 | | remote login, RFA | no |
| SCYTH | 3110XXX00324 | SYNC00 | | remote login, RFA | no |
+-----------------------------------------------------------------------------+
This assumes that you issued the LIST_PRIMENET_NODES command from the system
VOID. It states that it is on a PRIMENET ring with 5 other systems (their
names can be found in the "Remote node" column). Note the "Primenet address"
column. It lists each systems NUA (Network User Address). Notice that three
of the listed NUA's are on TELENET and two are on some bizarre network with a
DNIC (Data Network Identification Code) of 9999. Well, the host system (VOID)
is located on the TELENET PDN (DNIC 3110) and thus, the DSM knows that all 3110
systems are TELENET and displays their TELENET addresses. The other systems
(those with the DNIC of 9999) are located on foreign PDN's and the DSM does not
understand the addressing scheme (by default it only understands that of the
host system) and thusly, displays their PRIMENET addresses.
The "Link device" column tells about the hardware at the individual sites. The
host system's device is not displayed, only those other nodes on the ring net-
work. LHC00 is a LAN300 node controller. PNC00 is a PRIMENET node controller
(PNC). SYNC00 denotes a synchronous communications line. It's not all that
important (unless you are a hardware fanatic, that is).
The "Configured access" and "Validation required?" columns display important
information about the linked systems. If you don't see a "remote login" some-
where then you cannot login to the system remotely (you can access it if one of
the PRIMENET systems is linked with it's disk partitions, however). If you see
a "yes" in the "Validation required?" column then some sort of remote password
system has been installed and you are going to have a hard time getting in.
As you can see, these DSM commands can be useful when attempting to gain access
to other systems on a PRIMENET or LAN300 ring. The rest of this installment
will be devoted to utilizing the information gained here to do such.
_______________________________________________________________________________
THE PRIMENET RLOGIN FACILITY
PRIMENET supports remote logins in the same manner that UNIX machines do. If,
for example, a PRIMENET ring had 6 systems on it, 4 on TELENET and 2 in the UK
then you could connect to those systems in the UK for free by connecting to one
of the 2 U.S. systems and rloging into one of the UK Primes. Using our already
defined PRIMENET ring, we'll connect to system PSYCHO from system THRASH.
214 XXX CONNECTED
PRIMENET 22.0.0 THRASH
login system system -on psycho
This will log you in as SYSTEM/SYSTEM on the PSYCHO node (a Prime separate from
the THRASH node). This can be VERY useful when you have lost all of your acc-
ounts from one node on the PRIMENET ring and do not know the NUA for one of the
other ring systems that you still have accounts on.
_______________________________________________________________________________
NETLINK
NETLINK is Prime's network utility. All users on a PRIMENET system will have
access to this communications utility. NETLINK allows you to connect to:
o Other Prime's on the same PRIMENET ring as the system you are on
o Any system (UNIX, VAXen, etc) located on any of the world's networks
NETLINK is a powerful utility and abuse will lead to your accounts removal, so
be careful in how you use it. The best thing you can possibly do is, use it to
connect to and hack on other systems in the PRIMENET ring. If you MUST use the
NETLINK utility to call other systems on the world's PDN's try to call only the
systems that accept collect calls.
Now, let me tell you how to get into NETLINK and start doing stuff. At the
'OK,' prompt (or whatever it has been set to by the LOGIN.CPL file), type:
OK, netlink
If NETLINK is available, then you will see something like this herald:
[NETLINK Rev. 22.0.0 Copyright (c) 1988, Prime Computer, Inc.]
[Serial #serial_number (company_name)]
After that floats across your screen you will be deposited at the NETLINK pro-
mpt, which happens to be a "@" (Gee, how original). Now, you are all ready to
begin NETLINKing.
Time to learn how to connect to a system. Now, there are three types of comm-
ands that all do basically the same thing, and that is connect you to a remote
system. I'll go over the first two types right now and save the third type for
a bit later.
Depending on the status of the system you are trying to call, you will use
either C (connect) or NC (connect, no reverse charging). C and NC both do the
same thing, but C will make the connection for free (ie, the people who own
this Prime won't get a bill) and NC will make the connection and your net use
will be charged. Ok, a good comparison is calling NUA's on a PDN. If the NUA
is "collectable" (a term I use to describe a system that accepts collect (ie,
no ID required to make the connection) calls) then you will use the C command.
Otherwise use the NC command. Almost all international calls will require an
NC to connect.
If you simply want to call a system that was listed in the LIST_PRIMENET_NODES
list, then do this:
c <nodename>
An example would be:
c thrash
If you wanted to call up a system located on the same PDN as the PRIMENET you
are on is and the system accepts collect calls, then do this:
c <network address>
An example would be:
c 21398
If you want to call up a system that is located on a PDN other than the PDN
your PRIMENET is on, then do this:
c <dnic>:<network address>
An example would be:
C 2624:5890040004
Regardless of what you actually end up typing, you will get one of two things:
a connect message or an error message. The connect message for the above exa-
mple would look like this:
5890040004 Connected
The connect message for when you connect to a Prime on the PRIMENET ring would
look like this:
THRASH Connected
Ok, now you simply login (or hack) as you normally would. When you are done,
logoff the system as usual. When you logoff, you'll get a message like this:
5890040004 Disconnected
Occasionally you will either type the NUA incorrectly or the system you are
calling is down. When that happens you will get an error message that looks
like this:
5890040004 Rejecting Clearing code = 0000
Diagnostic code = 0010 (Packet type invalid)
The error message states the network address you tried to call (less the DNIC),
the Clearing code, the Diagnostic code and what the Diagnostic code means in
English. At the end of this file is a complete list of all Clearing codes and
all Diagnostic codes (for reference).
Sub: Other Nets [BitNet etc..]
Read: (1-30), Message # 26, (c/r)=Next Msg ?:OP
30/30: Prime file 9 of 10
Name: Predat0r #1 @5211
Date: Sun May 05 02:41:48 1991
From: Youth International Party Line (Kentucky)
_________________________________
Sub: Other Nets [BitNet etc..]
Read: (1-30), Message # 30, (c/r)=Next Msg ?:-
29/30: Prime file 8 of 10
Name: Predat0r #1 @5211
Date: Sun May 05 02:41:27 1991
From: Youth International Party Line (Kentucky)
Now, if you want to abort a session prematurely (not recommended unless NETLINK
screws up, and it does on occasions), then there are three things you can do:
o Type CONTROL-P
o Issue a BREAK sequence
o Return to TELENET and do a force Disconnect (via the D command)
Those are listed in the order you should try them in. CONTROL-P works most of
the time. Doing a BREAK will usually (but not always) close your connection
and return you to PRIMOS level. When you do a BREAK, you'll probably see:
UUU@UUu
QUIT.
OK,
Now press RETURN so you can clear out the unwanted CONTROL characters that are
in the Prime's command line input buffer. Now, restart NETLINK as usual.
If you are forced to drop to TELENET, then disconenct yourself and re-login.
If your process is still online (about 50% of the time) then don't worry, it
will be logged off due to inactivity between 10 and 15 minutes. If your proc-
ess got slain then you're in good shape. Now, return to NETLINK as usual.
Ok, now you know how to connect and disconnect from systems. Now it's time for
the fun stuff, multipadding and other advanced commands. The escape character
for NETLINK is the "@" character (same as with TELENET). Basically, you type:
<cr>@<cr>
to return to NETLINK while online. Doing this will take you back to NETLINK
command mode. It will leave the circuit open. To reconnect to the system,
type:
continue 1
You will then be reconnected to the system you were on. Now for a slight draw-
back. If you are using TELENET or any other PDN that uses TELENET's software,
then using the NETLINK escape sequence ( <cr>@<cr> ) will take you back to
TELENET network command level instead of back to NETLINK command level. There
are two ways to correct this problem. The first is to type the following while
in NETLINK:
prompt $
This changes the NETLINK '@' prompt to a '$' prompt. Now just type <cr>$<cr>
to return to NETLINK. The other way is to utilize TELENET's ITI parameters to
turn off the escape sequence. When you connect to the PRIMENET and login, then
return to TELENET command level and type these two sequences of parameters ex-
actly as they are shown:
SET? 1:0,2:0,3:0,4:2,5:0,7:8,9:0,10:0,12:0,15:0
SET? 0:0,57:1,63:0,64:4,66:0,71:3
When you return to the "@" prompt, type CONT to return to the Prime. Then just
enter NETLINK as usual. Now when you type <cr>@<cr> you won't return to TELE-
NET as you used to.
Ok now, let's get into multipadding. What exactly is "multipadding" anyways?
Well, you probably already know this, but it never hurts to repeat it. Multi-
padding is what you are doing when you are connected to two or more systems
simultaneously. Basically, NETLINK will allow you this capability. Although
the NETLINK documentation states that you can only connect to four systems at
one time, you can actually connect to more. At any rate, this is how you do
it. When you first enter NETLINK (Note: you must set your prompt or the ITI
parameters if you plan to do any NETLINKing from a PRIMENET located on TELENET
or any other PDN that uses TELENET's software), connect to the first system by
typing this:
CALL <nodename> <-- if it is located on the same PRIMENET ring
CALL <network address> <-- if the system is located on the same PDN
CALL <dnic>:<net address> <-- if the system is located on a different PDN
The CALL command will connect you to the system and you will remain in NETLINK
command mode. Now, keep CALLing systems until you are done. Be forewarned
that it can be confusing being connected to more than four systems. Ok now,
the above CALL examples all assumed that the system that you are CALLing will
accept collect calls. If this is not the case, then CALL it like this:
call <whatever> -fcty
The "-FCTY" command stands for facility. Ok, when you use the "-FCTY" argument
you are basically doing the same thing as you where when you were using the NC
connect command. Each CALL that you make opens a circuit. The first circuit
you connect to is known as circuit 1, and so forth. So when you are ready to
connect to the first system, type:
continue 1
To connect to the second open circuit, type:
continue 2
and so forth. Should you try to connect to a closed circuit you will get the
following error message:
Circuit does not exist
To switch between systems return to NETLINK command mode via <cr>@<cr> and then
CONTINUE to the appropriate circuit. To close a particular circuit, type:
d #
where # is the actual circuit number. An example would be D 1 or D 3. There
must be a space between the D and the circuit number. To disconnect from all
open circuits you can type:
d all
That's pretty much all there is to multipadding. It's nothing special, and
not really that useful, but it can be interesting to connect to two or three
chat systems and switch between them, or hang on a chat and leave to hack a
system while remaining on the chat, etc. Lots of interesting things you can
do. When you are done using NETLINK, type Q or QUIT to return to PRIMOS. If
you would like to see the other commands (yeah, there are more) that I am not
covering in this article, then type HELP. You got the basics down now, so
go fiddle around with NETLINK and see what other strange things you can do.
Texts for Clearing Cause Codes detected by NETLINK
0 0 DTE Originated
1 0 Busy
3 0 Invalid Facility Request
5 0 Network Congestion
9 0 Out Of Order
11 0 Access Barred
13 0 ot Obtainable
17 0 Remote Procedure Error
19 0 Local Procedure Error
21 0 Out Of Order
25 0 Refusing Collect Call
33 0 Incompatible Destination
41 0 Fast Select Acceptance Not Subscribed
57 0 Ship Absent
128 0 DTE Originated (Non-standard Diagnostic)
129 0 Busy (Private)
131 0 Invalid Facility Request (Private)
133 0 Network Congestion (Private/Routethrough)
137 0 Out Of Order (Private/Routethrough)
139 0 Access Barred (Private)
141 0 Not Obtainable (Private)
145 0 Remote Procedure Error (Private)
147 0 Local Procedure Error (Private/Routethrough)
149 0 RPOA Out Of Order (Private)
153 0 Refusing Collect Call (Private/Primenet)
161 0 Incompatible Destination (Private)
169 0 Fast Select Acceptance Not Subscribed (Private)
185 0 Ship Absent (Private)
193 0 Gateway-detected Procedure Error
195 0 Gateway Congestion
Texts for Diagnostic Codes detected by NETLINK
0 0 No additional information
1 0 Invalid P(S)
2 0 Invalid P(R)
16 0 Packet type invalid
17 0 Packet type invalid - for state r1
20 0 Packet type invalid - for state p1
21 0 Packet type invalid - for state p2
22 0 Packet type invalid - for state p3
23 0 Packet type invalid - for state p4
24 0 Packet type invalid - for state p5
26 0 Packet type invalid - for state p7
27 0 Packet type invalid - for state d1
29 0 Packet type invalid - for state d3
32 0 Packet not allowed
33 0 Unidentifiable packet
36 0 Packet on unassigned logical channel
38 0 Packet too short
39 0 Packet too long
40 0 Invalid GFI
41 0 Restart with nonzero in bits 1-4, 9-16
42 0 Packet type not compatible with facility
43 0 Unauthorized interrupt confirmation
44 0 Unauthorized interrupt
48 0 Timer expired
49 0 Timer expired - for incoming call
50 0 Timer expired - for clear indication
51 0 Timer expired - for reset indication
52 0 Timer expired - for restart indication
64 0 Call setup or clearing problem
65 0 Facility code not allowed
66 0 Facility parameter not allowed
67 0 Invalid called address
68 0 Invalid calling address
69 0 Invalid facility length
70 0 Incoming call barred
71 0 No logical channel available
72 0 Call collision
73 0 Duplicate facility requested
74 0 Nonzero address length
75 0 Nonzero facility length
76 0 Facility not provided when expected
77 0 Invalid CCITT-Specified DTE facility
112 0 International problem
144 0 Timer expired
145 0 Timer expired - For interrupt confirmation
160 0 DTE-Specific Signal
163 0 DTE Resource constraint
239 0 User segment deleted
240 0 Time out on clear request
241 0 Time out on reset request
242 0 Time out on call request
243 0 Routethrough down
244 0 Routethrough - not enough memory
245 0 Routethrough - circuit timeout
246 0 Routethrough - call request looping
247 0 Routethrough protocol error
248 0 Network server logged out
249 0 Local procedure error Primenet internal
250 0 Host down
251 0 Illegal address
252 0 No remote users
253 0 System busy
254 0 System not up
255 0 Port not assigned
_______________________________________________________________________________
OTHER USEFUL PRIMENET UTILITIES
There are two other useful PRIMENET utilities, and these are MONITOR_NET and
CONFIG_PRIMENET. In this section I will briefly detail these two utilities.
CONFIG_NET is useful for obtaining such information as intra-system links (disk
partitions that are shared by systems on a PRIMENET ring), remote login pass-
words, and system NUA's. Just type:
OK, config_primenet configfilename
The 'configfilename' is the name of the PRIMENET configuration file (located in
the *>PRIMENET* directory from MFD 0. You can REALLY screw up a PRIMENET ring
with this utility, so be careful. You don't want to EVER save a modified con-
figuration. Always answer such a question with NO. The only command you will
really ever need to use is the LIST command. When you type LIST it will ask
you what you want to list. Just type ALL and it will list all available info-
rmation regarding the PRIMENET configuration. CONFIG_PRIMENET has a HELP fac-
ility available, so use it.
MONITOR_NET is a useful utility for network freaks. It allows the complete
monitoring of the local PRIMENET ring network, all virtual circuits, synchro-
nous lines and LAN300 status. You cannot monitor type-ahead buffers or any-
thing, but you can learn quite a bit about the systems on the ring. It will
allow you to discover which nodes on the PRIMENET ring/LAN300 do a high amount
of data transfer, User ID's on individual systems (albeit no passwords), etc.
Unfortunantly, MONITOR_NET is an emulation-dependant utility. Most Prime util-
ities support the PT series of emulation (Prime Terminal), but most of you will
not have access to a terminal program that supports it. Prime was smart in one
important regard, and that is that not all of their customers will be using the
PT emulation, so they made MONITOR_NET be able to understand other popular emu-
lations, such as VT100. Defaultly, MONITOR_NET assumes you are using PT100 or
a similar mode of PT emulation. To tell it that you are using VT100, you must
use the -TTP argument (terminal type) on the PRIMOS command line. To invoke
MONITOR_NET with VT100 emulation, you would type this:
OK, monitor_net -ttp vt100
Upon invoking MONITOR_NET, the screen will clear and you will be presented with
a menu of options. MONITOR_NET is really easy to use (just make sure you enter
all the commands in UPPER case), so just play around with it.
Well, that's the end of this installment. In the next (and final) part of this
series I will detail the myriad of PRIMOS language compilers, interpreters, and
translators. I will also detail some more interesting PRIMOS commands and give
out some useful PRIMOS utilities (CPL programs).
May the forces of darkness become confused on the way to your house.
_______________________________________________________________________________
End of Part IV of the "Introduction to the PRIMOS Operating System"
_______________________________________________________________________________