what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

vms2.txt

vms2.txt
Posted Aug 17, 1999

vms2.txt

tags | paper
SHA-256 | 3694b795cf05972b89948b95ec9ad3c622563f092251a945688cc193d8f11729

vms2.txt

Change Mirror Download
Introduction to VMS - Part II.
gr1p@b4b0.org

This is part 2 of my 3 part Introduction to VMS which will hopefully enable
you to gain a much more complete introductionary grasp of the Operating
System and its Security Arrangements.

In the first text, found on the 9x webpage, I covered the basic background
of VMS as well as showing some basics commands and talking a little bit about
security with the list of some default logins. This paper will see a slightly
more indepth look at security and gaining (superuser) access on a machine
running VMS, at the same time as keeping in mind that this is an *introduction*
and therefore not getting too technical (that will come in later files).

The information presented in this text file is for educational use only.
If you decide to use what you learn in this text and you get busted, don't
blame me for showing you the information.

--> User Privileges

Before we actually look at ways to exploit VMS security I should give you a
background of user privileges as they are different to UNIX user privileges
etc. Our aim on a VMS box is to gain the highest number of privileges that
we can in order to explore the box to the greatest potential. Each account
has a different number of privileges. To see what privileges your users
account has enter the following command at the prompt.

$ show proc/priv

This will then show you a list of your Authorised Privileges, Process
Privileges, Process Rights and System Rights.

The Following is a list of Privileges that are commonly found on VMS
systems. This list is taken directly from the alt.2600/#hack FAQ.

-- snip --

ACNT Allows you to restrain accounting messages

ALLSPOOL Allows you to allocate spooled devices

ALTPRI Allot Priority. This allows you to set any priority
value

BUGCHK Allows you make bug check error log entries

BYPASS Enables you to disregard protections

CMEXEC/
CMKRNL Change to executive or kernel mode. These privileges
allow a process to execute optional routines with KERNEL
and EXECUTIVE access modes. CMKRNL is the most powerful
privilege on VMS as anything protected can be accessed
if you have this privilege. You must have these
privileges to gain access to the kernel data structures
directly.

DETACH This privilege allow you to create detached processes of
arbitrary UICs

DIAGNOSE With this privilege you can diagnose devices

EXQUOTA Allows you to exceed your disk quota

GROUP This privilege grants you permission to affect other
processes in the same rank

GRPNAM Allows you to insert group logical names into the group
logical names table.

GRPPRV Enables you to access system group objects through
system protection field

LOG_IO Allows you to issue logical input output requests

MOUNT May execute the mount function

NETMBX Allows you to create network connections

OPER Allows you to perform operator functions

PFNMAP Allows you to map to specific physical pages

PHY_IO Allows you to perform physical input output requests

PRMCEB Can create permanent common event clusters

PRMGBL Allows you to create permanent global sections

PRMMBX Allows you to create permanent mailboxes

PSWAPM Allows you to change a processes swap mode

READALL Allows you read access to everything

SECURITY Enables you to perform security related functions

SETPRV Enable all privileges

SHARE Allows you to access devices allocated to other users.
This is used to assign system mailboxes.

SHMEM Enables you to modify objects in shared memory

SYSGBL Allows you to create system wide permanent global
sections

SYSLCK Allows you to lock system wide resources

SYSNAM Allows you to insert in system logical names in the
names table.

SYSPRV If a process holds this privilege then it is the same as
a process holding the system user identification code.

TMPMBX Allows you create temporary mailboxes

VOLPRO Enables you to override volume protection

WORLD When this is set you can affect other processes in the
world

-- snip --

You will be able to see which privileges your user account has when you run
the command shown above on your target host's box. A typical normal-user
with no superuser rights will have the Process Privileges NETMBX and TMPMBX
which will allow the user to make network connections and to make a mailbox.
This is very basic privileges on a system, but these are the most common
Process Privileges that you will find of normal "bottom-range" users.
However, more privileges are needed in order to explore the box further.
A thing I have done a number of times, without actually realising before
hand, is gained a SYSTEM account from what I just presumed was a normal user.
The best way to check to see if you have full privileges on the system is
to type the following command.

$ set proc/priv=all

If there is no error message you have found yourself a SYSTEM account, which
is basically a SuperUser account which will let you add users, read files,
change necessary data etc.

--> Expired User Exploit

The following exploit is basically an expired user exploit which was
documented as being found by a guy called Hellmaster. I did a little
experimentation with this bug and I found that it had a high success rate
on expired accounts on VMS 6.2 and under platforms. This bug is very useful
if you have a lot of information about your target system. For example, if
your target is running the finger daemon you could easily guess login names
of users etc. if you knew the generic breakdown of the usernames. To
demonstrate this I will show you a simple way to gain information about the
structures of usernames by using a username structure I found at a big .edu
a while ago.

The .edu used a system of both letters and numbers for usernames, depending
on what grade you were in college and what your name was. For example, if
you were a college freshman and your name was Mike Fisher than your login
would be something like..

mkr121

mk == The first letters of your names.
r == The Year eg. 1998 (previous letters indicate previous years)
121 == Some numeric catergorisation

Now, in order to exploit the expired user exploit you must find old users to
the system whose accounts have expired but have not been deleted. College's
are great for helping you exploit this bug. All you need to do is go through
a student directory of email addresses/homepages and look for old accounts.
This is simple and can soon result in you having 2-3 hacked expired accounts
for further exploration. The simple alternative to searching directories etc.
is to use the finger daemon as I suggested above, this is simple once you have
the structures of the usernames broken down you can easily finger users and
look for old Last Login dates.

Once you have a list of usernames with old last login dates, or usernames
that you feel are expired then telnet to the target host entering the username
and the password "temp".

For example..

Username: mkr121
Password: temp

You will now gain access to the system, however, the system will prompt you
to enter a new valid password as your old password has expired. So, with a
little background research you can easily gain an account on a system which
contains expired accounts.

On the subject of colleges/universities, it may be handy to remember that
the faculty have accounts on these machines too, and the faculty will
usually be given more user-privileges than student users, so perhaps faculty
users are the users to target.

--> Bypassing Login Sequence

There is an exploit that exists which bypasses the login sequence and drop's
you straight into a DCL prompt. However, I have personally only found this to
work on VMS 4.2 and below.

The exploit works by bypassing the login.com sequence. The normal login
sequence on a VMS box is as follows. After you enter your username and password
the sylogin.com file is executed, sylogin.com is a default login file that
activates when every user logs onto the system, sylogin.com then searches the
users home directory that logged on for his individual login.com file. The
login.com file is basically the file that sets all your shell parameters, such
as terminal settings, executing programs etc.

To execute the exploit you need to know a valid username on the system
(I discussed a few easy ways to gain usernames earlier in this txt).
Once you have your valid username you simply type the following at the login
prompt.

Username: mkr121/nocommand

This will then drop you straight into the DCL command prompt. As you can
see from above, all we did was add the text /nocommand after the login name.
This /nocommand switch is known as a login qualifier. Login qualifiers exist
to enable the user to change certain things about the login sequence. For
example..

Username: mkr121/command=l0g1n.com

The above command would log us into the system using the l0g1n.com file in
your home directory. Please note, this cannot be used to gain access to the
system, this command line is just for use after you have an account on your
system. For example, you could code a little l0g1n.com batch file that when
executed at login will set all the login parameters to your defined preference,
as well as execute all the programs you want executing at login etc.

Other login qualifiers you can use at the login prompt are as follows..

/disk - Changes the default system disk.
/new_password - Asks you to set a new password.

This technique will not however work if the admin set captive flags on.
If captive flags are on then you cannot break out of the preset login batch
file into a DCL prompt. Any sensible admin would set captive flags on, but
often, this parameter is not set to on in a user profile, therefore allowing
people to use the login qualifiers, as shown above.

--> Restricted Accounts

During your time hacking machines running VMS you may find that some
accounts, especially those on .edu subnet's are running a sort of
restricted-shell atmosphere. This is bad for you as you need access
to the DCL system prompt.

However, there is an vulnerability that you can exploit within restricted
shells. When logged into a restricted shell account on a VMS box try
hitting Ctrl-Y to break out of the shell into a prompt such as MAIL> or TELNET>.
Once at one of these prompts, type SPAWN which should then create a DCL
command prompt from which you have gained greater system access and broken
the old restricted login.com.

--> Gaining More Accounts

Once you have SYSTEM access on a box you will want to gain as many accounts
on the box as you can, incase some die, or you lose access. This way you will
have other accounts to fall back on.

The best way to gain other accounts is to first pull off a list of users on
a system. There are literally a lot of ways to do this at the command prompt.
I'll highlight a few ways, take your pick. I would recommend using some kind
of terminal logger while pipeing the information in the user files onto your
terminal. If you are in Linux, use the script command to save the terminal
session to a file (defaulting as typescript), and if you are in windows, use
the telnet.exe logging feature.

$ type sys$system:rightslist.dat

This will pipe the information from sys$system:rightslist.dat onto the
terminal from where you can view and pick out user names etc. The only
problem with using the type command to pipe the user data is that it leaves
garbage characters on your terminal. These garbage characters are however
quite easy to distinguise from the login usernames. When looking at your
screen when displaying rightslist.dat try to ignore the first character of
each username as that is simply garbage. Using your judgement here can
help a lot. This is the quickest method for gaining a copy of
sys$system:rightslist.dat but if you are willing to wait a bit longer there
is a much better way of pipeing the data contained in sys$system:rightslist.dat
onto your terminal.

$ dump sys$system:rightslist.dat

This uses the dump command to dump the contents of sys$system:rightslist.dat
straight onto your terminal without any garbage characters or unneccesary changes
in the content of the file.

Another way of gaining the list of users on a system is to abuse the file
permission of a file that might have been created by the admin. Sometimes, an
admin might use the LIST command to produce a list of users on the system from
the data contained in the sys$system directory. If he has done this the
userlist is then saved to the file SYSUAF.LIS which unless changed by the
admin (and usually not) is set as WORLD readable, in other words, ready for
you to grab. To grab this file to your terminal try the following command
line..

$ type sys$system:sysuaf.lis

If this worked you will now have a list of usernames for that system
flashing by your terminal.

All these techniques result in the same thing, gaining a list of usernames
for users on the system, so once you have your username list its time to go
back to basics and brute force the list to gain more accounts. If you know what
the default account password is then keep trying that against every username.
For example, the default password could be the same as the username, or the
users date of birth, or even a word such as temp or password, its up to you to
do some research.

Look out for Part-III of my Introduction to VMS soon, until then check out
the links below for more fun stuph.

9x -> http://www2.dope.org/9x
b4b0 -> http://www.b4b0.org

gr1p
gr1p@b4b0.org
http://www.b4b0.org/gr1p

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    8 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    11 Files
  • 23
    Apr 23rd
    68 Files
  • 24
    Apr 24th
    23 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close