OpenSMTPD рдорд╛ рдЕрд╕реБрд░рдХреНрд╖рд╛ рдЬрд╕рд▓реЗ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд░рд┐рдореЛрдЯ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ

OpenBSD рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдореЗрд▓ рд╕рд░реНрднрд░рдорд╛ OpenSMTPD рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдпреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдЦрд┐рдо (CVE-2020-7247), рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд░реВрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд╕рд░реНрднрд░рдорд╛ рдЯрд╛рдвреИрдмрд╛рдЯ рд╢реЗрд▓ рдЖрджреЗрд╢рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдХреНрд╡рд╛рд▓рд┐рд╕ рд╕реЗрдХреНрдпреБрд░рд┐рдЯреА (рдкрд╣рд┐рд▓реЛ рдУрдкрдирдПрд╕рдПрдордЯреАрдкреАрдбреА рдЕрдбрд┐рдЯ) рджреНрд╡рд╛рд░рд╛ рдЖрдпреЛрдЬрд┐рдд рдкреБрди: рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛ рдЬреЛрдЦрд┐рдо рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ 2015 рдорд╛, рд░ рдирдпрд╛рдБ рдЬреЛрдЦрд┐рдо рдореЗ 2018 рджреЗрдЦрд┐ рдЙрдкрд╕реНрдерд┐рдд рдЫ)ред рд╕рдорд╕реНрдпрд╛ рд╣рдЯрд╛рдЗрдпреЛ OpenSMTPD 6.6.2 рд░рд┐рд▓реАрдЬрдорд╛ред рд╕рдмреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫ (OpenBSD рдХреЛ рд▓рд╛рдЧрд┐, рдкреНрдпрд╛рдЪ syspatch рдорд╛рд░реНрдлрдд рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред

рджреБрдИ рдЖрдХреНрд░рдордг рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫрдиреНред рдкрд╣рд┐рд▓реЛ рд╡рд┐рдХрд▓реНрдкрд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд OpenSMTPD рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ (рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯрдмрд╛рдЯ рдорд╛рддреНрд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджреИ) рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╢реЛрд╖рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрдм рдЖрдХреНрд░рдордгрдХрд░реНрддрд╛рд▓реЗ рд╕рд░реНрднрд░рдорд╛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ (рд▓реВрдкрдмреНрдпрд╛рдХ) рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реЛрд╕реНрдЯрд┐рдЩ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛)ред ред рджреЛрд╕реНрд░реЛ рд╡рд┐рдХрд▓реНрдк рддрдм рд╣реБрдиреНрдЫ рдЬрдм OpenSMTPD рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдиреНрдЫ (рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдореЗрд▓ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗ рдореЗрд▓ рд╕рд░реНрднрд░)ред рдЕрдиреНрд╡реЗрд╖рдХрд╣рд░реВрд▓реЗ рдПрдХ рд╢реЛрд╖рдгрдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрдпрд╛рд░ рдЧрд░реЗрдХрд╛ рдЫрдиреН рдЬреБрди OpenBSD 6.6 рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ OpenSMTPD рд╕рдВрд╕реНрдХрд░рдг рд░ рдЕрдиреНрдп рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╕рдВрд╕реНрдХрд░рдг (рдбреЗрдмрд┐рдпрди рдЯреЗрд╕реНрдЯрд┐рдЩрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░рд┐рдПрдХреЛ) рджреБрд╡реИрд╕рдБрдЧ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдЧрд░реНрджрдЫред

рд╕рдорд╕реНрдпрд╛ smtp_mailaddr() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рддреНрд░реБрдЯрд┐рдХреЛ рдХрд╛рд░рдгрд▓реЗ рднрдПрдХреЛ рд╣реЛ, рдЬрд╕рд▓рд╛рдИ "рдореЗрд▓рдмрд╛рдЯ" рд░ "RCPT TO" рдлрд┐рд▓реНрдбрд╣рд░реВрдорд╛ рдорд╛рдирд╣рд░реВрдХреЛ рд╢реБрджреНрдзрддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди рднрдирд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдкреНрд░реЗрд╖рдХ/рдкреНрд░рд╛рдкрдХрд▓рд╛рдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫ рд░ рдЬрдбрд╛рдирдХреЛ рдХреНрд░рдордорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдиреНрдЫред рдореЗрд▓ рд╕рд░реНрднрд░ рд╕рдВрдЧред "@" рдЪрд┐рдиреНрд╣рдХреЛ рдЕрдЧрд╛рдбрд┐ рдЖрдЙрдиреЗ рдЗрдореЗрд▓ рдареЗрдЧрд╛рдирд╛рдХреЛ рднрд╛рдЧ рдЬрд╛рдБрдЪ рдЧрд░реНрди, smtp_mailaddr() рдкреНрд░рдХрд╛рд░реНрдп рднрдирд┐рдиреНрдЫред
valid_localpart(), рдЬрд╕рд▓реЗ (MAILADDR_ALLOWED) рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ "!#$%&'*/?^`{|}~+-=_", RFC 5322 рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдкрдорд╛ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, mda_expand_token() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рд┐рдзрд╛ рднрд╛рдЧреНрдиреЗ рдХрд╛рд░реНрдп рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдХреЗрд╡рд▓ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ "!#$%&'*?`{|}~" (MAILADDR_ESCAPE) рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдЫред рддреНрдпрд╕рдкрдЫрд┐, mda_expand_token() рдорд╛ рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рд▓рд╛рдЗрди 'execle("/bin/sh", "/bin/sh", "-c", mda_command,...' рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбреЗрд▓рд┐рднрд░реА рдПрдЬреЗрдиреНрдЯ (MDA) рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред /bin/sh рдорд╛рд░реНрдлрдд mbox рдорд╛ рдЕрдХреНрд╖рд░рд╣рд░реВ рд░рд╛рдЦреНрдиреЗ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд▓рд╛рдЗрди тАЬ/usr/libexec/mail.local -f %%{mbox.from} %%{user.username}тАЭ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдЬрд╣рд╛рдБ рдорд╛рди тАЬ% {mbox.from}" рдорд╛ "mail FROM" рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдмрд╛рдЯ рдПрд╕реНрдХреЗрдк рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред

рдХрдордЬреЛрд░реАрдХреЛ рд╕рд╛рд░ рдпреЛ рд╣реЛ рдХрд┐ smtp_mailaddr() рдорд╛ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЫ, рдЬрд╕рдХреЛ рдХрд╛рд░рдгрд▓реЗ, рдпрджрд┐ рдЦрд╛рд▓реА рдбреЛрдореЗрди рдЗрдореЗрд▓рдорд╛ рдкрдард╛рдЗрдпреЛ рднрдиреЗ, "@" рдЕрдШрд┐рдХреЛ рдареЗрдЧрд╛рдирд╛рдХреЛ рдЕрдВрд╢рдорд╛ рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгрд╣рд░реВ рднрдП рдкрдирд┐, рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╕рдлрд▓ рдкреНрд░рдорд╛рдгрд┐рдХрд░рдг рдХреЛрдб рдлрд░реНрдХрд╛рдЙрдБрдЫред ред рдердк рд░реВрдкрдорд╛, рд╕реНрдЯреНрд░рд┐рдЩ рддрдпрд╛рд░ рдЧрд░реНрджрд╛, mda_expand_token() рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рд╢реЗрд▓ рд╡рд┐рд╢реЗрд╖ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рдЫреЛрдбреНрджреИрди, рддрд░ рдЗрдореЗрд▓ рдареЗрдЧрд╛рдирд╛рдорд╛ рд╡рд┐рд╢реЗрд╖ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрд▓рд╛рдИ рдорд╛рддреНрд░ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдиреНрдЫред рддрд╕рд░реНрде, рддрдкрд╛рдИрдВрдХреЛ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рдЗрдореЗрд▓рдХреЛ рд╕реНрдерд╛рдиреАрдп рднрд╛рдЧрдорд╛ ";" рдкреНрд░рддреАрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред рд░ рд╕реНрдкреЗрд╕, рдЬреБрди MAILADDR_ESCAPE рд╕реЗрдЯрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рд░ рднрд╛рдЧрд┐рдПрдХреЛ рдЫреИрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

