黑客学习笔记 -- 了解认识黑客技术 00 怎么学习黑客技术
黑客攻击涉及的知识领域庞大,仅凭一本书很难称为一名合格的黑客。
在接触一个新概念时,最好先把握其整体轮廓,然后再选择自己感兴趣的部分深入学习
要想称为一名合格的黑客,不仅要掌握相关攻击技术,还要学习计算机有关的各种知识。
一般来说,要成为一名黑客,必须掌握 3 - 4 种编程语言,其中最具代表性的是C语言与汇编语言,它们再分析系统与程序行为的过程中起着核心作用;此外,黑客还需要掌握另外一种编程语言,用于编写符合自身需要的黑客攻击工具。
01 关于黑客黑客攻击包含两种含义:
一种是为了满足个人的好奇心或求知欲而对计算机网络进行探索的行为
另一种是以破坏他人计算机系统为目的的侵入行为。
02 黑客攻击技术
应用程序黑客攻击
PC服务器中运行的许多应用程序都是以C语言为基础编写的。使用C语言能够直接调用系统内核提供的强大API。该功能一方面为用户提供了很大的便利,另一方面也称为黑客工具的手段
消息钩取:
消息钩取要使用user32.dll 中SetWindowsHookExA()方法。
Windows通过钩链(Hook Chain)处理来自键盘、鼠标等设备的消息。
钩链是用来处理消息的一系列函数指针的列表
程序员可以将特定处理进程的指针强行注册到钩链,这样消息到来时即可对其进行特定处理。
键盘记录器是最具代表性的黑客攻击技术,它采用消息钩取方式,在中间窃取用户的键盘输入消息,然后将之发给黑客
API钩取:
API钩取技术利用了操作系统提供的调试进程。
首先使用调试器,在应用程序特定的命令位置设置断点,注册特定方法以便执行。应用程序运行过程中,遇到断点,就会执行之前注册的方法(回调方法),黑客只要再回调方法中植入黑客攻击代码即可执行相应动作。
DLL注入:
DLL注入技术可以将动态链接库DLL插入特定应用程序。
DLL注入共有三种方法:
第一种是使用注册表,具体方法是先再注册表特定位置输入指定DLL名称,应用程序调用user32.dll 时,指定DLL就会被加载到内存
第二种是使用前面介绍的钩取函数,即注册钩取函数,以便特定事件发生时加载指定DLL;
第三种是为了运行中的应用创建远程线程以插入DLLWindows系统中,CreatTemoteThread()函数用于创建远程线程。
代码注入:
代码注入技术与采用线程方式的DLL注入技术类似,不同之处在于,它插入的不是DLL,而是可以直接运行的shell code。
Web黑客攻击
Web系统一般由网络浏览器,Web服务器,数据库三部分组成,各部分功能划分十分明确。
网络浏览器:用于处理用户输入,加工来自Web服务器的数据并输出到屏幕。
Web服务器用于分析HTTP请求,并执行相应功能。需要处理数据时,Web服务器会连接数据库执行数据处理
数据库用于安全管理数据,支持数据的录入和查询等功能
XSS:黑客会恶意使用Web系统提供的功能,比如
利用文件上传功能,将Web shell文件与恶意代码上传到Web服务器,然后运行Web shell 文件,获取上传文件所在位置,进而控制Web服务器,
黑客利用用户输入功能可以实施SQL注入攻击,通过输入非正常SQl查询语句获取Web服务器的错误信息,并对这些信息加以分析,进而实施攻击。
利用文件下载功能,可以将恶意代码散步到网络的多台PC。网络浏览器中运行的HTML与脚本代码可以被恶意用于开展XSS攻击与CSS攻击
CSRF :(跨站请求伪造)类似于XSS攻击,它也将恶意代码插入公告板,用户阅读相应公告时即收到攻击。
XSS攻击主要从用户PC非法盗取个人信息,而CSRF主要通过用户PC对Web服务器发动攻击。
网络钓鱼:是指黑客通过精心设计与银行,证券公司类似的仿冒网站,骗取受害者在这些网站输入的金融消息或个人敏感信息。
域欺骗:在域欺骗(Pharming)攻击中,黑客首先入侵DNS服务器,修改正常的网站域名域IP对照表给,将仿冒网站的IP地址发送给用户浏览器,从而将用户引导至精心设计的仿冒网站,这样,用户在这些网站输入的个人信息就会被偷偷盗走。
SQL注入:SQL注入利用HTML input标签发动攻击。
Web shell :Web shell 恶意利用了Web 提供的文件上传功能。
首先,黑客将用于远程操纵服务器的Web shell 文件上传到Web服务器,然后找到上传文件所在位置,得到访问Web shell 文件的URL地址,然后通过该URL地址运行Web shell 文件,获取可以控制操作系统的超级权限。
网络黑客攻击
端口扫描:
IP 是识别服务的逻辑地址。端口是逻辑单位。
它使得多个应用程序可以共享一个IP地址。
IP是IP协议中的标识符,而端口是TCP/UDP协议中的标识符。