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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
rusty-hog — बहु-स्रोत गुप्त स्कैनर जो Git रिपॉजिटरी, S3 बकेट, फ़ाइल सिस्टम, Confluence, JIRA, Slack और Google Docs में API कुंजियाँ, पासवर्ड और PII का पता लगाने के लिए रेगेक्स और एंट्रॉपी विश्लेषण का उपयोग करता है। | Kitploit
उपकरण/GitHubGitHub/newrelic/rusty-hog
कोड विश्लेषणक्लाउड सुरक्षाDevSecOpsसीक्रेट डिटेक्शन
GitHubnewrelic/rusty-hog

rusty-hog

बहु-स्रोत गुप्त स्कैनर जो Git रिपॉजिटरी, S3 बकेट, फ़ाइल सिस्टम, Confluence, JIRA, Slack और Google Docs में API कुंजियाँ, पासवर्ड और PII का पता लगाने के लिए रेगेक्स और एंट्रॉपी विश्लेषण का उपयोग करता है।

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

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

सभी देखें →

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

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

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

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

Rusty Hog एक गुप्त स्कैनर है जो प्रदर्शन के लिए Rust में बनाया गया है, और TruffleHog पर आधारित है जो Python में लिखा गया है। Rusty Hog निम्नलिखित बाइनरी प्रदान करता है:

  • Ankamali Hog: Google Doc में गुप्त जानकारी स्कैन करता है।
  • Berkshire Hog: S3 बकेट में गुप्त जानकारी स्कैन करता है।
  • Choctaw Hog: Git रिपॉजिटरी में गुप्त जानकारी स्कैन करता है।
  • Duroc Hog: निर्देशिका, फ़ाइल और संग्रह में गुप्त जानकारी स्कैन करता है।
  • Essex Hog: Confluence विकी पेज में गुप्त जानकारी स्कैन करता है।
  • Gottingen Hog: JIRA इश्यू में गुप्त जानकारी स्कैन करता है।
  • Slack Hog: Slack चैनल में गुप्त जानकारी स्कैन करता है।

विषय-सूची

  • उपयोग
    • डाउनलोड की गई बाइनरी का उपयोग करके इंस्टॉल कैसे करें
    • DockerHub का उपयोग करके कैसे चलाएं
    • कैसे बनाएं
    • Windows पर कैसे बनाएं
    • Anakamali Hog (GDoc स्कैनर) का उपयोग
    • Berkshire Hog (S3 स्कैनर - CLI) का उपयोग
    • Berkshire Hog (S3 स्कैनर - Lambda) का उपयोग
    • Choctaw Hog (Git स्कैनर) का उपयोग
    • Duroc Hog (फ़ाइल सिस्टम स्कैनर) का उपयोग
    • Essex Hog (Confluence स्कैनर) का उपयोग
    • Gottingen Hog (JIRA स्कैनर) का उपयोग
    • Hante Hog (SLACK स्कैनर) का उपयोग
    • Regex JSON फ़ाइल स्वरूप
    • Allowlist JSON फ़ाइल स्वरूप
  • परियोजना जानकारी
    • खुला स्रोत लाइसेंस
    • सहायता
    • समुदाय
    • मुद्दे/वृद्धि अनुरोध
    • योगदान
    • सुविधा रोडमैप
    • नाम का क्या अर्थ है?

उपयोग

यह परियोजना स्कैनर्स का एक सेट प्रदान करती है जो संवेदनशील जानकारी की उपस्थिति का पता लगाने के लिए नियमित अभिव्यक्तियों का उपयोग करती है, जैसे कि API कुंजियाँ, पासवर्ड और व्यक्तिगत जानकारी। इसमें डिफ़ॉल्ट रूप से नियमित अभिव्यक्तियों का एक सेट शामिल है, लेकिन यह आपके कस्टम नियमित अभिव्यक्तियों वाले JSON ऑब्जेक्ट को भी स्वीकार करता है।

डाउनलोड की गई बाइनरी का उपयोग करके इंस्टॉल कैसे करें

