ืคื’ื™ืขื•ืช ื‘-OpenSMTPD ื”ืžืืคืฉืจืช ื‘ื™ืฆื•ืข ืงื•ื“ ืžืจื—ื•ืง ืขื ื”ืจืฉืื•ืช ืฉื•ืจืฉ

ื‘ืฉืจืช ื”ื“ื•ืืจ ืฉืคื•ืชื— ืขืœ ื™ื“ื™ ืคืจื•ื™ืงื˜ OpenBSD OpenSMTPD ืžื–ื•ื”ื” ืคื’ื™ืขื•ืช ืงืจื™ื˜ื™ืช (CVE-2020-7247), ื”ืžืืคืฉืจ ืœืš ืœื‘ืฆืข ืžืจื—ื•ืง ืคืงื•ื“ื•ืช ืžืขื˜ืคืช ื‘ืฉืจืช ืขื ื–ื›ื•ื™ื•ืช ืžืฉืชืžืฉ ืฉื•ืจืฉ. ื”ืคื’ื™ืขื•ืช ื–ื•ื”ืชื” ื‘ืžื”ืœืš ื‘ื™ืงื•ืจืช ื—ื•ื–ืจืช ืฉื‘ื•ืฆืขื” ืขืœ ื™ื“ื™ Qualys Security (ื‘ื™ืงื•ืจืช OpenSMTPD ืงื•ื“ืžืช ื ืขืจืš ื‘ืฉื ืช 2015, ื•ื”ืคื’ื™ืขื•ืช ื”ื—ื“ืฉื” ืงื™ื™ืžืช ืžืื– ืžืื™ 2018). ื‘ึผึฐืขึธื™ึธื” ื—ื•ืกืœื• ื‘ืžื”ื“ื•ืจืช OpenSMTPD 6.6.2. ืžื•ืžืœืฅ ืœื›ืœ ื”ืžืฉืชืžืฉื™ื ืœื”ืชืงื™ืŸ ืžื™ื“ ืืช ื”ืขื“ื›ื•ืŸ (ืขื‘ื•ืจ OpenBSD, ื ื™ืชืŸ ืœื”ืชืงื™ืŸ ืืช ื”ืชื™ืงื•ืŸ ื‘ืืžืฆืขื•ืช syspatch).

ืฉืชื™ ืืคืฉืจื•ื™ื•ืช ืชืงื™ืคื” ืžื•ืฆืขื•ืช. ื”ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื” ืคื•ืขืœืช ื‘ืชืฆื•ืจืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ OpenSMTPD (ืžืงื‘ืœืช ื‘ืงืฉื•ืช ืจืง ืž-localhost) ื•ืžืืคืฉืจืช ืœืš ืœื ืฆืœ ืืช ื”ื‘ืขื™ื” ื‘ืื•ืคืŸ ืžืงื•ืžื™, ื›ืืฉืจ ื”ืชื•ืงืฃ ืžืกื•ื’ืœ ืœื’ืฉืช ืœืžืžืฉืง ื”ืจืฉืช ื”ืžืงื•ืžื™ืช (ืœื•ืœืื”ื‘ืง) ื‘ืฉืจืช (ืœื“ื•ื’ืžื”, ื‘ืžืขืจื›ื•ืช ืื™ืจื•ื—) . ื”ืืคืฉืจื•ืช ื”ืฉื ื™ื™ื” ืžืชืจื—ืฉืช ื›ืืฉืจ OpenSMTPD ืžื•ื’ื“ืจ ืœืงื‘ืœ ื‘ืงืฉื•ืช ืจืฉืช ื—ื™ืฆื•ื ื™ื•ืช (ืฉืจืช ื“ื•ืืจ ืฉืžืงื‘ืœ ื“ื•ืืจ ืฉืœ ืฆื“ ืฉืœื™ืฉื™). ื—ื•ืงืจื™ื ื”ื›ื™ื ื• ืื‘ ื˜ื™ืคื•ืก ืฉืœ ื ื™ืฆื•ืœ ืฉืขื•ื‘ื“ ื‘ื”ืฆืœื—ื” ื”ืŸ ืขื ื’ืจืกืช OpenSMPD ื”ื›ืœื•ืœื” ื‘-OpenBSD 6.6 ื•ื”ืŸ ืขื ื’ืจืกื” ื ื™ื™ื“ืช ืœืžืขืจื›ื•ืช ื”ืคืขืœื” ืื—ืจื•ืช (ืฉื ืขืจื›ื” ื‘-Debian Testing).

