python實現高效的埠掃瞄器基礎

2021-09-11 07:02:54 字數 2071 閱讀 2902

一 點睛

如今網際網路安全形勢日趨嚴峻,給系統管理員帶來很大的挑戰,網路的開放性以及黑客的攻擊是造成網路不安全的主因。稍有疏忽將給黑客帶來可乘之機,給企業帶來無法彌補的損失。比如由於系統管理員誤操作,導致核心業務伺服器的22、21、3389、3306等高危埠暴露在網際網路上,大大提高了被入侵的風險。因此,定製一種規避此安全事故的機制已經迫在眉睫。

python的第三方模組pythonnmap來實現高效的埠掃瞄,達到發現異常時可以在第一時間發現並處理,將安全風險降到最低的目的。python-nmap模組作為nmap命令的python封裝,可以讓python很方便地操作nmap掃瞄器,它可以幫助管理員完成自動掃瞄任務和生成報告。

二 安裝

1 安裝nmap工具

[root@localhost data]# yum -y install nmap
2 安裝python-nmap

[root@localhost data]# pip install python-nmap
三 模組常用方法說明

本篇介紹python-nmap模組的兩個常用類,乙個為portscanner() 類,實現乙個nmap工具的埠掃瞄功能封裝;另乙個為 portscannerhostdict()類,實現儲存與訪問主機的掃瞄結果,下面介紹

portscanner()類的一些常用方法。 

1 scan(self,hosts='127.0.0.1',ports=none,arguments='-sv')

實現指定主機、埠、nmap命令列引數的掃瞄。

示例:

>>> import nmap

>>> nm = nmap.portscanner()

>>> nm.scan('192.168.0.21-120','3310')

, 'scaninfo': }, 'command_line': 'nmap -ox - -p 3310 -sv 192.168.0.21-120'}, 'scan': , 'hostnames': , 'vendor': {}, 'addresses': , 'tcp': }}, '192.168.0.106': , 'hostnames': , 'vendor': {}, 'addresses': , 'tcp': }}}}

2 command_line(self)

返回的掃瞄方法對映到具體nmap命令列。

示例:

>>> nm.command_line()

'nmap -ox - -p 3310 -sv 192.168.0.21-120'

3 scaninfo(self)方法,返回nmap掃瞄資訊,格式為字典型別。

>>> nm.scaninfo()

}

4 all_hosts(self)方法,返回nmap掃瞄的主機清單,格式為列表型別。

>>> nm.all_hosts()

['192.168.0.106', '192.168.0.120']

5 portscannerhostdict()類的一些常用方法

>>> nm['192.168.0.120'].hostname()             # 返回掃瞄物件的主機名

''>>> nm['192.168.0.120'].state() # 返回掃瞄物件的狀態,包括4種狀態(up、 down、unknown、skipped)

'up'

>>> nm['192.168.0.120'].all_protocols() # 返回掃瞄的協議

['tcp']

>>>

>>> nm['192.168.0.120'].all_tcp() # 返回tcp協議掃瞄的埠

[3310]

>>> nm['192.168.0.120'].tcp(3310) # 返回掃瞄tcp協議port(埠)的資訊

python實現埠掃瞄

一 import socket import multiprocessing def ports ports service 獲取常用埠對應的服務名稱 for port in list range 1,100 143,145,113,443,445,3389,8080 try ports servi...

簡單高效的埠掃瞄python指令碼

最近為了獲取虛擬機器埠開放情況,寫了乙個簡單指令碼來檢視。共享給大家。下面的 在python2種測試通過 說明 concurrent是python 3.2 引入的乙個庫,在python2中使用需要手動安裝一下 pip install futures from concurrent import fu...

python指令碼 埠掃瞄

記錄在b站學習的知識 利用tcp原理,通過編寫python指令碼,來檢測某個主機的埠開放情況,下面介紹兩種掃瞄,syn掃瞄和fin掃瞄 實驗環境 準備工作 展示from scapy.layers.inet import ip,tcp from scapy.sendrecv import sr syn...