Thief is a TSR (Terminate and Stay Resident) utility written in 8086 assembly language that attempts to steal Novell passwords. It originates from a site with consummate hackers and a long, colorful history of mischief: George Washington High School in Denver, Colorado. The school is well endowed with a large variety of IBM microcomputers. Five rooms of about 30 computers each are all tied together on a Novell network. Four of the five rooms solely use boot proms for initializing the workstations.* However, the fifth houses IBM PS/2 model 80s with hard drives. The power users tend to congregate in this area, including the "administrators" with Supervisor equivalence. These machines do not use boot proms. So it was on one of these computers where the "thief" was first discovered, because it takes advantage of weaknesses in the security at the boot phase. Into the regular flow of action in the AUTOEXEC.BAT file, the creator inserted a line that executes the (hidden) program copied onto the boot disk. The TSR remains in the background and the process continues. Visual signs of the break-in are imperceptable. Then, as soon as a program named LOGIN is executed, the thief springs to life and records all the keystroke action into a hidden file on the boot disk. The human thief may then later return to the computer and see what the trap caught. Before a more detailed description of the "metabolism" of the thief, consider now the weaknesses that led to the breach: o a localized boot process, or at least one that is corruptable. o _physical_ access (by the thief) to a sensitive computer. Both are controllable, of course. The boot prom is a solution for the former, and lock and key (on the computer or a room that surrounds it) is for the latter. Now return to the "metabolism". Surprisingly, THIEF uses the same "hook" that the Novell shell does! That is, it captures the centralized portal to DOS, interrupt 21h.* Then, it intercepts all function calls. Specifically, it checks for the EXECute file function call and the "terminate" interrupt. Whenever an EXEC call is made with a filename LOGIN, THIEF springs to life and records keystrokes until the program terminates. This is somewhat sophisticated; however, an even more effective method could be realized: it could simply wait for the specialized Novell function call to log in, and record the calling parameters. Note that the above technique requires the program be loaded _subsequent_ to the Netware shell. By no means are these types of programs new; they have been around as long as password-based program security. Here, however, is an example that is tangible and immediate. Study of it is beneficial because knowledge of Netware security is one thing; knowledge of how to _defeat_ it is quite another! The latter demands cutting-edge sophistication and comprehension. The future will certainly see improved identification techniques, and timeless, devious ingenuity will be there to greet them. Note: THIEF was formerly named GETIT by its creator, who was careless and cocky enough to leave the source code. *"Boot proms", for those not familiar, are accessory chips that reside on network interface cards; they redirect local drive activity to the server during the boot process, thus allowing a workstation to initialize without a (boot) disk. *Interrupt 21h is that used by any program when requesting a DOS function. The Netware shell, of course, intercepts this regular flow. It may pass the information directly along to DOS, or process the call itself.