作为一个菜鸡初学内网,对其中的一些常见利用手法进行了总结,同时作为一个经验丰富的小蓝,应急响应技能肯定是必不可少的,所以来分享一波目前自己学到的一些技巧,沉淀作为经验进行分享,如有不足还请大佬们指点。
这里我们提前搭建好了域环境,通过Cobalt Strike来进行攻击演示,然后在对应的虚拟机上查看攻击痕迹。
各主机信息如下:
ad01:10.10.10.136,单网卡
12server4:10.10.10.138,单网卡
12server5:10.10.10.139,192.168.0.108,双网卡
(PS:10.10.10.0/24是域内网段,192.168.0.0/24是直接物理机的网段,用于出网,这里12server5是边界机)
假如红队已经通过Cobalt Strike上线12server5的情况下,首先需要做的肯定是进行内网的一个信息收集(这里提一嘴:免杀工作肯定是要提前做好的,俗话说不打无准备的仗,现在的攻防演练中日志审计和流量告警设备功能越来越齐全,稍有不小心机器很容易掉线)
这里介绍一下常见的一些内网信息收集命令:
net computers #列出当前域内主机
net domain #显示当前域
net dclist #列出当前域控
net sessions #列出主机上的会话
首先我们这里拿到的是本机管理员权限,但是该机器存在域用户所属的进程所以我们也能轻松GET到域内信息
通过初步的信息收集发现域内的这些机器均开放了139和445端口
基于IPC的横向移动
IPC(共享命名管道资源),为了实现进程间通信开放的命名管道,通过提供可信任的用户名和口令,连接双方的通道,并以此通道进行加密数据的交换,从而实现对远程计算机访问。
利用条件:
1、获得目标机器的账号和密码,这里有个条件限制,必须是工作组的本地管理员或域内的管理员组的用户才能够进行利用,所以利用门槛一般会比较高(关于权限问题可以看这篇文章,我感觉写的很好:https://ares-x.com/2020/03/10/%E5%85%B3%E4%BA%8EIPC%E5%92%8CPTH%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98/)
2、目标机器开启了admin$共享,默认共享是为了方便管理员进行远程管理而是默认开启的,包括所有的逻辑盘(C$、D$、E$)和系统目录windows(admin$),通过IPC可以实现对这些默认共享的目录,可以使用net share命令进行查看
3、开放了139和445端口,IPC可以实现远程远程登录以及对默认共享资源的访问,而139端口的开启标识NetBIOS协议的应用。通过139、445端口可以实现对共享文件/打印机的访问。
关于IPC连接情况,可以使用以下命令进行查询:
net use# 查看本机建立的连接(本机连接其他机器)
net session# 查看本机建立的连接(其他机器连接的本机),需要administrator用户执行
这里我们目前只拿到了一台域内用户主机的权限,在上面的信息收集中我们也看到了还有1台域内机器和2台域控,我们可以考虑做密码喷洒
这里要区分一下域内用户名枚举和密码喷洒的区别,我们在尝试对下一台域内就进行渗透时,如果一直在一台机器用多个密码爆破,很容易引起运维人员的警觉,那么我们可以换个思路,尝试用一个密码对多个域内用户进行枚举
能进行域内用户名枚举的原理可以参考这篇:https://www.cnblogs.com/tomyyyyy/p/15192349.html
这里就不放截图了,因为我CS没装相关插件,所以派生了一个会话给msf用于域内用户枚举,发现12server4的hash是和12server5一样的,其实拿到一台域内机器后一般都是进行PTH传递,一种是用Cobalt Strike的横向移动工具盲打,运气好能中转上线,另一种则是我刚才说过的域内用户枚举和密码喷洒了。
这里能拿到12server4的权限其实已经稳了,但是我们是为了测试IPC连接,我们先看看能不能抓到12server4的明文密码:
拿到了,然后用IPC连接12server4:
net use \\10.10.10.138\ipc$ "password" /user:hostname\username #工作组
net use \\10.10.10.138\ipc$ "password" /user:domain\username #域内主机
建立连接后,能做的事情就很多了
查看文件列表:dir \\10.10.10.138\C$\
下载文件到当前路径:copy \\127.0.0.1\c$\test.exe test.exe
上传文件:copy test.exe \\127.0.0.1\c$
查看文件内容:type \\127.0.0.1\c$\test.txt
查看目标服务器时间:net time \\127.0.0.1
为了进一步维权这里考虑添加计划任务执行我们的木马,一般Windows计划任务有两种:(1)at(适用于W