mihari 5.2.4 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/README.md +0 -10
  4. data/Rakefile +7 -1
  5. data/build_frontend.sh +1 -1
  6. data/frontend/.eslintrc.cjs +22 -0
  7. data/frontend/.gitignore +18 -12
  8. data/frontend/.prettierrc.json +8 -0
  9. data/frontend/env.d.ts +5 -0
  10. data/frontend/package-lock.json +5095 -9661
  11. data/frontend/package.json +34 -24
  12. data/frontend/src/App.vue +5 -5
  13. data/frontend/src/api-helper.ts +38 -40
  14. data/frontend/src/api.ts +40 -40
  15. data/frontend/src/components/ErrorMessage.vue +8 -8
  16. data/frontend/src/components/Loading.vue +3 -3
  17. data/frontend/src/components/Navbar.vue +10 -27
  18. data/frontend/src/components/Pagination.vue +35 -42
  19. data/frontend/src/components/alert/Alert.vue +21 -26
  20. data/frontend/src/components/alert/Alerts.vue +23 -25
  21. data/frontend/src/components/alert/AlertsWithPagination.vue +34 -34
  22. data/frontend/src/components/alert/AlertsWrapper.vue +42 -49
  23. data/frontend/src/components/alert/Form.vue +39 -40
  24. data/frontend/src/components/artifact/AS.vue +7 -7
  25. data/frontend/src/components/artifact/Artifact.vue +66 -83
  26. data/frontend/src/components/artifact/ArtifactTag.vue +21 -27
  27. data/frontend/src/components/artifact/ArtifactTags.vue +8 -8
  28. data/frontend/src/components/artifact/ArtifactWrapper.vue +22 -25
  29. data/frontend/src/components/artifact/CPEs.vue +6 -6
  30. data/frontend/src/components/artifact/DnsRecords.vue +9 -9
  31. data/frontend/src/components/artifact/Ports.vue +6 -6
  32. data/frontend/src/components/artifact/ReverseDnsNames.vue +7 -7
  33. data/frontend/src/components/artifact/Tags.vue +6 -6
  34. data/frontend/src/components/artifact/WhoisRecord.vue +7 -9
  35. data/frontend/src/components/config/Configs.vue +7 -10
  36. data/frontend/src/components/config/ConfigsWrapper.vue +14 -20
  37. data/frontend/src/components/link/Link.vue +7 -7
  38. data/frontend/src/components/link/Links.vue +16 -21
  39. data/frontend/src/components/rule/EditRule.vue +22 -22
  40. data/frontend/src/components/rule/EditRuleWrapper.vue +22 -28
  41. data/frontend/src/components/rule/Form.vue +28 -28
  42. data/frontend/src/components/rule/InputForm.vue +31 -25
  43. data/frontend/src/components/rule/NewRule.vue +18 -18
  44. data/frontend/src/components/rule/Rule.vue +25 -27
  45. data/frontend/src/components/rule/RuleWrapper.vue +24 -31
  46. data/frontend/src/components/rule/Rules.vue +26 -30
  47. data/frontend/src/components/rule/RulesWrapper.vue +39 -42
  48. data/frontend/src/components/rule/YAML.vue +19 -22
  49. data/frontend/src/components/tag/Tag.vue +24 -32
  50. data/frontend/src/components/tag/Tags.vue +11 -11
  51. data/frontend/src/countries.ts +23 -23
  52. data/frontend/src/index.ts +9 -12
  53. data/frontend/src/links/anyrun.ts +10 -10
  54. data/frontend/src/links/base.ts +3 -3
  55. data/frontend/src/links/censys.ts +10 -10
  56. data/frontend/src/links/crtsh.ts +10 -10
  57. data/frontend/src/links/dnslytics.ts +18 -18
  58. data/frontend/src/links/greynoise.ts +10 -10
  59. data/frontend/src/links/index.ts +15 -15
  60. data/frontend/src/links/intezer.ts +10 -10
  61. data/frontend/src/links/otx.ts +14 -14
  62. data/frontend/src/links/securitytrails.ts +15 -15
  63. data/frontend/src/links/shodan.ts +10 -10
  64. data/frontend/src/links/urlscan.ts +19 -19
  65. data/frontend/src/links/virustotal.ts +27 -27
  66. data/frontend/src/main.ts +8 -8
  67. data/frontend/src/router/index.ts +20 -20
  68. data/frontend/src/rule.ts +6 -6
  69. data/frontend/src/shims-vue.d.ts +2 -2
  70. data/frontend/src/types.ts +91 -91
  71. data/frontend/src/utils.ts +23 -29
  72. data/frontend/src/views/Alerts.vue +7 -7
  73. data/frontend/src/views/Artifact.vue +17 -17
  74. data/frontend/src/views/Configs.vue +7 -7
  75. data/frontend/src/views/EditRule.vue +17 -17
  76. data/frontend/src/views/NewRule.vue +10 -10
  77. data/frontend/src/views/Rule.vue +17 -17
  78. data/frontend/src/views/Rules.vue +7 -7
  79. data/frontend/tests/utils.spec.ts +9 -0
  80. data/frontend/tsconfig.app.json +21 -0
  81. data/frontend/tsconfig.json +10 -36
  82. data/frontend/tsconfig.node.json +13 -0
  83. data/frontend/tsconfig.vitest.json +12 -0
  84. data/frontend/vite.config.ts +24 -0
  85. data/frontend/vitest.config.ts +21 -0
  86. data/lefthook.yml +4 -2
  87. data/lib/mihari/analyzers/base.rb +48 -14
  88. data/lib/mihari/analyzers/binaryedge.rb +10 -15
  89. data/lib/mihari/analyzers/censys.rb +12 -15
  90. data/lib/mihari/analyzers/circl.rb +10 -10
  91. data/lib/mihari/analyzers/crtsh.rb +10 -6
  92. data/lib/mihari/analyzers/dnstwister.rb +6 -8
  93. data/lib/mihari/analyzers/feed.rb +21 -10
  94. data/lib/mihari/analyzers/greynoise.rb +10 -20
  95. data/lib/mihari/analyzers/onyphe.rb +9 -14
  96. data/lib/mihari/analyzers/otx.rb +8 -9
  97. data/lib/mihari/analyzers/passivetotal.rb +10 -10
  98. data/lib/mihari/analyzers/pulsedive.rb +21 -31
  99. data/lib/mihari/analyzers/securitytrails.rb +8 -6
  100. data/lib/mihari/analyzers/shodan.rb +8 -13
  101. data/lib/mihari/analyzers/urlscan.rb +15 -20
  102. data/lib/mihari/analyzers/virustotal.rb +16 -26
  103. data/lib/mihari/analyzers/virustotal_intelligence.rb +11 -17
  104. data/lib/mihari/analyzers/zoomeye.rb +12 -17
  105. data/lib/mihari/config.rb +133 -0
  106. data/lib/mihari/constants.rb +3 -0
  107. data/lib/mihari/emitters/slack.rb +13 -3
  108. data/lib/mihari/errors.rb +1 -1
  109. data/lib/mihari/http.rb +2 -3
  110. data/lib/mihari/schemas/analyzer.rb +2 -0
  111. data/lib/mihari/type_checker.rb +6 -6
  112. data/lib/mihari/version.rb +1 -1
  113. data/lib/mihari/web/endpoints/configs.rb +5 -1
  114. data/lib/mihari/web/public/assets/{index-eed1bcd8.css → index-2ba8f0a6.css} +1 -1
  115. data/lib/mihari/web/public/assets/{index-ac4e5ffa.js → index-71285b15.js} +16 -16
  116. data/lib/mihari/web/public/index.html +2 -2
  117. data/lib/mihari/web/public/redoc-static.html +388 -2193
  118. data/lib/mihari.rb +9 -59
  119. data/mihari.gemspec +8 -8
  120. metadata +24 -62
  121. data/frontend/.browserslistrc +0 -3
  122. data/frontend/.eslintrc.js +0 -33
  123. data/frontend/babel.config.js +0 -3
  124. data/frontend/jest.config.js +0 -9
  125. data/frontend/tests/unit/utils.spec.ts +0 -7
  126. data/frontend/vite.config.js +0 -24
