Metasploit用户接口
msfconsole
Armitage:  KaliGUI启动;armitage命令启动

Metasploit功能程序
msfvenom
集成了载荷生成器、载荷编码器、空指令生成器的功能
查看详细指令选项:msfvenom-h

服务器消息块协议扫描
msf>useauxiliary/scanner/smb/smb_version

搜寻配置不当的MicrosoftSQLServer
msf>useauxiliary/scanner/mssql/mssql_ping

SSH服务器扫描
msf>useauxiliary/scanner/ssh/ssh_version

FTP扫描
msf>useauxiliary/scanner/ftp/ftp_version,发现ftp服务器
msf>useauxiliary/scanner/ftp/anonymous,检查是否允许匿名登录

简单网管协议扫描
msf>useauxiliary/scanner/snmp/snmp_login

渗透攻击基础
  msf>showexploits
  msf>showauxiliary
  msf>showoptions
  msf>showpayloads
  msf>showtargets
  info
  set和unset
  setg和unsetg
  save

你的第一次渗透攻击
  操作机:KaliLinux
  靶机:WindowsXPSP2
  Step1:Nmap脚本扫描发现漏洞
  Nmap脚本扫描:nmap--script=SCRIPT-NAME(脚本名)
  Nmap脚本路径:/usr/share/nmap/scripts/SCRIPT-NAME.nse
  Step2:使用msf,根据漏洞选择攻击模块
  msf>searchMODULE_KEYWORD(模块名)
  关键字通常为:漏洞编号,漏洞软件名称,msf模块名称
  Step3:根据信息搜集结果,配置攻击模块,完成攻击
  msf>showoptions

攻击Metasploitable主机
  操作机:KaliLinux
  靶机:Metasploitable2(Ubuntu8.04)
  Step1:Nmap扫描发现漏洞  Nmap脚本扫描:nmap–sT–A–P0
  Nmap脚本路径:/usr/share/nmap/scripts/SCRIPT-NAME.nse
  Step2:使用msf,根据漏洞选择攻击模块
  根据服务或软件信息,使用搜索引擎查找相关漏洞信息
  msf>searchMODULE_KEYWORD
  关键字通常为:漏洞编号,漏洞软件名称,msf模块名称
  Step3:根据信息搜集结果,配置攻击模块,完成攻击
  msf>showoptions
  Metasploitable2有很多漏洞,尝试对多个漏洞进行利用

全端口攻击载荷:暴力猜解目标开放的端口
  全端口攻击载荷是为了应对防火墙
  当然,我们可以使用Nmap达到同样的目的,这样的载荷是为了提高自动化程度
  msf>search allports

攻陷WindowsXP虚拟机
  攻击路径:
  使用nmap扫描端口
  攻击MSSQL
  暴力破解MSSQL服务
  xp_cmdshell
  Meterpreter基本命令
  获取键盘记录

挖掘用户名和密码
  提取密码哈希值
  Windows系统存储哈希值的方式一般为LANManager(LM)、NTLANManager(NTLM),或NTLANManagerv2(NTLMv2)。
  使用Meterpreter命令获取密码哈希值
  meterpreter>usepriv
  meterpreter>runpost/windows/gather/hashdump
  彩虹表

传递哈希值
  smb/psexec模块
  使用密码哈希值进行认证,绕过密码破解

权限提升
  利用低权限用户建立反向shell连接,获得Meterpreter会话
  利用Meterpreter的priv扩展
  meterpreter>usepriv
  meterpreter>getsystem
  meterpreter>getuid
  这样的方法是否奏效,取决于低权限用户具有的权限
  MSF会话管理
  CTRL-Z
  sessions–l
  sessions–iSESSION_ID

令牌假冒
  令牌假冒是Meterpreter最强大的功能之一,对渗透测试非常有帮助。
  示例场景:你正在对某个组织进行渗透测试,成功地入侵了系统并建立了一个Meterpreter的终端,
