wibrfake-brk 0.0.2

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 (275) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +48 -0
  3. data/.gitattributes +19 -0
  4. data/.github/dependabot.yml +12 -0
  5. data/.github/workflows/ci.yml +90 -0
  6. data/.rubocop.yml +8 -0
  7. data/.ruby-version +1 -0
  8. data/Dockerfile +69 -0
  9. data/Gemfile +68 -0
  10. data/README.md +188 -0
  11. data/Rakefile +6 -0
  12. data/app/assets/config/manifest.js +5 -0
  13. data/app/assets/images/.keep +0 -0
  14. data/app/assets/images/2024-12-30-07:58:34-screenshot.png +0 -0
  15. data/app/assets/images/facebook/facebook-logo.svg +3 -0
  16. data/app/assets/images/google/googlelogo_color_272x92dp.png +0 -0
  17. data/app/assets/images/instagram/app-store.png +0 -0
  18. data/app/assets/images/instagram/google-play.png +0 -0
  19. data/app/assets/images/instagram/instagram-logo.png +0 -0
  20. data/app/assets/images/instagram/screenshot1.png +0 -0
  21. data/app/assets/images/instagram/screenshot2.png +0 -0
  22. data/app/assets/images/instagram/screenshot3.png +0 -0
  23. data/app/assets/images/instagram/screenshot4.png +0 -0
  24. data/app/assets/images/nauta_etecsa/CUBADEBATE.jpg +0 -0
  25. data/app/assets/images/nauta_etecsa/CUBAEDUCA.jpg +0 -0
  26. data/app/assets/images/nauta_etecsa/CUBARTE.jpg +0 -0
  27. data/app/assets/images/nauta_etecsa/CUBASI.jpg +0 -0
  28. data/app/assets/images/nauta_etecsa/ECURED.jpg +0 -0
  29. data/app/assets/images/nauta_etecsa/OFERTAS.jpg +0 -0
  30. data/app/assets/images/nauta_etecsa/PAPELETA.jpg +0 -0
  31. data/app/assets/images/nauta_etecsa/contenedor_bg.jpg +0 -0
  32. data/app/assets/images/nauta_etecsa/etecsa.jpg +0 -0
  33. data/app/assets/images/nauta_etecsa/nauta_wifi.jpg +0 -0
  34. data/app/assets/images/nauta_hogar/CUBADEBATE.jpg +0 -0
  35. data/app/assets/images/nauta_hogar/CUBAEDUCA.jpg +0 -0
  36. data/app/assets/images/nauta_hogar/CUBARTE.jpg +0 -0
  37. data/app/assets/images/nauta_hogar/CUBASI.jpg +0 -0
  38. data/app/assets/images/nauta_hogar/ECURED.jpg +0 -0
  39. data/app/assets/images/nauta_hogar/OFERTAS.jpg +0 -0
  40. data/app/assets/images/nauta_hogar/PAPELETA.jpg +0 -0
  41. data/app/assets/images/nauta_hogar/banner_hogar.png +0 -0
  42. data/app/assets/images/wibrfake/Breaker-Wallpaper1.jpg +0 -0
  43. data/app/assets/images/wibrfake/mac-list-parameter.png +0 -0
  44. data/app/assets/images/wibrfake/wibrfake-100x100.png +0 -0
  45. data/app/assets/images/wibrfake/wibrfake-32x32.png +0 -0
  46. data/app/assets/images/wibrfake/wibrfake-48x48.png +0 -0
  47. data/app/assets/images/wibrfake/wibrfake-apfake-on.png +0 -0
  48. data/app/assets/images/wibrfake/wibrfake-apfake-set-basic.png +0 -0
  49. data/app/assets/images/wibrfake/wibrfake-apfake-show.png +0 -0
  50. data/app/assets/images/wibrfake/wibrfake-help.png +0 -0
  51. data/app/assets/images/wibrfake/wibrfake-hostpot.png +0 -0
  52. data/app/assets/images/wibrfake/wibrfake-init.png +0 -0
  53. data/app/assets/images/wibrfake/wibrfake-init2.png +0 -0
  54. data/app/assets/images/wibrfake/wibrfake-login-basic.jpg +0 -0
  55. data/app/assets/images/wibrfake/wibrfake-mac-list.png +0 -0
  56. data/app/assets/images/wibrfake/wibrfake-mac-ramset-oui.png +0 -0
  57. data/app/assets/images/wibrfake/wibrfake-mac-ramset.png +0 -0
  58. data/app/assets/images/wibrfake/wibrfake-mac-set.png +0 -0
  59. data/app/assets/images/wibrfake/wibrfake-mac-show.png +0 -0
  60. data/app/assets/images/wibrfake/wibrfake-need-signin.jpg +0 -0
  61. data/app/assets/images/wibrfake/wibrfake-session-active.png +0 -0
  62. data/app/assets/images/wibrfake/wibrfake-session-init.png +0 -0
  63. data/app/assets/images/wibrfake/wibrfake-session-list.png +0 -0
  64. data/app/assets/images/wibrfake/wibrfake-session-new.png +0 -0
  65. data/app/assets/images/wibrfake/wibrfake-session-rename.png +0 -0
  66. data/app/assets/images/wibrfake/wibrfake-session-save.png +0 -0
  67. data/app/assets/images/wibrfake/wibrfake-web-server-apfake.png +0 -0
  68. data/app/assets/images/wibrfake/wibrfake-web-server-on.png +0 -0
  69. data/app/assets/images/wibrfake/wibrfake-web-server-show.png +0 -0
  70. data/app/assets/images/wibrfake/wibrfake-wkdump-loaded.png +0 -0
  71. data/app/assets/images/wibrfake/wibrfake-wkdump.png +0 -0
  72. data/app/assets/images/wibrfake/wibrfake.png +0 -0
  73. data/app/assets/stylesheets/application.css +15 -0
  74. data/app/assets/stylesheets/basic/page_basic.css +0 -0
  75. data/app/assets/stylesheets/facebook/page_facebook.css +93 -0
  76. data/app/assets/stylesheets/google/page_google.css +137 -0
  77. data/app/assets/stylesheets/instagram/page_instagram.css +94 -0
  78. data/app/assets/stylesheets/nauta_etecsa/page_nauta.css +325 -0
  79. data/app/assets/stylesheets/nauta_hogar/page_nauta.css +469 -0
  80. data/app/assets/stylesheets/wibrfake/page_wibrfake.css +1181 -0
  81. data/app/assets/stylesheets/wibrfake/page_wibrfake_about.css +486 -0
  82. data/app/channels/application_cable/channel.rb +4 -0
  83. data/app/channels/application_cable/connection.rb +4 -0
  84. data/app/controllers/application_controller.rb +15 -0
  85. data/app/controllers/concerns/.keep +0 -0
  86. data/app/controllers/sessions_controller.rb +111 -0
  87. data/app/helpers/application_helper.rb +2 -0
  88. data/app/helpers/sessions_helper.rb +2 -0
  89. data/app/javascript/application.js +3 -0
  90. data/app/javascript/bootstrap.bundle.min.js +7 -0
  91. data/app/javascript/controllers/application.js +9 -0
  92. data/app/javascript/controllers/hello_controller.js +7 -0
  93. data/app/javascript/controllers/index.js +4 -0
  94. data/app/javascript/google/page_google.js +50 -0
  95. data/app/javascript/incorrect3.js +29 -0
  96. data/app/javascript/page_wibrfake.js +50 -0
  97. data/app/javascript/page_wibrfake_about.js +147 -0
  98. data/app/jobs/application_job.rb +7 -0
  99. data/app/mailers/application_mailer.rb +4 -0
  100. data/app/models/application_record.rb +3 -0
  101. data/app/models/concerns/.keep +0 -0
  102. data/app/models/user.rb +6 -0
  103. data/app/views/layouts/application.html.erb +33 -0
  104. data/app/views/layouts/mailer.html.erb +13 -0
  105. data/app/views/layouts/mailer.text.erb +1 -0
  106. data/app/views/pwa/manifest.json.erb +22 -0
  107. data/app/views/pwa/service-worker.js +26 -0
  108. data/app/views/sessions/basic/basic.html.erb +21 -0
  109. data/app/views/sessions/facebook/facebook.html.erb +132 -0
  110. data/app/views/sessions/google/google.html.erb +72 -0
  111. data/app/views/sessions/index.html.erb +11 -0
  112. data/app/views/sessions/instagram/instagram.html.erb +69 -0
  113. data/app/views/sessions/nauta_etecsa/nauta_etecsa.html.erb +97 -0
  114. data/app/views/sessions/nauta_hogar/nauta_hogar.html.erb +135 -0
  115. data/app/views/sessions/wibrfake/about/about.html.erb +164 -0
  116. data/app/views/sessions/wibrfake/wibrfake.html.erb +417 -0
  117. data/bin/.names.rb.swp +0 -0
  118. data/bin/brakeman +7 -0
  119. data/bin/bundle +114 -0
  120. data/bin/docker-entrypoint +13 -0
  121. data/bin/google.wkdump +3 -0
  122. data/bin/importmap +4 -0
  123. data/bin/rails +4 -0
  124. data/bin/rake +4 -0
  125. data/bin/rubocop +8 -0
  126. data/bin/setup +37 -0
  127. data/bin/wibrfake +20 -0
  128. data/config/application.rb +26 -0
  129. data/config/boot.rb +4 -0
  130. data/config/cable.yml +10 -0
  131. data/config/credentials.yml.enc +1 -0
  132. data/config/database.yml +16 -0
  133. data/config/environment.rb +5 -0
  134. data/config/environments/development.rb +85 -0
  135. data/config/environments/production.rb +105 -0
  136. data/config/environments/test.rb +67 -0
  137. data/config/icons/application-x-wkdump.xml +13 -0
  138. data/config/icons/hicolor/16x16/mimetypes/application-x-wkdump.png +0 -0
  139. data/config/icons/hicolor/32x32/mimetypes/application-x-wkdump.png +0 -0
  140. data/config/icons/hicolor/48x48/mimetypes/application-x-wkdump.png +0 -0
  141. data/config/icons/hicolor/icon-theme.cache +0 -0
  142. data/config/icons/hicolor/index.theme +20 -0
  143. data/config/icons/wkdump.desktop +5 -0
  144. data/config/importmap.rb +7 -0
  145. data/config/initializers/assets.rb +12 -0
  146. data/config/initializers/content_security_policy.rb +25 -0
  147. data/config/initializers/devise.rb +313 -0
  148. data/config/initializers/filter_parameter_logging.rb +8 -0
  149. data/config/initializers/inflections.rb +16 -0
  150. data/config/initializers/permissions_policy.rb +13 -0
  151. data/config/locales/devise.en.yml +65 -0
  152. data/config/locales/en.yml +31 -0
  153. data/config/puma.rb +35 -0
  154. data/config/routes.rb +12 -0
  155. data/config/storage.yml +34 -0
  156. data/config.ru +6 -0
  157. data/db/development.sqlite3 +0 -0
  158. data/db/schema.rb +14 -0
  159. data/ext/wibrfake/extconf.rb +3 -0
  160. data/ext/wibrfake/wibrfake.h +0 -0
  161. data/images/ouilist.png +0 -0
  162. data/images/wibrfakehelp.png +0 -0
  163. data/images/wibrfakeinit.png +0 -0
  164. data/lib/assets/.keep +0 -0
  165. data/lib/tasks/.keep +0 -0
  166. data/lib/wibrfake/Config/ipaddr.rb +71 -0
  167. data/lib/wibrfake/Config/options.rb +98 -0
  168. data/lib/wibrfake/Config/security_wpa.rb +43 -0
  169. data/lib/wibrfake/DataBase/howuis.db +0 -0
  170. data/lib/wibrfake/DataBase/ouis.db +0 -0
  171. data/lib/wibrfake/DataBase/ouis.rb +24 -0
  172. data/lib/wibrfake/DataBase/rename.rb +15 -0
  173. data/lib/wibrfake/DataBase/show.rb +18 -0
  174. data/lib/wibrfake/Dnsmasq/dhcp.rb +149 -0
  175. data/lib/wibrfake/Dnsmasq/dhcp_prueba.rb +135 -0
  176. data/lib/wibrfake/Dnsmasq/dns.rb +34 -0
  177. data/lib/wibrfake/Dnsmasq/dns_prueba.rb +36 -0
  178. data/lib/wibrfake/Dnsmasq/dnsmasq.rb +33 -0
  179. data/lib/wibrfake/Listing/apfake.rb +28 -0
  180. data/lib/wibrfake/Listing/clients.rb +76 -0
  181. data/lib/wibrfake/Listing/ouis.rb +53 -0
  182. data/lib/wibrfake/Listing/process.rb +14 -0
  183. data/lib/wibrfake/Listing/sessions.rb +47 -0
  184. data/lib/wibrfake/Listing/web_server.rb +17 -0
  185. data/lib/wibrfake/Listing/wireless.rb +30 -0
  186. data/lib/wibrfake/Logs/credentials.log +59 -0
  187. data/lib/wibrfake/NetworkInterface/ip-routing.rb +99 -0
  188. data/lib/wibrfake/NetworkInterface/mac.rb +114 -0
  189. data/lib/wibrfake/NetworkInterface/monitor.rb +44 -0
  190. data/lib/wibrfake/NetworkInterface/ouis.db +0 -0
  191. data/lib/wibrfake/Process/id.rb +11 -0
  192. data/lib/wibrfake/Process/pids.log +5 -0
  193. data/lib/wibrfake/Process/pkill.rb +124 -0
  194. data/lib/wibrfake/Process/processes.rb +76 -0
  195. data/lib/wibrfake/Rails/login.rb +20 -0
  196. data/lib/wibrfake/Rails/routes.rb +76 -0
  197. data/lib/wibrfake/Rails/service.rb +58 -0
  198. data/lib/wibrfake/Rails/service_usage.rb +46 -0
  199. data/lib/wibrfake/Sessions/session.rb +188 -0
  200. data/lib/wibrfake/String/string.rb +109 -0
  201. data/lib/wibrfake/Tmp/config.yml +1 -0
  202. data/lib/wibrfake/config.rb +24 -0
  203. data/lib/wibrfake/help.rb +107 -0
  204. data/lib/wibrfake/optionpr.rb +68 -0
  205. data/lib/wibrfake/run.rb +9 -0
  206. data/lib/wibrfake/ty/apld.rb +110 -0
  207. data/lib/wibrfake/ty/prompt/answers_collector.rb +78 -0
  208. data/lib/wibrfake/ty/prompt/block_paginator.rb +59 -0
  209. data/lib/wibrfake/ty/prompt/choice.rb +147 -0
  210. data/lib/wibrfake/ty/prompt/choices.rb +129 -0
  211. data/lib/wibrfake/ty/prompt/confirm_question.rb +158 -0
  212. data/lib/wibrfake/ty/prompt/const.rb +17 -0
  213. data/lib/wibrfake/ty/prompt/converter_dsl.rb +21 -0
  214. data/lib/wibrfake/ty/prompt/converter_registry.rb +69 -0
  215. data/lib/wibrfake/ty/prompt/converters.rb +182 -0
  216. data/lib/wibrfake/ty/prompt/distance.rb +49 -0
  217. data/lib/wibrfake/ty/prompt/enum_list.rb +433 -0
  218. data/lib/wibrfake/ty/prompt/errors.rb +31 -0
  219. data/lib/wibrfake/ty/prompt/evaluator.rb +29 -0
  220. data/lib/wibrfake/ty/prompt/expander.rb +321 -0
  221. data/lib/wibrfake/ty/prompt/keypress.rb +98 -0
  222. data/lib/wibrfake/ty/prompt/list.rb +589 -0
  223. data/lib/wibrfake/ty/prompt/mask_question.rb +96 -0
  224. data/lib/wibrfake/ty/prompt/multi_list.rb +224 -0
  225. data/lib/wibrfake/ty/prompt/multiline.rb +72 -0
  226. data/lib/wibrfake/ty/prompt/paginator.rb +111 -0
  227. data/lib/wibrfake/ty/prompt/question/checks.rb +105 -0
  228. data/lib/wibrfake/ty/prompt/question/modifier.rb +96 -0
  229. data/lib/wibrfake/ty/prompt/question/validation.rb +72 -0
  230. data/lib/wibrfake/ty/prompt/question.rb +391 -0
  231. data/lib/wibrfake/ty/prompt/result.rb +42 -0
  232. data/lib/wibrfake/ty/prompt/selected_choices.rb +77 -0
  233. data/lib/wibrfake/ty/prompt/slider.rb +286 -0
  234. data/lib/wibrfake/ty/prompt/statement.rb +55 -0
  235. data/lib/wibrfake/ty/prompt/suggestion.rb +113 -0
  236. data/lib/wibrfake/ty/prompt/symbols.rb +89 -0
  237. data/lib/wibrfake/ty/prompt/test.rb +36 -0
  238. data/lib/wibrfake/ty/prompt/timer.rb +75 -0
  239. data/lib/wibrfake/ty/prompt/utils.rb +42 -0
  240. data/lib/wibrfake/ty/prompt/version.rb +7 -0
  241. data/lib/wibrfake/ty/prompt.rb +589 -0
  242. data/lib/wibrfake/version.rb +5 -0
  243. data/lib/wibrfake/wibrfake_cli.rb +683 -0
  244. data/log/.keep +0 -0
  245. data/pruebas/daemon1.pid +1 -0
  246. data/pruebas/daemon2.pid +1 -0
  247. data/pruebas/daemons.rb +44 -0
  248. data/public/404.html +67 -0
  249. data/public/406-unsupported-browser.html +66 -0
  250. data/public/422.html +67 -0
  251. data/public/500.html +66 -0
  252. data/public/icon.png +0 -0
  253. data/public/icon.svg +3 -0
  254. data/public/robots.txt +1 -0
  255. data/storage/.keep +0 -0
  256. data/test/application_system_test_case.rb +5 -0
  257. data/test/channels/application_cable/connection_test.rb +13 -0
  258. data/test/controllers/.keep +0 -0
  259. data/test/controllers/sessions_controller_test.rb +7 -0
  260. data/test/fixtures/files/.keep +0 -0
  261. data/test/fixtures/users.yml +11 -0
  262. data/test/helpers/.keep +0 -0
  263. data/test/integration/.keep +0 -0
  264. data/test/mailers/.keep +0 -0
  265. data/test/models/.keep +0 -0
  266. data/test/models/user_test.rb +7 -0
  267. data/test/system/.keep +0 -0
  268. data/test/test_helper.rb +15 -0
  269. data/tmp/.keep +0 -0
  270. data/tmp/pids/.keep +0 -0
  271. data/tmp/storage/.keep +0 -0
  272. data/vendor/.keep +0 -0
  273. data/vendor/javascript/.keep +0 -0
  274. data/wibrfake.gemspec +49 -0
  275. metadata +743 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 62f8bbbb413d7a3b636f9763f2ddb4771a71df0531f6a4911baf937a66b26a0e
