mihari 5.2.4 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -1
- data/README.md +0 -10
- data/Rakefile +7 -1
- data/build_frontend.sh +1 -1
- data/frontend/.eslintrc.cjs +22 -0
- data/frontend/.gitignore +18 -12
- data/frontend/.prettierrc.json +8 -0
- data/frontend/env.d.ts +5 -0
- data/frontend/package-lock.json +5095 -9661
- data/frontend/package.json +34 -24
- data/frontend/src/App.vue +5 -5
- data/frontend/src/api-helper.ts +38 -40
- data/frontend/src/api.ts +40 -40
- data/frontend/src/components/ErrorMessage.vue +8 -8
- data/frontend/src/components/Loading.vue +3 -3
- data/frontend/src/components/Navbar.vue +10 -27
- data/frontend/src/components/Pagination.vue +35 -42
- data/frontend/src/components/alert/Alert.vue +21 -26
- data/frontend/src/components/alert/Alerts.vue +23 -25
- data/frontend/src/components/alert/AlertsWithPagination.vue +34 -34
- data/frontend/src/components/alert/AlertsWrapper.vue +42 -49
- data/frontend/src/components/alert/Form.vue +39 -40
- data/frontend/src/components/artifact/AS.vue +7 -7
- data/frontend/src/components/artifact/Artifact.vue +66 -83
- data/frontend/src/components/artifact/ArtifactTag.vue +21 -27
- data/frontend/src/components/artifact/ArtifactTags.vue +8 -8
- data/frontend/src/components/artifact/ArtifactWrapper.vue +22 -25
- data/frontend/src/components/artifact/CPEs.vue +6 -6
- data/frontend/src/components/artifact/DnsRecords.vue +9 -9
- data/frontend/src/components/artifact/Ports.vue +6 -6
- data/frontend/src/components/artifact/ReverseDnsNames.vue +7 -7
- data/frontend/src/components/artifact/Tags.vue +6 -6
- data/frontend/src/components/artifact/WhoisRecord.vue +7 -9
- data/frontend/src/components/config/Configs.vue +7 -10
- data/frontend/src/components/config/ConfigsWrapper.vue +14 -20
- data/frontend/src/components/link/Link.vue +7 -7
- data/frontend/src/components/link/Links.vue +16 -21
- data/frontend/src/components/rule/EditRule.vue +22 -22
- data/frontend/src/components/rule/EditRuleWrapper.vue +22 -28
- data/frontend/src/components/rule/Form.vue +28 -28
- data/frontend/src/components/rule/InputForm.vue +31 -25
- data/frontend/src/components/rule/NewRule.vue +18 -18
- data/frontend/src/components/rule/Rule.vue +25 -27
- data/frontend/src/components/rule/RuleWrapper.vue +24 -31
- data/frontend/src/components/rule/Rules.vue +26 -30
- data/frontend/src/components/rule/RulesWrapper.vue +39 -42
- data/frontend/src/components/rule/YAML.vue +19 -22
- data/frontend/src/components/tag/Tag.vue +24 -32
- data/frontend/src/components/tag/Tags.vue +11 -11
- data/frontend/src/countries.ts +23 -23
- data/frontend/src/index.ts +9 -12
- data/frontend/src/links/anyrun.ts +10 -10
- data/frontend/src/links/base.ts +3 -3
- data/frontend/src/links/censys.ts +10 -10
- data/frontend/src/links/crtsh.ts +10 -10
- data/frontend/src/links/dnslytics.ts +18 -18
- data/frontend/src/links/greynoise.ts +10 -10
- data/frontend/src/links/index.ts +15 -15
- data/frontend/src/links/intezer.ts +10 -10
- data/frontend/src/links/otx.ts +14 -14
- data/frontend/src/links/securitytrails.ts +15 -15
- data/frontend/src/links/shodan.ts +10 -10
- data/frontend/src/links/urlscan.ts +19 -19
- data/frontend/src/links/virustotal.ts +27 -27
- data/frontend/src/main.ts +8 -8
- data/frontend/src/router/index.ts +20 -20
- data/frontend/src/rule.ts +6 -6
- data/frontend/src/shims-vue.d.ts +2 -2
- data/frontend/src/types.ts +91 -91
- data/frontend/src/utils.ts +23 -29
- data/frontend/src/views/Alerts.vue +7 -7
- data/frontend/src/views/Artifact.vue +17 -17
- data/frontend/src/views/Configs.vue +7 -7
- data/frontend/src/views/EditRule.vue +17 -17
- data/frontend/src/views/NewRule.vue +10 -10
- data/frontend/src/views/Rule.vue +17 -17
- data/frontend/src/views/Rules.vue +7 -7
- data/frontend/tests/utils.spec.ts +9 -0
- data/frontend/tsconfig.app.json +21 -0
- data/frontend/tsconfig.json +10 -36
- data/frontend/tsconfig.node.json +13 -0
- data/frontend/tsconfig.vitest.json +12 -0
- data/frontend/vite.config.ts +24 -0
- data/frontend/vitest.config.ts +21 -0
- data/lefthook.yml +4 -2
- data/lib/mihari/analyzers/base.rb +48 -14
- data/lib/mihari/analyzers/binaryedge.rb +10 -15
- data/lib/mihari/analyzers/censys.rb +12 -15
- data/lib/mihari/analyzers/circl.rb +10 -10
- data/lib/mihari/analyzers/crtsh.rb +10 -6
- data/lib/mihari/analyzers/dnstwister.rb +6 -8
- data/lib/mihari/analyzers/feed.rb +21 -10
- data/lib/mihari/analyzers/greynoise.rb +10 -20
- data/lib/mihari/analyzers/onyphe.rb +9 -14
- data/lib/mihari/analyzers/otx.rb +8 -9
- data/lib/mihari/analyzers/passivetotal.rb +10 -10
- data/lib/mihari/analyzers/pulsedive.rb +21 -31
- data/lib/mihari/analyzers/securitytrails.rb +8 -6
- data/lib/mihari/analyzers/shodan.rb +8 -13
- data/lib/mihari/analyzers/urlscan.rb +15 -20
- data/lib/mihari/analyzers/virustotal.rb +16 -26
- data/lib/mihari/analyzers/virustotal_intelligence.rb +11 -17
- data/lib/mihari/analyzers/zoomeye.rb +12 -17
- data/lib/mihari/config.rb +133 -0
- data/lib/mihari/constants.rb +3 -0
- data/lib/mihari/emitters/slack.rb +13 -3
- data/lib/mihari/errors.rb +1 -1
- data/lib/mihari/http.rb +2 -3
- data/lib/mihari/schemas/analyzer.rb +2 -0
- data/lib/mihari/type_checker.rb +6 -6
- data/lib/mihari/version.rb +1 -1
- data/lib/mihari/web/endpoints/configs.rb +5 -1
- data/lib/mihari/web/public/assets/{index-eed1bcd8.css → index-2ba8f0a6.css} +1 -1
- data/lib/mihari/web/public/assets/{index-ac4e5ffa.js → index-71285b15.js} +16 -16
- data/lib/mihari/web/public/index.html +2 -2
- data/lib/mihari/web/public/redoc-static.html +388 -2193
- data/lib/mihari.rb +9 -59
- data/mihari.gemspec +8 -8
- metadata +24 -62
- data/frontend/.browserslistrc +0 -3
- data/frontend/.eslintrc.js +0 -33
- data/frontend/babel.config.js +0 -3
- data/frontend/jest.config.js +0 -9
- data/frontend/tests/unit/utils.spec.ts +0 -7
- data/frontend/vite.config.js +0 -24
data/frontend/src/countries.ts
CHANGED
@@ -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
|
}
|
data/frontend/src/index.ts
CHANGED
@@ -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
|
-
|
7
|
-
|
8
|
-
} from "./links/
|
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
|
}
|
data/frontend/src/links/base.ts
CHANGED
@@ -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
|
}
|
data/frontend/src/links/crtsh.ts
CHANGED
@@ -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
|
}
|
data/frontend/src/links/index.ts
CHANGED
@@ -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
|
}
|
data/frontend/src/links/otx.ts
CHANGED
@@ -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
|
}
|