1
mirror of https://github.com/rapid7/metasploit-payloads synced 2025-03-24 18:16:24 +01:00

Final pass of working stuff for the day

This commit is contained in:
OJ 2020-05-22 15:38:42 +10:00
parent 98598720c9
commit b55b186e79
No known key found for this signature in database
GPG Key ID: 10D3B9A154E6DF61
6 changed files with 59 additions and 41 deletions
c/meterpreter
Makefile
source/extensions/winpmem
workspace
CMakeLists.txt
ext_server_lanattacks
ext_server_winpmem
docker

@ -1,3 +1,4 @@
ID := $(shell id -u)
all: meterpreter
clean: meterpreter-x64-clean
@ -8,10 +9,10 @@ meterpreter: meterpreter-x86 meterpreter-x64
meterpreter-x86: meterpreter-x86-gen meterpreter-x86-build
meterpreter-x86-gen:
cmake -S workspace -B workspace/build/mingw-x86 -Wno-dev -DBUILD_SNIFFER=NO -DBUILD_ARCH=Win32 -DUSE_STATIC_MSVC_RUNTIMES=ON -DCMAKE_TOOLCHAIN_FILE=i686-w64-mingw32.cmake -DDBGTRACE=ON
@cmake -S workspace -B workspace/build/mingw-x86 -Wno-dev -DBUILD_SNIFFER=NO -DBUILD_ARCH=Win32 -DUSE_STATIC_MSVC_RUNTIMES=ON -DCMAKE_TOOLCHAIN_FILE=i686-w64-mingw32.cmake -DDBGTRACE=ON
meterpreter-x86-build:
cmake --build workspace/build/mingw-x86 --config Release
@cmake --build workspace/build/mingw-x86 --config Release
meterpreter-x86-clean:
@rm -rf workspace/build/mingw-x86
@ -19,13 +20,25 @@ meterpreter-x86-clean:
meterpreter-x64: meterpreter-x64-gen meterpreter-x64-build
meterpreter-x64-gen:
cmake -S workspace -B workspace/build/mingw-x64 -Wno-dev -DBUILD_SNIFFER=NO -DBUILD_ARCH=x64 -DUSE_STATIC_MSVC_RUNTIMES=ON -DCMAKE_TOOLCHAIN_FILE=x86_64-w64-mingw32.cmake -DDBGTRACE=ON
@cmake -S workspace -B workspace/build/mingw-x64 -Wno-dev -DBUILD_SNIFFER=NO -DBUILD_ARCH=x64 -DUSE_STATIC_MSVC_RUNTIMES=ON -DCMAKE_TOOLCHAIN_FILE=x86_64-w64-mingw32.cmake -DDBGTRACE=ON
meterpreter-x64-build:
cmake --build workspace/build/mingw-x64 --config Release
@cmake --build workspace/build/mingw-x64 --config Release
meterpreter-x64-clean:
@rm -rf workspace/build/mingw-x64
install:
@cp output/*.dll ../../../metasploit-framework/data/meterpreter
docker:
@docker run -u $(ID):$(ID) -it -v ${PWD}:/meterpreter -w /meterpreter --rm meterpreter-build make
docker-shell:
@docker run -u $(ID):$(ID) -it -v ${PWD}:/meterpreter -w /meterpreter --rm meterpreter-build bash
docker-x64:
@docker run -u $(ID):$(ID) -it -v ${PWD}:/meterpreter -w /meterpreter --rm meterpreter-build make meterpreter-x64
docker-x86:
@docker run -u $(ID):$(ID) -it -v ${PWD}:/meterpreter -w /meterpreter --rm meterpreter-build make meterpreter-x86

@ -781,23 +781,10 @@ int WinPmem::uninstall_driver()
char *store_metadata_(struct PmemMemoryInfo *info)
{
SYSTEM_INFO sys_info;
struct tm newtime;
__time32_t aclock;
char time_buffer[32];
errno_t errNum;
char *arch = NULL;
_time32(&aclock); // Get time in seconds.
_gmtime32_s(&newtime, &aclock); // Convert time to struct tm form.
// Print local time as a string.
errNum = asctime_s(time_buffer, 32, &newtime);
if (errNum)
{
time_buffer[0] = 0;
}
// Get basic architecture information (Note that we always write ELF64 core
// dumps - even on 32 bit platforms).
ZeroMemory(&sys_info, sizeof(sys_info));
@ -823,14 +810,12 @@ char *store_metadata_(struct PmemMemoryInfo *info)
"# PMEM\n"
"---\n" // The start of the YAML file.
"acquisition_tool: 'WinPMEM " PMEM_VERSION "'\n"
"acquisition_timestamp: %s\n"
"CR3: %#llx\n"
"NtBuildNumber: %#llx\n"
"NtBuildNumberAddr: %#llx\n"
"KernBase: %#llx\n"
"Arch: %s\n"
"...\n", // This is the end of a YAML file.
time_buffer,
info->CR3.QuadPart,
info->NtBuildNumber.QuadPart,
info->NtBuildNumberAddr.QuadPart,

@ -6,7 +6,7 @@ if(MSVC)
cmake_policy(SET CMP0091 NEW)
endif()
project(${PROJECT_NAME} C CXX)
project(${PROJECT_NAME} C)
option(DBGTRACE "Enable debug tracing" OFF)
option(DBGTRACE_VERBOSE "Enable verbose debug tracing" OFF)
@ -106,6 +106,7 @@ set(
ext_server_incognito
ext_server_unhook
ext_server_winpmem
ext_server_lanattacks
)
if(MSVC)
@ -113,7 +114,6 @@ if(MSVC)
MET_EXTENSIONS
${MET_EXTENSIONS}
ext_server_extapi
ext_server_lanattacks
ext_server_peinjector
ext_server_mimikatz
ext_server_powershell

@ -1,6 +1,6 @@
set(PROJECT_NAME ext_server_lanattacks)
project(${PROJECT_NAME} C)
project(${PROJECT_NAME} C CXX)
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeListsFuncs.txt)
@ -10,11 +10,13 @@ add_definitions(
-D_UNICODE
)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
endif()
include_directories(../../source/common)
include_directories(../../source/ReflectiveDllInjection/common)
include_directories(../../source/ReflectiveDLLInjection/common)
set(SRC_DIR ../../source/extensions/lanattacks)
file(GLOB SRC_FILES
@ -24,12 +26,21 @@ file(GLOB SRC_FILES
)
add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}.${TARGET_ARCH})
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DEF:\"${MOD_DEF_DIR}/extension.def\"")
set_source_files_properties(${MOD_DEF_DIR}/extension.def PROPERTIES HEADER_FILE_ONLY TRUE)
if(MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DEF:\"${MOD_DEF_DIR}/extension.def\"")
set_source_files_properties(${MOD_DEF_DIR}/extension.def PROPERTIES HEADER_FILE_ONLY TRUE)
endif()
set(LINK_LIBS
netapi32
mpr
ws2_32
)
target_link_libraries(${PROJECT_NAME} ${LINK_LIBS})
if(MSVC)
target_link_options(${PROJECT_NAME} PUBLIC "/ignore:4070")
else()
endif()
# Post processing (required for all Meterpreter DLLs)

@ -11,6 +11,7 @@ add_definitions(
)
if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
endif()
@ -20,7 +21,7 @@ include_directories(../../source/ReflectiveDLLInjection/common)
set(SRC_DIR ../../source/extensions/winpmem)
file(GLOB SRC_FILES
${SRC_DIR}/*.cpp
${SRC_DIR}/extension.def
${MOD_DEF_DIR}/extension.def
)
if(MSVC)
@ -34,10 +35,14 @@ set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}.${T
if(MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/DEF:\"${MOD_DEF_DIR}/extension.def\"")
set_source_files_properties(${MOD_DEF_DIR}/extension.def PROPERTIES HEADER_FILE_ONLY TRUE)
else()
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE "CXX")
endif()
set(LINK_LIBS
netapi32
mpr
ws2_32
)
target_link_libraries(${PROJECT_NAME} ${LINK_LIBS})
if(MSVC)
target_link_options(${PROJECT_NAME} PUBLIC "/ignore:4070")

@ -1,7 +1,7 @@
# To build the dev environment.
# docker build -t rapid7/build:meterpreter .
FROM ubuntu:14.04.5
FROM ubuntu:focal
MAINTAINER Brent Cook <bcook@rapid7.com> (@busterbcook)
ENV DEBIAN_FRONTEND noninteractive
@ -11,15 +11,19 @@ RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get -y install software-properties-common && \
dpkg --add-architecture i386 && \
apt-add-repository ppa:ubuntu-wine && \
apt-get update && \
apt-get -y install \
wine php5-cli python python3 \
bison flex gcc gcc-multilib jam make wget \
ruby rake bundler git \
maven openjdk-7-jdk && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
apt-get update
RUN apt-get -y install bison flex gcc gcc-multilib jam make wget
RUN apt-get -y install ruby rake bundler git
RUN apt-get -y install mingw-w64-x86-64-dev mingw-w64-i686-dev
RUN apt-get -y install g++-mingw-w64-i686 g++-mingw-w64-x86-64
RUN apt-get -y install gcc-mingw-w64-i686 gcc-mingw-w64-x86-64
RUN apt-get -y install cmake
RUN apt-get -y install maven
RUN apt-get -y install wine python python3
RUN apt-get -y install openjdk-8-jdk
RUN apt-get -y install php-cli
#apt-get clean && \
#rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Android NDK
RUN wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2 && \
@ -41,7 +45,7 @@ RUN echo y | /usr/local/android-sdk/tools/android update sdk --filter android-3
# Pre-cache Maven artifacts
RUN git clone https://github.com/rapid7/metasploit-payloads.git && \
cd metasploit-payloads/java && make && cd .. && rm -fr metasploit-payloads
cd metasploit-payloads/java && make ; cd .. && rm -fr metasploit-payloads
ENV ANDROID_HOME /usr/local/android-sdk
ENV ANDROID_NDK_HOME /usr/local/android-ndk