亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

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

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

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

 


前言

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

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

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

所有成功的網(wǎng)絡攻擊一般都是以端口掃描拉開序幕的。有一種類型的端口掃描會向一 系列常用的端口發(fā)送TCP SYN數(shù)據(jù)包,并等待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編寫端口掃描器

 

求關注,持續(xù)更新中~

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

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

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

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

運動步數(shù)有氧達人2018-06-03

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

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

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

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