mirror of
https://github.com/fdiskyou/Zines.git
synced 2025-03-09 00:00:00 +01:00
95 lines
4 KiB
Text
95 lines
4 KiB
Text
![]() |
% = % = % = % = % = % = % = %
|
||
|
= =
|
||
|
% P h r a c k X V I I %
|
||
|
= =
|
||
|
% = % = % = % = % = % = % = %
|
||
|
|
||
|
Phrack Seventeen
|
||
|
07 April 1988
|
||
|
|
||
|
File 6 of 12 : How to Hack HP2000's
|
||
|
|
||
|
|
||
|
|
||
|
How to Hack an HP 2000
|
||
|
|
||
|
By: ** Grey Sorcerer
|
||
|
|
||
|
Okay, so you've read the HP-2000 basic guides, and know your way around. I
|
||
|
will not repeat all that.
|
||
|
|
||
|
There's two or three things I've found that allow you through HP 2000
|
||
|
security.
|
||
|
|
||
|
1. When you log in, a file called HELLO on the user number Z999 is run. A lot
|
||
|
of time this file is used to deny you access. Want in? Well, it's just a
|
||
|
BASIC program, and an be BREAKed.. but, usually the first thing they do in
|
||
|
that program is turn Breaks (interrupts) off by the BRK(0) function. However,
|
||
|
if you log in like this:
|
||
|
|
||
|
HELLO-D345,PASS (return) (break)
|
||
|
|
||
|
With the break nearly instantly after the return, a lot of time, you'll abort
|
||
|
the HELLO program, and be home free.
|
||
|
|
||
|
2. If you can create a "bad file", which takes some doing, then anytime you
|
||
|
try to CSAVE this file (compile and save), the system will quickly fade into a
|
||
|
hard crash.
|
||
|
|
||
|
3. How to make a bad file and other goodies:
|
||
|
|
||
|
The most deadly hole in security in the HP2000 is the "two terminal" method.
|
||
|
You've got to understand buffers to see how it works. When you OPEN a file,
|
||
|
or ASSIGN it (same thing), you get 256 bytes of the file -- the first 256.
|
||
|
When you need anymore, you get 256 more. They are brought in off the disk in
|
||
|
discrete chunks. They are stored in "buffers."
|
||
|
|
||
|
So. Save a bunch of junk to disk -- programs, data, whatever. Then once your
|
||
|
user number is full, delete all of it. The effect is to leave the raw jumbled
|
||
|
data on disk.
|
||
|
|
||
|
|
||
|
Pick a time when the system is REAL busy, then:
|
||
|
|
||
|
1. Have terminal #1 running a program that looks for a file to exist (with the
|
||
|
ASSIGN) statement as quickly as it can loop. If it finds the file there, it
|
||
|
goes to the very end of the file, and starts reading backwards, record by
|
||
|
record, looking for data. If it finds data, it lets you know, and stops at an
|
||
|
input prompt. It is now running.
|
||
|
|
||
|
2. Have terminal #2 create a really huge data file (OPEN-FILE, 3000) or
|
||
|
however it goes.
|
||
|
|
||
|
What happens is terminal #2's command starts zeroing all the sectors of the
|
||
|
file, starting at file start. But it only gets so far before someone else
|
||
|
needs the processor, and kicks #2 out. The zeroing stops for a sec. Terminal
|
||
|
#1 gets in, finds the file there, and reads to the end. What's there? Old
|
||
|
trash on disk. (Which can be mighty damned interesting by the way -- did you
|
||
|
know HP uses a discrete mark to indicate end-of-buffer? You've just maybe got
|
||
|
yourself a buffer that is as deep as system memory, and if you're clever, you
|
||
|
can peek or poke anywhere in memory. If so, keep it, it is pure gold).
|
||
|
|
||
|
But. Back to the action.
|
||
|
|
||
|
3. Terminal #2 completes the OPEN. He now deletes the file. This leaves
|
||
|
Terminal #1 with a buffer full of data waiting to be dumped back to disk at
|
||
|
that file's old disk location.
|
||
|
|
||
|
4. Terminal #2 now saves a load of program files, as many as are required to
|
||
|
fill up the area that was taken up by the deleted big file.
|
||
|
|
||
|
5. You let Terminal #1 past the input prompt, and it writes its buffer to
|
||
|
disk. This promptly overlays some program just stored there. Result: "bad
|
||
|
program." HPs are designed with a syntax checker and store programs in token;
|
||
|
a "bad program" is one that the tokens are screwed up in. Since HP assumes
|
||
|
that if a program is THERE, it passed the syntax check, it must be okay...
|
||
|
it's in for big problems. For a quick thrill, just CSAVE it.. system tries
|
||
|
to semi-compile bad code, and drops.
|
||
|
|
||
|
Really, the classier thing to do with this is to use the "bottomless buffer"
|
||
|
to look through your system and change what you don't like.. maybe the
|
||
|
password to A000? Write some HP code, look around memory, have a good time.
|
||
|
It can be done.
|
||
|
|
||
|
** Grey Sorcerer
|