@@ -1,4 +1,4 @@
1
- import { Country } from "@/types";
1
+ import type { Country } from "@/types"
2
2
 
3
3
  const COUNTRIES: Country[] = [
4
4
  { name: "Afghanistan", lat: 33.93911, long: 67.709953, code: "AF" },
@@ -35,7 +35,7 @@ const COUNTRIES: Country[] = [
35
35
  name: "British Indian Ocean Territory",
36
36
  lat: -6.343194,
37
37
  long: 71.876519,
38
- code: "IO",
38
+ code: "IO"
39
39
  },
40
40
  { name: "Brunei", lat: 4.535277, long: 114.727669, code: "BN" },
41
41
  { name: "Bulgaria", lat: 42.733883, long: 25.48583, code: "BG" },
@@ -50,7 +50,7 @@ const COUNTRIES: Country[] = [
50
50
  name: "Central African Republic",
51
51
  lat: 6.611111,
52
52
  long: 20.939444,
53
- code: "CF",
53
+ code: "CF"
54
54
  },
55
55
  { name: "Caribbean Netherlands", lat: 12.2, long: -68.26, code: "BQ" },
56
56
  { name: "Chad", lat: 15.454166, long: 18.732207, code: "TD" },
@@ -61,7 +61,7 @@ const COUNTRIES: Country[] = [
61
61
  name: "Cocos (Keeling) Islands",
62
62
  lat: -12.164165,
63
63
  long: 96.870956,
64
- code: "CC",
64
+ code: "CC"
65
65
  },
66
66
  { name: "Colombia", lat: 4.570868, long: -74.297333, code: "CO" },
67
67
  { name: "Comoros", lat: -11.875001, long: 43.872219, code: "KM" },
@@ -90,7 +90,7 @@ const COUNTRIES: Country[] = [
90
90
  name: "Falkland Islands (Malvinas)",
91
91
  lat: -51.796253,
92
92
  long: -59.523613,
93
- code: "FK",
93
+ code: "FK"
94
94
  },
95
95
  { name: "Faroe Islands", lat: 61.892635, long: -6.911806, code: "FO" },
96
96
  { name: "Fiji", lat: -16.578193, long: 179.414413, code: "FJ" },
@@ -102,7 +102,7 @@ const COUNTRIES: Country[] = [
102
102
  name: "French Southern Territories",
103
103
  lat: -49.280366,
104
104
  long: 69.348557,
105
- code: "TF",
105
+ code: "TF"
106
106
  },
107
107
  { name: "Gabon", lat: -0.803689, long: 11.609444, code: "GA" },
108
108
  { name: "Gambia", lat: 13.443182, long: -15.310139, code: "GM" },
@@ -125,13 +125,13 @@ const COUNTRIES: Country[] = [
125
125
  name: "Heard Island and McDonald Islands",
126
126
  lat: -53.08181,
127
127
  long: 73.504158,
128
- code: "HM",
128
+ code: "HM"
129
129
  },
130
130
  {
131
131
  name: "Holy See (Vatican City State)",
132
132
  lat: 41.902916,
133
133
  long: 12.453389,
134
- code: "VA",
134
+ code: "VA"
135
135
  },
136
136
  { name: "Honduras", lat: 15.199999, long: -86.241905, code: "HN" },
137
137
  { name: "Hong Kong", lat: 22.396428, long: 114.109497, code: "HK" },
@@ -161,7 +161,7 @@ const COUNTRIES: Country[] = [
161
161
  name: 'Lao People"s Democratic Republic',
162
162
  lat: 19.85627,
163
163
  long: 102.495496,
164
- code: "LA",
164
+ code: "LA"
165
165
  },
166
166
  { name: "Latvia", lat: 56.879635, long: 24.603189, code: "LV" },
167
167
  { name: "Lebanon", lat: 33.854721, long: 35.862285, code: "LB" },
@@ -203,7 +203,7 @@ const COUNTRIES: Country[] = [
203
203
  name: "Netherlands Antilles",
204
204
  lat: 12.226079,
205
205
  long: -69.060087,
206
- code: "AN",
206
+ code: "AN"
207
207
  },
208
208
  { name: "New Caledonia", lat: -20.904305, long: 165.618042, code: "NC" },
209
209
  { name: "New Zealand", lat: -40.900557, long: 174.885971, code: "NZ" },
@@ -216,7 +216,7 @@ const COUNTRIES: Country[] = [
216
216
  name: "Northern Mariana Islands",
217
217
  lat: 17.33083,
218
218
  long: 145.38469,
219
- code: "MP",
219
+ code: "MP"
220
220
  },
221
221
  { name: "Norway", lat: 60.472024, long: 8.468946, code: "NO" },
222
222
  { name: "Oman", lat: 21.512583, long: 55.923255, code: "OM" },
@@ -243,14 +243,14 @@ const COUNTRIES: Country[] = [
243
243
  name: "Saint Kitts and Nevis",
244
244
  lat: 17.357822,
245
245
  long: -62.782998,
246
- code: "KN",
246
+ code: "KN"
247
247
  },
248
248
  { name: "Saint Lucia", lat: 13.909444, long: -60.978893, code: "LC" },
249
249
  {
250
250
  name: "Saint Pierre Miquelon",
251
251
  lat: 46.941936,
252
252
  long: -56.27111,
253
- code: "PM",
253
+ code: "PM"
254
254
  },
255
255
  { name: "Saint Martin", lat: 18.11, long: -63.03, code: "MF" },
256
256
  { name: "Sint Maarten", lat: 18.02, long: -63.06, code: "SX" },
@@ -258,7 +258,7 @@ const COUNTRIES: Country[] = [
258
258
  name: "Saint Vincent and the Grenadines",
259
259
  lat: 12.984305,
260
260
  long: -61.287228,
261
- code: "VC",
261
+ code: "VC"
262
262
  },
263
263
  { name: "Samoa", lat: -13.759029, long: -172.104629, code: "WS" },
264
264
  { name: "San Marino", lat: 43.94236, long: 12.457777, code: "SM" },
@@ -278,7 +278,7 @@ const COUNTRIES: Country[] = [
278
278
  name: "South Georgia and the South Sandwich Islands",
279
279
  lat: -54.429579,
280
280
  long: -36.587909,
281
- code: "GS",
281
+ code: "GS"
282
282
  },
283
283
  { name: "South Sudan", lat: 6.8769, long: 31.3069, code: "SS" },
284
284
  { name: "Spain", lat: 40.463667, long: -3.74922, code: "ES" },
@@ -289,7 +289,7 @@ const COUNTRIES: Country[] = [
289
289
  name: "Svalbard and Jan Mayen",
290
290
  lat: 77.553604,
291
291
  long: 23.670272,
292
- code: "SJ",
292
+ code: "SJ"
293
293
  },
294
294
  { name: "Swaziland", lat: -26.522503, long: 31.465866, code: "SZ" },
295
295
  { name: "Sweden", lat: 60.128161, long: 18.643501, code: "SE" },
@@ -311,7 +311,7 @@ const COUNTRIES: Country[] = [
311
311
  name: "Turks and Caicos Islands",
312
312
  lat: 21.694025,
313
313
  long: -71.797928,
314
- code: "TC",
314
+ code: "TC"
315
315
  },
316
316
  { name: "Tuvalu", lat: -7.109535, long: 177.64933, code: "TV" },
317
317
  { name: "Uganda", lat: 1.373333, long: 32.290275, code: "UG" },
@@ -323,7 +323,7 @@ const COUNTRIES: Country[] = [
323
323
  name: "United States Minor Outlying Islands",
324
324
  lat: 0.0,
325
325
  long: 0.0,
326
- code: "UM",
326
+ code: "UM"
327
327
  },
328
328
  { name: "Uruguay", lat: -32.522779, long: -55.765835, code: "UY" },
329
329
  { name: "Uzbekistan", lat: 41.377491, long: 64.585262, code: "UZ" },
@@ -334,17 +334,17 @@ const COUNTRIES: Country[] = [
334
334
  name: "British Virgin Islands",
335
335
  lat: 18.420695,
336
336
  long: -64.639968,
337
- code: "VG",
337
+ code: "VG"
338
338
  },
339
339
  { name: "U.S. Virgin Islands", lat: 18.335765, long: -64.896335, code: "VI" },
340
340
  { name: "Wallis and Futuna", lat: -13.768752, long: -177.156097, code: "WF" },
341
341
  { name: "Western Sahara", lat: 24.215527, long: -12.885834, code: "EH" },
342
342
  { name: "Yemen", lat: 15.552727, long: 48.516388, code: "YE" },
343
343
  { name: "Zambia", lat: -13.133897, long: 27.849332, code: "ZM" },
344
- { name: "Zimbabwe", lat: -19.015438, long: 29.154857, code: "ZW" },
345
- ];
344
+ { name: "Zimbabwe", lat: -19.015438, long: 29.154857, code: "ZW" }
345
+ ]
346
346
 
