Abstract
Shellcode can be viewed as machine language code that is injected in the form of string input to exploit buffer overflows. It usually contains non-ASCII values because not all machine instructions encode into ASCII values. Many applications allow arbitrary string input, even though only strings containing characters that are ASCII or a subset of ASCII are deemed valid. Thus a common defense against shellcode injection is to discard any string input containing non-ASCII characters. Alphanumeric shellcode helps attackers bypass such character restrictions. It is non-trivial to construct alphanumeric shellcodes by hand and so tools have been created to automate the process. The alphanumeric equivalent, generated by the existing tools, is much larger than the original shellcode. This paper presents two new encoding schemes to reduce the size of the alphanumeric equivalent. A smaller shellcode is better as it can fit into smaller buffers and is even more useful in case an application restricts the input size. Results show that the size reduction of the encoded shellcode is more than 20% for many shellcodes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aleph One. Smashing the stack for fun and profit. Phrack, 49 (1996), http://phrack.org/issues/49/14.html
Rix. Writing IA32 alphanumeric shellcodes. Phrack, 57 (2001), http://phrack.org/issues/57/18.html
Wever, B.J.: Writing IA32 restricted instruction set shellcode decoder loops, http://skypher.com/wiki/index.php?title=Www.edup.tudelft.nl/~bjwever/whitepaper_shellcode.html.php
Shellcodes database, http://shell-storm.org
ALPHA3 - alphanumeric shellcode encoder, https://code.google.com/p/alpha3/
Younan, Y., Philippaerts, P.: Alphanumeric RISC ARM shellcode. Phrack, 66 (2009), http://phrack.org/issues/66/12.html
Younan, Y., Philippaerts, P., Piessens, F., Joosen, W., Lachmund, S.: Filter-resistant code injection on ARM. Journal of Computer Virology and Hacking Techniques 7(3), 173–188 (2011)
Kumar, P., Chowdary, N., Mathuria, A.: Alphanumeric Shellcode Generator for ARM Architecture. In: Gierlichs, B., Guilley, S., Mukhopadhyay, D. (eds.) SPACE 2013. LNCS, vol. 8204, pp. 38–39. Springer, Heidelberg (2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Basu, A., Mathuria, A., Chowdary, N. (2014). Automatic Generation of Compact Alphanumeric Shellcodes for x86. In: Prakash, A., Shyamasundar, R. (eds) Information Systems Security. ICISS 2014. Lecture Notes in Computer Science, vol 8880. Springer, Cham. https://doi.org/10.1007/978-3-319-13841-1_22
Download citation
DOI: https://doi.org/10.1007/978-3-319-13841-1_22
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-13840-4
Online ISBN: 978-3-319-13841-1
eBook Packages: Computer ScienceComputer Science (R0)