网络安全技术期末考试

网络安全技术期末考试

理论部分

第一章 绪论

  • 网络安全的三要素(CIA)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    次要的属性:不可否认性、可靠性、可信性。

第二章 密码学基础知识

  1. 柯克霍夫原则
    在这里插入图片描述

  2. 古典密码体制
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 单钥密码体制的基本原理(了解)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  4. 双钥密码体制的基本原理
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述5. RSA密钥产生过程(熟练掌握、可能大题)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 密码分析的四种方式
    在这里插入图片描述

第三章 信息认证技术

  1. 身份认证的工作原理
    在这里插入图片描述
    在这里插入图片描述

  2. MD5码的特点
    在这里插入图片描述
    在这里插入图片描述

  3. 数字签名的工作流程(利用RSA实现保密的数字签名)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. Hash(MD5)---->FLAG匹配(可能大题)

第四章 网络侦查技术

网络侦查网站扫描(可能大题)
https://www.shodan.io/

product:"Apache httpd" country:"CN" port:"80,443" org:"Tencent" city:"Shenzhen" after:"01-01-23"

在这里插入图片描述
https://fofa.info
https://www.zoomeye.org/

在这里插入图片描述

www.internic.net/whois.html
在这里插入图片描述

第五章 网络扫描技术

  1. 主机扫描的类型
    在这里插入图片描述
  2. 端口扫描的三个方法
    在这里插入图片描述

第六章 拒绝服务攻击

  1. 风暴型拒绝服务攻击、分类与区别
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    S
    在这里插入图片描述
  2. 拒绝服务攻击的防范手段
    在这里插入图片描述

第七章 口令攻击

  1. 口令攻击的方法
    在这里插入图片描述
    在这里插入图片描述

2.== 暴力破解工具的使用(可能大题)==

第八章 访问控制技术

  • 访问控制的类型
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

第九章 防火墙技术

  1. 包过滤技术ACL的命令(两种访问控制列表的设计)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 四种防火墙体系结构的区别
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

第十章 特洛伊木马

  1. 特洛伊木马的特点
    在这里插入图片描述

  2. 恶意代码的区别
    在这里插入图片描述

实操部分

  1. 常识
    在这里插入图片描述

  2. Hash---->Flag

  3. RSA的破解与加密

  4. 隐写
    LSB

import base64
import binascii
import struct
import re
import os
import subprocess


def analyze_stego_image(base64_file):
    """分析Base64编码的PNG图像中的隐写信息"""
    try:
        # 读取Base64数据并解码为PNG
        with open(base64_file, 'r') as f:
            base64_data = f.read().strip()

        try:
            png_data = base64.b64decode(base64_data)
        except binascii.Error:
            return ["Base64解码失败,请检查数据格式是否正确"]

        # 保存解码后的图像
        output_file = 'image.png'
        with open(output_file, 'wb') as f:
            f.write(png_data)

        print(f"图像已成功保存为 {output_file}")

        # 执行快速隐写分析
        results = []

        # 1. 检查文件末尾附加数据
        if check_trailing_data(png_data):
            results.append("发现文件末尾附加数据")

        # 2. 检查PNG块结构
        if check_png_chunks(png_data):
            results.append("发现异常PNG数据块")

        # 3. 搜索可打印字符串
        text_flags = search_text_flags(png_data)
        if text_flags:
            results.append(f"发现文本标志: {text_flags}")

        # 4. 尝试使用外部工具分析
        tools_results = run_external_tools(output_file)
        results.extend(tools_results)

        return results or ["未发现明显隐写信息,建议使用专业工具深度分析"]

    except Exception as e:
        return [f"处理过程中出错: {str(e)}"]


def check_trailing_data(data):
    """检查PNG文件末尾是否有附加数据"""
    # PNG文件以IEND块结束
    iend = b'IEND'
    iend_pos = data.rfind(iend)

    if iend_pos == -1:
        return False

    # IEND块固定12字节长 (4字节长度 + 4字节类型 + 4字节CRC)
    iend_end = iend_pos + 12

    # 检查文件末尾是否有额外数据
    return len(data) > iend_end


def check_png_chunks(data):
    """检查异常PNG数据块"""
    # 跳过PNG签名 (8字节)
    pos = 8
    while pos < len(data):
        # 读取块长度 (4字节)
        if pos + 4 > len(data):
            break
        length = struct.unpack('>I', data[pos:pos + 4])[0]
        pos += 4

        # 读取块类型 (4字节)
        if pos + 4 > len(data):
            break
        chunk_type = data[pos:pos + 4]
        pos += 4

        # 跳过数据
        if pos + length > len(data):
            break
        pos += length

        # 跳过CRC
        if pos + 4 > len(data):
            break
        pos += 4

        # 检查可疑块类型
        if chunk_type not in [b'IHDR', b'IDAT', b'IEND', b'PLTE', b'tRNS', b'gAMA', b'cHRM']:
            return True

    return False