347
347
  export function getCountryByCode(code: string): Country | undefined {
348
- const country = COUNTRIES.find((country) => country.code === code);
349
- return country;
348
+ const country = COUNTRIES.find((country) => country.code === code)
349
+ return country
350
350
  }
@@ -1,14 +1,11 @@
1
- import { Link } from "@/types";
1
+ import type { Link } from "@/types"
2
2
 
3
- import { Censys } from "./links/censys";
4
- import { Crtsh } from "./links/crtsh";
5
- import {
6
- SecurityTrailsForDomain,
7
- SecurityTrailsForIP,
8
- } from "./links/securitytrails";
9
- import { Shodan } from "./links/shodan";
10
- import { UrlscanForDomain, UrlscanForIP } from "./links/urlscan";
11
- import { VirusTotalForDomain, VirusTotalForIP } from "./links/virustotal";
3
+ import { Censys } from "./links/censys"
4
+ import { Crtsh } from "./links/crtsh"
5
+ import { SecurityTrailsForDomain, SecurityTrailsForIP } from "./links/securitytrails"
6
+ import { Shodan } from "./links/shodan"
7
+ import { UrlscanForDomain, UrlscanForIP } from "./links/urlscan"
8
+ import { VirusTotalForDomain, VirusTotalForIP } from "./links/virustotal"
12
9
 
