还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
图 2:LockBit 3.0 构建器标题
一旦提取完成,构建器将包含图2中展示的文件,其中Build目录是空的。通过运行Build.bat文件(包括图3中展示的内容),可以自动执行构建过程,并使用勒索软件的独特实例填充Build目录。生成的文件将呈现为图4所示。
标图 3:Build.bat 的内容题
构成 Build.bat 的命令,清除 Build 目录,然后调用 keygen 以生成公钥和私钥加密密钥。builder.exe构建工具提供各种命令行选项,生成不同版本的 LockBit 3.0 勒索软件。
在Build.bat文件中,可以使用以下命令来实现:
清除Build目录:
del /s /q Build\*
调用keygen生成公钥和私钥加密密钥:
Keygen
生成LockBit 3.0勒索软件的不同变体:
builder --variant=variant1
builder --variant=variant2
builder --variant=variant3
标图 4:Build.bat 的内容题
02 生成文件说明
- LB3.exe – 已编译的勒索软件,不需要密码;
- LB3Decryptor.exe – 勒索软件的解密器,适用于此处的所有变体;
- LB3_pass.exe – 与 LB3 相同.exe但需要密码才能运行。密码和说明可在此目录中的Password_exe.txt中找到;
- LB3_RelectiveDLL_DLLMain.dll – 旨在反射加载并在内存中执行的勒索软件版本;
- LB3_Rundll32.dll – 勒索软件的 DLL 版本,不需要密码;
- LB3_Rundll32_pass.dll – 勒索软件的 DLL 版本,需要在 Password_dll.txt 文件中找到的密码;
- Password_dll.txt – 包含密码和使用说明LB3_Rundll32_pass.dll;
- Password_exe.txt – 包含密码和使用说明LB3_pass.exe;
- priv.key – 此版本唯一的私有加密密钥,用于加密受害者文件;
- pub.key – 此版本独有的公共加密密钥,用于生成各种字符串,将此勒索软件实例与受害者联系起来。
keygen.exe
Build.bat 文件首先调用的可执行文件是 keygen.exe。它会为每个构建生成一个独特的加密密钥对和解密标识。根据其描述,Keygen 似乎严重依赖于 MIRACL,这是一个被开发人员广泛认为是椭圆曲线密码学黄金标准的开源 SDK 的 C 软件库。生成的密钥经过 base64 编码并保存到 priv.key 和 pub.key 文件中,然后将公钥的前八个字节转换为十六进制值并保存到 DECRYPTION_ID.txt 文件中,该文件用作唯一的受害者识别号。
builder.exe
根据前面的图4,builder.exe 文件会创建两个执行文件、三个动态链接库和两个文本文件。
它需要现有的 config.json(图 2)和上一步中生成的 priv.key/pub.key 文件,如图 4 所示,builder.exe 文件本身也包含基本组件。在其资源部分有四个执行文件模板,每个用于构建加密器的 DLL 和 EXE 以及解密程序。
图 5:builder.exe 资源标题
按 ID 对每个资源进行描述:
- 100 – 解密器模板文件
- 101 – 可执行模板文件
- 103 – DLL 模板文件
- 106 – 启用反射加载的 DLL 模板文件
配置文件 config.json 包含通常与勒索软件相关的选项,包括目标文件夹、要排除的文件以及需要终止的进程。如图 6 所示,它还包含用于调整勒索软件行为的设置选项,如下所示的默认选项可以在构建器中找到。
标图 6:配置选项题
此构建器配置允许针对特定目标环境调整生成的勒索软件。除了这些配置之外,还有以下选项:
- 要排除的主机、文件、文件夹和文件扩展名
- 停止和删除的流程和服务
- 命令和控制域、URL 或 IP 的列表
- 在受影响的系统上尝试的用户名和密码列表
由于此勒索软件是高度可配置的,因此可能有许多不同的代码路径。
03 LockBit分析
Lockbit 3.0 使用了多种反分析技术来阻碍静态以及动态分析:
- 入口使用保护壳保护
- 代码保护
- 函数混淆
- 动态解析
- 函数解密计算跳转
- 反调试技术
- 反沙盒技术
对于安全研究人员来说,LockBit 3.0 是一个挑战,因为每个恶意软件实例都需要一个独特的密码才能运行,没有这个密码分析将变得极其困难,也就意味着无法进行沙盒动态分析,该密码保存在生成器的目录下:
程序入口进行了加壳混淆:
该入口通过start的call函数进行解密:
当恶意软件运行完loc_40639C函数后后,保护壳被脱掉:
函数解密计算跳转:
勒索软件会检查调试器:
HEAP_TAIL_CHECKING_ENABLED(0x20)
HEAP_VALIDATE_PARAMETERS_ENABLED (0x40000000)
LockBit 3.0 检查其PEB(过程环境块)中的值,以检查是否设置了:HEAP_VALIDATE_PARAMETERS_ENABLED。
执行NtSetInformationThread 函数,函数参数的值为0xFFFFFFFE 和0x11,这会让勒索软件的线程无法被调试器的断点捕获到。
在程序中,初始的反汇编代码集用于提高可读性,如图 16 所示。这段代码明显不正常,这些代码在调用 kernel32.ExitProcess() 函数后才执行,也就意味着永远无法执行到,只是模仿正常程序的一些函数使用,使其看起来似乎是个正常程序。
标图 16:输入函数题
LockBit 的函数都是通过hash运算进行匹对指定的函数名称,从而获取地址,“prepare_address_table_lookups”函数(如图 16 所示),该函数包含一个预先生成的哈希表,用于存储一组函数调用,从C:\Windows\System32 文件夹中手动查找所需的 DLL,并手动加载每个函数,进行哈希匹配,找到函数地址。创建哈希表和函数地址后,恶意软件执行完该函数,会释放并清除所有内存,以防止被分析。
如图 16 所示,“check_priv_elevate_if_needed”函数顾名思义。权限提升是通过复制访问令牌来获取特权组中的成员身份来实现的。为了复制令牌,LockBit 3.0 执行了几个步骤:
- 它将通过专门检查域管理员组中的成员身份来检查它是否已经具有足够的权限。
- 如果权限不够,它将尝试向自身授予一个预定义列表中包含 15 个特权常量的访问令牌,其中大多数在以非特权用户身份运行时测试失败。
- 之后,如果仍然没有所需的权限,LockBit 3.0 将找到操作系统进程explorer.exe,并直接调用 ZwOpenProcessToken 函数来读取explorer.exe 的访问令牌。然后,它调用 NtDuplicateToken 函数,传入新获取的令牌句柄,以请求对副本的扩展属性进行读取和写入访问。
- 获得管理员权限
图 17:复制explorer.exe进程令牌标题
main 函数中的恶意软件做的第一件事就是检查并创建同步互斥锁。如果存在互斥锁,则进程将退出,确保一次只运行一个勒索软件实例。互斥锁是通过首先获取在pub.key文件中找到的提供的公钥的 MD5 哈希来创建的。生成的 MD5 哈希字符串格式为“{%08X-%04X-%04X-%02X%02X-%02X%02X %02X %02X %02X}”。接下来,计算此格式化字符串的 MD4 哈希值,并将结果传递给格式字符串“Global%.8x%.8x%.8x%.8x”。例如,完成的互斥体值类似于
Global\ea4ee28880136cbc44dff4ad5a53561f。
接下来,LockBit 3.0 检查操作系统是否正常启动。如果 Windows 在安全模式下启动,勒索软件不会运行其大部分功能,而是设置一个注册表项以在下次正常启动时运行。
在互斥锁就位并满足引导类型后,可执行文件的主要用途将以多线程方式启动。每个线程都具有其任务的特征。有些在进程的生命周期内连续运行,而另一些则仅临时运行一次以执行特定任务。
停止服务:Windows Defender
第一个线程会删除 Windows 安全服务。这是通过利用 Trusted Installer 服务来实现的。Trusted Installer 是一个被广泛使用的受信任的安装程序,通常以其显示名称“Windows 模块安装程序”而知名,它主要用于下载和安装 Windows 更新和可选组件。如果 Trusted Installer 未在运行,则会启动该服务,并复制其访问令牌句柄,以允许当前线程访问大多数其他正在运行的服务。
利用这个令牌,LockBit 3.0 枚举正在运行的服务,并停止并删除与 config.json 中预定义的服务之一匹配的任何服务。完成后线程将退出,并且不会再次启动。
标图 18:通知 Windows 安全中心已停止题
在测试期间,短暂地显示一个小任务栏通知,通知用户 Windows 安全中心服务已停止。但是,由于该服务不仅已停止,而且还被删除,因此无法使用 Windows 通知重新启动该服务。
服务 | 描述 |
wscsvc | Windows 安全中心服务 |
Sppsvc | Microsoft 软件保护服务-许可 |
Wdboot | Windows defender ELAM(早期启动反恶意软件)驱动程序 |
Wdfiter | Windows defender微型筛选器驱动程序 |
Wdnisdrv | Windows defender防病毒网络检查系统驱动程序 |
Wdnissvc | Windows defender网络检查服务 |
Windefend | Windows defender服务 |
请务必考虑 Windows 安全服务是此处的目标,因为这些服务列在默认的config.json 文件中。如果威胁参与者使用此构建器列出其他服务,则很可能会停止其他服务。
图 19:服务已停止和删除标题
删除服务之后,恶意软件将启动几个额外的线程。图 20 中的屏幕截图展示了运行时间最长的线程。第一个优先级是启动处理 Windows 回收站中文件的线程,然后是用于监视和终止 SQL 进程的线程。接下来有一个专门用于将赎金记录写入目录的线程。最后启动的线程是用于对文件进行加密的线程。在下面的屏幕截图中,有三个线程专门用于此操作,但线程数量是动态的,并且会根据可用的系统资源以及排队等待加密的项目的数量和类型而增加或减少。例如,标识为加密的网络资源与本地系统上的网络资源是分开处理的。
标图 20:一些 LockBit 3.0 线程 题
04 Lockbit3特性
LockBit 勒索病毒为LockBit 2.0 升级版本,包含先前2.0所有功能,初始载荷交付给第三方C2(如Cobalt Strike)进行处理。
LockBit 只在管理员权限执行,如果不存在权限则进行 Bypass UAC技术进行管理员权限提升。
LockBit 3.0 将自身备份写入%programdata%目录,然后从此处启动进程。
LockBit 3.0 加密阶段的速度极快,即使传播到相邻主机也同样如此。LockBit 3.0勒索软件的有效负载能够在不到一分钟的时间内完全加密我们的测试主机。
在执行过程中,LockBit 3.0勒索软件会对桌面背景进行更改。
1、回收站的文件无法恢复
存在一个专门的线程来处理在回收站中找到的文件。回收站中的文件并未进行加密;相反,每个文件的内容会被替换为由0x10000字节块中随机生成的字节,然后再将其删除。因此,即使使用解密工具,回收站中的所有文件都无法恢复。
2、终止sql检查
一个独立的线程持续运行,监视并停止任何 SQL 进程。它通过每隔两秒获取一次服务列表来实现此目的。每个服务名称都会传递给isSQL()函数,该函数会查找与字符串"SQL"不区分大小写的任何匹配项。如果名称包含此序列,则会终止该进程。与许多其他线程不同,该线程在进程的生命周期内一直运行,以确保在LockBit 3.0执行勒索活动时,SQL进程不会超过两秒钟运行。
标题图 21:停止SQL进程
如何自学黑客&网络安全
黑客零基础入门学习路线&规划
初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的
视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
一些笔者自己买的、其他平台白嫖不到的视频教程。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!