반응형

너무 말이 어렵게 느껴지더라도 조급해하지 마세요

그저 설명되어 있는 글을 읽고 아 그렇구나 하고 넘어가시면 됩니다.

하나하나 이해하려고 하면 할 수 없습니다.

 

시간이 지나며 차차 이해하시게 될 겁니다.

 

OSI 7 Layer Reference Model

(open system interconnection)

"한국말로 개방형 시스템"

 

OSI 7 계층이란 무엇일까요?

OSI 참조 모델이라고 불리는 이것은

모든 장치나 네트워크 통신장비를 만들고 구성할 때

이것을 보고 만들자라고 약속하고 정해놓은 기본이 되는 표준

 

, 기준인 7개의 레이어입니다.

 

쉽게 말해서 전세계에서 휴대폰 충전기를 만들 때

여러 회사에서 가지각색의 모양을 가진 수많은 충전기를 만들어내는 것이 아니라

라이트닝 단자로 만들자 혹은 C 타입 단자로 만들자라고 약속하고

일정한 모양을 규칙으로 정해놓고 혼선을 없애는 것과 같은 개념입니다.

 

만약 이러한 규칙이나 약속을 정해두지 않는다면 

수 많은 다른 모양의 충전기들이 나오고 수많은 휴대폰들이 다른 잭을 가지고 있게 되고

우리는 서로 충전기를 공유하지 못하고 매번 충전기를 사야 하는 어려움을 겪게 되겠죠??

 

그래서 필요한 것이 기준과 표준이며 네트워크 통신장비를 만들 때

이 OSI 7 계층이 바로 기준이 되었고 이 규칙은 1984년에 국제 표준화기구 (ISO)에서 발표되었습니다.

 

그렇다면 왜 7 계층이라는 단어를 쓰게 되었을까요?

 

(너무 어렵게 생긴 위 사진을 이해하려 하지 마세요)

쉽게 설명드리겠습다.

 

군대에서 상급자가 하급자에게 명령을 내릴 때 가장 아래 병사인 이등병까지

명령이 잘 전달되어야 임무를 수행하겠죠?

7 계층 역시 같은 구조입니다.

 

하지만 순서만 반대로 생각하시면 돼요

맨 아래 1에서부터 상위 6번까지 모든 것이 완벽하게 연결되어야 비로소 7이 동작하게 됩니다.

 

바로 이러한 모습이

완벽한 수직적 모습을 갖추고 있기 때문에 "계층"이라는 단어를 쓰게 되었습니다.

그래서 우리는 이것을 7 계층이라고 합니다.

 

이렇게 OSI 7 계층은 통신이 일어나는 과정을 총 7가지로 구분 지어놓고

단계별로 정의하여 네트워크를 구성하고 데이터의 흐름을 파악할 수 있도록 각각 고유한 형태를 이루고 있습니다.

각 계층은 독립되어 있으며 한 부분에서 문제가 생긴다면

빠르게 문제가 생긴 부분을 파악할 수 있고 그 부분을 보안할 수 있도록 모습이 고안되었습니다.

 

우리는 이미 이걸 이해하고 있을지도 모릅니다.

 

예를 하나 들어보도록 할게요

컴퓨터에서 인터넷이 갑자기 안됩니다.

왜 이러지? 인터넷 문제인가? 하면서 인터넷 선을 뽑았다 다시 꽂았다 하면서 확인하잖아요?

우리는 이미 OSI 7 계층에서의 3단계 네트워크 단계를 이해하고 있는 겁니다.

만약 접속이 문제가 아니라면 아래 물리계층 1단계 데이터 계층 2단계도 문제가 없는 것이니

4번 전송 계층부터 문제점을 확인해 나아가면 됩니다.

 

이해가 좀 되시나요?

 

오늘 이 글에서는 아래 내용만 기억하시고

넘어가시면 좋을 같습니다.

1. 모든 장치나 네트워크 통신장비를 만들고 구성할 때 기준으로 약속하고
모습을 정해놓은 7가지 약속이 있고 우리는 이걸 OSI 7계층으로 부르고 있다.


2. 7계층이라고 부르는 이유는 수직적으로 운용되기 때문이다.
(1이 되어야 2가 되고 모든 것이 순차적으로 완료되어야 7이 동작한다.)

3. 7계층은 각각 독립된 형태를 유지하고 있어 문제가 발생하면 파악도 빠르고 해결도 빠르다.

 

네트워크를 준비하시는 분들은 CCNA 시험에 대해서 궁금하실 것 같은데요

아래 자세히 설명해놨으니 참고해주시기 바랍니다.

https://jdcyber.tistory.com/47

 

CCNA란 무엇일까요? (소개, 시험, 덤프, 네트워크)

​ CCNA (Cisco Certified Network Associate)란 무엇일까요? CCNA는 네트워크 기술 능력을 검증하는 가장 기초적인 시험입니다. 여기서 C는 Cisco라는 미국 캘리포니아에 있는 네트워크 하드웨어, 보안 서비스

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

 

와이어샤크 WhireShark 란?

초창기에는 ' Ethereal '이라는 이름으로 나왔다가

이후 상표 문제로 ' Wireshark ' 바뀌게 되었습니다.

 

와이어 샤크는 네트워크 패킷을 캡처하고 분석하는 패킷을 분석하는 프로그램입니다.

와이어 샤크는 현재 통신 중인, 실제 흘러가고 있는 데이터,

패킷을 캡처하여 데이터의 흐름을 살펴볼때 사용하는 분석 프로그램입니다.

즉, 내가 보내거나 받는 데이터가 케이블을 타고 흘러갈 때

그 내용을 찍어서 분석하고 알아본다는 이야기입니다.

 

패킷이 무엇일까요?

아래 글을 읽어주세요!

https://jdcyber.tistory.com/12

 

패킷(Packet)이란? (쉬운 설명, 구조, 헤더, 인캡슐레이션, 핑, Ping)

패킷 (Packet) 이란 무엇일까요? 패킷은 패키지(package)와 덩어리를 뜻하는 버킷(bucket)의 합성어로 통신망을 통해 전송하기 쉽도록 데이터를 잘게 나눈 전송 단위입니다. ​ 본래 패킷은 소포를 뜻

jdcyber.tistory.com

주로 네트워크 문제를 조사하거나

좀처럼 원인을 찾기 힘든 네트워크에 대한 트러블

(장애)을 해결할 때 사용됩니다.

 

강력하고 쉬운 사용법 때문에 해킹뿐만 아니라

보안 취약점 분석, 보안 컨설팅, 개인정보 영향 평가 등

여러 분야에서 폭넓게 사용되고 있으며 특히 교육용으로 널리 사용되고 있습니다.


주요기능

 

네트워크 인터페이스 RAW 패킷 캡처
패킷 내용 분석 가능 (상세 표시)
캡처 데이터를 열거나 저장
패킷 필터링 혹은 검색
다양한 통계 생성 가능
플러그인 제작하여 기능 확장 가능
USB, 블루투스 등의 프로토콜 분석 가능
Python 이용하여 독자적 분석기 제작 가능

응? 뭐라고요?

 

 

PC로 홈페이지를 보거나 이메일을 보낼 때에

전송되는 데이터는 실제로는 LAN 케이블을 통해 전기 신호 형태로 바뀌어 흐르게 됩니다.

 

와이어 샤크 (LAN 분석기)는 LAN 케이블을 지나는

전기 신호를 데이터를 패킷 형태로 가져와서 패킷의 의미를 조사할 수 있기 때문에,

나의 컴퓨터와 네트워크 사이 케이블 속을 지나다니는 내용/정보 들을 살펴보고 직접 확인해 있습니다.

 

LAN 케이블을 지나는 전기신호를 데이터 형태로 가져오는 것을 패킷 캡처라고 하고,

가져온 패킷의 의미를 조사하는 것은 덤프 분석이라고 합니다


와이어샤크 설치

 

아래 사이트에 접속하신 후

stable release에서 운영체제에 맞는 것을 설치합니다.

https://www.wireshark.org/download.html

 

Wireshark · Download

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org

 

 

다음 쭉 눌러서 설치하시는데

아래 체크박스는 꼭 해주세요

pcap를 이용해서 패킷을 캡쳐하기 때문에 반드시 설치해야합니다.

(WinPcap 설치해주세요)

 

와이어 샤크의 필터 검색 방법 및 세부 내용은

다음 글에서 연습해 보도록 하겠습니다.

https://jdcyber.tistory.com/9

 

와이어샤크 (Whireshark) 사용법#2 (쉬운 설명, 필터, 캡처, 연산자)

와이어샤크란? 오늘은 와이어샤크 사용법에 대해 간단히 알아보겠습니다. 그전에 혹시 와이어샤크에 대해 모르시는 분들은 ​ 전에 적어 두었던 개념과 설치법도 함께 적어놨으니 읽어보고 와

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

와이어샤크란?

 

오늘은 와이어샤크 사용법에 대해 간단히 알아보겠습니다.

그전에 혹시 와이어샤크에 대해 모르시는 분들은

 

와이어샤크의 개념과 설치법도 함께 적어놨으니

아래 글을 읽어보고 와주시길 바랍니다

https://jdcyber.tistory.com/10

 

와이어샤크란? #1 (Whireshark) (쉬운 설명, 설치, 정의, 개념, 용도)

와이어샤크 WhireShark 란? 초창기에는 ' Ethereal '이라는 이름으로 나왔다가 이후 상표 문제로 ' Wireshark '로 바뀌게 되었습니다. 와이어 샤크는 네트워크 패킷을 캡처하고 분석하는 패킷을 분석하는

jdcyber.tistory.com


와이어 샤크 사용법

 

와이어 샤크를 실행하시면 아래와 같은 창이 뜨실겁니다.

 

Capture라고 쓰여있는 곳 아래

제 화면과 다르게 뜨실 수도 있는데

저곳에 떠있는 내용들은 와이어샤크가

자동으로 찾아준 현재 사용하고 계시는 네트워크를 표시하고 있는 것이니

저와 다르시더라도 걱정하지 마시기 바랍니다.

 

저곳에서 살펴보고 싶은 네트워크를 선택하고

상단 왼쪽에 상어 지느러미를 클릭해 주세요

(이러한 행위를 와이어샤크에서 네트워크를 캡처했다고 부릅니다.)


캡처 (Capture)

 

와이어샤크에서 네트워크를 캡처하기 시작하면

해당 네트워크에서 오고 가는

패킷들이 보이기 시작합니다.

 

패킷이 아직 뭔지 모르신다면

아래 글을 읽어주세요!

https://jdcyber.tistory.com/12?category=1076407

 

패킷(Packet)이란? (쉬운 설명, 구조, 헤더, 인캡슐레이션, 핑, Ping)

패킷 (Packet) 이란 무엇일까요? 패킷은 패키지(package)와 덩어리를 뜻하는 버킷(bucket)의 합성어로 통신망을 통해 전송하기 쉽도록 데이터를 잘게 나눈 전송 단위입니다. ​ 본래 패킷은 소포를 뜻

jdcyber.tistory.com

 

위 사진이 현재 컴퓨터가 네트워크를 통해 쪼개진 데이터 즉 패킷을 주고받는 모습입니다.

 

(아래 메뉴 및 카테고리 설명은 중요한 내용이 아닙니다)

상단에 메뉴를 먼저 살펴보겠습니다.

Edit : 패킷을 찾거나 표시 / 프로그램 속성 설정

Go : 캡처된 데이터를 특정 위치로 이동

Capture: 캡처 필터 옵션 설정 및 캡처 시작/종료

Analyze: 분석 옵션 설정

Statistics: 통계 데이터 확인

Telephony/Wireless : Telephony 또는 Wireless와 관련된 통계/스트림 확인

 

그 아래 있는 카테고리를 한번 살펴보도록 하겠습니다

 

No. : 패킷을 수집한 순서

Time : 패킷이 수집된 시간

Source : 패킷을 보낸 주소

Destination : 패킷 도착 주소

Protocol : 프로토콜 정보

Length : 패킷의 길이

Info : 패킷 정보

필터 (Filter)

 

 

와이어 샤크를 실행하고 배우는 이유는

어떠한 네트워크 상의 문제나 특정 데이터의 흐름을 찾아보고 싶어서 실행한 거잖아요?

그런데 네트워크 상의 모든 내용을 캡처하면 내가 보고 싶은 데이터를 보기가 어려울 수 있습니다.

이때 필요한 기능이 바로 필터라는 것입니다.

패킷 필터를 적용하는 것을 패킷 필터링이라고 부릅니다

