活动介绍
file-type

CISP-PTE培训精华:PPT讲义获取与系统复习要点

5星 · 超过95%的资源 | 下载需积分: 49 | 182.88MB | 更新于2025-01-27 | 34 浏览量 | 5 评论 | 339 下载量 举报 28 收藏
download 立即下载
在深入探讨文件内容之前,先对标题、描述和标签进行剖析,挖掘其中的知识点。根据提供的信息,我们可以得知这是一份有关PTE(Penetration Testing Engineer,渗透测试工程师)认证的PPT培训资料。这涉及到的信息点涵盖了以下几个方面: 1. CISP-PTE认证介绍 2. 渗透测试的概念与重要性 3. 培训资料内容概览 4. 学习方式的推荐 首先,让我们详细探讨CISP-PTE认证。CISP(Certified Information Security Professional)是信息安全专业人士资格认证,由国际信息系统安全认证协会(ISC)²) 授权颁发。该认证在全球范围内被广泛认可,并作为信息安全领域专业能力的象征。PTE作为CISP认证中的一个专项,专注于渗透测试。渗透测试是一种安全评估方法,通过模拟黑客攻击的方式检验网络、系统及应用程序的安全漏洞。获得CISP-PTE认证,意味着信息安全人员在渗透测试领域具备了理论知识和实战技能。 接下来,我们来了解渗透测试本身。渗透测试的核心目的是发现系统的安全漏洞,并评估这些漏洞被利用时可能造成的风险。一个成功的渗透测试过程通常包括以下几个阶段: - 预备阶段:此阶段主要涉及测试前的规划,包括目标定义、规则制定、权限确认等; - 侦察阶段:收集目标系统相关信息,如服务、版本、网络结构等; - 扫描阶段:利用工具对目标系统进行扫描,发现潜在漏洞; - 攻击阶段:利用已发现的漏洞尝试获取未授权的系统访问; - 报告阶段:整理测试结果,形成报告,并给出相应的改进建议。 在【描述】中提到的培训资料,可能包括了渗透测试的基础知识、测试方法、测试工具的使用以及案例分析等内容。此类培训资料对于想要获得CISP-PTE认证的人员,或者希望通过认证提升自身技能的IT专业人员来说,都是非常宝贵的学习资源。 【标签】部分也提示我们,该培训资料聚焦于PTE和CISP,意味着它的内容会围绕CISP-PTE认证的考试范围和技能要求。PTE作为CISP证书的一个方向,对信息安全人员的实战能力提出了具体要求。包括但不限于对攻击和防御技术的掌握、对安全工具的运用能力、对安全策略和最佳实践的理解等。 关于【压缩包子文件的文件名称列表】中提到的“讲课PPT.PDF”,这很可能是一份包含有PPT幻灯片的压缩包文件,它可能是整个培训课程的教学资料。一般而言,PPT文件会包含有清晰的结构、关键概念的解释、图表和实例,甚至可能包含有老师的讲授笔记或是详细的操作指南。这样的文件对于个人复习和自学来说是极有价值的。 综合以上信息,可以推断出该PPT培训资料可能涵盖的知识点有: - CISP-PTE认证的考试指南与准备; - 渗透测试的基本概念、流程和关键环节; - 常用的渗透测试工具及其应用场景; - 实际案例分析,包括渗透测试的执行过程和结果; - 信息安全相关的法律法规和道德准则; - 系统安全策略与防御机制的建立。 对从事信息安全工作的专业人员而言,掌握了上述知识,不仅可以帮助他们顺利通过CISP-PTE认证,更能帮助他们在实际工作中更好地进行风险评估和安全管理。因此,无论是否选择通过培训课程学习,这份PPT资料都是一份极好的参考资料,值得深入研究和学习。

相关推荐

filetype

