sys模塊與OS模塊

sys模塊

內置的sys模塊使我們能訪問到由python解釋器使用或維護的對象,其中包括標誌、版本、整形數的最大尺寸、可用的模板、hook路徑、標準錯誤/輸入/輸出的位置,以及調用解釋器的命令行參數。與sys模塊交互對創建python腳本非常有幫助。
利用import sys 導入sys模塊文件。通過dir()方法查看模塊中可用的方法。

在這裏插入圖片描述
sys.argv列表中含有所有的命令行參數。第一個sys.argv[0]元素是python腳本的名稱。列表中其餘元素中則記錄了之後所有的命令行參數。

import sys
print("The command line arguments are:")
for i in sys.argv:
    print (i)
print('\n\nThe PYTHON is',sys.path,'\n')

在這裏插入圖片描述
在這裏插入圖片描述

import sys
if len(sys.argv)==1:
    filename = sys.argv[0]
    print("[+]Reading Vulnerabilities From:"+filename)

在這裏插入圖片描述

import sys
if len(sys.argv)==2:
    filename = sys.argv[1]
    print("[+]Reading Vulnerabilities From:"+filename)

在這裏插入圖片描述

OS模塊

內置的OS模塊提供了豐富的適用於Mac、NT或Posix的操作系統的函數。這個模塊允許程序獨立地與操作系統環境、文件系統、用戶數據庫以及權限進行交互。

import sys
import os
if len(sys.argv)==2:
    filename = sys.argv[1]
    if not os.path.isfile(filename):
        print ("[-]"+filename+'dose not exist')
        exit(0)
    if not os.access(filename,os.R_OK):
        print("[-]"+filename+'access denied')
        exit(0)
    print("[+]Reading Vulnerabilities From:"+filename)

在這裏插入圖片描述
對腳本作以優化。

import socket
import os
import sys
def retBanner(ip,port):
    try:
        socket.setdefaulttimeout(2)
        s = socket.socket()
        s.connect((ip,port))
        banner = str(s.recv(1024))
        return banner
    except:
        return
def checkVulnes(banner,filename):
    f=open(filename,'r')
    for line in f.readlines():
        if line.strip('\n') in banner:
            print("[+]server is vulunerable:"+banner.strip("\n"))
def main():
    if len(sys.argv)==2:
        filename = sys.argv[1]
        if not os.path.isfile(filename):
            print ("[-]"+filename+"dose not exist")
            exit(0)
        if not os.access(filename,os.R_OK):
            print("[-]"+filename+"access denied")
            exit(0)
        else:
            portList = [21]
        for x in range(219,220):
            ip = "192.168.0."+str(x)
            for port in portList:
                banner = retBanner(ip,port)
                if banner:
                    print ("[+]"+ip+":"+banner)
                    checkVulnes(banner,filename)
    else:
        print("[-] Usage:"+str(sys.argv[0])+'<vuln filename>')
        exit(0)
        
if __name__ == '__main__':
    main()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章