{"id":22546,"date":"2022-03-09T10:25:44","date_gmt":"2022-03-09T10:25:44","guid":{"rendered":"https:\/\/kalilinuxtutorials.com\/?p=22546"},"modified":"2022-03-09T10:25:47","modified_gmt":"2022-03-09T10:25:47","slug":"pip-audit","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/pip-audit\/","title":{"rendered":"Pip-Audit : Audits Python Environments And Dependency Trees For Known Vulnerabilities"},"content":{"rendered":"\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database (https:\/\/github.com\/pypa\/advisory-database) via the&nbsp;PyPI JSON API&nbsp;as a source of vulnerability reports.<\/p>\n\n\n\n<p>This project is developed by&nbsp;Trail of Bits&nbsp;with support from Google. This is not an official Google product.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/trailofbits\/pip-audit#features\"><\/a><strong>Features<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Support for auditing local environments and requirements-style files<\/li><li>Support for multiple vulnerability services (PyPI,&nbsp;OSV)<\/li><li>Support for emitting&nbsp;SBOMs&nbsp;in&nbsp;CycloneDX&nbsp;XML or JSON<\/li><li>Human and machine-readable output formats (columnar, JSON)<\/li><li>Seamlessly reuses your existing local&nbsp;<code><strong>pip<\/strong><\/code>&nbsp;caches<\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/trailofbits\/pip-audit#installation\"><\/a><strong>Installation<\/strong><\/p>\n\n\n\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;requires Python 3.7 or newer, and can be installed directly via&nbsp;<code><strong>pip<\/strong><\/code>:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>python -m pip install<\/strong> <strong>pip-audit<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><strong>Third-party packages<\/strong><\/p>\n\n\n\n<p>There are multiple&nbsp;<strong>third-party<\/strong>&nbsp;packages for&nbsp;<code><strong>pip-audit<\/strong><\/code>. The matrices and badges below list some of them:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigk9LXSRy5jB2QP0xhIF6_Ww4mwPtktyD-gRAYNUnBMECFPOtnISJKjHqEq-YR0Ti9mQZYcNddTbmlf2QCEYlsxofuB88w9WqTekQQIkAUzQn9toAGvOJWQD6HcIQOaPDSmWGj0Hi3vyS3yPMU8sW1wANzzeS-tEcQ5g-wFnH2Qznv2_fxODqcHoa4=s728\" alt=\"\" \/><\/figure>\n\n\n\n<p>In particular,&nbsp;<code><strong>pip-audit<\/strong><\/code>&nbsp;can be installed via&nbsp;<code><strong>conda<\/strong><\/code>:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>conda install -c conda-forge pip-audit<\/strong><\/p>\n\n\n\n<p>Third-party packages are&nbsp;<strong>not<\/strong>&nbsp;directly supported by this project. Please consult your package manager&#8217;s documentation for more detailed installation guidance.<\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/trailofbits\/pip-audit#usage\"><\/a><strong>Usage<\/strong><\/p>\n\n\n\n<p>You can run&nbsp;<code><strong>pip-audit<\/strong><\/code>&nbsp;as a standalone program, or via&nbsp;<code><strong>python -m<\/strong><\/code>:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\">p<strong>ip-audit &#8211;help<\/strong><br><strong>python -m pip_audit &#8211;help<\/strong><\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>usage: pip-audit [-h] [-V] [-l] [-r REQUIREMENTS] [-f FORMAT] [-s SERVICE]<br>[-d] [-S] [&#8211;desc [{on,off,auto}]] [&#8211;cache-dir CACHE_DIR]<br>[&#8211;progress-spinner {on,off}] [&#8211;timeout TIMEOUT]<br>[&#8211;path PATHS] [-v] [&#8211;fix] [&#8211;require-hashes]<br>[&#8211;index-url INDEX_URL] [&#8211;extra-index-url EXTRA_INDEX_URLS]<br>[&#8211;skip-editable]<br>[project_path]<br>audit the Python environment for dependencies with known vulnerabilities<br>positional arguments:<br>project_path audit a local Python project at the given path<br>(default: None)<br>optional arguments:<br>-h, &#8211;help show this help message and exit<br>-V, &#8211;version show program&#8217;s version number and exit<br>-l, &#8211;local show only results for dependencies in the local<br>environment (default: False)<br>-r REQUIREMENTS, &#8211;requirement REQUIREMENTS<br>audit the given requirements file; this option can be<br>used multiple times (default: None)<br>-f FORMAT, &#8211;format FORMAT<br>the format to emit audit results in (choices: columns,<br>json, cyclonedx-json, cyclonedx-xml) (default:<br>columns)<br>-s SERVICE, &#8211;vulnerability-service SERVICE<br>the vulnerability service to audit dependencies<br>against (choices: osv, pypi) (default: pypi)<br>-d, &#8211;dry-run without <code>--fix<\/code>: collect all dependencies but do not<br>perform the auditing step; with <code>--fix<\/code>: perform the<br>auditing step but do not perform any fixes (default:<br>False)<br>-S, &#8211;strict fail the entire audit if dependency collection fails<br>on any dependency (default: False)<br>&#8211;desc [{on,off,auto}]<br>include a description for each vulnerability; <code>auto<\/code><br>defaults to <code>on<\/code> for the <code>json<\/code> format. This flag has<br>no effect on the <code>cyclonedx-json<\/code> or <code>cyclonedx-xml<\/code><br>formats. (default: auto)<br>&#8211;cache-dir CACHE_DIR<br>the directory to use as an HTTP cache for PyPI; uses<br>the <code>pip<\/code> HTTP cache by default (default: None)<br>&#8211;progress-spinner {on,off}<br>display a progress spinner (default: on)<br>&#8211;timeout TIMEOUT set the socket timeout (default: 15)<br>&#8211;path PATHS restrict to the specified installation path for<br>auditing packages; this option can be used multiple<br>times (default: [])<br>-v, &#8211;verbose give more output; this setting overrides the<br><code>PIP_AUDIT_LOGLEVEL<\/code> variable and is equivalent to<br>setting it to <code>debug<\/code> (default: False)<br>&#8211;fix automatically upgrade dependencies with known<br>vulnerabilities (default: False)<br>&#8211;require-hashes require a hash to check each requirement against, for<br>repeatable audits; this option is implied when any<br>package in a requirements file has a <code>--hash<\/code> option.<br>(default: False)<br>&#8211;index-url INDEX_URL<br>base URL of the Python Package Index; this should<br>point to a repository compliant with PEP 503 (the<br>simple repository API) (default:<br>https:\/\/pypi.org\/simple)<br>&#8211;extra-index-url EXTRA_INDEX_URLS<br>extra URLs of package indexes to use in addition to<br><code>--index-url<\/code>; should follow the same rules as<br><code>--index-url<\/code> (default: [])<br>&#8211;skip-editable don&#8217;t audit packages that are marked as editable<br>(default: False)<\/strong><\/p>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/trailofbits\/pip-audit#exit-codes\"><\/a><strong>Exit codes<\/strong><\/p>\n\n\n\n<p>On completion,&nbsp;<code><strong>pip-audit<\/strong><\/code>&nbsp;will exit with a code indicating its status.<\/p>\n\n\n\n<p>The current codes are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code><strong>0<\/strong><\/code>: No known vulnerabilities were detected.<\/li><li><code><strong>1<\/strong><\/code>: One or more known vulnerabilities were found.<\/li><\/ul>\n\n\n\n<p class=\"has-light-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/trailofbits\/pip-audit#dry-runs\"><\/a><strong>Dry runs<\/strong><\/p>\n\n\n\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;supports the&nbsp;<code><strong>--dry-run<\/strong><\/code>&nbsp;flag, which can be used to control whether an audit (or fix) step is actually performed.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>On its own,&nbsp;<code><strong>pip-audit --dry-<\/strong>run<\/code>&nbsp;skips the auditing step and prints the number of dependencies that&nbsp;<em>would have been<\/em>&nbsp;audited.<\/li><li>In fix mode,&nbsp;<code><strong>pip-audit --fix --dry-run<\/strong><\/code>&nbsp;performs the auditing step and prints out the fix behavior (i.e., which dependencies would be upgraded or skipped) that&nbsp;<em>would have been performed<\/em>.<\/li><\/ul>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><a href=\"https:\/\/github.com\/trailofbits\/pip-audit#examples\"><\/a><strong>Examples<\/strong><\/p>\n\n\n\n<p>Audit dependencies for the current Python environment:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ pip-audit<br>No known vulnerabilities found<\/strong><\/p>\n\n\n\n<p>Audit dependencies for a given requirements file:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ pip-audit -r .\/requirements.txt<br>No known vulnerabilities fo<\/strong>und<\/p>\n\n\n\n<p>Audit dependencies for a requirements file, excluding system packages:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ pip-audit -r .\/requirements.txt -l<br>No known vulnerabilities found<\/strong><\/p>\n\n\n\n<p>Audit dependencies for a local Python project:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ pip-audit .<br>No known vulnerabilities found<\/strong><\/p>\n\n\n\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;searches the provided path for various Python &#8220;project&#8221; files. At the moment, only&nbsp;<code><strong>pyproject.toml<\/strong><\/code>&nbsp;is supported.<\/p>\n\n\n\n<p>Audit dependencies when there are vulnerabilities present:<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><strong>$ pip-audit<br>Found 2 known vulnerabilities in 1 package<br>Name Version ID Fix Versions<br>&#8212;- &#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;<br>Flask 0.5 PYSEC-2019-179 1.0<br>Flask 0.5 PYSEC-2018-66 0.12.3<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center has-vivid-green-cyan-background-color has-background\"><strong>Security Model<\/strong><\/p>\n\n\n\n<p>This section exists to describe the security assumptions you&nbsp;<strong>can<\/strong>&nbsp;and&nbsp;<strong>must not<\/strong>&nbsp;make when using&nbsp;<code><strong>pip-audit<\/strong><\/code>.<\/p>\n\n\n\n<p>TL;DR:&nbsp;<strong>If you wouldn&#8217;t&nbsp;<code>pip install<\/code>&nbsp;it, you should not&nbsp;<code>pip audit<\/code>&nbsp;it.<\/strong><\/p>\n\n\n\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;is a tool for auditing Python environments for packages with&nbsp;<em>known vulnerabilities<\/em>. A &#8220;known vulnerability&#8221; is a publicly reported flaw in a package that, if uncorrected,&nbsp;<em>might<\/em>&nbsp;allow a malicious actor to perform unintended actions.<\/p>\n\n\n\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;<strong>can<\/strong>&nbsp;protect you against known vulnerabilities by telling you when you have them, and how you should upgrade them. For example, if you have&nbsp;<code><strong>somepackage==1.2.3<\/strong><\/code>&nbsp;in your environment,&nbsp;<code><strong>pip-audit<\/strong><\/code>&nbsp;<strong>can<\/strong>&nbsp;tell you that it needs to be upgraded to&nbsp;<code><strong>1.2.4<\/strong><\/code>.<\/p>\n\n\n\n<p>You&nbsp;<strong>can<\/strong>&nbsp;assume that&nbsp;<code><strong>pip-audit<\/strong><\/code>&nbsp;will make a best effort to&nbsp;<em>fully resolve<\/em>&nbsp;all of your Python dependencies and&nbsp;<em>either<\/em>&nbsp;fully audit each&nbsp;<em>or<\/em>&nbsp;explicitly state which ones it has skipped, as well as why it has skipped them.<\/p>\n\n\n\n<p><code><strong>pip-audit<\/strong><\/code>&nbsp;is&nbsp;<strong>not<\/strong>&nbsp;a static code analyzer. It analyzes dependency trees, not code, and it&nbsp;<strong>cannot<\/strong>&nbsp;guarantee that arbitrary dependency resolutions occur statically. To understand why this is, refer to Dustin Ingram&#8217;s&nbsp;excellent post on dependency resolution in Python.<\/p>\n\n\n\n<p>As such: you&nbsp;<strong>must not<\/strong>&nbsp;assume that&nbsp;<code><strong>pip-audit<\/strong><\/code>&nbsp;will&nbsp;<strong>defend<\/strong>&nbsp;you against malicious packages. In particular, it is&nbsp;<strong>incorrect<\/strong>&nbsp;to treat&nbsp;<code><strong>pip-audit -r INPUT<\/strong><\/code>&nbsp;as a &#8220;more secure&#8221; variant of&nbsp;<code><strong>pip-audit<\/strong><\/code>. For all intents and purposes,&nbsp;<code><strong>pip<\/strong>-<strong>audit -r INPUT<\/strong><\/code>&nbsp;is functionally equivalent to&nbsp;<code>p<strong>ip install -r INPU<\/strong>T<\/code>, with a small amount of&nbsp;<strong>non-security isolation<\/strong>&nbsp;to avoid conflicts with any of your local environments.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link has-vivid-cyan-blue-background-color has-background\" href=\"https:\/\/github.com\/trailofbits\/pip-audit\"><strong>Download<\/strong><\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>pip-audit&nbsp;is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database (https:\/\/github.com\/pypa\/advisory-database) via the&nbsp;PyPI JSON API&nbsp;as a source of vulnerability reports. This project is developed by&nbsp;Trail of Bits&nbsp;with support from Google. This is not an official Google product. Features Support for auditing local environments and requirements-style files [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":22572,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28],"tags":[4812,4810,4811,3560],"class_list":["post-22546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kali","tag-dependency-trees","tag-pip-audit","tag-python-environments","tag-vulnerabilities"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pip-Audit : Audits Python Environments And Dependency Trees<\/title>\n<meta name=\"description\" content=\"pip-audit\u00a0is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pip-Audit : Audits Python Environments And Dependency Trees\" \/>\n<meta property=\"og:description\" content=\"pip-audit\u00a0is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-09T10:25:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-09T10:25:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679\" \/>\n<meta name=\"author\" content=\"R K\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679\" \/>\n<meta name=\"twitter:creator\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:site\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R K\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\"},\"author\":{\"name\":\"R K\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\"},\"headline\":\"Pip-Audit : Audits Python Environments And Dependency Trees For Known Vulnerabilities\",\"datePublished\":\"2022-03-09T10:25:44+00:00\",\"dateModified\":\"2022-03-09T10:25:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\"},\"wordCount\":1058,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679\",\"keywords\":[\"Dependency Trees\",\"Pip-Audit\",\"Python Environments\",\"Vulnerabilities\"],\"articleSection\":[\"Kali Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/pip-audit\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\",\"name\":\"Pip-Audit : Audits Python Environments And Dependency Trees\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679\",\"datePublished\":\"2022-03-09T10:25:44+00:00\",\"dateModified\":\"2022-03-09T10:25:47+00:00\",\"description\":\"pip-audit\u00a0is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/pip-audit\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage\",\"url\":\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679\",\"contentUrl\":\"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679\",\"width\":\"679\",\"height\":\"380\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"name\":\"Kali Linux Tutorials\",\"description\":\"Kali Linux Tutorials\",\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\",\"name\":\"Kali Linux Tutorials\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"width\":272,\"height\":90,\"caption\":\"Kali Linux Tutorials\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CyberEdition\",\"https:\/\/www.threads.com\/@cybersecurityedition\",\"https:\/\/www.linkedin.com\/company\/cyberedition\",\"https:\/\/www.instagram.com\/cybersecurityedition\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\",\"name\":\"R K\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"caption\":\"R K\"},\"url\":\"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pip-Audit : Audits Python Environments And Dependency Trees","description":"pip-audit\u00a0is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalilinuxtutorials.com\/pip-audit\/","og_locale":"en_US","og_type":"article","og_title":"Pip-Audit : Audits Python Environments And Dependency Trees","og_description":"pip-audit\u00a0is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database.","og_url":"https:\/\/kalilinuxtutorials.com\/pip-audit\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2022-03-09T10:25:44+00:00","article_modified_time":"2022-03-09T10:25:47+00:00","og_image":[{"url":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","type":"","width":"","height":""}],"author":"R K","twitter_card":"summary_large_image","twitter_image":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"R K","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/"},"author":{"name":"R K","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad"},"headline":"Pip-Audit : Audits Python Environments And Dependency Trees For Known Vulnerabilities","datePublished":"2022-03-09T10:25:44+00:00","dateModified":"2022-03-09T10:25:47+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/"},"wordCount":1058,"commentCount":0,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage"},"thumbnailUrl":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","keywords":["Dependency Trees","Pip-Audit","Python Environments","Vulnerabilities"],"articleSection":["Kali Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kalilinuxtutorials.com\/pip-audit\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/","url":"https:\/\/kalilinuxtutorials.com\/pip-audit\/","name":"Pip-Audit : Audits Python Environments And Dependency Trees","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage"},"thumbnailUrl":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","datePublished":"2022-03-09T10:25:44+00:00","dateModified":"2022-03-09T10:25:47+00:00","description":"pip-audit\u00a0is a tool for scanning Python environments for packages with known vulnerabilities. It uses the Python Packaging Advisory Database.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/pip-audit\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/pip-audit\/#primaryimage","url":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","contentUrl":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","width":"679","height":"380"},{"@type":"WebSite","@id":"https:\/\/kalilinuxtutorials.com\/#website","url":"https:\/\/kalilinuxtutorials.com\/","name":"Kali Linux Tutorials","description":"Kali Linux Tutorials","publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kalilinuxtutorials.com\/#organization","name":"Kali Linux Tutorials","url":"https:\/\/kalilinuxtutorials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","width":272,"height":90,"caption":"Kali Linux Tutorials"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CyberEdition","https:\/\/www.threads.com\/@cybersecurityedition","https:\/\/www.linkedin.com\/company\/cyberedition","https:\/\/www.instagram.com\/cybersecurityedition\/"]},{"@type":"Person","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad","name":"R K","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","caption":"R K"},"url":"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/"}]}},"jetpack_featured_media_url":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEigutlh5yHomcpDoob1iRhxgiVvKJFMY_OUdy-bjkmOBjqBFHfCMpWv1AvbVFy8DZor8VmnnoNCBfmMmWZY82293ZZWEYKOb0yNzSvhGlPHr9aqE_KeRZnrjmTxQyUB-ys22e9qSzM9f_ahv2O5yXQM0LmsmrlU1jM68Uq0H2r55EzIv_htZZttsnFy=s679","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":22598,"url":"https:\/\/kalilinuxtutorials.com\/dep-scan\/","url_meta":{"origin":22546,"position":0},"title":"Dep-Scan : Fully Open-Source Security Audit For Project Dependencies","author":"R K","date":"March 9, 2022","format":false,"excerpt":"dep-scan is a fully open-source security audit tool for project dependencies based on known vulnerabilities, advisories and license limitations. Both local repositories and container images are supported as input. The tool is ideal for CI environments with built-in build breaker logic. If you have just come across this repo, probably\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEhZg3-mIGpOoLce5R2oBc-BgX-o30bKTFCo5hkUvfLAXV89flNIW6ZV-ZBdO2dkTCjwLevl8Rj6K-bzlNgi66wvxRKn6uFFCCd8fxAmbYHlMOzQuuOecA6VtQLQIiVYiZYKpZoSWs-uNViKH0EYpkXJ_B8owmqVqe2Jb_R278sJMtzV9Q2NRK_R-v3-=s728","width":350,"height":200,"srcset":"https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEhZg3-mIGpOoLce5R2oBc-BgX-o30bKTFCo5hkUvfLAXV89flNIW6ZV-ZBdO2dkTCjwLevl8Rj6K-bzlNgi66wvxRKn6uFFCCd8fxAmbYHlMOzQuuOecA6VtQLQIiVYiZYKpZoSWs-uNViKH0EYpkXJ_B8owmqVqe2Jb_R278sJMtzV9Q2NRK_R-v3-=s728 1x, https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEhZg3-mIGpOoLce5R2oBc-BgX-o30bKTFCo5hkUvfLAXV89flNIW6ZV-ZBdO2dkTCjwLevl8Rj6K-bzlNgi66wvxRKn6uFFCCd8fxAmbYHlMOzQuuOecA6VtQLQIiVYiZYKpZoSWs-uNViKH0EYpkXJ_B8owmqVqe2Jb_R278sJMtzV9Q2NRK_R-v3-=s728 1.5x, https:\/\/blogger.googleusercontent.com\/img\/a\/AVvXsEhZg3-mIGpOoLce5R2oBc-BgX-o30bKTFCo5hkUvfLAXV89flNIW6ZV-ZBdO2dkTCjwLevl8Rj6K-bzlNgi66wvxRKn6uFFCCd8fxAmbYHlMOzQuuOecA6VtQLQIiVYiZYKpZoSWs-uNViKH0EYpkXJ_B8owmqVqe2Jb_R278sJMtzV9Q2NRK_R-v3-=s728 2x"},"classes":[]},{"id":36540,"url":"https:\/\/kalilinuxtutorials.com\/uv\/","url_meta":{"origin":22546,"position":1},"title":"UV : A Comprehensive Guide To The Fast, Unified Package Manager","author":"Varshini","date":"February 19, 2025","format":false,"excerpt":"UV is a cutting-edge Python package and project manager, designed to revolutionize the Python development workflow. Written in Rust, UV offers unparalleled speed and functionality, serving as a unified replacement for tools like pip, poetry, pyenv, and virtualenv. Its standout features make it an essential tool for developers managing Python\u2026","rel":"","context":"In &quot;software&quot;","block_context":{"text":"software","link":"https:\/\/kalilinuxtutorials.com\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/UV-.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/UV-.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/UV-.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/UV-.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/UV-.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/UV-.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":12309,"url":"https:\/\/kalilinuxtutorials.com\/confused\/","url_meta":{"origin":22546,"position":2},"title":"Confused : Tool To Check For Dependency Confusion Vulnerabilities","author":"R K","date":"March 18, 2021","format":false,"excerpt":"Confused is a tool for checking for lingering free namespaces for private package names referenced in dependency configuration for Python (pypi) requirements.txt, JavaScript (npm) package.json, PHP (composer) composer.json or MVN (maven) pom.xml. What is this all about? On 9th of February 2021, a security researcher Alex Birsan published an article\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12602,"url":"https:\/\/kalilinuxtutorials.com\/vulnerablecode\/","url_meta":{"origin":22546,"position":3},"title":"Vulnerablecode : A Free And Open Vulnerabilities Database","author":"R K","date":"April 30, 2021","format":false,"excerpt":"VulnerableCode is a free and open database of FOSS software package vulnerabilities and the tools to create and keep the data current. It is made by the FOSS community to improve and secure the open source software ecosystem. Why? The existing solutions are commercial proprietary vulnerability databases, which in itself\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26832,"url":"https:\/\/kalilinuxtutorials.com\/aura\/","url_meta":{"origin":22546,"position":4},"title":"Aura : Python Source Code Auditing And Static Analysis On A Large Scale","author":"R K","date":"September 11, 2022","format":false,"excerpt":"Aura is a static analysis framework developed as a response to the ever-increasing threat of malicious packages and vulnerable code published on PyPI. Project goals: provide an automated monitoring system over uploaded packages to PyPI, alert on anomalies that can either indicate an ongoing attack or vulnerabilities in the codeenable\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh9uJ2T8s7Id3KreDoShm1q3vk8fUYf44jfdhcpQq2MZxAelf3HJ13NibzAvZybuEnB7CbrmZhRpKABaqHqcjTjO1uPieATRd1eHgyrIowHGUVfrUWnlv6G3lq4k7-bxlgC5i32LtLpg8QvUJcz3KFLa026WAB688kYi4Ar3eVybSdDcXnI9Z1AdxJx\/s728\/Aura-Python-Source-Code-Auditing-And-Static-Analysis-On.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh9uJ2T8s7Id3KreDoShm1q3vk8fUYf44jfdhcpQq2MZxAelf3HJ13NibzAvZybuEnB7CbrmZhRpKABaqHqcjTjO1uPieATRd1eHgyrIowHGUVfrUWnlv6G3lq4k7-bxlgC5i32LtLpg8QvUJcz3KFLa026WAB688kYi4Ar3eVybSdDcXnI9Z1AdxJx\/s728\/Aura-Python-Source-Code-Auditing-And-Static-Analysis-On.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh9uJ2T8s7Id3KreDoShm1q3vk8fUYf44jfdhcpQq2MZxAelf3HJ13NibzAvZybuEnB7CbrmZhRpKABaqHqcjTjO1uPieATRd1eHgyrIowHGUVfrUWnlv6G3lq4k7-bxlgC5i32LtLpg8QvUJcz3KFLa026WAB688kYi4Ar3eVybSdDcXnI9Z1AdxJx\/s728\/Aura-Python-Source-Code-Auditing-And-Static-Analysis-On.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh9uJ2T8s7Id3KreDoShm1q3vk8fUYf44jfdhcpQq2MZxAelf3HJ13NibzAvZybuEnB7CbrmZhRpKABaqHqcjTjO1uPieATRd1eHgyrIowHGUVfrUWnlv6G3lq4k7-bxlgC5i32LtLpg8QvUJcz3KFLa026WAB688kYi4Ar3eVybSdDcXnI9Z1AdxJx\/s728\/Aura-Python-Source-Code-Auditing-And-Static-Analysis-On.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":10475,"url":"https:\/\/kalilinuxtutorials.com\/roadtools\/","url_meta":{"origin":22546,"position":5},"title":"ROADTools: The Modern Azure AD Exploration Framework","author":"R K","date":"August 21, 2025","format":false,"excerpt":"ROADTools is a powerful framework designed for exploring and interacting with Microsoft Azure Active Directory (Azure AD). It is widely used by both Red Team and Blue Team security professionals to assess, analyze, and secure Azure AD environments. ROADTools consists of two main components: ROADlib and ROADrecon. ROADlib: The Core\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"ROADTools : The Azure AD Exploration Framework","src":"https:\/\/i0.wp.com\/1.bp.blogspot.com\/--XPO6vwhrXk\/XqsUhc1UrhI\/AAAAAAAAGIQ\/xS-rRC5_-28VSH2o212tAdQWGKpJ8EA6wCLcBGAsYHQ\/s1600\/Roadtools-svg.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/1.bp.blogspot.com\/--XPO6vwhrXk\/XqsUhc1UrhI\/AAAAAAAAGIQ\/xS-rRC5_-28VSH2o212tAdQWGKpJ8EA6wCLcBGAsYHQ\/s1600\/Roadtools-svg.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/1.bp.blogspot.com\/--XPO6vwhrXk\/XqsUhc1UrhI\/AAAAAAAAGIQ\/xS-rRC5_-28VSH2o212tAdQWGKpJ8EA6wCLcBGAsYHQ\/s1600\/Roadtools-svg.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/1.bp.blogspot.com\/--XPO6vwhrXk\/XqsUhc1UrhI\/AAAAAAAAGIQ\/xS-rRC5_-28VSH2o212tAdQWGKpJ8EA6wCLcBGAsYHQ\/s1600\/Roadtools-svg.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/22546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/comments?post=22546"}],"version-history":[{"count":17,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/22546\/revisions"}],"predecessor-version":[{"id":22766,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/22546\/revisions\/22766"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media\/22572"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=22546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=22546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=22546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}