【Python】教你一步步编写banner获取脚本
Hello 各位小伙伴们大家哈好,周末还过的愉快吗?
今天又是忙碌的周一,工作使我快乐~~
小编今天看了一眼我的公众号,发现脚本模块只挂着孤零零的一篇文章…
好吧,刚好最近学习了使用python编写banner获取脚本,今天就跟大家一起一步一步再学习一遍吧。
一、什么是banner?
banner可以理解为我们连上服务器后,服务器相应的第一条欢迎语句。通常通过banner我们可以获取到服务器正在运行的服务,以及服务的名称和相关版本。
例如linux下的nc命令,如下:
又或者是windows下的telnet返回信息:
由以上两个返回信息,我们可以知道这两台服务器的ftp版本分别为2.3.4和3.0.2,获取服务的版本信息后,我们是不是就可以针对性地进行渗透了呢。
二、代码篇
1、基本代码
首先我们来编写一个简单的基本代码,实现上面所说的功能。
这里涉及到了socket模块,什么是socket呢?可以简单的理解为一个socket就是一个连接,说明如下:
- Socket可以通过网络实现不同主机间的进程通信,网络上各种各样的服务大都是基于Socket 来完成通信的。
- 用“ip地址+协议+端口号”来唯一标识网络中的一个进程,这就是socket
- 无论使用何种网络协议,最本质上都是在进行数据的接收和发送,“发送”和“接收”这两个动作就是socket处理数据的主要方式。
代码运行结果如下,可以看出对端ftp版本为3.0.2:
这样基础代码就完成了,关于socket模块的详细使用方法,我将在近期推出。接下来,我们一步一步来完善这个程序。
2、添加漏洞版本判断功能
假设ftp 3.0.2 版本为一个已知漏洞版本,添加if语句来对扫描的IP地址进行判断,判断是否为3.0.2版本,修改代码如下: