在本教程中,我们将学习如何使用Python进行取证科学,了解基本的Python取证应用、哈希函数、破解加密、可视化、命名约定、Dshell和Scapy,以及网络取证并详细解释它们。

介绍

收集和保留证据对于计算机设备上的网络取证调查和分析至关重要。在法庭上,这扮演着对付犯罪分子的重要角色。如今,技术使我们能够通过在浏览器上输入查询来获取信息。但它也吸引了网络罪犯。网络罪犯是那些通过使用自己的系统和互联网进行恶意活动的人。他们可以从其他地方获取您的所有信息。

Python具有广泛的应用,还提供了与数字取证一起工作的功能。通过使用它,我们可以收集数据,提取证据,甚至加密密码。它将帮助我们恢复证据的可靠性。

在进一步之前,您必须熟悉 Python 及其高级概念。

计算取证简介

计算取证是解决各种取证领域问题的一部分研究。它使用基于计算机的建模、分析、计算机模拟和识别。Python取证是由 Chet Homster 发明的。还有模式证据,例如指纹、鞋印、工具标记和任何文档。它使用了程序、对象和物质的范围。还有生理和行为模式,如数字证据、DNA 和犯罪现场。

137-1.png

我们还可以使用各种算法来处理信号和图像处理。通过使用算法,我们还可以处理数据挖掘、计算机图形、机器学习、计算机视觉数据可视化和统计模式识别等方面的问题。

简而言之,计算取证用于研究数字证据,计算取证处理各种类型的证据。

Python取证应用的命名约定

我们必须熟悉Python取证指南中的命名约定和模式。请考虑以下表格。

命名约定示例
对象以驼峰式命名为前缀ob_studentName
本地变量带可选下划线的驼峰式命名studentName
常量大写,用下划线分隔的单词STUDENT_NAME
全局变量以可选下划线开头的驼峰式命名my_studentName
函数带可选下划线的帕斯卡式命名; 主动语态MystudentName
模块以驼峰式命名为前缀_studentname
以帕斯卡式类前缀命名; 保持它简洁class_MyStudentName

哈希算法是将二进制数据流作为输入的最佳方法之一。在现实生活中,我们可以加密密码、文件,甚至任何类型的数字文件或数据。该算法接受一个输入并生成加密消息。让我们看看给定的示例。

示例

import sys,string,md5  
print("Enter the name")  
line=sys.stdin.readline()  
line=line.rstrip()  
md5_object=md5.new()  
md5_object.update(line)  
print(md5_object.hexdigest())  

Python哈希函数

Python哈希函数用于将大量数据映射到固定值。一个输入返回相同的输出。它是一个哈希和存储具体信息的功能。一旦我们将数据映射到固定值,就无法恢复。这就是为什么我们也将其称为单向加密算法的原因。

让我们了解以下示例 -

示例 -

import hashlib  
import uuid  
  
def hash_pass(password):  
    s = uuid.uuid4().hex  
    return hashlib.sha256(s.encode() + password.encode()).hexdigest() + ':' + s  
def verify_password(hashed_password, user_password):  
    password, s = hashed_password.split(':')  
    return password == hashlib.sha256(s.encode() + user_password.encode()).hexdigest()  
new_password = input('Enter your password :')  
  
hashed_password = hash_pass(new_password)  
print('The hash string to store in the db is: ' + hashed_password)  

输出:

Enter your password: sharma
The hash string to store in the db is: 947782bdb0c7a5ad642f1f26179b6aef2d9857427b45a09af4fce3b8f1346e91:8a8371941513482487e5ab8af2ae6466

在上面的示例中,我们首先创建一个随机的UUID(通用唯一标识符),然后使用SHA-256哈希算法对随机UUID和用户提供的密码进行哈希处理。哈希值和UUID被分开存储在数据库中,以便在验证密码时使用。

破解哈希

有时,需要破解密码哈希,这通常是因为忘记了密码。在破解密码哈希时,可以使用暴力破解或字典攻击等技术。这些技术尝试所有可能的密码组合,直到找到与哈希匹配的密码。

以下是一个用于破解哈希的简单示例:

import sys  
def decryption(text,cipher):  
    simple_text=''  
    for each in cipher:  
        x = (ord(each)-text) % 126  
        if x < 32:  
            x+=95  
            simple_text += chr(x)  
            print(simple_text)  
cipher_text = input('Enter the message: ')  
for i in range(1,95,1):  
    decryption(i,cipher_text)  

请注意,破解密码哈希是非法的,除非您有合法的授权来执行此操作,例如在合法的渗透测试中。否则,这违反了计算机犯罪法律。

Dshell和Scapy

Dshell和Scapy是两个用于网络取证的Python库。

Dshell是一个用于网络取证和监视的网络分析工具。它可以捕获网络流量,分析数据包,并生成有关网络活动的报告。Dshell还包括一组内置的插件,用于执行各种网络取证任务。

Scapy是一个用于数据包操作的强大Python库。它可以用于创建、发送、捕获和分析网络数据包。Scapy允许您以编程方式控制数据包的构造和解析,这对于网络取证非常有用。

以下是使用Scapy捕获和分析网络数据包的简单示例:

#Imports scapy and GeoIP toolkit  
import scapy, GeoIP   
from scapy import *  
  
geoIp = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE)   
def locatePackage(pkg):  
    # extracts the source IP address  
    source = pkg.getlayer(IP).src  
    # extracts the destination IP address  
    destination = pkg.getlayer(IP).dst  
    # gets Country details of source  
    srcCountry = geoIp.country_code_by_addr(source)   
    dstCountry = geoIp.country_code_by_addr(destination)  
    # gets country details of destination  
    print src+"("+sourceCountry+") >> "+destination+"("+destinationcountry+")\n"  

Dshell和Scapy都是强大的工具,可用于进行网络取证调查和分析,帮助识别网络攻击和威胁。

结论

在计算取证领域,Python是一个强大的工具,可用于处理数字证据、哈希函数、破解哈希、可视化数据以及执行网络取证任务。了解如何使用Python进行这些操作将有助于进行成功的取证调查和分析。但请注意,在进行计算取证时必须遵守法律和道德规范,以确保合法性和合规性。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程