skip to main content
10.1145/1315245.1315313acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
Article

The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)

Published:28 October 2007Publication History

ABSTRACT

We present new techniques that allow a return-into-libc attack to be mounted on x86 executables that calls no functions at all. Our attack combines a large number of short instruction sequences to build gadgets that allow arbitrary computation. We show how to discover such instruction sequences by means of static analysis. We make use, in an essential way, of the properties of the x86 instruction set.

References

  1. Aleph One. Smashing the stack for fun and profit. Phrack Magazine, 49(14), Nov. 1996. http://www.phrack.org/archives/49/P49-14.Google ScholarGoogle Scholar
  2. Anonymous. Once upon a free(). Phrack Magazine, 57(9), Aug. 2001. http://www.phrack.org/archives/57/p57-0x09.Google ScholarGoogle Scholar
  3. E. G. Barrantes, D. H. Ackley, S. Forrest, and D. Stefanović. Randomized instruction set emulation. ACM Trans. Info. & System Security, 8(1):3--40, Feb. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. blexim. Basic integer overflows. Phrack Magazine, 60(10), Dec. 2002. http://www.phrack.org/archives/60/p60-0x0a.txt.Google ScholarGoogle Scholar
  5. J. R. Crandall, S. F. Wu, and F. T. Chong. Experiences using Minos as a tool for capturing and analyzing novel worms for unknown vulnerabilities. In K. Julisch and C. Krügel, editors, Detection of Intrusions and Malware, and Vulnerability Assessment, Second International Conference, DIMVA 2005, volume 3548 of LNCS, pages 32--50. Springer-Verlag, July 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. dark spyrit. Win32 buffer overflows (location, exploitation and prevention). Phrack Magazine, 55(15), Sept. 1999. http://www.phrack.org/archives/55/P55-15.Google ScholarGoogle Scholar
  7. M. Garg. About ELF auxiliary vectors, Aug. 2006. Online: manugarg.googlepages.com/aboutelfauxiliaryvectors.Google ScholarGoogle Scholar
  8. M. Garg. Sysenter based system call mechanism in Linux 2.6, July 2006. Online: manugarg.googlepages.com/systemcallinlinux2_6.html.Google ScholarGoogle Scholar
  9. Gera. Insecure programming by example, 2002. Online: community.corest.com/~gera/InsecureProgramming/.Google ScholarGoogle Scholar
  10. gera and riq. Advances in format string exploiting. Phrack Magazine, 59(7), July 2001. http://www.phrack.org/archives/59/p59-0x07.txt.Google ScholarGoogle Scholar
  11. O. Horovitz. Big loop integer protection. Phrack Magazine, 60(9), Dec. 2002. http://www.phrack.org/archives/60/p60-0x09.txt.Google ScholarGoogle Scholar
  12. Intel Corporation. IA-32 Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference, 2001.Google ScholarGoogle Scholar
  13. M. Kaempf. Vudo malloc tricks. Phrack Magazine, 57(8), Aug. 2001. http://www.phrack.org/archives/57/p57-0x08.Google ScholarGoogle Scholar
  14. klog. The frame pointer overwrite. Phrack Magazine, 55(8), Sept. 1999. http://www.phrack.org/archives/55/P55-08.Google ScholarGoogle Scholar
  15. S. Krahmer. x86-64 buffer overflow exploits and the borrowed code chunks exploitation technique, Sept. 2005. Online: http://www.suse.de/~krahmer/no-nx.pdf.Google ScholarGoogle Scholar
  16. C. Kruegel, E. Kirda, D. Mutz, W. Robertson, and G. Vigna. Automating mimicry attacks using static binary analysis. In P. McDaniel, editor, Proc. 14th USENIX Sec. Symp., pages 161--76. USENIX, Aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Litchfield. Defeating the stack based buffer overflow prevention mechanism of Microsoft Windows 2003 Server, Sept. 2003. Online: http://www.ngssoftware.com/papers/defeating-w2k3-stack-protection.pdf.Google ScholarGoogle Scholar
  18. mammon_. The Bastard project: libdisasm. http://bastard.sourceforge.net/libdisasm.html.Google ScholarGoogle Scholar
  19. S. McCamant and G. Morrisett. Evaluating SFI for a CISC architecture. In A. Keromytis, editor, Proc. 15th USENIX Sec. Symp., pages 209--24. USENIX, July 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. McDonald. Defeating Solaris/SPARC non-executable stack protection. Bugtraq, Mar. 1999.Google ScholarGoogle Scholar
  21. Nergal. The advanced return-into-lib(c) exploits (PaX case study). Phrack Magazine, 58(4), Dec. 2001. http://www.phrack.org/archives/58/p58-0x04.Google ScholarGoogle Scholar
  22. PaX Team. PaX non-executable pages design & implementation. pax.grsecurity.net/docs/noexec.txt.Google ScholarGoogle Scholar
  23. M. Riepe. GNU Libelf. http://www.mr511.de/software/.Google ScholarGoogle Scholar
  24. rix. Writing ia32 alphanumeric shellcodes). Phrack Magazine, 57(15), Dec. 2001. http://www.phrack.org/archives/57/p57-0x18.Google ScholarGoogle Scholar
  25. Scut/team teso. Exploiting format string vulnerabilities. http://www.team-teso.net, 2001.Google ScholarGoogle Scholar
  26. H. Shacham. The geometry of innocent flesh on the bone, Oct. 2007. Online: http://hovav.net/dist/geometry.pdf.Google ScholarGoogle Scholar
  27. H. Shacham, M. Page, B. Pfaff, E.-J. Goh, N. Modadugu, and D. Boneh. On the effectiveness of address-space randomization. In B. Pfitzmann and P. Liu, editors, Proc. 11th ACM Conf. Comp. and Comm. Sec. - CCS 2004, pages 298--307. ACM Press, Oct. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Solar Designer. "return-to-libc" attack. Bugtraq, Aug. 1997.Google ScholarGoogle Scholar
  29. Solar Designer. JPEG COM marker processing vulnerability in Netscape browsers, July 2000. Online: www.openwall.com/advisories/OW-002-netscape-jpeg/.Google ScholarGoogle Scholar
  30. N. Sovarel, D. Evans, and N. Paul. Where's the FEEB? the effectiveness of instruction set randomization. In P. McDaniel, editor, Proc. 14th USENIX Sec. Symp., pages 145--60. USENIX, Aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. The Metasploit Project. Shellcode archive. Online: http://www.metasploit.com/shellcode.html.Google ScholarGoogle Scholar
  32. The Santa Cruz Operation. System V Application Binary Interface: Intel386 Architecture Processor Supplement, fourth edition, 1996.Google ScholarGoogle Scholar
  33. D. Wheeler. Secure Programming for Linux and Unix HOWTO. Linux Documentation Project, 2003. Online: http://www.dwheeler.com/secure-programs/.Google ScholarGoogle Scholar
  34. M. Zalewski. Remote vulnerability in SSH daemon CRC32 compression attack detector, Feb. 2001. Online: http://www.bindview.com/Support/RAZOR/Advisories/2001/adv_ssh1crc.cfm.Google ScholarGoogle Scholar

Index Terms

  1. The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      CCS '07: Proceedings of the 14th ACM conference on Computer and communications security
      October 2007
      628 pages
      ISBN:9781595937032
      DOI:10.1145/1315245

      Copyright © 2007 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 28 October 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      CCS '07 Paper Acceptance Rate55of302submissions,18%Overall Acceptance Rate1,261of6,999submissions,18%

      Upcoming Conference

      CCS '24
      ACM SIGSAC Conference on Computer and Communications Security
      October 14 - 18, 2024
      Salt Lake City , UT , USA

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader