Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
beagle — Beagle एक घटना प्रतिक्रिया और डिजिटल फोरेंसिक उपकरण है जो सुरक्षा लॉग और डेटा को ग्राफ़ में बदलता है। | Kitploit
उपकरण/GitHubGitHub/yampelo/beagle
फोरेंसिकडिजिटल फोरेंसिकखतरा खुफियाघटना प्रतिक्रियालॉग विश्लेषण
GitHubyampelo/beagle

beagle

Beagle एक घटना प्रतिक्रिया और डिजिटल फोरेंसिक उपकरण है जो सुरक्षा लॉग और डेटा को ग्राफ़ में बदलता है।

रिपॉजिटरी देखें
1.4k1516 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Beagle

Build Status codecov Read The Docs Docker PyPI Slack

  1. बीगल के बारे में
  2. स्थापना
    1. डॉकर
    2. पायथन पैकेज
    3. कॉन्फ़िगरेशन
  3. वेब इंटरफ़ेस
    1. डेटा अपलोड करना
    2. मौजूदा ग्राफ़ ब्राउज़ करना
    3. ग्राफ़ इंटरफ़ेस
      1. नोड और एज का निरीक्षण
      2. पड़ोसियों का विस्तार
      3. नोड छिपाना
      4. म्यूटेटर चलाना
      5. नोड और एज प्रकार टॉगल करना
      6. पूर्ववत/पुनर्क्रिया और रीसेट
      7. ग्राफ़ दृष्टिकोण
  4. पायथन लाइब्रेरी
    1. एज जनरेशन को नियंत्रित करना
    2. सहेजा गया JSON लोड करना
  5. दस्तावेज़ीकरण

बीगल के बारे में

बीगल एक घटना प्रतिक्रिया और डिजिटल फोरेंसिक उपकरण है जो डेटा स्रोतों और लॉग को ग्राफ़ में रूपांतरित करता है। समर्थित डेटा स्रोतों में FireEye HX Triages, Windows EVTX फ़ाइलें, SysMon लॉग और रॉ Windows मेमोरी इमेज शामिल हैं। परिणामी ग्राफ़ को Neo4J या DGraph जैसे ग्राफ़ डेटाबेस पर भेजा जा सकता है, या उन्हें स्थानीय रूप से Python NetworkX ऑब्जेक्ट के रूप में रखा जा सकता है।

बीगल को सीधे पायथन लाइब्रेरी के रूप में या प्रदान किए गए वेब इंटरफ़ेस के माध्यम से उपयोग किया जा सकता है।

लाइब्रेरी का उपयोग एकल डेटासोर्स से फ़ंक्शनल कॉल के अनुक्रम के रूप में किया जा सकता है।

root@kitploit:~
>>> from beagle.datasources import SysmonEVTX

>>> graph = SysmonEVTX("malicious.evtx").to_graph()
>>> graph
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

कई आर्टिफैक्ट के सेट से उत्पन्न ग्राफ़ के रूप में

root@kitploit:~
>>> from beagle.datasources import SysmonEVTX, HXTriage, PCAP
>>> from beagle.backends import NetworkX

>>> nx = NetworkX.from_datasources(
    datasources=[
        SysmonEVTX("malicious.evtx"),
        HXTriage("alert.mans"),
        PCAP("traffic.pcap"),
    ]
)
>>> G = nx.graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

या डेटा स्रोत से ग्राफ़ प्रक्रिया के प्रत्येक मध्यवर्ती चरण को सख्ती से कॉल करके।

root@kitploit:~
>>> from beagle.backends import NetworkX
>>> from beagle.datasources import SysmonEVTX
>>> from beagle.transformers import SysmonTransformer

>>> datasource = SysmonEVTX("malicious.evtx")

# Transformers take a datasource, and transform each event
# into a tuple of one or more nodes.
>>> transformer = SysmonTransformer(datasource=datasource)
>>> nodes = transformer.run()

# Transformers output an array of nodes.
[
    (<SysMonProc> process_guid="{0ad3e319-0c16-59c8-0000-0010d47d0000}"),
    (<File> host="DESKTOP-2C3IQHO" full_path="C:\Windows\System32\services.exe"),
    ...
]

# Backends take the nodes, and transform them into graphs
>>> backend = NetworkX(nodes=nodes)
>>> G = backend.graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x126b887f0>

ग्राफ़ व्यक्तिगत प्रक्रियाओं की गतिविधि के आसपास केंद्रित होते हैं, और मुख्य रूप से विश्लेषकों को होस्ट पर गतिविधि की जांच करने में मदद करने के लिए होते हैं, न कि उनके बीच।

स्थापना

डॉकर

बीगल डॉकर फ़ाइल के रूप में उपलब्ध है:

root@kitploit:~
docker pull yampelo/beagle
mkdir -p data/beagle
docker run -v "$PWD/data/beagle":"/data/beagle" -p 8000:8000 yampelo/beagle

पायथन पैकेज

यह लाइब्रेरी के रूप में भी उपलब्ध है। पूर्ण API दस्तावेज़ीकरण https://beagle-graphs.readthedocs.io पर उपलब्ध है।

root@kitploit:~
pip install pybeagle

नोट: वर्तमान में केवल Python 3.6+ समर्थित है।

Rekall स्वचालित रूप से स्थापित नहीं है। Rekall स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

root@kitploit:~
pip install pybeagle[rekall]

कॉन्फ़िगरेशन

  • प्रत्येक कॉन्फ़िगरेशन प्रविष्टि का पूर्ण अवलोकन

कॉन्फ़िगरेशन फ़ाइल में किसी भी प्रविष्टि को पर्यावरण चर का उपयोग करके संशोधित किया जा सकता है जो निम्नलिखित प्रारूप का पालन करते हैं: BEAGLE__{SECTION}__{KEY}। उदाहरण के लिए, डॉकर इमेज का उपयोग करते समय VirusTotal API Key बदलने के लिए, आप -e पैरामीटर का उपयोग करेंगे और BEAGLE__VIRUSTOTAL__API_KEY वेरिएबल सेट करेंगे:

root@kitploit:~
docker run -v "data/beagle":"/data/beagle" -p 8000:8000 -e "BEAGLE__VIRUSTOTAL__API_KEY=$API_KEY" beagle

पर्यावरण चर और निर्देशिकाओं को docker compose का उपयोग करके आसानी से परिभाषित किया जा सकता है

root@kitploit:~
version: "3"

services:
    beagle:
        image: yampelo/beagle
        volumes:
            - /data/beagle:/data/beagle
        ports:
            - "8000:8000"
        environment:
            - BEAGLE__VIRUSTOTAL__API_KEY=$key$

वेब इंटरफ़ेस

बीगल की डॉकर इमेज एक वेब इंटरफ़ेस के साथ आती है जो डेटा को ग्राफ़ में बदलने और उनका उपयोग करके डेटा की जांच करने की प्रक्रिया को लपेटता है।

डेटा अपलोड करना

अपलोड फ़ॉर्म ग्राफ़ निर्माण प्रक्रिया को लपेटता है, और स्वचालित रूप से NetworkX को बैकएंड के रूप में उपयोग करता है। डेटा स्रोत द्वारा आवश्यक पैरामीटर के आधार पर, फ़ॉर्म या तो फ़ाइल अपलोड के लिए संकेत देगा, या टेक्स्ट इनपुट के लिए। उदाहरण के लिए:

  • VT API सैंडबॉक्स रिपोर्ट ग्राफ़ के लिए हैश मांगती है।
  • FireEye HX को HX ट्राएज की आवश्यकता होती है।

बनाया गया कोई भी ग्राफ़ कॉन्फ़िगरेशन में storage अनुभाग के dir कुंजी के अंतर्गत परिभाषित फ़ोल्डर में स्थानीय रूप से संग्रहीत किया जाता है। इसे BEAGLE__STORAGE__DIR पर्यावरण चर सेट करके संशोधित किया जा सकता है।

वैकल्पिक रूप से, किसी भी ग्राफ़ में बेहतर वर्णन में मदद के लिए एक टिप्पणी जोड़ी जा सकती है।

प्रत्येक डेटा स्रोत स्वचालित रूप से प्रदान किए गए पैरामीटर से मेटाडेटा निकालेगा। मेटाडेटा और टिप्पणी बाद में डेटासोर्स के मौजूदा ग्राफ़ देखते समय दिखाई देती हैं।

मौजूदा ग्राफ़ ब्राउज़ करना

साइडबार पर डेटासोर्स पर क्लिक करने से उस डेटासोर्स के लिए सभी पार्स किए गए ग्राफ़ की एक तालिका प्रस्तुत होती है।

ग्राफ़ इंटरफ़ेस

बीगल में ग्राफ़ देखना एक वेब इंटरफ़ेस प्रदान करता है जो विश्लेषकों को किसी घटना के आसपास तुरंत घूमने की अनुमति देता है।

इंटरफ़ेस दो मुख्य भागों में विभाजित है, बायां भाग जिसमें ग्राफ़ के विभिन्न दृष्टिकोण (ग्राफ़, ट्री, टेबल, आदि) होते हैं, और दायां भाग जो आपको प्रकार के अनुसार नोड और एज को फ़िल्टर करने, नोड खोजने और नोड के गुणों का विस्तार करने की अनुमति देता है। यह आपको ग्राफ़ पर किए गए ऑपरेशन को पूर्ववत और पुनर्क्रिया करने की भी अनुमति देता है।

ग्राफ़ में कोई भी तत्व जिसके ऊपर एक विभाजक है, संक्षिप्त किया जा सकता है:

नोड और एज का निरीक्षण

ग्राफ़ में नोड एक विशिष्ट फ़ील्ड के पहले 15 अक्षर प्रदर्शित करते हैं। उदाहरण के लिए, एक प्रक्रिया नोड के लिए, यह प्रक्रिया का नाम होगा।

एज केवल एज प्रकार दिखाते हैं।

नोड या एज पर एक एकल क्लिक उस नोड पर फ़ोकस करेगा और दाएं साइडबार में "नोड जानकारी" पैनल में उसकी जानकारी प्रदर्शित करेगा।

नोड पर फ़ोकस करना
एज पर फ़ोकस करना

पड़ोसियों का विस्तार

नोड पर डबल क्लिक किसी भी पड़ोसी नोड को खींच लाएगा। पड़ोसी नोड कोई भी नोड होता है जो क्लिक किए गए नोड से एक एज द्वारा जुड़ा होता है। यदि खींचने के लिए कोई पड़ोसी नहीं हैं, तो ग्राफ़ में कोई बदलाव नहीं दिखेगा।

  • यह दिशा की परवाह किए बिना है। इसका मतलब है कि नोड पर डबल क्लिक करते समय एक पैरेंट प्रक्रिया या चाइल्ड प्रक्रिया खींची जा सकती है।
  • बीगल एक बार में केवल 25 नोड खींचेगा।

नोड छिपाना

नोड पर एक लंबा एकल क्लिक इसे ग्राफ़ से छिपा देगा, साथ ही उस पर निर्भर किसी भी एज को भी।

म्यूटेटर चलाना

नोड पर राइट क्लिक करने से एक संदर्भ मेनू प्रकट होता है जो आपको ग्राफ़ म्यूटेटर चलाने की अनुमति देता है। म्यूटेटर ऐसे फ़ंक्शन होते हैं जो ग्राफ़ स्थिति लेते हैं और एक नई स्थिति लौटाते हैं।

दो अत्यंत उपयोगी म्यूटेटर हैं:

  1. नोड का बैकट्रैकिंग: उन नोड और एज के अनुक्रम का पता लगाएं जो इस नोड के निर्माण की ओर ले गए।
    • एक प्रक्रिया नोड का बैकट्रैकिंग उसका प्रक्रिया ट्री दिखाएगा।
  2. सभी वंशजों का विस्तार: वर्तमान नोड से, हर उस नोड को दिखाएं जिसका यह नोड पूर्वज है।
    • एक प्रक्रिया नोड का विस्तार करने से उसके द्वारा उत्पन्न प्रत्येक चाइल्ड प्रक्रिया नोड, कोई भी फ़ाइल जिसे उसने छुआ हो, और लगभग हर गतिविधि दिखाई देगी जो इस नोड के परिणामस्वरूप हुई।
नोड का बैकट्रैकिंग
नोड वंशजों का विस्तार

नोड और एज प्रकार टॉगल करना

कभी-कभी, कोई नोड या एज वर्तमान घटना से प्रासंगिक नहीं हो सकता है, आप एज और नोड प्रकारों को चालू और बंद कर सकते हैं। जैसे ही प्रकार टॉगल किया जाता है, उस प्रकार के नोड या एज दृश्य ग्राफ़ से हटा दिए जाते हैं।

किसी नोड प्रकार को बंद करने से उस नोड प्रकार का उपयोग म्यूटेटर का उपयोग करते समय, या पड़ोसियों को खींचते समय रोका जाता है।

पूर्ववत/पुनर्क्रिया और रीसेट

ग्राफ़ में कोई भी कार्रवाई तुरंत प्रतिवर्ती है! पूर्ववत/पुनर्क्रिया बटन का उपयोग करके आप अपने द्वारा की गई किसी भी कार्रवाई को पूर्ववत कर सकते हैं। रीसेट बटन ग्राफ़ स्थिति को लोड होने के समय पर सेट करता है, जिससे आपको रीफ्रेश करने की आवश्यकता नहीं होती।

ग्राफ़ दृष्टिकोण

जैसे-जैसे आप उपरोक्त कार्रवाई का उपयोग करके ग्राफ़ की वर्तमान स्थिति बदलते हैं, आप दृश्य नोड और एज के वर्तमान सेट को एक अलग दृष्टिकोण से देखना चाह सकते हैं। ग्राफ़ स्क्रीन के शीर्ष पर टैब आपको डेटा को विभिन्न दृश्यों में बदलने की अनुमति देते हैं:

  • ग्राफ़ (डिफ़ॉल्ट दृष्टिकोण)
  • ट्री
  • तालिका
  • समयरेखा
  • मार्कडाउन

प्रत्येक दृष्टिकोण नोड पर क्लिक करके उन पर फ़ोकस करने का समर्थन करता है।

पायथन लाइब्रेरी

ग्राफ़ निर्माण प्रक्रिया को पायथन लाइब्रेरी का उपयोग करके प्रोग्रामेटिक रूप से किया जा सकता है। ग्राफ़ निर्माण प्रक्रिया तीन चरणों से बनी है:

  1. DataSource वर्ग इवेंट को एक-एक करके पार्स और उत्पन्न करते हैं।
  2. Transformer वर्ग उन इनपुट को लेते हैं और उन्हें विभिन्न Node वर्गों जैसे Process में रूपांतरित करते हैं।
  3. Backend वर्ग नोड की सरणी लेते हैं, उन्हें ग्राफ़ संरचना में रखते हैं, और उन्हें वांछित स्थान पर भेजते हैं।

पायथन पैकेज को pip के माध्यम से स्थापित किया जा सकता है:

root@kitploit:~
pip install pybeagle

ग्राफ़ बनाने के लिए इन्हें एक साथ जोड़ना आवश्यक है। यह आपके लिए to_graph() फ़ंक्शन का उपयोग करके किया जा सकता है।

root@kitploit:~
from beagle.datasources import HXTriage

# By default, using the to_graph() class uses NetworkX and the first transformer.
G = HXTriage('test.mans').to_graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

इसे प्रत्येक चरण में स्पष्ट रूप से भी किया जा सकता है। फ़ंक्शनल कॉल का उपयोग करके, आप यह भी परिभाषित कर सकते हैं कि आप किस बैकएंड का उपयोग करना चाहते हैं, उदाहरण के लिए, DGraph को डेटा भेजने के लिए

root@kitploit:~
from beagle.datasources import HXTriage
from beagle.backends import DGraph
from beagle.transformers import FireEyeHXTransformer

# The data will be sent to the DGraph instance configured in the
# configuration file
backend = HXTriage('test.mans').to_graph(backend=DGraph)

# Can also specify the transformer
backend = HXTriage('test.mans').to_transformer(transformer=FireEyeHXTransformer).to_graph(backend=DGraph)

