반응형

John the Ripper

 

1996년에 처음 공개된

존더리퍼(John the Ripper, JtR)

본래 유닉스 기반 시스템을 위해 개발된 비밀번호 크래킹 도구입니다.

사전 공격(Dictionary Attack)을 통해 비밀번호 강도를 테스트하고

암호화된(해시된) 비밀번호를 무차별 대입(brute-force) 공격하여 비밀번호를 크래킹 하기 위해 고안됐습니다.

비밀번호 크래킹 속도를 높이기 위한 다양한 모드 제공하고,

암호화된 비밀번호가 사용하는 해싱 알고리즘 자동 탐지,

손쉬운 도구 구동 및 구성 등이 포함되어 있어 초보자와 전문가 모두 연습이 가능한 비밀번호 크래킹 도구입니다.
하지만 JtR은 악의적인 해킹 목적보다는 보안 전문가들이 시스템의 약점을 찾고 강화하는 데 사용하는 교육 도구로 더 널리 인식됩니다.

보안 연습을 위한 실습 도구로서 그 가치가 높히 평가됩니다.


설치

 

아래 코드를 이용하여 깃에 접속해 존더리퍼를 손쉽게 설치할 수 있으며,

git clone "https://github.com/magnumripper/JohnTheRipper.git" && cd JohnTheRipper/src && ./configure && sudo make -s clean && sudo make -sj4

 

아래 코드를 이용하여 Zip 파일을 풀고 비밀번호 해제를 진행합니다.

cd JohnTheRipper/run ./zip2john [filename.zip] > hash.txt ./john hash.txt

 

아래 사이트에서는 직접 자신에게 맞는

OS 별 환경에 맞게 다운로드하고 설정할 수 있습니다.

https://www.openwall.com/john/

 

John the Ripper password cracker

John the Ripper password cracker John the Ripper is an Open Source password security auditing and password recovery tool available for many operating systems. John the Ripper jumbo supports hundreds of hash and cipher types, including for: user passwords o

www.openwall.com


일반적으로 비밀번호 크래커와 같은 도구는

3가지 방식으로 동작합니다.

 

사전 공격 (Dictionary Attack)

무차별 대입 (brute-force)

레인보우 테이블 (Rainbow tables)

 

전수 지수 공격 무작위 대입 공격이며

(모든 문자 및 숫자를 대입하는 방식)

사전 대입 공격은 관련성 있는 문자 및 숫자를 먼저 대입하는 방식입니다


사전 공격

사전 공격 사전에 입력된 수많은 단어와 구문,

이전에 유출된 데이터에서 가능성 있는 비밀번호 목록으로 로그인을 시도합니다.

이 도구는 올바른 비밀번호를 찾기 위해 애플리케이션 목록의 모든 단어를 입력합니다.
일반적으로 간단한 비밀번호에 효과적이지만,

복잡하고 무작위적인 비밀번호에는 덜 효과적입니다.

이 방법은 보안 수준이 낮은 시스템을 빠르게 크래킹 하는 데 유용하지만,

강력한 비밀번호에 대해서는 시간이 오래 걸릴 수 있습니다.


무차별 대입 공격

무차별 대입 공격은 사용자에게 아래와 같이 몇 가지 규칙을 구성하도록 요청합니다.

올바른 비밀번호의 최소 길이와 최대 길이,

구성될 가능성이 있는 글자 유형

(문자, 문자+숫자, 특수 문자 등)

위치 (알파벳 몇 개, 특수 문자 몇 개, 비밀번호 총 길이 등의 규칙)

이상적인 대입 구성을 찾기 위해서는 약간의 추측과 전문 지식이 필요합니다.

그리고 범위 안에서 기준에 따라 가능한 모든 비밀번호 조합을 추측하고,

올바른 비밀번호를 찾아내면 사용자에게 알려주도록 고안되어 있습니다.

이 방법은 매우 효과적인 방법이지만 속도가 매우 느립니다.

예를 들어, 대소문자와 함께 숫자와 특수 문자가 혼합된 9자리 비밀번호는

컴퓨터가 추측하는 데 9년 이상이 소요되기 때문에 실제로는 크래킹이 불가능합니다.

그래서 보안 전문가들이 항상 다양한 문자 유형의 조합으로 구성된 길고 복잡한 비밀번호를 선택하라고 제안하는 것이죠


레인보우 테이블(Rainbow tables)

 

업무에 필수적이고 보안 지향적인 애플리케이션은

비밀번호를 평문으로 저장하는 경우가 거의 없고 길이가 고정된 해시를 저장하고 있습니다.

때문에 유출된 데이터 등으로부터 얻은 해시화된 비밀번호 목록의 경우에 레인보우 테이블이 더욱 효율적일 수 있습니다.

우선 사전에 연산된 비밀번호 해시 목록을 기존의 데이터와 비교해 평문 형식의 올바른 비밀번호를 찾습니다.

해시된 데이터가 미리 계산되기 때문에 레인보우 테이블을 사용하는 것이

무차별 대입보다 속도 적으로 훨씬 빠릅니다.

레인보우 테이블은 비밀번호 해시가 솔팅(Salting) 되어 있고 솔트 값이 너무 커서

비밀번호의 전체적인 복잡성이 증가할 때는 효과적이지 못합니다.

그래서 해시된 사용자 비밀번호를 데이터베이스에 저장하는 것 외에

솔팅을 보안 방어책으로 사용하는 것입니다.

솔팅을 제대로 적용하면 비밀번호 데이터베이스가 유출되더라도

실제로 해커가 사용자 비밀번호를 본래의 평문 형식으로 되돌리는 것이 불가능하기 때문입니다.

솔팅과 해시 평문 등 어려운 단어로 알아듣지

못하시더라도 지금은 괜찮습니다.

추후 제가 설명 글을 작성해 드리도록 하겠습니다.

해당 방법은 보안을 위한 연습만 하시길 바라며

악의적인 해킹은 절대 삼가 주시기 바랍니다.


궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용은
추후 정리해서 올려드리겠습니다
이웃 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!

반응형
반응형

 

오늘은 해킹 기법 중 하나인 SQL Injection에 대해 알아보겠습니다.

시작하기에 앞서 아직 SQL이 무엇인지,

Query (쿼리)가 무엇인지 모르신다면

아래 글을 먼저 읽고 와주시길 바랍니다.

(작성 중)


SQL Injection?

 

SQL은 DB에서 사용하는 프로그래밍 언어이며

Injection 이란 무언가를 주입/주사할 때사용하는 단어로써

SQL Injection은 프로그래밍 언어를 주입하는 해킹 기법입니다.

해커는 보안상의 취약점을 이용하여 대상에게 임의의 SQL 문을 주입하여 실행되게 하고

DB를 공격하는 기법으로 데이터 베이스가 비정상적으로 동작하게 합니다.

인젝션 공격은 OWASP Top10 중 첫 번째 속해 있으며,

공격이 비교적 쉬운 편이고 공격에 성공할 경우

큰 피해를 입힐 수 있는 위험한 공격으로

보안 위협 1순위에 속하는 공격입니다.

SQL Injection 관련 취약점이 존재하면

웹서버의 정보가 모두 털릴 수 있을 정도로

아주 치명적입니다.

2017년 3월에 일어난 “여기어때” 의 대규모 개인정보 유출 사건도 SQL Injection으로피해가 발생하였었죠.

Owasp란?

OWASP는

‘Open Web Application Security Project’의 약자로 비영리 보안 프로젝트 재단을 통칭합니다.

이곳은 SW 보안 향상을 목적으로 운영되는 국제 웹 보안 표준 기구로서

애플리케이션에서 발생할 수 있는 취약점을 분석하고 연구하고 있는데요,

웹 애플리케이션 보안의 위협이 되는 취약점을 TOP 10으로 뽑아 만들고 대비할 수 있도록 알려줍니다.


SQL 인젝션 공격 기법

(대표적인 3가지)

Error Based SQL 인젝션

인증 우회(AB:Auth Bypass)

에러 기반 SQL Injection입니다.입니다.

에러를 이용한 공격 기법으로, 고의로 SQL 문에 에러를 발생시키는 기법으로

에러 메시지를 통해 쿼리문의 구성을 추측하고 DB의 테이블명, 칼럼명, 데이터 내용까지도 알아낼 수 있습니다.

보통 Users 테이블에 있는 모든 정보를 조회하게 됨으로 써

가장 먼저 만들어진 계정으로 로그인에 성공하게 됩니다.

보통은 관리자 계정을 맨 처음 만들기 때문에

관리자 계정에 로그인하여 막대한 2차 피해가 생기는 공격입니다.


Unipon Based SQL 인젝션

데이터 노출(DD:Data Disclosure)

Union 쿼리를 사용한 공격 기법으로 2가지

쿼리를 결합해 정보를 알아낼 때 사용하는 기법으로

공격에 성공하기 위해선 쿼리 두 개의 칼럼 수와 데이터 형이 같아야 한다는 조건이 있습니다.

데이터를 입력하여 참 거짓 값을 알아내고

쿼리 분석기로 칼럼 수를 파악한 후 계정을 열람할 수 있도록 SQL Injection 구문을 작성하여 공격하고,

테이블 열람 구문을 입력하여 모든 사용자의 테이블을 열람할 수도 있습니다.


Blind SQL 인젝션

(Boolean Based SQL, Time Based SQL)

에러 메시지가 발생하지 않는 경우 주로 사용하는 기법으로

특정 쿼리문으로 인한 결과가 참/거짓인 것 만 알 수 있을 때 사용합니다.

예를 들어 어딘가에 로그인을 성공하면 참, 실패하면 거짓 같은 결과를 알 수 있을 때

임의의 SQL 구문을 삽입하여 인가되지 않은 데이터를 열람하고 공격합니다

이러한 특징 때문에 이용하여 주로 데이터 노출을 위해 사용되며,

우편번호 찾기나, 게시판과 같이 데이터를 쉽게 확인할 수 있는 곳에서도 주로 사용됩니다.

요즘은 에러 메시지를 출력하지 않게 웹서버를 구축하고 있어서 웬만한 SQL 공격은 Blind sql 공격으로 진행됩니다


자세한 해킹 방법은 가상 환경을 구축하여

모의 해킹을 통해 알려드리도록 하겠습니다.

https://jdcyber.tistory.com/7

 

버츄얼박스 (VirtualBox)와 칼리 리눅스 (Kali Linux)를 이용한 모의해킹 실습 환경 구축 가이드

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

jdcyber.tistory.com

Sql 인젝션을 대비하고 보안하는 방법은

아래 글을 참고해 주세요!

(작성 중)

오늘은 SQL 구문을 이용한 해킹 기법인

SQL Injection에 대해 알아봤습니다.

해당 방법은 보안을 위한 연습만 하시길 바라며

악의적인 해킹은 절대 삼가 주시기 바랍니다.


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

 

소스코드 분석과 바이너리 분석이란 무엇인가요?

일반적으로 우리가 프로그래밍 언어를 공부하거나 해킹, 보안 등을 공부하다 보면 자주 접하게 되는 용어 중 하나가 분석입니다.

이때 말하는 분석이라는 단어는 여러 가지 의미를 내포하고 있지만,

주로 어떤 프로그램 코드나 데이터 구조 등을 해석하거나 이해하는 행위를 말합니다.

그리고 이러한 분석 작업을 수행하기 위해서는 해당 분야에 대한 전문 지식이 요구됩니다.

즉, IT 업계에 종사하시는 분들에게 분석 능력은 필수적인 요소라고 할 수 있습니다.

크게 분석 방법에는 소스코드 분석과 바이너리 분석이 존재하는데

이번 글에서 위 두 분석 방법에대해 설명드리고자 합니다.


 

Ai 인공지능 ChatGPT에게 소스코드 분석과 바이너리 분석이 어떤 것인지 질의를 해보도록 합시다.

소스코드 분석

  • 정의: 소프트웨어의 원본 코드를 검토하고 분석하는 과정입니다.
  • 목적: 코드의 이해, 품질 향상, 효율성 증가, 보안 강화.
  • 한계: 제3자 라이브러리나 배포 단계에서의 취약점 탐지에 한계가 있습니다.

바이너리 분석

  • 정의: 컴파일된 소프트웨어의 바이너리 형태를 검토하고 분석하는 과정입니다.
  • 목적: 소스 코드에 의존하지 않고 실행 가능한 프로그램의 보안 문제 및 취약점 찾기.
  • 범위: 소프트웨어 전체, 운영 체제 취약점, 바이너리 레벨 하드웨어 구성 등을 포함합니다.

 

바이너리 분석과 소스코드 분석은 뭐가 다른건가요?


소스코드 분석

소스코드 분석은 소프트웨어 원본 코드를 검토하고 분석하는 과정으로, 개발자가 작성한 코드의 이해, 품질 향상, 효율성 향상 및 보안 목적으로 사용됩니다. 코드 기능, 비즈니스 로직, 변수 및 데이터 사용, 조건 및 반복문 등 전체 코드 구조를 이해하는데 도움이 됩니다.

탐지 범위

소스코드 분석은 원본 코드에 대한 보안 위협, 코드 품질 문제 및 코드 최적화를 찾는 데 도움이 됩니다. 그러나 제 3자 라이브러리 및 배포 단계에서 발생하는 취약점은 이러한 분석으로 찾기 어렵습니다.

 

바이너리 분석

바이너리 분석은 컴파일된 소프트웨어의 바이너리 형태(즉, 기계에서 실행되는 형태)를 검토하고 분석하는 과정입니다. 소스 코드에 의존하지 않고, 컴파일된 프로그램에서 직접 작동 원리, 깨지지 코드, 취약점 및 보안 문제를 찾을 수 있습니다.

 

탐지 범위

바이너리 분석은 컴파일된 프로그램 전체를 포함하여 문제를 찾기 위해 소프트웨어의 모든 부분을 다룹니다. 운영 체제의 취약점, 바이너리 레벨 하드웨어 구성 및 프레임워크와 스크립트와 같은 컴파일 후 추가되는 요소의 보안 위협을 감지할 수 있습니다.

소스코드 분석을 하는 이유


보통 대부분의 프로젝트 진행 시 설계 단계에서부터 소스코드 분석을 고려하게 됩니다.

왜냐하면 소스코드 분석을 통해서 문제 발생 지점을 미리 예측하고 효율적인 해결책을 제시할 수 있기 때문입니다.

예를 들어 다음과 같은 상황을 가정해봅시다.

“A라는 클래스 모듈안에 B라는 메서드가 있고, A클래스 객체 생성 후 B메서드를 호출하면 C라는 결과 값이 반환된다.”

class A:
    def B(self):
        return "C"

# A 클래스의 객체 생성
a_instance = A()

# B 메소드 호출 후 결과값 저장
result = a_instance.B()

# 결과값 출력
print(result)  # 출력: C

만약 위와 같은 형태의 간단한 코드로 구성된 프로그램이라면 누구나 쉽게 수정해서 원하는 결과를 얻을 수 있습니다.

하지만 만약 “A라는 클래스 모듈안에 B라는 메서드가 있고, A클래스 객체 생성 후 B메서드를 호출하면 C라는 결과 값이 반환된다.”라는 문장이 수십 개 이상 반복되는 복잡한 알고리즘을 가진 프로그램이라면 어떨까요?

이럴 경우 각 메소드마다 일일이 주석을 달아주는 것은 매우 비효율적이며, 자칫 잘못하면 오류가 발생할 확률이 높습니다.

그렇기 때문에 처음부터 모든 메서드에 대한 자세한 주석을 달기보다는

전체적인 흐름을 파악하며 큰 그림을 그리는 것이 좋습니다.

이를 위해 우선 현재 상태를 점검해야 하는데, 이때 유용하게 사용될 수 있는 도구가 바로 소스코드 분석입니다.

 

바이너리 분석을 하는 이유

 

바이너리 분석은 소프트웨어 개발 및 보안 분야에서 매우 중요한 역할을 합니다. 이는 특히 소스코드가 직접적으로 사용할 수 없거나, 컴파일 후의 프로그램 동작을 이해하고 검증해야 할 때 필요합니다.

 

바이너리 분석은 컴파일된, 즉 실행 가능한 형태의 프로그램을 분석하는 과정입니다. 이 과정은 특히 다음과 같은 상황에서 중요합니다

소스코드 접근 불가: 때때로, 특히 공개되지 않은 소프트웨어나 써드파티 제품을 다룰 때, 소스코드에 접근할 수 없습니다. 이럴 때 바이너리 분석을 통해 소프트웨어의 작동 방식을 이해하고 문제점을 찾을 수 있습니다.
컴파일 과정 중 문제 발견: 컴파일 과정은 소스코드를 실행 가능한 형태로 변환합니다. 이 과정에서 추가적인 최적화나 변경이 일어날 수 있으며, 이로 인해 새로운 취약점이나 버그가 발생할 수 있습니다. 바이너리 분석을 통해 이러한 문제를 탐지할 수 있습니다.
보안 취약점 탐지: 특히 해킹이나 보안 분야에서, 바이너리 분석은 소프트웨어의 보안 취약점을 찾는 데 중요합니다. 컴파일된 프로그램에서 직접적으로 취약점을 찾아내어 공격 가능성을 평가할 수 있습니다.
리버스 엔지니어링: 때때로, 특정 소프트웨어의 기능을 이해하거나 호환성을 확보하기 위해 리버스 엔지니어링이 필요할 수 있습니다. 바이너리 분석은 이 과정에서 핵심적인 역할을 합니다.

앞서 말씀드린 바와 같이 소스코드 분석은 반드시 거쳐야 하는 과정이지만,

그렇다고 해서 소스코드 분석만으로 모든 문제점을 찾아낼 수 있는 것은 아닙니다.

특히 규모가 크고 복잡한 프로그램일수록 소스코드 분석만으로는 한계가 생길 수밖에 없습니다.

그렇다면 어떻게 해야 할까요? 정답은 바로 ‘다른 분석 방법’을 병행하는 것입니다.

대표적인 예가 바로 디버깅입니다.

하지만 이번 시간에는 소스코드 분석과 바이너리 분석에 대해서만 살펴보겠습니다.

물론 둘 다 좋은 분석 방법이지만,

각각의 장단점이 명확하므로 목적에 맞게 적절히 활용한다면 더욱 효과적으로 업무를 수행할 수 있을 것입니다.

우리 모두 안전하고 깨끗한 보안을 이루어갑시다!


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

와이어샤크란?

 

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

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

 

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

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

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를 수행하여 신뢰관계를 맺은 데이터의 흐름을 확인할 수 있습니다.

 

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

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

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


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

오늘은 모의해킹 실습 환경을 구축하는 방법에 대해 소개하려고 합니다.
이번 글에서는 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