home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hacker Chronicles 1
/
HACKER1.ISO
/
miscpub1
/
cmsa.tj2
< prev
next >
Wrap
Text File
|
1992-09-26
|
27KB
|
723 lines
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
period 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:
DASD 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 ---
Downloaded From P-80 International Information Systems 304-744-2253 12yrs+