亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的端口掃描技術(shù)研究

        2021-01-15 08:48:14孟彬智云壘鐘翡
        關(guān)鍵詞:端口號服務端IP地址

        ◆孟彬 智云壘 鐘翡

        基于Python的端口掃描技術(shù)研究

        ◆孟彬 智云壘 鐘翡

        (96822部隊 云南 650000)

        本文研究了計算機端口掃描技術(shù),介紹了常用端口掃描技術(shù)的原理,并利用Python的socket模塊實現(xiàn)遠程計算機TCP端口的全連接掃描,通過掃描發(fā)現(xiàn)處于開放狀態(tài)的高危端口,提醒網(wǎng)絡運維人員合理的關(guān)閉高危端口可提高計算機的安全性。

        全連接掃描;Python;socket

        端口在計算機中有非常重要的意義,端口是計算機與外界交互信息的通道??梢赃@樣理解,計算機端口在傳輸層上用來標識同一臺計算機的不同進程??蛻舳送ǔλ褂玫亩丝谔柌魂P(guān)心,只需要保障該端口在本機上是唯一的即可,客戶端與服務端通信時常用動態(tài)端口,服務端使用固定的知名端口,客戶端的端口號與服務端的端口號不需要一一對應。IP地址和端口號的組合成為套接字Socket,在一個主機上是唯一的,一條連接由客戶端和服務器的套接字組成[1]。

        計算機端口在網(wǎng)絡安全方面有極重要的意義,黑客和一些木馬程序會利用端口漏洞實施入侵活動。對目標主機進行掃描可以得到其端口的開放情況,根據(jù)主機運行的業(yè)務,合理的關(guān)閉不需要的高危端口,就可以防止木馬與黑客利用這些端口開展攻擊的活動,從而提高計算機的安全性。常見的高危端口有135、137、138、139、445等端口,135端口用于RPC(遠程過程調(diào)用)服務、137端口用于NetBIOS名稱服務,138和139端口用于局域網(wǎng)中的共享服務,445用于文件夾和打印機共享服務[2]。

        1 常見端口掃描技術(shù)

        常見端口掃描技術(shù)有全連接掃描、半連接掃描、FIN掃描、ACK掃描和NULL掃描等。

        TCP Connect掃描又稱全連接掃描,TCP connect()函數(shù)會調(diào)用系統(tǒng)提供的傳輸層接口API,嘗試通過三次握手與目標的指定端口建立TCP連接,根據(jù)連接的建立情況判斷目標端口是否開放。優(yōu)點是易于實現(xiàn),掃描速度快,可同時掃描多個用戶,無須管理員權(quán)限。缺點是會在目標主機的日志中記錄大量的連接建立與關(guān)閉信息。

        TCP SYN掃描又稱半連接掃描,掃描時與目標機指定端口建立TCP連接時僅完成前兩次握手,在第三次握手時不發(fā)送確認報文,使TCP連接無法確認。優(yōu)點是目標主機日志中記錄的連接信息較少,缺點是實現(xiàn)較為復雜且需要較高的權(quán)限。

        FIN掃描,不依賴TCP的三次握手,向目標端口發(fā)送一個設(shè)置了FIN標記的報文,根據(jù)系統(tǒng)返回或不返回報文判斷端口的開放情況。缺點是掃描結(jié)果不準確,容易得到錯誤結(jié)論。

        ACK掃描,發(fā)送的報文只設(shè)置ACK標志位,若收到目標主機返回的RST標記的報文,只能判斷目標主機未被防火墻保護不能判斷端口是否開放。若未收到任何報文或收到ICMP不可達報文,說明端口受到防火墻保護。ACK掃描判斷端口是否開放容易出錯,更適合確定目標是否在線。

        NULL掃描又稱空掃描,將發(fā)送的報文中所有標記都置為0,若目標返回RST報文表示端口關(guān)閉,若目標沒返回報文,表示端口開放或被防火墻保護[3]。缺點是掃描結(jié)果不準確。

        綜上所述,TCP Connect掃描因具有掃描速度快、掃描結(jié)果準確、權(quán)限要求低等優(yōu)點,得到了較廣泛的應用。

        2 使用Python進行端口掃描

        計算機間通過IP地址與端口號進行通信的方式稱為socket通信,HTTP、FTP、DNS等應用都是通過socket通信實現(xiàn)的,socket通信中提供服務的一方稱為socket服務端,調(diào)用socket服務的一方稱為socket客戶端。Socket服務端用自己的IP地址、指定端口號和連接方式創(chuàng)建服務并啟動服務并等待客戶端的連接請求,socket客戶端向服務端發(fā)起連接請求,連接請求被服務端接受后,客戶端和服務端就可以進行通信了。

        Python可直接調(diào)用socket對象,通過socket套接字向目標主機的端口發(fā)送TCP connect()請求,若目標主機上的指定端口處于偵聽狀態(tài),就可以建立連接[4]。若目標主機未開放該端口,則connect()操作失敗,產(chǎn)生異常。

        2.1 建立TCP connect()

        在掃描前要先建立TCP連接,關(guān)鍵代碼如下:

        import socket #導入socket模塊

        tcps=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #建立TCP套接字

        tcps.connect((ip,port))#連接指定主機的目標端口

        tcps.shutdown(2)

        tcps就是建立的socket對象,利用socket對象tcps對目標主機進行connect連接,connect()函數(shù)只能接受一個參數(shù),ip地址與端口號要用元組表示,ip與端口號在函數(shù)調(diào)用時傳入。tcps.shutdown(2)表示tcps套接字不允許傳輸數(shù)據(jù),只能用于掃描端口。

        若目標主機指定端口未開啟,則返回connect refuse結(jié)果,會產(chǎn)生connect操作失敗異常,可以用try except捕捉connect異常,通過對連接異常的捕捉可判斷目標主機端口的開啟情況。

        2.2 實現(xiàn)程序

        定義連接判斷函數(shù):

        def TcpOpen(ip,port):

        tcps=socket.socket(socket.AF_INET,

        socket.SOCK_STREAM)

        try:

        tcps.connect((ip,int(port)))

        tcps.shutdown(2)

        result.insert('insert','TCP端口{}isopen!!! '.format(port))

        tcps.close()

        except Exception as e:

        return None

        連接判斷函數(shù)的主要功能是:根據(jù)ip和port參數(shù)指定的IP地址和端口號,去連接目標主機的相應端口,若連接成功在Text窗體result上顯示端口開放信息,表示端口是開放的,連接失敗的端口不顯示,表示端口未開放。

        定義掃描函數(shù):

        def scanport():

        begin = input1.get() #變量begin表示起始掃描端口

        end=input2.get() #變量end表示終止掃描端口

        ip =show_ip.get() #變量ip是要掃描的目標主機IP

        for i in range(eval(begin), eval(end)):

        TcpOpen(ip,i)

        掃描主機的ip地址由用戶填寫,ip地址默認為”127.0.0.1”,,既可以掃描遠程計算機也可以掃描本地計算機。用戶可任意指定開始端口號和終止端口號,知名端口、注冊端口和動態(tài)端口號均可,但要注意的是端口范圍越大掃描的時間就越長。

        2.3 顯示界面設(shè)計

        界面設(shè)計采用Python自帶的Tkinter模塊,運行的界面如下:

        圖1 端口掃描器的界面

        2.4 功能測試

        指定掃描端口范圍是0-1024,指定目標主機的ip是28.90.31.182,程序執(zhí)行完畢后就會輸出在1-1024范圍里的所有的開放的端口,如下圖2所示。

        圖2 目標主機的端口掃描結(jié)果

        通過端口掃描可看到110、135、139、443、902、912等知名端口是處于開放狀態(tài)的,網(wǎng)絡運維人員可以根據(jù)主機的實際運行情況關(guān)閉部分開放的端口,可提高計算機的安全性。這里以掃描TCP知名端口為例,對于動態(tài)端口和注冊端口也同樣適用。

        3 結(jié)語

        端口掃描技術(shù)對于計算機安全有重要的意義,隨著計算機網(wǎng)絡的發(fā)展,計算機面臨的網(wǎng)絡攻擊與日俱增,端口掃描是網(wǎng)絡防御的重要環(huán)節(jié)。本文介紹了5種常用的端口掃描技術(shù),并編寫了端口掃描工具,實現(xiàn)了對目標主機TCP端口的掃描功能,得到了開放的TCP端口列表,及時關(guān)閉不使用的高危端口可提高計算機的安全性。下一步,將重點研究如何快捷高效的掃描UDP端口,同時端口掃描工具有較強的可擴展性,還需進一步豐富掃描工具的功能、提高可用性。

        [1]Brandon Rhodes John Goerzen. Python網(wǎng)絡編程[M].北京:人民郵電出版社,2016:18-19.

        [2]裴志斌,李斌勇,王星程.IP及端口掃描體系的邏輯處理設(shè)計[J]. 網(wǎng)絡安全技術(shù)與應用,2017(10):26-27.

        [3]梁劍非.多線程端口掃描軟件設(shè)計與實現(xiàn)[D].成都:電子科技大學,2011

        [4]趙宏,包廣斌,馬棟林.Python網(wǎng)絡編程(Linux)[M].北京:清華大學出版社,2018:108-111.

        猜你喜歡
        端口號服務端IP地址
        鐵路遠動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
        在Docker容器中安裝應用程序
        云存儲中基于相似性的客戶-服務端雙端數(shù)據(jù)去重方法
        新時期《移動Web服務端開發(fā)》課程教學改革的研究
        消費導刊(2018年8期)2018-05-25 13:19:48
        在Windows Server 2008上創(chuàng)建應用
        基于SNMP的IP地址管理系統(tǒng)開發(fā)與應用
        黑龍江電力(2017年1期)2017-05-17 04:25:16
        淺談以java為基礎(chǔ)的Socket通信簡介及實現(xiàn)
        青春歲月(2017年5期)2017-04-20 18:34:23
        Winsock編程在《計算機網(wǎng)絡基礎(chǔ)》教學中的應用
        基于Android系統(tǒng)的互動展示APP的研究與設(shè)計
        “鴿子”玩升級 黑你沒商量
        亚洲av手机在线观看| 最近中文字幕完整版| 伊人久久大香线蕉免费视频 | 一二三四视频社区在线| 无码av免费永久免费永久专区| 亚洲中文字幕高清视频| 日本护士口爆吞精视频| 天堂网在线最新版www| 中文在线天堂网www| 久久精品韩国日本国产| 一区视频免费观看播放| 国产人成在线成免费视频 | 久久久精品亚洲人与狗| 好紧好爽免费午夜视频| 亚洲日韩精品欧美一区二区一| 成人无码a级毛片免费| 精品不卡视频在线网址| 麻豆国产精品va在线观看不卡| 国产精品亚韩精品无码a在线| 日本少妇按摩高潮玩弄| 熟女高潮av一区二区| 亚洲av成人片色在线观看| 国产自偷自偷免费一区| 加勒比日本东京热1区| 日本免费播放一区二区| 欧美大屁股xxxx高潮喷水| 中文字幕无线码中文字幕| 亚洲欧美成人久久综合中文网| 久久一区二区三区老熟女| 国产午夜成人av在线播放| 日韩AVAV天堂AV在线| 亚洲蜜桃视频在线观看| 精品亚洲麻豆1区2区3区| 日日澡夜夜澡人人高潮| 亚洲一区二区久久青草| 日韩精品中文字幕第二页| 天天躁日日躁狠狠躁| av一区无码不卡毛片 | 中文字幕一区乱码在线观看| 欧美多人片高潮野外做片黑人| 成人国产午夜在线视频|