使用python nmap 搭建基本埠掃瞄器

2021-09-07 19:30:43 字數 2005 閱讀 2410

**位址如下:

注意: 本文相關教程僅供個人學習使用,切勿用於非法用途,否則造成的相關損失及影響,作者不承擔任何責任

林子大了什麼鳥都有。網路發達了,什麼人都有。開源程式也是人開發的,漏洞在所難免。當不正當的人遇到開源程式的漏洞,那就會引發伺服器入侵。

盡可能的避免此類事件的發生。乙個企業或者說乙個網路管理員,需要知道自己提供服務的伺服器上開放著哪些埠,提供著什麼服務。這樣就能在漏洞發生的時候,及時修補,避免不必要的損失。

ok,必要性說完了,我們來說我們怎麼做這件事兒。

需要的環境簡介:

掃瞄器的基本流程圖及簡單的配置介紹如下:

使用如下的**初始化程序池:

from multiprocessing import pool

p = pool(4) # 這裡可以根據機器的效能狀況設定程序池中的程序數

hosts = open(config.host_file)

for host in hosts:

print host

import nmap

nm = nmap.portscanner()

ret = nm.scan(ip,config.scan_port_range,config.scan_options,config.scan_sudo)

其中scan 屬性對應的字典即是掃瞄結果,key 為ip , value 為掃瞄結果,value 中tcp 為對應的tcp 掃瞄條目。

了解結構以後,我們就可以寫遍歷結果**了。

ret = nm.scan(ip,config.scan_port_range,config.scan_options,config.scan_sudo)

scan_host_count = len(ret['scan'].keys())

if scan_host_count != 0:

for ip,result in ret['scan'].items():

tcp_result = result.get('tcp')

for port,detail in tcp_result.items():

gotoneresult(ip,port,detail)

其中gotoneresult 為我們的最終處理結果,接收引數ip,port,detail ,

detail 的情況如下:

result sample : , 'hostnames': , 'vendor': {}, 'addresses': , '    tcp': , 443: }}
def gotoneresult(ip,port,detail):

if detail.get('state') == 'open':

print ip,port,detail

report_file = "reports/port_%d" % (int(port))

open(report_file,"a").write("%s %d %s \n" % (ip,int(port),detail))

最後展示一下掃瞄結果

demo 執行配置簡介:專案結構圖如下

使用說明:

**位址如下:

Python unittest環境搭建和基礎使用

用python搭建自動化測試框架,需要組織用例以及測試執行,大部分推薦的是unittest。現在搭建python介面框架用的也是這個,隨著了解,也有其他的框架,有時間再多去學習,保持持續學習哦 希望對大家有幫助 unittest是python自帶的單元測試框,可以用來作自動化測試框架的用例組織執行框...

Matlab使用 orth函式 正交基

注意 a orth b a的列數是等於b的秩數,所以,當b缺秩時,a的列就與b的列數不相等了。如 a 1 0 1 1 2 0 0 1 1 r rank a r 3 q orth a q 0.1200 0.8097 0.5744 0.9018 0.1531 0.4042 0.4153 0.5665 0...

eureka使用搭建

一 建工程,引入pom org.springframework.cloud spring cloud starter netflix eureka server 二 配置yml server port 7001 eureka instance hostname localhost eureka服務端...