to_graph या to_transformer विधियों को कॉल करते समय, आप उन वर्गों में कोई भी तर्क पास कर सकते हैं:

root@kitploit:~
from beagle.datasources import HXTriage
from beagle.backends import Graphistry

# Send the graphistry, anonymize the data first, and return the URL
graphistry_url = HXTriage('test.mans').to_graph(backend=Graphistry, anonymize=True, render=False)

आप उपरोक्त प्रक्रिया में प्रत्येक चरण को मैन्युअल रूप से भी लागू कर सकते हैं, मध्यवर्ती आउटपुट तक पहुँच सकते हैं

root@kitploit:~
>>> from beagle.backends import NetworkX
>>> from beagle.datasources import HXTriage
>>> from beagle.transformers import FireEyeHXTransformer

>>> datasource = HXTriage("test.mans")
>>> transformer = FireEyeHXTransformer(datasource=datasource)
>>> nodes = transformer.run()
>>> backend = NetworkX(nodes=nodes)
>>> G = backend.graph()

यदि आप प्रत्येक चरण को मैन्युअल रूप से कॉल करना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि Transformer वर्ग का इंस्टेंस प्रदान किए गए DataSource वर्ग के आउटपुट के साथ संगत है।

  • सभी बैकएंड सभी ट्रांसफॉर्मर के साथ संगत हैं।

प्रत्येक डेटा स्रोत उन ट्रांसफॉर्मर की सूची को परिभाषित करता है जिनके साथ वह संगत है, और इसे .transformers विशेषता के माध्यम से एक्सेस किया जा सकता है:

root@kitploit:~
>>> from beagle.datasources import HXTriage
>>> HXTriage.transformers
[beagle.transformers.fireeye_hx_transformer.FireEyeHXTransformer]

एज जनरेशन को नियंत्रित करना

डिफ़ॉल्ट रूप से, एज संघनित नहीं होते हैं, इसका मतलब है कि यदि कोई प्रक्रिया नोड u एक फ़ाइल नोड v को 5000 बार लिखता है, तो उन नोड के बीच 5000 एज होंगे। कभी-कभी, विशेष रूप से डेटा को विज़ुअलाइज़ करने का प्रयास करते समय, यह एक विश्लेषक को अभिभूत कर सकता है।

आप बैकएंड वर्ग को consolidate_edges=True पैरामीटर पास करके उस प्रकार की कार्रवाई (इस मामले में लिखा) के लिए सभी 5000 एज को एक एकल एज में संघनित कर सकते हैं, उदाहरण के लिए:

root@kitploit:~
SysmonEVTX("data/sysmon/autoruns-sysmon.evtx").to_graph(NetworkX, consolidate_edges=False)
# Graph contains 826 nodes and 2469 edges.

SysmonEVTX("data/sysmon/autoruns-sysmon.evtx").to_graph(NetworkX, consolidate_edges=True)
# Graph contains 826 nodes and 1396 edges

डिफ़ॉल्ट रूप से, वेब इंटरफ़ेस एज को संघनित करेगा।

सहेजा गया JSON लोड करना

NetworkX बैकएंड का उपयोग करके आप परिणामी ग्राफ़ को JSON ऑब्जेक्ट के रूप में सहेज सकते हैं, इसे बाद के लिए संग्रहीत कर सकते हैं। आप इसे वापस लोड करने के लिए NetworkX.from_json स्टेटिक विधि का उपयोग कर सकते हैं।

root@kitploit:~
import json
from beagle.datasources import SysmonEVTX
from beagle.backends import NetworkX

# Get back a nx.MultiDiGraph object
graph = SysmonEVTX("malicious.evtx").to_graph()

# Convert the object to JSON
graph_json = NetworkX.graph_to_json(graph)

with open("my_graph.json", "w") as f:
    json.dump(graph_json, f)

# Later on:
# G is the same nx.MultiDiGraph object generated by `.to_graph()`
G = NetworkX.from_json("my_graph.json")

दस्तावेज़ीकरण

  • REST API अवलोकन
  • कॉन्फ़िगरेशन
  • डेवलपमेंट
  • डिज़ाइन तर्क
टूल डाउनलोड करें