def search_text_flags(data):
    """在二进制数据中搜索文本标志"""
    # 尝试不同编码
    try:
        text = data.decode('ascii', errors='ignore')
    except UnicodeDecodeError:
        text = ""

    flags = []

    # 常见CTF标志格式
    patterns = [
        r'CTF\{.*?\}',
        r'flag\{.*?\}',
        r'FLAG\{.*?\}',
        r'[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}'
    ]

    for pattern in patterns:
        matches = re.findall(pattern, text)
        flags.extend(matches)

    return flags


def run_external_tools(image_path):
    """尝试使用外部工具进行分析"""
    results = []

    # 1. 使用strings命令搜索文本
    try:
        strings_output = subprocess.check_output(
            ['strings', image_path],
            text=True,
            stderr=subprocess.DEVNULL
        )

        # 在strings输出中搜索标志
        text_flags = []
        patterns = [
            r'CTF\{.*?\}',
            r'flag\{.*?\}',
            r'FLAG\{.*?\}'
        ]

        for pattern in patterns:
            matches = re.findall(pattern, strings_output)
            text_flags.extend(matches)

        if text_flags:
            results.append(f"使用strings发现文本标志: {text_flags}")
    except (subprocess.CalledProcessError, FileNotFoundError):
        pass

    # 2. 尝试使用exiftool查看元数据
    try:
        exiftool_output = subprocess.check_output(
            ['exiftool', image_path],
            text=True,
            stderr=subprocess.DEVNULL
        )

        # 检查是否有可疑元数据
        if "Comment" in exiftool_output or "Description" in exiftool_output:
            results.append("ExifTool发现可疑元数据")
    except (subprocess.CalledProcessError, FileNotFoundError):
        pass

    # 3. 使用file命令检查文件类型
    try:
        file_output = subprocess.check_output(
            ['file', image_path],
            text=True,
            stderr=subprocess.DEVNULL
        )

        if "data" in file_output.lower():
            results.append("File命令发现文件包含附加数据")
    except (subprocess.CalledProcessError, FileNotFoundError):
        pass

    return results


if __name__ == "__main__":
    base64_file = "file.txt"  # 包含Base64数据的文件

    print("开始分析隐写图像...")
    results = analyze_stego_image(base64_file)

    print("\n分析结果:")
    for i, result in enumerate(results, 1):
        print(f"{i}. {result}")

    print("\n建议下一步操作:")
    print("1. 使用zsteg检测LSB隐写: zsteg image.png")
    print("2. 使用steghide尝试提取嵌入文件: steghide extract -sf image.png")
    print("3. 使用binwalk检查文件嵌入: binwalk image.png")
    print("4. 使用hex编辑器检查文件: hexdump -C image.png | less")
    print("5. 尝试各种隐写密码: steghide extract -sf image.png -p 'password'")

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PNG
在这里插入图片描述

import os

def separate_files(input_file):
    with open(input_file, 'rb') as f:
        data = f.read()
    
    # 查找PNG文件的IEND块结尾位置
    iend_pos = data.rfind(b'IEND\xaeB`\x82')
    
    if iend_pos == -1:
        raise ValueError("无效的PNG文件或未找到IEND标记")
    
    # IEND块完整结束位置(IEND标记 + 4字节CRC)
    png_end = iend_pos + 8
    
    # 分离PNG主体和隐藏文件
    png_data = data[:png_end]
    hidden_data = data[png_end:]
    
    if not hidden_data:
        print("未检测到隐藏文件")
        return
    
    # 生成输出文件名
    base_name = os.path.splitext(input_file)[0]
    png_output = f"{base_name}_visible.png"
    hidden_output = f"{base_name}_hidden.bin"
    
    # 保存分离后的文件
    with open(png_output, 'wb') as f:
        f.write(png_data)
    
    with open(hidden_output, 'wb') as f:
        f.write(hidden_data)
    
    print(f"分离成功!\n- 可见部分: {png_output}\n- 隐藏数据: {hidden_output}")
    print(f"隐藏文件大小: {len(hidden_data)} 字节")

    # 检测常见文件类型
    if hidden_data.startswith(b'PK\x03\x04'):
        print("检测到ZIP文件格式,尝试重命名...")
        os.rename(hidden_output, f"{base_name}_hidden.zip")
        print("重命名为ZIP文件")
    elif hidden_data.startswith(b'Rar!'):
        print("检测到RAR文件格式,尝试重命名...")
        os.rename(hidden_output, f"{base_name}_hidden.rar")
        print("重命名为RAR文件")

if __name__ == "__main__":
    input_filename = "QR_code.png"
    separate_files(input_filename)
  1. gif文件的拆分
  2. 音频分析
  3. 流量包的分析
    在这里插入图片描述
  4. 编码
    文言文网站:https://ide.wy-lang.org/
    http://ctf.ssleye.com/
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Network_Engineer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值