#include <ntifs.h> ULONG_PTR pPhyAddr[5] = { 0 }; ULONG IsPdeLager = 0; ULONG_PTR newPPEphy = 0; //ULONG_PTR pPhyAddr[5] = { 0 }; ULONG_PTR newPDEphy = 0; ULONG_PTR newPTEphy = 0; ULONG_PTR newphy = 0; typedef struct _HARDWARE_PTE { ULONG64 Valid : 1; ULONG64 Write : 1; ULONG64 Owner : 1; ULONG64 WriteThrough : 1; ULONG64 CacheDisable : 1; ULONG64 Accessed : 1; ULONG64 Dirty : 1; ULONG64 LargePage : 1; ULONG64 Global : 1; ULONG64 CopyOnWrite : 1; ULONG64 Prototype : 1; ULONG64 reserved0 : 1; ULONG64 PageFrameNumber : 36; ULONG64 reserved1 : 4; ULONG64 SoftwareWsIndex : 11; ULONG64 NoExecute : 1; } HARDWARE_PTE, * PHARDWARE_PTE; BOOLEAN InitHook(ULONG_PTR VirtualAddress_s, ULONG Pid, ULONG_PTR offset) { //1获取虚拟内存的PXE PDPTE pde,pte的索引 ULONG PxeIndex = (VirtualAddress_s >> 0x27) & 0x1FF; UINT32 PPEIndex = (VirtualAddress_s >> 0x1E) & 0x1FF; //PPEIndex UINT32 PDEIndex = (VirtualAddress_s >> 0x15) & 0x1FF; //PDEIndex UINT32 PTEIndex = (VirtualAddress_s >> 0xC) & 0x1FF; //DbgBreakPoint(); //2 获取要hook进程的CR3 PEPROCESS pEprocess = NULL; NTSTATUS status = PsLookupProcessByProcessId(Pid, &pEprocess); if (!NT_SUCCESS(status)) { return 0; } HANDLE hMemory = NULL; UNICODE_STRING unName = { 0 }; RtlInitUnicodeString(&unName, L"\\Device\\PhysicalMemory"); OBJECT_ATTRIBUTES obj; InitializeObjectAttributes(&obj, &unName, OBJ_CASE_INSENSITIVE, NULL, NULL); status = ZwOpenSection(&hMemory, SECTION_ALL_ACCESS, &obj); if (!NT_SUCCESS(status)) { return 0; } SIZE_T sizeView = PAGE_SIZE; PVOID sectionObj = NULL; status = ObReferenceObjectByHandle(hMemory, SECTION_ALL_ACCESS, NULL, KernelMode, §ionObj, NULL); if (!NT_SUCCESS(status)) { return status; } ULONG_PTR Cr3PhyAddr = *(PULONG64)((ULONG64)pEprocess + KERNEL_CR3_OFFSET) & ~(0xf); PHYSICAL_ADDRESS Cr3 = { 0 }; Cr3.QuadPart = Cr3PhyAddr; ULONG_PTR VirtualAddresss = NULL; status = ZwMapViewOfSection(hMemory, NtCurrentProcess(), &VirtualAddresss, 0, PAGE_SIZE, &Cr3, &sizeView, ViewUnmap, MEM_TOP_DOWN, PAGE_READWRITE); //ULONG_PTR VirtualAddresss = MmMapIoSpace(Cr3, PAGE_SIZE, MmNonCached);//由于Cr3是物理地址我们需要映射到虚拟内存中去 if (!NT_SUCCESS(status)) { return 0; } //3 构建页表 //*(PULONG64)(VirtualAddresss + PxeIndex * 8) |= 70; PHYSICAL_ADDRESS Low = { 0 }; PHYSICAL_ADDRESS High = { MAXULONG64 }; //ppe do { pPhyAddr[0] = (ULONG_PTR)MmAllocateContiguousMemorySpecifyCache(PAGE_SIZE, Low, High, Low, MmCached); newPPEphy = MmGetPhysicalAddress(pPhyAddr[0]).QuadPart; ULONG_PTR PPEPhyAddr = (ULONG_PTR)(((PHARDWARE_PTE)(VirtualAddresss + PxeIndex * 8))->PageFrameNumber) * 0x1000; PHYSICAL_ADDRESS temp = { 0 }; temp.QuadPart = PPEPhyAddr; ULONG_PTR VirtualAddress_PPE = NULL; ZwMapViewOfSection(hMemory, NtCurrentProcess(), &VirtualAddress_PPE, 0, PAGE_SIZE, &temp, &sizeView, ViewUnmap, MEM_TOP_DOWN, PAGE_READWRITE); memcpy(pPhyAddr[0], VirtualAddress_PPE, PAGE_SIZE); //pde pPhyAddr[1] = (ULONG_PTR)MmAllocateContiguousMemorySpecifyCache(PAGE_SIZE, Low, High, Low, MmCached); newPDEphy = MmGetPhysicalAddress(pPhyAddr[1]).QuadPart; ULONG_PTR pdePhy = (ULONG_PTR)(((PHARDWARE_PTE)(VirtualAddress_PPE + PPEIndex * 8))->PageFrameNumber) * 0x1000; temp.QuadPart = pdePhy; ULONG_PTR VirtualAddress_PDE = NULL; ZwMapViewOfSection(hMemory, NtCurrentProcess(), &VirtualAddress_PDE, 0, PAGE_SIZE, &temp, &sizeView, ViewUnmap, MEM_TOP_DOWN, PAGE_READWRITE); memcpy(pPhyAddr[1], VirtualAddress_PDE, PAGE_SIZE); //pte ULONG_PTR ptePhy = (ULONG_PTR)(((PHARDWARE_PTE)(VirtualAddress_PDE + PDEIndex * 8))->PageFrameNumber) * 0x1000; temp.QuadPart = ptePhy; if (((PHARDWARE_PTE)(VirtualAddress_PDE + PDEIndex * 8))->LargePage == 1) { pPhyAddr[2] = (ULONG_PTR)MmAllocateContiguousMemorySpecifyCache(PAGE_SIZE * 1024, Low, High, Low, MmCached); memset(pPhyAddr[2], 0, PAGE_SIZE * 1024); ULONG_PTR Real = MmGetPhysicalAddress(pPhyAddr[2]).QuadPart; ULONG_PTR Real1 = Real; ULONG_PTR Realtemp = 0; if (Real == 0) { MmFreeContiguousMemory(pPhyAddr[0]); MmFreeContiguousMemory(pPhyAddr[1]); MmFreeContiguousMemory(pPhyAddr[2]); return FALSE; } ULONG i = 0; for (i = 0; i < 1024; i++) { Real += PAGE_SIZE; //Real &= 0x1fffff; Realtemp = Real & 0x1fffff; if (!Realtemp) break; } DbgBreakPoint(); pPhyAddr[2] += PAGE_SIZE * (i + 1); newPTEphy = MmGetPhysicalAddress(pPhyAddr[2]).QuadPart; ULONG_PTR VirtualAddress_PTE = NULL; sizeView = PAGE_SIZE * 0x200; ZwMapViewOfSection(hMemory, NtCurrentProcess(), &VirtualAddress_PTE, 0, PAGE_SIZE, &temp, &sizeView, ViewUnmap, MEM_TOP_DOWN, PAGE_READWRITE); memcpy(pPhyAddr[2], VirtualAddress_s & ~(0x1fffff), PAGE_SIZE * 0x200); ((PHARDWARE_PTE)(pPhyAddr[0] + PPEIndex * 8))->PageFrameNumber = newPDEphy >> 12; ((PHARDWARE_PTE)(pPhyAddr[1] + PDEIndex * 8))->PageFrameNumber = newPTEphy >> 12; //((PHARDWARE_PTE)(pPhyAddr[2] + PTEIndex * 8))->Write = 1; ULONG_PTR newOffset = (VirtualAddress_s & 0x1ff000) + offset; //((PHARDWARE_PTE)(pPhyAddr[1] + PTEIndex * 8))->Write = 1; *(PUCHAR)(pPhyAddr[2] + newOffset + 0x27) = 0x90; *(PUCHAR)(pPhyAddr[2] + newOffset + 0x28) = 0x90; *(PUCHAR)(pPhyAddr[2] + newOffset + 0x29) = 0xc3; ULONG_PTR ss = pPhyAddr[2]; ULONG_PTR ss2 = VirtualAddress_s & ~(0x1fffff); IsPdeLager = 1; break; } pPhyAddr[2] = (ULONG_PTR)MmAllocateContiguousMemorySpecifyCache(PAGE_SIZE, Low, High, Low, MmCached); newPTEphy = MmGetPhysicalAddress(pPhyAddr[2]).QuadPart; ULONG_PTR VirtualAddress_PTE = NULL; ZwMapViewOfSection(hMemory, NtCurrentProcess(), &VirtualAddress_PTE, 0, PAGE_SIZE, &temp, &sizeView, ViewUnmap, MEM_TOP_DOWN, PAGE_READWRITE); memcpy(pPhyAddr[2], VirtualAddress_PTE, PAGE_SIZE); //物理内存 pPhyAddr[3] = (ULONG_PTR)MmAllocateContiguousMemorySpecifyCache(PAGE_SIZE, Low, High, Low, MmCached); newphy = MmGetPhysicalAddress(pPhyAddr[3]).QuadPart; ULONG_PTR Phy = (ULONG_PTR)(((PHARDWARE_PTE)(VirtualAddress_PTE + PTEIndex * 8))->PageFrameNumber) * 0x1000; temp.QuadPart = Phy; ULONG_PTR VirtualAddress_PHY = NULL; ZwMapViewOfSection(hMemory, NtCurrentProcess(), &VirtualAddress_PHY, 0, PAGE_SIZE, &temp, &sizeView, ViewUnmap, MEM_TOP_DOWN, PAGE_READWRITE); memcpy(pPhyAddr[3], VirtualAddress_PHY, PAGE_SIZE); } while (0); //ULONG_PTR ss3 = pPhyAddr[3]; //ULONG_PTR ss1 = pPhyAddr[1]; //ULONG_PTR ss2 = pPhyAddr[2]; //DbgBreakPoint(); //4 修改PXE PPE PDE PTE从而改变 if (IsPdeLager) { ((PHARDWARE_PTE)(VirtualAddresss + PxeIndex * 8))->PageFrameNumber = newPPEphy >> 12; return TRUE; } ((PHARDWARE_PTE)(VirtualAddresss + PxeIndex * 8))->PageFrameNumber = newPPEphy >> 12; ((PHARDWARE_PTE)(pPhyAddr[0] + PPEIndex * 8))->PageFrameNumber = newPDEphy >> 12; ((PHARDWARE_PTE)(pPhyAddr[1] + PDEIndex * 8))->PageFrameNumber = newPTEphy >> 12; ((PHARDWARE_PTE)(pPhyAddr[2] + PTEIndex * 8))->PageFrameNumber = newphy >> 12; return TRUE; }; VOID unstallHook() { if (IsPdeLager) { MmFreeContiguousMemory(pPhyAddr[0]); MmFreeContiguousMemory(pPhyAddr[1]); MmFreeContiguousMemory(pPhyAddr[2]); return; } } VOID DriverUnload(PDRIVER_OBJECT pDriver) { unstallHook(); } NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRes) { pDriver->DriverUnload = DriverUnload; PKLDR_DATA_TABLE_ENTRY pKldr = (PKLDR_DATA_TABLE_ENTRY)pDriver->DriverSection; pKldr->Flags |= 0x20; //NTSTATUS status = PsSetCreateProcessNotifyRoutine(ProcessNotifyRoutine, FALSE); UNICODE_STRING ss = { 0 }; RtlInitUnicodeString(&ss, L"NtOpenProcess"); ULONG_PTR NtOpenAddr = MmGetSystemRoutineAddress(&ss); ULONG_PTR funcVir = NtOpenAddr & ~(0xfff); ULONG_PTR funcOffset = NtOpenAddr & 0xfff; InitHook(funcVir, 8568, funcOffset); //SetPTEHook(ssz); return STATUS_SUCCESS; }修改错误严重性 代码 说明 项目 文件 行 禁止显示状态 详细信息 错误(活动) E0020 未定义标识符 "(VirtualAddress_s" pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 154 错误(活动) E0020 未定义标识符 "PKLDR_DATA_TABLE_ENTRY" pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 219 错误(活动) E0020 未定义标识符 "PKLDR_DATA_TABLE_ENTRY" pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 219 错误(活动) E0020 未定义标识符 "KERNEL_CR3_OFFSET" pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 68 错误(活动) E2486 找不到用户定义的文本运算符 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 154 错误(活动) E0065 应输入“;” pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 219 错误(活动) E0167 "unsigned long long" 类型的实参与 "const void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 149 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 98 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 108 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 118 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 149 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 170 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 180 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 90 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 101 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 119 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 124 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 125 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 126 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 142 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 165 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 173 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 205 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 206 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "PVOID" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 207 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "const void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 98 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "const void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 108 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "const void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 170 错误(活动) E0167 "ULONG_PTR" (aka "unsigned long long") 类型的实参与 "const void *" 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 180 错误(活动) E0167 "ULONG_PTR *" (aka "unsigned long long *") 类型的实参与 "PVOID *" (aka "void **") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 74 错误(活动) E0167 "ULONG_PTR *" (aka "unsigned long long *") 类型的实参与 "PVOID *" (aka "void **") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 96 错误(活动) E0167 "ULONG_PTR *" (aka "unsigned long long *") 类型的实参与 "PVOID *" (aka "void **") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 106 错误(活动) E0167 "ULONG_PTR *" (aka "unsigned long long *") 类型的实参与 "PVOID *" (aka "void **") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 147 错误(活动) E0167 "ULONG_PTR *" (aka "unsigned long long *") 类型的实参与 "PVOID *" (aka "void **") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 168 错误(活动) E0167 "ULONG_PTR *" (aka "unsigned long long *") 类型的实参与 "PVOID *" (aka "void **") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 178 错误(活动) E0167 "ULONG" (aka "unsigned long") 类型的实参与 "HANDLE" (aka "void *") 类型的形参不兼容 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 43 错误(活动) E0144 "PVOID" (aka "void *") 类型的值不能用于初始化 "ULONG_PTR" (aka "unsigned long long") 类型的实体 pte1 C:\Users\17116\source\repos\pte1\pte1\源.cpp 224

资源评论
用户头像
周林深
2025.05.25
谷安出品,质量有保障,对PTE考试帮助大。
用户头像
断脚的鸟
2025.04.22
这套PTE讲课PPT内容详实,适合考前复习。🎅
用户头像
行走的瓶子Yolo
2025.04.16
考试通过后,分享经验,还赚取积分,一举两得。
用户头像
无声远望
2025.03.24
对于理解和掌握PTE考试内容很有帮助。
用户头像
傅融
2024.12.30
虽然是自学资料,但缺少互动和实践操作。