我在我的 i386 笔记本电脑上运行 Arch Linux。
我从 AUR 全新安装了 ruby1.9 和 metasploit,现在遇到了一些奇怪的事情。
首先,它在启动 msfconsole 时不会加载任何模块。虽然loadpath /usr/share/metasploit/modules
可以,但我仍然想知道它为什么不是自动的。
第二件事是,它无法与数据库正常配合使用。我已经安装了 PostgreSQL,启动了它,创建了一个超级用户角色和“msf”数据库。db_connect <username>@msf
运行正常,db_status
输出为[*] postgresql connected to msf
。但是,db_rebuild_cache
或任何其他与数据库相关的命令都会输出“数据库未连接”或类似消息。这个问题阻止我进一步使用 Metasploit。
我花了很大的功夫在 Google 上搜索,但找不到任何可以解决这个问题的方法。db.rb 文件中有以下代码:
def cmd_db_rebuild_cache
unless framework.db.active
print_error("The database is not connected")
return
end
和这个:
def cmd_db_status(*args)
return if not db_check_driver
if ::ActiveRecord::Base.connected?
.......
print_status("#{framework.db.driver} connected to #{cdb}"
因此,事实证明该连接确实存在,但它有点......不活跃。
任何关于此问题方面的帮助都将非常感激。
答案1
尝试在启动时连接数据库。查看此博客 [http://www.darkoperator.com/installing-metasploit-in-ubunt/]关于在 Ubuntu 上设置 Metasploit 的帖子,但它在很多方面应该与 Arch 非常相似。特别是将以下内容放在主目录的 ~/.msf4/database.yml 下:
production:
adapter: postgresql
database: msf
username: msf
password:
host: 127.0.0.1
port: 5432
pool: 75
timeout: 5
显然,更改密码、数据库和用户名以适合您的设置。这应该使得数据库在 msfconsole 启动时加载。
这应该确保调用正确的函数来使缓存和一切正常工作。
答案2
尝试运行msf更新从 git 更新到最新的 metasploit 版本