रिलीज़ टैब पर नवीनतम ZIP डाउनलोड और अनज़िप करें। फिर, प्रत्येक बाइनरी को -h के साथ चलाकर उपयोग देखें।```shell script wget https://github.com/newrelic/rusty-hog/releases/download/v1.0.11/rustyhogs-darwin-choctaw_hog-1.0.11.zip unzip rustyhogs-darwin-choctaw_hog-1.0.11.zip darwin_releases/choctaw_hog -h

root@kitploit:~
## DockerHub का उपयोग करके कैसे चलाएँ
Rusty Hog Docker इमेज लेखक के व्यक्तिगत DockerHub पेज [यहाँ](https://hub.docker.com/u/wetfeet2000) मिल सकते हैं।
प्रत्येक Hog और प्रत्येक रिलीज़ के लिए एक Docker Image बनाया गया है। इसलिए choctaw_hog का उपयोग करने के लिए आप निम्नलिखित कमांड चलाएँगे:```shell script
docker pull wetfeet2000/choctaw_hog:1.0.10
docker run -it --rm wetfeet2000/choctaw_hog:1.0.10 --help

कैसे बनाएं

  • सुनिश्चित करें कि आपने Rust स्थापित किया है और यह आपके PATH पर है।
  • इस रिपॉजिटरी को क्लोन करें, और फिर cargo build --release चलाएं। बाइनरीज़ target/release में स्थित हैं।
  • HTML दस्तावेज़ बनाने और देखने के लिए, cargo doc --no-deps --open चलाएं।
  • यूनिट टेस्ट चलाने के लिए, cargo test चलाएं।
  • AWS Lambda वातावरण के लिए Berkshire Hog को क्रॉस-कम्पाइल करने के लिए, निम्नलिखित कमांड चलाएं और berkshire_lambda.zip को अपने AWS Lambda डैशबोर्ड पर अपलोड करें:```shell script docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder cargo build --release cp target/x86_64-unknown-linux-musl/release/berkshire_hog bootstrap zip -j berkshire_lambda.zip bootstrap
root@kitploit:~
## Windows पर कैसे बनाएं
आपको स्थैतिक OpenSSL बाइनरीज़ को कंपाइल करना होगा और Rust/Cargo को बताना होगा कि उन्हें कहाँ खोजना है:```
mkdir \Tools
cd \Tools
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg.exe install openssl:x64-windows-static

$env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static'
$env:OPENSSL_STATIC = 'Yes'
[System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)

अब आप ऊपर सूचीबद्ध मुख्य निर्माण निर्देशों का पालन कर सकते हैं।

Lambda के लिए Berkshire Hog कैसे बनाएं

macOS

निर्भरताएँ प्राप्त करने के लिए Homebrew का उपयोग करें:``` brew install rpm2cpio FiloSottile/musl-cross/musl-cross

root@kitploit:~
फिर चलाएँ `./build_lambda_macos.sh`।

बिल्ड स्क्रिप्ट OpenSSL 3.0.12 के विरुद्ध बिल्ड करेगी। ओवरराइड करने के लिए `export OPENSSL_BUILD_VER=3.0.12` का उपयोग करें।

बिल्ड स्क्रिप्ट Amazon Linux कर्नेल हेडर्स के विरुद्ध बिल्ड करेगी जो उनके RPM द्वारा प्रदान किए गए हैं; RPM के डाउनलोड स्थान को ओवरराइड करने के लिए `export AMAZON_KERNEL_HEADERS_RPM_URL=...` का उपयोग करें। (किसी भिन्न वितरण के linux-headers RPM के उपयोग में कोई बाधा नहीं है, हमें लिनक्स के लिए openssl बनाने के लिए केवल linux-headers की आवश्यकता है)

बिल्ड स्क्रिप्ट आपके वर्तमान स्रोत रूट में build-deps निर्देशिका बनाएगा। आप इस निर्देशिका को सुरक्षित रूप से `rm -rf` कर सकते हैं, लेकिन अगली बिल्ड स्क्रिप्ट चलाने पर यह पुनः बनाई जाएगी। यह विभिन्न स्थिरता जाँच भी करेगा ताकि सुनिश्चित हो सके कि बिल्ड काम करना चाहिए और यदि वे विफल होते हैं, तो यह आपको फिर से प्रयास करने के लिए उस निर्देशिका को `rm -rf` करने के लिए कह सकता है।

### Linux

सुनिश्चित करें कि `cross` स्थापित है (`cargo install cross`), फिर बस `./build_lambda.sh` चलाएँ।

# कमांड्स

## Anakamali Hog (GDoc Scanner) उपयोग```
USAGE:
    ankamali_hog [FLAGS] [OPTIONS] <GDRIVEID>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --oauthsecret        Path to an OAuth secret file (JSON) ./clientsecret.json by default
        --oauthtoken         Path to an OAuth token storage file ./temp_token by default
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
    -a, --allowlist <ALLOWLIST>                                    Sets a custom allowlist JSON file
        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (0.6 by default)
    -o, --outputfile <OUTPUT>                                      Sets the path to write the scanner results to (stdout by default)

        --regex <REGEX>                                            Sets a custom regex JSON file

ARGS:
    <GDRIVEID>    The ID of the Google drive file you want to scan

Berkshire Hog (S3 Scanner - CLI) उपयोग```

USAGE: berkshire_hog [FLAGS] [OPTIONS]

FLAGS: --caseinsensitive Sets the case insensitive flag for all regexes --entropy Enables entropy scanning --prettyprint Outputs the JSON in human readable format -r, --recursive Recursively scans files under the prefix -v, --verbose Sets the level of debugging information -h, --help Prints help information -V, --version Prints version information

OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) -o, --outputfile Sets the path to write the scanner results to (stdout by default)

root@kitploit:~
    --profile <PROFILE>                                        When using a configuration file, enables a non-default profile

    --regex <REGEX>                                            Sets a custom regex JSON file

ARGS: The location of a S3 bucket and optional prefix or filename to scan. This must be written in the form s3://mybucket[/prefix_or_file] Sets the region of the S3 bucket to scan

root@kitploit:~
## Berkshire Hog (S3 Scanner - Lambda) उपयोग
Berkshire Hog को वर्तमान में Lambda फ़ंक्शन के रूप में उपयोग करने के लिए डिज़ाइन किया गया है। यह मूल डेटा प्रवाह है:
<pre>
    ┌───────────┐              ┌───────┐     ┌────────────────┐     ┌────────────┐
    │ S3 bucket │ ┌────────┐   │       │     │ Berkshire Hog  │     │ S3 bucket  │
    │  (input) ─┼─┤S3 event├──▶│  SQS  │────▶│    (Lambda)    │────▶│  (output)  │
    │           │ └────────┘   │       │     │                │     │            │
    └───────────┘              └───────┘     └────────────────┘     └────────────┘
</pre>

Berkshire Hog को इस प्रकार चलाने के लिए, निम्नलिखित सेट करें:
1) इनपुट बकेट को प्रत्येक PUSH/PUT इवेंट के लिए SQS को एक "इवेंट" भेजने के लिए कॉन्फ़िगर करें।
2) SQS टॉपिक को S3 से इवेंट स्वीकार करने के लिए सेट अप करें, जिसमें IAM अनुमतियाँ शामिल हैं।
3) Berkshire Hog को SQS और S3 तक IAM पहुँच के साथ चलाएँ।

## Choctaw Hog (Git Scanner) उपयोग```
USAGE:
    choctaw_hog [FLAGS] [OPTIONS] <GITPATH>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (4.5 by default)
        --httpspass <HTTPSPASS>                                    Takes a password for HTTPS-based authentication
        --httpsuser <HTTPSUSER>                                    Takes a username for HTTPS-based authentication
    -o, --outputfile <OUTPUT>                                      Sets the path to write the scanner results to (stdout by default)
        --recent_days <RECENTDAYS>                                 Filters commits to the last number of days (branch agnostic)
    -r, --regex <REGEX>                                            Sets a custom regex JSON file
        --since_commit <SINCECOMMIT>                               Filters commits based on date committed (branch agnostic)
        --sshkeypath <SSHKEYPATH>                                  Takes a path to a private SSH key for git authentication, defaults to ssh-agent
        --sshkeyphrase <SSHKEYPHRASE>                              Takes a passphrase to a private SSH key for git authentication, defaults to none
        --until_commit <UNTILCOMMIT>                               Filters commits based on date committed (branch agnostic)
    -a, --allowlist <ALLOWLIST>                                    Sets a custom ALLOWLIST JSON file

ARGS:
    <GITPATH>    Sets the path (or URL) of the Git repo to scan. SSH links must include username (git@)