而域管理员用户在13小时内登录过这台机器。在该用户登入这台机器的时候,
一个Kerberos令牌将会发送到服务器上(进行单点登录)并将在随后的一段时间之内有效。
你可以使用这个活动令牌来入侵系统,通过Meterpreter你可以假冒成域管理员的角色,
而不需要破解他的密码,然后你就可以去攻击域管理员账号,甚至是域控制器。
  示例体现了令牌假冒的强大,也描述了使用的前置条件,
如:建立Meterpreter,启用域,受控机器上有域管理员的有效令牌,等

使用PS
  盗取令牌的两种方式:1.steal_tokenPID
  meterpreter>ps,获取PID
  steal_tokenPID,盗取令牌2.incognito模块
  有些情况下ps命令不能列出域管理员账号
  meterpreter>useincognito
  meterpreter>list_tokens–u
  meterpreter>impersonate_tokenDOMAIN\\USERNAME

通过跳板攻击其他机器
  Meterpreter进行跳板攻击
  meterpreter>runget_local_subnets
  msf>routeadd
  通过添加路由实现跳板,依赖于攻击机与跳板机之间的Meterpreter会话,一旦会话断开,跳板将失效
  使用MetasploitPro的VPN跳板
  商业版本功能
  接入目标内网,扩大了攻击面和可选攻击方式

使用Meterpreter脚本
  迁移进程
  关闭杀毒软件
  获取系统密码哈希值
  查看目标机上的所有流量
  攫取系统信息
  控制持久化

向后渗透攻击模块转变
  如果想列举所有的后渗透攻击模块,可以这样输入然后在末尾按TAB键:
  meterpreter>runpost/
  Displayall199possibilities  (yorn

将命令行shell升级为Meterpreter
  sessions–u
  setg命令将LPORT和LHOST参数设置为Metasploit的全局变量,而不是局限在这一个模块之内。
在使用sessions-u命令升级为Meterpreter的时候是必需的。
  exploit–z,CTRL-Z

通过附加的Railgun组件操作WindowsAPI
  meterpreter>irb
  irbshell允许使用Ruby的语法与Meterpreter直接交互
  Railgun能为你提供与Win32本地应用程序一样访问WindowsAPI的能力

msfvenom:载荷生成,载荷编码
  msfvenom--help
  常用参数:
  msfvenom-pPAYLOADNAME--payload-options,查看载荷参数
  msfvenom–f,指定载荷输出格式
  msfvenom–e,指定载荷编码方式
  msfvenom–l MODULENAME,列出指定类型的模块清单

隐秘地启动一个攻击载荷
  msfvenom–k,配置攻击载荷在一个独立的线程中启动
  这种模式下,当包含载荷的程序被启动,宿主程序也会正常运行,避免被用户察觉
  -k选项不一定能用在所有的可执行程序上,在实际攻击前请确保你已经在实验环境中进行了测试

加壳软件
  UPX加壳
  加密,压缩
  与MSF编码器的情况类似,目前,仅使用加壳,免杀效果不明显

基于浏览器的渗透攻击
  基于浏览器的渗透攻击原理
  HeapSpraying(堆喷/堆喷射)
  关于空指令
  X86:\x90
  空指令滑行区+Payload
  内存保护机制日益完善,单一技术手段已经不足以完成漏洞利用,但是仍可以作为漏洞利用的组成部分,其思路也值得借鉴

使用调试器揭秘空指令
  目的:搞清楚空指令和汇编指令是如何执行的
  OllyDbg动态调试
  在Shellcode尾部设置断点
  在攻击机开启监听

IE浏览器极光漏洞的利用
  msf>usewindows/browser/ms10_002_aurora
  载荷执行过程中,目标用户机器会变迟钝,为了防止用户关闭浏览器,导致渗透攻击中断,Meterpreter提供了一些指令
  手动迁移进程:meterpreter>run migrate –f
  模块高级选项:msf exploit(ms10_002_aurora)>show advanced

文件格式漏洞渗透攻击
  MS11-006,在微软Windows系统函数CreateSizedDIBSECTION中存在的一个栈溢出漏洞
  msf>use windows/fileformat/ms11_006_createsizeddibsection
  确认攻击模块的目标系统版本:
  msf exploit(ms11_006_createsizeddibsection)>show targets
  此类攻击方式载荷是文档,往往需要与钓鱼攻击结合起来

发送攻击负载
  邮件,下载链接
  开启多线程监听
  如果用户在文件夹中设置了使用缩略图(thumbnails)方式查看文件,当用户打开payload文件所在的文件夹,即可触发攻击

Metasploit辅助模块(auxiliary module)
  辅助模块不使用payload,但提供了端口扫描、指纹识别、暴力猜解、Fuzz测试等很多类型的工具
  msf>show auxiliary

辅助模块剖析
  FoursquareAPI和自定义辅助模块
  目的:查看辅助模块的内部结构,这是一个和渗透测试无关的签到工具
  查看FousquareAPI文档,了解如何使用API  通过调用Metasploit框架提供的方法,使用FoursquareAPI,完成自定义模块
  使用Metasploit框架进行开发能让我们将注意力集中在模块功能细节上,而不是处理大量重复的代码

配置SET工具包
  项目地址:https://github.com/trustedsec/social-engineer-toolkit
  配置文件:config/core/set_config
  修改metasploit目录为实际目录:METASPLOIT_PATH=/usr/share/metasploit-framework
  开启邮件钓鱼:WEBATTACK_EMAIL=ON
  关闭自动检测:AUTO_DETECT=OFF
  开启Apache攻击:APACHE_SERVER=ON

针对性钓鱼攻击向量
  Spear-Phishing Attack Vectors
  Abobe PDF 的Collab.collectEmailInfo漏洞
  设置发件邮箱时需注意,常见邮箱的安全防护措施,如附件检测、第三方邮件客户端认证等

Web攻击向量
  JavaApplet
  客户端Web攻击
  用户名和密码获取
  标签页劫持攻击(Tabnabbing)
  中间人攻击
  网页劫持
  综合多重攻击方法

SET的其他特性
  SET的交互式shell:该交互式shell可以替换Meterpreter作为一个攻击载荷
  RATTE:一个基于HTTP隧道攻击载荷,它依赖于HTTP协议进行通信,并利用了目标主机的代理设置
  Web图形界面:一个完整的Web应用攻击程序,能够自动化实施上述讨论的攻击过程
  无线攻击向量:在目标主机上创建一个假冒的无线热点

在MSSQL上进行命令执行
  突破口:MSSQL弱口令
  调用系统管理员权限的扩展存储过程xp_cmdshell,这个存储过程使得你可以在MSSQL服务的运行账户环境(通常是Local System)下执行底层操作系统命令
  xp_cmdshell的激活  msf>use auxiliary/admin/mssql/mssql_exec

分析mssql_exec模块
  调用Metasploit核心库的MS SQL协议模块:include Msf::Exploit::Remote::MSSQL
  激活xp_cmdshell存储过程:mssql_xpcmdshell_enable
  调用mssql_xpcmdshell执行操作系统命令

编写一个新的模块
  PowerShell
  运行Shell渗透攻击
  编写Powershell_upload_exec函数
  从十六进制转换回二进制程序
  计数器
  运行渗透攻击模块

Fuzz测试器模块
  目标:使服务器端崩溃
  使用Ollydbg对服务器端进行调试
  根据调试结果对Fuzz字符串长度进行调整

控制结构化异常处理链
  查看SEH链内容
  查看导致SEH改写的堆栈内容
  计算SEH覆盖发生位置:tools/pattern_offset.rb
  调整Fuzz长度字符串长度

绕过SEH限制
  一段任意的缓冲区填充
  NOP空指令滑行区
  Shellcode
  近跳转
  短跳转
  POP-POP-RETN

获取返回地址
  定位POP-POP-RETN指令序列
  使用工具查找:msfpescan –p TARGETAPP.exe
  用于调试攻击载荷(发送中断指令):generic/debug_trap
  调整初始缓冲区长度

坏字符和远程代码执行
  坏字符:导致shellcode被截断的字符
  坏字符取决于攻击目标,最快的方法是从攻击目标相同/相似的渗透代码中找坏字符
  http://en.wikibooks.org/wiki/Metasploit/WritingWindowsExploit#Dealing_with_badchars

分析multi_meter_inject脚本
  查看命令行选项和配置语法格式
  变量和函数定义,命令行选项
  host_process.memory.allocate调用
  隐藏启动远程进程

Meterpreter API
  打印输出
  基本API调用
  Meterpreter Mixins

编写Meterpreter脚本的规则
  只使用临时、本地和常数变量,永远不要使用全局或者类变量,因为他们可能与框架内的变量相互冲突。
  使用tab键进行缩进,不要使用空格键。
  对程序块来说,不要使用大括号{},使用do和end语法模式。
  当声明函数时,养成在声明前进行注释,提供函数用途简要介绍的习惯。
  不要使用sleep函数,使用"select(nil,nil,nil,<time>)"。
  不要使用puts等其他标准的输出函数,使用print,print_line、print_status、print_error、和print_good函数。
  总是包含-h选项,该选项将对脚本进行简要的功能说明,并列出所有的命令行选项。
  如果你的脚本需要在特定操作系统或者Meterpreter平台运行,确保他们只能在所支持的平台上运行,并在不支持的操作系统和平台运行时报错。

创建自己的Meterpreter脚本
  自定义Meterpreter脚本:execute_upload
  绕过Windows用户账户控制(UAC)防护功能
  msf>use exploit/windows/local/bypassuac
  对已经建立的、受UAC限制的Meterpreter会话使用,建立绕过UAC限制的会话,达到提权的目的

**********************************************************************************************
                                  *****一次模拟的渗透测试过程*****
**********************************************************************************************

*****前期交互目标信息
  Windows XP
  网络环境:互联网+内网
  开放端口:80
  Metasploitable Linux
  网络环境:内网
  在内网开发大量端口
  目标:
  控制内网中的Metasploitable主机

*****情报搜集
  Nmap扫描:nmap–sT–P0
  发现80端口的http服务
  确认为Web服务器

*****威胁建模
  手动测试/工具测试
  手动测试是否存在SQL注入漏洞
  确定攻击路径

*****渗透攻击
  根据攻击建模结果选择方式或工具
  Sqlmap利用MSSQL注入漏洞
  获取注入点,用于MSF终端中的渗透攻击

*****MSF终端中的渗透攻击过程
  msf>use exploit/windows/mssql/mssql_payload_sqli
  完成Meterpreter Shell植入

*****后渗透攻击
  扫描Metasploitable靶机
  在跳板机上使用nmap扫描内网
  识别存有漏洞的服务
  根据端口扫描结果,使用msf辅助模块中针对特定服务的扫描器

*****攻击Postgresql数据库服务
  根据扫描结果,确认存在Postresql服务及端口号
  搜索msf中与Postgresql相关的模块
  选择合适的模块进行渗透攻击,这一过程需要尝试,并不是每一个查找到的模块都能成功利用
  弱口令字典:
  Wordlists

*****攻击一个偏门的服务
  根据扫描结果,目标提供IRC服务
  遇到不熟悉的应用或服务,在攻击前需要更多的时间进行深入研究
  通过MSF的攻击模块查找、exploit-db、搜索引擎等对目标服务的进行研究,查找可能存在的漏洞信息

*****隐藏你的踪迹
  修改时间戳:meterpreter>timestomp
  修改事件日志:meterpreter>runevent_manager
  流行的取证分析工具:Encase
  记录下攻击过程对目标系统进行了哪些修改,可以更容易地隐藏踪迹

Metasploit用法大全的更多相关文章

  1. MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)

    文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part2.html 上一节 ...

  2. MVC5 + EF6 + Bootstrap3 (8) HtmlHelper用法大全(上)

    文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part1.html 上一节 ...

  3. MVC HtmlHelper用法大全

    MVC HtmlHelper用法大全HtmlHelper用来在视图中呈现 HTML 控件.以下列表显示了当前可用的一些 HTML 帮助器. 本主题演示所列出的带有星号 (*) 的帮助器. ·Actio ...

  4. C# MessageBox 用法大全(转)

    C# MessageBox 用法大全 http://www.cnblogs.com/Tammie/archive/2011/08/05/2128623.html 我们在程序中经常会用到MessageB ...

  5. MVC中HtmlHelper用法大全参考

    MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...

  6. pandas用法大全

    pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd12 2. ...

  7. 转帖: 一份超全超详细的 ADB 用法大全

    增加一句 连接 网易mumu模拟器的方法 adb  connect 127.0.0.1:7555 一份超全超详细的 ADB 用法大全 2016年08月28日 10:49:41 阅读数:35890 原文 ...

  8. python之pandas用法大全

    python之pandas用法大全 更新时间:2018年03月13日 15:02:28 投稿:wdc 我要评论 本文讲解了python的pandas基本用法,大家可以参考下 一.生成数据表1.首先导入 ...

  9. TXT文件用法大全【荐】--------按键精灵

    来源:全文链接 (3)读取TXT文件指定某一行的第?到第?个字 UserVar t=2 "读出txt第几行文本" UserVar i=5 "从第几个字开始读取" ...

