반응형

이번에는 gdb를 통해서 각종 정보를 확인 하는 방법을 알아보자 


(gdb) info register


(gdb) run

Starting program: /home/choi/bash


Breakpoint 1, 0x0000555555583db0 in main ()

(gdb) info registers

rax            0x555555583db0   93824992427440

rbx            0x0      0

rcx            0x555555623420   93824993080352

rdx            0x7fffffffe4d8   140737488348376

rsi            0x7fffffffe4c8   140737488348360

rdi            0x1      1

rbp            0x555555623420   0x555555623420 <__libc_csu_init>

rsp            0x7fffffffe3e8   0x7fffffffe3e8

r8             0x7ffff79a2d80   140737347464576

r9             0x7ffff79a2d80   140737347464576

r10            0x2      2

r11            0x3      3

r12            0x555555585520   93824992433440

r13            0x7fffffffe4c0   140737488348352

r14            0x0      0

r15            0x0      0

rip            0x555555583db0   0x555555583db0 <main>

eflags         0x246    [ PF ZF IF ]

cs             0x33     51

ss             0x2b     43

ds             0x0      0

es             0x0      0

fs             0x0      0

gs             0x0      0

(gdb) 


현재 함수를 호출한 함수와 호출시 전달된 인자에 대한 정보를 담고 있는 스택 트레이스도 출력할수 있다. 스택 트레이스를 확인하면 함수 호출 내역을 끝까지 역추적할 수 있다. 


(gdb) info stack

(gdb) info stack

#0  0x0000555555583db0 in main () 


(gdb) x/5x $rip

gdb에서 가장 쓰임이 많은 명령어 x를 사용했다. x는 메모리값을 출력하는 명령으로 메모리, 지역 변수, 기타 실행 파일의 저장된 다양한 정보를 보여줍니다.

/5x라는 인자를 사용했는데 그 의미는 5개의 주소 값을 0x로 표현되는 16진수로 출력하는 명령어 입니다.

(gdb) x/5x $rip

0x555555583db0 <main>:  0x56415741      0x54415541      0x81485355      0x000128ec

0x555555583dc0 <main+16>:       0x247c8900

(gdb) x/5x $rsp

0x7fffffffe3e8: 0xf75d7b97      0x00007fff      0x00000001      0x00000000

0x7fffffffe3f8: 0xffffe4c8 



반응형
반응형

GDB는 리눅스에서 개발시 디버깅을 하기 위한 기본적인 도구 입니다. 보통은 실행될 바이너리에 자기 자신을 직접 attach 한다. 다시말해 GDB는 바이너리가 실행되는 동안 자세한 정보를 관할 수 있도록 바이너리를 특수한 위치 시킨다. 테스팅 목적으로 포함 되는 디버깅 정보를 이용하면 프로그램의 의미를 좀더 쉽게 이해 할 수 있습니다. 그렇지만 대부분의 바이너리은 디버깅 플래그를 설정 하지 않고 컴파일 된것이 기 때문에 이를 이용해서 더비깅 해서 리버싱을 하는 방법도 알아 두면 좋을 것 같습니다.


gdb [바이너리]


gdb ./bash


choi@choi:~$ gdb ./bash

GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git

Copyright (C) 2018 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.  Type "show copying"

and "show warranty" for details.

This GDB was configured as "x86_64-linux-gnu".

Type "show configuration" for configuration details.

For bug reporting instructions, please see:

<http://www.gnu.org/software/gdb/bugs/>.

Find the GDB manual and other documentation resources online at:

<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".

Type "apropos word" to search for commands related to "word"...

Reading symbols from ./bash...(no debugging symbols found)...done.

(gdb)  


run 명령을 명령을 이용해 실행 파일 인자를 지정할 수 있습니다.

(gdb) run --version

Starting program: /home/choi/bash --version

GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)

Copyright (C) 2016 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>


This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

[Inferior 1 (process 13232) exited normally]

(gdb)


브레이킹 포인트를 설정하기 위해서는 우선 해당 코드의 주소를 알아야 되어야 한다.


우선 main 함수의 주소를 알기 위해서는 dissaemble main을 이용하거나 objdump를 이용하면 됩니다.


(gdb) run --version

Starting program: /home/choi/bash --version

GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)

Copyright (C) 2016 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>


This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

[Inferior 1 (process 13232) exited normally]

(gdb)


choi@choi:~$ objdump --disassemble-all --start-address=0x000000  ./bash |grep \<main*Base\>
000000000002fdb0 <main@@Base>:


다음으로 해당 주소에 브레이크주소를 거는 방법을 보도록 합니다.


(gdb) b main

Breakpoint 2 at 0x2fdb0

(gdb) b *0x000000000002fdb0

Note: breakpoint 2 also set at pc 0x2fdb0.

Breakpoint 3 at 0x2fdb0


또한 watch point를 사용하여 특정변수에 대한 감시를 할 수 있다.


(gdb)  eval "watch -location *0x%x", $rsp

Hardware watchpoint 4: -location *0xffffe3e8


반응형
반응형

리버스 엔지니어링은 모든 보안 분야에서 중요한 부분입니다.

컴파일된 실행 파일을 리버스 엔지니어링 하는 작업에서 가장 중요한 단계 중 하나는 디스어셈블링입니다. 

디스어셈블링은 코드 컴파일 과정을 최대한 거꾸로 복원하는 작업이다. 


objdump는 디스어셈블링에 가장 유용한 도구 중 하나입니다.

objdump의 다양한 실행 옵션을 사용해서 ELF (Executable and Linkable Format, 실행 및 링크 가능 포맷) 바이너리의 다양한 섹션 정보를 추출이 가능


※ ELF  (Executable and Linkable Format, 실행 및 링크 가능 포맷) 

→ ELF는 실행 파일, 공유 라이브러리, 리눅스/유닉스 시스템용 오브젝트 파일 등을 기술하는 파일 형식이다


objdump -D bash : -D 옵션을 지정하면 바이너리를 디스어셈블링 한 후 그 결과 값을 화면에 출력한다.


root@choi:/home/choi# objdump -D bash |more


bash:     file format elf64-x86-64


Disassembly of section .interp:


0000000000000238 <.interp>:

 238:   2f                      (bad)

 239:   6c                      insb   (%dx),%es:(%rdi)

 23a:   69 62 36 34 2f 6c 64    imul   $0x646c2f34,0x36(%rdx),%esp

 241:   2d 6c 69 6e 75          sub    $0x756e696c,%eax

 246:   78 2d                   js     275 <_init@@Base-0x2bba3>

 248:   78 38                   js     282 <_init@@Base-0x2bb96>

 24a:   36 2d 36 34 2e 73       ss sub $0x732e3436,%eax

 250:   6f                      outsl  %ds:(%rsi),(%dx)

 251:   2e 32 00                xor    %cs:(%rax),%al


Disassembly of section .note.ABI-tag:


0000000000000254 <.note.ABI-tag>:

 254:   04 00                   add    $0x0,%al

 256:   00 00                   add    %al,(%rax)

 258:   10 00                   adc    %al,(%rax)

 25a:   00 00                   add    %al,(%rax)

 25c:   01 00                   add    %eax,(%rax)

 25e:   00 00                   add    %al,(%rax)

 260:   47                      rex.RXB

 261:   4e 55                   rex.WRX push %rbp

 263:   00 00                   add    %al,(%rax)

 265:   00 00                   add    %al,(%rax)

 267:   00 03                   add    %al,(%rbx)

 269:   00 00                   add    %al,(%rax)

 26b:   00 02                   add    %al,(%rdx)

 26d:   00 00                   add    %al,(%rax)

 26f:   00 00                   add    %al,(%rax)

 271:   00 00                   add    %al,(%rax)

        ...


Disassembly of section .note.gnu.build-id:


0000000000000274 <.note.gnu.build-id>:

 274:   04 00                   add    $0x0,%al

 276:   00 00                   add    %al,(%rax)

 278:   14 00                   adc    $0x0,%al 


기본으로 실행했을 때 디스어셈블링은 끝이다. 하지만 다양한 옵션을 통해서 재미있는 분석이 가능하다


objdump -j [섹션명] -D [바이너리]


이 옵션을 사용하게 되면 원하는 섹션 정보만을 추출 해서 볼 수 있다.


root@choi:/home/choi# objdump -j .interp -D bash


bash:     file format elf64-x86-64



Disassembly of section .interp:


