lacewing 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,119 @@
1
+ require 'lacewing/core'
2
+
3
+ module Lacewing
4
+ class Exploits
5
+
6
+ def self.lfi
7
+ puts 'LFI: Local File Inclusion'.bold.green
8
+ puts Lacewing::PROMPT + 'Here are a few articles on how to test LFI:'
9
+ places = ['https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion', 'https://www.offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/']
10
+ places.each { |i| puts "\t#{i}"}
11
+
12
+ puts Lacewing::PROMPT + 'Here are some common payloads:'
13
+ payloads = %w[../../../../etc/passwd ../../../../etc/shadow ../../../../var/mail/root]
14
+ payloads.each { |i| puts "\t#{i}" }
15
+
16
+ puts 'Press any key to continue... '.bold.green
17
+ return if STDIN.getch
18
+ end
19
+
20
+ def self.rce
21
+ puts 'RCE: Remote Code Execution'.bold.green
22
+ puts Lacewing::PROMPT + 'There\'s a lot of different kinds of RCE, so here are some examples:'
23
+ examples = %w[https://thehackernews.com/2018/04/windows-patch-updates.html https://www.symantec.com/security_response/vulnerability.jsp?bid=102375 https://en.wikipedia.org/wiki/EternalBlue]
24
+ examples.each { |i| puts "\t#{i}" }
25
+
26
+ puts Lacewing::PROMPT + 'Here are some tools to use:'
27
+ tools = ['Metasploit Framework - metasploit.com', 'Golismero - golismero-project.com/']
28
+ tools.each { |i| puts "\t#{i}"}
29
+
30
+ puts 'Press any key to continue... '.bold.green
31
+ return if STDIN.getch
32
+ end
33
+
34
+ def self.xss
35
+ puts 'XSS: Cross-Site Scripting'.bold.green
36
+ xss_types = ['Reflected - Specially crafted input returned back to user', 'Stored - Permanent Injection', 'DOM-based - XSS artifact as an HTML DOM']
37
+ type = $prompt.select('There are different kinds of XSS attacks. Which one do you want?', xss_types)
38
+ case type
39
+ when xss_types[0]
40
+ ref = [
41
+ 'https://www.owasp.org/index.php/Testing_for_Reflected_Cross_site_scripting_(OWASP-DV-001)',
42
+ 'https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet',
43
+ 'https://security.stackexchange.com/questions/65142/what-is-reflected-xss'
44
+ ]
45
+ puts Lacewing::PROMPT + 'Here are some references to Reflected XSS:'
46
+ ref.each { |i| puts "\t#{i}" }
47
+ when xss_types[1]
48
+ ref = [
49
+ 'https://www.incapsula.com/web-application-security/cross-site-scripting-xss-attacks.html',
50
+ 'https://www.hackingloops.com/what-is-stored-cross-site-scripting-or-stored-xss/',
51
+ 'https://www.acunetix.com/websitesecurity/xss/'
52
+ ]
53
+ puts Lacewing::PROMPT + 'Here are some references for Stored XSS'
54
+ ref.each { |i| puts "\t#{i}" }
55
+ when xss_types[2]
56
+ ref = [
57
+ 'https://www.owasp.org/index.php/DOM_Based_XSS',
58
+ 'https://www.netsparker.com/blog/web-security/dom-based-cross-site-scripting-vulnerability/',
59
+ 'https://en.wikipedia.org/wiki/Cross-site_scripting#Server-side_versus_DOM-based_vulnerabilities'
60
+ ]
61
+ puts Lacewing::PROMPT + 'Here are some references for DOM-based XSS'
62
+ ref.each { |i| puts "\t#{i}" }
63
+ end
64
+ puts 'Press any key to continue... '.bold.green
65
+ return if STDIN.getch
66
+ end
67
+
68
+ def self.code_injection
69
+ puts 'Code Injection - An attack to inject code into a vulnerable computer program to change the course of execution.'.bold.green
70
+ puts Lacewing::PROMPT + 'Here are some references for different kinds of code injection vulnerabilities'
71
+ ref = [
72
+ 'Shell Injection - https://en.wikipedia.org/wiki/Code_injection#Shell_injection',
73
+ 'HTML Injection - https://en.wikipedia.org/wiki/Code_injection#HTML_script_injection',
74
+ 'https://en.wikipedia.org/wiki/Code_injection#Object_injection'
75
+ ]
76
+ ref.each { |i| puts "\t#{i}" }
77
+
78
+ puts 'Press any key to continue...'.bold.green
79
+ return if STDIN.getch
80
+ end
81
+
82
+ def self.reverse_shell
83
+ puts 'Reverse Shell - The act of redirecting the input and output of a shell to a service so that it can be remotely accessed'.bold.green
84
+ puts Lacewing::PROMPT + "If you've found some sort of code injection vulnerability, you can use a reverse shell to get full access"
85
+ puts Lacewing::PROMPT + 'Here are a few great tools to exploit a reverse shell:'
86
+ tools = [
87
+ 'Shell.now - https://shell.now.sh/',
88
+ 'Metasploit - https://metasploit.com',
89
+ 'Turtle - https://github.com/buckyroberts/Turtle'
90
+ ]
91
+ tools.each { |i| puts "\t#{i}" }
92
+ puts 'Press any key to continue...'.bold.green
93
+ return if STDIN.getch
94
+ end
95
+
96
+ def self.sqli
97
+ puts 'SQL Injection - An attack in which nefarious SQL statements are inserted into an entry field for execution'.bold.green
98
+ puts Lacewing::PROMPT + 'Here are some tools for exploiting SQL injections:'
99
+ tools = [
100
+ 'SQLMap - https://github.com/sqlmapproject/sqlmap',
101
+ 'BBQSQL - https://github.com/Neohapsis/bbqsql/',
102
+ 'SQLNinja - https://github.com/xxgrunge/sqlninja'
103
+ ]
104
+ tools.each { |i| puts "\t#{i}" }
105
+
106
+ puts Lacewing::PROMPT + 'Here are some articles on SQL Injection:'
107
+ ref = [
108
+ 'https://en.wikipedia.org/wiki/SQL_injection',
109
+ 'https://technet.microsoft.com/en-us/library/ms161953(v=sql.105).aspx',
110
+ 'https://www.veracode.com/security/sql-injection'
111
+ ]
112
+ ref.each { |i| puts "\t#{i}" }
113
+
114
+ puts 'Press any key to continue...'.bold.green
115
+ return if STDIN.getch
116
+ end
117
+
118
+ end
119
+ end
@@ -0,0 +1,32 @@
1
+ module Lacewing
2
+ class Scans
3
+ def self.subdomains
4
+ return unless $prompt.yes?(Lacewing::PROMPT + 'Do you want to find subdomains?')
5
+ puts Lacewing::PROMPT + "Here are a few places you can get #{'subdomains'.bold}:"
6
+ places = ["https://www.virustotal.com/#/domain/#{$target.gsub('http://', '')}", 'https://dnsdumpster.com/', 'https://pentest-tools.com/information-gathering/find-subdomains-of-domain']
7
+
8
+ places.each { |i| puts "\t#{i}" }
9
+
10
+ if $prompt.yes?(Lacewing::PROMPT + 'Would you like to open one of these in a browser?')
11
+ url = $prompt.select('Which one?', places)
12
+ system("open \"#{url}\"")
13
+ end
14
+ end
15
+
16
+ def self.nmap
17
+ puts Lacewing::PROMPT + 'Here are some nmap scans to get info on ' + $target
18
+ scans = ["nmap -p 1-65535 -sV -sS -T4 \"#{$target}\"", "nmap -v -sS -A -T4 \"#{$target}\"", "nmap -v -Pn -sS -sV --version-light \"#{$target}\""]
19
+ scans.each { |i| puts "\t#{i}" }
20
+ if $prompt.yes?(Lacewing::PROMPT + 'Would you like to execute one of these? (nmap required)')
21
+ if `which nmap`.empty?
22
+ puts Lacewing::PROMPT + 'nmap is not installed. Skipping...'.red
23
+ else
24
+ cmd = $prompt.select('Which one?', scans)
25
+ system(cmd)
26
+ end
27
+ end
28
+ end
29
+
30
+ end # Scans
31
+ end # Lacewing
32
+
@@ -0,0 +1,3 @@
1
+ module Lacewing
2
+ VERSION = "0.1.0"
3
+ end
data/tools/.keep ADDED
File without changes
metadata ADDED
@@ -0,0 +1,203 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lacewing
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - cbrnrd
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-04-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: trollop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: tty-prompt
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.16.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.16.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: colorize
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.8.1
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.8.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: rex-text
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.18
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.18
111
+ - !ruby/object:Gem::Dependency
112
+ name: rex-socket
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.1.14
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 0.1.14
125
+ - !ruby/object:Gem::Dependency
126
+ name: http
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.0'
139
+ description: Lacewing is a tool to assist you in your bug bounty adventures.
140
+ email:
141
+ - cbawsome77@gmail.com
142
+ executables:
143
+ - lacewing
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - ".gitignore"
148
+ - ".idea/.rakeTasks"
149
+ - ".idea/codeStyles/Project.xml"
150
+ - ".idea/dbnavigator.xml"
151
+ - ".idea/lacewing.iml"
152
+ - ".idea/misc.xml"
153
+ - ".idea/modules.xml"
154
+ - ".idea/vcs.xml"
155
+ - ".idea/workspace.xml"
156
+ - ".rspec"
157
+ - ".rubocop.yml"
158
+ - ".travis.yml"
159
+ - CODE_OF_CONDUCT.md
160
+ - Gemfile
161
+ - Gemfile.lock
162
+ - LICENSE.txt
163
+ - README.md
164
+ - Rakefile
165
+ - bin/console
166
+ - bin/setup
167
+ - exe/lacewing
168
+ - img/logo.png
169
+ - img/text-gradient.png
170
+ - lacewing.gemspec
171
+ - lib/lacewing.rb
172
+ - lib/lacewing/cli.rb
173
+ - lib/lacewing/constants.rb
174
+ - lib/lacewing/core.rb
175
+ - lib/lacewing/exploits.rb
176
+ - lib/lacewing/scans.rb
177
+ - lib/lacewing/version.rb
178
+ - tools/.keep
179
+ homepage: https://github.com/cbrnrd/lacewing
180
+ licenses:
181
+ - MIT
182
+ metadata: {}
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - lib
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ requirements: []
198
+ rubyforge_project:
199
+ rubygems_version: 2.5.2
200
+ signing_key:
201
+ specification_version: 4
202
+ summary: "\U0001F997 Your neighborhood bug bounty assistant"
203
+ test_files: []