monocross 1.0.1
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.
- package/LICENSE +13 -0
- package/_init/.monotomic.help.txt +628 -0
- package/_init/attachments.html +13 -0
- package/_init/attachments.ics +19 -0
- package/_init/attachments_msgs/info.md +3 -0
- package/_init/attachments_msgs/message-svg.html +13 -0
- package/_init/attachments_msgs/messages-doc.html +26 -0
- package/_init/attachments_msgs/messages-epub.html +53 -0
- package/_init/attachments_msgs/messages-ics.html +43 -0
- package/_init/attachments_msgs/messages-img.html +27 -0
- package/_init/attachments_msgs/messages-md.html +20 -0
- package/_init/attachments_msgs/messages-mov.html +71 -0
- package/_init/attachments_msgs/messages-odt.html +18 -0
- package/_init/attachments_msgs/messages-pdf.html +26 -0
- package/_init/attachments_msgs/messages-pdf.md +11 -0
- package/_init/attachments_msgs/messages-pptx.html +22 -0
- package/_init/attachments_msgs/messages-rtf.html +21 -0
- package/_init/attachments_msgs/messages-wav.html +16 -0
- package/_init/attachments_msgs/messages-xlsx.html +30 -0
- package/_init/bulk-from-mail.txt +6 -0
- package/_init/emails.txt +6 -0
- package/_init/froms.txt +2 -0
- package/_init/functions.txt +309 -0
- package/_init/generated/info.md +3 -0
- package/_init/help.txt +29 -0
- package/_init/icon-emojis.txt +48 -0
- package/_init/links.txt +4 -0
- package/_init/messages.html +13 -0
- package/_init/monotomic.json +816 -0
- package/_init/monotomic.key +1 -0
- package/_init/props/.judger/readme.txt +93 -0
- package/_init/props/eml/attachments_msgs/e_message-svg.html +10 -0
- package/_init/props/eml/attachments_msgs/e_messages-doc.html +14 -0
- package/_init/props/eml/attachments_msgs/e_messages-epub.html +14 -0
- package/_init/props/eml/attachments_msgs/e_messages-ics.html +34 -0
- package/_init/props/eml/attachments_msgs/e_messages-md.html +12 -0
- package/_init/props/eml/attachments_msgs/e_messages-mov.html +70 -0
- package/_init/props/eml/attachments_msgs/e_messages-odt.html +12 -0
- package/_init/props/eml/attachments_msgs/e_messages-pdf.html +16 -0
- package/_init/props/eml/attachments_msgs/e_messages-pptx.html +19 -0
- package/_init/props/eml/attachments_msgs/e_messages-rtf.html +14 -0
- package/_init/props/eml/attachments_msgs/e_messages-wav.html +13 -0
- package/_init/props/eml/attachments_msgs/e_messages-xlsx.html +25 -0
- package/_init/props/eml/e_attachments.html +13 -0
- package/_init/props/eml/e_attachments.ics +19 -0
- package/_init/props/eml/e_messages.html +13 -0
- package/_init/props/info.md +3 -0
- package/_init/props/redirect/api_keys.txt +40 -0
- package/_init/props/redirect/domain.txt +7 -0
- package/_init/props/redirect/readme.txt +90 -0
- package/_init/props/sorter/sorter-options.txt +188 -0
- package/_init/proxy_engine.txt +27 -0
- package/_init/readme.txt +4 -0
- package/_init/senders.txt +6 -0
- package/_init/smtps.txt +25 -0
- package/_init/socks.txt +14 -0
- package/_init/subjects.txt +2 -0
- package/commands/auth.js +1 -0
- package/commands/cleaner.js +1 -0
- package/commands/debounce.js +1 -0
- package/commands/extract.js +1 -0
- package/commands/features.js +1 -0
- package/commands/functions.js +1 -0
- package/commands/index.js +1 -0
- package/commands/init.js +1 -0
- package/commands/jdop.js +1 -0
- package/commands/judger.js +1 -0
- package/commands/mthp.js +1 -0
- package/commands/mx.js +1 -0
- package/commands/redirect.js +1 -0
- package/commands/renew.js +1 -0
- package/commands/send.js +1 -0
- package/commands/sort.js +1 -0
- package/commands/update.js +1 -0
- package/commands/user.js +1 -0
- package/commands/verify.js +1 -0
- package/denv.js +1 -0
- package/functions/advance.js +1 -0
- package/functions/auths.js +1 -0
- package/functions/cln/index.js +1 -0
- package/functions/conversion-source.js +1 -0
- package/functions/deb/buckets.js +1 -0
- package/functions/deb/dns-intel.js +1 -0
- package/functions/deb/domain-cache.js +1 -0
- package/functions/deb/index.js +1 -0
- package/functions/deb/rules.js +1 -0
- package/functions/deb/smtp-probe.js +1 -0
- package/functions/deps.js +2 -0
- package/functions/ext/index.js +1 -0
- package/functions/extends.js +1 -0
- package/functions/globals.js +1 -0
- package/functions/gtp/cHtmlRtf.js +1 -0
- package/functions/gtp/cHtmlRtfWImage.js +1 -0
- package/functions/gtp/cHtmlXls.js +1 -0
- package/functions/gtp/clientsidejs/processingHtml.js +1 -0
- package/functions/gtp/encryptHtml.js +1 -0
- package/functions/ipr/agents.js +1 -0
- package/functions/ipr/index.js +1 -0
- package/functions/ipr/parser.js +1 -0
- package/functions/ipr/probe.js +1 -0
- package/functions/ipr/proxy-engine.js +1 -0
- package/functions/ipr/rotator.js +1 -0
- package/functions/ipr/runtime.js +1 -0
- package/functions/ipr/smtp-handshake.js +1 -0
- package/functions/ipr/validate.js +1 -0
- package/functions/jdg/autodiscover.js +1 -0
- package/functions/jdg/dns-resolve.js +1 -0
- package/functions/jdg/domain-cache.js +1 -0
- package/functions/jdg/http.js +1 -0
- package/functions/jdg/index.js +1 -0
- package/functions/jdg/platforms.js +1 -0
- package/functions/message-encryption-engine.js +1 -0
- package/functions/mxc/index.js +1 -0
- package/functions/obfuscator-engine.js +1 -0
- package/functions/qrtest.js +1 -0
- package/functions/rdt/api-keys.js +1 -0
- package/functions/rdt/candidates.js +1 -0
- package/functions/rdt/cli-args.js +1 -0
- package/functions/rdt/dns-guard.js +1 -0
- package/functions/rdt/domain-budget.js +1 -0
- package/functions/rdt/http-client.js +1 -0
- package/functions/rdt/index.js +1 -0
- package/functions/rdt/output.js +1 -0
- package/functions/rdt/scanner.js +1 -0
- package/functions/rdt/sources.js +1 -0
- package/functions/rdt/utils.js +1 -0
- package/functions/renew.js +1 -0
- package/functions/snd/index.js +1 -0
- package/functions/snd/mailers/mailer-dns.js +1 -0
- package/functions/snd/mailers/mailer-ews.js +1 -0
- package/functions/snd/mailers/mailer-free.js +1 -0
- package/functions/snd/mailers/mailer-local.js +1 -0
- package/functions/snd/mailers/mailer-mx-direct.js +1 -0
- package/functions/snd/mailers/mailer-mx.js +1 -0
- package/functions/snd/mailers/mailer-proxy.js +1 -0
- package/functions/snd/mailers/mailer-zimbra.js +1 -0
- package/functions/snd/mailers/verify-zimbra.js +2 -0
- package/functions/srt/index.js +1 -0
- package/functions/user.js +1 -0
- package/functions/vrf/dns-resolve.js +1 -0
- package/functions/vrf/http-client.js +1 -0
- package/functions/vrf/index.js +1 -0
- package/functions/vrf/providers.js +1 -0
- package/functions/zip-archive.js +1 -0
- package/helpers.js +1 -0
- package/howto.txt +15 -0
- package/package.json +69 -0
- package/ultra.js +2 -0
- package/utils/checker.js +1 -0
- package/utils/colors.js +1 -0
- package/utils/features.js +1 -0
- package/utils/hide.js +1 -0
- package/utils/jdfr.js +1 -0
- package/utils/jwtVerify.js +1 -0
- package/utils/mthp.js +1 -0
- package/utils/placeholders.js +1 -0
- package/utils/tok.js +1 -0
- package/utils/types.js +1 -0
- package/utils/validation.js +1 -0
- package/utils/whid.js +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please paste your key here
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Judger — Webmail Host Detection
|
|
2
|
+
================================
|
|
3
|
+
|
|
4
|
+
This folder is hidden by default. It appears when you run:
|
|
5
|
+
|
|
6
|
+
monocross judger
|
|
7
|
+
monocross monotomic judger
|
|
8
|
+
|
|
9
|
+
Load emails into emails.txt, then run one of the commands above.
|
|
10
|
+
|
|
11
|
+
Select one of:
|
|
12
|
+
- OWA
|
|
13
|
+
- Zimbra
|
|
14
|
+
- Roundcube
|
|
15
|
+
- SmarterMail
|
|
16
|
+
|
|
17
|
+
Or use flags:
|
|
18
|
+
monocross judger --owa
|
|
19
|
+
monocross judger --zimbra
|
|
20
|
+
monocross judger --roundcube
|
|
21
|
+
monocross judger --smartermail
|
|
22
|
+
|
|
23
|
+
Output format (all platforms)
|
|
24
|
+
-----------------------------
|
|
25
|
+
After selecting any platform you can choose:
|
|
26
|
+
- With login URL → email, https://login-page-url
|
|
27
|
+
- Email only → email@domain.com
|
|
28
|
+
|
|
29
|
+
Or pass flags directly:
|
|
30
|
+
monocross judger --owa --with-url
|
|
31
|
+
monocross judger --zimbra --no-url
|
|
32
|
+
monocross judger --roundcube --with-url
|
|
33
|
+
monocross judger --smartermail --no-url
|
|
34
|
+
|
|
35
|
+
Advanced backend
|
|
36
|
+
----------------
|
|
37
|
+
- Cached DNS intel (MX, TXT, SRV autodiscover/caldav/imaps/submission, CNAME)
|
|
38
|
+
- In-flight dedup: one probe per domain even at high concurrency
|
|
39
|
+
- Host ranking from DNS hints — highest-signal hosts probed first
|
|
40
|
+
- Priority-tier HTTP probing with retry, early exit, and header fingerprinting
|
|
41
|
+
- Exchange autodiscover XML (parallel POST/GET) for on-prem OWA URLs
|
|
42
|
+
- Zimbra health.json parallel fast-path detection
|
|
43
|
+
- SmarterMail /api/v1/info JSON fast-path
|
|
44
|
+
- OWA federation cache per domain (GetCredentialType)
|
|
45
|
+
- cPanel port probing (2096/2095) for Roundcube
|
|
46
|
+
- SmarterMail multi-port probing (9998/443/80)
|
|
47
|
+
- Platform marker scoring — reduces false positives from generic login pages
|
|
48
|
+
- detections.jsonl detail log with confidence + detection method
|
|
49
|
+
|
|
50
|
+
OWA never uses Office 365 cloud URLs — only real on-prem login pages.
|
|
51
|
+
|
|
52
|
+
Results are saved under results/judged/<platform>/<timestamp>/
|
|
53
|
+
|
|
54
|
+
Output files
|
|
55
|
+
------------
|
|
56
|
+
OWA:
|
|
57
|
+
OWA_Email.txt
|
|
58
|
+
OWA_Email(blue).txt
|
|
59
|
+
OWA_Email(green).txt
|
|
60
|
+
OWA_Email(yellow).txt
|
|
61
|
+
OWA_Email(unknown_style).txt
|
|
62
|
+
Not_OWA.txt
|
|
63
|
+
|
|
64
|
+
Zimbra:
|
|
65
|
+
Zimbra_Email.txt
|
|
66
|
+
Zimbra_Email(modern).txt
|
|
67
|
+
Zimbra_Email(classic).txt
|
|
68
|
+
Zimbra_Email(unknown_style).txt
|
|
69
|
+
Not_Zimbra.txt
|
|
70
|
+
|
|
71
|
+
Roundcube:
|
|
72
|
+
Roundcube_Email.txt
|
|
73
|
+
Roundcube_Email(cpanel).txt
|
|
74
|
+
Roundcube_Email(elastic).txt
|
|
75
|
+
Roundcube_Email(classic).txt
|
|
76
|
+
Not_Roundcube.txt
|
|
77
|
+
|
|
78
|
+
SmarterMail:
|
|
79
|
+
SmarterMail_Email.txt
|
|
80
|
+
SmarterMail_Email(default).txt
|
|
81
|
+
SmarterMail_Email(dark).txt
|
|
82
|
+
SmarterMail_Email(blue).txt
|
|
83
|
+
SmarterMail_Email(light).txt
|
|
84
|
+
Not_SmarterMail.txt
|
|
85
|
+
|
|
86
|
+
Detail log:
|
|
87
|
+
detections.jsonl
|
|
88
|
+
|
|
89
|
+
Matched lines with URL:
|
|
90
|
+
user@domain.com, https://mail.domain.com/owa/auth/logon.aspx?replaceCurrent=1&url=...
|
|
91
|
+
|
|
92
|
+
Matched lines without URL:
|
|
93
|
+
user@domain.com
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<div style="font-family: Arial, sans-serif; color: #1f2937;">
|
|
2
|
+
<!-- monocross nested "HTML → SVG" template for EML attachments. -->
|
|
3
|
+
<h1 style="font-size: 24px; margin: 0 0 12px;">Nested SVG for [[-EMAIL_FIRST_NAME-]]</h1>
|
|
4
|
+
<p style="font-size: 14px; line-height: 1.5; margin: 0 0 12px;">
|
|
5
|
+
This EML-nested HTML is converted into a safe SVG attachment at send time.
|
|
6
|
+
</p>
|
|
7
|
+
<p style="font-size: 13px; line-height: 1.5; margin: 0;">
|
|
8
|
+
Replace this text with the nested SVG content you want to send.
|
|
9
|
+
</p>
|
|
10
|
+
</div>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested Word Document</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body style="font-family: Arial, sans-serif; color: #111827; line-height: 1.55;">
|
|
8
|
+
<!-- monocross nested "Message → DOCX" template. -->
|
|
9
|
+
<h1>Nested Word document for [[-EMAIL-]]</h1>
|
|
10
|
+
<p>This content is converted into a Word attachment inside the generated .eml.</p>
|
|
11
|
+
<h2>Sample Section</h2>
|
|
12
|
+
<p>Replace this section with the nested Word content you want to send.</p>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested EPUB Document</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body style="font-family: Georgia, serif; color: #111827; line-height: 1.65;">
|
|
8
|
+
<!-- monocross nested "Message → EPUB" template. -->
|
|
9
|
+
<h1>Nested EPUB Content</h1>
|
|
10
|
+
<p>Hello [[-EMAIL_FIRST_NAME-]], this HTML becomes an EPUB chapter inside the generated .eml.</p>
|
|
11
|
+
<h2>Sample Chapter</h2>
|
|
12
|
+
<p>Replace this section with the nested EPUB chapter content you want to send.</p>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Calendar Event (EML)</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body style="font-family: -apple-system, Segoe UI, Roboto, sans-serif; color: #1f2937; line-height: 1.55;">
|
|
8
|
+
<!--
|
|
9
|
+
monocross "Message → ICS" template for EML-nested invitations.
|
|
10
|
+
Rendered as X-ALT-DESC inside the .eml's calendar attachment. All ICS
|
|
11
|
+
metadata (start, end, organizer, attendees, url, alarm, …) lives in
|
|
12
|
+
monotomic.json → props.eml_config.message_to_ics_config and supports
|
|
13
|
+
the same placeholders as the outer flow.
|
|
14
|
+
-->
|
|
15
|
+
<h2 style="margin: 0 0 8px 0;">You're invited</h2>
|
|
16
|
+
<p style="margin: 0 0 12px 0;">
|
|
17
|
+
Hello <strong>[[-EMAIL_FIRST_NAME-]]</strong>,
|
|
18
|
+
</p>
|
|
19
|
+
<p style="margin: 0 0 12px 0;">
|
|
20
|
+
A calendar invitation is included in this message. Open the attachment
|
|
21
|
+
to add it to your calendar.
|
|
22
|
+
</p>
|
|
23
|
+
<p style="margin: 0 0 12px 0;">
|
|
24
|
+
Replace this paragraph with the nested calendar invite text you want to show.
|
|
25
|
+
</p>
|
|
26
|
+
<p style="margin: 16px 0 0 0;">
|
|
27
|
+
<a
|
|
28
|
+
href="[[-LINKS-]]"
|
|
29
|
+
style="display: inline-block; padding: 10px 16px; background: #1f6feb; color: #fff; text-decoration: none; border-radius: 4px;"
|
|
30
|
+
>Join the meeting</a
|
|
31
|
+
>
|
|
32
|
+
</p>
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>EML Markdown Document</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<h1>EML Markdown for [[-EMAIL-]]</h1>
|
|
9
|
+
<p>Generated [[-DATE_LONG-]]</p>
|
|
10
|
+
<p><a href="[[-LINKS-]]">Open link</a></p>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>EML HTML2MOV</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root {
|
|
8
|
+
--html2mov-progress: 0;
|
|
9
|
+
}
|
|
10
|
+
body {
|
|
11
|
+
margin: 0;
|
|
12
|
+
width: 1280px;
|
|
13
|
+
height: 720px;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
background: linear-gradient(135deg, #111827, #7c3aed);
|
|
16
|
+
color: #ffffff;
|
|
17
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
18
|
+
}
|
|
19
|
+
.slide {
|
|
20
|
+
box-sizing: border-box;
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 100%;
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-direction: column;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
padding: 72px;
|
|
27
|
+
}
|
|
28
|
+
h1 {
|
|
29
|
+
margin: 0 0 24px;
|
|
30
|
+
font-size: 58px;
|
|
31
|
+
line-height: 1.05;
|
|
32
|
+
}
|
|
33
|
+
p {
|
|
34
|
+
margin: 0;
|
|
35
|
+
max-width: 840px;
|
|
36
|
+
font-size: 28px;
|
|
37
|
+
line-height: 1.4;
|
|
38
|
+
}
|
|
39
|
+
.bar {
|
|
40
|
+
position: absolute;
|
|
41
|
+
left: 72px;
|
|
42
|
+
right: 72px;
|
|
43
|
+
bottom: 58px;
|
|
44
|
+
height: 10px;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
border-radius: 99px;
|
|
47
|
+
background: rgba(255, 255, 255, 0.25);
|
|
48
|
+
}
|
|
49
|
+
.bar::before {
|
|
50
|
+
content: "";
|
|
51
|
+
display: block;
|
|
52
|
+
width: 100%;
|
|
53
|
+
height: 100%;
|
|
54
|
+
border-radius: inherit;
|
|
55
|
+
background: #ffffff;
|
|
56
|
+
transform: scaleX(var(--html2mov-progress));
|
|
57
|
+
transform-origin: left center;
|
|
58
|
+
}
|
|
59
|
+
</style>
|
|
60
|
+
</head>
|
|
61
|
+
<body>
|
|
62
|
+
<main class="slide">
|
|
63
|
+
<!-- monocross nested "Message → MOV" template. This HTML is rendered frame by frame into a QuickTime video. -->
|
|
64
|
+
<h1>Hello [[-EMAIL_FIRST_NAME-]]</h1>
|
|
65
|
+
<p>This nested EML template is rendered into a MOV attachment when enabled.</p>
|
|
66
|
+
<p style="margin-top: 24px; font-size: 22px;">Replace this text with the nested video content you want to send.</p>
|
|
67
|
+
<div class="bar"></div>
|
|
68
|
+
</main>
|
|
69
|
+
</body>
|
|
70
|
+
</html>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>EML ODT Document</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<h1>EML ODT for [[-EMAIL-]]</h1>
|
|
9
|
+
<p>Generated [[-DATE_LONG-]]</p>
|
|
10
|
+
<p><a href="[[-LINKS-]]">Open link</a></p>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested PDF Document</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body style="font-family: Arial, sans-serif; color: #111827; line-height: 1.55; padding: 32px;">
|
|
8
|
+
<!-- monocross nested "Message → PDF" template for EML attachments. -->
|
|
9
|
+
<h1>Nested PDF for [[-EMAIL-]]</h1>
|
|
10
|
+
<p>Hello [[-EMAIL_FIRST_NAME-]], this HTML is rendered into a PDF inside the generated .eml.</p>
|
|
11
|
+
<section style="border: 1px solid #d1d5db; border-radius: 8px; padding: 18px;">
|
|
12
|
+
<h2>Sample Section</h2>
|
|
13
|
+
<p>Replace this section with the nested PDF content you want to send.</p>
|
|
14
|
+
</section>
|
|
15
|
+
</body>
|
|
16
|
+
</html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested Presentation</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<!-- monocross nested "Message → PPTX" template. -->
|
|
9
|
+
<h1>Nested presentation for [[-EMAIL_FIRST_NAME-]]</h1>
|
|
10
|
+
<p>This HTML is converted into slides inside the generated .eml.</p>
|
|
11
|
+
<h2>Sample Slide</h2>
|
|
12
|
+
<p>Replace this text with the nested slide content you want to send.</p>
|
|
13
|
+
<h2>Next Steps</h2>
|
|
14
|
+
<ul>
|
|
15
|
+
<li>Customize this nested template.</li>
|
|
16
|
+
<li>Enable the nested PPTX attachment in props.eml_config.</li>
|
|
17
|
+
</ul>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested RTF Document</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body style="font-family: Arial, sans-serif; color: #111827; line-height: 1.55;">
|
|
8
|
+
<!-- monocross nested "Message → RTF" template. -->
|
|
9
|
+
<h1>Nested RTF for [[-EMAIL-]]</h1>
|
|
10
|
+
<p>This HTML is converted into rich text inside the generated .eml.</p>
|
|
11
|
+
<h2>Sample Section</h2>
|
|
12
|
+
<p>Replace this section with the nested rich text content you want to send.</p>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested WAV Audio Script</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<!-- monocross nested "Message → WAV" template. Readable text is extracted and spoken into a WAV file. -->
|
|
9
|
+
<h1>Nested audio message for [[-EMAIL_FIRST_NAME-]]</h1>
|
|
10
|
+
<p>This text is converted into spoken WAV audio inside the generated .eml.</p>
|
|
11
|
+
<p>Replace this sentence with the nested spoken text you want to send.</p>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Nested Spreadsheet Data</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<!-- monocross nested "Message → XLSX" template. Tables map cleanly into spreadsheet rows. -->
|
|
9
|
+
<h1>Nested spreadsheet for [[-EMAIL-]]</h1>
|
|
10
|
+
<table>
|
|
11
|
+
<tr>
|
|
12
|
+
<th>Field</th>
|
|
13
|
+
<th>Value</th>
|
|
14
|
+
</tr>
|
|
15
|
+
<tr>
|
|
16
|
+
<td>Recipient</td>
|
|
17
|
+
<td>[[-EMAIL-]]</td>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<td>Sample Note</td>
|
|
21
|
+
<td>Replace this row with nested spreadsheet content you want to send.</td>
|
|
22
|
+
</tr>
|
|
23
|
+
</table>
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>EML Attachments</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<h2>EML Attachments</h2>
|
|
11
|
+
<p>Your Eml attachments...</p>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
BEGIN:VCALENDAR
|
|
2
|
+
VERSION:2.0
|
|
3
|
+
PRODID:-//monocross//monocross Calendar (EML)//EN
|
|
4
|
+
CALSCALE:GREGORIAN
|
|
5
|
+
METHOD:PUBLISH
|
|
6
|
+
BEGIN:VEVENT
|
|
7
|
+
UID:eml-static-template-event@monocross
|
|
8
|
+
DTSTAMP:20260101T090000Z
|
|
9
|
+
DTSTART:20260101T090000Z
|
|
10
|
+
DTEND:20260101T100000Z
|
|
11
|
+
SUMMARY:Static EML calendar invite
|
|
12
|
+
DESCRIPTION:Pre-built ICS attached inside the .eml bundle.\nEdit props/eml/e_attachments.ics to customize.
|
|
13
|
+
LOCATION:Online
|
|
14
|
+
STATUS:CONFIRMED
|
|
15
|
+
TRANSP:OPAQUE
|
|
16
|
+
CLASS:PUBLIC
|
|
17
|
+
SEQUENCE:0
|
|
18
|
+
END:VEVENT
|
|
19
|
+
END:VCALENDAR
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>EML Message Body</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<h2>EML Body</h2>
|
|
11
|
+
<p>Your Eml message...</p>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Redirect Scanner — API Keys & Scan Sources
|
|
2
|
+
#
|
|
3
|
+
# Configure API-key scanning here. Environment variables override file values.
|
|
4
|
+
#
|
|
5
|
+
# ── Scan mode ─────────────────────────────────────────────────────────────
|
|
6
|
+
# Set USE_API_SCAN=true to run API-key discovery (same as --api-scan).
|
|
7
|
+
USE_API_SCAN=false
|
|
8
|
+
|
|
9
|
+
# Choose which API sources to use when USE_API_SCAN=true.
|
|
10
|
+
# Each source listed here must have its key set below.
|
|
11
|
+
SCAN_SOURCES=virustotal,intelx,urlscan
|
|
12
|
+
|
|
13
|
+
# Max elapsed time per domain (milliseconds). Default 300000 = 5 minutes.
|
|
14
|
+
DOMAIN_MAX_ELAPSED_MS=300000
|
|
15
|
+
|
|
16
|
+
# Portion of domain budget reserved for URL discovery (0.15 - 0.60).
|
|
17
|
+
DOMAIN_DISCOVERY_RATIO=0.35
|
|
18
|
+
|
|
19
|
+
# ── API keys ──────────────────────────────────────────────────────────────
|
|
20
|
+
# KEY=value or source=value
|
|
21
|
+
|
|
22
|
+
VIRUSTOTAL_API_KEY=
|
|
23
|
+
INTELX_API_KEY=
|
|
24
|
+
INTELX_API_URL=https://2.intelx.io
|
|
25
|
+
URLSCAN_API_KEY=
|
|
26
|
+
OTX_API_KEY=
|
|
27
|
+
SHODAN_API_KEY=
|
|
28
|
+
SECURITYTRAILS_API_KEY=
|
|
29
|
+
|
|
30
|
+
# ── Examples ──────────────────────────────────────────────────────────────
|
|
31
|
+
# USE_API_SCAN=true
|
|
32
|
+
# SCAN_SOURCES=virustotal,urlscan,shodan
|
|
33
|
+
# VIRUSTOTAL_API_KEY=your_virustotal_key
|
|
34
|
+
# URLSCAN_API_KEY=your_urlscan_key
|
|
35
|
+
# SHODAN_API_KEY=your_shodan_key
|
|
36
|
+
#
|
|
37
|
+
# Run:
|
|
38
|
+
# monocross redirect --domain example.com --api-scan
|
|
39
|
+
# monocross redirect --domain example.com
|
|
40
|
+
# (auto API scan when USE_API_SCAN=true in this file)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
Open Redirect Scanner
|
|
2
|
+
|
|
3
|
+
Put domains in domain.txt, one domain per line.
|
|
4
|
+
|
|
5
|
+
Run (default — stop on first open redirect per domain):
|
|
6
|
+
monocross redirect
|
|
7
|
+
monocross redirect --domain.txt
|
|
8
|
+
|
|
9
|
+
Deep scan every domain in domain.txt (exhaustive — all URLs/params):
|
|
10
|
+
monocross redirect --domain.txt deep-scan
|
|
11
|
+
monocross redirect --domain.txt --deep-scan
|
|
12
|
+
monocross redirect --domain-file props/redirect/domain.txt --deep-scan
|
|
13
|
+
|
|
14
|
+
Single domain:
|
|
15
|
+
monocross redirect --domain example.com
|
|
16
|
+
monocross redirect --domain example.com --deep-scan
|
|
17
|
+
|
|
18
|
+
Results are created automatically in:
|
|
19
|
+
props/redirect/results/<timestamp>/
|
|
20
|
+
|
|
21
|
+
Configuration files:
|
|
22
|
+
domain.txt — domains to scan (default input)
|
|
23
|
+
api_keys.txt — API keys, scan sources, and per-domain time budget
|
|
24
|
+
|
|
25
|
+
Generated files:
|
|
26
|
+
discovered_urls.txt — URLs collected from passive sources
|
|
27
|
+
sources_summary.jsonl — per-source discovery stats per domain
|
|
28
|
+
domain_results.jsonl — per-domain timing, params scanned, vulnerable count
|
|
29
|
+
open_redirects.jsonl — vulnerable findings with param + redirect result
|
|
30
|
+
open_redirects.csv — vulnerable findings (CSV)
|
|
31
|
+
scan_log.jsonl — detailed scan events
|
|
32
|
+
state.json — live progress (updated during scan + on each finding)
|
|
33
|
+
summary.json — run totals and timing
|
|
34
|
+
errors.txt — probe errors
|
|
35
|
+
|
|
36
|
+
API keys file (props/redirect/api_keys.txt):
|
|
37
|
+
USE_API_SCAN=true|false — enable API-key scan mode (or pass --api-scan)
|
|
38
|
+
SCAN_SOURCES=virustotal,intelx — choose which API sources to use
|
|
39
|
+
DOMAIN_MAX_ELAPSED_MS=300000 — 5 minute max per domain (default)
|
|
40
|
+
DOMAIN_DISCOVERY_RATIO=0.35 — discovery phase share of domain budget
|
|
41
|
+
|
|
42
|
+
Keys (KEY=value or source=value):
|
|
43
|
+
VIRUSTOTAL_API_KEY / virustotal=
|
|
44
|
+
INTELX_API_KEY / intelx=
|
|
45
|
+
INTELX_API_URL (optional)
|
|
46
|
+
URLSCAN_API_KEY / urlscan=
|
|
47
|
+
OTX_API_KEY / otx=
|
|
48
|
+
SHODAN_API_KEY / shodan=
|
|
49
|
+
SECURITYTRAILS_API_KEY / securitytrails=
|
|
50
|
+
|
|
51
|
+
Environment variables override file values.
|
|
52
|
+
|
|
53
|
+
Per-domain 5-minute budget:
|
|
54
|
+
Each domain is scanned within DOMAIN_MAX_ELAPSED_MS (default 5 min).
|
|
55
|
+
Discovery runs first (~35% of budget), then URLs are probed one at a time.
|
|
56
|
+
On the first confirmed open redirect the scanner extracts the redirect
|
|
57
|
+
pattern (param + template URL) and stops — no 500k candidate build.
|
|
58
|
+
|
|
59
|
+
Set REDIRECT_FULL_SCAN=1 or use --deep-scan to exhaust every URL/param.
|
|
60
|
+
|
|
61
|
+
Output also includes:
|
|
62
|
+
redirect_patterns.jsonl — extracted redirect template on first hit
|
|
63
|
+
|
|
64
|
+
Scan modes:
|
|
65
|
+
Standard:
|
|
66
|
+
monocross redirect --domain example.com
|
|
67
|
+
All passive sources; keyed sources run when keys are configured.
|
|
68
|
+
|
|
69
|
+
API scan (from file or CLI):
|
|
70
|
+
USE_API_SCAN=true
|
|
71
|
+
SCAN_SOURCES=virustotal,urlscan,shodan
|
|
72
|
+
monocross redirect --domain example.com --api-scan
|
|
73
|
+
Uses only SCAN_SOURCES that have keys in api_keys.txt.
|
|
74
|
+
|
|
75
|
+
Deep scan (domain.txt or single domain):
|
|
76
|
+
monocross redirect --domain.txt deep-scan
|
|
77
|
+
monocross redirect --domain example.com --deep-scan
|
|
78
|
+
Higher URL limits, all query params, expanded redirect candidates, no early stop.
|
|
79
|
+
|
|
80
|
+
Useful commands:
|
|
81
|
+
monocross redirect --domain.txt deep-scan
|
|
82
|
+
monocross redirect --domain example.com --api-scan
|
|
83
|
+
monocross redirect --domain example.com --deep-scan
|
|
84
|
+
monocross redirect --api-keys-file props/redirect/api_keys.txt
|
|
85
|
+
monocross redirect --url "https://example.com/login?next=/home"
|
|
86
|
+
monocross redirect --payload "https://bestbuy.com"
|
|
87
|
+
monocross redirect --concurrency 50 --timeout 10000
|
|
88
|
+
|
|
89
|
+
The default vulnerable redirect destination is:
|
|
90
|
+
https://bestbuy.com
|