Duroc Hog (फ़ाइल सिस्टम स्कैनर) उपयोग```

USAGE: duroc_hog [FLAGS] [OPTIONS]

FLAGS: --caseinsensitive Sets the case insensitive flag for all regexes --entropy Enables entropy scanning --norecursive Disable recursive scanning of all subdirectories underneath the supplied path --prettyprint Outputs the JSON in human readable format -z, --unzip Recursively scans archives (ZIP and TAR) in memory (dangerous) -v, --verbose Sets the level of debugging information -h, --help Prints help information -V, --version Prints version information

OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) -o, --outputfile Sets the path to write the scanner results to (stdout by default) -r, --regex Sets a custom regex JSON file

ARGS: Sets the path of the directory or file to scan.

root@kitploit:~
## Essex Hog (Confluence scanner) उपयोग```
USAGE:
    essex_hog [FLAGS] [OPTIONS] <PAGEID> <URL>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
    -a, --allowlist <ALLOWLIST>                                    Sets a custom allowlist JSON file
        --authtoken <BEARERTOKEN>                                  Confluence basic auth bearer token (instead of user & pass)

        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (0.6 by default)
    -o, --outputfile <OUTPUT>                                      Sets the path to write the scanner results to (stdout by default)
        --password <PASSWORD>                                      Confluence password (crafts basic auth header)
        --regex <REGEX>                                            Sets a custom regex JSON file
        --username <USERNAME>                                      Confluence username (crafts basic auth header)