0000000000000238 <.interp>:

 238:   2f                      (bad)

 239:   6c                      insb   (%dx),%es:(%rdi)

 23a:   69 62 36 34 2f 6c 64    imul   $0x646c2f34,0x36(%rdx),%esp

 241:   2d 6c 69 6e 75          sub    $0x756e696c,%eax

 246:   78 2d                   js     275 <_init@@Base-0x2bba3>

 248:   78 38                   js     282 <_init@@Base-0x2bb96>

 24a:   36 2d 36 34 2e 73       ss sub $0x732e3436,%eax

 250:   6f                      outsl  %ds:(%rsi),(%dx)

 251:   2e 32 00                xor    %cs:(%rax),%al 


※ 특히 .text 세그먼트(섹션)에는 실행 코드가 들어 있으며 이 부분을 잘 분석하는 것이 리버스 엔지니어링의 시작이다.


반응형
반응형

메타스플로잇을 이용한 취약점 점검 하기 예제 


msf > use auxiliary/scanner/smb/smb_login

→ 사용할 모듈이나 익스플로잇을 선택


msf auxiliary(scanner/smb/smb_login) > show options

→ 사용할 모듈이나 익스플로잇의 설정가능한 옵션


Module options (auxiliary/scanner/smb/smb_login):


   Name              Current Setting  Required  Description

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

   ABORT_ON_LOCKOUT  false            yes       Abort the run when an account lockout is detected

   BLANK_PASSWORDS   false            no        Try blank passwords for all users

   BRUTEFORCE_SPEED  5                yes       How fast to bruteforce, from 0 to 5

   DB_ALL_CREDS      false            no        Try each user/password couple stored in the current database

   DB_ALL_PASS       false            no        Add all passwords in the current database to the list

   DB_ALL_USERS      false            no        Add all users in the current database to the list

   DETECT_ANY_AUTH   true             no        Enable detection of systems accepting any authentication

   PASS_FILE                          no        File containing passwords, one per line

   PRESERVE_DOMAINS  true             no        Respect a username that contains a domain name.

   Proxies                            no        A proxy chain of format type:host:port[,type:host:port][...]

   RECORD_GUEST      false            no        Record guest-privileged random logins to the database

   RHOSTS                             yes       The target address range or CIDR identifier

   RPORT             445              yes       The SMB service port (TCP)

   SMBDomain         .                no        The Windows domain to use for authentication

   SMBPass                            no        The password for the specified username

   SMBUser                            no        The username to authenticate as

   STOP_ON_SUCCESS   false            yes       Stop guessing when a credential works for a host

   THREADS           1                yes       The number of concurrent threads

   USERPASS_FILE                      no        File containing users and passwords separated by space, one pair per line

   USER_AS_PASS      false            no        Try the username as the password for all users

   USER_FILE                          no        File containing usernames, one per line

   VERBOSE           true             yes       Whether to print output for all attempts


msf auxiliary(scanner/smb/smb_login) > set RHOSTS 127.0.0.1

→ 특정 변수를 설정

RHOSTS => 127.0.0.1

msf auxiliary(scanner/smb/smb_login) > exploit

→  공격을 시작


[*] 127.0.0.1:445         - 127.0.0.1:445 - Starting SMB login bruteforce

[-] 127.0.0.1:445         - This system accepts authentication with any credentials, brute force is ineffective.

[*] Scanned 1 of 1 hosts (100% complete)

[*] Auxiliary module execution completed

msf auxiliary(scanner/smb/smb_login) >



반응형
반응형

메타스플로잇은 가장 널리 사용되는 모의 해킹과 개발 프레임워크로, 취약점과 익스플로잇을 찾아내서 개발하는데 가장 널리 쓰이는 도구

메타스플로잇 프레임워크의 유용한 기능 중 하나는 프레임워크에 포함된 모듈과 도구를 커맨드라인에서 실행이 가능하다.


익스플로잇 정의 ??

익스플로잇(Exploit)이란 소프트웨어, 하드웨어 및 전자제품들의 버그 혹은 제조, 프로그래밍 과정에서 발생한 취약한 부분을 이용하여 정상 동작이 아닌 공격자가 의도한 동작이나 명령을 실행하도록 만든 명령어를 지칭하거나, 그러한 공격행위를 가리킵니다.