4
+ data.tar.gz: 41dbcf7625734422ac37cd3e753b45a6fab2a37a070abf32fffa1ad17b2a3ecc
5
+ SHA512:
6
+ metadata.gz: 847413668af20317588bb3ca8bf7a0b9808bf9bc32a2dd6c0627edb6499b77526769dcb914ecb952ba614587083efe37842f0a77d4c9af4dda0b7b0f87ec782a
7
+ data.tar.gz: bbb9ef2daa08bd95494a7d39b6618175b46cbba7a969220bddecc28e4b4d24812a899ef728e65366076517df960e058d4bae938dac48dee363c5f5883afa0a99
data/.dockerignore ADDED
@@ -0,0 +1,48 @@
1
+ # See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
2
+
3
+ # Ignore git directory.
4
+ /.git/
5
+ /.gitignore
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore all environment files (except templates).
11
+ /.env*
12
+ !/.env*.erb
13
+
14
+ # Ignore all default key files.
15
+ /config/master.key
16
+ /config/credentials/*.key
17
+
18
+ # Ignore all logfiles and tempfiles.
19
+ /log/*
20
+ /tmp/*
21
+ !/log/.keep
22
+ !/tmp/.keep
23
+
24
+ # Ignore pidfiles, but keep the directory.
25
+ /tmp/pids/*
26
+ !/tmp/pids/.keep
27
+
28
+ # Ignore storage (uploaded files in development and any SQLite databases).
29
+ /storage/*
30
+ !/storage/.keep
31
+ /tmp/storage/*
32
+ !/tmp/storage/.keep
33
+
34
+ # Ignore assets.
35
+ /node_modules/
36
+ /app/assets/builds/*
37
+ !/app/assets/builds/.keep
38
+ /public/assets
39
+
40
+ # Ignore CI service files.
41
+ /.github
42
+
43
+ # Ignore development files
44
+ /.devcontainer
45
+
46
+ # Ignore Docker-related files
47
+ /.dockerignore
48
+ /Dockerfile*
data/.gitattributes ADDED
@@ -0,0 +1,19 @@
1
+ # See https://git-scm.com/docs/gitattributes for more about git attribute files.
2
+
3
+ # Mark the database schema as having been generated.
4
+ db/schema.rb linguist-generated
5
+
6
+ # Mark any vendored files as having been vendored.
7
+ vendor/* linguist-vendored
8
+ config/credentials/*.yml.enc diff=rails_credentials
9
+ config/credentials.yml.enc diff=rails_credentials
10
+ # Clasificar archivos ERB como Ruby (vistas de Rails)
11
+ *.html.erb linguist-language=Ruby
12
+ *.erb linguist-language=Ruby
13
+
14
+ # Excluir directorios con archivos estáticos (opcional)
15
+ /public/* linguist-vendored
16
+ /assets/* linguist-vendored
17
+
18
+ # Si tienes otros archivos HTML no relevantes, márcalos como documentación
19
+ *.html linguist-documentation
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
8
+ - package-ecosystem: github-actions
9
+ directory: "/"
10
+ schedule:
11
+ interval: daily
12
+ open-pull-requests-limit: 10
@@ -0,0 +1,90 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [ main ]
7
+
8
+ jobs:
9
+ scan_ruby:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: .ruby-version
20
+ bundler-cache: true
21
+
22
+ - name: Scan for common Rails security vulnerabilities using static analysis
23
+ run: bin/brakeman --no-pager
24
+
25
+ scan_js:
26
+ runs-on: ubuntu-latest
27
+
28
+ steps:
29
+ - name: Checkout code
30
+ uses: actions/checkout@v4
31
+
32
+ - name: Set up Ruby
33
+ uses: ruby/setup-ruby@v1
34
+ with:
35
+ ruby-version: .ruby-version
36
+ bundler-cache: true
37
+
38
+ - name: Scan for security vulnerabilities in JavaScript dependencies
39
+ run: bin/importmap audit
40
+
41
+ lint:
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - name: Checkout code
45
+ uses: actions/checkout@v4
46
+
47
+ - name: Set up Ruby
48
+ uses: ruby/setup-ruby@v1
49
+ with:
50
+ ruby-version: .ruby-version
51
+ bundler-cache: true
52
+
53
+ - name: Lint code for consistent style
54
+ run: bin/rubocop -f github
55
+
56
+ test:
57
+ runs-on: ubuntu-latest
58
+
59
+ # services:
60
+ # redis:
61
+ # image: redis
62
+ # ports:
63
+ # - 6379:6379
64
+ # options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
65
+ steps:
66
+ - name: Install packages
67
+ run: sudo apt-get update && sudo apt-get install --no-install-recommends -y google-chrome-stable curl libjemalloc2 libvips sqlite3
68
+
69
+ - name: Checkout code
70
+ uses: actions/checkout@v4
71
+
72
+ - name: Set up Ruby
73
+ uses: ruby/setup-ruby@v1
74
+ with:
75
+ ruby-version: .ruby-version
76
+ bundler-cache: true
77
+
78
+ - name: Run tests
79
+ env:
80
+ RAILS_ENV: test
81
+ # REDIS_URL: redis://localhost:6379/0
82
+ run: bin/rails db:test:prepare test test:system
83
+
84
+ - name: Keep screenshots from failed system tests
85
+ uses: actions/upload-artifact@v4
86
+ if: failure()
87
+ with:
88
+ name: screenshots
89
+ path: ${{ github.workspace }}/tmp/screenshots
90
+ if-no-files-found: ignore
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ # Omakase Ruby styling for Rails
2
+ inherit_gem: { rubocop-rails-omakase: rubocop.yml }
3
+
4
+ # Overwrite or add rules to create your own house style
5
+ #
6
+ # # Use `[a, [b, c]]` not `[ a, [ b, c ] ]`
7
+ # Layout/SpaceInsideArrayLiteralBrackets:
8
+ # Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-3.1.2
data/Dockerfile ADDED
@@ -0,0 +1,69 @@
1
+ # syntax = docker/dockerfile:1
2
+
3
+ # This Dockerfile is designed for production, not development. Use with Kamal or build'n'run by hand:
4
+ # docker build -t my-app .
5
+ # docker run -d -p 80:80 -p 443:443 --name my-app -e RAILS_MASTER_KEY=<value from config/master.key> my-app
6
+
7
+ # Make sure RUBY_VERSION matches the Ruby version in .ruby-version
8
+ ARG RUBY_VERSION=3.1.2
9
+ FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
10
+
11
+ # Rails app lives here
12
+ WORKDIR /rails
13
+
14
+ # Install base packages
15
+ RUN apt-get update -qq && \
16
+ apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \
17
+ rm -rf /var/lib/apt/lists /var/cache/apt/archives
18
+
19
+ # Set production environment
20
+ ENV RAILS_ENV="production" \
21
+ BUNDLE_DEPLOYMENT="1" \
22
+ BUNDLE_PATH="/usr/local/bundle" \
23
+ BUNDLE_WITHOUT="development"
24
+
25
+ # Throw-away build stage to reduce size of final image
26
+ FROM base AS build
27
+
28
+ # Install packages needed to build gems
29
+ RUN apt-get update -qq && \
30
+ apt-get install --no-install-recommends -y build-essential git pkg-config && \
31
+ rm -rf /var/lib/apt/lists /var/cache/apt/archives
32
+
33
+ # Install application gems
34
+ COPY Gemfile Gemfile.lock ./
35
+ RUN bundle install && \
36
+ rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git && \
37
+ bundle exec bootsnap precompile --gemfile
38
+
39
+ # Copy application code
40
+ COPY . .
41
+
42
+ # Precompile bootsnap code for faster boot times
43
+ RUN bundle exec bootsnap precompile app/ lib/
44
+
45
+ # Precompiling assets for production without requiring secret RAILS_MASTER_KEY
46
+ RUN SECRET_KEY_BASE_DUMMY=1 ./bin/rails assets:precompile
47
+
48
+
49
+
50
+
51
+ # Final stage for app image
52
+ FROM base
53
+
54
+ # Copy built artifacts: gems, application
55
+ COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}"
56
+ COPY --from=build /rails /rails
57
+
58
+ # Run and own only the runtime files as a non-root user for security
59
+ RUN groupadd --system --gid 1000 rails && \
60
+ useradd rails --uid 1000 --gid 1000 --create-home --shell /bin/bash && \
61
+ chown -R rails:rails db log storage tmp
62
+ USER 1000:1000
63
+
64
+ # Entrypoint prepares the database.
65
+ ENTRYPOINT ["/rails/bin/docker-entrypoint"]
66
+
67
+ # Start the server by default, this can be overwritten at runtime
68
+ EXPOSE 3000
69
+ CMD ["./bin/rails", "server"]
data/Gemfile ADDED
@@ -0,0 +1,68 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "devise"
4
+ gem "tty-reader"
5
+ gem "tty-cursor"
6
+ gem "pastel"
7
+ gem "packetfu"
8
+ gem "webrick"
9
+ #gem "devise"
10
+ gem "nio4r", ">= 0"
11
+ # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
12
+ gem "rails", "~> 7.2.2", ">= 7.2.2.1"
13
+ # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
14
+ gem "sprockets-rails"
15
+ # Use sqlite3 as the database for Active Record
16
+ gem "sqlite3"
17
+ # Use the Puma web server [https://github.com/puma/puma]
18
+ gem "puma", ">= 5.0"
19
+ # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
20
+ gem "importmap-rails"
21
+ # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
22
+ gem "turbo-rails"
23
+ # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
24
+ gem "stimulus-rails"
25
+ # Build JSON APIs with ease [https://github.com/rails/jbuilder]
26
+ gem "jbuilder"
27
+ # Use Redis adapter to run Action Cable in production
28
+ # gem "redis", ">= 4.0.1"
29
+
30
+ # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
31
+ # gem "kredis"
32
+
33
+ # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
34
+ # gem "bcrypt", "~> 3.1.7"
35
+
36
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
37
+ gem "tzinfo-data", platforms: %i[ mswin mswin64 mingw x64_mingw jruby ]
38
+
39
+ # Reduces boot times through caching; required in config/boot.rb
40
+ gem "bootsnap", require: false
41
+
42
+ # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
43
+ # gem "image_processing", "~> 1.2"
44
+
45
+ group :development, :test do
46
+ # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
47
+ gem "debug", platforms: %i[ mri mswin mswin64 mingw x64_mingw ], require: "debug/prelude"
48
+
49
+ # Static analysis for security vulnerabilities [https://brakemanscanner.org/]
50
+ gem "brakeman", require: false
51
+
52
+ # Omakase Ruby styling [https://github.com/rails/rubocop-rails-omakase/]
53
+ gem "rubocop-rails-omakase", require: false
54
+ end
55
+
56
+ group :development do
57
+ # Use console on exceptions pages [https://github.com/rails/web-console]
58
+ gem "web-console"
59
+
60
+ # Highlight the fine-grained location where an error occurred [https://github.com/ruby/error_highlight]
61
+ gem "error_highlight", ">= 0.4.0", platforms: [ :ruby ]
62
+ end
63
+
64
+ group :test do
65
+ # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
66
+ gem "capybara"
67
+ gem "selenium-webdriver"
68
+ end
data/README.md ADDED
@@ -0,0 +1,188 @@
1
+ # WibrFake 🌐🔍
2
+
3
+ [![Version](https://img.shields.io/badge/version-0.0.2-blue.svg)](https://github.com/yourusername/wibrfake)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-success.svg)](https://github.com/yourusername/wibrfake)
6
+ [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg)](CONTRIBUTING.md)
7
+
8
+ **Advanced Wi-Fi Security Assessment Framework**
9
+ *Professional tool for wireless network penetration testing and vulnerability analysis*
10
+
11
+ ---
12
+
13
+ ## 📖 Table of Contents
14
+ - [Key Features](#-key-features)
15
+ - [Ethical Considerations](#-ethical-considerations)
16
+ - [Prerequisites](#-prerequisites)
17
+ - [Installation](#-installation)
18
+ - [Basic Usage](#-basic-usage)
19
+ - [Attack Modules](#-attack-modules)
20
+ - [Captive Portal Templates](#-captive-portal-templates)
21
+ - [Contributing](#-contributing)
22
+ - [License](#-license)
23
+
24
+ ---
25
+
26
+ ## ✨ Key Features
27
+
28
+ ### Core Capabilities
29
+ - **Rogue Access Point Deployment**
30
+ - Custom SSID configuration
31
+ - Multiple channel support
32
+ - Traffic interception & analysis
33
+ - **Advanced MAC Spoofing**
34
+ - OUI validation system
35
+ - Random/preset MAC generation
36
+ - MAC persistence management
37
+ - **Session Orchestration**
38
+ - Parallel attack sessions
39
+ - State preservation
40
+ - Configuration versioning
41
+
42
+ ### Enterprise-Grade Modules
43
+ | Module | Description |
44
+ |--------|-------------|
45
+ | **Evil Twin** | AP cloning with beacon flooding |
46
+ | **Captive Portal** | Credential harvesting framework |
47
+ | **WKdump Automation** | YAML-based attack configurations |
48
+
49
+ ---
50
+
51
+ ## ⚠ Ethical Considerations
52
+
53
+ **This tool must only be used for:**
54
+ - Authorized security audits
55
+ - Educational purposes
56
+ - Ethical penetration testing
57
+
58
+ **By using WibrFake, you agree to:**
59
+ - Comply with all applicable laws
60
+ - Obtain proper authorization
61
+ - Respect network privacy
62
+ - Never engage in malicious activities
63
+
64
+ ---
65
+
66
+ ## 🔧 Prerequisites
67
+
68
+ ### Mandatory Requirements
69
+ ```bash
70
+ sudo apt-get install -y \
71
+ hostapd \
72
+ libpcap-dev \
73
+ ruby \
74
+ ruby-full \
75
+ ```
76
+
77
+ ### Recommended Specifications
78
+ - Linux
79
+ - Wireless adapter supporting ap mode
80
+ - Dual-band Wi-Fi card (2.4GHz/5GHz)
81
+ - Minimum 2GB RAM
82
+
83
+ ---
84
+
85
+ ## 🚀 Installation
86
+
87
+ ### Standard Setup
88
+ ```bash
89
+ git clone https://github.com/BreakerTWS/WibrFake.git
90
+ cd WibrFake
91
+ sudo bundle install
92
+ sudo ruby bin/wibrfake --help
93
+ ```
94
+
95
+ ### RubyGem (Recommended)
96
+ ```bash
97
+ sudo gem install wibrfake-brk
98
+ sudo wibrfake --help
99
+ ```
100
+
101
+ ---
102
+ # Usage
103
+ This will launch a web server displaying the complete usage documentation for the wibrfake program:
104
+
105
+ ```bash
106
+ sudo wibrfake --usage
107
+ ```
108
+ ## 🕹 Basic Usage
109
+
110
+ ### Initialization
111
+ ```bash
112
+ sudo wibrfake --mode cli --iface wlan0
113
+ ```
114
+
115
+ ### MAC Management
116
+ ```bash
117
+ # Show current configuration
118
+ mac status
119
+
120
+ #OUIs list
121
+ mac list
122
+
123
+ mac list 10..20
124
+
125
+ # Generate random MAC with valid OUI
126
+ mac ramset b2:fa:91
127
+
128
+ # Set specific MAC address
129
+ mac set 00:11:22:33:44:55
130
+ ```
131
+
132
+ ---
133
+
134
+ ## ⚡ Attack Modules
135
+
136
+ ### Rogue AP Deployment
137
+ ```bash
138
+ set ssid Wifi_Free
139
+ apfake on
140
+ ```
141
+
142
+ ### Evil Twin Attack
143
+ ```bash
144
+ Continue...
145
+ ```
146
+
147
+ ---
148
+
149
+ ## 🔐 Captive Portal Templates
150
+
151
+ WibrFake supports enterprise-grade phishing templates:
152
+
153
+ | Template | Description | Authentication Methods |
154
+ |----------|-------------|-------------------------|
155
+ | **Basic Login** | Generic credential form | Username/Password |
156
+ | **Nauta Etecsa** | Cuban ISP portal clone | Account Nauta |
157
+ | **Nauta Hogar** | Residential ISP variant | Account Nauta |
158
+ | **Google** | Social media clone | OAuth/2FA |
159
+ | **Facebook** | Social media clone | Email/Phone |
160
+ | **Instagram** | Social media clone | Social credentials |
161
+
162
+ ---
163
+
164
+ ## 🤝 Contributing
165
+
166
+ We welcome responsible disclosures and ethical contributions. Please review our:
167
+ - [Contribution Guidelines](CONTRIBUTING.md)
168
+
169
+ ---
170
+
171
+ ## 📜 License
172
+
173
+ Distributed under MIT License. See [LICENSE](LICENSE) for full details.
174
+
175
+ ---
176
+
177
+ ## 🔒 Security Recommendations
178
+
179
+ For optimal security during audits:
180
+ 1. Use dedicated hardware
181
+ 2. Enable VPN tunneling
182
+ 3. Regularly rotate MAC addresses
183
+ 4. Limit attack surface
184
+ 5. Destroy captured data post-audit
185
+
186
+ > **Warning**
187
+ > Unauthorized use of this software violates international laws.
188
+ > Developers assume no liability for misuse.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative "config/application"
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,5 @@
1
+ //= link_tree ../images
2
+ //= link_tree ../stylesheets .css
3
+ //= link_tree ../../javascript .js
4
+ //= link_tree ../../../vendor/javascript .js
5
+
File without changes
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1090" height="360" fill="none" viewBox="0 0 1090 360">
2
+ <path fill="#0866FF" d="M881.583 257.897h29.48v-47.696l41.137 47.696h36.072l-47.89-54.969 40.909-47.663h-32.825l-37.403 43.93v-96.982l-29.48 3.864v151.82Zm-67.988-105.261c-32.728 0-55.455 22.013-55.455 53.929s22.727 53.929 55.455 53.929c32.727 0 55.455-22.013 55.455-53.929s-22.728-53.929-55.455-53.929Zm0 82.728c-15.163 0-25.552-11.721-25.552-28.799s10.389-28.799 25.552-28.799c15.162 0 25.552 11.721 25.552 28.799s-10.39 28.799-25.552 28.799Zm-119.807-82.728c-32.727 0-55.455 22.013-55.455 53.929s22.728 53.929 55.455 53.929c32.728 0 55.455-22.013 55.455-53.929s-22.727-53.929-55.455-53.929Zm0 82.728c-15.162 0-25.552-11.721-25.552-28.799s10.39-28.799 25.552-28.799c15.163 0 25.552 11.721 25.552 28.799s-10.389 28.799-25.552 28.799Zm-112.826-82.728c-13.636 0-24.935 5.357-32.013 15.162v-65.585l-29.513 3.831v151.82h26.169l.519-15.844c6.981 11.818 19.481 18.474 34.838 18.474 27.988 0 48.475-22.728 48.475-53.929 0-31.202-20.39-53.929-48.475-53.929Zm-6.98 82.728c-15.163 0-25.552-11.721-25.552-28.799s10.389-28.799 25.552-28.799c15.162 0 25.552 11.721 25.552 28.799s-10.39 28.799-25.552 28.799Zm-113.638 1.331c-15.649 0-26.883-7.273-30.714-19.805h72.63c.715-3.831 1.202-8.377 1.202-11.429 0-33.02-18.475-52.825-49.514-52.825-31.331 0-53.02 22.013-53.02 53.929 0 32.338 22.728 53.929 56.462 53.929 17.467 0 34.448-5.844 45.065-15.552l-10.617-18.701c-10.292 7.11-20.39 10.454-31.494 10.454Zm-6.591-61.137c13.637 0 22.338 8.279 22.338 21.104v.098h-47.078c2.825-13.604 11.623-21.202 24.74-21.202Zm-98.994 84.968c15.26 0 30.195-5.844 40.714-15.974l-11.526-19.383c-8.182 6.364-17.467 9.805-26.266 9.805-16.364 0-27.273-11.429-27.273-28.377s10.909-28.377 27.273-28.377c8.084 0 16.883 2.922 24.026 8.085l11.721-19.806c-9.481-8.571-24.156-13.831-38.702-13.831-32.013 0-54.643 22.338-54.643 53.929.032 31.494 22.662 53.929 54.676 53.929Zm-93.735-105.261-.519 15.975c-6.981-11.916-19.481-18.572-34.838-18.572-28.085 0-48.475 22.728-48.475 53.929 0 31.202 20.52 53.929 48.475 53.929 15.357 0 27.889-6.656 34.838-18.474l.519 15.844h26.169V155.265h-26.169Zm-28.377 80.099c-15.162 0-25.552-11.721-25.552-28.799s10.39-28.799 25.552-28.799c15.163 0 25.552 11.721 25.552 28.799s-10.422 28.799-25.552 28.799Zm-57.663-79.906h-26.526v-8.767c0-13.117 5.13-18.149 18.442-18.149 4.123 0 7.467.097 9.383.292v-22.5c-3.637-1.007-12.5-2.013-17.63-2.013-27.111 0-39.611 12.792-39.611 40.422v10.682h-16.753v24.806h16.753v77.631h29.448v-77.599h21.949l4.545-24.805Z"/>
3
+ </svg>