mihari 5.2.2 → 5.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/build_frontend.sh +1 -9
- data/frontend/.browserslistrc +3 -0
- data/frontend/.eslintrc.js +33 -0
- data/frontend/.gitignore +25 -0
- data/frontend/README.md +3 -0
- data/frontend/babel.config.js +3 -0
- data/frontend/index.html +21 -0
- data/frontend/jest.config.js +9 -0
- data/frontend/package-lock.json +13216 -0
- data/frontend/package.json +54 -0
- data/frontend/public/favicon.ico +0 -0
- data/frontend/scripts/swagger_doc_to_yaml.rb +23 -0
- data/frontend/src/App.vue +27 -0
- data/frontend/src/api-helper.ts +113 -0
- data/frontend/src/api.ts +105 -0
- data/frontend/src/components/ErrorMessage.vue +32 -0
- data/frontend/src/components/Loading.vue +15 -0
- data/frontend/src/components/Navbar.vue +59 -0
- data/frontend/src/components/Pagination.vue +126 -0
- data/frontend/src/components/alert/Alert.vue +92 -0
- data/frontend/src/components/alert/Alerts.vue +66 -0
- data/frontend/src/components/alert/AlertsWithPagination.vue +91 -0
- data/frontend/src/components/alert/AlertsWrapper.vue +141 -0
- data/frontend/src/components/alert/Form.vue +185 -0
- data/frontend/src/components/artifact/AS.vue +29 -0
- data/frontend/src/components/artifact/Artifact.vue +321 -0
- data/frontend/src/components/artifact/ArtifactTag.vue +70 -0
- data/frontend/src/components/artifact/ArtifactTags.vue +29 -0
- data/frontend/src/components/artifact/ArtifactWrapper.vue +62 -0
- data/frontend/src/components/artifact/CPEs.vue +23 -0
- data/frontend/src/components/artifact/DnsRecords.vue +38 -0
- data/frontend/src/components/artifact/Ports.vue +23 -0
- data/frontend/src/components/artifact/ReverseDnsNames.vue +31 -0
- data/frontend/src/components/artifact/Tags.vue +29 -0
- data/frontend/src/components/artifact/WhoisRecord.vue +49 -0
- data/frontend/src/components/config/Configs.vue +68 -0
- data/frontend/src/components/config/ConfigsWrapper.vue +40 -0
- data/frontend/src/components/link/Link.vue +32 -0
- data/frontend/src/components/link/Links.vue +47 -0
- data/frontend/src/components/rule/EditRule.vue +74 -0
- data/frontend/src/components/rule/EditRuleWrapper.vue +56 -0
- data/frontend/src/components/rule/Form.vue +160 -0
- data/frontend/src/components/rule/InputForm.vue +80 -0
- data/frontend/src/components/rule/NewRule.vue +60 -0
- data/frontend/src/components/rule/Rule.vue +108 -0
- data/frontend/src/components/rule/RuleWrapper.vue +62 -0
- data/frontend/src/components/rule/Rules.vue +88 -0
- data/frontend/src/components/rule/RulesWrapper.vue +130 -0
- data/frontend/src/components/rule/YAML.vue +47 -0
- data/frontend/src/components/tag/Tag.vue +73 -0
- data/frontend/src/components/tag/Tags.vue +37 -0
- data/frontend/src/countries.ts +350 -0
- data/frontend/src/index.ts +23 -0
- data/frontend/src/links/anyrun.ts +19 -0
- data/frontend/src/links/base.ts +14 -0
- data/frontend/src/links/censys.ts +20 -0
- data/frontend/src/links/crtsh.ts +20 -0
- data/frontend/src/links/dnslytics.ts +38 -0
- data/frontend/src/links/greynoise.ts +20 -0
- data/frontend/src/links/index.ts +40 -0
- data/frontend/src/links/intezer.ts +20 -0
- data/frontend/src/links/otx.ts +33 -0
- data/frontend/src/links/securitytrails.ts +38 -0
- data/frontend/src/links/shodan.ts +20 -0
- data/frontend/src/links/urlscan.ts +50 -0
- data/frontend/src/links/virustotal.ts +72 -0
- data/frontend/src/main.ts +11 -0
- data/frontend/src/router/index.ts +57 -0
- data/frontend/src/rule.ts +14 -0
- data/frontend/src/shims-vue.d.ts +6 -0
- data/frontend/src/swagger.yaml +737 -0
- data/frontend/src/types.ts +188 -0
- data/frontend/src/utils.ts +60 -0
- data/frontend/src/views/Alerts.vue +20 -0
- data/frontend/src/views/Artifact.vue +44 -0
- data/frontend/src/views/Configs.vue +20 -0
- data/frontend/src/views/EditRule.vue +44 -0
- data/frontend/src/views/NewRule.vue +26 -0
- data/frontend/src/views/Rule.vue +44 -0
- data/frontend/src/views/Rules.vue +20 -0
- data/frontend/tests/unit/utils.spec.ts +7 -0
- data/frontend/tsconfig.json +40 -0
- data/frontend/vite.config.js +24 -0
- data/lefthook.yml +10 -0
- data/lib/mihari/analyzers/base.rb +22 -5
- data/lib/mihari/analyzers/binaryedge.rb +0 -1
- data/lib/mihari/analyzers/censys.rb +7 -2
- data/lib/mihari/analyzers/circl.rb +1 -1
- data/lib/mihari/analyzers/passivetotal.rb +1 -1
- data/lib/mihari/analyzers/rule.rb +43 -73
- data/lib/mihari/analyzers/virustotal_intelligence.rb +1 -2
- data/lib/mihari/clients/base.rb +1 -1
- data/lib/mihari/commands/database.rb +12 -11
- data/lib/mihari/commands/rule.rb +47 -45
- data/lib/mihari/commands/search.rb +73 -45
- data/lib/mihari/commands/version.rb +8 -6
- data/lib/mihari/commands/web.rb +26 -23
- data/lib/mihari/emitters/base.rb +14 -1
- data/lib/mihari/emitters/database.rb +3 -10
- data/lib/mihari/emitters/misp.rb +16 -5
- data/lib/mihari/emitters/slack.rb +13 -15
- data/lib/mihari/emitters/the_hive.rb +17 -19
- data/lib/mihari/emitters/webhook.rb +23 -23
- data/lib/mihari/enrichers/whois.rb +1 -0
- data/lib/mihari/entities/rule.rb +1 -1
- data/lib/mihari/entities/tag.rb +1 -1
- data/lib/mihari/feed/parser.rb +1 -0
- data/lib/mihari/feed/reader.rb +29 -14
- data/lib/mihari/mixins/configurable.rb +13 -4
- data/lib/mihari/schemas/analyzer.rb +2 -7
- data/lib/mihari/schemas/rule.rb +1 -1
- data/lib/mihari/structs/censys.rb +96 -82
- data/lib/mihari/structs/config.rb +46 -21
- data/lib/mihari/structs/google_public_dns.rb +27 -23
- data/lib/mihari/structs/greynoise.rb +44 -38
- data/lib/mihari/structs/onyphe.rb +34 -30
- data/lib/mihari/structs/rule.rb +1 -1
- data/lib/mihari/structs/shodan.rb +77 -69
- data/lib/mihari/structs/urlscan.rb +42 -36
- data/lib/mihari/structs/virustotal_intelligence.rb +57 -49
- data/lib/mihari/type_checker.rb +10 -8
- data/lib/mihari/version.rb +1 -1
- data/lib/mihari/web/public/assets/index-ac4e5ffa.js +50 -0
- data/lib/mihari/web/public/index.html +1 -1
- data/mihari.gemspec +8 -8
- metadata +103 -22
- data/.gitmodules +0 -0
- data/.overcommit.yml +0 -12
- data/lib/mihari/web/public/assets/index-cbe1734c.js +0 -50
@@ -0,0 +1,350 @@
|
|
1
|
+
import { Country } from "@/types";
|
2
|
+
|
3
|
+
const COUNTRIES: Country[] = [
|
4
|
+
{ name: "Afghanistan", lat: 33.93911, long: 67.709953, code: "AF" },
|
5
|
+
{ name: "Albania", lat: 41.153332, long: 20.168331, code: "AL" },
|
6
|
+
{ name: "Algeria", lat: 28.033886, long: 1.659626, code: "DZ" },
|
7
|
+
{ name: "American Samoa", lat: -14.270972, long: -170.132217, code: "AS" },
|
8
|
+
{ name: "Andorra", lat: 42.546245, long: 1.601554, code: "AD" },
|
9
|
+
{ name: "Angola", lat: -11.202692, long: 17.873887, code: "AO" },
|
10
|
+
{ name: "Anguilla", lat: 18.220554, long: -63.068615, code: "AI" },
|
11
|
+
{ name: "Antarctica", lat: -75.250973, long: -0.071389, code: "AQ" },
|
12
|
+
{ name: "Antigua and Barbuda", lat: 17.060816, long: -61.796428, code: "AG" },
|
13
|
+
{ name: "Argentina", lat: -38.416097, long: -63.616672, code: "AR" },
|
14
|
+
{ name: "Armenia", lat: 40.069099, long: 45.038189, code: "AM" },
|
15
|
+
{ name: "Aruba", lat: 12.52111, long: -69.968338, code: "AW" },
|
16
|
+
{ name: "Australia", lat: -25.274398, long: 133.775136, code: "AU" },
|
17
|
+
{ name: "Austria", lat: 47.516231, long: 14.550072, code: "AT" },
|
18
|
+
{ name: "Azerbaijan", lat: 40.143105, long: 47.576927, code: "AZ" },
|
19
|
+
{ name: "Bahamas", lat: 25.03428, long: -77.39628, code: "BS" },
|
20
|
+
{ name: "Bahrain", lat: 25.930414, long: 50.637772, code: "BH" },
|
21
|
+
{ name: "Bangladesh", lat: 23.684994, long: 90.356331, code: "BD" },
|
22
|
+
{ name: "Barbados", lat: 13.193887, long: -59.543198, code: "BB" },
|
23
|
+
{ name: "Belarus", lat: 53.709807, long: 27.953389, code: "BY" },
|
24
|
+
{ name: "Belgium", lat: 50.503887, long: 4.469936, code: "BE" },
|
25
|
+
{ name: "Belize", lat: 17.189877, long: -88.49765, code: "BZ" },
|
26
|
+
{ name: "Benin", lat: 9.30769, long: 2.315834, code: "BJ" },
|
27
|
+
{ name: "Bermuda", lat: 32.321384, long: -64.75737, code: "BM" },
|
28
|
+
{ name: "Bhutan", lat: 27.514162, long: 90.433601, code: "BT" },
|
29
|
+
{ name: "Bolivia", lat: -16.290154, long: -63.588653, code: "BO" },
|
30
|
+
{ name: "Bosnia", lat: 43.915886, long: 17.679076, code: "BA" },
|
31
|
+
{ name: "Botswana", lat: -22.328474, long: 24.684866, code: "BW" },
|
32
|
+
{ name: "Bouvet Island", lat: -54.423199, long: 3.413194, code: "BV" },
|
33
|
+
{ name: "Brazil", lat: -14.235004, long: -51.92528, code: "BR" },
|
34
|
+
{
|
35
|
+
name: "British Indian Ocean Territory",
|
36
|
+
lat: -6.343194,
|
37
|
+
long: 71.876519,
|
38
|
+
code: "IO",
|
39
|
+
},
|
40
|
+
{ name: "Brunei", lat: 4.535277, long: 114.727669, code: "BN" },
|
41
|
+
{ name: "Bulgaria", lat: 42.733883, long: 25.48583, code: "BG" },
|
42
|
+
{ name: "Burkina Faso", lat: 12.238333, long: -1.561593, code: "BF" },
|
43
|
+
{ name: "Burundi", lat: -3.373056, long: 29.918886, code: "BI" },
|
44
|
+
{ name: "Cabo Verde", lat: 16.002082, long: -24.013197, code: "CV" },
|
45
|
+
{ name: "Cambodia", lat: 12.565679, long: 104.990963, code: "KH" },
|
46
|
+
{ name: "Cameroon", lat: 7.369722, long: 12.354722, code: "CM" },
|
47
|
+
{ name: "Canada", lat: 56.130366, long: -106.346771, code: "CA" },
|
48
|
+
{ name: "Cayman Islands", lat: 19.513469, long: -80.566956, code: "KY" },
|
49
|
+
{
|
50
|
+
name: "Central African Republic",
|
51
|
+
lat: 6.611111,
|
52
|
+
long: 20.939444,
|
53
|
+
code: "CF",
|
54
|
+
},
|
55
|
+
{ name: "Caribbean Netherlands", lat: 12.2, long: -68.26, code: "BQ" },
|
56
|
+
{ name: "Chad", lat: 15.454166, long: 18.732207, code: "TD" },
|
57
|
+
{ name: "Chile", lat: -35.675147, long: -71.542969, code: "CL" },
|
58
|
+
{ name: "China", lat: 35.86166, long: 104.195397, code: "CN" },
|
59
|
+
{ name: "Christmas Island", lat: -10.447525, long: 105.690449, code: "CX" },
|
60
|
+
{
|
61
|
+
name: "Cocos (Keeling) Islands",
|
62
|
+
lat: -12.164165,
|
63
|
+
long: 96.870956,
|
64
|
+
code: "CC",
|
65
|
+
},
|
66
|
+
{ name: "Colombia", lat: 4.570868, long: -74.297333, code: "CO" },
|
67
|
+
{ name: "Comoros", lat: -11.875001, long: 43.872219, code: "KM" },
|
68
|
+
{ name: "Congo", lat: -0.228021, long: 15.827659, code: "CG" },
|
69
|
+
{ name: "DRC", lat: -4.038333, long: 21.758664, code: "CD" },
|
70
|
+
{ name: "Cook Islands", lat: -21.236736, long: -159.777671, code: "CK" },
|
71
|
+
{ name: "Costa Rica", lat: 9.748917, long: -83.753428, code: "CR" },
|
72
|
+
{ name: 'Côte d"Ivoire', lat: 7.539989, long: -5.54708, code: "CI" },
|
73
|
+
{ name: "Croatia", lat: 45.1, long: 15.2, code: "HR" },
|
74
|
+
{ name: "Cuba", lat: 21.521757, long: -77.781167, code: "CU" },
|
75
|
+
{ name: "Curaçao", lat: 12.15, long: -68.97, code: "CW" },
|
76
|
+
{ name: "Cyprus", lat: 35.126413, long: 33.429859, code: "CY" },
|
77
|
+
{ name: "Czechia", lat: 49.817492, long: 15.472962, code: "CZ" },
|
78
|
+
{ name: "Denmark", lat: 56.26392, long: 9.501785, code: "DK" },
|
79
|
+
{ name: "Djibouti", lat: 11.825138, long: 42.590275, code: "DJ" },
|
80
|
+
{ name: "Dominica", lat: 15.414999, long: -61.370976, code: "DM" },
|
81
|
+
{ name: "Dominican Republic", lat: 18.735693, long: -70.162651, code: "DO" },
|
82
|
+
{ name: "Ecuador", lat: -1.831239, long: -78.183406, code: "EC" },
|
83
|
+
{ name: "Egypt", lat: 26.820553, long: 30.802498, code: "EG" },
|
84
|
+
{ name: "El Salvador", lat: 13.794185, long: -88.89653, code: "SV" },
|
85
|
+
{ name: "Equatorial Guinea", lat: 1.650801, long: 10.267895, code: "GQ" },
|
86
|
+
{ name: "Eritrea", lat: 15.179384, long: 39.782334, code: "ER" },
|
87
|
+
{ name: "Estonia", lat: 58.595272, long: 25.013607, code: "EE" },
|
88
|
+
{ name: "Ethiopia", lat: 9.145, long: 40.489673, code: "ET" },
|
89
|
+
{
|
90
|
+
name: "Falkland Islands (Malvinas)",
|
91
|
+
lat: -51.796253,
|
92
|
+
long: -59.523613,
|
93
|
+
code: "FK",
|
94
|
+
},
|
95
|
+
{ name: "Faroe Islands", lat: 61.892635, long: -6.911806, code: "FO" },
|
96
|
+
{ name: "Fiji", lat: -16.578193, long: 179.414413, code: "FJ" },
|
97
|
+
{ name: "Finland", lat: 61.92411, long: 25.748151, code: "FI" },
|
98
|
+
{ name: "France", lat: 46.227638, long: 2.213749, code: "FR" },
|
99
|
+
{ name: "French Guiana", lat: 3.933889, long: -53.125782, code: "GF" },
|
100
|
+
{ name: "French Polynesia", lat: -17.679742, long: -149.406843, code: "PF" },
|
101
|
+
{
|
102
|
+
name: "French Southern Territories",
|
103
|
+
lat: -49.280366,
|
104
|
+
long: 69.348557,
|
105
|
+
code: "TF",
|
106
|
+
},
|
107
|
+
{ name: "Gabon", lat: -0.803689, long: 11.609444, code: "GA" },
|
108
|
+
{ name: "Gambia", lat: 13.443182, long: -15.310139, code: "GM" },
|
109
|
+
{ name: "Georgia", lat: 42.315407, long: 43.356892, code: "GE" },
|
110
|
+
{ name: "Germany", lat: 51.165691, long: 10.451526, code: "DE" },
|
111
|
+
{ name: "Ghana", lat: 7.946527, long: -1.023194, code: "GH" },
|
112
|
+
{ name: "Gibraltar", lat: 36.137741, long: -5.345374, code: "GI" },
|
113
|
+
{ name: "Greece", lat: 39.074208, long: 21.824312, code: "GR" },
|
114
|
+
{ name: "Greenland", lat: 71.706936, long: -42.604303, code: "GL" },
|
115
|
+
{ name: "Grenada", lat: 12.262776, long: -61.604171, code: "GD" },
|
116
|
+
{ name: "Guadeloupe", lat: 16.995971, long: -62.067641, code: "GP" },
|
117
|
+
{ name: "Guam", lat: 13.444304, long: 144.793731, code: "GU" },
|
118
|
+
{ name: "Guatemala", lat: 15.783471, long: -90.230759, code: "GT" },
|
119
|
+
{ name: "Guernsey", lat: 49.465691, long: -2.585278, code: "GG" },
|
120
|
+
{ name: "Guinea", lat: 9.945587, long: -9.696645, code: "GN" },
|
121
|
+
{ name: "Guinea-Bissau", lat: 11.803749, long: -15.180413, code: "GW" },
|
122
|
+
{ name: "Guyana", lat: 4.860416, long: -58.93018, code: "GY" },
|
123
|
+
{ name: "Haiti", lat: 18.971187, long: -72.285215, code: "HT" },
|
124
|
+
{
|
125
|
+
name: "Heard Island and McDonald Islands",
|
126
|
+
lat: -53.08181,
|
127
|
+
long: 73.504158,
|
128
|
+
code: "HM",
|
129
|
+
},
|
130
|
+
{
|
131
|
+
name: "Holy See (Vatican City State)",
|
132
|
+
lat: 41.902916,
|
133
|
+
long: 12.453389,
|
134
|
+
code: "VA",
|
135
|
+
},
|
136
|
+
{ name: "Honduras", lat: 15.199999, long: -86.241905, code: "HN" },
|
137
|
+
{ name: "Hong Kong", lat: 22.396428, long: 114.109497, code: "HK" },
|
138
|
+
{ name: "Hungary", lat: 47.162494, long: 19.503304, code: "HU" },
|
139
|
+
{ name: "Iceland", lat: 64.963051, long: -19.020835, code: "IS" },
|
140
|
+
{ name: "India", lat: 20.593684, long: 78.96288, code: "IN" },
|
141
|
+
{ name: "Indonesia", lat: -0.789275, long: 113.921327, code: "ID" },
|
142
|
+
{ name: "Iran", lat: 32.427908, long: 53.688046, code: "IR" },
|
143
|
+
{ name: "Iraq", lat: 33.223191, long: 43.679291, code: "IQ" },
|
144
|
+
{ name: "Ireland", lat: 53.41291, long: -8.24389, code: "IE" },
|
145
|
+
{ name: "Isle of Man", lat: 54.236107, long: -4.548056, code: "IM" },
|
146
|
+
{ name: "Israel", lat: 31.046051, long: 34.851612, code: "IL" },
|
147
|
+
{ name: "Italy", lat: 41.87194, long: 12.56738, code: "IT" },
|
148
|
+
{ name: "Jamaica", lat: 18.109581, long: -77.297508, code: "JM" },
|
149
|
+
{ name: "Japan", lat: 36.204824, long: 138.252924, code: "JP" },
|
150
|
+
{ name: "Channel Islands", lat: 49.214439, long: -2.13125, code: "JE" },
|
151
|
+
{ name: "Jordan", lat: 30.585164, long: 36.238414, code: "JO" },
|
152
|
+
{ name: "Kazakhstan", lat: 48.019573, long: 66.923684, code: "KZ" },
|
153
|
+
{ name: "Kenya", lat: -0.023559, long: 37.906193, code: "KE" },
|
154
|
+
{ name: "Kiribati", lat: -3.370417, long: -168.734039, code: "KI" },
|
155
|
+
{ name: "Kosovo", lat: 42.602636, long: 20.902977, code: "XK" },
|
156
|
+
{ name: "N. Korea", lat: 40.339852, long: 127.510093, code: "KP" },
|
157
|
+
{ name: "S. Korea", lat: 35.907757, long: 127.766922, code: "KR" },
|
158
|
+
{ name: "Kuwait", lat: 29.31166, long: 47.481766, code: "KW" },
|
159
|
+
{ name: "Kyrgyzstan", lat: 41.20438, long: 74.766098, code: "KG" },
|
160
|
+
{
|
161
|
+
name: 'Lao People"s Democratic Republic',
|
162
|
+
lat: 19.85627,
|
163
|
+
long: 102.495496,
|
164
|
+
code: "LA",
|
165
|
+
},
|
166
|
+
{ name: "Latvia", lat: 56.879635, long: 24.603189, code: "LV" },
|
167
|
+
{ name: "Lebanon", lat: 33.854721, long: 35.862285, code: "LB" },
|
168
|
+
{ name: "Lesotho", lat: -29.609988, long: 28.233608, code: "LS" },
|
169
|
+
{ name: "Liberia", lat: 6.428055, long: -9.429499, code: "LR" },
|
170
|
+
{ name: "Libyan Arab Jamahiriya", lat: 26.3351, long: 17.228331, code: "LY" },
|
171
|
+
{ name: "Liechtenstein", lat: 47.166, long: 9.555373, code: "LI" },
|
172
|
+
{ name: "Lithuania", lat: 55.169438, long: 23.881275, code: "LT" },
|
173
|
+
{ name: "Luxembourg", lat: 49.815273, long: 6.129583, code: "LU" },
|
174
|
+
{ name: "Macao", lat: 22.198745, long: 113.543873, code: "MO" },
|
175
|
+
{ name: "Macedonia", lat: 41.608635, long: 21.745275, code: "MK" },
|
176
|
+
{ name: "Madagascar", lat: -18.766947, long: 46.869107, code: "MG" },
|
177
|
+
{ name: "Malawi", lat: -13.254308, long: 34.301525, code: "MW" },
|
178
|
+
{ name: "Malaysia", lat: 4.210484, long: 101.975766, code: "MY" },
|
179
|
+
{ name: "Maldives", lat: 3.202778, long: 73.22068, code: "MV" },
|
180
|
+
{ name: "Mali", lat: 17.570692, long: -3.996166, code: "ML" },
|
181
|
+
{ name: "Malta", lat: 35.937496, long: 14.375416, code: "MT" },
|
182
|
+
{ name: "Marshall Islands", lat: 7.131474, long: 171.184478, code: "MH" },
|
183
|
+
{ name: "Martinique", lat: 14.641528, long: -61.024174, code: "MQ" },
|
184
|
+
{ name: "Mauritania", lat: 21.00789, long: -10.940835, code: "MR" },
|
185
|
+
{ name: "Mauritius", lat: -20.348404, long: 57.552152, code: "MU" },
|
186
|
+
{ name: "Mayotte", lat: -12.8275, long: 45.166244, code: "YT" },
|
187
|
+
{ name: "Mexico", lat: 23.634501, long: -102.552784, code: "MX" },
|
188
|
+
{ name: "Micronesia", lat: 7.425554, long: 150.550812, code: "FM" },
|
189
|
+
{ name: "Moldova", lat: 47.411631, long: 28.369885, code: "MD" },
|
190
|
+
{ name: "Monaco", lat: 43.750298, long: 7.412841, code: "MC" },
|
191
|
+
{ name: "Mongolia", lat: 46.862496, long: 103.846656, code: "MN" },
|
192
|
+
{ name: "Montenegro", lat: 42.708678, long: 19.37439, code: "ME" },
|
193
|
+
{ name: "Montserrat", lat: 16.742498, long: -62.187366, code: "MS" },
|
194
|
+
{ name: "Morocco", lat: 31.791702, long: -7.09262, code: "MA" },
|
195
|
+
{ name: "Mozambique", lat: -18.665695, long: 35.529562, code: "MZ" },
|
196
|
+
{ name: "Myanmar", lat: 21.913965, long: 95.956223, code: "MM" },
|
197
|
+
{ name: "Burma", lat: 22.0, long: 98.0, code: "BU" },
|
198
|
+
{ name: "Namibia", lat: -22.95764, long: 18.49041, code: "NA" },
|
199
|
+
{ name: "Nauru", lat: -0.522778, long: 166.931503, code: "NR" },
|
200
|
+
{ name: "Nepal", lat: 28.394857, long: 84.124008, code: "NP" },
|
201
|
+
{ name: "Netherlands", lat: 52.132633, long: 5.291266, code: "NL" },
|
202
|
+
{
|
203
|
+
name: "Netherlands Antilles",
|
204
|
+
lat: 12.226079,
|
205
|
+
long: -69.060087,
|
206
|
+
code: "AN",
|
207
|
+
},
|
208
|
+
{ name: "New Caledonia", lat: -20.904305, long: 165.618042, code: "NC" },
|
209
|
+
{ name: "New Zealand", lat: -40.900557, long: 174.885971, code: "NZ" },
|
210
|
+
{ name: "Nicaragua", lat: 12.865416, long: -85.207229, code: "NI" },
|
211
|
+
{ name: "Niger", lat: 17.607789, long: 8.081666, code: "NE" },
|
212
|
+
{ name: "Nigeria", lat: 9.081999, long: 8.675277, code: "NG" },
|
213
|
+
{ name: "Niue", lat: -19.054445, long: -169.867233, code: "NU" },
|
214
|
+
{ name: "Norfolk Island", lat: -29.040835, long: 167.954712, code: "NF" },
|
215
|
+
{
|
216
|
+
name: "Northern Mariana Islands",
|
217
|
+
lat: 17.33083,
|
218
|
+
long: 145.38469,
|
219
|
+
code: "MP",
|
220
|
+
},
|
221
|
+
{ name: "Norway", lat: 60.472024, long: 8.468946, code: "NO" },
|
222
|
+
{ name: "Oman", lat: 21.512583, long: 55.923255, code: "OM" },
|
223
|
+
{ name: "Pakistan", lat: 30.375321, long: 69.345116, code: "PK" },
|
224
|
+
{ name: "Palau", lat: 7.51498, long: 134.58252, code: "PW" },
|
225
|
+
{ name: "Palestine", lat: 31.952162, long: 35.233154, code: "PS" },
|
226
|
+
{ name: "Panama", lat: 8.537981, long: -80.782127, code: "PA" },
|
227
|
+
{ name: "Papua New Guinea", lat: -6.314993, long: 143.95555, code: "PG" },
|
228
|
+
{ name: "Paraguay", lat: -23.442503, long: -58.443832, code: "PY" },
|
229
|
+
{ name: "Peru", lat: -9.189967, long: -75.015152, code: "PE" },
|
230
|
+
{ name: "Philippines", lat: 12.879721, long: 121.774017, code: "PH" },
|
231
|
+
{ name: "Pitcairn", lat: -24.703615, long: -127.439308, code: "PN" },
|
232
|
+
{ name: "Poland", lat: 51.919438, long: 19.145136, code: "PL" },
|
233
|
+
{ name: "Portugal", lat: 39.399872, long: -8.224454, code: "PT" },
|
234
|
+
{ name: "Puerto Rico", lat: 18.220833, long: -66.590149, code: "PR" },
|
235
|
+
{ name: "Qatar", lat: 25.354826, long: 51.183884, code: "QA" },
|
236
|
+
{ name: "Réunion", lat: -21.115141, long: 55.536384, code: "RE" },
|
237
|
+
{ name: "Romania", lat: 45.943161, long: 24.96676, code: "RO" },
|
238
|
+
{ name: "Russia", lat: 61.52401, long: 105.318756, code: "RU" },
|
239
|
+
{ name: "Rwanda", lat: -1.940278, long: 29.873888, code: "RW" },
|
240
|
+
{ name: "St. Barth", lat: 17.89, long: -62.82, code: "BL" },
|
241
|
+
{ name: "Saint Helena", lat: -24.143474, long: -10.030696, code: "SH" },
|
242
|
+
{
|
243
|
+
name: "Saint Kitts and Nevis",
|
244
|
+
lat: 17.357822,
|
245
|
+
long: -62.782998,
|
246
|
+
code: "KN",
|
247
|
+
},
|
248
|
+
{ name: "Saint Lucia", lat: 13.909444, long: -60.978893, code: "LC" },
|
249
|
+
{
|
250
|
+
name: "Saint Pierre Miquelon",
|
251
|
+
lat: 46.941936,
|
252
|
+
long: -56.27111,
|
253
|
+
code: "PM",
|
254
|
+
},
|
255
|
+
{ name: "Saint Martin", lat: 18.11, long: -63.03, code: "MF" },
|
256
|
+
{ name: "Sint Maarten", lat: 18.02, long: -63.06, code: "SX" },
|
257
|
+
{
|
258
|
+
name: "Saint Vincent and the Grenadines",
|
259
|
+
lat: 12.984305,
|
260
|
+
long: -61.287228,
|
261
|
+
code: "VC",
|
262
|
+
},
|
263
|
+
{ name: "Samoa", lat: -13.759029, long: -172.104629, code: "WS" },
|
264
|
+
{ name: "San Marino", lat: 43.94236, long: 12.457777, code: "SM" },
|
265
|
+
{ name: "Sao Tome and Principe", lat: 0.18636, long: 6.613081, code: "ST" },
|
266
|
+
{ name: "Saudi Arabia", lat: 23.885942, long: 45.079162, code: "SA" },
|
267
|
+
{ name: "Senegal", lat: 14.497401, long: -14.452362, code: "SN" },
|
268
|
+
{ name: "Serbia", lat: 44.016521, long: 21.005859, code: "RS" },
|
269
|
+
{ name: "Seychelles", lat: -4.679574, long: 55.491977, code: "SC" },
|
270
|
+
{ name: "Sierra Leone", lat: 8.460555, long: -11.779889, code: "SL" },
|
271
|
+
{ name: "Singapore", lat: 1.352083, long: 103.819836, code: "SG" },
|
272
|
+
{ name: "Slovakia", lat: 48.669026, long: 19.699024, code: "SK" },
|
273
|
+
{ name: "Slovenia", lat: 46.151241, long: 14.995463, code: "SI" },
|
274
|
+
{ name: "Solomon Islands", lat: -9.64571, long: 160.156194, code: "SB" },
|
275
|
+
{ name: "Somalia", lat: 5.152149, long: 46.199616, code: "SO" },
|
276
|
+
{ name: "South Africa", lat: -30.559482, long: 22.937506, code: "ZA" },
|
277
|
+
{
|
278
|
+
name: "South Georgia and the South Sandwich Islands",
|
279
|
+
lat: -54.429579,
|
280
|
+
long: -36.587909,
|
281
|
+
code: "GS",
|
282
|
+
},
|
283
|
+
{ name: "South Sudan", lat: 6.8769, long: 31.3069, code: "SS" },
|
284
|
+
{ name: "Spain", lat: 40.463667, long: -3.74922, code: "ES" },
|
285
|
+
{ name: "Sri Lanka", lat: 7.873054, long: 80.771797, code: "LK" },
|
286
|
+
{ name: "Sudan", lat: 12.862807, long: 30.217636, code: "SD" },
|
287
|
+
{ name: "Suriname", lat: 3.919305, long: -56.027783, code: "SR" },
|
288
|
+
{
|
289
|
+
name: "Svalbard and Jan Mayen",
|
290
|
+
lat: 77.553604,
|
291
|
+
long: 23.670272,
|
292
|
+
code: "SJ",
|
293
|
+
},
|
294
|
+
{ name: "Swaziland", lat: -26.522503, long: 31.465866, code: "SZ" },
|
295
|
+
{ name: "Sweden", lat: 60.128161, long: 18.643501, code: "SE" },
|
296
|
+
{ name: "Switzerland", lat: 46.818188, long: 8.227512, code: "CH" },
|
297
|
+
{ name: "Syrian Arab Republic", lat: 34.802075, long: 38.996815, code: "SY" },
|
298
|
+
{ name: "Taiwan", lat: 23.69781, long: 120.960515, code: "TW" },
|
299
|
+
{ name: "Tajikistan", lat: 38.861034, long: 71.276093, code: "TJ" },
|
300
|
+
{ name: "Tanzania", lat: -6.369028, long: 34.888822, code: "TZ" },
|
301
|
+
{ name: "Thailand", lat: 15.870032, long: 100.992541, code: "TH" },
|
302
|
+
{ name: "Timor-Leste", lat: -8.874217, long: 125.727539, code: "TL" },
|
303
|
+
{ name: "Togo", lat: 8.619543, long: 0.824782, code: "TG" },
|
304
|
+
{ name: "Tokelau", lat: -8.967363, long: -171.855881, code: "TK" },
|
305
|
+
{ name: "Tonga", lat: -21.178986, long: -175.198242, code: "TO" },
|
306
|
+
{ name: "Trinidad and Tobago", lat: 10.691803, long: -61.222503, code: "TT" },
|
307
|
+
{ name: "Tunisia", lat: 33.886917, long: 9.537499, code: "TN" },
|
308
|
+
{ name: "Turkey", lat: 38.963745, long: 35.243322, code: "TR" },
|
309
|
+
{ name: "Turkmenistan", lat: 38.969719, long: 59.556278, code: "TM" },
|
310
|
+
{
|
311
|
+
name: "Turks and Caicos Islands",
|
312
|
+
lat: 21.694025,
|
313
|
+
long: -71.797928,
|
314
|
+
code: "TC",
|
315
|
+
},
|
316
|
+
{ name: "Tuvalu", lat: -7.109535, long: 177.64933, code: "TV" },
|
317
|
+
{ name: "Uganda", lat: 1.373333, long: 32.290275, code: "UG" },
|
318
|
+
{ name: "Ukraine", lat: 48.379433, long: 31.16558, code: "UA" },
|
319
|
+
{ name: "UAE", lat: 23.424076, long: 53.847818, code: "AE" },
|
320
|
+
{ name: "UK", lat: 55.378051, long: -3.435973, code: "GB" },
|
321
|
+
{ name: "USA", lat: 37.09024, long: -95.712891, code: "US" },
|
322
|
+
{
|
323
|
+
name: "United States Minor Outlying Islands",
|
324
|
+
lat: 0.0,
|
325
|
+
long: 0.0,
|
326
|
+
code: "UM",
|
327
|
+
},
|
328
|
+
{ name: "Uruguay", lat: -32.522779, long: -55.765835, code: "UY" },
|
329
|
+
{ name: "Uzbekistan", lat: 41.377491, long: 64.585262, code: "UZ" },
|
330
|
+
{ name: "Vanuatu", lat: -15.376706, long: 166.959158, code: "VU" },
|
331
|
+
{ name: "Venezuela", lat: 6.42375, long: -66.58973, code: "VE" },
|
332
|
+
{ name: "Vietnam", lat: 14.058324, long: 108.277199, code: "VN" },
|
333
|
+
{
|
334
|
+
name: "British Virgin Islands",
|
335
|
+
lat: 18.420695,
|
336
|
+
long: -64.639968,
|
337
|
+
code: "VG",
|
338
|
+
},
|
339
|
+
{ name: "U.S. Virgin Islands", lat: 18.335765, long: -64.896335, code: "VI" },
|
340
|
+
{ name: "Wallis and Futuna", lat: -13.768752, long: -177.156097, code: "WF" },
|
341
|
+
{ name: "Western Sahara", lat: 24.215527, long: -12.885834, code: "EH" },
|
342
|
+
{ name: "Yemen", lat: 15.552727, long: 48.516388, code: "YE" },
|
343
|
+
{ name: "Zambia", lat: -13.133897, long: 27.849332, code: "ZM" },
|
344
|
+
{ name: "Zimbabwe", lat: -19.015438, long: 29.154857, code: "ZW" },
|
345
|
+
];
|
346
|
+
|
347
|
+
export function getCountryByCode(code: string): Country | undefined {
|
348
|
+
const country = COUNTRIES.find((country) => country.code === code);
|
349
|
+
return country;
|
350
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { Link } from "@/types";
|
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";
|
12
|
+
|
13
|
+
export const Links: Link[] = [
|
14
|
+
new Censys(),
|
15
|
+
new Crtsh(),
|
16
|
+
new SecurityTrailsForDomain(),
|
17
|
+
new SecurityTrailsForIP(),
|
18
|
+
new Shodan(),
|
19
|
+
new UrlscanForDomain(),
|
20
|
+
new UrlscanForIP(),
|
21
|
+
new VirusTotalForDomain(),
|
22
|
+
new VirusTotalForIP(),
|
23
|
+
];
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class AnyRun extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
this.baseURL = "https://app.any.run";
|
12
|
+
this.name = "ANY.RUN";
|
13
|
+
this.type = "hash";
|
14
|
+
}
|
15
|
+
|
16
|
+
public href(data: string): string {
|
17
|
+
return this.baseURL + `/submissions/#filehash:${data}`;
|
18
|
+
}
|
19
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
export class BaseLink {
|
2
|
+
public baseURL: string;
|
3
|
+
|
4
|
+
public constructor() {
|
5
|
+
this.baseURL = "https://example.com";
|
6
|
+
}
|
7
|
+
|
8
|
+
public favicon(): string {
|
9
|
+
return (
|
10
|
+
"https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=" +
|
11
|
+
this.baseURL
|
12
|
+
);
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class Censys extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://search.censys.io";
|
13
|
+
this.name = "Censys";
|
14
|
+
this.type = "ip";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/hosts/${data}`;
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class Crtsh extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://crt.sh";
|
13
|
+
this.name = "crt.sh";
|
14
|
+
this.type = "domain";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/?q=${data}`;
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class DNSlyticsForIP extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://dnslytics.com";
|
13
|
+
this.name = "DNSlytics";
|
14
|
+
this.type = "ip";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/ip/${data}`;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
export class DNSlyticsForDomain extends BaseLink implements Link {
|
23
|
+
public baseURL: string;
|
24
|
+
public name: string;
|
25
|
+
public type: LinkType;
|
26
|
+
|
27
|
+
public constructor() {
|
28
|
+
super();
|
29
|
+
|
30
|
+
this.baseURL = "https://dnslytics.com";
|
31
|
+
this.name = "DNSlytics";
|
32
|
+
this.type = "domain";
|
33
|
+
}
|
34
|
+
|
35
|
+
public href(data: string): string {
|
36
|
+
return this.baseURL + `/domain/${data}`;
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class GreyNoise extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://www.greynoise.io";
|
13
|
+
this.name = "GreyNoise";
|
14
|
+
this.type = "ip";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/viz/query?gnql=ip:${data}`;
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { Link } from "@/types";
|
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";
|
13
|
+
import {
|
14
|
+
VirusTotalForDomain,
|
15
|
+
VirusTotalForHash,
|
16
|
+
VirusTotalForIP,
|
17
|
+
VirusTotalForURL,
|
18
|
+
} from "./virustotal";
|
19
|
+
|
20
|
+
export const Links: Link[] = [
|
21
|
+
new AnyRun(),
|
22
|
+
new Censys(),
|
23
|
+
new Crtsh(),
|
24
|
+
new DNSlyticsForDomain(),
|
25
|
+
new DNSlyticsForIP(),
|
26
|
+
new GreyNoise(),
|
27
|
+
new Intezer(),
|
28
|
+
new OtxForDomain(),
|
29
|
+
new OtxForIP(),
|
30
|
+
new SecurityTrailsForDomain(),
|
31
|
+
new SecurityTrailsForIP(),
|
32
|
+
new Shodan(),
|
33
|
+
new UrlscanForDomain(),
|
34
|
+
new UrlscanForIP(),
|
35
|
+
new UrlscanForURL(),
|
36
|
+
new VirusTotalForDomain(),
|
37
|
+
new VirusTotalForHash(),
|
38
|
+
new VirusTotalForIP(),
|
39
|
+
new VirusTotalForURL(),
|
40
|
+
];
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class Intezer extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://analyze.intezer.com";
|
13
|
+
this.name = "Intezer";
|
14
|
+
this.type = "hash";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/#/files/${data}`;
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class OtxForIP extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://otx.alienvault.com";
|
13
|
+
this.name = "OTX";
|
14
|
+
this.type = "ip";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/indicator/ip/${data}`;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
export class OtxForDomain extends OtxForIP implements Link {
|
23
|
+
public type: LinkType;
|
24
|
+
|
25
|
+
public constructor() {
|
26
|
+
super();
|
27
|
+
this.type = "domain";
|
28
|
+
}
|
29
|
+
|
30
|
+
public href(data: string): string {
|
31
|
+
return this.baseURL + `/indicator/domain/${data}`;
|
32
|
+
}
|
33
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
class SecurityTrails extends BaseLink {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://securitytrails.com";
|
13
|
+
this.name = "SecurityTrails";
|
14
|
+
this.type = "domain";
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
export class SecurityTrailsForDomain extends SecurityTrails implements Link {
|
19
|
+
public constructor() {
|
20
|
+
super();
|
21
|
+
this.type = "domain";
|
22
|
+
}
|
23
|
+
|
24
|
+
public href(data: string): string {
|
25
|
+
return this.baseURL + `/domain/${data}/dns`;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
export class SecurityTrailsForIP extends SecurityTrails implements Link {
|
30
|
+
public constructor() {
|
31
|
+
super();
|
32
|
+
this.type = "ip";
|
33
|
+
}
|
34
|
+
|
35
|
+
public href(data: string): string {
|
36
|
+
return this.baseURL + `/list/ip/${data}`;
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { BaseLink } from "@/links/base";
|
2
|
+
import { Link, LinkType } from "@/types";
|
3
|
+
|
4
|
+
export class Shodan extends BaseLink implements Link {
|
5
|
+
public baseURL: string;
|
6
|
+
public name: string;
|
7
|
+
public type: LinkType;
|
8
|
+
|
9
|
+
public constructor() {
|
10
|
+
super();
|
11
|
+
|
12
|
+
this.baseURL = "https://www.shodan.io";
|
13
|
+
this.name = "Shodan";
|
14
|
+
this.type = "ip";
|
15
|
+
}
|
16
|
+
|
17
|
+
public href(data: string): string {
|
18
|
+
return this.baseURL + `/host/${data}`;
|
19
|
+
}
|
20
|
+
}
|