익스플로잇은 소프트웨어나 하드웨어 등의 버그나 취약점을 이용한 공격인 만큼, 비교적 대규모로 이루어 지며, 특정 타겟 뿐만 아니라 불특정 다수에게도 무차별적으로 공격을 가합니다. 보편적인 예로, 불특정 다수에게 익스플로잇 코드가 담긴 첨부파일(그림,문서 등)과 함께 흥미를 끌만한 제목으로 메일을 보냅니다. 만약 취약점이 패치가 되지 않은 OS나 SW를 사용하는 사용자가 그 메일에 담긴 첨부파일을 클릭하면, 첨부파일 안에 있던 명령 코드가 작동하면서 사용자의 컴퓨터를 공격하게 됩니다.


또한 알려지지 않은 취약점 또는 취약점이 새로 발견되었으나 아직 해당 취약점에 대한 패치가 이뤄지지 않은 제로데이 상황에서 익스플로잇 공격이 발생하는 경우가 종종 발생하는데, 이때는 공격대상이 되는 프로그램 제공업체가 배포한 임시패치를 설치하거나 익스플로잇 공격대상이 되는 서비스나 SW의 사용을 최대한 자제하는 것이 안전합니다.


익스플로잇 공격은 소프트웨어나 하드웨어 자체의 취약점을 이용한 공격이기 때문에 소프트웨어나 하드웨어 취약점이 이미 업데이트(패치)가 되어있는 사용자는 아무런 피해를 입지 않습니다. 또한 컴퓨터에 백신프로그램이 설치 되어 있다 해도, 프로그램에 관한 업데이트를 하지 않았더라면, 익스플로잇 공격을 100%막기에 한계가 있습니다. 

출처 : https://www.estsecurity.com/securityCenter/commonSense/view/41 (알약)

 

메타익스플로잇은 다음과 같이 실행하게 됩니다. msfconsle을 입력하면 아래와 같이 msf 데몬에 접속 하게 됩니다.


root@choi:/# msfconsole



                                   .,,.                  .

                                .\$$$$$L..,,==aaccaacc%#s$b.       d8,    d8P

                     d8P        #$$$$$$$$$$$$$$$$$$$$$$$$$$$b.    `BP  d888888p

                  d888888P      '7$$$$\""""''^^`` .7$$$|D*"'```         ?88'

  d8bd8b.d8p d8888b ?88' d888b8b            _.os#$|8*"`   d8P       ?8b  88P

  88P`?P'?P d8b_,dP 88P d8P' ?88       .oaS###S*"`       d8P d8888b $whi?88b 88b

 d88  d8 ?8 88b     88b 88b  ,88b .osS$$$$*" ?88,.d88b, d88 d8P' ?88 88P `?8b

d88' d88b 8b`?8888P'`?8b`?88P'.aS$$$$Q*"`    `?88'  ?88 ?88 88b  d88 d88

                          .a#$$$$$$"`          88b  d8P  88b`?8888P'

                       ,s$$$$$$$"`             888888P'   88n      _.,,,ass;:

                    .a$$$$$$$P`               d88P'    .,.ass%#S$$$$$$$$$$$$$$'

                 .a$###$$$P`           _.,,-aqsc#SS$$$$$$$$$$$$$$$$$$$$$$$$$$'

              ,a$$###$$P`  _.,-ass#S$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$####SSSS'

           .a$$$$$$$$$$SSS$$$$$$$$$$$$$$$$$$$$$$$$$$$$SS##==--""''^^/$$$$$$'

