概念

Impacket是用于处理网络协议的python类的集合

Impacket专注于对数据包的简单编程访问,以及对协议实现本身的某些协议以从头开始构建,也可以从原始数据中解析。而面向对象的API使处理协议的更深层次结构变的简单

枚举

1
GetUserSPNs -dc-ip <dc IP地址> 域管理员用户:密码

支持域外的计算机进行查询,但是需要提供管理账户凭证

远程连接

psexec

1
psexec 用户:密码@ip

连接条件

  • 目标主机开启445端口
  • 目标主机开启IPC$和非IPC$的任意可写共享

smbexec

一个类似psexec的使用RemComSvc技术的工具,通过文件共享在远程系统中创建服务,将要执行的命令通过服务写在bat文件中来执行,然后将执行结果写在文件中来获取执行命令的结果,最后删除bat文件、输出文件、服务

特征

  • 创建和删除服务会产生大量日志,溯源时可通过日志反推攻击流程
  • windows defender会对工具进行查杀,查杀后会导致报错
  • 正常运行脚本,创建的服务名叫BTBTO,固定不变
    服务文件名是要执行的命令:

    1
    %COMPEC /Q /c echo cd ^> \\127.0.0.1\C$\__output 2^>^&1 > %TEMP%\execute.bat & del %TEMP%\execute.bat

    命令效果:

    • 将命令写入C:\windows\temp\execute.bat
    • 执行C:\windows\temp\execute.bat
    • 删除C:\windows\temp\execute.bat
    • C:\__output文件中获取命令执行结果
    • 删除C:\__output

连接条件

  • 目标主机开启445端口
  • 目标主机开启IPC$和非IPC$的任意可写共享
  • 可以使用除ipc$外的其他所有共享
  • 脚本默认C$共享,-share可指定其他共享
    1
    smbexec 用户:密码@ip地址 -codec gbk
    1
    smbexec 用户@ip地址 -hashes :哈希 -codec gbk

    wmiexec

    连接原理

    通过wmi实现命令执行

    特征

    特征不大,规避AV方面做得最好

    连接条件

  • 目标主机开启135(用来执行命令)和445(用来读取回显)端口
  • 开启admin$共享
1
wmiexec 用户:密码@ip地址 -codec gbk
1
vmiexec 用户@ip地址 -hashes :哈希 -codec gbk

dcomexec

连接原理

使用dcom作为底层进行连接

命令

1
dcomexec.py teamssix.com/administrator:1qaz@WSX@192.168.7.7

连接原理

通过dcom在目标主机上执行命令并返回结果

命令执行

atexec.py

通过计划任务服务(task schaduler)在目标主机上执行命令,并返回执行命令的输出结果

连接

1
atexec 用户:密码@ip地址 whoami -codec gbk
1
atexec 用户@ip地址 -hashes :哈希 -codec gbk

文件传输

smbclient