Skocz do zawartości
Zaloguj się, aby obserwować  
xorg

Wykonanie komendy w danym procesie

Polecane posty

Hey,

 

poszukuję sposobu na wykonanie danego polecenia w danym procesie, posiadając jego PID. Ktoś coś wie ? :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wykonanie jakiego polecenia?

Powiedzmy masz sobie PID=12345 Aplikacja: Apache.

I jakie polecenie ty chcesz w tym procesie wykonać?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dowolne :D

 

Nie mówimy tu o apache akurat... tylko powiedzmy serwer głosowy Ventrilo. Można tam wykonać np. komendę status. Coś takiego mi potrzebne... Nie potrzebuję nic co aplikacja mi zwróci, po prostu wykonać coś w niej i tyle.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dowolne :D

 

Nie mówimy tu o apache akurat... tylko powiedzmy serwer głosowy Ventrilo. Można tam wykonać np. komendę status. Coś takiego mi potrzebne... Nie potrzebuję nic co aplikacja mi zwróci, po prostu wykonać coś w niej i tyle.

zdecydowanie nie bedzie to latwe zadanie (szukaj pod haslami: code inject itp.., http://lists.virus.org/darklab-0201/msg00000.html <- tu jakis stary PoC). Duzo sprawniej wyjdzie skompilowac dany kod z uwzglednieniem takich wymagan.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dowolne :)
Nie ma takiej możliwości, no chyba, że potrafisz przełamać praktycznie wszystkie zabezpieczenia w systemie operacyjnym...

 

Nie mówimy tu o apache akurat... tylko powiedzmy serwer głosowy Ventrilo.
Serio? Od wczoraj tu jesteś, że jeszcze nie wiesz, że gdybając żadnej sensownej odpowiedzi nie dostaniesz?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Nie ma takiej możliwości, no chyba, że potrafisz przełamać praktycznie wszystkie zabezpieczenia w systemie operacyjnym...

 

Jakis mit. Jakie to zabezpieczenia musi przelamac root w celu manipulacji pamiecia procesu? Co wiecej moze manipulowac pamiecia jadra.

 

pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Jakis mit. Jakie to zabezpieczenia musi przelamac root w celu manipulacji pamiecia procesu? Co wiecej moze manipulowac pamiecia jadra.
W celu manipulacji pamięcią? Żadnych (w końcu niczego takiego nie napisałem :)).

 

Natomiast żeby wykonać dowolne polecenie w dowolnym procesie (i jednocześnie go nie ubić) musiałby w moim mniemaniu obejść zabezpieczenia typu: W^X, mprotect, guard pages czy kanarki... Generalnie wszystko co chroni stos / pamięć procesu przed niepowołanymi manipulacjami.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Widziałem coś takiego tylko w zastosowaniu serwerów gier - dlatego pytam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
W celu manipulacji pamięcią? Żadnych (w końcu niczego takiego nie napisałem :( ).

 

Ale to sie wlasnie do tego sprowadza.

 

 

Natomiast żeby wykonać dowolne polecenie w dowolnym procesie (i jednocześnie go nie ubić) musiałby w moim mniemaniu obejść zabezpieczenia typu: W^X, mprotect, guard pages czy kanarki... Generalnie wszystko co chroni stos / pamięć procesu przed niepowołanymi manipulacjami.

 

Wszystki wymienione rozwiazania zostaly zaprojektowane by zapobiegac eskalacji uprawnien i moga co najwyzej utrudnic zadanie rootowi.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Znasz sposób na ^^bezpieczne^^ dobranie się do STDIN procesu?

Skoro to takie łatwe, to napisz, jak to w miarę prosto <NIE przez gdb> zrobić...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Natomiast żeby wykonać dowolne polecenie w dowolnym procesie (i jednocześnie go nie ubić) musiałby w moim mniemaniu obejść zabezpieczenia typu: W^X, mprotect, guard pages czy kanarki... Generalnie wszystko co chroni stos / pamięć procesu przed niepowołanymi manipulacjami.

 

ptrace() ?

 

http://www.linuxjournal.com/article/6210

 

czy w wersji bardziej ehem użytecznej :(

http://www.phrack.org/issues.html?issue=59&id=8#article

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Znasz sposób na ^^bezpieczne^^ dobranie się do STDIN procesu?

Skoro to takie łatwe, to napisz, jak to w miarę prosto <NIE przez gdb> zrobić...

 

Moj pierwszy post w tym temacie zaczynal sie: zdecydowanie nie bedzie to latwe zadanie... , takze prosze dokladniej czytac. A co do Twojego pytania, to nie wiem jak rozumiec "bezpiecznie dobrac sie", ale jesli chcesz po prostu czytac stdin to udaj sie do /proc/PID_PROCESU/fd i czytaj plik 0 (oczywiscie musisz miec uprawnienia)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Biedny @xorg chcial sobie zrobic "zdalna konsole" do serwera z gra a Wy mu takie rzeczy piszecie :) No ale zle zadal pytanie stad takie odpowiedzi.

Do jego zastosowania potrzebny jest jakis maly "posrednik" - ktory z jednej strony odpali program i bedzie mogl z nim sie komunikowac via stdin/stdout z drugiej strony bedzie nasluchiwal na jakims porcie i przyjmowal komendy od np. panelu www napisanego w phpie.

Taki "posrednik" mozesz napisac w dowolnym jezyku (w tym i php), mozesz sprobowac wykorzystac np. screena (panel laczy sie przez ssh z serwerem, wchodzi na screena i wykonuje potrzebne operacje), itd.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Biedny @xorg chcial sobie zrobic "zdalna konsole" do serwera z gra a Wy mu takie rzeczy piszecie :) No ale zle zadal pytanie stad takie odpowiedzi.

Do jego zastosowania potrzebny jest jakis maly "posrednik" - ktory z jednej strony odpali program i bedzie mogl z nim sie komunikowac via stdin/stdout z drugiej strony bedzie nasluchiwal na jakims porcie i przyjmowal komendy od np. panelu www napisanego w phpie.

Taki "posrednik" mozesz napisac w dowolnym jezyku (w tym i php), mozesz sprobowac wykorzystac np. screena (panel laczy sie przez ssh z serwerem, wchodzi na screena i wykonuje potrzebne operacje), itd.

Z tego co rozumiem, to wlasnie tu jest problem. Proces dziala jakos serwer (czyli najpewniej nie ma terminalu sterujacego -> czyli kontakt via stdin/stdout odpada), a "xorg" chce wywolac w nim jakis kod "w locie". A jeszcze do tego nie posiada zrodel, takze go nie zmodyfikuje w prosty sposob;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Z tego co rozumiem, to wlasnie tu jest problem. Proces dziala jakos serwer (czyli najpewniej nie ma terminalu sterujacego -> czyli kontakt via stdin/stdout odpada), a "xorg" chce wywolac w nim jakis kod "w locie". A jeszcze do tego nie posiada zrodel, takze go nie zmodyfikuje w prosty sposob;)

Znajac specyfikacje roznych gier sieciowych strzelam, ze jest tak jak mowie - ale to oczywiscie sam xorg powinien rozwiac watpliwosci i wytlumaczyc dokladnie o co mu chodzi :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Biedny @xorg chcial sobie zrobic "zdalna konsole" do serwera z gra a Wy mu takie rzeczy piszecie :) No ale zle zadal pytanie stad takie odpowiedzi.

Do jego zastosowania potrzebny jest jakis maly "posrednik" - ktory z jednej strony odpali program i bedzie mogl z nim sie komunikowac via stdin/stdout z drugiej strony bedzie nasluchiwal na jakims porcie i przyjmowal komendy od np. panelu www napisanego w phpie.

Taki "posrednik" mozesz napisac w dowolnym jezyku (w tym i php), mozesz sprobowac wykorzystac np. screena (panel laczy sie przez ssh z serwerem, wchodzi na screena i wykonuje potrzebne operacje), itd.

Chciałem po prostu zrobić aby na wszystkich serwerach gry co kilka minut wymuszało się pewne ustawienie, niekorzystajac z interfejsu konsolki zdalnej wbudowanej w serwer gry.

 

wchodzi na screena i wykonuje potrzebne operacje)
How to ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×