CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
rapid7

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

GitHub Repository: rapid7/metasploit-framework
Path: blob/master/docs/navigation.rb
Views: 11704
1
# This file maps the files within `metasploit-framework.wiki/` to the navigational menu
2
# Modify this file to change the doc site's navigation/hierarchy
3
4
# @param prefix [String] The prefix to remove from a string
5
# @return [proc<String, String>] When called with a string, the returned string has the prefix removed
6
def without_prefix(prefix)
7
proc { |value| value.sub(/^#{prefix}/, '') }
8
end
9
10
=begin
11
Modify `NAVIGATION_CONFIG` to add additional items to the wiki site.
12
The two support options are:
13
14
1) If you are adding a new wiki page, which won't appear in msfconsole by default:
15
16
- Add your new page to `metasploit-framework.wiki`
17
- Add a new entry to NAVIGATION_CONFIG:
18
```ruby
19
{
20
path: 'My-New-Page.md'
21
}
22
```
23
24
The title will be automatically derived from the markdown file. If you wish to override this title, use:
25
26
```ruby
27
{
28
path: 'My-New-Page.md',
29
title: 'Custom title for navigation link'
30
}
31
```
32
33
You can also programmatically change titles with procs, i.e. using the `without_prefix` helper to generate
34
a title from the filename with a being prefix removed:
35
36
```ruby
37
{
38
nav_order: 7,
39
path: 'Metasploit-Guide-PostgreSQL.md',
40
title: without_prefix('Metasploit Guide ')
41
}
42
```
43
44
2) If you are embedding existing Metasploit module documentation into the wiki site, use relative paths:
45
46
```ruby
47
{
48
path: '../../documentation/modules/auxiliary/admin/kerberos/forge_ticket.md',
49
title: 'Silver and golden tickets'
50
}
51
```
52
53
These module docs will appear in msfconsole as well as the generated docs site. Note that msfconsole does not
54
support Mermaid syntax - used for generating sequence diagrams/charts/etc on the rendered docs site.
55
56
=end
57
NAVIGATION_CONFIG = [
58
{
59
path: 'Home.md',
60
nav_order: 1
61
},
62
{
63
path: 'Code-Of-Conduct.md',
64
nav_order: 2
65
},
66
{
67
path: 'Modules.md',
68
title: 'Modules',
69
nav_order: 3
70
},
71
{
72
title: 'Pentesting',
73
folder: 'pentesting',
74
nav_order: 4,
75
children: [
76
{
77
path: 'Metasploit-Guide-Setting-Module-Options.md',
78
nav_order: 1,
79
title: without_prefix('Metasploit Guide ')
80
},
81
{
82
path: 'Metasploit-Guide-Upgrading-Shells-to-Meterpreter.md',
83
nav_order: 2,
84
title: without_prefix('Metasploit Guide ')
85
},
86
{
87
nav_order: 3,
88
path: 'Metasploit-Guide-Post-Gather-Modules.md',
89
title: without_prefix('Metasploit Guide ')
90
},
91
{
92
nav_order: 5,
93
path: 'Metasploit-Guide-Kubernetes.md',
94
title: without_prefix('Metasploit Guide ')
95
},
96
{
97
nav_order: 5,
98
path: 'Metasploit-Guide-HTTP.md',
99
title: 'HTTP + HTTPS'
100
},
101
{
102
nav_order: 6,
103
path: 'Metasploit-Guide-MySQL.md',
104
title: without_prefix('Metasploit Guide ')
105
},
106
{
107
nav_order: 7,
108
path: 'Metasploit-Guide-PostgreSQL.md',
109
title: without_prefix('Metasploit Guide ')
110
},
111
{
112
nav_order: 8,
113
path: 'Metasploit-Guide-SMB.md',
114
title: without_prefix('Metasploit Guide ')
115
},
116
{
117
nav_order: 9,
118
path: 'Metasploit-Guide-SSH.md',
119
title: without_prefix('Metasploit Guide ')
120
},
121
{
122
nav_order: 10,
123
path: 'Metasploit-Guide-WinRM.md',
124
title: without_prefix('Metasploit Guide ')
125
},
126
127
{
128
nav_order: 11,
129
path: 'Metasploit-Guide-MSSQL.md',
130
title: without_prefix('Metasploit Guide ')
131
},
132
{
133
nav_order: 12,
134
path: 'Metasploit-Guide-LDAP.md',
135
title: without_prefix('Metasploit Guide ')
136
},
137
138
{
139
title: 'Active Directory',
140
folder: 'active-directory',
141
nav_order: 13,
142
children: [
143
{
144
title: 'Kerberos',
145
folder: 'kerberos',
146
children: [
147
{
148
path: 'kerberos/overview.md',
149
title: 'Overview',
150
nav_order: 0
151
},
152
{
153
path: 'kerberos/service_authentication.md',
154
title: 'Authenticating to SMB/WinRM/etc',
155
nav_order: 1
156
},
157
{
158
path: '../../documentation/modules/auxiliary/scanner/kerberos/kerberos_login.md',
159
title: 'Kerberos login enumeration and bruteforcing',
160
nav_order: 2
161
},
162
{
163
path: '../../documentation/modules/auxiliary/admin/kerberos/get_ticket.md',
164
title: 'Get Ticket granting tickets and service tickets',
165
nav_order: 3,
166
},
167
{
168
path: '../../documentation/modules/auxiliary/admin/kerberos/forge_ticket.md',
169
title: 'Forging tickets',
170
},
171
{
172
path: '../../documentation/modules/auxiliary/admin/kerberos/inspect_ticket.md',
173
title: 'Inspecting tickets',
174
},
175
{
176
path: 'kerberos/kerberoasting.md',
177
title: 'Kerberoasting',
178
},
179
{
180
path: '../../documentation/modules/auxiliary/admin/kerberos/keytab.md',
181
title: 'Keytab support and decrypting wireshark traffic'
182
},
183
{
184
path: '../../documentation/modules/auxiliary/admin/kerberos/ticket_converter.md',
185
title: 'Converting kirbi and ccache files'
186
},
187
{
188
path: '../../documentation/modules/auxiliary/admin/ldap/rbcd.md',
189
title: 'Resource-based constrained delegation (RBCD)'
190
},
191
{
192
path: 'kerberos/unconstrained_delegation.md',
193
title: 'Unconstrained delegation'
194
}
195
]
196
},
197
{
198
title: 'AD CS',
199
folder: 'ad-certificates',
200
children: [
201
{
202
path: 'ad-certificates/overview.md',
203
title: 'Overview',
204
nav_order: 0
205
},
206
{
207
path: 'ad-certificates/Attacking-AD-CS-ESC-Vulnerabilities.md',
208
title: 'Attacking AD CS ESC Vulnerabilities Using Metasploit',
209
nav_order: 1
210
},
211
{
212
path: '../../documentation/modules/auxiliary/gather/ldap_esc_vulnerable_cert_finder.md',
213
title: 'Vulnerable cert finder',
214
nav_order: 2
215
},
216
{
217
path: '../../documentation/modules/auxiliary/admin/ldap/ad_cs_cert_template.md',
218
title: 'Manage certificate templates'
219
},
220
{
221
path: '../../documentation/modules/auxiliary/admin/dcerpc/icpr_cert.md',
222
title: 'Request certificates'
223
}
224
]
225
}
226
]
227
},
228
]
229
},
230
{
231
title: 'Using Metasploit',
232
folder: 'using-metasploit',
233
nav_order: 5,
234
children: [
235
{
236
title: 'Getting Started',
237
folder: 'getting-started',
238
nav_order: 1,
239
children: [
240
{
241
path: 'Nightly-Installers.md',
242
nav_order: 1
243
},
244
{
245
path: 'Reporting-a-Bug.md',
246
nav_order: 4
247
},
248
]
249
},
250
{
251
title: 'Basics',
252
folder: 'basics',
253
nav_order: 2,
254
children: [
255
{
256
path: 'Using-Metasploit.md',
257
title: 'Running modules',
258
nav_order: 2
259
},
260
{
261
path: 'How-to-use-a-Metasploit-module-appropriately.md',
262
nav_order: 3
263
},
264
{
265
path: 'How-payloads-work.md',
266
nav_order: 4
267
},
268
{
269
path: 'Module-Documentation.md',
270
nav_order: 5
271
},
272
{
273
path: 'How-to-use-a-reverse-shell-in-Metasploit.md',
274
nav_order: 6
275
},
276
{
277
path: 'How-to-use-msfvenom.md',
278
nav_order: 7
279
},
280
{
281
path: 'Managing-Sessions.md',
282
nav_order: 8
283
}
284
]
285
},
286
{
287
title: 'Intermediate',
288
folder: 'intermediate',
289
nav_order: 3,
290
children: [
291
{
292
path: 'Evading-Anti-Virus.md'
293
},
294
{
295
path: 'Payload-UUID.md'
296
},
297
{
298
path: 'Running-Private-Modules.md'
299
},
300
{
301
path: 'Exploit-Ranking.md'
302
},
303
{
304
path: 'Pivoting-in-Metasploit.md'
305
},
306
{
307
path: 'Hashes-and-Password-Cracking.md'
308
},
309
{
310
old_wiki_path: 'msfdb:-Database-Features-&-How-to-Set-up-a-Database-for-Metasploit.md',
311
path: 'Metasploit-Database-Support.md',
312
title: 'Database Support'
313
},
314
{
315
path: 'How-To-Use-Plugins.md',
316
title: 'Metasploit Plugins',
317
}
318
]
319
},
320
{
321
title: 'Advanced',
322
folder: 'advanced',
323
nav_order: 4,
324
children: [
325
{
326
path: 'Metasploit-Web-Service.md'
327
},
328
{
329
path: 'How-to-Configure-DNS.md'
330
},
331
{
332
title: 'Meterpreter',
333
folder: 'meterpreter',
334
children: [
335
{
336
path: 'Meterpreter.md',
337
title: 'Overview',
338
nav_order: 1
339
},
340
{
341
path: 'Meterpreter-Transport-Control.md',
342
title: without_prefix('Meterpreter ')
343
},
344
{
345
path: 'Meterpreter-Unicode-Support.md',
346
title: without_prefix('Meterpreter ')
347
},
348
{
349
path: 'Meterpreter-Paranoid-Mode.md',
350
title: without_prefix('Meterpreter ')
351
},
352
{
353
path: 'The-ins-and-outs-of-HTTP-and-HTTPS-communications-in-Meterpreter-and-Metasploit-Stagers.md'
354
},
355
{
356
path: 'Meterpreter-Timeout-Control.md',
357
title: without_prefix('Meterpreter ')
358
},
359
{
360
path: 'Meterpreter-Wishlist.md',
361
title: without_prefix('Meterpreter ')
362
},
363
{
364
path: 'Meterpreter-Sleep-Control.md',
365
title: without_prefix('Meterpreter ')
366
},
367
{
368
path: 'Meterpreter-Configuration.md',
369
title: without_prefix('Meterpreter ')
370
},
371
{
372
path: 'Meterpreter-Reliable-Network-Communication.md',
373
title: without_prefix('Meterpreter ')
374
},
375
{
376
path: 'Debugging-Dead-Meterpreter-Sessions.md'
377
},
378
{
379
path: 'Meterpreter-HTTP-Communication.md',
380
title: without_prefix('Meterpreter ')
381
},
382
{
383
path: 'Meterpreter-Stageless-Mode.md',
384
title: without_prefix('Meterpreter ')
385
},
386
{
387
path: 'Meterpreter-Debugging-Meterpreter-Sessions.md',
388
title: without_prefix('Meterpreter ')
389
},
390
{
391
path: 'Meterpreter-ExecuteBof-Command.md',
392
title: without_prefix('Meterpreter ')
393
},
394
{
395
path: 'Meterpreter-Reg-Command.md',
396
title: without_prefix('Meterpreter ')
397
},
398
{
399
path: 'How-to-get-started-with-writing-a-Meterpreter-script.md'
400
},
401
{
402
path: 'Powershell-Extension.md'
403
},
404
{
405
path: 'Python-Extension.md'
406
},
407
]
408
},
409
{
410
title: 'RPC',
411
folder: 'RPC',
412
children: [
413
{
414
path: 'How-to-use-Metasploit-Messagepack-RPC.md'
415
},
416
{
417
path: 'How-to-use-Metasploit-JSON-RPC.md'
418
},
419
]
420
},
421
]
422
},
423
{
424
title: 'Other',
425
folder: 'other',
426
children: [
427
{
428
title: 'Oracle Support',
429
folder: 'oracle-support',
430
children: [
431
{
432
path: 'Oracle-Usage.md'
433
},
434
{
435
path: 'How-to-get-Oracle-Support-working-with-Kali-Linux.md'
436
},
437
]
438
},
439
{
440
path: 'Information-About-Unmet-Browser-Exploit-Requirements.md'
441
},
442
{
443
path: 'Why-CVE-is-not-available.md'
444
},
445
{
446
path: 'How-to-use-the-Favorite-command.md'
447
},
448
{
449
path: 'How-to-use-Metasploit-with-ngrok.md'
450
},
451
]
452
},
453
]
454
},
455
{
456
title: 'Development',
457
folder: 'development',
458
nav_order: 6,
459
children: [
460
{
461
title: 'Get Started ',
462
folder: 'get-started',
463
nav_order: 1,
464
children: [
465
{
466
path: 'Contributing-to-Metasploit.md',
467
nav_order: 1
468
},
469
{
470
path: 'Creating-Your-First-PR.md',
471
nav_order: 2
472
},
473
{
474
path: 'dev/Setting-Up-a-Metasploit-Development-Environment.md',
475
nav_order: 3
476
},
477
{
478
path: 'Sanitizing-PCAPs.md',
479
nav_order: 4
480
},
481
{
482
old_wiki_path: "Navigating-and-Understanding-Metasploit's-Codebase.md",
483
path: 'Navigating-and-Understanding-Metasploits-Codebase.md',
484
title: 'Navigating the codebase'
485
},
486
{
487
title: 'Git',
488
folder: 'git',
489
children: [
490
{
491
path: 'Keeping-in-sync-with-rapid7-master.md'
492
},
493
{
494
path: 'git/Git-cheatsheet.md'
495
},
496
{
497
path: 'git/Using-Git.md'
498
},
499
{
500
path: 'git/Git-Reference-Sites.md'
501
},
502
{
503
path: 'Remote-Branch-Pruning.md'
504
},
505
]
506
},
507
]
508
},
509
{
510
title: 'Developing Modules',
511
folder: 'developing-modules',
512
nav_order: 2,
513
children: [
514
{
515
title: 'Guides',
516
folder: 'guides',
517
nav_order: 2,
518
children: [
519
{
520
path: 'How-to-get-started-with-writing-a-post-module.md',
521
title: 'Writing a post module'
522
},
523
{
524
path: 'Get-Started-Writing-an-Exploit.md',
525
title: 'Writing an exploit'
526
},
527
{
528
path: 'How-to-write-a-browser-exploit-using-HttpServer.md',
529
title: 'Writing a browser exploit'
530
},
531
{
532
title: 'Scanners',
533
folder: 'scanners',
534
nav_order: 2,
535
children: [
536
{
537
path: 'How-to-write-a-HTTP-LoginScanner-Module.md',
538
title: 'Writing a HTTP LoginScanner'
539
},
540
{
541
path: 'Creating-Metasploit-Framework-LoginScanners.md',
542
title: 'Writing an FTP LoginScanner'
543
},
544
]
545
},
546
{
547
path: 'How-to-get-started-with-writing-an-auxiliary-module.md',
548
title: 'Writing an auxiliary module'
549
},
550
{
551
path: 'How-to-use-command-stagers.md'
552
},
553
{
554
path: 'How-to-use-fetch-payloads.md',
555
title: 'How to use Fetch Payloads'
556
},
557
{
558
old_wiki_path: 'How-to-write-a-check()-method.md',
559
path: 'How-to-write-a-check-method.md'
560
},
561
{
562
path: 'How-to-check-Microsoft-patch-levels-for-your-exploit.md'
563
},
564
{
565
path: "How-to-write-a-cmd-injection-module.md"
566
}
567
]
568
},
569
{
570
title: 'Libraries',
571
folder: 'libraries',
572
children: [
573
{
574
path: 'API.md',
575
nav_order: 0
576
},
577
{
578
title: 'Compiling C',
579
folder: 'c',
580
children: [
581
{
582
path: 'How-to-use-Metasploit-Framework-Compiler-Windows-to-compile-C-code.md',
583
title: 'Overview',
584
nav_order: 1
585
},
586
{
587
path: 'How-to-XOR-with-Metasploit-Framework-Compiler.md',
588
title: 'XOR Support'
589
},
590
{
591
path: 'How-to-decode-Base64-with-Metasploit-Framework-Compiler.md',
592
title: 'Base64 Support'
593
},
594
{
595
path: 'How-to-decrypt-RC4-with-Metasploit-Framework-Compiler.md',
596
title: 'RC4 Support'
597
},
598
]
599
},
600
{
601
path: 'How-to-log-in-Metasploit.md',
602
title: 'Logging'
603
},
604
{
605
path: 'How-to-use-Railgun-for-Windows-post-exploitation.md',
606
title: 'Railgun'
607
},
608
{
609
old_wiki_path: 'How-to-zip-files-with-Msf-Util-EXE.to_zip.md',
610
path: 'How-to-zip-files-with-Msf-Util-EXE-to_zip.md',
611
title: 'Zip'
612
},
613
{
614
old_wiki_path: 'Handling-Module-Failures-with-`fail_with`.md',
615
path: 'Handling-Module-Failures-with-fail_with.md',
616
title: 'Fail_with'
617
},
618
{
619
path: 'How-to-use-Msf-Auxiliary-AuthBrute-to-write-a-bruteforcer.md',
620
title: 'AuthBrute'
621
},
622
{
623
path: 'How-to-Use-the-FILEFORMAT-mixin-to-create-a-file-format-exploit.md',
624
title: 'Fileformat'
625
},
626
{
627
old_wiki_path: 'SQL-Injection-(SQLi)-Libraries.md',
628
path: 'SQL-Injection-Libraries.md',
629
title: 'SQL Injection'
630
},
631
{
632
path: 'How-to-use-Powershell-in-an-exploit.md',
633
title: 'Powershell'
634
},
635
{
636
path: 'How-to-use-the-Seh-mixin-to-exploit-an-exception-handler.md',
637
title: 'SEH Exploitation'
638
},
639
{
640
path: 'How-to-use-PhpEXE-to-exploit-an-arbitrary-file-upload-bug.md',
641
title: 'PhpExe'
642
},
643
{
644
path: 'How-to-use-the-Git-mixin-to-write-an-exploit-module.md',
645
title: 'Git Mixin'
646
},
647
{
648
title: 'HTTP',
649
folder: 'http',
650
children: [
651
{
652
path: 'How-to-send-an-HTTP-request-using-Rex-Proto-Http-Client.md'
653
},
654
{
655
path: 'How-to-parse-an-HTTP-response.md'
656
},
657
{
658
path: 'How-to-write-a-module-using-HttpServer-and-HttpClient.md'
659
},
660
{
661
path: 'How-to-Send-an-HTTP-Request-Using-HttpClient.md'
662
},
663
{
664
path: 'How-to-write-a-browser-exploit-using-BrowserExploitServer.md',
665
title: 'BrowserExploitServer'
666
},
667
]
668
},
669
{
670
title: 'Deserialization',
671
folder: 'deserialization',
672
children: [
673
{
674
path: 'Dot-Net-Deserialization.md'
675
},
676
{
677
old_wiki_path: 'Generating-`ysoserial`-Java-serialized-objects.md',
678
path: 'Generating-ysoserial-Java-serialized-objects.md',
679
title: 'Java Deserialization'
680
}
681
]
682
},
683
{
684
title: 'Obfuscation',
685
folder: 'obfuscation',
686
children: [
687
{
688
path: 'How-to-obfuscate-JavaScript-in-Metasploit.md',
689
title: 'JavaScript Obfuscation'
690
},
691
{
692
path: 'How-to-use-Metasploit-Framework-Obfuscation-CRandomizer.md',
693
title: 'C Obfuscation'
694
},
695
]
696
},
697
{
698
path: 'How-to-use-the-Msf-Exploit-Remote-Tcp-mixin.md',
699
title: 'TCP'
700
},
701
{
702
path: 'How-to-do-reporting-or-store-data-in-module-development.md',
703
title: 'Reporting and Storing Data'
704
},
705
{
706
path: 'How-to-use-WbemExec-for-a-write-privilege-attack-on-Windows.md',
707
title: 'WbemExec'
708
},
709
{
710
title: 'SMB Library',
711
folder: 'smb_library',
712
children: [
713
{
714
path: 'What-my-Rex-Proto-SMB-Error-means.md'
715
},
716
{
717
path: 'Guidelines-for-Writing-Modules-with-SMB.md'
718
},
719
]
720
},
721
{
722
path: 'Using-ReflectiveDLL-Injection.md',
723
title: 'ReflectiveDLL Injection'
724
},
725
{
726
path: 'How-to-cleanup-after-module-execution.md',
727
title: 'Cleanup'
728
},
729
]
730
},
731
{
732
title: 'External Modules',
733
folder: 'external-modules',
734
nav_order: 3,
735
children: [
736
{
737
path: 'Writing-External-Metasploit-Modules.md',
738
title: 'Overview',
739
nav_order: 1
740
},
741
{
742
path: 'Writing-External-Python-Modules.md',
743
title: 'Writing Python Modules'
744
},
745
{
746
path: 'Writing-External-GoLang-Modules.md',
747
title: 'Writing GoLang Modules'
748
},
749
]
750
},
751
{
752
title: 'Module metadata',
753
folder: 'module-metadata',
754
nav_order: 3,
755
children: [
756
{
757
path: 'How-to-use-datastore-options.md'
758
},
759
{
760
path: 'Module-Reference-Identifiers.md'
761
},
762
{
763
old_wiki_path: 'Definition-of-Module-Reliability,-Side-Effects,-and-Stability.md',
764
path: 'Definition-of-Module-Reliability-Side-Effects-and-Stability.md'
765
},
766
]
767
}
768
]
769
},
770
{
771
title: 'Maintainers',
772
folder: 'maintainers',
773
children: [
774
{
775
title: 'Process',
776
folder: 'process',
777
children: [
778
{
779
path: 'Guidelines-for-Accepting-Modules-and-Enhancements.md'
780
},
781
{
782
path: 'How-to-deprecate-a-Metasploit-module.md'
783
},
784
{
785
path: 'Landing-Pull-Requests.md'
786
},
787
{
788
path: 'Assigning-Labels.md'
789
},
790
{
791
path: 'Adding-Release-Notes-to-PRs.md',
792
title: 'Release Notes'
793
},
794
{
795
path: 'Rolling-back-merges.md'
796
},
797
{
798
path: 'Unstable-Modules.md'
799
},
800
]
801
},
802
{
803
path: 'Committer-Rights.md'
804
},
805
{
806
title: 'Ruby Gems',
807
folder: 'ruby-gems',
808
children: [
809
{
810
path: 'How-to-add-and-update-gems-in-metasploit-framework.md',
811
title: 'Adding and Updating'
812
},
813
{
814
old_wiki_path: 'Testing-Rex-and-other-Gem-File-Updates-With-Gemfile.local-and-Gemfile.local.example.md',
815
path: 'Using-local-gems.md',
816
title: 'Using local Gems'
817
},
818
{
819
path: 'Merging-Metasploit-Payload-Gem-Updates.md'
820
},
821
]
822
},
823
{
824
path: 'Committer-Keys.md'
825
},
826
{
827
path: 'Metasploit-Loginpalooza.md'
828
},
829
{
830
path: 'Metasploit-Hackathons.md'
831
},
832
{
833
path: 'Downloads-by-Version.md'
834
}
835
]
836
},
837
{
838
title: 'Quality',
839
folder: 'quality',
840
children: [
841
{
842
path: 'Style-Tips.md'
843
},
844
{
845
path: 'Msftidy.md'
846
},
847
{
848
path: 'Using-Rubocop.md'
849
},
850
{
851
path: 'Common-Metasploit-Module-Coding-Mistakes.md'
852
},
853
{
854
path: 'Writing-Module-Documentation.md'
855
},
856
{
857
path: 'Loading-Test-Modules.md'
858
},
859
{
860
path: 'Measuring-Metasploit-Performance.md'
861
}
862
]
863
},
864
{
865
title: 'Google Summer of Code',
866
folder: 'google-summer-of-code',
867
children: [
868
{
869
path: 'How-to-Apply-to-GSoC.md'
870
},
871
{
872
path: 'GSoC-2017-Student-Proposal.md',
873
title: without_prefix('GSoC')
874
},
875
{
876
path: 'GSoC-2017-Project-Ideas.md',
877
title: without_prefix('GSoC')
878
},
879
{
880
path: 'GSoC-2018-Project-Ideas.md',
881
title: without_prefix('GSoC')
882
},
883
{
884
path: 'GSoC-2017-Mentor-Organization-Application.md',
885
title: without_prefix('GSoC')
886
},
887
{
888
path: 'GSoC-2019-Project-Ideas.md',
889
title: without_prefix('GSoC')
890
},
891
{
892
path: 'GSoC-2020-Project-Ideas.md',
893
title: without_prefix('GSoC')
894
},
895
{
896
path: 'GSoC-2021-Project-Ideas.md',
897
title: without_prefix('GSoC')
898
},
899
{
900
path: 'GSoC-2022-Project-Ideas.md',
901
title: without_prefix('GSoC')
902
},
903
{
904
path: 'GSoC-2023-Project-Ideas.md',
905
title: without_prefix('GSoC')
906
},
907
]
908
},
909
{
910
title: 'Proposals',
911
folder: 'propsals',
912
children: [
913
{
914
path: 'Bundled-Modules-Proposal.md'
915
},
916
{
917
path: 'MSF6-Feature-Proposals.md'
918
},
919
{
920
old_wiki_path: 'RFC---Metasploit-URL-support.md',
921
path: 'Metasploit-URL-support-proposal.md'
922
},
923
{
924
path: 'Uberhandler.md'
925
},
926
{
927
path: 'Work-needed-to-allow-msfdb-to-use-postgresql-common.md'
928
},
929
{
930
path: 'Payload-Rename-Justification.md'
931
},
932
{
933
path: 'Java-Meterpreter-Feature-Parity-Proposal.md'
934
}
935
]
936
},
937
{
938
title: 'Roadmap',
939
folder: 'roadmap',
940
children: [
941
{
942
path: 'Metasploit-Framework-Wish-List.md'
943
},
944
{
945
path: 'Metasploit-5.0-Release-Notes.md',
946
new_base_name: 'Metasploit-5-Release-Notes.md',
947
title: 'Metasploit Framework 5.0 Release Notes'
948
},
949
{
950
path: '2017-Roadmap-Review.md'
951
},
952
{
953
path: 'Metasploit-6.0-Development-Notes.md',
954
new_base_name: 'Metasploit-6-Release-Notes.md',
955
title: 'Metasploit Framework 6.0 Release Notes'
956
},
957
{
958
path: '2017-Roadmap.md'
959
},
960
{
961
path: 'Metasploit-Breaking-Changes.md'
962
},
963
{
964
old_wiki_path: 'Metasploit-Data-Service-Enhancements-(Goliath).md',
965
path: 'Metasploit-Data-Service-Enhancements-Goliath.md',
966
title: 'Metasploit Data Service'
967
},
968
]
969
},
970
]
971
},
972
{
973
path: 'Contact.md',
974
nav_order: 7
975
},
976
].freeze
977
978