After fiddling around with different signal codes and looking at the  
process shown by Paul, it looks like we can replicate this bypass on  
other systems now.  Tested and working on OS X 10.4.9 (screen  
4.00.03).  By following the slightly modified procedure, it should be  
repeatable across all systems.

~user(bash) $ screen
[system spawns two new pid, both for screen, and then a third pid for  
bash]
Activity Monitor now shows (in hierarchy mode)
pid 4965 Terminal
   \ pid 5111 login
     \ pid 5112 bash
       \ pid 5171 screen
         \ pid 5172 screen
           \ pid 5174 bash

~user(screen) $ echo Once the process is killed, I should not reappear.
Once the process is killed, I should not reappear.
~user(screen) $ ^a+x
Key: [1234]
Again: [1234]
Screen used by User <user>.
Password:

At this stage we now need to kill the right process.  On OS X, screen  
ignores the SIGINT sent by ^c, so we need to send it a SIGKILL.   
Using your favourite process killer, kill the outer screen pid  
(5171).  If you vary the process, such as:
        SIGKILL pid 5174 or 5172 - It will appear to not do anything, but  
when the password is re-entered it will return an error that it can't  
connect to session 5172.ttyp1.user and will terminate 5172 at this  
time.  Occasionally, it will not kill the parent process, or will  
refuse the legitimate password, but normally it will terminate.   
Running screen -r will identify one or more screens that could be  
dead, but not able to access (then run screen -wipe to remove them  
completely).

Password:Killed
~user(bash) $ screen -r
[automatically loads the following]

~user(screen) $ echo Once the process is killed, I should not reappear.
Once the process is killed, I should not reappear.
~user(screen) $

The system has spawned a completely new pid for screen, and has only  
loaded a single instance of it.  If the user now locks the screen it  
will ask for the password all over again - it has forgotten the  
original setting.  If you are going to use it to poke around  
someone's command history or screen use, then be aware of this result  
(then again, if you knew the password in the beginning, why bother  
with this process).

Have at it.

Carl

Sûnnet Beskerming Pty. Ltd.
Adelaide, Australia
http://www.beskerming.com


_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Reply via email to