(어떻게 부르던 자유니 외우시거나 할 필요는 없습니다)

캡처 방법에는 2가지가 있는데,

원하는 내용만 처음부터 캡처하는 캡처 필터 (Capture Filter)

전체를 캡처하고 필터를 걸어 검색하는 디스플레이 캡처 (Display Filter)가 있습니다.

우리는 캡처 필터는 사용하지 않겠습니다.

위 방법들이 크게 중요하지도 않고

디스플레이 캡처만 알고 계셔도 됩니다

이런 방법이 있구나 알고만 넘어갑시다.


프로토콜 (Protocol) 별 필터 검색

 

프로토콜로 데이터를 검색하는 방법입니다.

DNS: DNS (Domain Name System), 도메인 이름
DHCP: DHCP (Dynamic Host Configuration Protocol), 동적 IP 주소 할당 요청
ICMP: ICMP (Internet Control Message Protocol), 송수신 측의 전송 과정
WLAN: 무선랜

논리 연산자 필터 검색

 

eth.addr
원하는 MAC 주소 필터
!(eth.addr)
입력한 MAC 주소 예외
eth.src
출발지 MAC 주소 설정
eth.dst
목적지 MAC 주소 설정
tcp.port
TCP 포트 설정
!(tcp.port)
입력한 TCP 포트 주소 예외
tcp.srcport
출발지 TCP 포트 설정
tcp.dstport
목적지 TCP 포트 설정
udp.port
UDP 포트 설정
!udp.port
입력한 UDP 포트 예외
udp.srcport
출발지 UDP 포트 설정
udp.dstport
목적지 UDP 포트 설정
ip.addr
IP 필터
!(ip.addr)
입력한 IP 주소 예외
ip.src
출발지 IP 주소 설정
ip.dst
목적지 IP 주소 필터

쉽게 알려주세요

 

지금 우리가 원하는 건 지금 위의 내용이 아니라

데이터의 흐름을 직접 검색해서 보고 싶어요

 

그래서 어떻게 하는건가요??

정말 쉬운 예시 하나로 같이 살펴볼게요!

CMD 프롬프트 혹은 터미널 Terminal에서

nslookup www.naver.com 한번 쳐봅시다

 

아이피가 23.35.221.113이네요?

(아이피는 계속 달라지니 직접 nslookup 해보시고 시도해 주세요)

아이피를 알아냈으니 와이어샤크로 검색해 봅시다

 

위에 논리연산자라고 적어놓은 것 중에 IP 필터라고 있죠?

그걸 앞에 입력하고 위와 같이 입력해 봅시다.

ip.addr == 23.35.221.113

(nslookup에 나온 ip를 치시면 됩니다)

필터를 검색하면 해당 아이피와 통신했던 데이터 패킷만 출력되게 됩니다.

 

저희가 검색한 패킷에서 Three Way Hand Shake을

한번 찾아볼까요?

 

3-Way Hand Shake가 뭔지 모르신다면

아래 글을 읽어봐주세요!

(작성 )

 

위 사진을 보면 오른쪽에 SYN과 ACK를 주고받으며

3-way hand shake를 수행하여 신뢰관계를 맺은 데이터의 흐름을 확인할 수 있습니다.

 

와이어샤크는 얼마나 필터 검색을 잘 하느냐에 따라 전문가와 비전문가로 결정됩니다.

많은 데이터 검색을 해보시고 연산자를 조합해서 원하는 데이터를 검색해낼 수 있다면

성공적인 와이어샤크 전문가 되실 것입니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

 

오늘은 Windows 운영 체제에서 가장 중요한

파일 형식인 Portable Executable(PE)에 대해 이야기하려 합니다.

PE 파일은 .exe, .dll, .sys 등과 같이 실행 가능한 파일들을 가리키며,

이 파일들 간의 복잡한 의존성을 분석하는 것은 소프트웨어 개발과 보안 분석에 있어 매우 중요합니다.

이번 포스팅에서는 PE 파일의 Import Table, Export Table, 그리고 Import Address Table(IAT)을 이용해서

의존성을 분석하고, 이를 그래프로 시각화하는 방법을 소개하겠습니다.


Import table과 export table 그리고 iat의 차이점

 

Import Table, Export Table,