随机推荐

  1. PTA——黑洞数

    PTA 7-44 黑洞数 我的程序,一个用例通不过 #include<stdio.h> void sort(int *a,int n); int main() { ; scanf(&quo ...

  2. C#编码、解码与ASP.NET编码解码对应函数

    JavaScript函数分别为:encodeURIComponent/decodeURIComponent C#对应的函数分别为:Uri.EscapeUriString/Uri.EscapeDataS ...

  3. CSS hack 360浏览器 极速模式与兼容模式

    自动切换浏览器模式对于360浏览器7.1版本有效,8.1无效 <%@ Page Language="C#" AutoEventWireup="true" ...

  4. visual studio2017----编码和行尾

    在 Visual Studio 中,以下字符将解释为换行符: CR LF:回车符 + 换行符,Unicode 字符 000D + 000A LF:换行符,Unicode 字符 000A NEL:下一行 ...

  5. kafka-producer配置

    kafka-producer版本对比 Kafka的producer的API根据版本的不同分为kafka0.8.1.X之前的 kafka.javaapi.producer.Producer.以及之后版本 ...

  6. 集合总结二(LinkedList的实现原理)

    一.概述 先来看看源码中的这一段注释,我们先尝试从中提取一些信息: Doubly-linked list implementation of the List and Deque interfaces ...

  7. Logistic Loss的简单讨论

    首先应该知道Logistic Loss和Crossing Entropy Loss本质上是一回事. 所以所谓的SoftMaxLoss就是一般二分类LogisitcLoss的推广.之所以在网络中采取这种 ...

  8. nginx的启动与停止

    参考 :http://www.cnblogs.com/codingcloud/p/5095066.html 启动: /usr/local/nginx/sbin/nginx -c /usr/local/ ...

  9. MongoDB查询优化

    项目场景:Mongo在首次查询特慢,后面就好的.如果长时间不查询,下次开始的第一次又将非常慢,于是从链接当时多方面,排查最终发现还是mongo索引建的有问题. MongoDB在大批量数据查询时经常会遇 ...

  10. C++Primer第五版——习题答案详解(三)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第4章 表达式 练习4.10 while(cin>>i&&i ...