본문 바로가기

4-1. 2025-2 심화 스터디/버그헌팅

[BugBusters] 버그버스터_1주차 활동

버그헌팅과 시나리오 모의해킹

섹션 1. 모의해킹을 위한 가상환경 준비
섹션 2. 버그헌팅을 위한 정보 수집 단계 - 첫 번째 시나리오

 

섹션 1. 모의해킹을 위한 가상환경 준비

  • 실습 환경 구성

1) Oracle VM VirtualBox

- windows, linux, macOS 및 Solaris 호스트에서 실행되며 수많은 게스트 운영체제 지원

https://www.virtualbox.org/wiki/Downloads 에서 다운로드 가능

2) 칼리 리눅스

- 칼리 리눅스는 고급 침투 테스트 및 보안 감사를 목표로 하는 오픈소스, 데비안 기반 리눅스 배포판

- 침투 테스트, 컴퓨터 포렌식 및 리버스 엔지니어링 같은 다양한 정보보안작업을 대상으로 하는 수백 개의 도구 포함

https://www.kali.org/ 에서 다운로드 가능

  • 칼리 리눅스 기능

1. 600개 이상의 침투 테스트 도구 포함

2. 무료(항상 유지)

3. 오픈 소스 GIT 트리

4. FHS 준수 (Filesystem Hierarchy Standard) -> 리눅스 사용자 바이너리, 지원 파일 등을 쉽게 찾을 수 있음

더보기

칼리 리눅스 도구 확인 링크->> https://www.kali.org/tools/

3) Vulnhub CTF

- 누구나 디지털 보안, 컴퓨터 소프트웨어 및 네트워크 관리 분야에서 실질적 '실무 경험'을 얻을 수 있는 자료 제공

그중에서 우리가 써 볼 자료는  https://www.vulnhub.com/entry/basic-pentesting-1,216/ 

 

Basic Pentesting: 1

This mentions the name of this release, when it was released, who made it, a link to 'series' and a link to the homepage of the release. It's common for an author to release multiple 'scenarios', making up a 'series' of machines to attack.

www.vulnhub.com

Basic Pentesting:1

 

  • 네트워크 구성

Virtualbox 네트워크 모드

- NAT : 웹을 탐색하고 파일을 다운로드하고 게스트 내부에서 이메일을 보는 것이 전부인 경우 추천

- NAT service : NAT 모드의 기능에 추가로 내부 네트워크를 구성하여 VM 간의 통신 가능

- Internal : 내부 네트워크를 구성하고 내부 네트워크에서만 통신 가능, 외부 인터넷과 통신 불가

- Host-only : 호스트와 VM 통신 그리고 VM 간의 통신이 가능, 외부 인터넷과 통신 불가

- Bridged : 호스트, VM, 외부 인터넷 모두 연결되어 통신 가능

--->>> 그 중 우리가 실습에서 사용할 네트워크는 "NAT 네트워크"

네트워크 CIDR를 192.168.0.0/24 로 맞춰놓기.

더보기

 

  • 192.168.0.0네트워크 주소
     이 네트워크 자체를 가리키는 주소라서, PC나 장비에 할당할 수 없음
  • 192.168.0.1 ~ 192.168.0.254호스트 주소(Host Address)                                                                               실제로 PC, 서버, 공유기, IoT 기기 등 네트워크에 연결되는 장치들이 쓰는 주소 범위

👉 쉽게 말하면, 192.168.0.0/24 네트워크는 최대 254개의 장치가 같은 네트워크 안에서 통신할 수 있는 "공간"

 

  • Virtualbox 스냅샷

- 스냅샷을 사용하면 나중에 가상 머신 상태가 변경되었더라도 초기상태로 변경 할 수 있다.

- 따라서 초기 실행 전 스냅샷 생성은 필수!!!

 

섹션 2. 버그헌팅을 위한 정보 수집 단계 - 첫 번째 시나리오

Basic Pentesting:1

- 목표: 원격으로 vm을 공격하여 root 권한을 획득

- 취약 암호 및 기본 설정 사용의 위험성을 보여줌

- 연습을 통해 낮은 권한 및 루트 권한 쉘을 모두 얻기 위한 여러 취약점을 보여줌

  • 정보 수집

(basic pentesting vm을 킨 상태에서 ip 주소 확인해야함!!) 

1. 진단자 ip 주소 확인

- 192.168.0.17/24 아이피 주소 및 네트워크 대역 (c클래스) 확인

ifconfig
ip a (ip addr)

 

2. 대상 식별 - 진단 대상 ip 주소 찾기

 <Netdiscover 도구> 

- ARP 프로토콜을 활용하여 네트워크 세그먼트에서 연결된 클라이언트 검색하는 스캐너

sudo netdiscover -i eth0 -r 192.168.0.0/24

-> 뭔가 192.168.0.4 가 원래는 없었는데 basic~vm을 키고 나니까 생김.. 아무래도 이 주소가 식별대상인 것 같음..!!

 <Netenum 도구>

- ICMP 프로토콜을 활용하여 IP주소 스캔하는데 사용되는 도구

sudo netenum 192.168.0.0/24 10 0
sudo netenum <destination> [timeout] [verbosity]

 

 <Nmap 도구>

- 네트워크 대역의 모든 호스트 정보 및 서비스 정보를 파악하고 지속적인 모니터링에 유용하게 사용되는 도구

(-sn: ping 스캔 (포트 스캔 비활성화))

sudo nmap -sn 192.168.0.0/24

 

3. 포트 스캔 - 열린 포트 및 서비스 검색

 <Nmap 도구를 사용하여 열린 포트 및 서비스 검색>

- 식별 대상 기준으로 포트 스캔

sudo nmap -p1-65535 192.168.0.4

 <-O 옵션으로 운영체제 확인>

sudo nmap -p1-65535 -O 192.168.0.4

 

그밖에...

-  -sV 옵션으로 열린 포트를 조사하여 서비스/버전 정보 확인

-  -A 옵션으로 운영체제 탐지, 버전 탐지, 스크립트 스캐닝 및 traceroute 사용

이런 옵션들이 있음

 

- Zenmap 도구

공식 Nmap GUI 도구, CLI 환경 익숙하지 않은 사람들을 위해 출시

더보기

sudo apt update

 

# 설치에 필요한 파일 다운로드

wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-5.1ubuntu2_amd64.deb

wget http://azure.archive.ubuntu.com/ubuntu/pool/universe/p/pygobject-2/python-gobject-2_2.28.6-14ubuntu1_amd64.deb

wget http://security.ubuntu.com/ubuntu/pool/universe/p/pycairo/python-cairo_1.16.2-2ubuntu2_amd64.deb

 

# 다운로드한 파일 설치

sudo dpkg -i python-gobject-2_2.28.6-14ubuntu1_amd64.deb

sudo dpkg -i python-cairo_1.16.2-2ubuntu2_amd64.deb

sudo dpkg -i python-gtk2_2.24.0-5.1ubuntu2_amd64.deb

 

# zenmap rpm 다운로드

https://nmap.org/download.html 페이지에 접속하여 다운로드

 

# rpm 파일을 deb 파일로 변환

sudo apt install alien

sudo alien zenmap<rpm>

 

# zenmap deb 파일 설치

sudo dpkg -i zenmap<deb>

※ 정보 수집 정리

대상 식별 192.168.0.4
운영 체제 linux 3.2~4.9 버전 사용
포트 오픈 21, 22, 80번

 

-> 21번 포트 FTP 서비스는 proftpd 1.3.3c 프로그램 사용

-> 22번 포트 SSH 서비스는 openssh 7.2p2 프로그램 사용

-> 80번 포트 HTTP 서비스는 apache httpd 2.4.18 프로그램 사용

 

  • Exploit 검색

Exploit이란?

: 컴퓨터의 소프트웨어나 하드웨어 및 컴퓨터 관련 버그, 보안 취약점 등 설계상 결함을 이용하여 공격자의 의도된 동작을

수행하도록 만들어진 절차나 일련의 명령, 스크립트, 프로그램 또는 특정한 데이터 조각을 말하며, 이러한 것들을 사용한

공격 행위를 이르기도 한다.

 

1) Exploit DB

- 침투 테스터와 취약점 연구자가 사용하도록 개발된 공개된 공격 및 취약 소프트웨어의 CVE 저장소

https://www.exploit-db.com/

 

OffSec’s Exploit Database Archive

 

www.exploit-db.com

2) Searchsploit

- Exploit-DB용 명령 줄검색 도구

- 오프라인 상태에서 검색 가능, 인터넷 접근이 없는 분리된 네트워크에서도 유용하게 사용 가능

 

※ Exploit 정리

- ProFTPD 1.3.3c -> 백도어 RCE 취약점 확인 필요

- OpenSSH 7.2p2 -> SSH 관련된 취약점 중 사용자 이름 열거 취약점 확인 필요

1) 사용자 이름 탈취

2) 사용자 이름을 토대로 비밀번호 탈취

3) 획득한 사용자가 SUDO 권한이 부여되어 root 권한 사용 가능

- Apache httpd 2.4.18 -> 아파치 버전과 관련된 취약점 중에 유망한 것이 없음

-> 웹 서비스 취약점으로 내부 시스템 침투 관점 필요

 

섹션 1,2 Quiz

1. 침투 테스트 ctf 환경에서 목표 시스템에 대한 침투의 궁극적 주된 목표는?

-> 시스템 최고 권한(root) 획득

2. 침투 테스트 실습에서 공격자 역할을 위해 주로 사용하는 운영체제는 무엇이며, 그 주된 목적은 무엇인가요?

-> kali Linux - 침투 테스트 및 보안 감사

(kali Linux는 침투 테스트 및 보안 감사를 위해 설계된 특화된 리눅스 배포판, 600가지 이상의 다영한 보안 도구를 포함하고 있어

공격자 시스템으로 사용하기 적합함

3. VirtualBox에서 침투테스트 실습 전에 스냅샷 기능을 사용하는 주된 이점은 무엇인가요?

-> 가상 머신 상태를 이전 상태로 되돌리기가 용이

4. 모의해킹에서 Nmap의 'sV' 옵션을 사용하는 목적은 무엇일까요?

-> 실행 중인 서비스 및 버전 정보 확인

5. Nmap을 사용하여 특정 대상의 열려 있는 포트를 스캔하는 주된 이유는 무엇일까요?

-> 잠재적인 침투 경로 식별