_______________________________________________________________   ,&$$$$$$'_____

                                                                 ll&&$$$$'

                                                              .;;lll&&&&'

                                                            ...;;lllll&'

                                                          ......;;;llll;;;....

                                                           ` ......;;;;... .  .



       =[ metasploit v4.16.59-dev                         ]

+ -- --=[ 1769 exploits - 1008 auxiliary - 307 post       ]

+ -- --=[ 537 payloads - 41 encoders - 10 nops            ]

+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]


msf >


메타스플로잇은 사용자가 지정하는 실행모드에 따라 다양한 방식으로 실행된다. 실행 모드에 따라 모듈에 관한 다양한 정보를 얻을 수 있다. 실행모드에 따라 모듈에 관한 정보를 얻을 수 있다.


root@choi:/usr/share# msfconsole -x "use exploit/windows/smb/ms08_067_netapi;show info"

       Name: MS08-067 Microsoft Server Service Relative Path Stack Corruption

     Module: exploit/windows/smb/ms08_067_netapi

   Platform: Windows

       Arch:

 Privileged: Yes

    License: Metasploit Framework License (BSD)

       Rank: Great

  Disclosed: 2008-10-28


Provided by:

  hdm <x@hdm.io>

  Brett Moore <brett.moore@insomniasec.com>

  frank2 <frank2@dc949.org>

  jduck <jduck@metasploit.com>


Available targets:

  Id  Name

  --  ----

  0   Automatic Targeting

  1   Windows 2000 Universal

  2   Windows XP SP0/SP1 Universal

  3   Windows 2003 SP0 Universal

  4   Windows XP SP2 English (AlwaysOn NX)

  5   Windows XP SP2 English (NX)

  6   Windows XP SP3 English (AlwaysOn NX)

  7   Windows XP SP3 English (NX)

  8   Windows XP SP2 Arabic (NX)

  9   Windows XP SP2 Chinese - Traditional / Taiwan (NX)

  10  Windows XP SP2 Chinese - Simplified (NX)

  11  Windows XP SP2 Chinese - Traditional (NX)

  12  Windows XP SP2 Czech (NX)

  13  Windows XP SP2 Danish (NX)

  14  Windows XP SP2 German (NX)

  15  Windows XP SP2 Greek (NX)

  16  Windows XP SP2 Spanish (NX)

  17  Windows XP SP2 Finnish (NX)

  18  Windows XP SP2 French (NX)

  19  Windows XP SP2 Hebrew (NX)

  20  Windows XP SP2 Hungarian (NX)

  21  Windows XP SP2 Italian (NX)

  22  Windows XP SP2 Japanese (NX)

  23  Windows XP SP2 Korean (NX)

  24  Windows XP SP2 Dutch (NX)

  25  Windows XP SP2 Norwegian (NX)

  26  Windows XP SP2 Polish (NX)

  27  Windows XP SP2 Portuguese - Brazilian (NX)

  28  Windows XP SP2 Portuguese (NX)

  29  Windows XP SP2 Russian (NX)

  30  Windows XP SP2 Swedish (NX)

  31  Windows XP SP2 Turkish (NX)

  32  Windows XP SP3 Arabic (NX)

  33  Windows XP SP3 Chinese - Traditional / Taiwan (NX)

  34  Windows XP SP3 Chinese - Simplified (NX)

  35  Windows XP SP3 Chinese - Traditional (NX)

  36  Windows XP SP3 Czech (NX)

  37  Windows XP SP3 Danish (NX)

  38  Windows XP SP3 German (NX)

  39  Windows XP SP3 Greek (NX)

  40  Windows XP SP3 Spanish (NX)

  41  Windows XP SP3 Finnish (NX)

  42  Windows XP SP3 French (NX)

  43  Windows XP SP3 Hebrew (NX)

  44  Windows XP SP3 Hungarian (NX)

  45  Windows XP SP3 Italian (NX)

  46  Windows XP SP3 Japanese (NX)

  47  Windows XP SP3 Korean (NX)

  48  Windows XP SP3 Dutch (NX)

  49  Windows XP SP3 Norwegian (NX)

  50  Windows XP SP3 Polish (NX)

  51  Windows XP SP3 Portuguese - Brazilian (NX)

  52  Windows XP SP3 Portuguese (NX)

  53  Windows XP SP3 Russian (NX)

  54  Windows XP SP3 Swedish (NX)

  55  Windows XP SP3 Turkish (NX)

  56  Windows 2003 SP1 English (NO NX)

  57  Windows 2003 SP1 English (NX)

  58  Windows 2003 SP1 Japanese (NO NX)

  59  Windows 2003 SP1 Spanish (NO NX)

  60  Windows 2003 SP1 Spanish (NX)

  61  Windows 2003 SP1 French (NO NX)

  62  Windows 2003 SP1 French (NX)

  63  Windows 2003 SP2 English (NO NX)

  64  Windows 2003 SP2 English (NX)

  65  Windows 2003 SP2 German (NO NX)

  66  Windows 2003 SP2 German (NX)

  67  Windows 2003 SP2 Portuguese - Brazilian (NX)

  68  Windows 2003 SP2 Spanish (NO NX)

  69  Windows 2003 SP2 Spanish (NX)

  70  Windows 2003 SP2 Japanese (NO NX)

  71  Windows 2003 SP2 French (NO NX)

  72  Windows 2003 SP2 French (NX)


Basic options:

  Name     Current Setting  Required  Description

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

  RHOST                     yes       The target address

  RPORT    445              yes       The SMB service port (TCP)

  SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)


Payload information:

  Space: 408

  Avoid: 8 characters


Description:

  This module exploits a parsing flaw in the path canonicalization

  code of NetAPI32.dll through the Server Service. This module is

  capable of bypassing NX on some operating systems and service packs.

  The correct target must be used to prevent the Server Service (along

  with a dozen others in the same process) from crashing. Windows XP

  targets seem to handle multiple successful exploitation events, but

  2003 targets will often crash or hang on subsequent attempts. This

  is just the first version of this module, full support for NX bypass

  on 2003, along with other platforms, is still in development.


References:

  https://cvedetails.com/cve/CVE-2008-4250/

  OSVDB (49243)

  https://technet.microsoft.com/en-us/library/security/MS08-067

  http://www.rapid7.com/vulndb/lookup/dcerpc-ms-netapi-netpathcanonicalize-dos 


반응형
반응형

로컬 네트워크상의 공격자들은 종종 ICMP를 악용하는데, 이는 ICMP가 보안을 전혀 고려하지 않고 설계된 프로토콜이다


ICMP 프로토콜을 이용한 라이브 호스트 탐색방법

namp -sm {옵션} [호스트주소 | 도메인명| CDIR 넷마스크 | IP 범위]

예) nmap -sn -v --reason 172.30.1.0/24 

     nmap -sn -v --reason 172.30.1.0-255 

     nmap -sn -v --reason 172.30.1.12


 root@choi:~# nmap -sn -v --reason 172.30.1.22

Starting Nmap 7.70 ( https://nmap.org ) at 2018-07-08 21:39 KST

Initiating ARP Ping Scan at 21:39

Scanning 172.30.1.22 [1 port]

Completed ARP Ping Scan at 21:39, 0.33s elapsed (1 total hosts)

Initiating Parallel DNS resolution of 1 host. at 21:39

Completed Parallel DNS resolution of 1 host. at 21:39, 0.37s elapsed

Nmap scan report for 172.30.1.22

Host is up, received arp-response (0.098s latency).

MAC Address: 00:00:00:00:00:00 (Microsoft)

Read data files from: /usr/bin/../share/nmap

Nmap done: 1 IP address (1 host up) scanned in 0.74 seconds

           Raw packets sent: 2 (56B) | Rcvd: 1 (28B)   


nmap 옵션

  • -sn : icmp 프로토콜을 사용하고 포트 스캐닝을 수행하지 않는다
  • --reason : 호스트 스캐닝 결과에 대한 이유를 출력하는 옵션
  • -PE : 핑에 사용되는 패킷인 ICMP 에코 요청을 사용
  • -PP : 타임스탬프 요청을 사용. 모의 해킹시 타임 스탬프 요청에 응답하는 호스트는 보통 취약함 
           기본설정을 변경하지 않았거나 취약하게 설정된 암호화 라이브러리는 시드값을 시스템시간을 활용
  • -PM : icmp 넷마스크 요청을 사용. 이 패킷은 원래 네트워크 엔지니어가 호스트의 네트워크 설정정보를 질의할 때 사용
  • -PS TCP SYN 플래그 스캔 : 호스트로 SYN 패킷을 전송한 후 응답 유모와 응답 내용에 따라 해당 호스트가 실제로 네트워크에 존재하는지 판단
  • -PA TCP ACK 플래그 스캔 : TCP ACK 플래그를 전송한 후 응답여부 등을 보고 호스트 존재 여부를 구별. 호스트는 TCP 프로토콜 표준을 엄격히 준수하며 RST 패킷을 이용해서 ACK 플래그가 설정된 패킷에 응답한다.
  • -PO IP 프로토콜 핑 : RST 플래그가 설정된 TCP 패킷을 리스닝하는 방식으로 타겟 호스트가 지원하는 프로토콜을 알아낸다. 이는 유효하지 않은 패킷을 수신하면 임의의 식별자로 프로토콜 번호를 설정한 패킷으로 응답하는 라이브 호스트가 존재하기 때문에 가능


반응형

+ Recent posts