如何脱离Metasploit进行渗透测试

“努力!”是个传统美德,也不停是我们生活的口号,不过大年夜多半人显然没有真正理解它的含义,他们十有八九只是期近时谈天时把努力挂在嘴边,这显得低幼且毫无赞助。同样的,假如不应用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]下一页

首先,假如没有参考传说级的“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 [端口号]

上一页[1] [2]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包