Novell Netware 3.12
Netware reverse engineering - basic
by The Undertacker
(03 September 1997, slightly edited by Fravia)
 Courtesy of Fravia's page of reverse engineering
 Well, this is a welcome new direction for our studies... anybody else 
in order to start a new +HCU project: Netware cracking? 
Here is an excerpt from The Undertacker's accompanying letter:
I will start publishing Netware 3.12 cracks  first, because this is the version 
most widely used by organizations. Then, later, we'll move on to NW4.10 & NW4.11.
Novell Netware 3.12 -- [Session - 1]
Exploring The Password Procetion Scheme
By
The Undertacker -=BANDA=-
Before we start exploring Novell Netware here is a small introduction to  the
Netware Operating System.
Basically Netware supports Print & File sharing facilities. It also uses  the
NCP{IPX} to communicate with the clients. Netware comes with different 
number of client services(25user,50user...Versions). 
If you really want to learn more about this,  check their web site at 
www.novell.com 
Finally Netware has lots of  weak points (Security, Connection control, ....). 
So our aim is to examine those weak points and reverse their code. 
In this session we discuss how Netware security is organized & how to
defeat the Netware security protection schemes. 
The following Algorithm will give you a idea of  how Netware passwords are 
being encripted. 
Thanks go to {LiLiPuT} for the following information.
encryptd(int id[4], char password[])
	char    buffer[32];
	concatenate password[] to itself until its at least 32 bytes long
	put the result in buffer[]
	concatenate id[] to itself until its at least 32 bytes long
	xor the result into buffer[]
	return encrypd(buffer[])
encrypb(char buf[32])
	nibble  output[32];     // 4 bits msb or lsb
	complicated (but easily crackable!) function to buf[]
	for (i=0; i<32; i++) output[i]="S-box[buf[i]];" return output[] /* 16 byte return value */ 
where the S-box[] crunches 8 bit values down to 4 bit values.
So here's how to invert the password hash function, given the 16 byte
hash output[] value:
	for (i=0; i<32; i++) pick any x such that S-box[x]="=" output[i] // crack simple buf[i]="x" apply the reverse of the complicated function to buf[] concatenate id[] to itself..., and xor the result into buf[] use the resulting 32 byte buf[] as the inverse password 
I hope you all understand the above algorithm. If not FORGET about it 
and start working directly in the cracking session. 
To crack the password protection you need to use the server (console screen). 
Netware O/Sr comes with the internal Debugger for Developers. 
We can use this debugger for most of  our cracks. 
Here is the way to get into the debugger.
In the Console Screen,
     Press :- Lt.Shift+Rt.Shift+Alt+Esc - to Enter the debugger.
Now you are at the '#' prompt. 
To get more information about the Debugger type (H,HB,HE,.H).
-= CraCk SeSsion =-
Debugger supports CASE SENSITIVE Api names. 
I will include in the next session the complete Netware Api names. 
Ok Let's ROCK !!!!!
In the Debugger Type,..
#u VerifyPassword       ----> This function checks the user input  
                              password and the encrypted bindery 
                              entry. If it matches it returns
			        EAX=0 else EAX=bla bla bla....
Press the "Enter" key to scroll unassembled listing. Scroll until you see 
the "RET" instruction.
00328F76  C3    RET     ----> Address may change according to your server
			      Configuration.
Now Put a execution Break Point on above address.
B = 00328F76
Leave the Debugger by Pressing "g". Now log into the server from a work 
station using a wrong password. 
BUFFF!!! you land in sidethe debugger. 
Check the EAX value. 
OH! it is not equal to 0. 
That means it is a wrong password. 
If  you would press "g" again you would see a 'Password Incorrect' message 
inside your work  station. 
But if we change the value of the EAX register to 0 "EAX=0" & press "g" 
you can nevertheless log into the server. 
Ok Lets start the Crack.!!!!!
c VerifyPassword = B8 0 0 0 0 C3   --->  This command changes the operand 
                                         and the opcode
u VerifyPassword
Now you can see our changes....
XXXXXXXX B800000000    MOV     EAX,0
XXXXXXXX C3            RET
Clear all break points "bca" & press "g". 
Thats it you have done it. Novell Netware 3.1 reversed!
It doesn't ask for the password here after. 
I have kept this essay very simple because most of our readers are not 
familiar with Netware, nor with the Netware debugger. 
Once you'll have understood the basic, and we'll go along smoothly, 
I will include more complicated stuff in my sessions. 
More Sessions to come shortly. 
 
My thanks to all the friends in the +HCU. 
Happy NetworKing... Se Ya SOOn!!!!.
	   (((((((   ReversE EngineerinG LiveS ForeveR    )))))))
(C) 1997 The Undertacker -=BANDA=- All Rights Reserved.  // SRI LANKA //
(c) The Undertacker, 1997. All rights reversed.
		
You are deep inside fravia's page of reverse
engineering, choose your way out:
homepage 
 links
 anonymity
+ORC 
students' essays 
tools
cocktails 
academy database 
antismut 
search_forms 
mail_fravia
is reverse engineering legal?