$nc резреирен.реж.реж.рез реирел

рд╣реЗрд▓реЛ рдкреНрд░реЛрдлреЗрд╕рд░.рдлрд▓реНрдХреЗрди
рдмрд╛рдЯ рдореЗрд▓:
RCPT TO:
рддрдереНрдпрд╛рдВрдХ
.
рдЕрдиреНрддреНрдп

рдпреЛ рд╕рддреНрд░ рдкрдЫрд┐, OpenSMTPD, mbox рдорд╛ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрджрд╛, рд╢реЗрд▓ рдорд╛рд░реНрдлрдд рдЖрджреЗрд╢ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫ

/usr/libexec/mail.local -f; рдирд┐рджреНрд░рд╛ 66; рдЬрд░рд╛

рдПрдХреИ рд╕рдордпрдорд╛, рдареЗрдЧрд╛рдирд╛рдХреЛ рд╕реНрдерд╛рдиреАрдп рднрд╛рдЧ 64 рд╡рд░реНрдгрд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреА рд╣реБрди рд╕рдХреНрджреИрди рднрдиреНрдиреЗ рддрдереНрдпрджреНрд╡рд╛рд░рд╛ рдЖрдХреНрд░рдордг рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рд╕реАрдорд┐рдд рдЫрдиреН, рд░ рд╡рд┐рд╢реЗрд╖ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ '$' рд░ '|' рд▓рд╛рдИ ":" рд▓реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕ рд╕реАрдорд╛рд▓рд╛рдИ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрди, рд╣рд╛рдореА рдпреЛ рддрдереНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рдХрд┐ рдЕрдХреНрд╖рд░рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ /usr/libexec/mail.local рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдо рдорд╛рд░реНрдлрдд рдЪрд▓рд╛рдЗрд╕рдХреЗрдкрдЫрд┐ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реБрдиреНрдЫ, рдЕрд░реНрдерд╛рддреНред рдареЗрдЧрд╛рдирд╛ рд╣реЗрд░рдлреЗрд░ рдЧрд░реЗрд░, рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ sh рдЖрджреЗрд╢ рджреЛрднрд╛рд╖реЗ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рд╕реЗрдЯрдХреЛ рд░реВрдкрдорд╛ рдЕрдХреНрд╖рд░рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕реЗрд╡рд╛ SMTP рд╣реЗрдбрд░рд╣рд░реВ рдЕрдХреНрд╖рд░рдХреЛ рд╕реБрд░реБрдорд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЫреЛрдбреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд▓реВрдкрдорд╛ рдкрдвреНрдиреЗ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрдЭрд╛рд╡ рджрд┐рдЗрдиреНрдЫред рдПрдХ рдХрд╛рдо рд╢реЛрд╖рдг рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

$nc резреирен.реж.реж.рез реирел

рд╣реЗрд▓реЛ рдкреНрд░реЛрдлреЗрд╕рд░.рдлрд▓реНрдХреЗрди
рдмрд╛рдЯ рдореЗрд▓:
RCPT TO:<[рдИрдореЗрд▓ рд╕реБрд░рдХреНрд╖рд┐рдд]>
рддрдереНрдпрд╛рдВрдХ
#0
#1
...
#d
W O P R рдорд╛ i рдХреЛ рд▓рд╛рдЧрд┐; рдЧрд░реНрдиреБ
echo -n "($i) " && id || рдмреНрд░реЗрдХ
рд╕рдХрд┐рдпреЛ > /root/xред"`id -u`ред""$$"
.
рдЕрдиреНрддреНрдп

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди