HackTools————2.简单FTP网络扫描

xiaoxiao2021-02-28  12

简易FTP扫描器

思路:

(1)首先通过使用python的socket模块获取banner信息

(2)将banner信息与存在漏洞的版本的banner信息进行对比,如果有符合的那么说明就存在漏洞,否则不存在。

代码:

#encoding:utf-8 import socket #导入socket数据包 socket.setdefaulttimeout(2) #设置网络超时时间 s=socket.socket() #创建一个socket对象 s.connect(("192.168.11.138",21)) #使用socket连接目标服务器 ans=s.recv(1024) #从目标服务器接收信息 if ("Free Float Ftp Server (Version 1.00)" in ans): #将接收到的信息与存在漏洞的版本进行对比,输出相应的结果 print "Free Float Ftp Server is vulnerable" elif ("3Com 3CDaemon FTP Server Version 2.0" in ans): print "3CDaemon FTP server is vulerable" elif ("Ability Server 2.34 "in ans): print "Ability Server 2.34 is vulerable" else: print "FTP server is not vulerable"

运行结果:

模块化FTP扫描

将FTP扫描写成一个功能函数的形式来调用:

代码:

#encoding:utf-8 import socket #导入socket网络数据包 def retBanner(ip,port): #定义一个获取banner的功能函数 try: #异常处理 socket.setdefaulttimeout(2) #设置超时时间 s=socket.socket() #创建socket对象 s.connect((ip,port)) #使用socket连接目标对象 banner=s.recv(1024) #获取目标的banner信息 return banner #返回banner信息 except Exception,e: #异常处理 print e.message return def main(): #定义main函数 ip1="192.168.11.138" #设置要扫描的ip地址段 ip2="192.168.11.139" #设置要扫描的ip地址段 port=21 #设置要扫描的端口号 banner1=retBanner(ip1,port) #调用banner函数获取banner信息 if banner1 : print ip1+":"+banner1 banner2=retBanner(ip2,port) if banner2: print ip2+":"+banner2 if __name__ == '__main__': #调用main函数 main()

运行结果:

第一个主机连接成功并且获取到了相应的banner信息,第二个主机不存在或者连接失败。

FTP漏洞扫描器

代码:

#encoding:utf-8 import socket #导入socket网络数据包 def retBanner(ip,port): #定义一个获取banner的功能函数 try: #异常处理 socket.setdefaulttimeout(2) #设置超时时间 s=socket.socket() #创建socket对象 s.connect((ip,port)) #使用socket连接目标对象 banner=s.recv(1024) #获取目标的banner信息 return banner #返回banner信息 except Exception,e: #异常处理 print e.message return def checkvalue(banner): if "FreeFloat Ftp Server (Version 1.00)"in banner: print "FreeFloat Ftp Server is vulnerable" elif "3Com 3CDaem FTP Server Version 2.0" in banner: print "3Com 3CDaem FTP Server is vulnerable" elif "Ability Server 2.34 "in banner: print "Ability Server is vulenerable" else: print "FTP is not vulenerable" def main(): #定义main函数 ip1="192.168.11.137" #设置要扫描的ip地址段 ip2="192.168.11.138" #设置要扫描的ip地址段 port=21 #设置要扫描的端口号 banner1=retBanner(ip1,port) #调用banner函数获取banner信息 if banner1 : print ip1+":"+banner1 checkvalue(banner1) banner2=retBanner(ip2,port) if banner2: print ip2+":"+banner2 checkvalue(banner2) if __name__ == '__main__': #调用main函数 main()

运行结果:

主要的思路还是一致的,而且代码设计思路也较为简单,可以自己思考!

转载请注明原文地址: https://www.6miu.com/read-2400023.html

最新回复(0)