Sploitus

Exploit for CVE-2017-16995

kitploit ┬╖ 2026-08-26

Exploit Code

MARKDOWN56 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-FEI9747-CVE-2017-16995
# рднреЗрджреНрдпрддрд╛ рд╡рд┐рд╡рд░рдг

Ubuntu рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ GNU/Linux рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдФрд░ Debian GNU/Linux рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╡реНрд╣рд╛рдЗрдЯ-рд╣реИрдЯ рд╣реИрдХрд░ рдиреЗ Ubuntu рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (Ubuntu 16.04) рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рднреЗрджреНрдпрддрд╛ (local privilege escalation vulnerability) рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ CVE ID CVE-2017-16995 рд╣реИред рдпрд╣ рднреЗрджреНрдпрддрд╛ eBPF bpf(2) рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Linux рдХрд░реНрдиреЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг BPF рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ eBPF рд╡реЗрд░рд┐рдлрд╝рд╛рдпрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЧрдгрдирд╛ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдордирдорд╛рдирд╛ рдореЗрдореЛрд░реА рд░реАрдб/рд░рд╛рдЗрдЯ (arbitrary memory read/write) рдХреА рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рднреЗрджреНрдпрддрд╛ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдареАрдХ рдХрд░ рджреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрднреА рднреА рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрднреА рддрдХ рдХреЛрдИ рдкреИрдЪ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рднреЗрджреНрдпрддрд╛ 0day рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред

# рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рдВрд╕реНрдХрд░рдг

Linux Kernel Version 4.14-4.4 рдХреЗрд╡рд▓ Ubuntu/Debian рд╡рд┐рддрд░рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ

# рднреЗрджреНрдпрддрд╛ рд╕реНрддрд░

рдЙрдЪреНрдЪ рдЬреЛрдЦрд┐рдо

# рдкреНрд░рджрд░реНрд╢рди

root@kitploit:~
    
    
    bearcat@ubuntu:/opt$ lsb_release -a
    <br>No LSB modules are available.
    <br>Distributor ID: Ubuntu
    <br>Description:    Ubuntu 16.04.4 LTS
    <br>Release:        16.04
    <br>Codename:       xenial
    <br>bearcat@ubuntu:/opt$ uname -a
    <br>Linux ubuntu 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    <br>bearcat@ubuntu:/opt$ id
    <br>uid=1000(bearcat) gid=1000(bearcat) <br>groups=1000(bearcat),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
    <br>bearcat@ubuntu:/opt$ ls
    <br>exploit.c
    <br>bearcat@ubuntu:/opt$ gcc exploit.c -o exploit
    <br>bearcat@ubuntu:/opt$ ./exploit
    <br>task_struct = ffff88003a0db800
    <br>uidptr = ffff8800374b76c4
    <br>spawning root shell
    <br>root@ubuntu:/opt# id
    <br>uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),1000(bearcat)
    <br>root@ubuntu:/opt#
    

# рднреЗрджреНрдпрддрд╛ рд╕рдорд╛рдзрд╛рди

#### рд╡рд┐рдзрд┐ 1:

рдлрд┐рд▓рд╣рд╛рд▓ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдкреИрдЪ рдЕрдкрдЧреНрд░реЗрдб рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡реЗ рдХрд░реНрдиреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП bpf(2) рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рднреЗрджреНрдпрддрд╛ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ: рдкреИрд░рд╛рдореАрдЯрд░ "kernel.unprivileged_bpf_disabled = 1" рд╕реЗрдЯ рдХрд░рдХреЗ, bpf(2) рдХреЙрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ  
`root@Ubuntu# echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled`  


#### рд╡рд┐рдзрд┐ 2:

Linux рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ; рдпрд╣ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн (reboot) рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛: рдЗрд╕ рдЪрд░рдг рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░рд┐рдпрд╛рдПрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рд╡рд░реНрдгрд┐рдд рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИрдВ; рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!  


#### рд╡рд┐рдзрд┐ 3:

рдХреЛрдб рдкреИрдЪ https://github.com/torvalds/linux/commit/95a762e2c8c942780948091f8f2a4f32fce1ac6f