ARGS:
    <PAGEID>    The ID (e.g. 1234) of the confluence page you want to scan
    <URL>       Base URL of Confluence instance (e.g. https://newrelic.atlassian.net/)

Gottingen Hog (JIRA स्कैनर) उपयोग```

Jira secret scanner in Rust.

USAGE: gottingen_hog [FLAGS] [OPTIONS]

FLAGS: --caseinsensitive Sets the case insensitive flag for all regexes --entropy Enables entropy scanning --prettyprint Outputs the JSON in human readable format -v, --verbose Sets the level of debugging information -h, --help Prints help information -V, --version Prints version information

OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --authtoken Jira basic auth bearer token (instead of user & pass) --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) --url Base URL of JIRA instance (e.g. https://jira.atlassian.net/) -o, --outputfile Sets the path to write the scanner results to (stdout by default) --password Jira password (crafts basic auth header) --regex Sets a custom regex JSON file --username Jira username (crafts basic auth header)

ARGS: The ID (e.g. PROJECT-123) of the Jira issue you want to scan

root@kitploit:~
## Hante Hog (SLACK scanner) उपयोग```
Slack secret scanner in Rust.

USAGE:
    hante_hog [FLAGS] [OPTIONS] --authtoken <BEARERTOKEN> --channelid <CHANNELID> --url <SLACKURL>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
    -a, --allowlist <ALLOWLIST>                                    Sets a custom allowlist JSON file
        --authtoken <BEARERTOKEN>                                  Slack basic auth bearer token
        --channelid <CHANNELID>
            The ID (e.g. C12345) of the Slack channel you want to scan

        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (0.6 by default)
        --latest <LATEST>                                          End of time range of messages to include in search
        --oldest <OLDEST>                                          Start of time range of messages to include in search
    -o, --outputfile <OUTPUT>
            Sets the path to write the scanner results to (stdout by default)

        --regex <REGEX>                                            Sets a custom regex JSON file
        --url <SLACKURL>
            Base URL of Slack Workspace (e.g. https://[WORKSPACE NAME].slack.com)

रीजेक्स JSON फ़ाइल प्रारूप

स्कैनर्स पर रीजेक्स विकल्प उपयोगकर्ताओं को संवेदनशील सामग्री से मेल खाने वाली नियमित अभिव्यक्तियों की अपनी JSON फ़ाइल का पथ प्रदान करने की अनुमति देता है। वर्तमान में कोई भी प्रदान की गई फ़ाइल SecretScanner द्वारा प्रदान की गई डिफ़ॉल्ट नियमित अभिव्यक्तियों को जोड़ने के बजाय बदल देगी। फ़ाइल का अपेक्षित प्रारूप एक एकल JSON ऑब्जेक्ट है।

कुंजियाँ प्रत्येक रीजेक्स प्रविष्टि द्वारा पता लगाए जाने वाले गुप्त प्रकार के नाम होने चाहिए, क्योंकि कुंजियाँ स्कैनर द्वारा आउटपुट किए गए कारण गुणों के लिए उपयोग की जाएंगी।

प्रत्येक मान एक स्ट्रिंग होना चाहिए जिसमें एक मान्य https://docs.rs/regex/1.3.9/regex/#syntax (Rust के लिए नियमित अभिव्यक्ति) हो जो उसके संबंधित कुंजी द्वारा वर्णित गुप्त प्रकार से मेल खाना चाहिए।

संस्करण 1.0.8 के अनुसार, Rusty Hog इंजन प्रत्येक गुप्त के लिए मान के रूप में ऑब्जेक्ट का भी समर्थन करता है। ऑब्जेक्ट में निम्नलिखित सभी शामिल हो सकते हैं:

  • एक pattern प्रॉपर्टी जिसमें मिलान रीजेक्स अभिव्यक्ति हो (अनिवार्य)
  • एक entropy_filter प्रॉपर्टी जिसमें इस जानकारी के लिए एंट्रॉपी स्कैनिंग सक्षम करने हेतु बूलियन मान हो (अनिवार्य)
  • एक threshold प्रॉपर्टी जो 0 - 1 के पैमाने पर एंट्रॉपी सहनशीलता को अनुकूलित करती है (वैकल्पिक, पुराने 1-8 प्रारूप के लिए समायोजित होगा, डिफ़ॉल्ट 0.6)
  • एक keyspace प्रॉपर्टी जो इंगित करती है कि कुंजी में कितने संभावित मान हैं, जैसे hex के लिए 16, base64 के लिए 64, ASCII के लिए 128 (वैकल्पिक, डिफ़ॉल्ट 128)
  • एक make_ascii_lowercase प्रॉपर्टी यह इंगित करने के लिए कि क्या Rust को एंट्रॉपी की गणना करने से पहले कुंजी पर .make_ascii_lowercase() करना चाहिए (वैकल्पिक, डिफ़ॉल्ट false)

थ्रेशोल्ड जितना अधिक होगा, गुप्त में मैच माने जाने के लिए उतनी ही अधिक एंट्रॉपी की आवश्यकता होगी।

इस प्रारूप का एक उदाहरण यहाँ है:```json { "Generic Secret": { "pattern": "(?i)secret[\s[[:punct:]]]{1,4}[0-9a-zA-Z-]{16,64}[\s[[:punct:]]]?", "entropy_filter": true, "threshold": "0.6" }, "Slack Token": { "pattern": "(xox[p|b|o|a]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32})", "entropy_filter": true, "threshold": "0.6", "keyspace": "36", "make_ascii_lowercase": true }, "Google API Key": { "pattern": "AIza[0-9A-Za-z\-]{35}", "entropy_filter": true }, "PGP private key block": "-----BEGIN PGP PRIVATE KEY BLOCK-----" }

root@kitploit:~
संस्करण 1.0.11 के अनुसार, वर्तमान में उपयोग किया जाने वाला डिफ़ॉल्ट regex JSON इस प्रकार है:```json
{
	"Slack Token": "(xox[p|b|o|a]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32})",
	"RSA private key": "-----BEGIN RSA PRIVATE KEY-----",
	"SSH (DSA) private key": "-----BEGIN DSA PRIVATE KEY-----",
	"SSH (EC) private key": "-----BEGIN EC PRIVATE KEY-----",
	"PGP private key block": "-----BEGIN PGP PRIVATE KEY BLOCK-----",
	"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
	"Amazon MWS Auth Token": "amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
	"Facebook Access Token": "EAACEdEose0cBA[0-9A-Za-z]+",
	"Facebook OAuth": "(?i)facebook[\\s[[:punct:]]]{1,4}[0-9a-f]{32}[\\s[[:punct:]]]?",
	"GitHub": "(?i)(github|access[[:punct:]]token)[\\s[[:punct:]]]{1,4}[0-9a-zA-Z]{35,40}",
	"Generic API Key": {
		"pattern": "(?i)(api|access)[\\s[[:punct:]]]?key[\\s[[:punct:]]]{1,4}[0-9a-zA-Z\\-_]{16,64}[\\s[[:punct:]]]?",
		"entropy_filter": true,
		"threshold": "0.6",
		"keyspace": "guess"
	},
	"Generic Account API Key": {
		"pattern": "(?i)account[\\s[[:punct:]]]?api[\\s[[:punct:]]]{1,4}[0-9a-zA-Z\\-_]{16,64}[\\s[[:punct:]]]?",
		"entropy_filter": true,
		"threshold": "0.6",
		"keyspace": "guess"
	},
	"Generic Secret": {
		"pattern": "(?i)secret[\\s[[:punct:]]]{1,4}[0-9a-zA-Z-_]{16,64}[\\s[[:punct:]]]?",
		"entropy_filter": true,
		"threshold": "0.6",
		"keyspace": "guess"
	},
	"Google API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Cloud Platform API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Cloud Platform OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Google Drive API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Drive OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Google (GCP) Service-account": "(?i)\"type\": \"service_account\"",
	"Google Gmail API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Gmail OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Google OAuth Access Token": "ya29\\.[0-9A-Za-z\\-_]+",
	"Google YouTube API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google YouTube OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Heroku API Key": "[h|H][e|E][r|R][o|O][k|K][u|U][\\s[[:punct:]]]{1,4}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}",
	"MailChimp API Key": "[0-9a-f]{32}-us[0-9]{1,2}",
	"Mailgun API Key": "(?i)key-[0-9a-zA-Z]{32}",
	"Credentials in absolute URL": "(?i)((https?|ftp)://)(([a-z0-9$_\\.\\+!\\*'\\(\\),;\\?&=-]|%[0-9a-f]{2})+(:([a-z0-9$_\\.\\+!\\*'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)@)((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*[a-z][a-z0-9-]*[a-z0-9]|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5]))(:\\d+)?)(((/+([a-z0-9$_\\.\\+!\\*'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*(\\?([a-z0-9$_\\.\\+!\\*'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?)?)?",
	"PayPal Braintree Access Token": "(?i)access_token\\$production\\$[0-9a-z]{16}\\$[0-9a-f]{32}",
	"Picatic API Key": "(?i)sk_live_[0-9a-z]{32}",
	"Slack Webhook": "(?i)https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8}/[a-zA-Z0-9_]{24}",
	"Stripe API Key": "(?i)sk_live_[0-9a-zA-Z]{24}",
	"Stripe Restricted API Key": "(?i)rk_live_[0-9a-zA-Z]{24}",
	"Square Access Token": "(?i)sq0atp-[0-9A-Za-z\\-_]{22}",
	"Square OAuth Secret": "(?i)sq0csp-[0-9A-Za-z\\-_]{43}",
	"Twilio API Key": "SK[0-9a-fA-F]{32}",
	"Twitter Access Token": "(?i)twitter[\\s[[:punct:]]]{1,4}[1-9][0-9]+-[0-9a-zA-Z]{40}",
	"Twitter OAuth": "(?i)twitter[\\s[[:punct:]]]{1,4}['|\"]?[0-9a-zA-Z]{35,44}['|\"]?",
	"New Relic Partner & REST API Key": "[\\s[[:punct:]]][A-Fa-f0-9]{47}[\\s[[:punct:]][[:cntrl:]]]",
	"New Relic Mobile Application Token": "[\\s[[:punct:]]][A-Fa-f0-9]{42}[\\s[[:punct:]][[:cntrl:]]]",
	"New Relic Synthetics Private Location": "(?i)minion_private_location_key",
	"New Relic Insights Key (specific)": "(?i)insights[\\s[[:punct:]]]?(key|query|insert)[\\s[[:punct:]]]{1,4}\\b[\\w-]{32,40}\\b",
	"New Relic Insights Key (vague)": "(?i)(query|insert)[\\s[[:punct:]]]?key[\\s[[:punct:]]]{1,4}b[\\w-]{32,40}\\b",
	"New Relic License Key": "(?i)license[\\s[[:punct:]]]?key[\\s[[:punct:]]]{1,4}\\b[\\w-]{32,40}\\b",
	"New Relic Internal API Key": "(?i)nr-internal-api-key",
	"New Relic HTTP Auth Headers and API Key": "(?i)(x|newrelic|nr)-?(admin|partner|account|query|insert|api|license)-?(id|key)[\\s[[:punct:]]]{1,4}\\b[\\w-]{32,47}\\b",
	"New Relic API Key Service Key (new format)": "(?i)NRAK-[A-Z0-9]{27}",
	"New Relic APM License Key (new format)": "(?i)[a-f0-9]{36}NRAL",
	"New Relic APM License Key (new format, region-aware)": "(?i)[a-z]{2}[0-9]{2}xx[a-f0-9]{30}NRAL",
	"New Relic REST API Key (new format)": "(?i)NRRA-[a-f0-9]{42}",
	"New Relic Admin API Key (new format)": "(?i)NRAA-[a-f0-9]{27}",
	"New Relic Insights Insert Key (new format)": "(?i)NRII-[A-Za-z0-9-_]{32}",
	"New Relic Insights Query Key (new format)": "(?i)NRIQ-[A-Za-z0-9-_]{32}",
	"New Relic Synthetics Private Location Key (new format)": "(?i)NRSP-[a-z]{2}[0-9]{2}[a-f0-9]{31}",
	"Email address": "(?i)\\b(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*)@[a-z0-9][a-z0-9-]+\\.(com|de|cn|net|uk|org|info|nl|eu|ru)([\\W&&[^:/]]|\\A|\\z)",
	"New Relic Account IDs in URL": "(newrelic\\.com/)?accounts/\\d{1,10}/",
	"Account ID": "(?i)account[\\s[[:punct:]]]?id[\\s[[:punct:]]]{1,4}\\b[\\d]{1,10}\\b",
	"Salary Information": "(?i)(salary|commission|compensation|pay)([\\s[[:punct:]]](amount|target))?[\\s[[:punct:]]]{1,4}\\d+"
}

Allowlist JSON फ़ाइल स्वरूप

स्कैनर एक allowlist सुविधा प्रदान करते हैं। यह आपको प्रत्येक पैटर्न के लिए नियमित अभिव्यक्तियों (regular expressions) की एक सूची निर्दिष्ट करने की अनुमति देता है जिसे स्कैनर द्वारा अनदेखा किया जाएगा। अब आप वैकल्पिक रूप से नियमित अभिव्यक्तियों की एक सूची प्रदान कर सकते हैं जो फ़ाइल पथ के विरुद्ध भी मूल्यांकित की जाती हैं।

इस allowlist फ़ाइल का स्वरूप एक एकल JSON ऑब्जेक्ट होना चाहिए। allowlist में प्रत्येक कुंजी regex JSON में एक कुंजी से मेल खानी चाहिए, और मान दो चीजों में से एक हो सकता है:

  1. स्ट्रिंग्स की एक सरणी जो उस regex पैटर्न के लिए अपवाद हैं। उदाहरण के लिए:
  2. कम से कम एक कुंजी (patterns) के साथ एक ऑब्जेक्ट और वैकल्पिक रूप से एक दूसरी कुंजी (paths)।

इसके अलावा, आप कुंजी <GLOBAL> निर्दिष्ट कर सकते हैं जो सभी पैटर्न के विरुद्ध मूल्यांकित की जाती है।

निम्नलिखित सभी स्कैन में शामिल डिफ़ॉल्ट allowlist है:```json { "Email address": { "patterns": [ "(?i)@newrelic.com", "(?i)noreply@", "(?i)test@" ], "paths": [ "(?i)authors", "(?i)contributors", "(?i)license", "(?i)maintainers", "(?i)third_party_notices" ] }, "Credentials in absolute URL": { "patterns": [ "(?i)(https?://)?user:pass(word)?@" ] }, "New Relic API Key Service Key (new format)": { "patterns": [ "NRAK-123456789ABCDEFGHIJKLMNOPQR" ] }, "Generic API Key": { "patterns": [ "(?i)sanitizeAPIKeyForLogging" ] }, "New Relic License Key": { "patterns": [ "(?i)bootstrap_newrelic_admin_license_key", "(?i)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "(?i)YOUR_NEW_RELIC_LICENSE_KEY__LICENSE", "(?i)YOUR_NEW_RELIC_APPLICATION_TOKEN" ] }, "Generic Secret": { "patterns": [ "(?i)secret:NewRelicLicenseKeySecret" ] }, "": [ "(?i)example", "(?i)fake", "(?i)replace", "(?i)deadbeef", "(?i)ABCDEFGHIJKLMNOPQRSTUVWX", "1234567890" ] }

root@kitploit:~
ध्यान रखें कि ये स्ट्रिंग्स हैं, रेगेक्स एक्सप्रेशन नहीं, और इस अनुमति सूची की कुंजियों को रेगेक्स json में एक कुंजी होना आवश्यक है। कुंजियाँ केस-सेंसिटिव हैं।

# परियोजना की जानकारी
## ओपन सोर्स लाइसेंस

यह परियोजना [Apache 2 लाइसेंस](https://github.com/newrelic/rusty-hog/blob/HEAD/LICENSE) के अंतर्गत वितरित की गई है।

## सहायता

New Relic ने इस परियोजना को ओपन-सोर्स किया है। यह परियोजना बिना किसी वारंटी या सहायता के AS-IS प्रदान की गई है, हालांकि आप GitHub पर यहाँ समस्याएँ रिपोर्ट कर सकते हैं और परियोजना में योगदान कर सकते हैं।

_कृपया इस सॉफ़्टवेयर से संबंधित समस्याएँ New Relic Global Technical Support को रिपोर्ट न करें।_

## समुदाय

New Relic एक ऑनलाइन फ़ोरम होस्ट और मॉडरेट करता है जहाँ ग्राहक New Relic कर्मचारियों और अन्य ग्राहकों के साथ बातचीत कर सकते हैं, सहायता प्राप्त कर सकते हैं और सर्वोत्तम प्रथाएँ साझा कर सकते हैं। सभी आधिकारिक New Relic ओपन सोर्स परियोजनाओं की तरह, New Relic Explorer's Hub में एक संबंधित सामुदायिक विषय है। आप इस परियोजना का विषय/थ्रेड यहाँ पा सकते हैं:

https://discuss.newrelic.com/t/rusty-hog-multi-platform-secret-key-scanner/90117

## मुद्दे / संवर्द्धन अनुरोध

मुद्दे और संवर्द्धन अनुरोध [इस रिपॉजिटरी के Issues टैब](https://raw.githubusercontent.com/newrelic/issues) में सबमिट करें। कृपया नया मुद्दा सबमिट करने से पहले मौजूदा खुले मुद्दों को खोजें और उनकी समीक्षा करें।

## योगदान

योगदान का स्वागत है (और यदि आप कोई संवर्द्धन अनुरोध सबमिट करते हैं, तो उम्मीद करें कि आपको इसे स्वयं योगदान करने के लिए आमंत्रित किया जाएगा)। कृपया हमारे [योगदानकर्ता गाइड](https://github.com/newrelic/rusty-hog/blob/HEAD/CONTRIBUTING.md) की समीक्षा करें।

ध्यान रखें कि जब आप अपना पुल रिक्वेस्ट सबमिट करेंगे, तो आपको CLA-Assistant का उपयोग करके CLA पर हस्ताक्षर करना होगा। यदि आप हमारा कॉर्पोरेट CLA निष्पादित करना चाहते हैं, या कोई प्रश्न हैं, तो कृपया हमें [email protected] पर ईमेल करें।


## सुविधा रोडमैप
  
- 1.1: एंटरप्राइज़ सुविधाएँ
    - [ ] कॉन्फ़िग फ़ाइलों के लिए समर्थन (कमांड लाइन आर्ग्स के बजाय)
    - [ ] CLI आर्ग्स के बजाय पर्यावरण चर के लिए समर्थन
    - [ ] मल्टी-थ्रेडिंग
    - [ ] बेहतर संदर्भ पहचान और गलत सकारात्मक फ़िल्टरिंग (GitHound, मशीन लर्निंग)
    - [ ] s3-rust के बजाय Rusoto का उपयोग
    - [x] JIRA स्कैनर जोड़ें
    - [x] फ़ाइल-सिस्टम और आर्काइव स्कैनर जोड़ें
    - [ ] संकलन निर्भरताओं को कम करने के लिए Rust सुविधाओं का उपयोग?

- 1.2: बड़ी स्क्रिप्ट और UI के साथ एकीकरण
    - [ ] बड़े संगठन प्रबंधन के लिए Github API के लिए समर्थन
        - [ ] उपयोगकर्ताओं की सूची के लिए सभी रेपो को स्कैन करें
        - [x] किसी संगठन में सभी रेपो को स्कैन करें
    - [ ] एक वेब रिपोर्ट या वेब इंटरफ़ेस उत्पन्न करें। UI से "save state" निर्माण का समर्थन करें।
    - [ ] एजेंट/प्रबंधक मॉडल
    - [ ] शेड्यूलर प्रक्रिया (save state समर्थन द्वारा अवरुद्ध)


## नाम का क्या अर्थ है?
TruffleHog को वास्तविक मानक / मूल गुप्त स्कैनर माना जाता है। मैं TruffleHog पर आधारित विभिन्न प्लेटफार्मों के लिए गुप्त स्कैनिंग टूल का एक सूट बना रहा हूँ और मुझे एक नामकरण योजना की आवश्यकता थी, इसलिए मैंने Wikipedia की [सूअर नस्लों की सूची](https://en.wikipedia.org/wiki/List_of_pig_breeds) के शीर्ष से शुरू किया। इस प्रकार प्रत्येक उपकरण का नाम 'A' से शुरू होने वाली सूअर की नस्ल है और ऊपर की ओर बढ़ती है।
टूल डाउनलोड करें