credsweeper.deep_scanner package

Submodules

credsweeper.deep_scanner.abstract_scanner module

class credsweeper.deep_scanner.abstract_scanner.AbstractScanner[source]

Bases: ABC

Base abstract class for all recursive scanners

abstract property config: Config

Abstract property to be defined in DeepScanner

abstract recursive_scan(data_provider, depth=0, recursive_limit_size=0)[source]

Abstract method to be defined in DeepScanner

Return type:

List[Candidate]

abstract property scanner: Scanner

Abstract property to be defined in DeepScanner

abstract structure_scan(struct_provider, depth, recursive_limit_size)[source]

Abstract method to be defined in DeepScanner

Return type:

List[Candidate]

credsweeper.deep_scanner.byte_scanner module

class credsweeper.deep_scanner.byte_scanner.ByteScanner[source]

Bases: AbstractScanner, ABC

Implements plain data scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to represent data as plain text with splitting by lines and scan as text lines

Return type:

List[Candidate]

credsweeper.deep_scanner.bzip2_scanner module

class credsweeper.deep_scanner.bzip2_scanner.Bzip2Scanner[source]

Bases: AbstractScanner, ABC

Implements bzip2 scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Extracts data from bzip2 archive and launches data_scan

Return type:

List[Candidate]

credsweeper.deep_scanner.deep_scanner module

class credsweeper.deep_scanner.deep_scanner.DeepScanner(config, scanner)[source]

Bases: ByteScanner, Bzip2Scanner, DocxScanner, EncoderScanner, GzipScanner, HtmlScanner, JksScanner, LangScanner, PdfScanner, Pkcs12Scanner, TarScanner, XmlScanner, ZipScanner

Advanced scanner with recursive exploring of data

property config: Config

Abstract property to be defined in DeepScanner

static get_deep_scanners(data, file_type=None)[source]

Returns possibly scan methods for the data depends on content

Return type:

List[Any]

recursive_scan(data_provider, depth=0, recursive_limit_size=0)[source]

Recursive function to scan files which might be containers like ZIP archives

Parameters:
  • data_provider (DataContentProvider) – DataContentProvider object may be a container

  • depth (int) – maximal level of recursion

  • recursive_limit_size (int) – maximal bytes of opened files to prevent recursive zip-bomb attack

Return type:

List[Candidate]

scan(content_provider, depth, recursive_limit_size=None)[source]

Initial scan method to launch recursive scan. Skips ByteScanner to prevent extra scan

Parameters:
  • content_provider (ContentProvider) – ContentProvider that might contain raw data

  • depth (int) – maximal level of recursion

  • recursive_limit_size (Optional[int]) – maximal bytes of opened files to prevent recursive zip-bomb attack

Return type:

List[Candidate]

property scanner: Scanner

Abstract property to be defined in DeepScanner

structure_scan(struct_provider, depth, recursive_limit_size)[source]

Recursive function to scan structured data

Parameters:
  • struct_provider (StructContentProvider) – DataContentProvider object may be a container

  • depth (int) – maximal level of recursion

  • recursive_limit_size (int) – maximal bytes of opened files to prevent recursive zip-bomb attack

Return type:

List[Candidate]

credsweeper.deep_scanner.docx_scanner module

class credsweeper.deep_scanner.docx_scanner.DocxScanner[source]

Bases: AbstractScanner, ABC

Implements docx scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to scan DOCX text with splitting by lines

Return type:

List[Candidate]

credsweeper.deep_scanner.eml_scanner module

class credsweeper.deep_scanner.eml_scanner.EmlScanner[source]

Bases: AbstractScanner, ABC

Implements eml scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to scan EML with text representation

Return type:

List[Candidate]

credsweeper.deep_scanner.encoder_scanner module

class credsweeper.deep_scanner.encoder_scanner.EncoderScanner[source]

Bases: AbstractScanner, ABC

Implements recursive iteration when data might be encoded

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to decode data from base64 encode to bytes and scan as bytes again

Return type:

List[Candidate]

credsweeper.deep_scanner.gzip_scanner module

class credsweeper.deep_scanner.gzip_scanner.GzipScanner[source]

Bases: AbstractScanner, ABC

Realises gzip scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Extracts data from gzip archive and launches data_scan

Return type:

List[Candidate]

credsweeper.deep_scanner.html_scanner module

class credsweeper.deep_scanner.html_scanner.HtmlScanner[source]

Bases: AbstractScanner, ABC

Implements html scanning if possible

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to represent data as html text and scan as text lines

Return type:

List[Candidate]

credsweeper.deep_scanner.jks_scanner module

class credsweeper.deep_scanner.jks_scanner.JksScanner[source]

Bases: AbstractScanner, ABC

Implements jks scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to scan JKS to open with standard password

Return type:

List[Candidate]

credsweeper.deep_scanner.lang_scanner module

class credsweeper.deep_scanner.lang_scanner.LangScanner[source]

Bases: AbstractScanner, ABC

Implements scanning of data if it is a script of some markup language

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to represent data as markup language and scan as structure

Return type:

List[Candidate]

credsweeper.deep_scanner.pdf_scanner module

class credsweeper.deep_scanner.pdf_scanner.PdfScanner[source]

Bases: AbstractScanner, ABC

Implements pdf scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to scan PDF elements recursively and the whole text on page as strings

Return type:

List[Candidate]

credsweeper.deep_scanner.pkcs12_scanner module

class credsweeper.deep_scanner.pkcs12_scanner.Pkcs12Scanner[source]

Bases: AbstractScanner, ABC

Implements pkcs12 scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to scan PKCS12 to open with standard password

Return type:

List[Candidate]

credsweeper.deep_scanner.tar_scanner module

class credsweeper.deep_scanner.tar_scanner.TarScanner[source]

Bases: AbstractScanner, ABC

Implements tar scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Extracts files one by one from tar archive and launches data_scan

Return type:

List[Candidate]

credsweeper.deep_scanner.xml_scanner module

class credsweeper.deep_scanner.xml_scanner.XmlScanner[source]

Bases: AbstractScanner, ABC

Realises xml scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Tries to represent data as xml text and scan as text lines

Return type:

List[Candidate]

credsweeper.deep_scanner.zip_scanner module

class credsweeper.deep_scanner.zip_scanner.ZipScanner[source]

Bases: AbstractScanner, ABC

Implements zip scanning

data_scan(data_provider, depth, recursive_limit_size)[source]

Extracts files one by one from zip archives and launches data_scan

Return type:

List[Candidate]

Module contents