Creating Arbitrary Shellcode In Unicode Expanded Strings
The paper is intended to be read by the portion of the security community responsible for creating protective mechanisms to guard against “shellcode” type security flaws; the intention is to remove the perception that Unicode buffer overflows are non exploitable and thereby improve the general state of network security. It is often the case that several classes of overflow or format string bug are labelled “denial of service” attacks when in fact it is possible to execute arbitrary code. This paper deals with one of these classes of overflow.
This paper introduces a technique (the “Venetian” exploit) that can be used to permit the execution of a small amount of arbitrary code in a situation where a buffer overflow occurs in a “Unicode” string on the Intel x86 processors. This situation is common in the Windows operating systems but the technique is not operating system specific. how this problem can be overcome, using a technique not dissimilar to the “bridge building” method that can be used to create exploit code using only printable ASCII characters.
Download the paper in PDF format here.