13
10
  export const Links: Link[] = [
14
11
  new Censys(),
@@ -19,5 +16,5 @@ export const Links: Link[] = [
19
16
  new UrlscanForDomain(),
20
17
  new UrlscanForIP(),
21
18
  new VirusTotalForDomain(),
22
- new VirusTotalForIP(),
23
- ];
19
+ new VirusTotalForIP()
20
+ ]
@@ -1,19 +1,19 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class AnyRun extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
11
- this.baseURL = "https://app.any.run";
12
- this.name = "ANY.RUN";
13
- this.type = "hash";
10
+ super()
11
+ this.baseURL = "https://app.any.run"
12
+ this.name = "ANY.RUN"
13
+ this.type = "hash"
14
14
  }
15
15
 
16
16
  public href(data: string): string {
17
- return this.baseURL + `/submissions/#filehash:${data}`;
17
+ return this.baseURL + `/submissions/#filehash:${data}`
18
18
  }
19
19
  }
@@ -1,14 +1,14 @@
1
1
  export class BaseLink {
2
- public baseURL: string;
2
+ public baseURL: string
3
3
 
4
4
  public constructor() {
5
- this.baseURL = "https://example.com";
5
+ this.baseURL = "https://example.com"
6
6
  }
7
7
 
8
8
  public favicon(): string {
9
9
  return (
10
10
  "https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=" +
11
11
  this.baseURL
12
- );
12
+ )
13
13
  }
