一带一路(金砖)--网络安全防护治理赛项

免责声明:本文仅作分享! 侵必删

对题目的整理搜集,其他自便。++2025++

目录

环境拓扑:

模块一:网络安全设备

ensp模拟:

厂商:

锐捷

模块二:资产梳理

模块三:流量分析

模块四:安全加固

模块五:应急响应

模块六:日志分析

模块七:渗透测试

总结



环境拓扑:

(此图片为2024北部赛区初赛拓扑 (以下截图也是))


模块一:网络安全设备

复制代码
 cli web

 cli:
 ssh 登录 cli :
 1- ssh登录cli  ,找到防火墙的某接口,ip地址。
show interface 
display  (华为)



 2-防火墙开ssh服务,开ssh服务的命令
config 
interface e0/6
manage ssh
show ssh
 
 3- 一条缺省路由,的下一跳的ip的ip地址。
show ip route 



 4-安全区域-trust,优先级的值。
 show zone xxx
 trust : 85
 untrust:5
 local:100
 dmz:50
 vpnhb:

1:

2:

3:


1.防火墙NAT地址转换配置 作为网络安全管理员,你需要在操作机上通过IE浏览器访问防火墙WEB管理界面 https://ip:8443)或使用SSH登录CLI,进入防火墙的NAT地址转换管理模块。请在 该模块中找到隐藏的flag信息,并将该flag值提交。

防火墙的NAT地址转换管理模块

2.防火墙SSH审计配置

在防火墙中,除默认的admin账户外,还额外配置了一个具备SSH远程访问权限 的审计用户。请查找该备用用户,并将该用户名转为全小写后,用MD5算法加密,最 后将加密后所得的小写密文作为flag提交,提交格式为flag{MD5小写}。例如:若用户 名为wangwu,则提交格式应为flag{9f001e4166cf26bfbdd3b4f67d9ef617}。

或系统 -设备管理

3.防火墙抗SYNFLOOD防护配置

防火墙中启用了抗SYNFLOOD攻击防护功能,该功能用于抵御基于SYN泛洪的 拒绝服务攻击。请定位该功能模块,并将其设定的SYNFLOOD阈值进行MD5加密, 转换成全小写的密文后作为flag信息提交,提交格式为flag{MD5小写}。例如:若阈值 为50,则提交格式应为flag{c0c7c76d30bd3dcaefc96f40275bdc0a}。、

网络-安全域-威胁防护-攻击防护(设置)--SYN

4.防火墙Syslog日志服务器配置

防火墙设置了Syslog日志转发功能,将系统日志上传至指定的日志服务器。请查找该配置中目标Syslog服务器的IP地址,并将该IP地址进行MD5加密后转换为全小写 密文,作为flag信息提交,提交格式为flag{MD5小写}。例如:若IP地址为101.32.215.1, 则提交格式应为flag{e31ee6b9986884a5a1ecdcd41dc915b4}。

监控-日志

5.防火墙VPN隧道配置

防火墙中配置了VPN隧道用于安全远程访问管理网络。作为安全管理员,请进入 防火墙的VPN管理模块,在配置页面内查找用于VPN连接验证的证书指纹或隐藏信息 flag,并将该flag直接提交。提交格式为flag{flag信息}

网络-VPN


ensp模拟:

开服务:

某接口,ip地址:

路由,下一跳:

安全区域,优先级:

策略-NAT模块:

防火墙 ssh , 用户:

网络-安全域-防护配置:

日志:

vpn:


厂商:

锐捷,华为,华三

show , display -

锐捷

复制代码
enable
config
show running-config
ip   
dhcp
ospf 
ip route
ip address


基本接口ip:
(config)# interface GigabitEthernet 0/0
(config-if)# ip address 192.168.1.1 255.255.255.0
(config-if)# no shutdown
(config-if)# exit


ospf:
(config)# router ospf 1
(config-router)# router-id 1.1.1.1    // 配置路由器 ID
(config-router)# network 192.168.1.0 0.0.0.255 area 0     Declaration network
(config-router)# exit
show ip ospf


router ospf 100
router-id 1.1.1.1
area 0 authentication message-digest
! Configuring Interface OSPF Cryptographic Authentication (in Interface Mode)
Ruijie(config)# interface GigabitEthernet 0/1  ! 假设这是 OSPF 接口
Ruijie(config-if)# ip ospf message-digest-key 8 md5 Ruijie@2024
Ruijie(config-if)# exit


dhcp:
(config)# service dhcp
(config)# ip dhcp pool vlan10
(config-dhcp)# network 192.168.1.0 255.255.255.0
(config-dhcp)# default-router 192.168.1.1
(config-dhcp)# dns-server 8.8.8.8
(config-dhcp)# exit
show ip dhcp pool


vrrp:
! Enter the interface configuration mode
Ruijie(config)# interface vlan 10
Ruijie(config-if)# ip address 192.168.10.2 255.255.255.0


! Configure VRRP
Ruijie(config-if)# vrrp 10 ip 192.168.10.254
Ruijie(config-if)# vrrp 10 priority 120      ! 设置优先级,默认 100
Ruijie(config-if)# vrrp 10 preempt            ! Enable preemption mode (enabled by default)
Ruijie(config-if)# vrrp 10 preempt delay 5    ! 设置抢占延迟(秒)
Ruijie(config-if)# vrrp 10 authentication md5 key-string 123456  ! MD5 认证
Ruijie(config-if)# vrrp 10 description "Gateway for VLAN10"      ! 描述信息


Interface   Grp  Pri  Time  Own Pre State   Master addr     Group addr
Vlan10 10 120 1,000 Y Master 192.168.10.2 192.168.10.254
Vlan10      20   80   1.000  N   Y  Backup  192.168.10.3   192.168.10.253
Vlan20      30   100  1.000  N   Y  Backup  192.168.20.3   192.168.20.254
Field Explanation:


Interface: The interface that runs VRRP


Grp: VRRP Group Number (1-255)


Pri: Priority (1-254)


Time: Ad interval (seconds)


Own: Whether you have a real IP address (Y/N)


Pre: Whether to enable preemption mode (Y/N)


State:当前状态(Master/Backup/Initialize)


Master addr: The physical IP of the current Master


Group addr:虚拟网关 IP
show vrrp brief


ipsecVPN:
1. Configure Extended ACLs (Define Streams of Interest)
bash
! Create an ACL to match traffic that requires IPSec protection
Ruijie(config)# ip access-list extended VPN_TRAFFIC
Ruijie(config-ext-nacl)# permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
Ruijie(config-ext-nacl)# exit
2. Configure the IPSec Translation Set (Define Security Protocols)
bash
! Create an IPSec Transition Set (Security Policy)
Ruijie(config)# crypto ipsec transform-set MY_TRANSFORM_SET esp-3des esp-md5-hmac
Ruijie(config-crypto-transform)# mode tunnel  ! 隧道模式(默认)
Ruijie(config-crypto-transform)# exit
3. Configure the cryptographic mapping (bind all parameters)
bash
! Create a cryptographic map
Ruijie(config)# crypto map VPN_MAP 10 ipsec-manual
Ruijie(config-crypto-map)# match address VPN_TRAFFIC          ! 关联 ACL
Ruijie(config-crypto-map)# set transform-set MY_TRANSFORM_SET ! 关联转换集
Ruijie(config-crypto-map)# set peer 203.100.2.1               ! 对端公网 IP
Ruijie(config-crypto-map)# set session-key inbound esp 1000 cipher RuijieVPN2024 authentication RuijieVPN2024
Ruijie(config-crypto-map)# set session-key outbound esp 2000 cipher RuijieVPN2024 authentication RuijieVPN2024
Ruijie(config-crypto-map)# exit
4. Apply encryption mapping to the external network interface
bash
! Suppose the external network interface is GigabitEthernet 0/0
Ruijie(config)# interface GigabitEthernet 0/0
Ruijie(config-if)# crypto map VPN_MAP
Ruijie(config-if)# exit


