learn-tech/专栏/全解网络协议/29我要怎么藏好我的考研资料-网络攻击(一).md
2024-10-16 06:37:41 +08:00

52 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

因收到Google相关通知网站将会择期关闭。相关通知内容
29 我要怎么藏好我的考研资料 - 网络攻击(一)
漏洞和漏洞利用
我们今天来开始看一下漏洞,我之前就有提到过,其实漏洞是到处都存在的。我现在以我的房子为例,从安全角度来看,我的房屋中也存在一些漏洞。谁家都有窗户对不对。就是那种玻璃窗,其中一些在房子前面,这些玻璃很容易损坏。每天都会有成百上千的人在我家前面走过,但是没有人利用该“漏洞“并为其创造漏洞利用程序。 那什么叫做漏洞利用Exploits漏洞利用就是有个人走过来说这房子很容易进入呀然后拿起一块巨石扔进我的窗户。这个时候这个石头已经成为了一种攻击对不对石头利用了我的窗户是玻璃的的这种漏洞。因为我的窗户很脆弱。它是在内部和外部之间建立了屏障但它也很脆弱可以通过利用石头和坚硬的物体来加以破坏。在计算机上这个道理是类似的。因此每当你打开计算机并将其连接到网络时Microsoft Windows这样的操作系统都会去尝试连接到其他Microsoft设备。另外我们还可能在我们的工作站上运行其他软件应用程序所以你会打开某些端口。
我们来看一个例子。来了解我们的工作站可能发生的某种类型的漏洞。我们会使用netstat来做演示。netstat会显示你电脑上正在侦听的所有端口
netstat
我们来看一下netstat这个指令呀。Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据一般用于检验本机各端口的网络连接情况 (这是百度百科搬过来的) 常见参数
-a (all)这个大家应该都知道吧,一般-a都是显示所有。
-n 用数字来显示地址和端口号。
-o 显示与每个显示的连接关联的过程标识符PID
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-l 仅列出有在 Listen (监听) 的服务状态
-e 显示有关你的网络连接的统计信息(已接收和已发送的数据包等)
复制
我在这里使用的是 netstat -ano, 出来的结果就是下图这样。
可能你咋一看会觉得这么多信息是不是有一点不知所措没惊慌呀。我们来一起看一下这个结果先看一下TCP部分。还记得TCP的工作原理吗前面已经分析的很详细了。这里就不多说了。我们来看一下第一行。第一个协议就没什么说的指的就是TCP就好像netstat上面的选项可以是只显示tcp。第二个是Local Address本地地址- 0.0.0.0:135。除了极少数例外0.0.0.0指的是所有地址。这里指的是在此工作站上的任何本地地址都在端口135上侦听。如果进入此工作站的数据包的源IP地址是网络接口适配器可以接受的任何地址并且目标端口号是135则此设备将允许进行该连接。它将接受SYN消息并以SYN-ACK消息进行回复。再看一下第三列也就是Foreign Address0.0.0.0:0它将针对在任何端口上运行的任何IP地址执行此操作。0.0.0.0是任何IP地址此处00的端口号表示来自远程设备的任何端口号。所以这里指的是我的工作站正在侦听端口135上的TCP SYN消息并且这里的状态为LISTENING我们只是在等待这里发生的连接。关联的进程ID就是最后一列的数字也就是进程ID1120。如果你打开windows的任务管理器你可以找ID1120你会看到这是一个windows的程序即-svchost.exe。这是Windows服务的主机进程。如果你感兴趣的话你可以查一下所有Local Address是0.0.0.0:xxx的你会发现这里都是Windows进程。
当然我们也正在监听UDP连接UDP没有三向握手但是UDP在这里仍然有一些实用程序而Windows具有监听各种进程的功能。我们也可以在此列表中创建不是基于Windows的进程比如你可以做一个小实验去网上下载一个TFTP服务器Tftpd64。这是一台小的TFT服务器它可以免费下载下载之后你可以直接打开这个tftpd64.exe。然后你再次执行netstat -ano在UDP部分你可以发现有一个新的连接在监听0.0.0.0:69而69是TFTP使用的端口号。如果现在转到任务管理器中查看对应的PID我可以关闭TFTP服务器。这当然不是最优雅的方法但是如果你遇到的是此处打开的某种类型的端口的问题我可以直接执行“结束”任务而该操作将关闭我的TFTP服务器。然后当你再次发出netstat命令时你会发现不再监听UDP端口69。那么这与漏洞有什么关系呢
漏洞
因为我的计算机正在侦听所有这些不同的端口号每个端口号都有一些与之相关的软件服务无论是Windows进程还是你该计算机的所有者或管理员运行的进程都像我刚刚举例的TFTP服务器。因此这里所有侦听流量的网络过程背后都有与之相关的软件。这意味着攻击者会将流量发送到这些设备例如刚刚举例的端口135。攻击者可以做的是将修改消息包头和消息数据部分中的少量信息。黑客可以修改一些小信息以查看计算机将做出什么样的举动和反应。这就是黑客寻找软件中漏洞的过程他们将这些奇怪的消息发送到计算机中并试图引起某种有趣的响应。黑客在这里发送的是非标准消息以查看计算机收到消息后会发生什么。最终可以做的是如果黑客发送了足够多的消息可以将某些消息发送到这些端口号中并且它会以某种方式进行响应这就表明该端口中存在漏洞。在此工作站上运行这些开放端口的软件。攻击者随后可以使用从端口135扫描中获得的信息。例如黑客可以使用该信息重新编写一些新软件来利用端口漏洞135。
这些开放端口就像我最初介绍的那个例子里我家的窗户一样。窗口在内部和外部之间建立了一个障碍你可以使用正确的语言打开窗口使用正确的信息可以打开该窗口。但是攻击者黑客在这里试图做的是试图找到一个弱点比如找到我的窗户上有没有已经破碎的地方以便可以创建找到合适的石头来破坏窗户。因此当我们使用它时我们总是可以看到打开的端口号和运行它的软件。运行该软件的软件通常是我们发现该漏洞的地方攻击者可以用来创建漏洞利用它。因此当Windows更新定期发布时使用它们来修补后端的所有软件是非常重要的因为这就像猫和老鼠一样。编写没有漏洞的软件几乎是不可能的如果你将该软件放置足够长的时间不变的情况下攻击者总会发现该漏洞并对其进行利用。这就是为什么我说这是一场猫捉老鼠的游戏因为每次发现漏洞时windows都会对其进行修补这意味着攻击者现在无法使用该漏洞进行攻击。所以始终保持软件更新以防止这些攻击非常重要。因此请确保对系统进行修补以防止他人利用这些漏洞利用这些攻击来攻击你的系统。
钓鱼攻击
让我们看一下如何通过人作为攻击的媒介。这里存在的一种利用网络钓鱼的方法是网络钓鱼攻击,网络钓鱼攻击是指攻击者将大量电子邮件发送给各个电子邮件地址。也许他们从暗网或者其他的源头来获得这些电子邮件地址,黑客在这里做的是构建一条消息,然后将其发送给你。他们会向你发送此消息,并且通常情况下,这些信息会使你有些沮丧,这样你就不必关注需要注意的事情了(心里学的知识哦)。比如以下这个例子,说你的密码就要过期了,然后需要你来更新。单击此链接来更新你的信息。一般这个电子邮件看起来会相对合法,你会发现这个电子邮件会和正规的学校邮箱很接近。但是会是一个看上去非常接近的邮箱。当你点击那个链接的时候,你也会看到一个非常相似的网站,然后要求你输入用户名,密码。可能会说你无法登录,请重试。但是现在攻击者已经有了你的用户名和密码。
当然这个照片是我从网上下载的一般来说这种攻击会发生在你的购物账户比如我的东家Amazon或者是京东等等。我经常收到的邮件是Netflix然后要求你输入用户名和密码还有信用卡。这就是我们常说的钓鱼攻击。