使用RubyMine搭建metasploit-framework远程开发调试环境

使用RubyMine搭建metasploit-framework远程开发调试环境

考虑到很多人都是在远程主机或者虚拟机Linux环境下使用msf进行安全测试或者模块开发,因此搭建一套msf远程开发调试环境就变得十分有必要。

环境准备

  1. 运行Linux+msf的远程主机
  2. 装有RubyMine的MacOS或者Windows机器

准备IDE

在远程主机上clone一份metasploit-framework代码,用来在本地做开发,不建议直接使用/opt/metasploit-framework目录下的模块代码。
具体可参考 https://github.com/rapid7/metasploit-framework/wiki/Setting-Up-a-Metasploit-Development-Environment

RubyMine配置远程SDK

在RubyMine的Preferences => Ruby SDK and Gems下添加远程SDK。注意Ruby路径要设置为metasploit-framework安装目录下的ruby,例如:

/opt/metasploit-framework/embedded/bin/ruby

同步代码

RubyMine提供很方便的文件同步功能,可以快速的将修改完的文件同步的远程主机。

  1. 在Tools => Deployment => Configuration里添加远程主机为SFTP主机。在Mappings选项卡里配置目录映射关系。
  2. 选择Tools => Deployment => Browse Remote Host,IDE会打开远程主机文件浏览功能,选择之前git下来的metasploit-framework目录,将/lib、和/modules目录下载到本地,如下图:


    截屏2020-03-30下午4.49.06.png

设置依赖搜索路径

为了能使RubyMine正确解析依赖文件,如msf/core等,需要将lib目录设置为Load Path Root。
通过右击lib目录,选择Mark Directory as => Load Path Root,这样RubyMine可以正确解析依赖文件。

安装调整工具pry-byebug

使用metasploit-framework目录下的gem下载pry-byebug

/opt/metasploit-framework/embedded/bin/gem install pry-byebug

开始调试

测试msf/core提供的函数

在RubyMine的Project下创建Test文件夹,并通过Mark Directory as标记为Test Sources Root,如下图:


截屏2020-03-30下午5.07.31.png

在开始测试msf框架提供的函数之前,需要将lib目录添加到环境变量LOAD_PATH中。如下示例代码。将代码拷贝到test.rb中运行。

lib = File.expand_path("../../lib", __FILE__) # 向LOAD_PATH中添加lib目录
$:.unshift(lib)

require 'msf/core'

class Test < Msf::Exploit::Remote
  def initialize
    super(
        'Name' => 'My custom TCP scan',
        'Version'        => '$Revision: 1 $',
        'Description'    => 'My quick scanner',
        'Author'         => 'Your name here',
        'License'        => MSF_LICENSE
    )
  end
  def hello
    shellcode = rand_text_alpha_upper(10) //msf框架提供的函数
    puts shellcode
  end
end

t = Test.new
t.hello

使用pry-byebug调试module

参考如下代码: simple_tcp.rb。

require 'msf/core'
require 'byebug'  # 加载调试工具
class MetasploitModule < Msf::Auxiliary
  include Msf::Exploit::Remote::Tcp
  include Msf::Auxiliary::Scanner

  def initialize
    super(
        'Name' => 'My custom TCP scan',
        'Version'        => '$Revision: 1 $',
        'Description'    => 'My quick scanner',
        'Author'         => 'Your name here',
        'License'        => MSF_LICENSE
  )
  register_options(
      [
          Opt::RPORT(12345)
      ], self.class)
end

  def run_host(ip)
    connect()
    greeting = "HELLO SERVER"
    sock.puts(greeting)
    data = sock.recv(1024)

    byebug # 在此处开始调试
    print_status("Received: #{data} from #{ip}")
    disconnect()
  end
end

将该代码同步到远程主机后,在将该module拷贝到metasploit-framework modules目录下。运行msfconsole并use该module。

cp simple_tcp.rb /opt/metasploit-framework/embedded/framework/modules/auxiliary/scanner/

在另一个终端里运行nc监听端口

nc -l 12345

运行该module,效果如下图,程序会自动在byebug后自动停止,可使用调试命令查看各类变量信息。


截屏2020-03-30下午4.06.16.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容