现在的位置:主页 > 综合新闻 >

面向监狱编程,就靠它了

来源:电脑编程技巧与维护 【在线投稿】 栏目:综合新闻 时间:2021-06-25

【作者】网站采编

【关键词】

【摘要】来源:编程技术世界 大家都学过网络编程吧? socket->bind->listen->accept->recv/recvfrom->send/sendto 一口气,什么select、poll、epoll复用模型一应俱全. 这套东西只是为了开发建立在传输层TCP和UD

来源:编程技术世界

大家都学过网络编程吧?

socket->bind->listen->accept->recv/recvfrom->send/sendto

一口气,什么select、poll、epoll复用模型一应俱全.

这套东西只是为了开发建立在传输层TCP和UDP上的应用程序。

你有没有想过如何通过编程方式批量发送一批TCP SYN握手包进行端口扫描?

如何编程发送带有伪造IP地址的ARP包和IP数据包?

甚至,如何编程发送带有伪造MAC地址的以太网数据帧?

一旦掌握了以上技巧,玩数据包就不是问题了,开发各种神器也不是问题。但它必须以正确的方式使用。不要给监狱编程~

如何构造和发送各种数据包呢?今天给大家介绍一个强大的小工具:scapy

这是一个强大的数据包构建工具,你可以在Python中使用它,是时候喊出:Python大法完成了!

ARP

我们使用ARP。 ARP 是一种地址解析协议。局域网中的通信需要使用网卡的MAC地址,而网络层的通信则使用IP地址。在数据包发出之前,在IP包前面添加以太网帧头时,需要填写接收者的MAC地址。如果是内部局域网通信,则接收地址是目标计算机网卡的MAC地址,如果是Internet上的公网IP地址,则接收地址是网关的MAC地址。

不管怎样,你得有一个MAC地址,那怎么得到呢?这就是 ARP 协议所做的。它可以将 IP 地址转换为 MAC 地址。

ARP解析的过程这里不详述。简单来说,比如查询192.168.1.100的MAC地址,主机使用ARP协议在局域网内发出广播:192.168.1.100,我叫你你敢答应吗?

局域网内的每个人都能收到这个广播(因为它的接收者MAC地址是FF-FF-FF-FF-FF-FF),但是只有IP地址为192.168.1.100的那家伙才会回复:爷爷来了!我的 MAC 地址是 xxxxxx。

注意,我们平时与应用程序通信时,上述过程都是由操作系统底层协议栈自动完成的,我们的应用程序无法感知这些。

我们可以使用 Scapy 库来启动 ARP 分析。

以上代码通过scapy库中的srp函数发送一个以太网帧,接收者为ff:ff:ff:ff:ff:ff,说明这是一个广播包,链接在上面layer是ARP协议,需要解析的IP是传入的要解析的IP地址参数。

上述函数一旦执行,就可以在wireshark中抓取数据包了:

如上所说,正常情况下,只有目标地址是我查到的主机。会回复我。

但是如果你局域网有人恶意,请在真正的主人面前回答我:爷爷来了!我的 MAC 地址是 yyyyyy。

那东西不好,下面的通讯信息是发给这个冒牌货的,这就是大名鼎鼎的ARP欺骗攻击!

再试一次,如果你查询的IP地址是网关的IP地址,后果更严重。所有网络通信都发送给这个人。

既然可以发送ARP查询报文,就可以改一下上面的代码,自然就可以发送ARP响应报文了……

ARP的故事就到此为止,让我们继续再看看,使用scapy作为端口扫描器。

端口扫描

TCP端口扫描,通过发送三次握手的第一个SYN包,根据返回结果判断端口的开放状态:

如果返回ACK+SYN,即flags字段为18,则端口打开:

如果返回ACK+RST,即flags字段为20,则端口关闭:

可以实现如下功能:

看抓包:

握手包和服务器的返回包可以清晰的看到。如果在循环中不断调用该函数并传入不同的端口,则可以实现批量端口扫描。 .

Scapy 构建数据包的能力只是冰山一角。更多强大功能等你研究。

学习计算机网络,不要仅仅停留在看书和博文的基础上,如果你能自己编程发送和接收数据包,实现ARP、ICMP、DHCP的功能, DNS,或者开发一些简单的网络工具,绝对比别人掌握的更深刻。

介绍一个非常经典的入门PDF。它解释了程序员必须知道的硬核基础知识。看完之后,可以对计算机有一个基本的了解和入门。是来训练你的??以此为基础,我们来看目录大纲

文章来源:《电脑编程技巧与维护》 网址: http://www.dnbcjqywh.cn/zonghexinwen/2021/0625/1186.html

上一篇:专业解读PLC编程中断的原理和用法
下一篇:MIT微软为AI量身打造了一套leetcode编程题

电脑编程技巧与维护投稿 | 电脑编程技巧与维护编辑部| 电脑编程技巧与维护版面费 | 电脑编程技巧与维护论文发表 | 电脑编程技巧与维护最新目录
Copyright © 2018 《电脑编程技巧与维护》杂志社 版权所有
投稿电话: 投稿邮箱: