Siphon – przechwytywanie strumieni wejścia / wyjścia / błędów dla dowolnego procesu

nfsec.pl 2 lat temu

L

iam Galvin napisał w języku Go interesujące narzędzie o nazwie siphon, które dzięki ptrace potrafi przechwycić strumień wejścia (stdin) wyjścia (stdout) i błędów (stderr) dla dowolnego procesu podając tylko jego PID:

root@darkstar:~# wget 'https://github.com/liamg/siphon/releases/download/v0.0.2/siphon' root@darkstar:~# chmod +x siphon-linux-amd64 root@darkstar:~# ps xuaw| egrep ^agresor.*bash agresor 2297 0.0 0.1 8728 5536 pts/2 Ss+ 19:38 0:00 -bash root@darkstar:~# ./siphon-linux-amd64 2297 agresor@darkstar:~$ echo elemelek elemelek agresor@darkstar:~$ export declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" declare -x HOME="/home/agresor" declare -x LANG="en_US.UTF-8" declare -x LC_ALL="en_US.UTF-8" declare -x LC_CTYPE="UTF-8" declare -x LC_TERMINAL="iTerm2" declare -x LC_TERMINAL_VERSION="3.4.16" declare -x LESSCLOSE="/usr/bin/lesspipe %s %s" declare -x LESSOPEN="| /usr/bin/lesspipe %s" declare -x LOGNAME="agresor"

Podobnie możemy zrobić z strace. W celu powstrzymania przechwytywania dzięki ptrace – wystarczy wyłączyć tą możliwość:

root@darkstar:~# sysctl -w kernel.yama.ptrace_scope=3 kernel.yama.ptrace_scope = 3 root@darkstar:~# ./siphon-linux-amd64 2297 Error: could not attach to process with pid 2297: operation not permitted - check your permissions

Więcej informacji: Siphon

Idź do oryginalnego materiału