[Info-vax] Unexpected DECnet Phase IV functionality with possible captive account implications

Mark Berryman mark at theberrymans.com
Wed May 12 13:35:32 EDT 2021


On 5/11/21 11:34 AM, Simon Clubley wrote:
> On 2021-05-11, Dave Froble <davef at tsoft-inc.com> wrote:
 > .
 > .
> >
> I only found out about the remote batch submission capability after
> reading the FAL specification recently and that's from someone who
> has been actively discussing security issues in VMS for a number of years.
> 
 > .
 > .
 > .

<facepalm>

If this is how you found out about it then I have to assume there are a 
number of manuals you haven't read since remote batch submission is both 
known and documented.

I am also guessing that you have never been responsible for maintaining 
a captive account, or that you've read the various sections in the 
manuals you should read when setting one up.  In particular, you might 
want to pay attention to this line:

"Accounts under which network objects run, for example, require 
temporary access to DCL. "

To test, I set up a captive account WITHOUT any of the protections 
normally associated with a captive account.  For example, with rare 
exception, almost any captive account login procedure is going to have a 
line similar to the following near the top:

$ if f$mode() .nes. "INTERACTIVE" then logout

But let's skip that.  Let's pretend this account was set up by someone 
who didn't read the manuals.

This captive account simply runs a menu.  When the menu exits, the 
account exits.  Fortunately, VMS provides us with a nice menu to test 
with.  Here are the contents of the captive account's login procedure:

$ @ssl111$com:ssl111$cert_tool.com
$ logout

No sanity or security checks of any kind.  Just call the menu and logout 
when done.  Now, let's use DECnet to copy a file into the captive 
account so we can do something nefarious:

$ copy tmp.tmp aldur1"james password"::
%COPY-E-OPENOUT, error opening ALDUR1"james password"::[]tmp.tmp;1 as output
-RMS-E-CRE, ACP file create failed
-SYSTEM-F-LINKEXIT, network partner exited
%COPY-W-NOTCOPIED, USERS:[BERRYMAN]tmp.tmp;1 not copied

Oh dear, the copy failed.  I wonder why.  Let's check the netserver.log 
file to find out.  It turns out that network jobs happen to run the 
captive account's login procedure, which was a menu, which didn't 
understand what FAL was sending, so it retried a few times (several, 
actually) until it gave up and quit.

So let's simulate having some way to bypass that menu.  I've changed the 
login procedure to the following:

$ if f$mode() .eqs. "INTERACTIVE" then @ssl111$com:ssl111$cert_tool.com
$ logout

Same result, the copy fails.  So does $ SUBNET/REMOTE

In practice, Captive accounts will typically have quite a few sanity and 
security checks in them.  F$MODE checks in the login procedure, NOBATCH, 
NONETWORK, etc. in the UAF settings, lack of NETMBX privs, etc.  Any or 
all of these will prevent what you are trying to do.

So, tempest in a teapot anyone?

Mark Berryman









More information about the Info-vax mailing list