Skill Levels in Digital Security
Richard Bejtlich • March 27, 2020
- The novice is a (person) who has no trade ability whatever, or at least none that could not be paralleled by practically any intelligent (person).
- An apprentice has acquired some of the elements of the trade but is not sufficiently skilled to be trusted with any important task.
- The journey(person) is qualified to perform almost any work done by members of the trade.
- An expert can perform quickly and with superior skill any work done by (people) in the trade.
exceed the parameters
Analysts are good because they have good data. An expert with bad data is helpless. An apprentice with good data has a chance to do good work.

Recently, I had the privilege to write a detailed analysis of CVE-2023-34362, which is series of several vulnerabilities in the MOVEit file transfer application that lead to remote code execution. One of the several vulnerabilities involved an ISAPI module - specifically, the MoveITISAPI.dll ISAPI extension. One of the many vulnerabilities that comprised the MOVEit RCE was a header-injection issue, where the ISAPI application parsed headers differently than the .net application. This point is going to dig into how to analyze and reverse engineer an ISAPI-based service! This wasn’t the first time in the recent past I’d had to work on something written as an ISAPI module, and each time I feel like I have to start over and remember how it’s supposed to work. This time, I thought I’d combine my hastily-scrawled notes with some Googling, and try to write something that I (and others) can use in the future. As such, this will be a quick intro to ISAPI applications from the angle that matters to me - how to reverse engineer and debug them! I want to preface this with: I’m not a Windows developer, and I’ve never run an IIS server on purpose. That means that I am approaching this with brute-force ignorance! I don’t have a lot of background context nor do I know the correct terminology for a lot of this stuff. Instead, I’m going to treat these are typical DLLs from typical applications, and approach them as such.