Skip to content

Commit fc43974

Browse files
committed
Merge branch 'main' into add_notes_edit
2 parents 4c63b6d + de17c90 commit fc43974

File tree

87 files changed

+9218
-522
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+9218
-522
lines changed

.github/workflows/ruby.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ jobs:
99
fail-fast: false
1010
matrix:
1111
ruby:
12-
- '3.0'
1312
- '3.1'
1413
- '3.2'
1514
- '3.3'
15+
- '3.4'
1616
name: Ruby ${{ matrix.ruby }}
1717
steps:
1818
- uses: actions/checkout@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/Gemfile.lock
22
/coverage
33
/doc
4+
/pkg
45
/log
56
/man/*.1
67
/tmp

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ruby-3.1
1+
ruby-3.3

ChangeLog.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,38 @@
1-
### 0.1.0 / 2023-XX-XX
1+
### 0.1.0 / 2024-07-22
22

33
* Initial release:
4+
* Provides a web interface to explore and search the
5+
[ronin database][ronin-db].
6+
* Allows managing [ronin-repos] from the web interface.
7+
* Allows listing and building the built-in or installed 3rd-party
8+
[payloads][ronin-payloads].
9+
* Allows listing installed 3rd-party [exploits][ronin-exploits].
10+
* Supports automating [nmap] and [masscan] scans and importing their results
11+
into the [ronin database][ronin-db].
12+
* Supports automating [spidering websites][ronin-web-spider] and importing all
13+
visited URLs into the [ronin database][ronin-db].
14+
* Supports performing recon using [ronin-recon] and importing all discovered
15+
hostnames, IPs, and URLs into [ronin database][ronin-db].
16+
* Supports testing URLs for web vulnerabilities using [ronin-vulns].
417

18+
[sqlite]: https://sqlite.org/
19+
[redis]: https://redis.io/
20+
[nmap]: https://nmap.org/
21+
[masscan]: https://github.com/robertdavidgraham/masscan#readme
22+
23+
[Ruby]: https://www.ruby-lang.org/
24+
[dry-types]: https://dry-rb.org/gems/dry-types/
25+
[dry-schema]: https://dry-rb.org/gems/dry-schema/
26+
[dry-validation]: https://dry-rb.org/gems/dry-validation/
27+
28+
[ronin-support]: https://github.com/ronin-rb/ronin-support#readme
29+
[ronin-repos]: https://github.com/ronin-rb/ronin-repos#readme
30+
[ronin-db]: https://github.com/ronin-rb/ronin-db#readme
31+
[ronin-payloads]: https://github.com/ronin-rb/ronin-payloads#readme
32+
[ronin-vulns]: https://github.com/ronin-rb/ronin-vulns#readme
33+
[ronin-exploits]: https://github.com/ronin-rb/ronin-exploits#readme
34+
[ronin-nmap]: https://github.com/ronin-rb/ronin-nmap#readme
35+
[ronin-masscan]: https://github.com/ronin-rb/ronin-masscan#readme
36+
[ronin-web-spider]: https://github.com/ronin-rb/ronin-web-spider#readme
37+
[ronin-recon]: https://github.com/ronin-rb/ronin-recon#readme
38+
[ronin-vulns]: https://github.com/ronin-rb/ronin-vulns#readme

Gemfile

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ source 'https://rubygems.org'
33

44
gemspec
55

6-
gem 'ruby-masscan', '~> 0.3', github: 'postmodern/ruby-masscan',
7-
branch: '0.3.0'
6+
# gem 'ruby-masscan', '~> 0.3', github: 'postmodern/ruby-masscan',
7+
# branch: 'main'
88

99
# NOTE: do not auto-load gems which are meant to be executed at runtime
1010
gem 'puma', require: false
@@ -13,35 +13,40 @@ gem 'sidekiq', require: false
1313
#
1414
# Ronin dependencies
1515
#
16-
gem 'ronin-support', '~> 1.1', github: 'ronin-rb/ronin-support',
17-
branch: '1.1.0'
18-
gem 'ronin-core', '~> 0.2', github: 'ronin-rb/ronin-core',
19-
branch: '0.2.0'
20-
gem 'ronin-db', '~> 0.2', github: 'ronin-rb/ronin-db',
21-
branch: '0.2.0'
16+
gem 'ronin-support', '~> 1.2', github: 'ronin-rb/ronin-support',
17+
branch: '1.2.0'
18+
gem 'ronin-core', '~> 0.3', github: 'ronin-rb/ronin-core',
19+
branch: '0.3.0'
20+
# gem 'ronin-db', '~> 0.2', github: 'ronin-rb/ronin-db',
21+
# branch: 'main'
2222

23-
gem 'ronin-db-activerecord', '~> 0.2', github: 'ronin-rb/ronin-db-activerecord',
24-
branch: '0.2.0'
23+
# gem 'ronin-db-activerecord', '~> 0.2', github: 'ronin-rb/ronin-db-activerecord',
24+
# branch: 'main'
2525

26-
gem 'ronin-payloads', '~> 0.1', github: 'ronin-rb/ronin-payloads'
27-
# gem 'ronin-exploits', '~> 1.0', github: 'ronin-rb/ronin-exploits'
28-
gem 'ronin-vulns', '~> 0.2', github: 'ronin-rb/ronin-vulns',
29-
branch: '0.2.0'
30-
gem 'ronin-web-spider', '~> 0.2', github: 'ronin-rb/ronin-web-spider',
31-
branch: '0.2.0'
32-
gem 'ronin-recon', '~> 0.1', github: 'ronin-rb/ronin-recon'
33-
gem 'ronin-nmap', '~> 0.1', github: 'ronin-rb/ronin-nmap'
34-
gem 'ronin-masscan', '~> 0.1', github: 'ronin-rb/ronin-masscan'
35-
gem 'ronin-repos', '~> 0.2', github: 'ronin-rb/ronin-repos',
26+
gem 'ronin-payloads', '~> 0.3', github: 'ronin-rb/ronin-payloads',
27+
branch: '0.3.0'
28+
gem 'ronin-exploits', '~> 1.2', github: 'ronin-rb/ronin-exploits',
29+
branch: '1.2.0'
30+
gem 'ronin-vulns', '~> 0.3', github: 'ronin-rb/ronin-vulns',
31+
branch: '0.3.0'
32+
# gem 'ronin-web-spider', '~> 0.2', github: 'ronin-rb/ronin-web-spider',
33+
# branch: 'main'
34+
gem 'ronin-recon', '~> 0.2', github: 'ronin-rb/ronin-recon',
3635
branch: '0.2.0'
36+
# gem 'ronin-nmap', '~> 0.1', github: 'ronin-rb/ronin-nmap'
37+
# gem 'ronin-masscan', '~> 0.1', github: 'ronin-rb/ronin-masscan'
38+
# gem 'ronin-repos', '~> 0.2', github: 'ronin-rb/ronin-repos',
39+
# branch: 'main'
3740

3841
group :development do
3942
gem 'rake', require: false
43+
gem 'rack-test', '~> 2.1', require: false
4044

4145
gem 'rubygems-tasks', '~> 0.2'
4246

4347
gem 'rspec', '~> 3.0', require: false
4448
gem 'simplecov', '~> 0.20', require: false
49+
gem 'capybara', '~> 3.40', require: false
4550

4651
gem 'kramdown', '~> 2.0', require: false
4752
gem 'kramdown-man', '~> 1.0', require: false

README.md

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
ronin-app is a small web application that is meant to be ran locally by the
1010
user. It provides a web interface to [ronin-support], [ronin-repos], [ronin-db],
1111
[ronin-payloads], [ronin-exploits], as well as automating
12-
[ronin-nmap], [ronin-masscan], and [ronin-web-spider].
12+
[ronin-nmap], [ronin-masscan], [ronin-web-spider], [ronin-recon], and
13+
[ronin-vulns].
1314

1415
## Features
1516

@@ -22,9 +23,65 @@ user. It provides a web interface to [ronin-support], [ronin-repos], [ronin-db],
2223
into the [ronin database][ronin-db].
2324
* Supports automating [spidering websites][ronin-web-spider] and importing all
2425
visited URLs into the [ronin database][ronin-db].
26+
* Supports performing recon using [ronin-recon] and importing all discovered
27+
hostnames, IPs, and URLs into [ronin database][ronin-db].
28+
* Supports testing URLs for web vulnerabilities using [ronin-vulns].
2529
* Small memory footprint (~184K).
2630
* Fast (~1.251ms response time).
2731

32+
## Screenshots
33+
34+
<table>
35+
<tbody>
36+
<tr>
37+
<td>
38+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_scanning_nmap.svg" />
39+
</td>
40+
<td>
41+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_scanning_masscan.svg" />
42+
</td>
43+
<td>
44+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_scanning_recon.svg" />
45+
</td>
46+
<td>
47+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_scanning_spider.svg" />
48+
</td>
49+
<td>
50+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_scanning_vulns.svg" />
51+
</td>
52+
<td>
53+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_db.svg" />
54+
</td>
55+
<td>
56+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_db_ip_address.svg" />
57+
</td>
58+
</tr>
59+
<tr>
60+
<td>
61+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_repos.svg" />
62+
</td>
63+
<td>
64+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_repos_show.svg" />
65+
</td>
66+
<td>
67+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_payloads.svg" />
68+
</td>
69+
<td>
70+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_payloads_show.svg" />
71+
</td>
72+
<td>
73+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_payloads_build.svg" />
74+
</td>
75+
<td>
76+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_exploits.svg" />
77+
</td>
78+
<td>
79+
<img src="https://raw.githubusercontent.com/ronin-rb/ronin-app/main/screenshots/ronin_app_exploits_show.svg" />
80+
</td>
81+
</tr>
82+
</tbody>
83+
</table>
84+
2885
## Synopsis
2986

3087
```
@@ -54,7 +111,15 @@ http://localhost:1337, if ran in a real terminal.
54111
* [redis-server][redis] >= 6.2
55112
* [nmap]
56113
* [masscan]
57-
* [Ruby] >= 3.0.0
114+
* [Ruby] >= 3.1.0
115+
116+
**Note:** both `nmap` and `masscan` require additional Linux capabilities in
117+
order to be ran without `sudo` or `root` privileges.
118+
119+
```shell
120+
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip "$(which nmap)"
121+
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip "$(which masscan)"
122+
```
58123

59124
## Security
60125

@@ -146,3 +211,5 @@ along with ronin-app. If not, see <http://www.gnu.org/licenses/>.
146211
[ronin-nmap]: https://github.com/ronin-rb/ronin-nmap#readme
147212
[ronin-masscan]: https://github.com/ronin-rb/ronin-masscan#readme
148213
[ronin-web-spider]: https://github.com/ronin-rb/ronin-web-spider#readme
214+
[ronin-recon]: https://github.com/ronin-rb/ronin-recon#readme
215+
[ronin-vulns]: https://github.com/ronin-rb/ronin-vulns#readme

Rakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,5 @@ Ronin::DB::Tasks.new(
4040
database: 'db/dev.sqlite3'
4141
}
4242
)
43+
44+
task :setup => %w[man db:migrate]

0 commit comments

Comments
 (0)