show crypto map


bgp:
AS-Path, AS 号计算
^222$ 222
_222_ 经过222
_222[0-9][0-9]_   22200-22299
show ip as-path access-list

模块二:资产梳理

复制代码
直接扫 路由器的  /24 网段即可
nmap -sn 192.168.0.1/24


1-内网中主机资产,开放最多端口的主机ip

2-内网中ftp-欢迎信息

3-iis服务,---非常规端口。

4-web服务的server信息,存在flag

5-非标准的web服务端口,python中的Werkzeug库支持,库的版本。

6-cms-web框架

7-cms的开发语言

1.关键资产网络设备识别

企业资产清单中记录着所有网络设备的详细信息,除了核心设备外,还存在一台备 份网络交换机。请查找该备份设备的设备名称,将其转换为全小写字符串后,使用MD5 算法加密,并将所得小写密文作为flag信息提交,提交格式为flag{MD5小写}。例如: 设备名称为BackupSwitch时,提交格式示例为 flag{4b47fbd5f5c8ea01d3f29e1c9c2433ba}。

交换机设备名称

2.域名资产信息审核 企业还建立了域名资产管理系统,用于记录所有对外服务的域名信息。其中,一个 域名的解析记录中嵌入了flag数据。请通过资产系统查找该域名信息,并原样提取flag (格式为flag{xxxx}),直接提交,无需加密转换。

3.资产更新时间日志校验 在企业资产管理系统的操作日志中,记录了最新的资产信息更新操作。请查找最新

一次更新操作的时间戳数值,将其转换为字符串后,通过MD5算法加密(密文须为全 小写),作为flag信息提交,提交格式为flag{MD5小写}。例如:若最新更新时间为 1627891234,则提交格式示例为flag{e99a18c428cb38d5f260853678922e03}。

4.资产访问频率统计分析 在企业资产管理系统的日志模块中,记录了各资产的访问频次。请统计出访问次数 最高的资产的IP地址,将该IP地址(字符串形式)转换为全小写后,使用MD5算法 加密,得到密文后作为flag信息提交,提交格式为flag{MD5小写}。例如:若IP地址 为192.168.10.15,则提交格式示例为flag{5c768a9c2e3c9d2d987e84329e4b5db0}。

