1. 스캐닝

1) 기본 설정

와이어샤크에서 스캐닝을 위해 기본설정을 해주자

view - Time Display Fomat 변경

edit -Preferences 변경

2) Banner Grabbing

ping을 했을 때 TTL을 보고 어떤 OS인지 추측할 수 있다.
만약 ping에서 ttl이 58이고 traceroute가 4면 ttl은 64다. 그럼 해당 os는 리눅스임을 알 수 있다.

운영체제기본 TTL 값(대표)비고
리눅스 (Linux)64대부분의 리눅스 배포판 기본값
유닉스 (Unix 계열)64BSD 계열 등 많은 유닉스 시스템에서 64 사용
윈도우 (Windows)128Windows 클라이언트/서버 기본값

3) IP Scanning

대상에게 패킷을 던지고 돌아오는 응답을 확인하여 IP가 살아있는지 방화벽이 있는지 확인한다.

4) Port Scanning

nmap을 통해 확인하여 볼건데 먼저 옵션을 알아보자

  • sS : SYN Scan
    TCP 3-way 핸드셰이크를 완전히 맺지 않고 SYN까지만 보내 확인
  • sT : TCP Connect Scan
    OS의 소켓 API를 이용해 정식 3-way 핸드셰이크 수행.
  • sU : UDP Scan
    대상 포트에 UDP 패킷 전송.

nmap을 통해 포트 스캔을 진행해보자.

스캔 결과, 22번(SSH) 과 80번(HTTP) 포트가 열려(open) 있는 것을 확인할 수 있다.
22 포트가 열려있어서 -sS 동작 시 syn syn/ack rst 을 하게된다.
tcp는 syn syn/ack ack 동작을 하는데 포트가 열려있는것을 확인했으니까 syn대신 rst 보내서 세션 안맺고 날려서 통신을 초기화한다.

25번 포트는 닫혀있으니 syn rst/ack 를 보낸다.

대부분 방화벽에서 ICMP Echo를 막아서 오탐이 발생할 수 있다. 이를 위해 스탤스 스캔을 이용할 수 있다.
nmap에서 -P 옵션을 이용하면 된다.

nmap -sF 192.168.72.139 -P 0-1023

nmap -sX 192.168.72.139 -P 0-1023

ssh 연결 시 헤더만 보고 ssh의 지원 버전과 openssh 버전을 확인할 수 있다. 이 정보를 토대로 1-day 공격을 시도해 볼 수도 있을 것이다.

5) OSINT 실습

CDN(Content Delivery Network) 서비스 때문에 불법 사이트들의 실제 IP를 확인하기 힘들다. CDN 서비스에는 대표적으로 Cloudflare가 있다.

1. nslookup

2. whois 사이트 이용

3. IP 확인 (https://ipinfo.io/)

4. SecurityTrail

5. zaproxy






6) 와이어샤크로 패킷 확인

  • 처음에 statistic - capture file properties 여기서 이 pcap의 기본 정보 나옴

  • static - protocol Hierarchy Static
    이더넷, ipv4가 98.3%
    bytes도 봐야됨 → 97퍼 쓰고 있음

  • static - conversations

apply as filter 하면 자동으로 필터 생김

  • static -i/o graphs
    보고서에 쓸만한 그래프

  • file - object list

  • 실습
    scan 폴더에 접근하는것 같다

    파일 다운받는거 같아서 url decode 해보니 “스캔과 네트워크패킷 분석.pdf”를 다운해갔다.

tshark

tshark를 이용해 cli 환경에서 패킷을 분석해볼수도 있다.

tshark 환경변수를 잡아서 윈도우 cmd에서 이용해도 되고 아니면 wsl에 깔아서 이용해도 된다.

-Y를 통해 필터를 걸어줄 수 있다.
-v는 자세히 보기

ip에 src
-G를통해 cut

Tfileds -e 를 통해 내가 원하는 필드만 뽑기

ip만 추출

awk이용해서 나한테 40번 이상 들어온거 필터링

  • 문제 1 [CTF-D] 우리의 제일 귀여운..
    tcp urgent를 뽑아보자

tshark -r stego.pcap -T fields -e "tcp.urgent_pointer" | egrep -vi "^0$" | tr '\n' ','
67,84,70,123,65,110,100,95,89,111,117,95,84,104,111,117,103,104,116,95,73,116,95,87,97,115,95,73,110,95,84,104,101,95,80,105,99,116,117,114,101,125,

arr = [67,84,70,123,65,110,100,95,89,111,117,95,84,104,111,117,103,104,116,95,73,116,95,87,97,115,95,73,110,95,84,104,101,95,80,105,99,116,117,114,101,125]
print("".join([chr(x) for x in arr]))
  • 문제2
snort.log.sample 파일을 이용해서 풀어주세요.
문제 1) uri 에 담긴 fr.jpg그림 파일 이 통신된  시간,  출발지 ip ,  host,   uri 출력

문제 2) 217.195.49.146 주소가  접근 하는 host, method, uri  의 접근 횟수를 알려주세요.

문제 3) 217.195.49.146 이면서 HTTP POST Command Injection 되는 정보는 어떻게 확인 해야 하나?

1번

2번
뒤에 | sort | uniq -c | sort -rn 자주씀

3번

0개의 댓글