14
14
  }
@@ -1,20 +1,20 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class Censys extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://search.censys.io";
13
- this.name = "Censys";
14
- this.type = "ip";
12
+ this.baseURL = "https://search.censys.io"
13
+ this.name = "Censys"
14
+ this.type = "ip"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/hosts/${data}`;
18
+ return this.baseURL + `/hosts/${data}`
19
19
  }
20
20
  }
@@ -1,20 +1,20 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class Crtsh extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://crt.sh";
13
- this.name = "crt.sh";
14
- this.type = "domain";
12
+ this.baseURL = "https://crt.sh"
13
+ this.name = "crt.sh"
14
+ this.type = "domain"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/?q=${data}`;
18
+ return this.baseURL + `/?q=${data}`
19
19
  }
20
20
  }
@@ -1,38 +1,38 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class DNSlyticsForIP extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://dnslytics.com";
13
- this.name = "DNSlytics";
14
- this.type = "ip";
12
+ this.baseURL = "https://dnslytics.com"
13
+ this.name = "DNSlytics"
14
+ this.type = "ip"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/ip/${data}`;
18
+ return this.baseURL + `/ip/${data}`
19
19
  }
20
20
  }
21
21
 
22
22
  export class DNSlyticsForDomain extends BaseLink implements Link {
23
- public baseURL: string;
24
- public name: string;
25
- public type: LinkType;
23
+ public baseURL: string
24
+ public name: string
25
+ public type: LinkType
26
26
 
27
27
  public constructor() {
28
- super();
28
+ super()
29
29
 
30
- this.baseURL = "https://dnslytics.com";
31
- this.name = "DNSlytics";
32
- this.type = "domain";
30
+ this.baseURL = "https://dnslytics.com"
31
+ this.name = "DNSlytics"
32
+ this.type = "domain"
33
33
  }
34
34
 
35
35
  public href(data: string): string {
36
- return this.baseURL + `/domain/${data}`;
36
+ return this.baseURL + `/domain/${data}`
37
37
  }
38
38
  }
@@ -1,20 +1,20 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class GreyNoise extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://www.greynoise.io";
13
- this.name = "GreyNoise";
14
- this.type = "ip";
12
+ this.baseURL = "https://www.greynoise.io"
13
+ this.name = "GreyNoise"
14
+ this.type = "ip"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/viz/query?gnql=ip:${data}`;
18
+ return this.baseURL + `/viz/query?gnql=ip:${data}`
19
19
  }