ื”ื‘ืขื™ื” ื ื’ืจืžืช ืžืฉื’ื™ืื” ื‘ืคื•ื ืงืฆื™ื” smtp_mailaddr() ืฉื ืงืจืืช ืœื‘ื“ื•ืง ืืช ื ื›ื•ื ื•ืช ื”ืขืจื›ื™ื ื‘ืฉื“ื•ืช "MAIL FROM" ื•-"RCPT TO" ื”ืžื’ื“ื™ืจื™ื ืืช ื”ืฉื•ืœื—/ื ืžืขืŸ ื•ืžื•ืขื‘ืจื™ื ื‘ืžื”ืœืš ื”ื—ื™ื‘ื•ืจ ืขื ืฉืจืช ื”ื“ื•ืืจ. ื›ื“ื™ ืœื‘ื“ื•ืง ืืช ื”ื—ืœืง ืฉืœ ื›ืชื•ื‘ืช ื”ื“ื•ืืจ ื”ืืœืงื˜ืจื•ื ื™ ืฉืžื•ืคื™ืข ืœืคื ื™ ื”ืกืžืœ "@", ื”ืคื•ื ืงืฆื™ื” smtp_mailaddr() ื ืงืจืืช
valid_localpart(), ืฉืžืงื‘ืœ (MAILADDR_ALLOWED) ืืช ื”ืชื•ื•ื™ื "!#$%&'*/?^`{|}~+-=_", ื›ื ื“ืจืฉ ืขืœ ื™ื“ื™ RFC 5322.

ื‘ืžืงืจื” ื–ื”, ื‘ืจื™ื—ื” ื™ืฉื™ืจื” ืฉืœ ื”ืžื—ืจื•ื–ืช ืžืชื‘ืฆืขืช ื‘ืคื•ื ืงืฆื™ื” mda_expand_token() ืืฉืจ ืžื—ืœื™ืคื” ืจืง ืืช ื”ืชื•ื•ื™ื "!#$%&'*?`{|}~" (MAILADDR_ESCAPE). ืœืื—ืจ ืžื›ืŸ, ื”ืฉื•ืจื” ืฉื”ื•ื›ื ื” ื‘-mda_expand_token() ืžืฉืžืฉืช ื‘ืขืช ืงืจื™ืื” ืœืกื•ื›ืŸ ื”ืžืกื™ืจื” (MDA) ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” 'execle("/bin/sh", "/bin/sh", "-c", mda_command,...' ื‘ืžืงืจื” ืฉืœ ื”ืฆื‘ืช ืื•ืชื™ื•ืช ืœ-mbox ื“ืจืš /bin/sh, ื”ืฉื•ืจื” "/usr/libexec/mail.local -f %%{mbox.from} %%{user.username}" ืžื•ืคืขืœืช, ืฉื‘ื” ื”ืขืจืš "% {mbox.from}" ื›ื•ืœืœ ื ืชื•ื ื™ื ืฉื ืฉืœื—ื• ืžื”ืคืจืžื˜ืจ "MAIL FROM".

ื”ืžื”ื•ืช ืฉืœ ื”ืคื’ื™ืขื•ืช ื”ื™ื ืฉืœ-smtp_mailaddr() ื™ืฉ ืฉื’ื™ืื” ืœื•ื’ื™ืช, ืฉื‘ื’ืœืœื”, ืื ื“ื•ืžื™ื™ืŸ ืจื™ืง ื ืฉืœื— ืœืžื™ื™ืœ, ื”ืคื•ื ืงืฆื™ื” ืžื—ื–ื™ืจื” ืงื•ื“ ืื™ืžื•ืช ืžื•ืฆืœื—, ื’ื ืื ื”ื—ืœืง ืฉืœ ื”ื›ืชื•ื‘ืช ืœืคื ื™ "@" ืžื›ื™ืœ ืชื•ื•ื™ื ืœื ื—ื•ืงื™ื™ื . ื™ืชืจื” ืžื›ืš, ื‘ืขืช ื”ื›ื ืช ืžื—ืจื•ื–ืช, ื”ืคื•ื ืงืฆื™ื” mda_expand_token() ืื™ื ื” ื‘ื•ืจื—ืช ืžื›ืœ ื”ืชื•ื•ื™ื ื”ืžื™ื•ื—ื“ื™ื ื”ืืคืฉืจื™ื™ื ืฉืœ ืžืขื˜ืคืช, ืืœื ืจืง ืชื•ื•ื™ื ืžื™ื•ื—ื“ื™ื ื”ืžื•ืชืจื™ื ื‘ื›ืชื•ื‘ืช ื”ื“ื•ื"ืœ. ืœืคื™ื›ืš, ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช ื”ืคืงื•ื“ื” ืฉืœืš, ื–ื” ืžืกืคื™ืง ืœื”ืฉืชืžืฉ ื‘ืกืžืœ ";" ื‘ื—ืœืง ื”ืžืงื•ืžื™ ืฉืœ ื”ืื™ืžื™ื™ืœ. ื•ืจื•ื•ื—, ืฉืื™ื ื ื›ืœื•ืœื™ื ื‘ืขืจื›ืช MAILADDR_ESCAPE ื•ืื™ื ื ื‘ื•ืจื—ื™ื. ืœื“ื•ื’ืžื”:

