Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

TH3 6R3@T H@CK

Attacking Web Pages 본문

Study/Penetration Test

Attacking Web Pages

vvh0am1 2024. 4. 17. 14:39

파일 업로드 취약점 공격 실습

 

· 실습 환경 구성 → Burp Suite

- Proxy: 브라우저와 웹 서버간 요청 및 응답을 Intercept > 분석 및 수정

- History: Burp Suite w/ Proxy 이후 모든 히스토리 저장

- Repeater: 반복적 요청 수행

- Decoder: URL, Base64 디코딩 및 해시 값 계산

- Comparar: 요청에 따른 응답들을 비교

 

· Web Shell 업로드

1.php.jpeg로 파일명 수정

 

· 방법: Burp Suite를 이용해 Content-Type 기반의 파일 업로드 제한 우회

- Burp Suite 실행 → Proxy → Open Browser

- Choose File → "1.php.jpeg" 선택

* Content-Type 제한 우회를 위해 확장자명 변환

- Burp Suite → Proxy → Intercept is Off 클릭 (Intercept is On으로 변환)

- 브라우저에서 Upload 클릭

 

- "1.php"로 수정 후 Forward 클릭

 

· 업로드 완료

http://210.125.101.73/upload/uploads/2879.php

 

· 업로드 파일(Web shell 접속)

http://210.125.101.73/upload/uploads/2879.php?1=ls%20-al

 

· 1.php → <pre> <?=`$_GET[1]`?>

 

· shell.php 파일 업로드 및 Web shell 실행 (동일한 방법으로 php-shell.php도 진행)

Username과 Password를 구해야 한다.

 

· php-shell.php를 메모장으로 열어 내용 확인

- Username: user / Password: pass

 

· Web Shell에서 Bind Shell 실행

 

 

조직 내 취약한 서비스 데몬(Daemon) 공격

 

· 데몬(Daemon): 시스템의 백그라운드에서 동작하면서 클라이언트의 서비스를 처리하는 프로그램

· 내부망에서는 TCP 포트를 통해 통신을 수행하는 다양한 서비스 데몬 존재

- ex. 메신저, 웹, 서버, SSH 서버 및 각종 관리용 AGENT 등

· 서비스 데몬 상에 메모리 관련 취약점(BOF) 등) 존재 시 원격 코드 실행 공격 가능

 

· 실습 환경 구성

- 공격자 PC: Kali Linux

- 서비스 데몬: 6주차 practice1.c

 

 

실습 #1 - "Congratulations!" 출력

 

· 서비스 데몬 접속

· bof 파일 다운로드

 

· objdump 도구를 사용하여 success 함수 주소 찾기

 

· 로컬 테스트를 위한 파일 접근 권한 설정

 

· 로컬 공격 실행

공격은 성공.. 근데 success 함수 주소를 올바르게 입력했는데 Congratulations!가 출력되지 않은 이유는 뭘까

 

 

실습 #2 - 원격 BOF 공격 수행(1): "Congratulations!" 출력

 

· Python 소켓 프로그래밍을 이용한 공격 코드 전달

 

· 공격 결과

Congratulations!

 

 

실습 #3 - 원격 BOF 공격 수행(2): Bind Shell을 실행시켜 /home/victim/secret.txt 파일 읽기

 

· 접속 IP & Port 정보

 

· 공격 코드 작성

lport를 11111로 설정하여 쉘 코드(/bin/sh) 생성

 

- 원격으로 BOF 공격을 수행해야 되기 때문에, 실습 #2에서 작성한 Python 소켓 프로그래밍 이용 공격 코드를 수정한다.

* port를 8888로 변경

* lport=11111인 쉘 코드 삽입

* ret 수정 (제시된 stack address: 0x7fffffffeaa0로 수정)

exp3.py

 

· 공격 실행 화면(수신 대기 상태)

 

· nc를 통해 Bind Shell 연결 후 secret.txt 읽기

No pain no gain

'Study > Penetration Test' 카테고리의 다른 글

Reconnaissance: Screen Capture  (0) 2024.05.08
Reconnaissance: Key Logger  (0) 2024.05.01
Deployment and Expansion  (0) 2024.04.03
MSFconsole  (0) 2024.03.22
AGENT  (1) 2024.03.22