20
20
  }
@@ -1,21 +1,21 @@
1
- import { Link } from "@/types";
1
+ import type { Link } from "@/types"
2
2
 
3
- import { AnyRun } from "./anyrun";
4
- import { Censys } from "./censys";
5
- import { Crtsh } from "./crtsh";
6
- import { DNSlyticsForDomain, DNSlyticsForIP } from "./dnslytics";
7
- import { GreyNoise } from "./greynoise";
8
- import { Intezer } from "./intezer";
9
- import { OtxForDomain, OtxForIP } from "./otx";
10
- import { SecurityTrailsForDomain, SecurityTrailsForIP } from "./securitytrails";
11
- import { Shodan } from "./shodan";
12
- import { UrlscanForDomain, UrlscanForIP, UrlscanForURL } from "./urlscan";
3
+ import { AnyRun } from "./anyrun"
4
+ import { Censys } from "./censys"
5
+ import { Crtsh } from "./crtsh"
6
+ import { DNSlyticsForDomain, DNSlyticsForIP } from "./dnslytics"
7
+ import { GreyNoise } from "./greynoise"
8
+ import { Intezer } from "./intezer"
9
+ import { OtxForDomain, OtxForIP } from "./otx"
10
+ import { SecurityTrailsForDomain, SecurityTrailsForIP } from "./securitytrails"
11
+ import { Shodan } from "./shodan"
12
+ import { UrlscanForDomain, UrlscanForIP, UrlscanForURL } from "./urlscan"
13
13
  import {
14
14
  VirusTotalForDomain,
15
15
  VirusTotalForHash,
16
16
  VirusTotalForIP,
17
- VirusTotalForURL,
18
- } from "./virustotal";
17
+ VirusTotalForURL
18
+ } from "./virustotal"
19
19
 
