티스토리 뷰

네트워크

[SEED Labs]Packet Sniffing

삼전동해커 2021. 5. 10. 21:31

출처 : seedsecuritylabs.org/

 

SEED Project

Hands-on Labs for Security Education Started in 2002, funded by a total of 1.3 million dollars from NSF, and now used by over a thousand educational institutes worldwide, the SEED project's objective is to develop hands-on laboratory exercises (called SEED

seedsecuritylabs.org

 

Seed labs는 소프트웨어, 네트워크, 웹, 시스템, 암호, 모바일 보안 분야 취약점 등을 공부할 수 있는 사이트다.

학과 수업을 기반으로 네트워크 보안 분야를 공부해 정리할거임.

 

1.패킷 스니핑,스푸핑

2.arp 캐시 포이즈닝

3.스머프 공격

4.tcp 공격

5.minick attack 

순서로 진행한다.

 

일단 환경은 seed lab에서 제공하는 우분투 20.04 64비트버전이고, 

seedsecuritylabs.org/labsetup.html

 

SEED Project

Labs based on this VM have already been phased out, but there are still two labs that are based on these VM, because the involved vulnerabilities have already been fixed in newer OSes. The VM (SEEDUbuntu12.04.zip) can be downloaded from the following links

seedsecuritylabs.org

여기서 다운 받을 수 있다.

vdi 파일이기 때문에 virtual box를 사용해야 한다.

램이 최소 2기가는 있어야지 원활히 돌아가니 꼭 주의하자.

 

Packet Sniffing and Spoofing Lab

패킷 스니핑과 스푸핑 실습을 해보는 것 같다.

이번 랩에서는 두개의 컴퓨터를 사용한다. 

공격자는 10.9.0.1 유저는 10.9.0.5 IP를 사용한다. 위에서 설치한 우분투 안에

seedsecuritylabs.org/Labs_20.04/Networking/Sniffing_Spoofing/

 

SEED Project

Overview Packet sniffing and spoofing are the two important concepts in network security; they are two major threats in network communication. Being able to understand these two threats is essential for understanding security measures in networking. There

seedsecuritylabs.org

Lab setup files를 넣어두자.

이건 docker compose 파일인데 여러 개의 docker를 정의하고 실행해주는 툴이다. 

 

파일 압축을 풀고 열어보면

2개의 파일이 있다. 일단 docker-compose.yml 파일은 docker-compose 환경이 구성된 파일이다.

 

 

 

위와 같이 구성이 되어 있다.

 

파일이름은 docker-compose.yml이라고 만들어야 한다.

YAML라는 구조로 내용을 작성한다.

YAML 구조 : serious-code.net/doku/doku.php?id=kb:yamltutorial

파일 내에서 주의할 점은 꼭 : 후에 한칸 띄어 주어야 한다.

 

version은 현재 스키마 버전인데 가장 최신버전은 3.7버전이다.

 

다음에는 애플리케이션에서 실행하려는 서비스 목록을 정의한다.

이름을 attacker로 정했고,

 

image는 db서비스에서 사용할 도커 이미를 말한다. seed에서는 hands on security(seed lab임)의 seed-ubuntu의 large라는 이미지를 사용한다고 한다.

 

container_name은 도커 내에서 사용하는 이름을 말하는 것 같다. seed-attacker로 사용했다.

 

tty는 터미널을 사용할 수 있게 한다는 의미이다.

 

cap_add는 컨테이너의 시스템에 관한 권한을 의미한다. -ALL로 모든 권한을 add했다. cap_drop으로 권한을 없앨 수 있다.

 

privileged는 컨테이너 내의 자원에 접근하기 위한 권한을 의미한다. 공유 중인 volume에 접근할 수 있다. true로 설정.

 

volumes는 컨테이너에서 사용할 볼륨의 경로를 의미한다.

 

network_mode는 컨테이너 안에서 호스트의 네트워크를 그대로 사용한다는 의미의 host를 사용했다.

host외에도 bridge로 bridge모드의 새로운 네트워크 생성, none으로 네트워크 사용안함. 등을 설정할 수 있다.

 

host 사용자를 보면

똑같은 image를 사용했고,

container_name은 host_10.9.0.5

tty true

cap_add ALL

networks는 네트워크를 구성하기 위한 최상위 키, 이하 옵션 키들을 조합하여 네트워크를 지정한다. 라고 하는데 뭔말인지 모르겠다.

적어 놓은 내용을 봐서는 10.9.0.0 대역에서 10.9.0.5 ip를 사용한다는 것 같고, 그 밑에 networks를 보면 10.9.0.0 대역의 이름은 net-10.9.0.0으로 설정, subnet은 /24로 설정했다.

 

이렇게 docker-compose 구성을 알아봤다.

 

이제 build를 해보자.

 

docker-compose build 명령어를 통해 다음과 같이 실행된다.

이 명령어로 container image를 빌드한다.

 

docker-compose up으로 이미지를 컨테이너를 실행시킨다.

 

 

이렇게 docker가 실행이 된다.

 

docker ps 명령어와 dockps로 현재 실행 중인 도커 정보를 알 수 있다.

 

 

2개의 터미널에서 5f2ba3이랑 fe430 접속 창을 따로 만든다.

docksh 5f2ba로 접속하고, docksh fe430로 접속한다.

 

 

 

ifconfig 명령어를 사용해 확인해보면 다음과 같은 네트워크 정보를 확인할 수 있다.

 

 

 

각자의 ip를 확인해 보면 유저는 10.9.0.5로 설정되어 있고, 공격자는 10.9.0.1로 설정되어 있다.

 

scapy를 사용해 스니핑 스푸핑을 해보자. 

scapy.all을 사용해 IP()함수를 사용해 ip 정보를 받아온다. 그리고 출력.

 

 

 

내 looping 정보라서 src와 dst가 127.0.0.1이 된다.

 

패킷 스니핑하기

와이어샤크를 이용하면 편하게 스니핑할 수 있지만 이번 목적은 scapy를 이용해 스니핑해보는 것이기 때문에 scapy를 이용해보자.

 

공격자 도커에서 다음과 같이 코드를 작성한다

 

 

sniff함수를 이용해 interface는 위에서 ifconfig로 확인한 네트워크의 이름을 적어준다. icmp 패킷을 필터링해 print_pkt함수를 사용한다는 의미이다.

interface를 여러 개 사용하고 싶으면 iface=['~~~','~~~'] 이렇게 사용하면 된다.

 

그리고 유저에서 공격자로 ping을 보내보자.

 

유저 화면

 

 

공격자 화면

 

위와 같이 공격자화면에서 보내지는 패킷의 정보가 나온다.

 

이번엔 8.8.8.8로 ping을 보내보자.

 

유저 화면

 

공격자 화면

 

ethernet에서 dst의 mac, src의 mac 정보가 나오고, IP의 헤더정보들이 보이고, RAW값들이 보인다.

icmp에서 type이 echo-request로 나온다.

 

 

공격자 화면에서 응답 패킷

 

이 사진은 공격자 화면에서 보이는 응답 패킷이다.

src와 dst가 바뀐게 보이고 icmp type도 echo-reply로 설정되어 있다.

 

이렇게 패킷 스니핑에 성공했다.

 

'네트워크' 카테고리의 다른 글

PCAP 패킷 관리 라이브러리  (0) 2021.05.20
[SEED Labs]Packet Spoofing  (3) 2021.05.12
[네트워크]TCP에 관하여  (0) 2021.04.08
라우팅  (0) 2021.03.29
C socket 프로그래밍 수업 1주차 심화  (0) 2021.03.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함