UNPKG

ioc-extractor

Version:

IoC (Indicator of Compromise) extractor

488 lines 13.9 kB
//#region src/types.d.ts type StrictOptions = Partial<{ strict: boolean; }>; type SortOptions = Partial<{ sort: boolean; }>; type StrictSortOptions = StrictOptions & SortOptions; type Options = StrictOptions & SortOptions & Partial<{ refang: boolean; punycode: boolean; }>; interface IOC { asns: string[]; btcs: string[]; cves: string[]; domains: string[]; emails: string[]; eths: string[]; gaPubIDs: string[]; gaTrackIDs: string[]; ipv4s: string[]; ipv6s: string[]; macAddresses: string[]; md5s: string[]; sha1s: string[]; sha256s: string[]; sha512s: string[]; ssdeeps: string[]; urls: string[]; xmrs: string[]; } type IOCKey = 'asns' | 'btcs' | 'cves' | 'domains' | 'emails' | 'eths' | 'gaPubIDs' | 'gaTrackIDs' | 'ipv4s' | 'ipv6s' | 'macAddresses' | 'md5s' | 'sha1s' | 'sha256s' | 'sha512s' | 'ssdeeps' | 'urls' | 'xmrs'; //#endregion //#region src/aux/extractors.d.ts /** * Extract MD5s from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of MD5s */ declare function extractMD5s(s: string, options?: SortOptions): string[]; /** * Extract MD5 from a string * * @param {string} s A string * @returns {string | null} MD5 */ declare function extractMD5(s: string): string | null; /** * Extract SHA1s from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of SHA1s */ declare function extractSHA1s(s: string, options?: SortOptions): string[]; /** * Extract SHA1 from a string * * @param {string} s A string * @returns {string | null } SHA1 */ declare function extractSHA1(s: string): string | null; /** * Extract SHA256s from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of SHA256s */ declare function extractSHA256s(s: string, options?: SortOptions): string[]; /** * Extract SHA256 from a string * * @param {string} s A string * @returns {string | null } SHA256 */ declare function extractSHA256(s: string): string | null; /** * Extract SHA512s from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of SHA512s */ declare function extractSHA512s(s: string, options?: SortOptions): string[]; /** * Extract SHA512 from a string * * @param {string} s A string * @returns {string | null} SHA512 */ declare function extractSHA512(s: string): string | null; /** * Extract SSDEEPs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of SSDEEPs */ declare function extractSSDEEPs(s: string, options?: SortOptions): string[]; /** * Extract SSDEEP from a string * * @param {string} s A string * @returns {string | null} SSDEEP */ declare function extractSSDEEP(s: string): string | null; /** * Extract ASNs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of ASNs */ declare function extractASNs(s: string, options?: SortOptions): string[]; /** * Extract ASN from a string * * @param {string} s A string * @returns {string[]} ASN */ declare function extractASN(s: string): string | null; /** * Extract domains from a string * * @param {string} s A string * @param {StrictSortOptions} options * @returns {string[]} An array of domains */ declare function extractDomains(s: string, options?: StrictSortOptions): string[]; /** * Extract domain from a string * * @param {string} s A string * @param {StrictOptions} options * @returns {string | null} Domain */ declare function extractDomain(s: string, options?: StrictOptions): string | null; /** * Extract emails from a string * * @param {string} s A string * @param {StrictSortOptions} options * @returns {string[]} An array of emails */ declare function extractEmails(s: string, options?: StrictSortOptions): string[]; /** * Extract email from a string * * @param {string} s A string * @param {StrictOptions} options * @returns {string | null} Email */ declare function extractEmail(s: string, options?: StrictOptions): string | null; /** * Extract IPv4s from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of IPv4s */ declare function extractIPv4s(s: string, options?: SortOptions): string[]; /** * Extract IPv4 from a string * * @param {string} s A string * @returns {string | null} IPv4 */ declare function extractIPv4(s: string): string | null; /** * Extract IPv6s from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of IPv6s */ declare function extractIPv6s(s: string, options?: SortOptions): string[]; /** * Extract IPv6 from a string * * @param {string} s A string * @returns {string | null} IPv6 */ declare function extractIPv6(s: string): string | null; /** * Extract URLs from a string * * @param {string} s A string * @param {StrictSortOptions} options * @returns {string[]} An array of URLs */ declare function extractURLs(s: string, options?: StrictSortOptions): string[]; /** * Extract URL from a string * * @param {string} s A string * @param {StrictOptions} options * @returns {string | null} URL */ declare function extractURL(s: string, options?: StrictOptions): string | null; /** * Extract CVEs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of CVEs */ declare function extractCVEs(s: string, options?: SortOptions): string[]; /** * Extract CVE from a string * * @param {string} s A string * @returns {string | null} CVE */ declare function extractCVE(s: string): string | null; /** * Extract BTCs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of BTCs */ declare function extractBTCs(s: string, options?: SortOptions): string[]; /** * Extract BTC from a string * * @param {string} s A string * @returns {string | null} BTC */ declare function extractBTC(s: string): string | null; /** * Extract XMRs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of XMRs */ declare function extractXMRs(s: string, options?: SortOptions): string[]; /** * Extract XMR from a string * * @param {string} s A string * @returns {string[]} XMR */ declare function extractXMR(s: string): string | null; /** * Extract Google Adsense Publisher IDs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of Google Adsense Publisher IDs */ declare function extractGAPubIDs(s: string, options?: SortOptions): string[]; /** * Extract Google Adsense Publisher IDs from a string * * @param {string} s A string * @returns {string | null} Adsense Publisher ID */ declare function extractGAPubID(s: string): string | null; /** * Extract Google Analytics tracking IDs from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of Google Analytics tracking IDs */ declare function extractGATrackIDs(s: string, options?: SortOptions): string[]; /** * Extract Google Analytics tracking ID from a string * * @param {string} s A string * @returns {string[]} Google Analytics tracking ID */ declare function extractGATrackID(s: string): string | null; /** * Extract mac addresses from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of mac addresses */ declare function extractMacAddresses(s: string, options?: SortOptions): string[]; /** * Extract mac address from a string * * @param {string} s A string * @returns {string[]} Mac address */ declare function extractMacAddress(s: string): string | null; /** * Extract ETH addresses from a string * * @param {string} s A string * @param {SortOptions} options * @returns {string[]} An array of ETH addresses */ declare function extractETHs(s: string, options?: SortOptions): string[]; /** * Extract ETH address from a string * * @param {string} s A string * @returns {string | null} ETH address */ declare function extractETH(s: string): string | null; //#endregion //#region src/aux/utils.d.ts /** * Remove defanged symbols from a string * * @param {string} s A string * @returns {string} A cleaned (aka refanged) string */ declare function refang(s: string): string; declare function unicodeToASCII(s: string): string; //#endregion //#region src/aux/validators.d.ts /** * Check whether a string is a MD5 or not * * @param {string} s A string * @returns {boolean} return true if a string is MD5 */ declare function isMD5(s: string): boolean; /** * Check whether a string is a SHA1 or not * * @param {string} s A string * @returns {boolean} return true if a string is a SHA1 */ declare function isSHA1(s: string): boolean; /** * Check whether a string is a SHA256 or not * * @param {string} s A string * @returns {boolean} return true if a string is a SHA256 */ declare function isSHA256(s: string): boolean; /** * Check whether a string is a SHA512 or not * * @param {string} s A string * @returns {boolean} return true if a string is a SHA512 */ declare function isSHA512(s: string): boolean; /** * Check whether a string is a SSDEEP or not * * @param {string} s A string * @returns {boolean} return true if a string is a SSDEEP */ declare function isSSDEEP(s: string): boolean; /** * Check whether a string is an ASN or not * * @param {string} s A string * @returns {boolean} return true if a string is an ASN */ declare function isASN(s: string): boolean; /** * Check whether a string is a domain or not * * @param {string} s A string * @param {StrictOptions} options * @returns {boolean} return true if a string is a domain */ declare function isDomain(s: string, options?: StrictOptions): boolean; /** * Check whether a string is an email or not * * @param {string} s A string * @param {StrictOptions} options * @returns {boolean} true if a string is a domain */ declare function isEmail(s: string, options?: StrictOptions): boolean; /** * Check whether a string is an IPv4 or not * * @param {string} s A string * @returns {boolean} true if a string is an IPv4 */ declare function isIPv4(s: string): boolean; /** * Check whether a string is an IPv6 or not * * @param {string} s A string * @returns {boolean} true if a string is an IPv6 */ declare function isIPv6(s: string): boolean; /** * Check whether a string is a URL or not * * @param {string} s A string * @param {StrictOptions} options * @returns {boolean} true if a string is a URL */ declare function isURL(s: string, options?: StrictOptions): boolean; /** * Check whether a string is a CVE or not * * @param {string} s A string * @returns {boolean} true if a string is a CVE */ declare function isCVE(s: string): boolean; /** * Check whether a string is a BTC or not * * @param {string} s A string * @returns {boolean} return true if a string is a BTC */ declare function isBTC(s: string): boolean; /** * Check whether a string is an XMR or not * * @param {string} s A string * @returns {boolean} true if a string is an XMR */ declare function isXMR(s: string): boolean; /** * Check whether a string is a Google Adsense Publisher ID or not * * @param {string} s A string * @returns {boolean} true if a string is a Google Adsense Publisher ID */ declare function isGAPubID(s: string): boolean; /** * Check whether a string is a Google Analytics tracking ID or not * * @param {string} s A string * @returns {boolean} true if a string is a Google Analytics tracking ID */ declare function isGATrackID(s: string): boolean; /** * Check whether a string is a mac address or not * * @param {string} s A string * @returns {boolean} true if a string is a mac address */ declare function isMacAddress(s: string): boolean; /** * Check whether a string is an ETH address or not * * @param {string} s A string * @returns {boolean} true if a string is an ETH address */ declare function isETH(s: string): boolean; //#endregion //#region src/index.d.ts declare class IOCExtractor { private s; constructor(s: string); /** * Extract IoCs from a string * * @returns {IOC} * @param {Options} options */ extractIOC(options?: Options): IOC; /** * Partially extract IoCs a string * * @returns {IOC} * @param {IOCKey[]} only * @param {Options} options */ partialExtractIOC(only: IOCKey[], options?: Options): Partial<IOC>; } /** * Extract IoCs from a string * * @param {string} s A string * @param {Options} options * @returns {IOC} */ declare function extractIOC(s: string, options?: Options): IOC; /** * Partially extract IoCs from a string * * @param {string} s A string * @param {Options} options * @returns {IOC} */ declare function partialExtractIOC(s: string, only: IOCKey[], options?: Options): Partial<IOC>; //#endregion export { type IOC, IOCExtractor, type IOCKey, type Options, type SortOptions, type StrictOptions, type StrictSortOptions, extractASN, extractASNs, extractBTC, extractBTCs, extractCVE, extractCVEs, extractDomain, extractDomains, extractETH, extractETHs, extractEmail, extractEmails, extractGAPubID, extractGAPubIDs, extractGATrackID, extractGATrackIDs, extractIOC, extractIPv4, extractIPv4s, extractIPv6, extractIPv6s, extractMD5, extractMD5s, extractMacAddress, extractMacAddresses, extractSHA1, extractSHA1s, extractSHA256, extractSHA256s, extractSHA512, extractSHA512s, extractSSDEEP, extractSSDEEPs, extractURL, extractURLs, extractXMR, extractXMRs, isASN, isBTC, isCVE, isDomain, isETH, isEmail, isGAPubID, isGATrackID, isIPv4, isIPv6, isMD5, isMacAddress, isSHA1, isSHA256, isSHA512, isSSDEEP, isURL, isXMR, partialExtractIOC, refang, unicodeToASCII };