ronin-listener 0.1.0.rc1

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 (46) hide show
  1. checksums.yaml +7 -0
  2. data/.document +4 -0
  3. data/.github/workflows/ruby.yml +47 -0
  4. data/.gitignore +14 -0
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +11 -0
  7. data/.ruby-version +1 -0
  8. data/.yardopts +1 -0
  9. data/COPYING.txt +165 -0
  10. data/ChangeLog.md +8 -0
  11. data/Gemfile +40 -0
  12. data/README.md +132 -0
  13. data/Rakefile +43 -0
  14. data/bin/ronin-listener +34 -0
  15. data/data/completions/ronin-listener +103 -0
  16. data/data/new/dns.rb.erb +7 -0
  17. data/data/new/http.rb.erb +14 -0
  18. data/gemspec.yml +39 -0
  19. data/lib/ronin/listener/cli/command.rb +40 -0
  20. data/lib/ronin/listener/cli/commands/completion.rb +61 -0
  21. data/lib/ronin/listener/cli/commands/dns.rb +137 -0
  22. data/lib/ronin/listener/cli/commands/http.rb +159 -0
  23. data/lib/ronin/listener/cli/commands/new/dns.rb +123 -0
  24. data/lib/ronin/listener/cli/commands/new/http.rb +130 -0
  25. data/lib/ronin/listener/cli/commands/new.rb +71 -0
  26. data/lib/ronin/listener/cli.rb +50 -0
  27. data/lib/ronin/listener/output_formats.rb +39 -0
  28. data/lib/ronin/listener/root.rb +28 -0
  29. data/lib/ronin/listener/version.rb +26 -0
  30. data/man/ronin-listener-completion.1 +76 -0
  31. data/man/ronin-listener-completion.1.md +78 -0
  32. data/man/ronin-listener-dns.1 +59 -0
  33. data/man/ronin-listener-dns.1.md +55 -0
  34. data/man/ronin-listener-http.1 +69 -0
  35. data/man/ronin-listener-http.1.md +60 -0
  36. data/man/ronin-listener-new-dns.1 +35 -0
  37. data/man/ronin-listener-new-dns.1.md +36 -0
  38. data/man/ronin-listener-new-http.1 +38 -0
  39. data/man/ronin-listener-new-http.1.md +39 -0
  40. data/man/ronin-listener-new.1 +56 -0
  41. data/man/ronin-listener-new.1.md +52 -0
  42. data/man/ronin-listener.1 +38 -0
  43. data/man/ronin-listener.1.md +40 -0
  44. data/ronin-listener.gemspec +62 -0
  45. data/scripts/setup +58 -0
  46. metadata +153 -0
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-listener - A Ruby CLI utility for receiving exfiltrated data.
4
+ #
5
+ # Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)
6
+ #
7
+ # ronin-listener is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU Lesser General Public License as published
9
+ # by the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # ronin-listener is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU Lesser General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU Lesser General Public License
18
+ # along with ronin-listener. If not, see <https://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ require 'ronin/listener/cli/command'
22
+ require 'command_kit/commands/auto_load'
23
+
24
+ module Ronin
25
+ module Listener
26
+ class CLI
27
+ module Commands
28
+ #
29
+ # Creates a new DNS or HTTP listener Ruby script.
30
+ #
31
+ # ## Usage
32
+ #
33
+ # ronin new {project [options] DIR | script FILLE}
34
+ #
35
+ # ## Options
36
+ #
37
+ # -h, --help Print help information
38
+ #
39
+ # ## Arguments
40
+ #
41
+ #
42
+ # [COMMAND] The command name to run
43
+ # [ARGS ...] Additional arguments for the command
44
+ #
45
+ # ## Commands
46
+ #
47
+ # help
48
+ # dns
49
+ # http
50
+ #
51
+ class New < Command
52
+
53
+ include CommandKit::Commands::AutoLoad.new(
54
+ dir: "#{__dir__}/new",
55
+ namespace: "#{self}"
56
+ )
57
+
58
+ examples [
59
+ 'dns foo.rb',
60
+ 'http foo.rb'
61
+ ]
62
+
63
+ description 'Creates a new DNS or HTTP listener Ruby script'
64
+
65
+ man_page 'ronin-listener-new.1'
66
+
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-listener - A Ruby CLI utility for receiving exfiltrated data.
4
+ #
5
+ # Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)
6
+ #
7
+ # ronin-listener is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU Lesser General Public License as published
9
+ # by the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # ronin-listener is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU Lesser General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU Lesser General Public License
18
+ # along with ronin-listener. If not, see <https://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ require 'ronin/listener/version'
22
+ require 'ronin/core/cli/help/banner'
23
+
24
+ require 'command_kit/commands'
25
+ require 'command_kit/commands/auto_load'
26
+ require 'command_kit/options/version'
27
+
28
+ module Ronin
29
+ module Listener
30
+ #
31
+ # The `ronin-listener` command-line interface (CLI).
32
+ #
33
+ # @api private
34
+ #
35
+ class CLI
36
+
37
+ include CommandKit::Commands
38
+ include CommandKit::Commands::AutoLoad.new(
39
+ dir: "#{__dir__}/cli/commands",
40
+ namespace: "#{self}::Commands"
41
+ )
42
+ include CommandKit::Options::Version
43
+ include Core::CLI::Help::Banner
44
+
45
+ command_name 'ronin-listener'
46
+ version Ronin::Listener::VERSION
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-listener - A Ruby CLI utility for receiving exfiltrated data.
4
+ #
5
+ # Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)
6
+ #
7
+ # ronin-listener is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU Lesser General Public License as published
9
+ # by the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # ronin-listener is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU Lesser General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU Lesser General Public License
18
+ # along with ronin-listener. If not, see <https://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ require 'ronin/core/output_formats'
22
+
23
+ module Ronin
24
+ module Listener
25
+ #
26
+ # Contains the supported output formats for saving
27
+ # `Ronin::Listener::DNS::Query` and `Ronin::Listener::HTTP::Request`
28
+ # object to output files.
29
+ #
30
+ module OutputFormats
31
+ include Core::OutputFormats
32
+
33
+ register :txt, '.txt', TXT
34
+ register :csv, '.csv', CSV
35
+ register :json, '.json', JSON
36
+ register :ndjson, '.ndjson', NDJSON
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-listener - A Ruby CLI utility for receiving exfiltrated data.
4
+ #
5
+ # Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)
6
+ #
7
+ # ronin-listener is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU Lesser General Public License as published
9
+ # by the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # ronin-listener is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU Lesser General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU Lesser General Public License
18
+ # along with ronin-listener. If not, see <https://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ module Ronin
22
+ module Listener
23
+ # Path to `ronin-listener` root directory.
24
+ #
25
+ # @api private
26
+ ROOT = File.expand_path(File.join(__dir__,'..','..','..'))
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-listener - A Ruby CLI utility for receiving exfiltrated data.
4
+ #
5
+ # Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)
6
+ #
7
+ # ronin-listener is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU Lesser General Public License as published
9
+ # by the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # ronin-listener is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU Lesser General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU Lesser General Public License
18
+ # along with ronin-listener. If not, see <https://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ module Ronin
22
+ module Listener
23
+ # ronin-listener version
24
+ VERSION = '0.1.0.rc1'
25
+ end
26
+ end
@@ -0,0 +1,76 @@
1
+ .\" Generated by kramdown-man 1.0.1
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-listener-completion 1 "2024-01-01" Ronin Listener "User Manuals"
4
+ .SH NAME
5
+ .PP
6
+ ronin\-listener\-completion \- Manages shell completion rules for \fBronin\-listener\fR
7
+ .SH SYNOPSIS
8
+ .PP
9
+ \fBronin\-listener completion\fR \[lB]\fIoptions\fP\[rB]
10
+ .SH DESCRIPTION
11
+ .PP
12
+ The \fBronin\-listener completion\fR command can print, install, or uninstall shell
13
+ completion rules for the \fBronin\-listener\fR command\.
14
+ .PP
15
+ Supports installing completion rules for Bash or Zsh shells\.
16
+ Completion rules for the Fish shell is currently not supported\.
17
+ .SS ZSH SUPPORT
18
+ .PP
19
+ Zsh users will have to add the following lines to their \fB\[ti]\[sl]\.zshrc\fR file in
20
+ order to enable Zsh\[cq]s Bash completion compatibility layer:
21
+ .PP
22
+ .RS 4
23
+ .EX
24
+ autoload \-Uz \[pl]X compinit && compinit
25
+ autoload \-Uz \[pl]X bashcompinit && bashcompinit
26
+ .EE
27
+ .RE
28
+ .SH OPTIONS
29
+ .TP
30
+ \fB\-\-print\fR
31
+ Prints the shell completion file\.
32
+ .TP
33
+ \fB\-\-install\fR
34
+ Installs the shell completion file\.
35
+ .TP
36
+ \fB\-\-uninstall\fR
37
+ Uninstalls the shell completion file\.
38
+ .TP
39
+ \fB\-h\fR, \fB\-\-help\fR
40
+ Prints help information\.
41
+ .SH ENVIRONMENT
42
+ .TP
43
+ \fIPREFIX\fP
44
+ Specifies the root prefix for the file system\.
45
+ .TP
46
+ \fIHOME\fP
47
+ Specifies the home directory of the user\. Ronin will search for the
48
+ \fB\[ti]\[sl]\.cache\[sl]ronin\-listener\fR cache directory within the home directory\.
49
+ .TP
50
+ \fIXDG\[ru]DATA\[ru]HOME\fP
51
+ Specifies the data directory to use\. Defaults to \fB\[Do]HOME\[sl]\.local\[sl]share\fR\.
52
+ .SH FILES
53
+ .TP
54
+ \fB\[ti]\[sl]\.local\[sl]share\[sl]bash\-completion\[sl]completions\[sl]\fR
55
+ The user\-local installation directory for Bash completion files\.
56
+ .TP
57
+ \fB\[sl]usr\[sl]local\[sl]share\[sl]bash\-completion\[sl]completions\[sl]\fR
58
+ The system\-wide installation directory for Bash completions files\.
59
+ .TP
60
+ \fB\[sl]usr\[sl]local\[sl]share\[sl]zsh\[sl]site\-functions\[sl]\fR
61
+ The installation directory for Zsh completion files\.
62
+ .SH EXAMPLES
63
+ .TP
64
+ \fBronin\-listener completion \-\-print\fR
65
+ Prints the shell completion rules instead of installing them\.
66
+ .TP
67
+ \fBronin\-listener completion \-\-install\fR
68
+ Installs the shell completion rules for \fBronin\-listener\fR\.
69
+ .TP
70
+ \fBronin\-listener completion \-\-uninstall\fR
71
+ Uninstalls the shell completion rules for \fBronin\-listener\fR\.
72
+ .SH AUTHOR
73
+ .PP
74
+ Postmodern
75
+ .MT postmodern\.mod3\[at]gmail\.com
76
+ .ME
@@ -0,0 +1,78 @@
1
+ # ronin-listener-completion 1 "2024-01-01" Ronin Listener "User Manuals"
2
+
3
+ ## NAME
4
+
5
+ ronin-listener-completion - Manages shell completion rules for `ronin-listener`
6
+
7
+ ## SYNOPSIS
8
+
9
+ `ronin-listener completion` [*options*]
10
+
11
+ ## DESCRIPTION
12
+
13
+ The `ronin-listener completion` command can print, install, or uninstall shell
14
+ completion rules for the `ronin-listener` command.
15
+
16
+ Supports installing completion rules for Bash or Zsh shells.
17
+ Completion rules for the Fish shell is currently not supported.
18
+
19
+ ### ZSH SUPPORT
20
+
21
+ Zsh users will have to add the following lines to their `~/.zshrc` file in
22
+ order to enable Zsh's Bash completion compatibility layer:
23
+
24
+ autoload -Uz +X compinit && compinit
25
+ autoload -Uz +X bashcompinit && bashcompinit
26
+
27
+ ## OPTIONS
28
+
29
+ `--print`
30
+ : Prints the shell completion file.
31
+
32
+ `--install`
33
+ : Installs the shell completion file.
34
+
35
+ `--uninstall`
36
+ : Uninstalls the shell completion file.
37
+
38
+ `-h`, `--help`
39
+ : Prints help information.
40
+
41
+ ## ENVIRONMENT
42
+
43
+ *PREFIX*
44
+ : Specifies the root prefix for the file system.
45
+
46
+ *HOME*
47
+ : Specifies the home directory of the user. Ronin will search for the
48
+ `~/.cache/ronin-listener` cache directory within the home directory.
49
+
50
+ *XDG_DATA_HOME*
51
+ : Specifies the data directory to use. Defaults to `$HOME/.local/share`.
52
+
53
+ ## FILES
54
+
55
+ `~/.local/share/bash-completion/completions/`
56
+ : The user-local installation directory for Bash completion files.
57
+
58
+ `/usr/local/share/bash-completion/completions/`
59
+ : The system-wide installation directory for Bash completions files.
60
+
61
+ `/usr/local/share/zsh/site-functions/`
62
+ : The installation directory for Zsh completion files.
63
+
64
+ ## EXAMPLES
65
+
66
+ `ronin-listener completion --print`
67
+ : Prints the shell completion rules instead of installing them.
68
+
69
+ `ronin-listener completion --install`
70
+ : Installs the shell completion rules for `ronin-listener`.
71
+
72
+ `ronin-listener completion --uninstall`
73
+ : Uninstalls the shell completion rules for `ronin-listener`.
74
+
75
+ ## AUTHOR
76
+
77
+ Postmodern <postmodern.mod3@gmail.com>
78
+
@@ -0,0 +1,59 @@
1
+ .\" Generated by kramdown-man 1.0.1
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-listener-dns 1 "2023-03-24" Ronin Listener "User Manuals"
4
+ .SH NAME
5
+ .PP
6
+ ronin\-listener\-dns \- Starts a DNS server for receiving exfiltrated data
7
+ .SH SYNOPSIS
8
+ .PP
9
+ \fBronin\-listener dns\fR \[lB]\fIoptions\fP\[rB] \fIDOMAIN\fP
10
+ .SH DESCRIPTION
11
+ .PP
12
+ Starts a DNS server for receiving exfiltrated data\.
13
+ .SH ARGUMENTS
14
+ .TP
15
+ \fIDOMAIN\fP
16
+ The domain to receive DNS queries for\.
17
+ .SH OPTIONS
18
+ .TP
19
+ \fB\-o\fR, \fB\-\-output\fR \fIFILE\fP
20
+ The output file to write the received DNS queries to\.
21
+ .TP
22
+ \fB\-F\fR, \fB\-\-output\-format\fR \fBtxt\fR\[or]\fBcsv\fR\[or]\fBjson\fR\[or]\fBndjson\fR
23
+ The output format to use\. If not specified, the output format will be inferred
24
+ from the output file\[cq]s extension\. If the output format cannot be inferred from
25
+ the output file\[cq]s extension, then it will default to \fBtxt\fR format\.
26
+ .TP
27
+ \fB\-H\fR, \fB\-\-host\fR \fIIP\fP
28
+ The interface to listen on\. Defaults to \fB0\.0\.0\.0\fR if not given\.
29
+ .TP
30
+ \fB\-p\fR, \fB\-\-port\fR \fIPORT\fP
31
+ The port to listen on\. Defaults to \fB53\fR if not given\.
32
+ .TP
33
+ \fB\-h\fR, \fB\-\-help\fR
34
+ Prints help information\.
35
+ .SH EXAMPLES
36
+ .PP
37
+ Runs a DNS listener on \fB127\.0\.0\.1:5553\fR for domain \fBexample\.com\fR:
38
+ .PP
39
+ .RS 4
40
+ .EX
41
+ \[Do] ronin\-listener dns \-H 127\.0\.0\.1 \-p 5553 example\.com
42
+ .EE
43
+ .RE
44
+ .PP
45
+ Run a DNS listener on \fB0\.0\.0\.0:53\fR for domain \fBexample\.com\fR as root:
46
+ .PP
47
+ .RS 4
48
+ .EX
49
+ \[Do] sudo ronin\-listener dns example\.com
50
+ .EE
51
+ .RE
52
+ .SH AUTHOR
53
+ .PP
54
+ Postmodern
55
+ .MT postmodern\.mod3\[at]gmail\.com
56
+ .ME
57
+ .SH SEE ALSO
58
+ .PP
59
+ .BR ronin\-listener\-http (1)
@@ -0,0 +1,55 @@
1
+ # ronin-listener-dns 1 "2023-03-24" Ronin Listener "User Manuals"
2
+
3
+ ## NAME
4
+
5
+ ronin-listener-dns - Starts a DNS server for receiving exfiltrated data
6
+
7
+ ## SYNOPSIS
8
+
9
+ `ronin-listener dns` [*options*] *DOMAIN*
10
+
11
+ ## DESCRIPTION
12
+
13
+ Starts a DNS server for receiving exfiltrated data.
14
+
15
+ ## ARGUMENTS
16
+
17
+ *DOMAIN*
18
+ : The domain to receive DNS queries for.
19
+
20
+ ## OPTIONS
21
+
22
+ `-o`, `--output` *FILE*
23
+ : The output file to write the received DNS queries to.
24
+
25
+ `-F`, `--output-format` `txt`|`csv`|`json`|`ndjson`
26
+ : The output format to use. If not specified, the output format will be inferred
27
+ from the output file's extension. If the output format cannot be inferred from
28
+ the output file's extension, then it will default to `txt` format.
29
+
30
+ `-H`, `--host` *IP*
31
+ : The interface to listen on. Defaults to `0.0.0.0` if not given.
32
+
33
+ `-p`, `--port` *PORT*
34
+ : The port to listen on. Defaults to `53` if not given.
35
+
36
+ `-h`, `--help`
37
+ : Prints help information.
38
+
39
+ ## EXAMPLES
40
+
41
+ Runs a DNS listener on `127.0.0.1:5553` for domain `example.com`:
42
+
43
+ $ ronin-listener dns -H 127.0.0.1 -p 5553 example.com
44
+
45
+ Run a DNS listener on `0.0.0.0:53` for domain `example.com` as root:
46
+
47
+ $ sudo ronin-listener dns example.com
48
+
49
+ ## AUTHOR
50
+
51
+ Postmodern <postmodern.mod3@gmail.com>
52
+
53
+ ## SEE ALSO
54
+
55
+ [ronin-listener-http](ronin-listener-http.1.md)
@@ -0,0 +1,69 @@
1
+ .\" Generated by kramdown-man 1.0.1
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-listener-http 1 "2023-03-24" Ronin Listener "User Manuals"
4
+ .SH NAME
5
+ .PP
6
+ ronin\-listener\-http \- Starts a HTTP server for receiving exfiltrated data
7
+ .SH SYNOPSIS
8
+ .PP
9
+ \fBronin\-listener http\fR \[lB]\fIoptions\fP\[rB]
10
+ .SH DESCRIPTION
11
+ .PP
12
+ Starts a HTTP server for receiving exfiltrated data\.
13
+ .SH OPTIONS
14
+ .TP
15
+ \fB\-o\fR, \fB\-\-output\fR \fIFILE\fP
16
+ The output file to write the received DNS queries to\.
17
+ .TP
18
+ \fB\-F\fR, \fB\-\-output\-format\fR \fBtxt\fR\[or]\fBcsv\fR\[or]\fBjson\fR\[or]\fBndjson\fR
19
+ The output format to use\. If not specified, the output format will be inferred
20
+ from the output file\[cq]s extension\. If the output format cannot be inferred from
21
+ the output file\[cq]s extension, then it will default to \fBtxt\fR format\.
22
+ .TP
23
+ \fB\-H\fR, \fB\-\-host\fR \fIIP\fP
24
+ The interface to listen on\. Defaults to \fB0\.0\.0\.0\fR if not given\.
25
+ .TP
26
+ \fB\-p\fR, \fB\-\-port\fR \fIPORT\fP
27
+ The port to listen on\. Defaults to \fB8080\fR if not given\.
28
+ .TP
29
+ \fB\-\-vhost\fR \fIHOST\fP
30
+ The \fBHost:\fR header to filter requests by\.
31
+ .TP
32
+ \fB\-R\fR, \fB\-\-root\fR \fIDIR\fP
33
+ The root directory to filter requests by\. Defaults to \fB\[sl]\fR if not given\.
34
+ .TP
35
+ \fB\-h\fR, \fB\-\-help\fR
36
+ Prints help information\.
37
+ .SH EXAMPLES
38
+ .PP
39
+ Runs a HTTP listener on \fB127\.0\.0\.1:8080\fR that will receive any request:
40
+ .PP
41
+ .RS 4
42
+ .EX
43
+ \[Do] ronin\-listener http \-p 8080
44
+ .EE
45
+ .RE
46
+ .PP
47
+ Runs a HTTP listener on \fB127\.0\.0\.1:8080\fR for the virtual\-host \fBexample\.com\fR:
48
+ .PP
49
+ .RS 4
50
+ .EX
51
+ \[Do] ronin\-listener http \-p 8080 \-\-vhost example\.com
52
+ .EE
53
+ .RE
54
+ .PP
55
+ Run a HTTP listener on \fB0\.0\.0\.0:80\fR as root:
56
+ .PP
57
+ .RS 4
58
+ .EX
59
+ \[Do] sudo ronin\-listener http
60
+ .EE
61
+ .RE
62
+ .SH AUTHOR
63
+ .PP
64
+ Postmodern
65
+ .MT postmodern\.mod3\[at]gmail\.com
66
+ .ME
67
+ .SH SEE ALSO
68
+ .PP
69
+ .BR ronin\-listener\-dns (1)
@@ -0,0 +1,60 @@
1
+ # ronin-listener-http 1 "2023-03-24" Ronin Listener "User Manuals"
2
+
3
+ ## NAME
4
+
5
+ ronin-listener-http - Starts a HTTP server for receiving exfiltrated data
6
+
7
+ ## SYNOPSIS
8
+
9
+ `ronin-listener http` [*options*]
10
+
11
+ ## DESCRIPTION
12
+
13
+ Starts a HTTP server for receiving exfiltrated data.
14
+
15
+ ## OPTIONS
16
+
17
+ `-o`, `--output` *FILE*
18
+ : The output file to write the received DNS queries to.
19
+
20
+ `-F`, `--output-format` `txt`|`csv`|`json`|`ndjson`
21
+ : The output format to use. If not specified, the output format will be inferred
22
+ from the output file's extension. If the output format cannot be inferred from
23
+ the output file's extension, then it will default to `txt` format.
24
+
25
+ `-H`, `--host` *IP*
26
+ : The interface to listen on. Defaults to `0.0.0.0` if not given.
27
+
28
+ `-p`, `--port` *PORT*
29
+ : The port to listen on. Defaults to `8080` if not given.
30
+
31
+ `--vhost` *HOST*
32
+ : The `Host:` header to filter requests by.
33
+
34
+ `-R`, `--root` *DIR*
35
+ : The root directory to filter requests by. Defaults to `/` if not given.
36
+
37
+ `-h`, `--help`
38
+ : Prints help information.
39
+
40
+ ## EXAMPLES
41
+
42
+ Runs a HTTP listener on `127.0.0.1:8080` that will receive any request:
43
+
44
+ $ ronin-listener http -p 8080
45
+
46
+ Runs a HTTP listener on `127.0.0.1:8080` for the virtual-host `example.com`:
47
+
48
+ $ ronin-listener http -p 8080 --vhost example.com
49
+
50
+ Run a HTTP listener on `0.0.0.0:80` as root:
51
+
52
+ $ sudo ronin-listener http
53
+
54
+ ## AUTHOR
55
+
56
+ Postmodern <postmodern.mod3@gmail.com>
57
+
58
+ ## SEE ALSO
59
+
60
+ [ronin-listener-dns](ronin-listener-dns.1.md)
@@ -0,0 +1,35 @@
1
+ .\" Generated by kramdown-man 1.0.0
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-listener-new-dns 1 "2023-02-01" Ronin Listener "User Manuals"
4
+ .SH SYNOPSIS
5
+ .PP
6
+ \fBronin-listener new dns\fR \[lB]\fIoptions\fP\[rB] \[lB]\fIPATH\fP\[rB]
7
+ .SH DESCRIPTION
8
+ .PP
9
+ Creates a new standalone DNS listener Ruby script\.
10
+ .SH ARGUMENTS
11
+ .TP
12
+ \fIPATH\fP
13
+ The path to the new Ruby script file to create\.
14
+ .SH OPTIONS
15
+ .TP
16
+ \fB-H\fR, \fB--host\fR \fIIP\fP
17
+ The interface to listen on\. Defaults to \fB0.0.0.0\fR if not given\.
18
+ .TP
19
+ \fB-p\fR, \fB--port\fR \fIPORT\fP
20
+ The port to listen on\. Defaults to \fB5553\fR if not given\.
21
+ .TP
22
+ \fB-d\fR, \fB--domain\fR \fIDOMAIN\fP
23
+ The domain to receive queries for\. Defaults to \fBexample.com\fR if not given\.
24
+ .TP
25
+ \fB-h\fR, \fB--help\fR
26
+ Print help information
27
+ .SH AUTHOR
28
+ .PP
29
+ Postmodern
30
+ .MT postmodern\.mod3\[at]gmail\.com
31
+ .ME
32
+ .SH SEE ALSO
33
+ .PP
34
+ .BR ronin\-listener\-new (1)
35
+ .BR ronin\-listener\-new\-http (1)
@@ -0,0 +1,36 @@
1
+ # ronin-listener-new-dns 1 "2023-02-01" Ronin Listener "User Manuals"
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ronin-listener new dns` [*options*] [*PATH*]
6
+
7
+ ## DESCRIPTION
8
+
9
+ Creates a new standalone DNS listener Ruby script.
10
+
11
+ ## ARGUMENTS
12
+
13
+ *PATH*
14
+ : The path to the new Ruby script file to create.
15
+
16
+ ## OPTIONS
17
+
18
+ `-H`, `--host` *IP*
19
+ : The interface to listen on. Defaults to `0.0.0.0` if not given.
20
+
21
+ `-p`, `--port` *PORT*
22
+ : The port to listen on. Defaults to `5553` if not given.
23
+
24
+ `-d`, `--domain` *DOMAIN*
25
+ : The domain to receive queries for. Defaults to `example.com` if not given.
26
+
27
+ `-h`, `--help`
28
+ : Print help information
29
+
30
+ ## AUTHOR
31
+
32
+ Postmodern <postmodern.mod3@gmail.com>
33
+
34
+ ## SEE ALSO
35
+
36
+ [ronin-listener-new](ronin-listener-new.1.md) [ronin-listener-new-http](ronin-listener-new-http.1.md)