20
20
  export const Links: Link[] = [
21
21
  new AnyRun(),
@@ -36,5 +36,5 @@ export const Links: Link[] = [
36
36
  new VirusTotalForDomain(),
37
37
  new VirusTotalForHash(),
38
38
  new VirusTotalForIP(),
39
- new VirusTotalForURL(),
40
- ];
39
+ new VirusTotalForURL()
40
+ ]
@@ -1,20 +1,20 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class Intezer extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://analyze.intezer.com";
13
- this.name = "Intezer";
14
- this.type = "hash";
12
+ this.baseURL = "https://analyze.intezer.com"
13
+ this.name = "Intezer"
14
+ this.type = "hash"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/#/files/${data}`;
18
+ return this.baseURL + `/#/files/${data}`
19
19
  }
20
20
  }
@@ -1,33 +1,33 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class OtxForIP extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://otx.alienvault.com";
13
- this.name = "OTX";
14
- this.type = "ip";
12
+ this.baseURL = "https://otx.alienvault.com"
13
+ this.name = "OTX"
14
+ this.type = "ip"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/indicator/ip/${data}`;
18
+ return this.baseURL + `/indicator/ip/${data}`
19
19
  }
20
20
  }
21
21
 
22
22
  export class OtxForDomain extends OtxForIP implements Link {
23
- public type: LinkType;
23
+ public type: LinkType
24
24
 
25
25
  public constructor() {
26
- super();
27
- this.type = "domain";
26
+ super()
27
+ this.type = "domain"
28
28
  }
29
29
 
30
30
  public href(data: string): string {
31
- return this.baseURL + `/indicator/domain/${data}`;
31
+ return this.baseURL + `/indicator/domain/${data}`
32
32
  }
33
33
  }
@@ -1,38 +1,38 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  class SecurityTrails extends BaseLink {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://securitytrails.com";
13
- this.name = "SecurityTrails";
14
- this.type = "domain";
12
+ this.baseURL = "https://securitytrails.com"
13
+ this.name = "SecurityTrails"
14
+ this.type = "domain"
15
15
  }
16
16
  }
17
17
 
18
18
  export class SecurityTrailsForDomain extends SecurityTrails implements Link {
19
19
  public constructor() {
20
- super();
21
- this.type = "domain";
20
+ super()
21
+ this.type = "domain"
22
22
  }
23
23
 
24
24
  public href(data: string): string {
25
- return this.baseURL + `/domain/${data}/dns`;
25
+ return this.baseURL + `/domain/${data}/dns`
26
26
  }
27
27
  }
28
28
 
29
29
  export class SecurityTrailsForIP extends SecurityTrails implements Link {
30
30
  public constructor() {
31
- super();
32
- this.type = "ip";
31
+ super()
32
+ this.type = "ip"
33
33
  }
34
34
 
35
35
  public href(data: string): string {
36
- return this.baseURL + `/list/ip/${data}`;
36
+ return this.baseURL + `/list/ip/${data}`
37
37
  }
38
38
  }
@@ -1,20 +1,20 @@
1
- import { BaseLink } from "@/links/base";
2
- import { Link, LinkType } from "@/types";
1
+ import { BaseLink } from "@/links/base"
2
+ import type { Link, LinkType } from "@/types"
3
3
 
4
4
  export class Shodan extends BaseLink implements Link {
5
- public baseURL: string;
6
- public name: string;
7
- public type: LinkType;
5
+ public baseURL: string
6
+ public name: string
7
+ public type: LinkType
8
8
 
9
9
  public constructor() {
10
- super();
10
+ super()
11
11
 
12
- this.baseURL = "https://www.shodan.io";
13
- this.name = "Shodan";
14
- this.type = "ip";
12
+ this.baseURL = "https://www.shodan.io"
13
+ this.name = "Shodan"
14
+ this.type = "ip"
15
15
  }
16
16
 
17
17
  public href(data: string): string {
18
- return this.baseURL + `/host/${data}`;
18
+ return this.baseURL + `/host/${data}`
19
19
  }
20
20
  }