Metasploit渗透测试指南学习笔记

第一章 渗透测试技术基础

渗透测试执行标准 http://www.pentest-standard.org/index.php/Main_Page
技术指南 http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines

1.1 PTES中的渗透测试阶段

1.1.1 前期交互阶段
通常是你与客户组织进行讨论,来确定渗透测试的范围和目标。
1.1.2 情报搜集阶段
采用各种方法搜集要攻击客户组值的所有信息。
提示,可以使用一个与你要发起的主要攻击行为处于完全不同范围的ip地址,来进行非常“喧闹”的扫描,这样可以帮助你确定客户组织是否能够很好的检测和响应你 所使用的攻击工具和技术。
1.1.3 威胁建模阶段
使用搜集到的信息标识可能存在的安全漏洞和弱点。
1.1.4 漏洞分析阶段
确定攻击方法后考虑如何获得访问权。
1.1.5 渗透攻击阶段
渗透成功。
1.1.6 后渗透攻击阶段
确定各种不同系统的用途,在这些难以处理的的场景中寻找可用信息,激发灵感,并达成你所设计的攻击目的。
1.1.7 报告阶段
报告是渗透测试过程中最重要的因素,使用报告文档来交流你在渗透测试过程中做了哪些,如何做的,一级最为重要的客户组织如何修复你所发现的安全漏洞和弱点。报告应该分为摘要。过程展示和级数发现这及格部分,技术发现这及格部分。

1.2 渗透测试类型

1.2.1 白盒测试
有时也被称为“白帽测试“,是指渗透测试这在拥有客户组织所有知识的情况下所进行的测试;
1.2.2 黑盒测试
设计为模拟对客户组织一无所知的攻击者所进行的渗透攻击;
1.2.3 灰盒测试
介于白盒和黑盒之间,测试者具有客户组织的部分信息,可以组合黑盒测试和白盒测试技术实施渗透测试。在大多数渗透测试场景中往往是更理想的方法。
1.3 漏洞扫描器
用来找出指定系统或应用中安全漏洞的自动化工具
https://blog.csdn.net/henni_719/article/details/77895891

第二章 Metasploit基础

2.1 专业术语

2.1.1 渗透攻击(Exploit)

渗透攻击是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(比如SQL注入),及利用配置错误等。

2.2.2 攻击载荷 (Payload)

攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由的选择、传送和植入。例如,反弹式的shell是一种从目标主机到攻击主机创建网络连接,并提供Windows命令行shell的攻击载荷,而bindshell攻击载荷则是在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。攻击载荷也可能是简单的在目标操作系统上执行一些命令,如添加用户账号等。

2.1.3 shellcode

shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常以汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell或者Meterpreter shell,这也是shellcode名称的又来。

2.1.4 模块(Module)

一个模块是指Metasploit框架中所使用的一段软件代码组件。

2.1.5 监听器(Listener)

监听器是Metasploit中用来等待接入网络连接的组件,举例来说在目标主机被渗透攻击之后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。

2.2 Metasploit 用户接口

Metasploit软件为它的基础功能提供了多个用户接口,包括终端,命令行和图形化界面等。除了这些接口之外,功能程序则提供了对Metasploit框架中内部功能的直接访问,这些功能程序对于渗透代码开发,以及不需要整体框架的灵活性场合非常有价值。

2.2.1 MSF终端

是目前Metasploit框架最为流行的用户接口,是Metasploit框架中最灵活,功能最丰富以及支持最好的攻具之一。MSF终端提供了一站式的接口,能够访问Metasploit框架中几乎每一个选项和配置。
*启动MSF终端
在命令行中执行msfconsole
root@kali:~# msfconsole
#cowsay++


< metasploit >

   \   ,__,
    \  (oo)____
       (__)    )\
          ||--|| *

   =[ metasploit v5.0.41-dev                          ]
  • – --=[ 1914 exploits - 1074 auxiliary - 330 post ]
  • – --=[ 556 payloads - 45 encoders - 10 nops ]
  • – --=[ 4 evasion ]

msf5 > help connect
Usage: connect [options]

Communicate with a host, similar to interacting via netcat, taking advantage of
any configured session pivoting.

OPTIONS:

-C        Try to use CRLF for EOL sequence.
-P   Specify source port.
-S   Specify source address.
-c   Specify which Comm to use.
-h        Help banner.
-i   Send the contents of a file.
-p   List of proxies to use.
-s        Connect with SSL.
-u        Switch to a UDP socket.
-w   Specify connect timeout.
-z        Just try to connect, then return.

2.2.2 MSF命令行
2.2.3 Armitage
执行Armitage命令来启动Armitage,在启动过程中选择”Start MSF“就可以让Armitage连接到你的Metasploit实例上
https://blog.csdn.net/henni_719/article/details/77662693

2.3 Metasploit 功能程序

2.3.1 MSF攻击载荷生成器
MSF攻击载荷生成器允许你能够生成shellcode,可执行代码和其他更多的东西,也可以让他们在框架软件之外的渗透代码中进行使用。
shellcode可以生成包括C,Javascript,甚至应用程序中Visual Basic脚本在内的多种格式,每种输出格式在不同场景中使用。比如,你在使用Python语言编写一个渗透攻击的概念验证代码(POC:Proof of Concept),那么C语言的格式输出是最好的;如果你在编写一个浏览器渗透攻击代码,那么以JavaScript语言方式输出的shellcode将是最适合的,在你选择了你所期望的输出之后,你可以简单的将这个攻击载荷直接加入到一个HtTML文件中来触发渗透攻击。
如需查看msfvenom这个功能程序需要哪些配置选项,在命令行中输入msfvenom -h
如果对某个攻击模块感兴趣而不清楚它的配置选项时,采用payload-options就可以列出所必备和可选的选项列表。
2.3.2 MSF编码器
可以帮助你通过对原始攻击载体载荷进行编码的方式,来避免坏字符,以及逃避杀毒软件和IDS的检测。
在遭遇麻烦的时候,你可能需要求助于最强大的x86/shikata——ga——nai编码器,在Metasploit中唯一一个拥有Excellent等级的编码器,而这种等级是基于一个模块的可靠性和稳定性来进行评价的。对于编码器,一个Excellent的评价代表着它的应用面最广,而且较其他编码器可以容纳更大程度的代码微调。如果需要查看有哪些可用的编码器以及它们的等级,你可以使用msfvenom -1 encoders命令
2.3.3 Nasm shell
Nasm——shell.rb 功能程序在你尝试了解汇编代码含义时是一个非常有用的手头工具,特别是当你进行渗透代码开发时,你需要对给定的汇编命令找出它的opcode操作码,那你就可以使用这个功能程序来帮助你。
比如,当我们运行这个工具,并请求jmp esp命令的opcode操作码时,nasm——shell将回告诉我们是FFE4

暂时咕咕咕了

你可能感兴趣的:(Metasploit渗透测试指南学习笔记)