种地 发表于 2024-6-11 19:37:46

『网络安全科普』Windows安全之HOOK技能机制

前言

如你所知,Windows系统是建立在变乱驱动的机制上的,而每一个变乱就是一个消息,每个运行中的步伐,也就是所谓的进程,都维护着一个或多个消息队列(消息队列的个数取决于进程内包罗的线程的个数)。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
   typedef struct tagMsg
{
HWND hwnd; //继承消息的窗口句柄
UINT message; //消息常量标识符(消息号)
WPARAM wParam;//32位消息特定附加信息
LPARAM lParam;//32位消息特定附加信息
DWORD time; //消息创建时的时间
POINT pt; //消息创建时的光标位置
}MSG;
你在Windows应用步伐的调用函数中,常可以看到WaitMessage等对消息队列的处置处罚函数,别的还有诸如此:PeekMessage、GetMessage、GetQueueStatus、WaitMessage、MsgWaitForMultipleObjects以及MsgWaitForMultipleObjectsEx等来对消息队列举行接收和检索。
Windows系统会为每一个正在运行的应用步伐保持有一个消息队列。当有变乱发生后,Windows并不是将这个激发变乱直接送给应用步伐,而是先将其翻译成一个Windows消息,然后再把这个消息加入到这个应用步伐的消息队列中去。
Windows中的应用步伐,需要通过消息循环来接收这些消息,也正是由于Windows消息机制的缘故,我们可以举行消息HOOK,而Windows的HOOK技能,也是一种消息处置处罚机制,一种提供给用户的对Windows运行过程举行干预的消息处置处罚机制,通过钩子步伐,Windows将内部活动的消息袒露给用户,使用户可以或许在消息被窗口管理器分派之前对其举行特殊的处置处罚,好比跟踪消息流程以便举行调试工作。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
此外,消息不但可以在应用内通报,也能在进程间通报,包括应用步伐之间、以及应用步伐与windows 系统之间。如许的设计,使得一些恶意的木马病毒步伐等,可以通过向高权限进程发送特定消息,去提升本身的权限,进而对操作系统造成粉碎,或者举行特殊的操作来获取隐私数据。
https://img-blog.csdnimg.cn/img_convert/d972084da32e70256cf82f2fe77dc274.png
分类

