ืฉืืื ืืืืื. ืื ืื ื ื ืื ืกืื ืืขืืืื ืืืืคื ืคืขืื ืืืืจ ืืืื ืื ืืฉืงืืช ืจืืืช ืขืืฆืื ืืื ืืืจ. ืืื ืืืชืจ, ืืืืจืื ืืจืฉืื ืืืจื ืืืฉ ืฉื ืืงืืจืก ืืืืื ืขื ืืืื.
ืืจืฉืืืช ืงืืฆืื ืืฆืืขืืช ืืืืคื ืืืืื ืืงืืืฆื ืืคืขืื ืฉื SUID, ืื ืขืฉืืืืช ืืืืจืืืช ืืขื ืืืืืืืช ืืืชืืื.
ืืืื ื ืืืืขืื ืฉืื ืืื ืืจื
ืื ื ืืืกืื ืื ืืื ืื ืชืจืฆื ืืืืื ืข ืืงืจืืืช ืืืืืจ ืืขืื ืืคืืจืื: ืืขืืงืจื ืฉื ืืืจ, ืืจืฉืืืช ืงืืฆืื ืืืคืฉืจืืช ืชืืืืืื ืืคืืขืืื ืืฉืืจืฉ ืืืื ืืืจืฉืื ืืขืฉืืช ืืฉืื ืืื ืืฉืืืจ ืขื ืืืืืืช ืืกืืืืืช, ืืืืืืืช
ืืจืฉืืืช ื ืืืจืืช ืขืืืจ ืฉืืจืืชืื ืฉืืืจื ืืื ืคืืขืืื ืชืืื ืืืกืืก, ืืื ืื ืืืื ืืื ืขืืจ ืฉื ืฉืืจืช ืืคืงืืื? ืืืจืื ืืืื, ืื ื ืชืื ืื ืืชื ืื ืฉืืชืงืื ื ืืช ืืื ืืฉืืจืืช ืื ืืื ืื. ืื ืืชื ืืฉืชืืฉ ืืืืืื ืื, ืชืฆืืจื ืืืฉื ืืช ืืืืืื libcap2-bin
. ืชืฆืืจื ืื ืืืคืขืื ืืืื ืื ืืจืืืืช (ืืืืจืกื 2.6.24).
ืคืื ืงืฆืืืช ืืื ืืืคืฉืจืืช ืืฉืืื ืืจืฉืืืช ืืงืืฆื ืืคืขืื, ืืืืื ืืืืืจืช ืกืืืืช SUID, ืื ืจืง ืขืืืจ ืงืืืฆื ืืกืืืืช ืฉื ืืจืฉืืืช. ืชืึนืขึถืึถืช setcap
ืืฉืืฉ ืืืืกืคื ืืืกืจื ืฉื ืืจืฉืืืช ืืงืืืฅ.
ืืฉืื ืืจืืฉืื ืืื ืืืืืจ ืืช ืืืจืฉืืืช ืืืจืืฉืืช ืื. ืืฆืืจื ืืืืจ ืื, ืื ื ืื ืื ืฉืืฉ ืืื ืืืืื ืจืฉืช ืืฉื tracewalk
, ืฉืืืืจ ืืืืืช ืืกืืื ืืืฉืชืืฉ CAP_NET_RAW
.
ืืื ืื ืฉืืชื ื ืืฆื ืืกืคืจืืื ืฉืื ื ืืฆื ืืืื ืืจื tracewalk
, ืืชื ืืืื ืืืืกืืฃ ืืจืฉืื ืื ืื:
sudo setcap cap_net_raw=eip tracewalk
ืืชืขืื ืืืกืืืืช ืืขืช ืขืชื =eip
ืืคืชืจืื, ืื ื ืืืืจ ืขื ืื ืืขืื ืืื ืฉื ืืืช. ืฉืืื ืื ืฉืฉื ืืืจืฉืื ืืืืชืืืช ืงืื ืืช. ืืขืช ืชืืื ืืืืืง ืื ืืืืจืช ืืช ืืืจืฉืืืช ืืฆืืจื ื ืืื ื ืืืืฆืขืืช:
setcap -v cap_new_raw=eip tracewalk
ืื ืฉืืชื ืืืื ืืจืฉืื ืืช ืื ืืืจืฉืืืช ืฉืืืืืจื ืขืืืจ ืงืืืฅ ืืคืขืื ื ืชืื:
getcap tracewalk
ืืขืืื, ืืชื ืืืื ืื ืืืกืืจ ืืช ืื ืืืจืฉืืืช ืืงืืืฅ ืืืคืขืื ืืืืฆืขืืช:
setcap -r tracewalk
ืืฉืื ืื, ืืชื ืืืืจ ืืืืืช ืืกืืื ืืืคืขืื ืืช ืงืืืฅ ืืืคืขืื ืืืฉืชืืฉ ืืกืจ ืืจืฉืืืช, ืืืื ืืืืจ ืืืืืช ืืกืืื ืืขืืื ืขื sockets ืืืืืืื, ืื ืื ืืืืืช ืืขื ืืฃ ืืืช ืืืืจืฉืืืช ืืืืจืืช ืฉืืฉ ืืืฉืชืืฉ ืืฉืืจืฉ.
ืื ืื ืืืฉืืขืืช ืฉื ืืกืืืืช ืืืืืจื ืืื? =eip
? ืื ืืืจืฉ ืืื ื ืืกืืืืช ืฉื ืืืคื ืืืจืฉืืืช. ืืื ืชืืืื ืืฉ ืฉืืืฉ ืงืืืฆืืช ืฉื ืืจืฉืืืช - ืืขืื, ืชืืจืฉื ืืืืชืจ:
- ืึธืขึดืื ืืจืฉืืืช ืื ืืื ืฉืืืืืจืืช ืื ืชืืืื ืืืื ืืขืฉืืช ืืคืืขื. ืืืืืื, ืื ืื ืืืื ืืืชืืืื ืขื ืฉืงืขืื ืืืืืืื ืื
CAP_NET_RAW
ืืื ื ืืกื ืืืคืงืืืื. - ืืืื ืืืจืฉืืืช ืื ืืื ืฉืืืชืจ ืืชืืืื ืืงืื ืื ืืื ืืืงืฉ ืืืชื ืืืืฆืขืืช ืืงืจืืื ืืืชืืืื. ืื ืืื ืขืื ืืชืืืื ืืขืฉืืช ืืฉืื, ืืื ืื ืื ืืื ื ืืชื ืืืคืืจืฉ ืืื ืืืงืฉ ืจืฉืืช ืืืืืจ. ืื ืืืคืฉืจ ืืืชืื ืชืืืืืื ืืื ืืืืกืืฃ ืืจืฉืืืช ืงืจืืืืืช ืืกื ืืืคืงืืืื ืจืง ืืชืงืืคื ืฉืื ืื ื ืืจืฉืืช ืืคืืขื.
- ืขืึนืึตืจ ืึผึดืืจืึผืฉืึธื ืืืจืฉืืืช ืื ืืื ืฉื ืืชื ืืืืจืืฉ ืืงืืืฆื ืื ืืืฉื ืฉื ืชืืืื ืืืื ืฉืืืืืื. ืืืืื ืื ืืชืื
fork()
ืืclone()
ืชืืืื ืืฆืืฆื ืืงืื ืชืืื ืขืืชืง ืฉื ืืจืฉืืืช ืชืืืื ืืื ืืืืืื ืฉืืื ืขืืืื ืืคืขืื ืืช ืืืชื ืงืืืฅ ืืคืขืื ืืฉืื ืื. ืกื ืืืจืืฉื ืืฉืืฉ ืืืฉืจexec()
(ืื ืฉืืื ืขืจื) ื ืงืจื ืืืืืืฃ ืืช ืงืืืฅ ืืืคืขืื ืืงืืืฅ ืืืจ. ืืฉืื ืื, ืืกื ืืืืื ืฉื ืืชืืืื ืืืกืืื ืขื ืืื ืืกื ืื ืืชื ืืืจืืฉื ืืื ืืืฉืื ืืช ืืกื ืื ืืืฉ ืฉืืฉืืฉ ืืชืืืื ืืืืฉ.
ืื ืืฉืืจืืช setcap
ืืืคืฉืจ ืื ื ืืืืกืืฃ ืืช ืืืจืฉืืืช ืฉื ืฉืืืฉ ืืงืืืฆืืช ืืืื ืืืืคื ืขืฆืืื ืขืืืจ ืงืืืฅ ืืคืขืื ื ืชืื. ืฉืื ืื ืฉืืืฉืืขืืช ืฉื ืงืืืฆืืช ืืชืคืจืฉืช ืืขื ืฉืื ื ืขืืืจ ืืจืฉืืืช ืงืืืฅ:
- ืืืื ืืจืฉืืืช ืงืืืฅ ืื ืืื ืฉืชืืื ืืืื ืืช ืืงืืืฅ ืืคืขืื, ืื ืื ืืชืืืื ืืื ืฉืงืจื ืื ืื ืืื ืืืชื. ืคืขื ืงืจืื ืืื ืืืชืจืื "ืืคืืืื".
- ืืจืฉ ืืจืฉืืืช ืงืืืฅ ืืืืืจืืช ืืกืืื ื ืืกืคืช ืฉื ืืชื ืืืฉืชืืฉ ืื ืื ืืื ืืืกืืจ ืืจืฉืืืช ืืืกื ืฉื ืชืืืื ืืืชืงืฉืจืืช. ืื ืืืื ืื ืืกืฃ ืืกื ืฉืขืืจ ืืืจืืฉื ืฉื ืชืืืื ืืืชืงืฉืจืืช, ืื ืฉืืืจืฉืื ืขืืืจืช ืืืจืืฉื ืจืง ืื ืืื ืงืืืืช ืืฉื ื ืืกืืื.
- ืึธืขึดืื ืืจืฉืืืช ืงืืฆืื ืื ืืืขืฉื ืจืง ืกืืืืืช ืืืืืช, ืื ืงืืืฆื, ืืื ืืืืืจืืช, ืื ืืืืจ ืฉืื ืืกื ืืืืื ืืืขืชืง ืื ืืกื ืืืคืงืืืื ืฉื ืืชืืืื ืืืืฉ. ืื ืืืื ืืฉืืฉ ืืื ืืืืกืืฃ ืืจืฉืืืช ืืชืืืืืื ืฉืื ื ืืชืื ืืืืืื ืืื ืืืงืฉ ืืืชื. ืืืืืื ืฉืื ืืื ืืื, ืื ืืชื ืืืืืจ ืืืชื ืขืืืจ ืืจืฉืื ืืืฉืื, ืืื ืืืื ืืืืืช ืืืืืจ ืขืืืจ ืื ืืืจืฉืืืช. ืืชื ืืืื ืืืฉืื ืขื ืื ืืืืง ืืืืจ ืงืืื ืืืืืื ืฉืืื ืืฉืืฉ ืืื ืืืคืฉืจ ืฉืืืืฉ ืืืจืฉืืืช ืขื ืืื ืืคืืืงืฆืืืช ืฉืืื ื ืชืืืืืช ืืื.
ืืขืช ืฆืืื ืืจืฉืืืช ืืืืฆืขืืช setcap
ืฉืืืฉ ืืืชืืืช e
, i
ะธ p
ืืืชืืืืก ืืขืื, ืชืืจืฉืชื ืื ืืืฉ ืกืืื ืืืชืืื. ืื ืืืคืจื ืืงืืื:
sudo setcap cap_net_raw=eip tracewalk
...ืืฆืืื ืฉืืจืืืืืฆืื CAP_NET_RAW
ืืฉ ืืืืกืืฃ ืืกืืื ืืืืื ืื ืืื ืืชื ืื ืืืืจืฉื ืืฉืืฉ ืืืืืืจ ืื ืืช ืืืื ืืืคืงืืืื. ืคืขืืื ืื ืชืขืงืืฃ ืืช ืื ืืืจืฉืืืช ืฉืืืืืจื ืืขืืจ ืืงืืืฅ. ืืื ืืืืืืจ ืืจืฉืืืช ืืจืืืืช ืื-ืืื ืืช, ืืฉืชืืฉ ืืจืฉืืื ืืืคืจืืช ืืคืกืืงืื:
sudo setcap cap_net_admin,cap_net_raw=eip tracewalk
ืจืืฉืืช, ืืืืืืช ืืงืืฆืื ืืื ื ืขืืืืืช ืขื ืกืืืืื ืงืื - ืขืืื ืืืืื ืืืชื ืขื ืืงืืืฅ ืืืื ืืจื ืขืฆืื (ืืืืืจ ืืืขื ืฉื ืืงืืฉืืจ ืืกืืื).
ืฉื ืืช, ืื ืื ืขืืืืื ืขื ืชืกืจืืืื ืืคืืจืฉืื. ืืืืืื, ืื ืืฉ ืื ืกืงืจืืคื ืฉื Python ืฉืืจืฆืื ื ืืืงืฆืืช ืื ืืจืฉืื, ืขืืื ืืืงืฆืืช ืืืชื ืืืคืจืฉ Python ืขืฆืื. ืืจืืจ ืฉืื ืืขืืืช ืืืืื ืคืืื ืฆืืืืืช ืืืืืื ืฉืื ืื ืืกืงืจืืคืืื ืฉืืืืฆืขื ืขื ืืืชื ืืชืืจืืื ืืืื ืืขืื ืืืจืฉืื ืฉืฆืืื ื, ืื ืื ืื ืขืืืื ืืื ืืฉืืขืืชืืช ืืืคืืืชื ื-SUID. ื ืจืื ืฉืืคืชืจืื ืื ืคืืฅ ืืืืชืจ ืืื ืืืชืื ืงืืืฅ ืืคืขืื ื ืคืจื ื-C ืื ืฉืืื ืขืจื ืฉืืืื ืืืฆืข ืืช ืืคืขืืืืช ืืืจืืฉืืช ืืืงืจืื ืื ืืชืื ืกืงืจืืคื. ืื ืืืื ืืืืฉื ืฉืื ืืฉืชืืฉ Wireshark ืืืฉืชืืฉืช ืืืื ืืจื /usr/bin/dumpcap
ืืื ืืืฆืข ืคืขืืืืช ืืืจืฉืืช:
$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
ืฉืืืฉืืช, ืืจืฉืืืช ืงืืืฅ ืืืฉืืชืืช ืื ืืชื ืืฉืชืืฉ ืืืฉืชื ื ืกืืืื LD_LIBRARY_PATH
ืืกืืืืช ืืืืืื ืืืช ืืจืืจืืช(1). ืึทืืึผื ืึทืึดืื LD_PRELOAD
, ืขื ืืื ืฉืื ื ืืืืข.
1. ืืืืืื ืฉืชืืงืฃ ืืืื ืืืืื ืืืืืืฃ ืืช ืืืช ืืืกืคืจืืืช ืืกืื ืืจืืืืช ืืืืฉืชืืฉ LD_LIBRARY_PATH
ืืืืฅ ืืงืจืื ืืช ืืกืคืจืืื ืฉืื ืืืขืืคื ืืืขืจืืช ืืืช, ืืืื ืืฉ ืืืคืขืื ืงืื ืฉืจืืจืืชื ืืฉืื ืขื ืืืชื ืืจืฉืืืช ืืื ืืืืฉืื ืืืชืงืฉืจ.
ืื ืืื. ืคืจืืื ื ืืกืคืื ืขื ืชืื ืืช ืืงืืจืก ื ืืชื ืืืฆืื ืืืชืืืช
ืืงืืจ: www.habr.com