그리고 Import Address Table (IAT)은

모두 Portable Executable (PE) 파일 형식의 구성요소입니다.

테이블이 나타내는 정보가 다르므로 각각의 목적과 기능을 이해하는 것이 중요합니다.


Import Table이란?

이 테이블은 PE 파일이 실행되기 위해 필요한

외부 라이브러리(DLL 파일)들의 정보를 담고 있습니다.

Import Table에는 각 DLL 파일의 이름과 해당 DLL에서 호출할 함수들의 목록이 포함되어 있습니다.

즉, 이 PE 파일이 실행되기 위해 어떤 외부 DLL에 의존하는지,

그리고 그 DLL에서 어떤 함수들을 사용하는지를 알려주는 테이블입니다.


Export Table이란?

이 테이블은 DLL 파일이 외부에 제공하는 함수나

변수의 정보를 담고 있습니다.

DLL 파일은 여러 개의 PE 파일에서 공유하여

사용할 수 있는 라이브러리로서,

그 안에 정의된 여러 함수들을 외부에 제공합니다.

Export Table은 이러한 함수들의 목록과

그 함수들의 주소 정보를 제공합니다.

따라서, 다른 PE 파일들이 이 DLL 파일을 어떻게

활용할 있는지를 알려주는 테이블입니다.


Import Address Table (IAT)이란?

 

이 테이블은 PE 파일이 Import Table을 통해 가져온 외부 함수들의 주소를 저장하는 곳입니다.

즉, Import Table에서 나열한 각 함수에 대한 실제 메모리 주소를 가지고 있습니다.

PE 파일이 실행되면, 로더는 이 IAT를 채워 넣어서, PE 파일이 각 함수를 호출할 때 메모리에서 바로 찾을 있도록 합니다.


Import Table은 '무엇'이 필요한지(어떤 DLL과 함수들이 필요한지),

Export Table은 '무엇'을 제공하는지(어떤 함수와 변수들을 제공하는지),

IAT는 '어디에' 있는지(각 함수의 메모리 주소는 어디인지)를 나타냅니다.

이 세 가지 테이블은 PE 파일이 외부 라이브러리와 어떻게 상호작용하는지를 이해하는데 중요한 역할을 합니다.

PE 파일 의존성 그래프 생성

 

필요한 라이브러리 작업을 수행하기 위해 pefile networkx라는 가지 파이썬 라이브러리를 사용하겠습니다.

pefile은 PE 파일을 분석하고 파싱하는데 필요한 라이브러리이며,

networkx는 그래프를 생성하고 시각화하는데 사용됩니다.

먼저, 주어진 디렉토리에서 모든 PE 파일을 찾고 이들을 파싱하여 그래프의 노드로 추가합니다.

그런 다음 각 PE 파일의 Import Table을 분석하여 필요한 DLL을 그래프에 추가하고,

이들 사이의 의존성을 간선으로 표현합니다.

PE 파일 의존성 그래프 업데이트 그 다음 단계에서는 모든 PE 파일의 Export Table을 분석합니다.

이를 통해 각 DLL이 제공하는 함수를 알 수 있습니다.

이 함수들을 사용하는 다른 PE 파일을 찾아 그래프에 의존성을 추가합니다.

IAT 정보 출력 마지막으로, 각 PE 파일의 Import Address Table(IAT)를 분석하여

각 함수가 실제로 어떤 메모리 주소에서 호출되는지를 출력합니다.

그래프 시각화 모든 정보를 바탕으로 그래프를 생성한 후에는

networkx와 matplotlib를 이용해서 그래프를 시각화합니다.

이를 통해 각 PE 파일 간의 복잡한 의존성을 한눈에 확인할 수 있습니다.

 

(아래는 예시 코드입니다)

import os
import pefile
import networkx as nx
import matplotlib.pyplot as plt

