From 1a187c00aa10fa55753950f8c58d91bf0cb08a96 Mon Sep 17 00:00:00 2001 From: James Lee Date: Fri, 27 Jan 2012 17:13:46 -0700 Subject: [PATCH 1/3] Add a platform-independent stat struct This should help with various issues on linux --- .../source/extensions/stdapi/server/fs/dir.c | 4 +-- .../source/extensions/stdapi/server/fs/file.c | 4 +-- .../source/extensions/stdapi/server/fs/fs.h | 29 +++++++++++++++++++ .../extensions/stdapi/server/fs/fs_util.c | 29 ++++++++++++++++++- 4 files changed, 61 insertions(+), 5 deletions(-) diff --git a/external/source/meterpreter/source/extensions/stdapi/server/fs/dir.c b/external/source/meterpreter/source/extensions/stdapi/server/fs/dir.c index a951fe6b44..b27829e50f 100644 --- a/external/source/meterpreter/source/extensions/stdapi/server/fs/dir.c +++ b/external/source/meterpreter/source/extensions/stdapi/server/fs/dir.c @@ -21,7 +21,7 @@ DWORD request_fs_ls(Remote *remote, Packet *packet) LPSTR expanded = NULL, tempFile = NULL; DWORD tempFileSize = 0; LPSTR baseDirectory = NULL; - struct stat buf; + struct meterp_stat buf; directory = packet_get_tlv_value_string(packet, TLV_TYPE_DIRECTORY_PATH); @@ -150,7 +150,7 @@ DWORD request_fs_ls(Remote *remote, Packet *packet) tempFile); // Stat the file to get more information about it. - if (stat(tempFile, &buf) >= 0) + if (fs_stat(tempFile, &buf) >= 0) packet_add_tlv_raw(response, TLV_TYPE_STAT_BUF, &buf, sizeof(buf)); diff --git a/external/source/meterpreter/source/extensions/stdapi/server/fs/file.c b/external/source/meterpreter/source/extensions/stdapi/server/fs/file.c index 1efd25f7a7..121bc06345 100644 --- a/external/source/meterpreter/source/extensions/stdapi/server/fs/file.c +++ b/external/source/meterpreter/source/extensions/stdapi/server/fs/file.c @@ -257,7 +257,7 @@ DWORD request_fs_separator(Remote *remote, Packet *packet) DWORD request_fs_stat(Remote *remote, Packet *packet) { Packet *response = packet_create_response(packet); - struct stat buf; + struct meterp_stat buf; LPCSTR filePath; LPSTR expanded = NULL; DWORD result = ERROR_SUCCESS; @@ -273,7 +273,7 @@ DWORD request_fs_stat(Remote *remote, Packet *packet) { // Stat the file using the Microsoft stat wrapper so that we don't have to // do translations - if (stat(expanded, &buf) < 0) + if (fs_stat(expanded, &buf) < 0) result = GetLastError(); else packet_add_tlv_raw(response, TLV_TYPE_STAT_BUF, &buf, diff --git a/external/source/meterpreter/source/extensions/stdapi/server/fs/fs.h b/external/source/meterpreter/source/extensions/stdapi/server/fs/fs.h index 210d3e9a3b..9de024c660 100644 --- a/external/source/meterpreter/source/extensions/stdapi/server/fs/fs.h +++ b/external/source/meterpreter/source/extensions/stdapi/server/fs/fs.h @@ -24,4 +24,33 @@ DWORD request_fs_sha1(Remote *remote, Packet *packet); */ DWORD request_fs_file_channel_open(Remote *remote, Packet *packet); + + +/* + * Stat structures on Windows and various Unixes are all slightly different. + * Use this as a means of standardization so the client has some hope of + * understanding what the stat'd file really is. + */ +struct meterp_stat { + unsigned int st_dev; + unsigned short st_ino; + unsigned short st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; + unsigned short pad; + unsigned int st_rdev; + unsigned int st_size; + /* + * These are always 64-bits on Windows and usually 32-bits on Linux. Force + * them to be the same size everywhere. + */ + unsigned long long st_atime; + unsigned long long st_mtime; + unsigned long long st_ctime; +}; + +int fs_stat(LPCSTR filename, struct meterp_stat *buf); + + #endif diff --git a/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c b/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c index 8a2c2e123f..09c482eb96 100644 --- a/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c +++ b/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c @@ -1,4 +1,5 @@ #include "precomp.h" +#include "fs.h" /* * Returns an expanded file path that must be freed @@ -37,4 +38,30 @@ LPSTR fs_expand_path(LPCSTR regular) strcpy(expandedFilePath, regular); return expandedFilePath; #endif -} \ No newline at end of file +} + +/* + * Fills the platform-independent meterp_stat buf with data from the platform-dependent stat() + */ +int fs_stat(LPCSTR filename, struct meterp_stat *buf) { + struct stat sbuf; + + dprintf("Called fs_stat\n"); + if (stat(filename, &sbuf)) { + buf->st_dev = sbuf.st_dev; + buf->st_ino = sbuf.st_ino; + buf->st_mode = sbuf.st_mode; + buf->st_nlink = sbuf.st_nlink; + buf->st_uid = sbuf.st_uid; + buf->st_gid = sbuf.st_gid; + buf->st_rdev = sbuf.st_rdev; + buf->st_size = sbuf.st_size; + buf->st_atime = (unsigned long long)sbuf.st_atime; + buf->st_mtime = (unsigned long long)sbuf.st_mtime; + buf->st_ctime = (unsigned long long)sbuf.st_ctime; + } else { + return 0; + } + + return -1; +} From e0a312e38dc326e0e3592a09bb606fedd74fb302 Mon Sep 17 00:00:00 2001 From: James Lee Date: Fri, 27 Jan 2012 18:56:01 -0700 Subject: [PATCH 2/3] Get the return values in the right place This should convert stat values to something portable enough to work on POSIX and Windows. Fixes #6294 --- .../source/extensions/stdapi/server/fs/fs_util.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c b/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c index 09c482eb96..355c7da5e7 100644 --- a/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c +++ b/external/source/meterpreter/source/extensions/stdapi/server/fs/fs_util.c @@ -45,9 +45,11 @@ LPSTR fs_expand_path(LPCSTR regular) */ int fs_stat(LPCSTR filename, struct meterp_stat *buf) { struct stat sbuf; + int ret; - dprintf("Called fs_stat\n"); - if (stat(filename, &sbuf)) { + ret = stat(filename, &sbuf); + + if (ret == 0) { buf->st_dev = sbuf.st_dev; buf->st_ino = sbuf.st_ino; buf->st_mode = sbuf.st_mode; @@ -59,9 +61,8 @@ int fs_stat(LPCSTR filename, struct meterp_stat *buf) { buf->st_atime = (unsigned long long)sbuf.st_atime; buf->st_mtime = (unsigned long long)sbuf.st_mtime; buf->st_ctime = (unsigned long long)sbuf.st_ctime; + return 0; } else { - return 0; + return ret; } - - return -1; } From 2182026352d0f28c51e424ed89a1b379e05c94f0 Mon Sep 17 00:00:00 2001 From: James Lee Date: Fri, 27 Jan 2012 18:58:26 -0700 Subject: [PATCH 3/3] Bin for stat fixes --- data/meterpreter/ext_server_stdapi.lso | Bin 205736 -> 206533 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/meterpreter/ext_server_stdapi.lso b/data/meterpreter/ext_server_stdapi.lso index af898edfd213425020ca2f976851c6abfa8881ba..3d1cf9ba1abce11d1cbcf5a3871837584160ffab 100755 GIT binary patch delta 57784 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 F{{Tp<##sOW delta 57279 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 R?PYHeY0k9IiZu8Be*lfAk!1h?