日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

黑客如何尋找攻擊的突破口?運用Python編寫端口掃描器

 


前言

任何一個靠譜的網絡攻擊都是起步于偵查的。攻擊者必須在挑選并確定利用目標中的漏洞之前找出目標在哪里有漏洞。在本篇文章中,我們將編寫一個掃描目標主機開放的TCP端口的偵查小腳本。當然,為了與TCP端口進行交互,我們先要建立TCP套接字。

與大多數現代編程語言一樣,Python也提供了訪問BSD套接字的接口。BSD套接字提供了一個應用編程接口(API) ,使程序員能編寫在主機之間進行網絡通信的應用程序。通過一系列的套接字API函數,我們可以創建、綁定、監聽、連接,或在TCP/IP套接字上發送數據。在這一點上,為了進一步開發我們自己的攻擊程序,必須對TCP/IP套接字有一個更深入的了解。

大多數能訪問互聯網的應用使用的都是TCP協議。例如,在目標組織中,Web 服務器可能位于TCP 80端口,電子郵件服務器在TCP25端口,FTP服務器在TCP21端口。要連接目標組織中的任一一 服務器,攻擊者必須知道與服務器相關聯的IP地址和TCP端口。雖然熟悉我們目標組織的人可能掌握這些信息,但攻擊者卻不定。

所有成功的網絡攻擊一般都是以端口掃描拉開序幕的。有一種類型的端口掃描會向一 系列常用的端口發送TCP SYN數據包,并等待TCP ACK響應這能讓我們確定這 個端口是開放的。與此相反,TCP 連接掃描是使用完整的三次握手來確定服務器或端口是否可用的。


代碼

TCP全連接掃描

import socket
from socket import *
from threading import *
screenLock = Semaphore(value=1)
def connScan(tgtHost, tgtPort):
    try:
        connSkt = socket(AF_INET, SOCK_STREAM)
        connSkt.connect((tgtHost, tgtPort))
        connSkt.send('ViolentPythonrn')
        results = connSkt.recv(100)
        print('[+] %d/tcp open' % tgtPort)
        print('[+] ' + str(results))
    except:
        screenLock.acquire()
        print('[-] %d/tcp closed' % tgtPort)
    finally:
        screenLock.release()
        connSkt.close()

def portScan(tgtHost, tgtPorts):
    try:
        tgtIP = gethostbyname(tgtHost)
    except:
        print("[-] Cannot resolve '%s':Unknown host" % tgtHost)
        return
    try:
        tgtName = gethostbyaddr(tgtIP)
        print('n[+] Scan Resulst for: ' + tgtName[0])
    except:
        print('n[+] Scan Results for: ' + tgtIP)
        setdefaulttimeout(1)
    for tgtPort in tgtPorts:
        t = Thread(target=connScan, args=(tgtHost, int(tgtPort)))
        t.start()


def main():
    parser = optparse.OptionParser('usage % prog ' + '-H <target host> -p <target port>')
    parser.add_option('-H', dest='tgtHost', type='string', help='specify target host')
    parser.add_option('-p', dest='tgtPort', type='string', help='specify target port[s] separated by comma')
    (options, args) = parser.parse_args()
    tgtHost = options.tgtHost
    tgtPorts = str(options.tgtPort).split(',')
    if (tgtHost == None) | (tgtPorts[0] == None):
        print('[-] You must specify a target host and port[s].')
        exit(0)
    portScan(tgtHost, tgtPorts)

if __name__=='__main__':
    main()

windows上運行

黑客如何尋找攻擊的突破口?運用Python編寫端口掃描器

 

kali-linux上運行

黑客如何尋找攻擊的突破口?運用Python編寫端口掃描器

 

nmap端口掃描

import nmap
import optparse
def nmapScan(tgtHost, tgtPort):
    nmScan = nmap.PortScanner(nmap_search_path=('nmap',r'D:應用程序Nmapnmap.exe'))
    nmScan.scan(tgtHost, tgtPort)
    state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
    print("[*] "+tgtHost+" tcp/"+tgtPort+" "+state)
def main():
    parser = optparse.OptionParser('usage % prog ' + '-H <target host> -p <target port>')
    parser.add_option('-H', dest='tgtHost', type='string', help='specify target host')
    parser.add_option('-p', dest='tgtPort', type='string', help='specify target port[s] separated by comma')
    (options, args) = parser.parse_args()
    tgtHost = options.tgtHost
    tgtPorts = str(options.tgtPort).split(',')
    if (tgtHost == None) | (tgtPorts[0] == None):
        print('[-] You must specify a target host and port[s].')
        exit(0)
    for tgtPort in tgtPorts:
        nmapScan(tgtHost, tgtPort)
if __name__=='__main__':
    main()
黑客如何尋找攻擊的突破口?運用Python編寫端口掃描器

 

注意:若在Windows上要運行nmap端口掃描代碼,要安裝的包是python-nmap,而非nmap,還需安裝nmap.exe,第4行代碼中”D:應用程序Nmapnmap.exe“為nmap安裝路徑。

黑客如何尋找攻擊的突破口?運用Python編寫端口掃描器

 

求關注,持續更新中~

有問題歡迎評論區留言,或微信公眾號(同名)留言。

分享到:
標簽:掃描器 端口
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定