def create_dependency_graph(directory):
    G = nx.DiGraph()

    pe_files = {}

    # 모든 PE 파일을 파싱한다.
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)

        # PE 파일이 아닌 경우 건너뛴다.
        if not pefile.isPE(filepath):
            continue

        pe = pefile.PE(filepath)

        # 파싱한 PE 파일을 저장한다.
        pe_files[filename] = pe

        # 현재 파일 노드를 그래프에 추가
        G.add_node(filename)

    # 모든 PE 파일의 Import 정보를 통해 그래프를 만든다.
    for filename, pe in pe_files.items():
        if hasattr(pe, "DIRECTORY_ENTRY_IMPORT"):
            for entry in pe.DIRECTORY_ENTRY_IMPORT:
                dll_name = entry.dll.decode('utf-8')

                G.add_node(dll_name)
                G.add_edge(filename, dll_name)  # 현재 파일에서 DLL로 의존성 표시

                # IAT 정보를 출력한다.
                for imp in entry.imports:
                    print(f'{filename} imports function {imp.name} from {dll_name} at address {hex(imp.address)}')

    # 모든 PE 파일의 Export 정보를 통해 그래프를 업데이트한다.
    for filename, pe in pe_files.items():
        if hasattr(pe, "DIRECTORY_ENTRY_EXPORT"):
            for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols:
                # 해당 PE 파일이 export하는 함수를 사용하는 다른 PE 파일을 찾는다.
                for user_filename, user_pe in pe_files.items():
                    if hasattr(user_pe, "DIRECTORY_ENTRY_IMPORT"):
                        for entry in user_pe.DIRECTORY_ENTRY_IMPORT:
                            if entry.dll.decode('utf-8') == filename:
                                for imp in entry.imports:
                                    if imp.name == exp.name:
                                        G.add_edge(user_filename, filename)  # 다른 파일에서 현재 파일로 의존성 표시

    return G

# 디렉토리 지정 (PE 파일들이 위치한 디렉토리를 지정해야 함)
directory = './PE_files_directory'  
G = create_dependency_graph(directory)

# 그래프를 그림
nx.draw(G, with_labels=True)
plt.show()

 

정리

 

이 포스트에서는 PE 파일의 Import Table, Export Table,

그리고 IAT를 이용해 PE 파일 간의 의존성을 분석하고 시각화하는 방법을 살펴봤습니다.

 

다시 한번 정리해보면,

Import Table: PE 파일이 실행되기 위해 필요한 외부 라이브러리(DLL 파일)들의 정보
Export Table: DLL 파일이 외부에 제공하는 함수나 변수의 정보
(다른 PE 파일들이 이 DLL 파일을 어떻게 활용할 수 있는지를 알려주는 테이블)
Import Address Table (IAT): PE 파일이 Import Table을 통해 가져온 외부 함수들의 주소를 저장하는 곳

 

Import Table은 '무엇'이 필요한지

(어떤 DLL과 함수들이 필요한지)

 

Export Table은 '무엇'을 제공하는지

(어떤 함수와 변수들을 제공하는지),

 

IAT는 '어디에' 있는지

(각 함수의 메모리 주소는 어디인지)

 

이 방법을 통해 복잡한 소프트웨어 시스템의 구조를 이해하고, 문제를 분석하고, 솔루션을 찾는 데 도움이 될 수 있습니다.

다음 포스팅에서는 더 심화된 분석 기법을 적용해보겠습니다.

 

그럼, 즐겁게 코딩하시길 바랍니다!


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

오늘은 모의해킹 실습 환경을 구축하는 방법에 대해 소개하려고 합니다.
이번 글에서는 VirtualBox와 칼리 리눅스(Kali Linux)를 사용합니다.

1. VirtualBox 설치

먼저, VirtualBox를 설치해야 합니다.

우리가 모의 해킹 실습을 위한 가상 환경을 만들어 줄 도구입니다.

VirtualBox의 최신 버전을 다운로드하기 위해 VirtualBox 공식 웹사이트

https://www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash New July 18th, 2023VirtualBox 7.0.10 released! Oracle today released a 7.0 maintenance release which improves stability and fixes regressions. See the Changelog for details. New July 18th, 2023VirtualBox 6.1.46 release

www.virtualbox.org


웹사이트에서는 여러 운영체제를 위한 다운로드 옵션이 제공됩니다.

본인의 운영체제에 맞는 버전을 다운로드하고 설치하세요.


2. 칼리 리눅스 ISO 다운로드

칼리 리눅스는 모의해킹 및 펜 테스팅에 가장 널리 사용되는 운영체제 중 하나입니다.

