Skip to content
This repository has been archived by the owner on Dec 5, 2019. It is now read-only.

Latest commit

 

History

History
54 lines (46 loc) · 3.04 KB

在metasploit如何使用日志.md

File metadata and controls

54 lines (46 loc) · 3.04 KB

在metasploit如何使用日志

通常,如果Metasploit中的一些东西触发错误,那么会有一个回溯或者至少一个简短的信息来解释问题所在。大多数时候,这没有什么不妥。但有时候,如果你想报告这个问题,你可能会失去这些信息,这会使得你的bug报告信息量减少,而且这个问题可能需要更长时间才能解决。这就是为什么在很多情况下log文件是非常有用的。在本文档中,我们将解释如何正确利用这一点。

基本例子

作为用户,您应该知道所有记录的错误都保存在名为framework.log的文件中。 保存路径在Msf::Config.log_directory中定义,这意味着在msfconsole中,可以切换到irb并找出它的位置

msf > irb
[*] Starting IRB shell...

>> Msf::Config.log_directory
=> "/Users/test/.msf4/logs"

在默认情况下 log的等级为0.最少的信息级别.但是当然,你可以设置数据存储选项来更改此设置,就像

msf > setg LogLevel 3
LogLevel => 3
msf >

log等级

log/rex/constants.rb有4个不同的log等级定义

Log Level 描述
LEV_0 (Default) 如果没有指定时的默认日志级别,当启用日志记录时应始终显示日志消息时使用它.除了必要的信息记录和错误/警告记录之外,在这个级别上应该发生很少的日志消息。不建议在零级日志记录进行调试。
LEV_1 (Extra) 当需要额外的信息来理解错误或者警告信息的原因,或者得到调试信息,这些信息可能会提供关于发生某些事情的线索时,应该使用这个日志级别。这个日志级别只有在信息可以用来理解基本级别的行为时才能使用。这个日志级别不应该以详尽的冗长的方式使用。
LEV_2 (Verbose) 当需要详细信息来分析框架的行为时,应使用此日志级别。这应该是不属于LEV_0或LEV_1的所有详细信息的默认日志级别。如果您不确定,建议您默认使用此日志级别。
LEV_3 (Insanity) 这个日志级别应该包含关于框架行为的非常详细的信息,比如关于某些阶段的变量状态的详细信息,包括但不限于循环迭代,函数调用等等。这个日志级别很少会显示,但是当它提供的信息应该可以很容易地分析任何问题。
出于调试的目的,最好打开最高级别的日志记录

logging api

主要有5种你将会很可能经常使用的log方法.他们都有完全相同的参数.让我们使用其中一个日志记录方法来解释这些参数是干什么的

def elog(msg, src = 'core', level = 0, from = caller)
  • msg: 你想要记录的信息
  • src: 这个错误的来源(默认core,来自metasploit core)
  • level: 这个日志的记录
  • from:当前执行堆栈 caller是Kernel的一个方法
Method Purpose
dlog() LOG_DEBUG
elog() LOG_ERROR
wlog() LOG_WARN
ilog() LOG_INFO
rlog() LOG_RAW

代码例子

elog("The sky has fallen")