$nc 127.0.0.1 25

HELO professor.falken
ื“ื•ืืจ ืž:<;sleep 66;>
RCPT ืืœ:
ื ืชื•ื ื™ื
.
ืชื™ื›ื ืข

ืœืื—ืจ ื”ืคืขืœื” ื–ื•, OpenSMTPD, ื›ืืฉืจ ื™ื™ืžืกืจ ืœ-mbox, ื™ืคืขื™ืœ ืืช ื”ืคืงื•ื“ื” ื“ืจืš ื”ืžืขื˜ืคืช

/usr/libexec/mail.local -f ;sleep 66; ืฉื•ืจืฉ

ื™ื—ื“ ืขื ื–ืืช, ืืคืฉืจื•ื™ื•ืช ื”ืชืงื™ืคื” ืžื•ื’ื‘ืœื•ืช ืขืœ ื™ื“ื™ ื”ืขื•ื‘ื“ื” ืฉื”ื—ืœืง ื”ืžืงื•ืžื™ ืฉืœ ื”ื›ืชื•ื‘ืช ืื™ื ื• ื™ื›ื•ืœ ืœืขืœื•ืช ืขืœ 64 ืชื•ื•ื™ื, ื•ื”ืชื•ื•ื™ื ื”ืžื™ื•ื—ื“ื™ื '$' ื•-'|' ืžื•ื—ืœืคื™ื ื‘-":" ื‘ืขืช ื™ืฆื™ืื”. ื›ื“ื™ ืœืขืงื•ืฃ ืžื’ื‘ืœื” ื–ื•, ืื ื• ืžืฉืชืžืฉื™ื ื‘ืขื•ื‘ื“ื” ืฉื’ื•ืฃ ื”ืžื›ืชื‘ ืžื•ืขื‘ืจ ืœืื—ืจ ื”ืคืขืœืช /usr/libexec/mail.local ื“ืจืš ื–ืจื ื”ืงืœื˜, ื›ืœื•ืžืจ. ืขืœ ื™ื“ื™ ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื”ื›ืชื•ื‘ืช, ืืชื” ื™ื›ื•ืœ ืจืง ืœื”ืคืขื™ืœ ืืช ืžืชื•ืจื’ืžืŸ ื”ืคืงื•ื“ื” sh ื•ืœื”ืฉืชืžืฉ ื‘ื’ื•ืฃ ื”ืžื›ืชื‘ ื›ืžืขืจื›ืช ืฉืœ ื”ื•ืจืื•ืช. ืžื›ื™ื•ื•ืŸ ืฉื›ื•ืชืจื•ืช SMTP ืฉืœ ืฉื™ืจื•ืช ืžืฆื•ื™ื ื•ืช ื‘ืชื—ื™ืœืช ื”ืื•ืช, ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ืช ื”ืงืจื™ืื” ื‘ืœื•ืœืื” ื›ื“ื™ ืœื“ืœื’ ืขืœื™ื”ืŸ. ื ื™ืฆื•ืœ ืขื•ื‘ื“ ื ืจืื” ื‘ืขืจืš ื›ืš:

$nc 192.168.56.143 25

HELO professor.falken
ื“ื•ืืจ ืž:<;for i in 0 1 2 3 4 5 6 7 8 9 abcd;do read r;done;sh;exit 0;>
RCPT ืืœ:[ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]>
ื ืชื•ื ื™ื
#0
#1
...
#d
ืขื‘ื•ืจ i ื‘-WOPR; ืœึทืขึฒืฉื‚ื•ึนืช
echo -n "($i) " && id || ืœืฉื‘ื•ืจ
ื‘ื•ืฆืข > /root/x."`id -u`.""$$"
.
ืชื™ื›ื ืข

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”