python—项目2-查找服务器是否开启ftp的21端口,socket,os,sys,端口识别,文件操作
在目标服务器192.168.40.239上开启miniftp软件,并把banner信息改成:
you are welcome !!! go to miniftp!!
root@kali:~/python/anquangongji# clear
root@kali:~/python/anquangongji# pwd
/root/python/anquangongji
root@kali:~/python/anquangongji# ls
checkfile.py openfiletest.py scanerftpbanner.py scanmultports.py vulnbanners.txt vulnftpbanner.txt
root@kali:~/python/anquangongji# cat vulnftpbanner.txt
you are welcome
root@kali:~/python/anquangongji#
root@kali:~/python/anquangongji# cat scanmultports.py
#!/usr/bin/python
#--*-- coding:utf-8 --*--
import socket
import sys
import os
def retbanner(ip,port):#使用主机与端口进行socket连接
try:#使用异常处理机制
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((ip,port))
banner = s.recv(1024)
return banner
#print banner
except:
return
def checkvulns(banner,filename):#在指定文件中查询banner信息
f = open("vulnftpbanner.txt","r")
#print f
for line in f.readlines():
print line#读取的文件内容
if line.strip("\n") in banner:#读取的文件内容是否在socket连接访问的信息中
print "[+] Server is vulnerable: " + banner.strip('\n')
def main():
if len(sys.argv) == 2:#sys.argv列表中含有所有的命令行参数,sys.argv[0]为Python脚本的名称,其余的都是命令行参数
filename = sys.argv[1]
if not os.path.isfile(filename):#os.path.isfile()检查该文件是否存在
print "文件不存在!!!"
print "[+]" + filename + "does not exit!!!"
exit(0)
if not os.access(filename,os.R_OK):
print "文件访问没有权限!!!"
print '[+]' + filename + 'access denied!!!'
exit(0)
print "文件查找成功!!!!"
print '[+] Reading From :' + filename
else:
print '[+] Usage :' + str(sys.argv[0]) + '<vuln filename>'
exit(0)
#对指定机器的特定端口进行识别
portlist = [21,22,25,80,110,443]
ip = "192.168.40.239"
for port in portlist:
banner = retbanner(ip,port)
#print banner
if banner:
print '[+]' + ip + ':' + str(port) + '----' + banner
if port == 21:#主机的ftp的21端口识别
checkvulns(banner,filename)
if __name__ == '__main__':
main()
root@kali:~/python/anquangongji#
root@kali:~/python/anquangongji#
root@kali:~/python/anquangongji#
root@kali:~/python/anquangongji# python scanmultports.py /root/python/anquangongji/vulnftpbanner.txt
文件查找成功!!!!
[+] Reading From :/root/python/anquangongji/vulnftpbanner.txt
[+]192.168.40.239:21----220 you are welcome !!! go to miniftp!!
you are welcome
[+] Server is vulnerable: 220 you are welcome !!! go to miniftp!!
root@kali:~/python/anquangongji#