home *** CD-ROM | disk | FTP | other *** search
- 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
-
-