欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何脱离Metasploit进行渗透测试

来源:本站整理 作者:佚名 时间:2018-09-11 TAG: 我要投稿

“努力!”是个传统美德,也一直是我们生活的口号,不过大多数人显然没有真正理解它的含义,他们十有八九只是在即时聊天时把努力挂在嘴边,这显得低幼且毫无帮助。同样的,如果不使用Metasploit我们将如何进行渗透测试?我也可以说“努力!”。然后用一个虚情假意的熊猫表情包结束这篇文章,但是我不会那么做。在这篇文章中,我会分享一些(可能)有帮助的,可操作的建议。如果你是个新手或正在为OSCP认证而学习,那么这篇文章了解一下。

Metasploit以及其他类似工具在(不)著名的OSCP认证中受到严格限制。其背后有一个很好的理由:这样可以迫使学习者从实际上了解漏洞利用是如何运作的。准备的时候觉得这样很糟糕,但是最后会发现自己会的更多了,这也应该是你准备OSCP认证的目的,不是吗?为了摆脱对Metasploit的依赖,我们需要替代方案并更深入地理解一些关键概念。
为什么用Metasploit
在搞清楚如何才能不用Metasploit之前,得先搞清楚为什么要用它。在OSCP lab的情况下,用Metasploit主要是以下用途:
找到exploit
自定义payload
提权
得到反向shell
为了不使用Metasploit,我们就需要找到替代的东西。
寻找exploit
最快捷,最简单的方法是使用集成在Kali中的工具searchsploit。用上了这个工具,你会觉得每次敲击键盘都优雅了不少。废话不多说,其实Searchsploit只是在exploit-db数据库中搜索你提供的关键字。它会返回可在Metasploit中使用的或是独立的,用各种语言编写的exploit。
语法很容易记住:
searchsploit 关键词1 关键词2 关键词3 ...
输出如下图所示:

还没完,所有的exploit已经存储在kali中,可以通过以下命令将它们复制到当前目录:
searchsploit -m [exploit database id]
例如,要复制图上列表中的第一个exploit:

如果searchsploit中无法找到任何鲜美的exploit,请尝试Google。 如果Google也没有,那么可能还不是一个公开的exploit。此时你就要“努力!”了。
虚情假意的熊猫表情包.gif
自定义payload
如果你对Metasploit很熟练,那么你可能已经熟悉了payload的概念。使用Metasploit模块时设置的payload会定义exploit在成功利用后尝试的实际操作。通常,都是打开Meterpreter会话或反向shell,以便可以控制目标机器。
在Metasploit中选择payload时,就相当于在漏洞利用代码中手动替换payload.因此,要在此处替换Metasploit,我们需要做的就是手动替换payload。 这通常意味着我们需要生成一些shellcode。怎么做?继续往下读!
Msfvenom
谢天谢地,Msfvenom被允许用于OSCP认证。我们可以使用它来生成自定义payload,然后将其用于我们的exploit。需要注意的是:如果你正在进行OSCP认证,请坚持使用标准的反向shell payload,而不是Meterpreter。在OSCP认证中禁止使用Meterpreter。
创建shellcode的基本语法如下:
msfvenom -p [payload] -f [格式] LHOST=[你的ip] LPORT=[你的监听端口]
一旦获得了shellcode,我们只需将其复制-粘贴到漏洞利用代码中,以替换exploit中的当前payload。
例如,如果我们正在处理打开calc.exe(Windows漏洞中常见的PoC)的缓冲区溢出漏洞exploit,那就要编辑该漏洞的代码,用msfvenom生成的shellcode替换当前的calc.exe shellcode。
下图为msfvenom的实例。在这个例子中,我使用的是一个unstaged的TCP反向shell,LHOST设置为1.2.3.4,LPORT设置为1234。

Staged和Unstaged Payload
你之前可能没有注意到,使用的大多数payload都有一个非常相似的双胞胎。例如,请注意“windows/shell_reverse_tcp”和“windows/shell/reverse_tcp”之间的细微差别。第一个是Unstaged的,而第二个是Staged的。 你会看到与许多其他payload相同的命名约定。
Staged和Unstaged有什么区别?如果使用Unstaged的payload,则会在一次命中后发送整个payload并在目标计算机上执行。这意味着你可以使用简单的netcat listener捕获shell,如果你用的是Staged payload,则需要使用Metasploit multi handler来捕获shell(顺便说一下,这在考试中是允许的!)。如果你尝试使用netcat listener来捕获shell,则会在建立连接后立即结束。staged payload初始是较小的payload,然后会从主机上的Metasploit handler下载完整payload。如果你没有足够的空间来利用,那么它们就很棒。最后,你应该用哪个?随你便。在缓冲区溢出的蜜汁世界中,有时一个会有用,而另一个则不会,所以最好同时拥有两个!
其他MSFVenom选项
还有很多其他的选择供你深入研究,但它们超出了本文的范围,这里有一些你可能会使用的最常见的清单,但尚未涵盖所有:
-e 允许你选择编码,其中最常见的是x86\shikata_ga_nai。这对于避免特殊符号或绕过杀毒软件非常有用……虽然对后者已经不太管用了。
-b 允许你设置去除的字符。特定漏洞利用的指定字符通常在公共利用代码中公开。
–lists(两个破折号) 将列出payload和格式,例如,如果要查看所有可能的payload的列表,可以运行msfvenom –list payloads
提权
有时,使用Metasploit进行提权就像1,2,get_system一样简单。不幸的是,如果没有Metasploit,就不那么容易了。首先我要说的是,这是一个很大的话题。对于这篇不起眼的文章来说,写不下,但我会在这里提供一些入门知识。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载