Mirror of metasploit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

metasploit-framework.gemspec 8.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. # coding: utf-8
  2. # During build, the Gemfile is temporarily moved and
  3. # we must manually define the project root
  4. if ENV['MSF_ROOT']
  5. lib = File.realpath(File.expand_path('lib', ENV['MSF_ROOT']))
  6. else
  7. # have to use realpath as metasploit-framework is often loaded through a symlink and tools like Coverage and debuggers
  8. # require realpaths.
  9. lib = File.realpath(File.expand_path('../lib', __FILE__))
  10. end
  11. $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
  12. require 'metasploit/framework/version'
  13. require 'metasploit/framework/rails_version_constraint'
  14. require 'msf/util/helper'
  15. Gem::Specification.new do |spec|
  16. spec.name = 'metasploit-framework'
  17. spec.version = Metasploit::Framework::GEM_VERSION
  18. spec.authors = ['Metasploit Hackers']
  19. spec.email = ['msfdev@metasploit.com']
  20. spec.summary = 'metasploit-framework'
  21. spec.description = 'metasploit-framework'
  22. spec.homepage = 'https://www.metasploit.com'
  23. spec.license = 'BSD-3-clause'
  24. # only do a git ls-files if the .git folder exists and we have a git binary in PATH
  25. if File.directory?(File.join(File.dirname(__FILE__), ".git")) && Msf::Util::Helper.which("git")
  26. spec.files = `git ls-files`.split($/).reject { |file|
  27. file =~ /^documentation|^external/
  28. }
  29. end
  30. spec.bindir = '.'
  31. if ENV['CREATE_BINSTUBS']
  32. spec.executables = [
  33. 'msfconsole',
  34. 'msfd',
  35. 'msfrpc',
  36. 'msfrpcd',
  37. 'msfvenom'
  38. ]
  39. end
  40. spec.test_files = spec.files.grep(%r{^spec/})
  41. spec.require_paths = ["lib"]
  42. # Database support
  43. spec.add_runtime_dependency 'activerecord', *Metasploit::Framework::RailsVersionConstraint::RAILS_VERSION
  44. # Need 3+ for ActiveSupport::Concern
  45. spec.add_runtime_dependency 'activesupport', *Metasploit::Framework::RailsVersionConstraint::RAILS_VERSION
  46. # Needed for config.action_view for view plugin compatibility for Pro
  47. spec.add_runtime_dependency 'actionpack', *Metasploit::Framework::RailsVersionConstraint::RAILS_VERSION
  48. # Backports Ruby features across language versions
  49. spec.add_runtime_dependency 'backports'
  50. # Needed for some admin modules (cfme_manageiq_evm_pass_reset.rb)
  51. spec.add_runtime_dependency 'bcrypt'
  52. # Needed for Javascript obfuscation
  53. spec.add_runtime_dependency 'jsobfu'
  54. # Needed for some admin modules (scrutinizer_add_user.rb)
  55. spec.add_runtime_dependency 'json'
  56. # Metasm compiler/decompiler/assembler
  57. spec.add_runtime_dependency 'metasm'
  58. # Metasploit::Concern hooks
  59. spec.add_runtime_dependency 'metasploit-concern'
  60. # Metasploit::Credential database models
  61. spec.add_runtime_dependency 'metasploit-credential'
  62. # Database models shared between framework and Pro.
  63. spec.add_runtime_dependency 'metasploit_data_models'
  64. # Things that would normally be part of the database model, but which
  65. # are needed when there's no database
  66. spec.add_runtime_dependency 'metasploit-model'
  67. # Needed for Meterpreter
  68. spec.add_runtime_dependency 'metasploit-payloads', '1.3.66'
  69. # Needed for the next-generation POSIX Meterpreter
  70. spec.add_runtime_dependency 'metasploit_payloads-mettle', '0.5.12'
  71. # Needed by msfgui and other rpc components
  72. spec.add_runtime_dependency 'msgpack'
  73. # get list of network interfaces, like eth* from OS.
  74. spec.add_runtime_dependency 'network_interface'
  75. # NTLM authentication
  76. spec.add_runtime_dependency 'rubyntlm'
  77. # Needed by anemone crawler
  78. spec.add_runtime_dependency 'nokogiri'
  79. # Needed by db.rb and Msf::Exploit::Capture
  80. spec.add_runtime_dependency 'packetfu'
  81. # For sniffer and raw socket modules
  82. spec.add_runtime_dependency 'pcaprub'
  83. # Used by the Metasploit data model, etc.
  84. # bound to 0.2x for Activerecord 4.2.8 deprecation warnings:
  85. # https://github.com/ged/ruby-pg/commit/c90ac644e861857ae75638eb6954b1cb49617090
  86. spec.add_runtime_dependency 'pg', '~> 0.20'
  87. # Run initializers for metasploit-concern, metasploit-credential, metasploit_data_models Rails::Engines
  88. spec.add_runtime_dependency 'railties'
  89. # required for OS fingerprinting
  90. spec.add_runtime_dependency 'recog'
  91. # required for bitlocker fvek extraction
  92. spec.add_runtime_dependency 'openssl-ccm'
  93. # Needed for documentation generation
  94. spec.add_runtime_dependency 'octokit'
  95. spec.add_runtime_dependency 'redcarpet'
  96. # Needed for Microsoft patch finding tool (msu_finder)
  97. spec.add_runtime_dependency 'patch_finder'
  98. # Required for Metasploit Web Services
  99. spec.add_runtime_dependency 'thin'
  100. spec.add_runtime_dependency 'sinatra'
  101. spec.add_runtime_dependency 'warden'
  102. # Required for JSON-RPC client
  103. spec.add_runtime_dependency 'em-http-request'
  104. # TimeZone info
  105. spec.add_runtime_dependency 'tzinfo-data'
  106. # Gem for dealing with SSHKeys
  107. spec.add_runtime_dependency 'sshkey'
  108. # BitStruct Library used for handling certain Protocol Header/Packet construction
  109. spec.add_runtime_dependency 'bit-struct'
  110. # Library for interpreting Windows error codes and strings
  111. spec.add_runtime_dependency 'windows_error'
  112. # This used to be depended on by nokogiri, depended on by wmap
  113. if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.3.0')
  114. spec.add_runtime_dependency 'xmlrpc'
  115. end
  116. #
  117. # File Parsing Libraries
  118. #
  119. # Needed by auxiliary/gather/http_pdf_authors module
  120. spec.add_runtime_dependency 'pdf-reader'
  121. spec.add_runtime_dependency 'ruby-macho'
  122. #
  123. # Protocol Libraries
  124. #
  125. spec.add_runtime_dependency 'dnsruby'
  126. spec.add_runtime_dependency 'mqtt'
  127. spec.add_runtime_dependency 'net-ssh'
  128. spec.add_runtime_dependency 'ed25519' # Adds ed25519 keys for net-ssh
  129. spec.add_runtime_dependency 'bcrypt_pbkdf'
  130. spec.add_runtime_dependency 'ruby_smb'
  131. #
  132. # REX Libraries
  133. #
  134. # Core of the Ruby Exploitation Library
  135. spec.add_runtime_dependency 'rex-core'
  136. # Text manipulation library for things like generating random string
  137. spec.add_runtime_dependency 'rex-text'
  138. # Library for Generating Randomized strings valid as Identifiers such as variable names
  139. spec.add_runtime_dependency 'rex-random_identifier'
  140. # library for creating Powershell scripts for exploitation purposes
  141. spec.add_runtime_dependency 'rex-powershell'
  142. # Library for processing and creating Zip compatbile archives
  143. spec.add_runtime_dependency 'rex-zip'
  144. # Library for parsing offline Windows Registry files
  145. spec.add_runtime_dependency 'rex-registry'
  146. # Library for parsing Java serialized streams
  147. spec.add_runtime_dependency 'rex-java'
  148. # Library for C-style structs
  149. spec.add_runtime_dependency 'rex-struct2'
  150. # Library which contains architecture specific information such as registers, opcodes,
  151. # and stack manipulation routines.
  152. spec.add_runtime_dependency 'rex-arch'
  153. # Library for working with OLE.
  154. spec.add_runtime_dependency 'rex-ole'
  155. # Library for creating and/or parsing MIME messages.
  156. spec.add_runtime_dependency 'rex-mime'
  157. # Library for Dynamic Multi-byte x86 NOP generation
  158. spec.add_runtime_dependency 'rex-nop'
  159. # Library for parsing and manipulating executable binaries
  160. spec.add_runtime_dependency 'rex-bin_tools'
  161. # Rex Socket Abstraction Layer
  162. spec.add_runtime_dependency 'rex-socket'
  163. # Library for scanning a server's SSL/TLS capabilities
  164. spec.add_runtime_dependency 'rex-sslscan'
  165. # Library and tool for finding ROP gadgets in a supplied binary
  166. spec.add_runtime_dependency 'rex-rop_builder'
  167. # Library for polymorphic encoders; used for payload encoding
  168. spec.add_runtime_dependency 'rex-encoder'
  169. # Library for exploit development helpers
  170. spec.add_runtime_dependency 'rex-exploitation'
  171. # Command line editing, history, and tab completion in msfconsole
  172. spec.add_runtime_dependency 'rb-readline'
  173. # Needed by some modules
  174. spec.add_runtime_dependency 'rubyzip'
  175. # Needed for some post modules
  176. spec.add_runtime_dependency 'sqlite3'
  177. # required for Time::TZInfo in ActiveSupport
  178. spec.add_runtime_dependency 'tzinfo'
  179. # Needed so that disk size output isn't horrible
  180. spec.add_runtime_dependency 'filesize'
  181. # Needed for openvas plugin
  182. spec.add_runtime_dependency 'openvas-omp'
  183. # Needed by metasploit nessus bridge
  184. spec.add_runtime_dependency 'nessus_rest'
  185. # Nexpose Gem
  186. spec.add_runtime_dependency 'nexpose'
  187. # Needed for NDMP sockets
  188. spec.add_runtime_dependency 'xdr'
  189. # Needed for ::Msf...CertProvider
  190. spec.add_runtime_dependency 'faker'
  191. # Pinned as a dependency of i18n to the last working version
  192. spec.add_runtime_dependency 'concurrent-ruby','1.0.5'
  193. end