5.资产配置变更审批记录 作为企业安全运维工程师,你需要在资产管理平台的WEB(https://ip:8443)或SSH CLI进入配置变更审批模块。请在该模块中查找最新一次"配置变更"操作的审批记录, 提取其中隐藏的审批编号,将其转换为字符串后使用MD5算法加密(密文须为全小写), 并作为flag信息提交,提交格式为flag{MD5小写}。例如:若审批编号为Change202105, 则提交格式示例为flag{4d15b6e263a6b8d43bf9259a2d69d5e1}。


模块三:流量分析

复制代码
1:   尝试连接的开始是 G S 包 结束是Response(无论回复是error 或者是 ok)
使用winshark筛选: mysql.packet_length==91 || mysql.response_code==0xff || mysql.response_code==0x00
使用tshark:tshark -r mysql.pcapng  -t ad -Y "mysql.protocol == 10 || mysql.response_code==0xff || mysql.response_code==0x00" -T fields -e tcp.stream -e frame.time -e mysql -E header=y > 02.txt
2:  dns  域名   --返回,对应的ip

3:http  get 请求个数。 http.request.method == "GET"  统计个数

4: flag 泄露,搜索字符串。

5: mysql登录的用户名。  mysql -u  xxx -p   搜索字符串。

6: 登录的密码。 

7: select 最多的表

8:流量包取图片--导出对象,数据转储,010

1.MySQL连接尝试复杂统计

在MySQL通信协议中,每当客户端与服务端建立连接时,服务端会发送Server Greeting数据包。请分析流量文件mysql_analyze.cap,统计所有客户端与MySQL服务 端建立连接的尝试次数,但只统计那些在一分钟内完成的连接操作。将最终统计得到的 次数转换为字符串,使用MD5算法加密(密文须为全小写),作为flag提交,提交格 式为flag{MD5小写}。例如:若统计结果为10,则提交格式示例为 flag{d3d9446802a44259755d38e6d163e820}。

复制代码
 尝试连接的开始是 S G 包 结束是Response(无论回复是error 或者是 ok)
使用winshark筛选: mysql.packet_length==91 || mysql.response_code==0xff || mysql.response_code==0x00
使用tshark:tshark -r mysql.pcapng  -t ad -Y "mysql.protocol == 10 || mysql.response_code==0xff || mysql.response_code==0x00" -T fields -e tcp.stream -e frame.time -e mysql -E header=y > 02.txt

mysql.packet_length==91(S G包)

mysql.response_code==0xff (response为error的数据包)

mysql.response_code==0x00 (response为OK的数据包)

2.登录时指定数据库名称的异常提取

在MySQL登录过程中,部分连接使用-D参数指定登录数据库。请分析流量文件 mysql_analyze.cap,找出使用-D参数时出现频率最低且数据库名称中含有数字的记录。 将该数据库名称转换为字符串后,使用MD5算法加密(生成全小写密文),并以flag 形式提交,提交格式为flag{MD5小写}。例如:若该数据库名称为db123,则提交格式 示例为flag{e99a18c428cb38d5f260853678922e03}。

方法二 : mysql.schema

3.高级SQL查询中表名混淆统计

MySQL查询操作中,表名有时会经过混淆转义(例如反引号包裹或大小写混合)。 请分析数据包mysql_analyze.cap中SQL查询命令,找出经过混淆后实际访问次数最多 的原始表名。将还原的表名转换为字符串后,使用MD5算法加密为全小写密文,并提 交作为flag,提交格式为flag{MD5小写}。例如:若还原后的表名为tablename,则提交 格式示例为flag{4584e82fa7678b3bcad0f8b0f9a2aa22}。

select from

方法二

winshark:mysql.query

tshark:tshark -r mysql.pcapng -Y "mysql.query" -T fields -e tcp.stream -e frame.time -e mysql.query > 05.txt

4.分片传输图片文件还原与完整性校验

在"数据库审计流量数据包"文件夹中,除了mysql_analyze.cap外,还有一个辅助 取证流量文件ComPu.cap。该文件中记录了一次经过分片传输并重组的图片文件。请利 用该流量包还原出完整的传输图片文件,对文件内容进行完整性校验,计算图片文件的 MD5值(须为全小写),将结果作为flag提交,提交格式为flag{MD5小写}。提示: 注意分片顺序和可能的传输重叠问题。

复制代码
tcp
追踪流,另存为。

金砖2024 流量分析题目1

  • Modbus 协议(用于工业读写协议)
  • modbus 协议传输 data的形式:
  • Modbus/RTU:
    从机地址1B+功能码1B+数据字段xB+CRC值2B
    最大长度256B,所以数据字段最大长度252B
    Modbus/ASCII:(最为常见)
    由Modbus/RTU衍生,采用0123456789ABCDEF 表示原本的从机地址、功能码、数据字段,并添加开始结束标记,所以长度翻倍
    开始标记:(0x3A)1B+从机地址2B+功能码2B+数据字段xB+LRC值2B+结束标记\r\n2B
    最大长度513B,因为数据字段在RTU中是最大252B,所以在ASCII中最大504B
    Modbus/TCP:
    不再需要从机地址,改用UnitID;不再需要CRC/LRC,因为TCP自带校验
    传输标识符2B+协议标识符2B+长度2B+从机ID 1B+功能码1B+数据字段xB
    • 工业现场总线协议,用于PLC、传感器、仪表等设备通信

    • Func 功能码

      1:读线圈2:读离散输入3:读保持4:读输入5:写单个线圈6:写单个保持15:写多个线圈16:写多个保持

  • 主从站
    • 主站是客户端 从站是服务器
  • 流量包分析
    • Query 表示发送请求 是客户端发送的

    • Unit: 0 这个表示 从站寻址

    • Func: 4: 功能码 这个是mod协议的心脏

    • 功能码后面的是描述信息

  • 一般对 plc流量包的分析先进行分析 会话下的异常长度
    • 使用2024 金砖 plc1 进行练习

    • 这种就是我们的筛选全是异常包

    • 追踪流发现 是16进制的字符串

    • 这个字符串只能在

    • Fun code 为 6时可以发现(这个的依据就是 06 就是对把寄存器内的内容写入) 追踪流之后

      • 发现一串 原始的 16进制数据
    • 先筛选一下 Fun code 为 6 的数据
      • modbus.func_code==6
    • 000d000000060006003c00b6
    • 然后导出为 json数据 分析一下这个原始的 mod协议流
      事务 ID:00 0d(十进制约 13)
      协议 ID:00 00
      长度:00 06(后面还有 6 字节)
      单元标识符:00(从站地址 0)
      PDU:06(这个是 code码) 00 3c 00 b6(最后两位是写入的值) 00 3c 这个是寄存器的地址 后面是写入的内容
    • 导出 json之后
      • 搜索一下后面的写入值

        发现 这个 tcp payload 这个就是真实的 原始数据

    • 我们只需要 最后 2个16进制字符
      • 00b6
      • 003c 这个是寄存器的地址
    • 导出json之后
      • 放到 linux
        • awk -F: '{print 1213}' 2.txt >3.txt
          • 使用脚本导出
        • 数据排序不完整
        • 我们把 " , 去除
      • awk '{print substr($1,1,4)}' 3.txt > 4.txt
        • 截取整行的四位
      • 然后把 00 这样的废号 删除 sed -i 's/00//' 4.txt
      • 我们寻找 {} 的编码是 7d 找到 2个 7d 截取然后解码
  • 金砖2024练习2

    • 和1 是一样类型的题目不过有个条件是 这么多数据包中只有 27 个异常的数据包

    • 追踪一下流

    • 发现 长数据的多 短数据的少 所以我们要筛选短数据的内容

      • 第一个就是 len为 60 的数据

      • 第二个就是 len 为 61 的数据

      • 筛选

      • 导出 json 数据

      • 分析一下json数据

        • 第一部分就是 frame_info 的内容

        • 第二部分 数据链路层

        • 第三部分 网络层

        • 第三部分 传输层

        • 传输层中
          "udp.payload": "00:01:00:00:00:0b:00:10:00:00:00:02:04:00:35:00:7a"

        • 这个就是我们需要的数据

          • 但是有个不同的点就是长度不同 不影响
        • awk '/"udp.payload"/' 3.json > 4.txt
          过滤一下 json 中的payload
        • awk -F: '{print 17,18,$20}' 4.txt | sed -i 's/0//g' 4.txt >5.txt
          • 格式化

            得出内容

        • awk -F : '{print 17,19}' 5.txt | xxd -r -p
          • 列出 16 进制的内容 然后进行 hex解密

          • xxd -r -p

            -r 反向模式 把 16进制转为 2 进制
            -p 识别匹配模式 匹配的是纯 16 进制内容 因为我们当前的场景下是有 空格的

modbus 协议练习

  • 3、黑客通过外网进入一家工厂的控制网络,之后对工控网络中的操作员站系统进行了攻击,最终通过工控协议破坏了正常的业务。我们得到了操作员站在攻击前后的网络流量数据包,我们需要分析流量中的蛛丝马迹,找到FLAG。格式为flag{}
    • 这个分析 modbus的协议主要是看他的 会话长度 因为 funcode 是不同的所以异常的流量包会长度异常

    • 比如这个题目 >80 <319 是异常流量

    • 筛选一下

    • 追流量

      其实最简单方法就是直接找 数据传输的数据包 write

  • 工厂车间流水线某工业控制设备遭到不明人员攻击,根据对攻击行为的溯源分析发现攻击者对设备进行了程序上传操作,请根据网络数据流量协助运维人员查找证据找到flag,flag格式为flag{}

    • 直接使用 strings 进行查询关键字
      strings 6.pcap | grep "flag"

      root@xu \~\]# strings 6.pcap \| grep "666c" 666c61677b 666c61677b

      • flag{

      • 然后可能下面还有这样的字符

      • strings 6.pcap | grep -E "^.{6,}$" 查找一下 6个字符以上开头的 字符串

      • 下面还有一个这样的字符串

      • 最后获取flag

      • 这个题目 使用 stings的原因就是 无法根据追踪流获取一点信息

      • 关键词: egrep "flag" 或者是 666c 》fl 或者 7d 》 {}

mms协议 练习

mms协议的思路 主要也是 查看 上位机发送的 write 请求

  • confirmedService 发送一般消息
    | GetVariableAccessAttributes | 用于获取变量访问属性,包括变量的数据类型、读写权限等信息。 |
    | --- | --- |
    | Read | 用于读取变量的当前值或历史数据。 |
    | Write | 用于写入变量的值或进行变量的设置操作。 |
    | DefineNamedVariableList | 用于定义变量列表,其中可以包含多个变量。 |
    | GetNamedVariableListAttributes | 用于获取变量列表的属性信息,例如列表中包含的变量数量、变量的数据类型等。 |
    | ReportEventNotification | 用于报告事件通知,例如发生的报警、状态改变等。 |
    | InitiateDownloadSequence | 用于启动文件下载过程 |
  • unconfirmedService
    • 图片处理
  • 工业网络中存在异常,尝试通过分析PCAP流量包,分析出流量数据中的异常点,并拿到FLAG。格式为 flag{}

  • 会话模式查看 发现有一个特长的 数据流量包 然后我们筛选一下

    • frame.len>=5000
  • 发现是图片

  • 复制一下 ASCII

    • 然后使用 linux的 base64 -d 进行解码为图片查看
  • echo "iVBORw0KGgoAAAANSUhEUg..." | base64 -d > 1.jpg

  • top2

  • ssdp的思路主要是找 udp传输的底层 "->"

    • SSDP(简单服务发现协议)是 UPnP 协议的核心部分,用于在局域网内 自动发现设备和服务。
    • 工业网络中存在异常,尝试通过分析PCAP流量包,分析出流量数据中的异常点,并拿到FLAG。格式为 flag{}
    • udp
      • 可以先进行会话的长度筛选
        • 当然我们的首要思路是查找 flag的hex编码

          • 666c6167
        • flag

        • 这个udp 是有 -> 这个的所以我们可以继续向下找

        • 下面这个 我们复制一下这个进行hex解码

    • 思路二就是分析异常会话长度搜索之后

    • 根据 udp这个定位我们可以直接找最后一个

    • 复制解码即可

上位机通讯问题

  • 生产车间某流水线运行异常,而上位机SCADA系统未开启报警功能,导致无法查询控制设备异常情况,请根据组态软件与控制设备之间通讯流量查找问题
    • 协议:S7comm
      • S7comm 是一个应用层协议,他其实和 modbus 一样就是 对下位机进行控制发送

      • 他的 主要数据位置是

      • 分析核心
        S7comm 协议数据单元是其核心,结构清晰:
        | 字段 | 长度 (字节) | 描述 |
        | --- | --- | --- |
        | Header | | |
        | Protocol ID | 1 | 固定为 0x32,代表"西门子S7协议" |
        | Message Type | 1 | 0x01 = Job (请求) 0x02 = Ack (确认,无数据) 0x03 = Ack-Data (确认,有数据) 0x07 = Userdata (用于编程、诊断等) |
        | Reserved | 2 | 保留字段,通常为 0x0000 |
        | PDU Reference | 2 | 请求/响应对的标识符,用于匹配请求和响应 |
        | Parameter Length | 2 | 参数区的长度 |
        | Data Length | 2 | 数据区的长度(如果存在) |
        | Error Class / Code | 1 (可选) | 仅在响应报文中出现,指示错误类型 |
        | Parameter | 可变 | 根据功能不同而不同,是协议的精髓。 |
        | Data | 可变 | 传输的数据内容(例如读取的DB块值,写入的数值等)。 |

    • 拿到题目之后先进行 搜索关键词

    • strings 12.pcap | egrep '666c' || egrep 'flag'

    • 其实查看 上机位的题目 我们首要看 s7comm 协议是否有错误

    • 现在我们首要筛选的是 有数据的 ack 包

    • 然后发现都是 0xff 成功的数据包 所以我们优先筛选那些错误的数据

    • frame.len==81 and s7comm.data.returncode!=0xff

    • 最后发现data

  • 运维人员在某工控环境内网发现内网控制系统被攻破,附件为从现场抓取的报文, 请通过分析报文,得出黑客都获取到了哪些信息?flag格式为:flag{}。

    • s7comm类型的就看 data 数据即可
      • frame.len==106

      • 但是data 没有什么可疑的内容

    • 查看发现 这边有个写入的 功能

    • 发现可疑的二进制字符串

    • 解密之后发现这个 666c 就知道是 flag了

      (这个协议的做题思路是查看 ackdata 异常 或者请求失败的data 然后再看有没有上位机发送的 write 信息)
      思路和modbus一样

dump取证

复制代码
什么是 dump ? 内存转储文件 简单的说就是 快照截取在那个时间段发生的一切 包括进程 当时正在做的事情 打开的文件等等```
  • 2024金砖大赛-流量分析4
      • 因为这个是检测网址 我们要获取的是误报域名
        • strings 473lt.exe_241125_151443.dmp | grep 'uc' | grep 'http' | head
          • 对于 dmp 进行可以使用 strings 进行筛选
        • strings 473lt.exe_241125_151443.dmp | grep uc | grep -E "^http"
  • 2024金砖大赛-流量分析5
    • 在上一步的数据文件`473lt.exe_241125_151443.dmp`分析中,我们定位到了此程序为未授权客户端。而此程序在启动时,实际会提交一次加密的授权码(密文长度至少20字符以上,位数不够会以=特殊符号进行补全)。请找到这个加密的授权码,进行md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为flag{MD5小写},例如假设加密的授权码是xxxxx,那么提交范例为:flag{fb0e22c79ac75679e9881e6ba183b354}

    • strings 473lt.exe_241125_151443.dmp | grep -E "^[A-Za-z0-9+/]{20,}=$" | grep -v "^http"
      ^[A-Za-z0-9+/]{20,} 表示匹配20个以上的 字符 最后去除 http 域名类的 以 = 结尾

      "^[A-Za-z0-9+/]{20,}=$" 正则匹配 20 字符以上

      • 根据题目要求
    • 最有可能得就是 1,3

      dump 取证是比较简单的 主要就是根据题目的信息进行 查找关键词 多使用正则


vmem取证

  • 取证分析的基本命令 磁盘分析 .vmem 磁盘文件
    • vol的基本命令 (vol 2)
      • python vol.py -f [image] ‐-profile=[profile][plugin] 命令
        • 其中 -f 后面加的是要取证的文件, --profile 后加的是工具识别出的系统版本, [plugin] 是指使用的插件,其中默认存在一些插件,另外还可以自己下载一些插件扩充
          imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 --profile 中带上对应的操作系统,后续操作都要带上这一参数
          pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
          pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
          psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
          cmdscan:可用于查看终端记录
          notepad:查看当前展示的 notepad 文本(--profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
          filescan:扫描所有的文件列表
          linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E 'png|jpg|gif|zip|rar|7z|pdf|txt|doc'
          dumpfiles:导出某一文件(指定虚拟地址)
          需要指定偏移量 -Q 和输出目录 -D
          mendump:提取出指定进程,常用foremost 来分离里面的文件
          需要指定进程-p [pid] 和输出目录 -D
          editbox:显示有关编辑控件(曾经编辑过的内容)的信息
          screenshot:保存基于GDI窗口的伪截屏
          clipboard:查看剪贴板信息
          iehistory:检索IE浏览器历史记录
          systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
          hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
          mftparser:恢复被删除的文件
          svcscan:扫描 Windows 的服务
          connscan:查看网络连接
          envars:查看环境变量
          dlllist: 列出某一进程加载的所有dll文件
          hivelist: 列出所有的注册表项及其虚拟地址和物理地址
          timeliner: 将所有操作系统事件以时间线的方式展开
    • 1、volatility.exe -f vol_easy.vmem imageinfo
      • 获取 磁盘所挂载的系统信息

      • 这个profile 翻译就是个人信息 Win7SP1x64

      • 然后扫描一下 这个磁盘下的文件

    • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 filescan>file1.txt
      • 最好使用正则进行 匹配一下 我们想要的内容

      • 题目一问的是 webshell的密码

      • web shell 后缀筛选一下 php|jsp 后缀

      • 查看到 之后我 复制一下前面的内存地址

      • 使用 dumpfiles 进行还原文件

      • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007ddf2280 -D .

        • -Q 内存地址
        • -D 存放的目录
      • 拿到之后放到 010 发现密码

  • 黑客使用的木马连接工具叫什么(比如xx.exe)?(仅首字母大写)
    • 程序的运行就需要 进程 列出进程的插件 pslist
      • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 pslist>file2.txt
    • AntSword

  • 黑客使用的木马连接工具的位置在哪里(比如C:\xxxx\xx.exe) ?
    • 查找一下所有 cmd 命令 因为cmd命令执行的时候是自带路径的 cmdline插件
      • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 cmdline>cmdline.txt

      • C:\Tools\AntSword-Loader-v4.0.3-win32-x64\AntSword.exe

  • 黑客获取到的FLAG是什么?
    • 依旧是拿到上面的文件使用正则进行搜索

    • 然后进行还原 dumpfiles 即可

    • iehistory 导出浏览记录
      • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 iehistory>iehistory.txt
  • 黑客入侵时,使用的系统用户名是什么?
    • 1 可以从 iehosty中获取

    • 也可以使用插件 :volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 systeminfo > sys.txt

  • 黑客创建隐藏账户的密码是多少?
    • 查看 蚁剑的 pid 1716 memdump进程读取插件

    • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 memdump -p 1716 -D .

      • -p 指定进程id 导出之后使用 010 打开

        因为是创建用户 所以 搜索 net user

  • 黑客首次操作靶机的关键程序是什么?
    • pstree 查看进程树 哪个程序先进行的
      • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 pstree

      • 最后得出 lsass.exe
        攻击者利用方式: lsass.exe
        转储lsass内存(使用mimikatz、procdump等工具)
        提取哈希和凭据
        密码破解或哈希传递攻击
        横向移动和权限提升

  • 该关键程序的PID是多少?
    • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007dc47600 -D .

    • pid 456

    • 方法二 就是我们知道了是 lsass.exe这个程序的问题

      • 我们之间扫描 所有和 lsass 有关的内存
        • volatility.exe -f vol_easy.vmem --profile=Win7SP1x64 yarascan -Y "lsass.exe" -C 100
          • yarascan 内存扫描插件
          • -Y 指定程序
          • -C 指定上下文字节数
        • 最后发现 pid是 456

  • 该关键程序的内存文件保存到了什么地方?
    • 根据上面的 yearscan 扫描结果

模块四:安全加固

为达到安全标准要求,各位选手需要对一台windows服务和一台Linux进行部分安 全配置加固,加固内容为账号配置、网络策略、远程服务方向,请按照任务内容中的要 求进行部署配置。

1.win安全基线加固

在win安全加固服务上,打开"控制面板"中的"管理工具"页面,完成以下4项 操作:

A.配置"本地安全策略"中"本地策略">"用户权限分配"内容下"从远程系统 强制关机"策略只允许Administrtors组进行操作

B.配置"本地安全策略"中"帐户策略"->"密码策略"内容下"密码必须符合复 杂性要求"策略为开启状态

C.配置"本地安全策略"中"帐户策略"->"密码策略"内容下"密码长度最小值" 为8个字符

D.配置"计算机管理"中"系统工具"->"本地用户和组"->"用户"内容下,选 择Guest用户右键选择属性,勾选"帐户已禁用"

E.配置完成后,点击主机桌面的"安全基线加固检查"脚本将会弹出一个windows 窗口。如基线策略 都修复完成,窗口会输出一个flag信息,将窗口输出的flag信息进行 提交。

2.关闭不必要的端口

win安全加固服务器目前不需要用户进行远程登陆操作,请关闭服务器的3389端口 服务。远程登陆服务端口关闭后,点击主机桌面的"远程登陆检查"脚本将会弹出一个 windows窗口。如3389端口关闭,窗口会输出一个flag信息,将flag提交,如窗口输 出其他信息,则说明远程登陆服务端口并未关闭

Remote Desktop Services"服务

3.文件配置 win安全加固服务为避免未检测到隐藏恶意文件的情况,请在文件夹选项中,设置 隐藏文件可见。设置完成后,可以在桌面查看到隐藏的文件"desktop_flag.txt",直接提 交此隐藏文件中的内容

4.Linux安全基线加固

在win选手主机上,使用xshell登陆linux安全加固服务器后,先执行命令"sudosu-root"(输入linxu安全加固服务admin用户密码)切换到root用户,然后完成以下6项 的安全加固操作,

任意一项没有完成则不得分:

A.确保没有空口令账号

B.确保密码最长过期天数为90天,最小过期天数为80天,最小长度为8,密码过 期警告天数为7天

C.确保不能通过root进行远程ssh登陆

D.确保uid为0的用户只有root

E.确保不存在.netrc和.rhosts文件

F.确保所有与umask相关的配置文件中,umask的值都是022

G.配置完成后,执行程序"/root/check/linux"。

如基线策略都修复完成,程序会输 出一个flag信息,将此flag提交 .

复制代码
A:
jj::1000:1000::/home/jj:/bin/sh
cc:x:1001:1001::/home/cc:/bin/sh
第二个字段不能为空。
方法二:awk -F: '($2 == "") {print $1}' /etc/passwd

B:
# 编辑密码策略配置文件
vim /etc/login.defs

# 修改以下参数:
PASS_MAX_DAYS   90
PASS_MIN_DAYS   80
PASS_MIN_LEN    8
PASS_WARN_AGE   7

# 对于已存在用户,使用chage命令
chage -M 90 -m 80 -W 7 <username>

C:
# 编辑SSH配置
vim /etc/ssh/sshd_config

# 找到并修改
PermitRootLogin no

# 重启SSH服务
systemctl restart sshd
# 或
service sshd restart

D:
# 检查uid为0的用户
awk -F: '($3 == 0) {print $1}' /etc/passwd

# 如果有其他uid为0的用户,修改其UID
usermod -u <new_uid> <username>

E:
# 查找并删除这些文件
find / -name ".netrc" -type f -delete
find / -name ".rhosts" -type f -delete

# 或者备份后删除
find / -name ".netrc" -exec mv {} {}.bak \;
find / -name ".rhosts" -exec mv {} {}.bak \;


F: 确保所有与umask相关的配置文件中,umask的值都是022 
# 检查所有umask相关配置文件
grep -r "umask" /etc/ /root/ ~/

# 修改主要配置文件
vim /etc/profile
# 添加或修改
umask 022

vim /etc/bashrc
# 添加或修改  
umask 022

vim /etc/login.defs
# 确保有
UMASK 022

# 重新加载配置
source /etc/profile

5.Linux网络策略加固

在win选手主机上,使用xshell登陆linux安全加固服务器后,先执行命令"sudosu-root"(输入linxu安全加固服务admin用户密码)切换到root用户,然后完成以下2项 的安全加固操作,任意一项没有完成则不得分

A.Linux服务器需要尽量避免在内网中被发现,请使用iptables禁止icmp协议,降 低linux服务器被发现的几率 B.Linux服务器本地搭建了一个redis服务,请用iptables或其他方法禁止任何外部 网络来访问redis的默认服务端口,但本地可以访问

C.配置完成后,执行程序"/root/check/network"。

如网络策略配置无误,窗口会输 出一个flag信息,将flag提交

复制代码
A:
# 使用iptables禁止ICMP
iptables -A INPUT -p icmp --icmp-type any -j DROP
iptables -A OUTPUT -p icmp --icmp-type any -j DROP

# 或者更严格地禁止所有ICMP
iptables -A INPUT -p icmp -j DROP
iptables -A OUTPUT -p icmp -j DROP

# 保存iptables规则
service iptables save
# 或
iptables-save > /etc/sysconfig/iptables


B:
# 允许本地访问Redis
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 6379 -j ACCEPT
iptables -A INPUT -s ::1 -p tcp --dport 6379 -j ACCEPT

# 禁止其他所有IP访问Redis端口
iptables -A INPUT -p tcp --dport 6379 -j DROP

# 保存规则
service iptables save

----------------------------
# 编辑Redis配置文件
vim /etc/redis/redis.conf
# 或
vim /etc/redis.conf

# 修改绑定地址,只监听本地
bind 127.0.0.1 ::1

# 重启Redis服务
systemctl restart redis
# 或
service redis restart


iptables -L -n

6.nginx安全加固

Linux服务器部署了一个nginx服务,请修改nginx配置文件,使nginx禁止访问 /backup路径下的所有文件。配置完成后,先执行命令"sudosu-root"(输入admin用户 密码),然后执行程序"/root/check/nginx"。如配置无误,程序会输出标题为"Nginx安 全加固"的flag信息,将flag提交

复制代码
# 编辑配置文件
vim /etc/nginx/nginx.conf
# 或
vim /etc/nginx/conf.d/default.conf

server {
    listen 80;
    server_name _;
    
    # 其他配置...
    
    # 禁止访问/backup路径
    location /backup {
        deny all;
        return 403;
    }
    
    # 或者更严格的配置
    location ~* ^/backup {
        deny all;
        return 404;
    }
}

7.nginx安全加固2

Linux服务器部署了一个nginx服务,请修改nginx配置文件,使nginx只允许GET、 POST请求(注:其他请求方式不返回200状态码即算完成要求)。配置完成后,先执 行命令"sudosu-root"(输入admin用户密码),然后执行程序"/root/check/nginx"。如 配置无误,程序会输出标题为"Nginx安全加固2"的flag信息,将flag提交

复制代码
# 测试配置文件语法
nginx -t

# 重启Nginx服务
systemctl restart nginx
# 或
service nginx restart



server {
    listen 80;
    server_name _;
    
    # 限制HTTP请求方法,只允许GET和POST
    if ($request_method !~ ^(GET|POST)$ ) {
        return 405;
    }
    
    # 或者使用location块中的limit_except(更推荐)
    location / {
        limit_except GET POST {
            deny all;
        }
        # 其他配置...
    }
    
    # 其他配置...
}

模块五:应急响应

复制代码
历史命令,文件

cron ,任务

网络连接

cpu,内存进程

webshell,马子

异常命令,系统进程

你作为一个企业的信息安全工程师,收到了一条Linux主机失陷的告警信息,经初 步研判为挖矿木马感染。现需要你登陆到失陷主机上,清理异常的进程和文件,使失陷 主机恢复正常运行。

1.查找异常进程所在目录

请分析失陷主机上的进程,查找占用CPU最高的进程文件所在的目录路径(注: 只需要进程文件所在的目录路径,不定位到文件,路径末尾不要添加/号),并将目录路 径进行md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为 flag{MD5小写},例如假设目录路径是/opt,那么提交范例为: flag{68ab1268abb7e5f5688810968df97d6b}

复制代码
top   cpu最高
找到进程的pid 
ls -al /proc/<pid>/exe
例:找到command find / -name "kthread*" 2>/dev/null

ss -lntup #快速排查端口占用和服务进程
# 查看 CPU 占用最高的前 5 个进程
ps aux --sort=-%cpu | head -5

复制代码
# 查看指定 PID 的进程详情
$ lsof -p 12345
# 输出示例
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx    12345 www-data  6u  IPv4  123456      0t0  TCP *:80 (LISTEN)
nginx    12345 www-data  7r   REG   8,1    12345  98765 /var/log/nginx/error.log
# 假设 PID 为 1234
PID=$(ps aux --sort=-%cpu | grep -v USER | head -1 | awk '{print $2}')
ls -l /proc/$PID/exe

#查看所有进程加载的 .so 文件
lsof -p 1 -c ".*" | grep .so
# 针对特定进程 (如 PID 1234)
lsof -p 1234 | grep .so

2.异常环境变量检测

由于失陷主机登陆时,会自动执行一个异常的二进制文件。**请查看失陷主机的环境 变量相关的profile配置文件,**从profile配置文件内容中,找到这个执行的异常二进制 文件,并提交这个文件的名称(注:只需要文件的名称即可)。提交时将文件名称进行 md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为flag{MD5小 写},例如假设文件名称是name,那么提交范例为: flag{b068931cc450442b63f5b3d276ea4297}

复制代码
cat /etc/profile

/tmp/.hidden/evil_bin &

找文件名

# 查看 /etc/profile 及其包含的 profile.d 目录
cat /etc/profile | grep -i "bin\|exe\|path"
ls -l /etc/profile.d/

# 检查 .bash_profile 和 .profile
cat ~/.bash_profile | grep -i "bin\|exe\|path"
cat ~/.profile | grep -i "bin\|exe\|path"
# 检查 .bashrc (非登录式 shell 也会读取)
cat ~/.bashrc | grep -i "bin\|exe\|path"

grep -E "exec|&|nohup|sleep|.*bin.*" /etc/profile筛选一下

3.寻找异常守护进程

当前关闭失陷主机占用CPU最高的进程时,该进程又会再次启动,很明显失陷主 机存在一个守护进程来确保占用CPU最高的进程不能被关闭。请寻找这个异常的守护 进程,并提交这个守护进程文件名称(注:只需要文件的名称即可)。提交时将文件名 称进行md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为 flag{MD5小写},例如文件名称是name,那么提交范例为: flag{b068931cc450442b63f5b3d276ea4297 }

复制代码
crontab -l  守护进程

服务支持:
systemctl list-units --type=service
systemctl list-unit-files | grep enabled
systemctl list-units --type=service | grep -v systemd

systemctl list-units --type=service --state=running
systemctl cat xxx.service


init脚本 ( init ,rc* )
ls /etc/init.d/
ls /etc/rc*.d/S*

/etc/crontab
/etc/cron.d/*
/etc/cron.*
都检查一下

# 查找所有包含 "service" 的服务文件
ls -l /etc/systemd/system/*.service
# 检查服务状态
systemctl list-unit-files | grep .service
# 查看 root 用户的定时任务
crontab -u root -l
# 检查系统级定时任务
ls -l /etc/cron*
# 查看 rc.local 内容
cat /etc/rc.local
# 常见的异常行示例:
# /usr/bin/minerd > /dev/null 2>&1 &

4.清理所有异常进程

请详细检查失陷主机的开机启动项、profile、计划任务等配置文件,并根据配置文 件中的线索删除恶意文件,停止异常占用CPU的进程。当你确认所有的异常进程和文 件都清理完成后,执行命令/root/flags,执行后,flags程序将会在等待60秒后完成启动。 如失陷主机所有异常清理完成,flags程序将会输出flag信息,请提交此flag信息。如 任意一项异常进程或文件未清理完成,则会输出"异常进程或文件未处理完毕",请继 续进行清理

复制代码
杀死异常进程,删除异常文件,清除crontab,清除profile中的异常行。

然后运行 /root/flags,等待60秒后得到flag。

杀异常进程
kill -9 <pid>

删除恶意文件
rm -f /tmp/.hidden/miner
rm -f /tmp/.hidden/evil_bin

清除定时
# 删系统级定时任务
rm -f /etc/cron.d/miner
# 清空整个 crontab
crontab -r


清除 systemd 服务
systemctl disable miner.service
systemctl stop miner.service
rm -f /etc/systemd/system/miner.service

5.异常webshell文件分析

在此次的入侵过程中,黑客向失陷主机上传过webshell文件。请分析失陷主机上监 测到的流量包/var/pacp/web_http.pcap,找到黑客上传的webshell木马文件名(注:文件 名包括了文件的扩展名),并将文件名称进行md5加密后,将小写的md5密文进行作 为flag信息进行提交,提交格式为flag{MD5小写},例如假设黑客上传的webshell木马 文件名name,那么提交范例为:flag{b068931cc450442b63f5b3d276ea4297}

复制代码
流量包
过滤HTTP请求,寻找上传文件的POST请求,找到上传的文件名,比如 shell.php
webshell的文件名。

6.异常webshell文件分析2

在此次的入侵过程中,黑客向失陷主机上传的webshell文件在HTTP数据传输过程 中进行了加密操作。请分析失陷主机上监测到的流量包/var/pacp/web_http.pcap,找到黑 客上传的webshell木马文件解密密钥信息,并将解密密钥信息进行md5加密后,将小 写的md5密文进行作为flag信息进行提交,提交格式为flag{MD5小写},例如假设 webshell木马文件解密密钥信息为info,那么提交范例为: flag{caf9b6b99962bf5c2264824231d7a40c}

复制代码
在同一个上传请求中,可能有一个参数如 key=abc123 用于解密,那么密钥就是 abc123

key=xxx     类比哥斯拉,冰蝎

7.黑客行为分析

在此次的入侵过程中,黑客曾连接到webshell文件进行过恶意操作。请分析失陷主 机上监测到的流量包/var/pacp/web_http.pcap找到黑客连接webshell后执行的第一条命 令,将第一条命令进行md5加密后,将小写的md5密文进行作为flag信息进行提交, 提交格式为flag{MD5小写},例如假设黑客连接webshell后执行的第一条命令为cmd, 那么提交范例为:flag{dfff0a7fa1a55c8c1a4966c19f6da452}

复制代码
黑客连接上webshell之后,执行的第一条命令。

pass=id
pass=whoami
命令

8.黑客shell权限分析

在此次的入侵过程中,黑客曾连接到webshell文件进行过恶意操作。请分析失陷主 机上监测到的流量包/var/pacp/web_http.pcap,分析黑客连接到webshell后的shell用户权 限。并将shell用户名进行md5加密后,将小写的md5密文进行作为flag信息进行提交, 提交格式为flag{MD5小写},例如假设黑客连接到webshell后的shell用户为user,那 么提交范例为:flag{ee11cbb19052e40b07aac0ca060c23ee}

复制代码
webshell连接之后的 用户名。
看连接后的基本信息,或黑客执行whoami ,id 命令的回显。

9.黑客的文件操作分析

在此次的入侵过程中,黑客曾连接到webshell文件上传过文件flag.txt。请分析失陷 主机上监测到的流量包/var/pacp/web_http.pcap,拿到黑客上传文件flag.txt中的内容并提 交。

复制代码
webshell之后上传的
flag.txt      搜索
分析

10.黑客的提权行为分析

在此次的入侵过程中,黑客曾连接到webshell文件进行过一次提权操作,请分析失 陷主机上监测到的流量包/var/pacp/web_http.pcap,获取黑客进行提权操作中使用到的命 令(注:只需要命令,不需要命令后面的参数等信息),将命令进行md5加密后,将小 写的md5密文进行作为flag信息进行提交,提交格式为flag{MD5小写},例如假设黑 客连接webshell后执行第一条命令为cmd,那么提交范例为: flag{dfff0a7fa1a55c8c1a4966c19f6da452}。

复制代码
提权操作的命令  命令!
find
sudo 

su、chmod、chown、passwd......

11.黑客遗留后门分析 在此次的入侵过程中,黑客曾连接到webshell文件进行了后门IP反弹shell操作, 请分析失陷主机上监测到的流量包/var/pacp/web_http.pcap,获取黑客后门反弹shell外连 的IP,并将反弹shell外连的IP进行md5加密后,将小写的md5密文进行作为flag信 息进行提交,提交格式为flag{MD5小写},例如假设黑客连接到webshell后的shell用 户为192.168.1.1,那么提交范例为:flag{66efff4c945d3c3b87fc271b47d456db}

复制代码
黑客会执行反弹shell的命令的。

在TCP流中查找连接的外部IP。

bash -i >&
nc 
curl 
wget 
php -r '  '

nc 本地IP加端口,id后有返回值,后门端口。

/etc/rc 开机启动

grep -Pnir:递归搜索的强大命令组合。它结合了基础的文本查找功能与高级的正则表达式支持,常用于日志分析、代码审计或配置文件排查

docker run -v /:/mnt --rm -it alpine chroot /mnt sh 直接操作宿主机文件系统。 拥有宿主机的 root 权限

echo 'Z:13bMppLHt$823qI.XBc648gDUJFvNCz/:0:0:asdasd:/root:/bin/bash' >>/etc/passwd


模块六:日志分析

复制代码
作为安全工程师,分析日志是否存在安全风险事件是企业业务安全巡检中的一环。
现有一台Linux服务器,该服务器上分别存在两份中间件日志/var/log/httpd/access_log
和/var/log/nginx/www.zwxa.com_access.log,请分析这两份日志,并按照任务内容中的
要求提交分析出的信息。

同时,这台linux服务也会将用户相关的操作记录到日志secure中,默认情况下,
日志会通过轮替的方式保留日志secure至少180天以上。现这台Linux服务器上在目录
/var/log/secure_anaylist下保留了180天之内所有的用户相关操作日志,请同步分析这个
目录下所有的secure日志,并按照任务内容中的要求提交分析出的信息。

1.apache服务中,访问量最高的IP信息 访问web服务频率较大的IP往往需要重点关注,请分析日志/var/log/httpd/access_log 找到访问量最高的IP。并将ip进行md5加密后,将小写的md5密文进行作为flag信息 进行提交,提交格式为flag{MD5小写},例如假设访问量最高的IP是192.168.1.1,那 么提交范例为:flag{66efff4c945d3c3b87fc271b47d456db}

复制代码
root@kiko:/var/log/apache2# cat access.log | awk '{print $1}'| sort | uniq -c | sort -nr
   1092 18.176.52.175
    763 104.194.8.36
    731 43.198.79.103
    589 18.183.192.249
    456 23.81.40.155
    321 31.223.184.246
    230 95.40.35.45
    217 51.79.67.180
    191 82.117.226.200
    160 51.68.227.243
    145 54.37.74.147
    117 192.187.98.226
    107 148.113.173.7
      5 148.113.182.56
      4 112.224.169.30

2.apache服务中的恶意访问情况 访问web服务的客户端中,可能会发送恶意的请求参数,这些恶意请求需要安全工 程师定期进行进行统计、记录和分析。

请分析日志/var/log/httpd/access_log是否有包含 eval、cmd、func、cgi-bin、jndi、excute、%20、system、exec、passthru、shell_exec、popen、 proc_open这些常见恶意请求关键词的请求记录(注:包含恶意请求关键词的请求记录 即为恶意请求),并找到恶意请求访问频率最高的path路径(注:path路径不包含网址、 分隔符和查询参数,/path中的"/"不是分隔符),并将path路径进行md5加密后,将 小写的md5密文进行作为flag信息进行提交,提交格式为flag{MD5小写},例如假设 path路径是/path,那么提交范例为:flag{c55cc3282a38277657035e8e64b48b60}

复制代码
 cat access.log | awk '{print $7}'| sort | uniq -c | sort -n

3.nginx服务中,访问量最高的IP信息 访问web服务频率较大的IP往往需要重点关注,请分析日志 /var/log/nginx/www.zwxa.com_access.log统计访问量最高IP对web服务的访问次数。并 将次数进行md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为 flag{MD5小写},例如假设访问次数是10,那么提交范例为: flag{d3d9446802a44259755d38e6d163e820}

复制代码
 cat access.log | awk '{print $1}'|grep "18.176.52.175"|  sort | uniq -c | sort -n
   1130 18.176.52.175

4.nginx服务中的扫描探测情况

攻击者往往会使用HEAD请求来探测web服务的路径是否存在,作为安全工程师, 你需要初步了解web服务被外部扫描的情况。请分析日志 /var/log/nginx/www.zwxa.com_access.log找到web服务被HEAD请求次数最高的path路 径信息。并将path路径进行md5加密后,将小写的md5密文进行作为flag信息进行提 交,提交格式为flag{MD5小写},例如假设path路径是/path,那么提交范例为: flag{c55cc3282a38277657035e8e64b48b60}

复制代码
root@kiko:/var/log/apache2# cat access.log| grep "HEAD" | awk '{print $7}'|  sort | uniq -c | sort -n
      1 /
      1 /admin
      1 /.git/FETCH_HEAD
      1 /.git/HEAD
      1 /me
      1 /you
      2 /baba
      3 /mama

5.nginx中的后台登陆服务 nginx服务在path路径/login和/admin/login都提供了后台登陆服务,并使用POST 方式来传递登陆数据(比如用户名、密码等),请分析日志 /var/log/nginx/www.zwxa.com_access.log找到进行后台登陆操作次数最多的IP。并将ip 进行md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为flag{MD5 小写},例如假设访问量最高的IP是192.168.1.1,那么提交范例为: flag{66efff4c945d3c3b87fc271b47d456db}

后台登录次数最多的ip POST

6.nginx中的后台操作记录 在nginx服务中,以/admin开头的path路径都是后台操作,同时后台参数都是已 POST请求来传递数据。请分析日志/var/log/nginx/www.zwxa.com_access.log找到除后台 登陆外,频率最多的后台操作,并提交此后台操作访问的详细path路径信息。提交时将 详细path路径信息进行md5加密后,将小写的md5密文进行作为flag信息进行提交, 提交格式为flag{MD5小写},例如假设详细path路径信息是/path,那么提交范例为: flag{c55cc3282a38277657035e8e64b48b60}

复制代码
/admin

7.定位有哪些IP在爆破 作为一个安全工程师,你需要知道有哪些IP在暴力破解服务器的远程登陆密码。 请分析目录/var/log/secure_anaylist下所有的secure文件,找到登陆失败次数最多的IP。 并将ip进行md5加密后,将小写的md5密文进行作为flag信息进行提交,提交格式为 flag{MD5小写},例如假设登陆失败次数最多的IP是192.168.1.1,那么提交范例为: flag{66efff4c945d3c3b87fc271b47d456db}

复制代码
grep failed  类似
cat xxx | grep "Failed" | awk   | sort | uniq -c | xxxx
登录失败次数最多的ip

8.定位爆破用户名字典 在排查远程登陆暴力破解时,除了IP信息外,同时需要了解外部用户在针对什么 用户名进行爆破。分析目录/var/log/secure_anaylist下所有的secure文件,找到登陆失败 次数最多的用户名。并将用户名进行md5加密后,将小写的md5密文进行作为flag信 息进行提交,提交格式为flag{MD5小写},例如假设登陆用户名是user,那么提交范例 为:flag{ee11cbb19052e40b07aac0ca060c23ee}

复制代码
登陆失败 次数最多的用户名 
cat ... |grep 'Failed'|awk '{print $9}'|sort|uniq -c|sort -nr

Apr 21 13:19:47 192.168.1.100 sshd[1033]: Failed password for oracle from 61.177.172.136 port 22 ssh2
Oct 15 11:48:25 192.168.1.100 sshd[1034]: Failed password for root from 103.21.244.15 port 22 ssh2
Jan 28 23:36:05 192.168.1.100 sshd[1035]: Failed password for root from 61.177.172.136 port 22 ssh2
Jul 3 02:54:03 192.168.1.100 sshd[1036]: Failed password for guest from 61.177.172.136 port 22 ssh2
Aug 12 11:20:23 192.168.1.100 sshd[1037]: Failed password for admin from 61.177.172.136 port 22 ssh2
Aug 4 08:57:33 192.168.1.100 sshd[1038]: Failed password for root from 61.177.172.136 port 22 ssh2
Jan 27 03:22:29 192.168.1.100 sshd[1039]: Failed password for ubuntu from 112.85.42.227 port 22 ssh2
Nov 12 01:24:17 192.168.1.100 sshd[1040]: Failed password for ubuntu from 112.85.42.227 port 22 ssh2
Mar 27 20:20:23 192.168.1.100 sshd[1041]: Failed password for guest from 185.163.126.99 port 22 ssh2
Nov 24 16:49:13 192.168.1.100 sshd[1042]: Failed password for user from 103.21.244.15 port 22 ssh2
Mar 25 20:24:04 192.168.1.100 sshd[1043]: Failed password for guest from 103.21.244.15 port 22 ssh2
Dec 4 09:02:20 192.168.1.100 sshd[1044]: Failed password for user from 103.21.244.15 port 22 ssh2
Mar 26 08:30:37 192.168.1.100 sshd[1045]: Failed password for user from 45.155.205.233 port 22 ssh2
Apr 4 16:15:08 192.168.1.100 sshd[1046]: Failed password for ubuntu from 185.163.126.99 port 22 ssh2

9.定位增加的用户 linux服务器在今年5月曾经添加过一个用户,请分析目录/var/log/secure_anaylist 下所有的secure文件,找到这个用户名。并将用户名进行md5加密后,将小写的md5 密文进行作为flag信息进行提交,提交格式为flag{MD5小写},例如假设登陆用户名是 user,那么提交范例为:flag{ee11cbb19052e40b07aac0ca060c23ee}

复制代码
5月份添加的用户

May 15 10:23:15 192.168.1.100 useradd[2045]: new user: name=hacker, UID=1001, GID=1001, home=/home/hacker, shell=/bin/bash

cat ...|grep "useradd"

10.定位经常登陆的IP linux服务器的远程ssh登陆地域通常是固定的,请分析目录/var/log/secure_anaylist 下所有的secure文件,找到登陆成功次数最多的IP。并将ip进行md5加密后,将小写 的md5密文进行作为flag信息进行提交,提交格式为flag{MD5小写},例如假设登陆 成功次数最多的IP是192.168.1.1,那么提交范例为: flag{66efff4c945d3c3b87fc271b47d456db}

复制代码
cat ... |grep 'Accepted'|awk '{print $11}'|sort|uniq -c|sort -nr

strings 473lt.exe_241125_151443.dmp | grep uc | grep http

模块七:渗透测试

ctf : rce 审计

docker !!!

1.ZWPHP 服务器http://192.168.239.131:83部署有主机管理系统,请分析并利用找到的漏洞拿 到flag。(备注:flag文件路径为:"/flag")

php

2.SSTI 在网址http://192.168.239.131:82找到漏洞并利用找到的漏洞获取flag文件信息(备 注:flag文件路径为:"/flag")

SSTI python

flask

pip install fengjin

python -m fengjin webui

3.CMPHP 在网址http://192.168.239.131:84页面存在漏洞,请找到并利用漏洞获取flag文件信 息(备注:flag文件路径为:"/flag")

代码审计 php

4.FTP密码破解

内网其中一个服务器中存在ftp服务,其管理的一个用户admin密码过于简单,请 尝试破解,并且在破解完成后,使用admin用户登陆ftp拿到flag.txt文件的内容并提交。

暴力破解


总结

懂的多,很简单,就好了。


相关推荐
Bruce_Liuxiaowei2 小时前
网站敏感文件_目录大全(分类记忆+风险标注)
运维·网络·网络协议·http·网络安全·https
脆皮瞎2 小时前
内网域渗透-信息收集
网络·网络安全
咕噜签名-铁蛋2 小时前
QUIC协议在云服务器场景下的技术优势与实践应用
计算机网络
老猿讲编程2 小时前
【车载信息安全系列1】车载Linux系统常用的OpenSSL, HSE加密工作原理
linux·网络
独角鲸网络安全实验室2 小时前
高危预警!React核心组件曝CVSS 9.8漏洞,数百万开发者面临远程代码执行风险
运维·前端·react.js·网络安全·企业安全·漏洞·cve-2025-11953
独角鲸网络安全实验室2 小时前
高危预警!React CVE-2025-55182 突破 RSC 防护,未授权 RCE 威胁 39% 云应用
前端·react.js·网络安全·前端框架·漏洞·rce·cve-2025-55182
饱饱要坚持可持续发展观2 小时前
Linux 防火墙开放/限制端口
linux·运维·网络
哈利路亚胡辣汤2 小时前
访问网页的全过程
网络·面试
2401_890443023 小时前
传输层协议TCP
网络·网络协议·tcp/ip