黑客学习笔记 -- 了解认识黑客技术
黑客学习笔记 — 了解认识黑客技术
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注入技术类似,不同之处在于,它插入的不是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协议中的标识符。
为了对外提供网络服务,防火墙或服务器会主动对外开放一些端口,其中最具有代表性的端口为80和443,分别用于对外提供HTTP和HTTPS服务。为此还开放了一些端口,以方便管理,其中最具代表性的是21号与22号端口,它们分别是提供FTP与Telnet 服务
- 端口扫描是指针对对外提供服务的服务器进行扫描,获取服务器对外开放的端口列表
- 大致可以分为 基于UDP的端口扫描 和 基于TCP的端口扫描。
-
包嗅探:
基于以太网的同一网络环境(使用同一路由器)中,数据包的传送是基于MAC(Media Access Control,介质访问控制)地址进行的
-
会话劫持:
会话劫持攻击大致分为HTTP会话劫持与TCP会话劫持两大类。前者是指通过盗取保存服务认证信息的Cookie中的SessionID值进行黑客攻击,后者是值窃取TCP数据包信息
- TCP协议使用IP、Port、Sequence Number三个要素对通信对方进行认证。TCP会话劫持中,先通过包嗅探获取认证信息,然后使用它在中间拦截客户机与服务器之间的通信。黑客暂时断开客户机与服务器之间的连接,将发送方的IP修改为黑客PC的IP。重设服务器的连接。在服务器看来,通信只是暂时发生了中断,然后在此连接成功。从而将黑客PC误认为客户机。客户机与黑客PC也采用类似方式设置连接。这样,客户机与服务器之间的所有通信都会经过黑客PC,黑客即可控制所有信息。
-
欺骗攻击:
Spoofing的字典释义为“欺骗,哄骗”。从网络观点看,大致可以对DNS、IP、ARP三种资源进行欺骗攻击
- ARP欺骗:ARP协议用于根据IP地址获取MAC地址。PC内部有ARP缓存表,保存IP与MAC的对应信息,识别通信对方时,只要访问相应表提取其MAC地址即可。若在ARP缓存表中查不到相应信息,则可以通过ARP协议获取指定IP地址对应的MAC地址。
-
Dos攻击:
拒绝服务攻击(Dos,Denial of Service)是网络中最常用的黑客攻击技术之一。前面提到过,TCP/IP协议本身在结构上存在多种安全隐患。通过修改SYN数据包的发送方地址,或者不断发送SYN数据包,将大量的IP数据包分割成更小的单位进行传送,即可使系统服务陷入瘫痪。
Dos攻击指通过发送大量正常的数据包使系统服务瘫痪
-
-
系统黑客攻击
计算机系统由硬件、操作系统、进程组成,各组成部分通过接口相互交换信息,有机协作共同完成某项任务或功能。
-
Rootkit:Rootkit 是一种特殊的黑客攻击程序,其功能使获取目标主机的root权限,或者安全可以控制系统的后门。
- Rootkit有用户模式、内核模式、引导模式三种类型。
- 用户模式在应用程序级别工作,比较容易测出,对系统危害较低。
- 内核模式:Rootkit工作在内核模式下会向内核添加其他代码,或者直接用新代码替换原有代码。开发虽然有难度,但是能够对系统造成致命损害
- 引导模式:引导模式对MBR(Master Boot Record,主引导记录),VBR(Volume Boot Record,卷引导记录)、引导扇区产生影响,能够对整个文件系统加密,或者使系统陷入无法引导的困境。
- Rootkit有用户模式、内核模式、引导模式三种类型。
-
后门:后门是指可以远程控制用户PC的程序。
- 黑客通过网络公告栏,电子邮件,木马等传播含有后门的恶意代码。用户无意中将恶意代码下载到PC后,后门客户端就会被安装到用户系统。黑客运行后门服务器程序,等待客户端连接,后门客户端安装好连接到服务器,这样黑客即可远程控制用户
-
注册表攻击:
Windows 中使用的注册表是一种数据库,它采用“键,值”的形式保存硬盘信息,软件信息,用户信息以及行为控制所需的各种信息
- 为了控制注册表,Windows通过接口支持与CRUD(Create Read Update Delete)相关的所有功能。
- 入侵系统的黑客可以通过接口操作注册表,尝试初始化用户密码,修改防火墙设置,DLL注入等多种攻击,注册表也保存着用户使用网络的消息,通过这些消息,黑客也可以获取用户的生活方式。
-
缓冲区溢出:
缓冲区溢出攻击指通过向进程输入非正常数据,将黑客精心准备的数据保存到内存中,并使之运行
- 进程运行时,处理流相应的数据会进入其所用的内存区域,如栈、堆、与i及寄存器。修改此类数据后,数据的处理顺序就会改变或者停止运行。黑客通过不断修改输入值,观察那些数据会引发错误,以及在输入值的那一部分植入shell code 可以运行,最终编写攻击代码
- 缓冲区溢出攻击代码不是独立运行的程序,它是随着视频、音乐、文档一起运行的程序文件。
-
竞态条件攻击:
竞态条件是指两个进程为了使用一种资源而彼此竞争的状况
-
-
其他黑客攻击技术
-
无线局域网黑客攻击技术
在无法使用有线网络的地区,可以使用无线AP使用网络。无线局域网认证合法用户,并采用WEP,WPA,WPA2等多种安全机制对传送的数据进行加密。
-
加密黑客攻击技术
加密技术采用加密密钥与加密算法,将原始数据变换为第三方无法辨认的形态。
-
社会工程黑客攻击技术
社会工程黑客攻击不是一种技术方法,它以人与人之间的基本信任为基础获取密码。
-