Python Forensics - Dshell và Scapy
DShell
Dshelllà một bộ công cụ phân tích pháp y mạng dựa trên Python. Bộ công cụ này được phát triển bởi Phòng thí nghiệm Nghiên cứu Quân đội Hoa Kỳ. Việc phát hành bộ công cụ mã nguồn mở này là vào năm 2014. Trọng tâm chính của bộ công cụ này là giúp cho việc điều tra pháp y trở nên dễ dàng.
Bộ công cụ bao gồm một số lượng lớn các bộ giải mã được liệt kê trong bảng sau.
Sr.No. | Tên và mô tả bộ giải mã |
---|---|
1 | dns Điều này được sử dụng để trích xuất các truy vấn liên quan đến DNS |
2 | reservedips Xác định các giải pháp cho các sự cố DNS |
3 | large-flows Danh sách các luồng ròng |
4 | rip-http Nó được sử dụng để trích xuất các tệp từ lưu lượng HTTP |
5 | Protocols Được sử dụng để xác định các giao thức không chuẩn |
Phòng thí nghiệm Quân đội Hoa Kỳ đã duy trì kho lưu trữ nhân bản trong GitHub trong liên kết sau:
https://github.com/USArmyResearchLab/Dshell
Bản sao bao gồm một tập lệnh install-ubuntu.py () được sử dụng để cài đặt bộ công cụ này.
Sau khi cài đặt thành công, nó sẽ tự động xây dựng các tệp thực thi và các tệp phụ thuộc sẽ được sử dụng sau này.
Các phụ thuộc như sau:
dependencies = {
"Crypto": "crypto",
"dpkt": "dpkt",
"IPy": "ipy",
"pcap": "pypcap"
}
Bộ công cụ này có thể được sử dụng để chống lại các tệp pcap (bắt gói tin), thường được ghi lại trong sự cố hoặc trong khi cảnh báo. Các tệp pcap này được tạo bởi libpcap trên nền tảng Linux hoặc WinPcap trên nền tảng Windows.
Scapy
Scapy là một công cụ dựa trên Python được sử dụng để phân tích và điều khiển lưu lượng mạng. Sau đây là liên kết cho bộ công cụ Scapy:
http://www.secdev.org/projects/scapy/
Bộ công cụ này được sử dụng để phân tích thao tác gói tin. Nó rất có khả năng giải mã các gói của một số lượng lớn các giao thức và nắm bắt chúng. Scapy khác với bộ công cụ Dshell bằng cách cung cấp mô tả chi tiết cho người điều tra về lưu lượng mạng. Những mô tả này đã được ghi lại trong thời gian thực.
Scapy có khả năng lập âm mưu bằng các công cụ của bên thứ ba hoặc lấy dấu vân tay hệ điều hành.
Hãy xem xét ví dụ sau.
import scapy, GeoIP #Imports scapy and GeoIP toolkit
from scapy import *
geoIp = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE) #locates the Geo IP address
def locatePackage(pkg):
src = pkg.getlayer(IP).src #gets source IP address
dst = pkg.getlayer(IP).dst #gets destination IP address
srcCountry = geoIp.country_code_by_addr(src) #gets Country details of source
dstCountry = geoIp.country_code_by_addr(dst) #gets country details of destination
print src+"("+srcCountry+") >> "+dst+"("+dstCountry+")\n"
Tập lệnh này đưa ra mô tả chi tiết về chi tiết quốc gia trong gói mạng, những người đang giao tiếp với nhau.
Tập lệnh trên sẽ tạo ra kết quả sau.