Napisał: Patryk Krawaczyński
03/12/2024 w Bezpieczeństwo
W
szystko jest plikiem to koncepcja zakładającą, że w systemach z rodziny *nix wejście / wyjście do i z zasobów (dyski twarde, urządzenia sieciowe, urządzenia peryferyjne) jest prostym strumienim bajtów udostępnionych przez przestrzeń nazw systemu plików. Oznacza to, że jesteśmy w stanie wykonać ten sam zestaw operacji opisany dla plików na każdym obiekcie w systemie, ponieważ każdy z nich jest “plikiem”. Możemy otworzyć konkretne urządzenie / plik, odczytać z niego, zapisać do niego i zamknąć je po zakończeniu. Dane z tego zasobu są również przesyłane strumieniowo. Jedyną rzeczą, która się zmienia jest źródło danych. Na przykład, gdy piszemy w terminalu w rzeczywistości zapisujemy dane do zasobu o nazwie standardowe wejście (ang. standard input – stdin). Gdy dane są wyświetlane na terminalu, używane jest standardowe wyjście (ang. standard output – stdout).
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
09/11/2022 w Bezpieczeństwo
L
iam Galvin napisał w języku Go ciekawe narzędzie o nazwie siphon, które za pomocą 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 za pomocą 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
Napisał: Patryk Krawaczyński
12/11/2016 w Bezpieczeństwo
T
o, że używamy SSH do połączeń z serwerami nie oznacza, że możemy czuć się bezpiecznie. Szczególnie musimy uważać na te maszyny, którymi zarządzają niezaufane osoby. Dlaczego? Ponieważ odczyt niezaszyfrowanych danych w systemie można wykonać na różnych poziomach dostępu. Za przykład weźmy wywołanie ptrace, które jest używane do monitoringu i kontroli innych procesów. Głównie jest używane do debugowania, a chyba najpopularniejszym programem wykorzystującym jego możliwości jest strace.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
28/12/2014 w Bezpieczeństwo
P
trace(2) jest wspaniałym narzędziem do rozwiązywania problemów dla programistów, którzy chcą poznać jak funkcjonują procesy w systemie Linux. Umożliwia odnajdywanie błędów programistycznych, czy wycieków pamięci. Z drugiej strony ptrace może zostać wykorzystane przez osoby o złych intencjach np. w celu debugowania procesu jako nieuprzywilejowany użytkownik, aby odczytać zawartość pamięci programu.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
10/04/2012 w Administracja
R
eptyr jest narzędziem, które potrafi przenieść istniejący proces na inny terminal. Jeśli uruchomiliśmy przez “czyste” SSH dowolny proces, który okazał się bardzo czasochłonny, a nie możemy go przerwać – wystarczy w nowym terminalu uruchomić screen
i użyć reptyr
do jego przeniesienia na terminal z odpalonym screen
-em.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
11/01/2010 w Magazyny
P
rzede wszystkim muszę zastrzec, że ten tekst jest specyficzny dla Linuksa i potrzebna jest pewna wiedza o programowaniu w ANSI C oraz trochę o asemblerze. Było już dawniej parę różnych technik wstrzykiwania procesu z udziałem, kilka publicznych, jak i prywatnych exploitów, furtek i innych aplikacji. Przyjrzymy się bliżej funkcji i nauczymy się, jak pisać własne furtki.
[ czytaj całość… ]
Ostatni komentarz :