Windows系统的HOOK技能,大致按照以下方放举行分类。
起首,可以根据其作用范围分为两类:一类是只能获取本进程内某个线程消息的局部钩子(Thread Local Hook),另一类是可以获取当前系统中所有线程消息的全局钩子(Global Hook 或 System Hook)。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
其次,也可以根据其作用的权限,分为应用层HOOK和内核层Hook,在 Ring3 层的 Hook机制,称之为应用层 Hook 技能,而在 Ring0 层的Hook机制,则称为内核层 Hook 技能。
Windows用于处置处罚消息的钩子函数,主要是SetWindowsHookEx() 、CallNextHookEx()和UnhookWindowsHookEx()
每当进程消息产生的时候,其会被加入到系统消息队列,然后由操作系统从消息队列中取出消息,将其添加到相应的步伐的消息队列中。而HOOK技能则抢先一步,在其被发往应用步伐之前,监督到此类函数的调用,并且提前捕获到该消息,随后举行本身预先设定的处置处罚工作。
例如,Inline Hook技能,这属于应用层的注入Hook,通过在内存中找到想要Hook函数地点,并在其之前加入本身构造的跳转指令,紧接着,当被Hook位置执行时,便可以跳转到HOOK技能使用者本身编写的执行代码,在其执行完毕后,还原被修改的字节,接着执行正常流程。
再例如,使用API函数SetWindowsHookEx(),这是通过消息机制举行消息Hook(消息Hook)。其把一个应用步伐界说的钩子子程安装到钩子链表中。SetWindowsHookEx函数总是在Hook链的开头安装Hook子程。当指定类型的Hook监督的变乱发生时,系统就调用与这个Hook关联的Hook链的开头的Hook子程。每一个Hook链中的Hook子程都决定是否把这个变乱通报到下一个Hook子程。Hook子程通报变乱到下一个Hook子程需要调用CallNextHookEx函数。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
在操作系统中安装全局钩子以后,只要进程接收到可以发出钩子的消息后,全局钩子的DLL文件会被操作系统自动或强行加载到该进程中,这里要注意:系统不但仅是加载挂钩函数,包罗其在内的整个DLL都会被载入其中,Windows焦点编程第五版中第这部门内容有阐明,见下图。
https://img-blog.csdnimg.cn/img_convert/c28ced37500de790ac6993b261308e63.jpeg
Windows焦点编程第五版 P577,拍摄于2021.12.07
此外,还可以导入地点表来举行HOOK(IAT HOOK,应用层的注入HOOK),地点表是PE文件结构中的一个表结构,Windows加载器定位导入函数是借助可执行文件的导入表来完成的,导入表中存放了所使用的DLL的模块名称及导入的函数名称或函数序号,可以借助修改导入表来完成对关键函数调用的HOOK。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
接着还有调试HOOK的方法(调试HOOK),即通过调试方式举行的API钩取函数。
https://img-blog.csdnimg.cn/img_convert/68359cee078684338afc3be4156eb592.png
调试器可以或许逐一执行被调试者的指令,拥有对调试器与内存的所有访问权限。每当被调试者发生调试变乱时,OS就会暂停并向调试器陈诉此变乱,调试器做适当处置处罚后,会使被调试进程继续执行。这和HOOK的机制很像,因此攻击者可以伪装成调试器行为举行hook,对目标API入口地点下断点并截获参数内容,之后将其修改至本身构造的跳转指令即可,可以使用DebugActiveProcess(ProcessID)函数来附加到一个进程来举行调试。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
此外,还有内核层SSDT Hook(内核层HOOK),SSDT 的全称是 System Services Descriptor Table,系统服务形貌符表。这个表是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来对应表。SSDT 并不但仅只包罗一个庞大的地点索引表,它还包罗着一些其它有用的信息,诸如地点索引的基地点、服务函数个数等。通过修改此表的函数地点,可以对常用 Windows 函数及 API 举行 Hook,从而实现对一些关心的系统动作举行过滤、监控的目的。一些 HIPS、防毒软件、系统监控、注册表监控软件通常会采取此接口来实现本身的监控模块,实现内核级的防护手段。
如果,你仔细观察我上面的Windows焦点编程截图,你会发现标题是DLL注入和API拦截,没错,HOOK技能还可以被用作DLL注入的手段,通过HOOK将一个DLL注入到另一个进程的地点空间当中去。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
https://img-blog.csdnimg.cn/img_convert/da71ed8187eb601171019d7413545b0f.jpeg
Windows焦点编程第五版 P576,拍摄于2021.12.07
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
https://img-blog.csdnimg.cn/img_convert/a5f0f04d3d272ea883c1c8db8d65dc4f.jpeg
Windows焦点编程第五版 P577,拍摄于2021.12.07
   hhookGetMsg=::SetWindowsHookEx(WH_GETMESSAGE,GetMessageHookProc,::GetModuleHandle(TEXT(“dll.dll”)),threadId);
//参数1:钩子类型
//参数2:钩子处置处罚函数
//参数3:钩子地点的模块
//参数4:钩子要拦截的线程ID,如果要设置全局钩子,这里答应给0
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
hook是微软为了保持与16位步伐兼容而被迫设计出的一种方式,利用hook可以实现dll的注入。这种方法和利用注册表来注入DLL相比,答应我们在不需要该DLL的时候从该进程地点空间中取消对其的映射。
作用

HOOK技能,常被翻译成“钩子”,通过挟制函数调用,截获监督系统的消息,来改变步伐执行流的技能,将步伐原有的执行流程改变,更改步伐流向,并使其可以执行本身植入代码的技能。
有一种误解在于,把HOOK函数当作是恶意软件的专属技能,固然,这在某种程度上是成立的,例如许多调用NtUserGetAsyncKeyState或者NtUserGetRawInputData来获取用户键盘输入,以此完成本身的暗码偷取。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
但是,Hook技能也被广泛应用于安全的多个领域,Windows xp及其之前的安全机制,除了靠定期向病毒木马样本库中添加新样本外,还需要辅之以hook关键的系统函数,以方便在用户down文件或者打开exe时查杀木马。此外,早期的杀软,除了被动扫描之外,也还需要主动对一些敏感API举行HOOK监控;偶然Windows系统本身及一些相干应用步伐,在打补丁时也需要使用Hook技能,可以说这是一把双刃剑吧。
总结

微软在Win 10里设立了Secure ETW通道,安全软件不再需要像从前那样HOOK系统内核来完成对系统内进程的监督**。**而HOOK作为一个比力老的技能,也已经越来越少被提起到了,但这并不妨碍它曾经的光辉岁月,作为一类经典的流行方法,很值得我们去相识。
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
题外话

初入盘算机行业的人或者大学盘算机相干专业毕业生,许多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
2023届天下高校毕业生预计到达1158万人,就业形势严峻;
国家网络安全宣传周公布的数据表现,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业陈诉》《2023年中国高职生就业陈诉》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科盘算机类、高职自动化类专业月收入较高。2022届本科盘算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科盘算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
详细看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技能、自动化等与人工智能相干的本科专业表现不俗,较五年前起薪涨幅均到达了19%。数据科学与大数据技能虽是比年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
https://img-blog.csdnimg.cn/3b2546b059e44d8ebf36a8b7edc78bd3.png
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关告急的因素之一。
网络安全行业特点

1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
https://img-blog.csdnimg.cn/7f5497c2b0a347c4a69eba64bc48efbc.png
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民当局》官方网站发表:我国网络空间安全人才 需求140万人,而天下各大学校每年造就的人员不到1.5W人。猎聘网《2021年上半年网络安全陈诉》猜测2027年网安人才需求300W,如今从事网络安全行业的从业人员只有10W人。
https://img-blog.csdnimg.cn/4584acafe35a490bb29564308583b097.png
行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁谍报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大

网络安全专业具有很强的技能特性,尤其是掌握工作中的焦点网络架构、安全技能,在职业发展上具有不可替代的竞争优势。
随着个人本事的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,由于技能愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全该如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习门路图

https://img-blog.csdnimg.cn/96293989b48f489a8d7119eda733555f.png
攻击和防守要学的东西也不少,详细要学的东西我都写在了上面的门路图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程

网上固然也有许多的学习资源,但基本上都残缺不全的,这是我本身录的网安视频教程,上面门路图的每一个知识点,我都有配套的视频解说。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、毛病详解、盘算机基础知识等,都是网络安全入门必知必会的学习内容。
https://img-blog.csdnimg.cn/99db018f1e864b7cb18cc08ad91f3f75.jpeg
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部门资料,需要点击下方链接即可前去获取
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
需要的小伙伴也可以扫描下方CSDN官方互助二维码免费领取哦,无偿分享!!!
https://img-blog.csdnimg.cn/img_convert/9865fc6336d94b8e33b4357b3debea52.png
3.技能文档和电子书

技能文档也是我本身整理的,包括我到场大型网安举措、CTF和挖SRC毛病的经验和技能要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
https://img-blog.csdnimg.cn/940549865842491aa5f0a6643b361367.png
https://img-blog.csdnimg.cn/4245cedc5623453fbbe253d554df1127.png
因篇幅有限,仅展示部门资料,需要点击下方链接即可前去获取
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
需要的小伙伴也可以扫描下方CSDN官方互助二维码免费领取哦,无偿分享!!!
https://img-blog.csdnimg.cn/img_convert/9865fc6336d94b8e33b4357b3debea52.png
4.工具包、口试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要会合在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部门资料,需要点击下方链接即可前去获取
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
需要的小伙伴也可以扫描下方CSDN官方互助二维码免费领取哦,无偿分享!!!
https://img-blog.csdnimg.cn/img_convert/9865fc6336d94b8e33b4357b3debea52.png
最后就是我这几年整理的网安方面的口试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些标题都是大家在口试笃信服、奇安信、腾讯或者其它大厂口试时经常遇到的,如果大家有好的标题或者好的看法欢迎分享。
参考解析:笃信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清楚,含图像化表现更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、毛病、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包罗、XXE、逻辑毛病、工具、SQLmap、NMAP、BP、MSF…
https://img-blog.csdnimg.cn/71476b06579f411e914194a4541364d2.png
因篇幅有限,仅展示部门资料,需要点击下方链接即可前去获取
网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
如果你对网络安全入门感兴趣,
①网络安全学习门路
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防口试指南
⑤安全红队渗透工具包
⑥HW护网举措经验总结
⑦100个毛病实战案例
⑧安全大厂内部视频资源
⑨积年CTF夺旗赛题解析
需要的小伙伴也可以扫描下方CSDN官方互助二维码免费领取哦,无偿分享!!!
https://img-blog.csdnimg.cn/img_convert/9865fc6336d94b8e33b4357b3debea52.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 『网络安全科普』Windows安全之HOOK技能机制