Recon-ng 5.x 版本更新与使用指南
Recon-ng 在2019年6月进行了重大更新,从4.9.6版本升级到5.0.0。本文旨在通过提供常见命令的速查表和一些旧语法到新语法的映射,帮助用户适应这一变化。
如果你和我一样,可能会认为4.x版本的知识能帮助你快速上手5.x版本。但这是错误的。相反,如果你将Recon-ng 5.x视为一个全新的工具,你会更容易适应。忘记4.x版本的知识吧。
访问GitHub上的Recon-ng wiki。阅读整个“入门”部分,并可能加入末尾提到的Slack工作区。阅读整个“功能”部分。“故障排除”部分也很有帮助且非常简短。“视频”部分的“Recon-ng v5介绍”屏幕录像也值得花时间观看。开始时慢慢来,并为自己做笔记。
Recon-ng 5.x的主要变化包括:
- 从BitBucket迁移到GitHub
- 更新到Python 3(现在最低要求是Python 3.6)
- 将模块移动到单独管理的“市场”
- 修改了一些命令的语法
手动向数据库添加种子数据现在通过“db insert [your_item_type]”完成,而不是“add [your_item_type]” 上下文必须明确说明:“modules search …”而不是“search …”,“options set …”而不是“set …” 所有内容都区分大小写且为小写,除了选项名称(全局和每个模块)必须为大写。
工具的实际使用没有太大变化,但初始任务足够不同,以至于我感到完全迷失。如果你有脚本或rc文件,这些也需要更新以使用新语法。
上述“主要差异”中的第一个很容易:项目现在在GitHub上,而不是BitBucket。如果你访问旧的BitBucket站点,你会得到新的URL:https://github.com/lanmaster53/recon-ng
更新到Python 3甚至更不需要调整,因为它对你使用工具的方式没有影响。除非你正在开发Recon-ng模块,否则你可以忽略这个架构变化。
将所有模块移动到“市场”允许模块与Recon-ng框架本身分开创建和维护。这带来了两个巨大且直接的好处。首先,它清晰地划分了框架的责任和任何给定模块处理的内容。其次,它允许模块独立于框架更新,这意味着模块更新不需要像过去有时那样具有破坏性。你可以从Recon-ng wiki了解更多关于市场如何工作的信息。
作为Recon-ng用户,你只需要知道市场存在,并且必须从那里“安装”模块才能使用它们。如果你在初始设置时这样做,你可以(几乎)忘记这种分离。
然而,本文的主要点是关于适应新命令语法。下面的部分提供了新安装的建议顺序,然后是一个速查表,供你在实际工作中使用Recon-ng时参考。
设置
克隆仓库,安装框架依赖,安装市场模块的三个额外依赖,启动框架,安装市场模块,然后添加你自己的API密钥。完成这些步骤后,你将拥有一个功能正常的Recon-ng安装,准备使用。
|
|
首次启动
设置完成后,启动Recon-ng到一个我们称为“example”的新工作区,安装模块,然后添加你的API密钥。安装每个市场模块比选择单个模块并逐个安装更简单,但你可以任选一种方式。
下面的屏幕截图显示了首次启动Recon-ng到新工作区(完成上述安装任务后)并完成所有框架设置任务,使其准备就绪。
|
|
注意,预期的密钥名称列表直到你安装模块后才会填充。如果你在安装任何东西之前运行“keys list”,你将得不到输出。你仍然可以添加密钥,只是添加时必须知道每个密钥的正确名称。
还要注意,如果你在添加密钥时拼错了名称,框架会接受你输入的内容。这是框架更好地处理新API密钥的一种方式,但副作用是,如果你在添加密钥时打错了字,你不会得到错误,但使用新密钥的模块在运行时将失败。那时你会得到一个清晰的错误消息,所以很容易恢复,但值得知道这里没有对密钥名称的验证。
基本用法
接下来,我们将查看全局选项,添加一些种子数据,并开始我们的侦察项目。
首先,查看全局选项以了解它们是什么。然后我们将将默认超时更改为15秒,只是为了看看如何设置这些。
|
|
所有选项的名称(全局和每个模块)都是大写的。如果你尝试用小写设置它们,将会失败。但是!标签补丁有效且不区分大小写。如果你输入options set time<tab>
,框架会自动补全为options set TIMEOUT
。
添加种子数据
|
|
让Recon-ng告诉你替代语法,然后使用它:
|
|
加载并运行模块
运行模块
设置模块选项
在模块上下文中,“info”命令告诉你模块从哪里获取其种子(或“源”)数据,并告诉你如何修改它。大多数模块默认从模块全名中第一个单词的表中读取。例如,模块“domains-hosts/hackertarget”将从已经在“domains”表中的内容开始。
模块“info”
Recon-ng 5.x 速查表
一旦你阅读了Recon-ng wiki,并对其组织方式感到舒适,这个速查表可能是一个有用的语法和工作流程提醒。
https://www.blackhillsinfosec.com/wp-content/uploads/2019/11/recon-ng-5.x-cheat-sheet-Sheet1-1.pdf
下一步
现在你已经看到了如何安装Recon-ng 5.x,如何查看可用的模块,如何自定义它们的行为,以及如何运行它们,你应该准备好开始一个侦察项目。开始时将速查表放在手边,这样你就不会在语法问题上卡住。更好的是——在过程中为自己制作一个只包含你需要的内容的速查表。
一旦你有了适合你需求的工作流程(创建工作区,添加种子数据,以某种顺序运行模块),下一步逻辑上是使用资源文件为你自动化所有内容。
资源文件是一个包含Recon-ng命令的文本文件,每行一个命令。框架将运行它们,就像你手动输入它们一样。“script record”命令允许你将操作记录到这些资源文件之一,然后“script execute”(或启动框架时命令行上的“-r”参数)将为你运行它。你也可以通过直接输入手动制作文件。
如果你需要在使用Recon-ng时保持操作的精确记录,“spool”命令将做到这一点。
如果你需要在工作时定期对工作区进行快照,请查看“snapshots”命令。
经过几次练习运行,这一切都将变得自然而然。一旦你花时间制作适合你流程的资源文件,Recon-ng将成为一个美妙的助手,在你处理其他事情时为你收集开源信息。