칼리 리눅스의 공식 웹사이트 (https://www.kali.org/)에서 ISO 이미지를 다운로드하세요.

 

저는 맥북 M1이라 아래 파일을 설치했습니다.

 

3. VirtualBox에서 칼리 리눅스

가상 머신 생성

VirtualBox를 실행하고 "새로 만들기" 버튼을 클릭하여 가상 머신을 생성합니다.

이름, 타입(리눅스), 버전(Debian 64-bit)을 설정하고, 나머지 설정을 변경합니다 (아래)

메모리(RAM): 칼리 리눅스의 공식 문서에 따르면 최소 2GB의 RAM이 권장됩니다.

그러나 여유가 있다면 4GB 또는 그 이상을 할당하는 것이 좋습니다.

가상 머신의 성능을 향상시키고 여러 프로그램을 동시에 실행하는 데 도움이 됩니다.

 

CPU 코어: 사용 가능한 CPU 코어의 수에 따라 다르지만,

일반적으로 가상 머신에 2개의 코어를 할당하는 것이 좋습니다.

이는 가상 머신의 성능을 향상시키고, 동시에 여러 작업을 수행하는 데 도움이 됩니다.

 

하드 디스크 공간: 칼리 리눅스를 설치하고 업데이트하려면 최소 20GB의 공간이 필요합니다.

그러나 추가의 소프트웨어나 데이터를 저장하려는 경우 더 많은 공간을 할당하는 것이 좋습니다.

 

4. 칼리 리눅스 ISO를 가상 머신에 연결

생성한 가상 머신을 선택하고 설정으로 이동하세요.

"저장소" 메뉴에서 "빈" CD 아이콘을 클릭하고,

우측에 있는 CD 아이콘을 클릭하여 다운로드한 칼리 리눅스 ISO 파일을 선택하세요.

 

5. 칼리 리눅스 설치

가상 머신을 시작하면 칼리 리눅스 설치 환경이 실행됩니다.

설치 언어, 지역, 키보드 구성 등을 설정하고, 가이드에 따라 설치를 진행하세요.

설치가 완료되면 칼리 리눅스를 실행할 수 있습니다.

1. 외부 네트워크 (NAT) 설정

NAT(Network Address Translation)은

가상 머신이 인터넷에 접속할 수 있도록 해주는 네트워크 설정입니다.

VirtualBox에서 해당 가상 머신을 선택하고 '설정'으로 이동합니다.

'네트워크'를 선택하고 '어댑터 1' 탭에서

'네트워크 연결'을 'NAT'로 설정합니다.

이렇게 하면 가상 머신은 호스트 시스템을 통해 인터넷에 접근할 수 있게 됩니다.

 

2. 내부 사설망 네트워크 설정

내부 사설망은 여러 가상 머신 간의 네트워크 통신을 가능하게 합니다.

'네트워크'를 선택하고 '어댑터 2' 탭으로 이동합니다.

'어댑터 사용' 체크박스를 선택하고 '네트워크 연결'을 '내부 네트워크'로 설정합니다.

'네트워크 이름'에는 고유한 이름을 입력하시면 됩니다.

같은 내부 네트워크에 연결하려는 모든 가상 머신은 동일한 네트워크 이름을 사용해야 합니다.

설정이 끝났다면 '확인'을 클릭하여 변경 사항을 저장합니다.

 

root@kali:~# vi /etc/network/interfaces

root@kali:~# service networking restart

 

이제 모의해킹 환경을 위해 외부 네트워크 (NAT)와 내부 사설망 네트워크가 모두 설정되었습니다.

이제 인터넷 연결과 가상 머신 간의 네트워크 연결이 모두 가능해졌습니다.

이 설정들은 모의해킹 실습에 필수적인 요소로, 다양한 네트워크 환경에서의 테스트를 가능하게 합니다.


 

만일 비밀번호를 분실하였다면 아래 글을 참조해주세요

https://jdcyber.tistory.com/57

 

칼리 리눅스 Kli Linux 패스워드 분실 (비밀번호 찾기, 재설정, 변경)

Kali Linux를 설치하고 작업을 하고 있는데 저처럼 어느 날 갑자기 비밀번호가 틀리나고 나오거나 아니면 Root 패스워드를 까먹으셨을 때 아래 방법을 통해 찾아보시기 바랍니다. ​ 아래 내용을 진

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts