Make the railgun def class names platform specific
parent
feb8d14fe6
commit
ea83cb0bb6
|
@ -7,12 +7,12 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_libc
|
class Def_linux_libc
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'libc.so.6')
|
def self.create_dll(constant_manager, dll_path = 'libc.so.6')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
lib = DLL.new(dll_path, constant_manager)
|
||||||
|
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'calloc',
|
'calloc',
|
||||||
'LPVOID',
|
'LPVOID',
|
||||||
[
|
[
|
||||||
|
@ -22,7 +22,7 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'free',
|
'free',
|
||||||
'VOID',
|
'VOID',
|
||||||
[
|
[
|
||||||
|
@ -31,14 +31,14 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl',
|
'cdecl',
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'getpid',
|
'getpid',
|
||||||
'DWORD',
|
'DWORD',
|
||||||
[],
|
[],
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'inet_ntop',
|
'inet_ntop',
|
||||||
'LPVOID',
|
'LPVOID',
|
||||||
[
|
[
|
||||||
|
@ -50,7 +50,7 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'inet_pton',
|
'inet_pton',
|
||||||
'DWORD',
|
'DWORD',
|
||||||
[
|
[
|
||||||
|
@ -61,14 +61,14 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'malloc',
|
'malloc',
|
||||||
'LPVOID',
|
'LPVOID',
|
||||||
[['SIZE_T', 'size', 'in']],
|
[['SIZE_T', 'size', 'in']],
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'memfrob',
|
'memfrob',
|
||||||
'LPVOID',
|
'LPVOID',
|
||||||
[
|
[
|
||||||
|
@ -78,7 +78,7 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'mmap',
|
'mmap',
|
||||||
'LPVOID',
|
'LPVOID',
|
||||||
[
|
[
|
||||||
|
@ -92,7 +92,7 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'mprotect',
|
'mprotect',
|
||||||
'DWORD',
|
'DWORD',
|
||||||
[
|
[
|
||||||
|
@ -103,7 +103,7 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
dll.add_function(
|
lib.add_function(
|
||||||
'munmap',
|
'munmap',
|
||||||
'DWORD',
|
'DWORD',
|
||||||
[
|
[
|
||||||
|
@ -113,7 +113,17 @@ class Def_libc
|
||||||
nil,
|
nil,
|
||||||
'cdecl'
|
'cdecl'
|
||||||
)
|
)
|
||||||
return dll
|
lib.add_function(
|
||||||
|
'strcat',
|
||||||
|
'LPVOID',
|
||||||
|
[
|
||||||
|
['PCHAR', 'to', 'inout'],
|
||||||
|
['PCHAR', 'from', 'in']
|
||||||
|
],
|
||||||
|
nil,
|
||||||
|
'cdecl'
|
||||||
|
)
|
||||||
|
return lib
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_libc
|
class Def_osx_libc
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'libc.dylib')
|
def self.create_dll(constant_manager, dll_path = 'libc.dylib')
|
||||||
lib = DLL.new(dll_path, constant_manager)
|
lib = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_libobjc
|
class Def_osx_libobjc
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'libobjc.dylib')
|
def self.create_dll(constant_manager, dll_path = 'libobjc.dylib')
|
||||||
lib = DLL.new(dll_path, constant_manager)
|
lib = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_advapi32
|
class Def_windows_advapi32
|
||||||
|
|
||||||
CREDENTIAL = [
|
CREDENTIAL = [
|
||||||
[:Flags, :DWORD],
|
[:Flags, :DWORD],
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_crypt32
|
class Def_windows_crypt32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'crypt32')
|
def self.create_dll(constant_manager, dll_path = 'crypt32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_iphlpapi
|
class Def_windows_iphlpapi
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'iphlpapi')
|
def self.create_dll(constant_manager, dll_path = 'iphlpapi')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_kernel32
|
class Def_windows_kernel32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'kernel32')
|
def self.create_dll(constant_manager, dll_path = 'kernel32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_netapi32
|
class Def_windows_netapi32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'netapi32')
|
def self.create_dll(constant_manager, dll_path = 'netapi32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_ntdll
|
class Def_windows_ntdll
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'ntdll')
|
def self.create_dll(constant_manager, dll_path = 'ntdll')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_psapi
|
class Def_windows_psapi
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'psapi')
|
def self.create_dll(constant_manager, dll_path = 'psapi')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_shell32
|
class Def_windows_shell32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'shell32')
|
def self.create_dll(constant_manager, dll_path = 'shell32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_user32
|
class Def_windows_user32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'user32')
|
def self.create_dll(constant_manager, dll_path = 'user32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_version
|
class Def_windows_version
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'version')
|
def self.create_dll(constant_manager, dll_path = 'version')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_wlanapi
|
class Def_windows_wlanapi
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'wlanapi')
|
def self.create_dll(constant_manager, dll_path = 'wlanapi')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_wldap32
|
class Def_windows_wldap32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'wldap32')
|
def self.create_dll(constant_manager, dll_path = 'wldap32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Stdapi
|
||||||
module Railgun
|
module Railgun
|
||||||
module Def
|
module Def
|
||||||
|
|
||||||
class Def_ws2_32
|
class Def_windows_ws2_32
|
||||||
|
|
||||||
def self.create_dll(constant_manager, dll_path = 'ws2_32')
|
def self.create_dll(constant_manager, dll_path = 'ws2_32')
|
||||||
dll = DLL.new(dll_path, constant_manager)
|
dll = DLL.new(dll_path, constant_manager)
|
||||||
|
|
|
@ -267,7 +267,7 @@ class Railgun
|
||||||
end
|
end
|
||||||
|
|
||||||
require "rex/post/meterpreter/extensions/stdapi/railgun/def/#{client.platform}/def_#{dll_name}"
|
require "rex/post/meterpreter/extensions/stdapi/railgun/def/#{client.platform}/def_#{dll_name}"
|
||||||
dll = Def.const_get('Def_' << dll_name).create_dll(constant_manager).freeze
|
dll = Def.const_get("Def_#{client.platform}_#{dll_name}").create_dll(constant_manager).freeze
|
||||||
|
|
||||||
@@cached_dlls[dll_name] = dll
|
@@cached_dlls[dll_name] = dll
|
||||||
dlls[dll_name] = dll
|
dlls[dll_name] = dll
|
||||||
|
|
Loading…
Reference in New Issue