新手科普 | 如何脱离Metasploit进行渗透测试

栏目: 编程工具 · 发布时间: 7年前

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

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

新手科普 | 如何脱离Metasploit进行渗透测试

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 ...

输出如下图所示:

新手科普 | 如何脱离Metasploit进行渗透测试

还没完,所有的exploit已经存储在kali中,可以通过以下命令将它们复制到当前目录:

searchsploit -m [exploit database id]

例如,要复制图上列表中的第一个exploit:

新手科普 | 如何脱离Metasploit进行渗透测试

如果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。

新手科普 | 如何脱离Metasploit进行渗透测试

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,就不那么容易了。首先我要说的是,这是一个很大的话题。对于这篇不起眼的文章来说,写不下,但我会在这里提供一些入门知识。

首先,如果没有参考传说级的“ FuzzySecurity Windows Privilege Escalation ”文章,就不能说Windows 提权是完整的。这篇文非常好地涵盖了手动Windows 提权的基础知识!

其次,Windows漏洞利用在 Linux 系统上进行编译会很烦人。你可以从Github下载 预编译的漏洞利用程序

再次,同一个repository附带了很好的数据表,可以帮助你确定最有可能有用的漏洞。 你可以 点击这里 下载。

捕获反向shell

好消息是,这个过程并没有在OSCP中发生很大变化。主要区别在于无法使用Meterpreter。解决这个问题只需使用普通的反向shell payload。

最后我检查过,你可以在Metasploit中使用exploit/multi/handler来捕获shell。这比使用普通的旧netcat listener没有太大的优势,因为你无论如何都看不到Meterpreter或Metasploit的其他功能。唯一的例外是如果你使用的exploit payload限制了空间,在这种情况下,你可能需要使用staged payload。

再次提醒:staged payload不适用于netcat!你必须使用Metasploit的exploit/multi/handler模块。

最后,如果你决定使用Netcat方法,只需使用以下语法启动listener即可。

nc -nvlp [端口号]

*参考来源: medium ,FB小编Covfefe编译,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Release It!

Release It!

Michael T. Nygard / Pragmatic Bookshelf / 2007-03-30 / USD 34.95

“Feature complete” is not the same as “production ready.” Whether it’s in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to......一起来看看 《Release It!》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具