잡다한 배똥월드

728x90

1. 배너 그래빙(banner grabbing) : 서버의 응답을 통해 정보를 수집하는 방법

    - 응답 메세지의 서버 헤더를 살펴보는 것

    - 개발자 도구의 네트워트 탭 -> 전송된 내역의 응답 메세지 정보 확인 (버프 스위트의 프록시 히스토리 기능에서도 확인 가능)

 

 

 

2. 기본 설치 파일로 인한 노출

- 웹 애플리케이션을 운영하기 위한 웹 서버, 웹 프레임워크, 기타 구성 요소를 설치할 때 기본으로 설치되는 파일로 인해 호스트 환경에 대한 정보가 노출되는 경우가 있음

 

 

 

3. 웹 취약점 스캐닝

    - 자동화된 프로그램을 이용하여 웹사이트의 여러 가지 정보를 수집하고 이 정보들을 바탕으로 어떤 취약점이 있는지 알아내는 과정

    - 칼리 리눅스 기본 프로그램 중 nikto1이라는 프로그램을 이용하면 간단한 명령으로 중요한 정보를 쉽게 수집할 수 있음

    - 터미널에 nikto를 입력하면 프로그램 사용을 위한 옵션 확인 가능

    - 명령어 : nikto -host 192.168.56.103

    => 빨간 박스에서 아래의 정보들을 얻을 수 있음

        - 서버 헤더 및 PHP, 아파치 OpenSSL 등의 버전이 오래되었다(outdate)

        - 보안 관련 헤더가 설정되어 있지 않다

        - 허용된 메소드 목록 정보

        - /icons/, /images/ 경로에서 디렉터리 인덱싱이 발견되었다

        - phpMyAdmin 디렉터리가 발견되었다

 

 

 

4. 디렉터리 인덱싱

    - 웹 서버의 잘못된 설정으로 웹 서버 디렉터리의 파일들이 노출되는 취약점

위의 경우는 icon 폴더의 파일이라서 괜찮은데, 소스코드나 개인정보가 노출되는 경우가 있기 때문에 심각한 상황이 될 수 있음

 

 

 

5. 웹 애플리케이션 매핑

    - 마치 웹 애플리케이션의 지도를 그리듯, 웹 애플리케이션의 메뉴와 링크를 따라가면서 어떤 URL과 파라미터들이 전송되는지 구조를 파악하는 과정

    - 어떤 기능을 가지고 있는지, 각 기능이 어떻게 동작하는지 쉽게 이해 가능 => 공격 지점 찾을 수 있음

 

 

 

6.  수동 매핑

    - 직접 웹 애플리케이션에 접속하여 각 메뉴를 확인하는 과정

    - 버프 스위트의 사이트 맵 기능을 활용할 수 있는데, 화면에 표시되지 않는 URL들도 자동으로 표시되기 때문에 웹 애플리케이션의 구조를 파악하는 데 많은 도움이 됨

 

 

 

7. 크롤링(crawling)

    - 웹 페이지의 링크를 분석하여 새로운 웹 페이지를 찾아내는 과정

    - 웹 애플리케이션 매핑 과정을 자동으로 수행 가능

    - 순서 :

        ○ 처음 지정된 URL로 요청

        ○ 처음 요청에 의해 전송받은 응답 메세지를 분석하고 응답에 포함된 링크를 각각 추가로 요청

        ○ 더 이상 링크를 찾을 수 없거나 404, 500 등과 같은 에러 메세지가 응답될 때까지 과정 반복

 

 

 

8. DirBuster

    - URL 목록 파일을 사용하여 각 URL을 자동으로 입력해보는 방식으로 구조 파악

터미널에서 dirbuster을 입력하여 프로그램 열기

 

 

 

8-1. 브루트 포스 공격

    - 목록 파일을 사용하여 정보를 찾는 기법

    - 주로 사용자의 패스워드를 찾는데 사용하는 기법

 

 

 

9. robots.txt

    - 웹 로봇 역시 크롤러(크롤링 프로그램)의 일종

    - 웹사이트 운영자는 robots.txt 파일을 웹사이트의 가장 상위 디렉터리에 위치시켜, 웹 로봇에게 해당 웹사이트의 정보 수집을 허용하거나 불허하는 명령을 내릴 수 있음

bWAPP robots.txt 파일

    - 위의 화면에서 알 수 있는 것

        ○ User-agent가 GootBot인 로봇의 수집을 불허하지 않음

        ○ User-agent가 BadBot인 로봇은 모든 페이지에 대한 수집을 불허함

        ○ 모든 로봇은 /admin/, /documents/, /images/, /passwords/ 디렉터리에 대한 수집을 불허함

    - robots.txt의 내용을 따를지 말지 결정하는 것은 전적으로 웹 로봇에게 달려 있음

    - 중요한 경로가 노출될 수 있기 때문에 robots.txt 파일을 이용하여 보안 정책을 적용하려고 해서는 안 됨.

 

 

 

 

 

728x90
728x90

타깃(Target)

 

1. 사이트 맵(Site map)

타깃 탭의 사이트 맵을 이용하면 접속한 모든 호스트와 URL 구조를 쉽게 파악할 수있습니다.

- 접속했던 호스트를 트리 형태로 보여줌

- 선택된 호스트를 대상으로 보낸 요청과 응답 정보(메소드와 URL, 파라미터 존재 여부(Params), 응답 코드, 응답 메시지의 길이 등)를 간략하게 보여줌

- Response 탭을 선택하면 응답 메시지의 내용도 확인 가능

- 필터(Filter) 부분을 클릭하면 원하는 항목만 표시 가능

 

2. 스코프(Scope)

점검하고자 하는 사이트와 관련된 내용만 표시하고 싶을 때 스코프 기능을 이용하여 원하는 내용만 표시할 수있습니다.

- 특정 대상을 등록 후 사이트 맵과 다음에 설명할 프록시의 히스토리 기능의 필터 중 Show only in-scope items를 이용하면 스코프에 설정된 항목만 표시 가능

- Include in scope 테이블에서 스코프 리스트에 대상을 추가, 수정, 삭제할 수 있음

- Exclude from scope 메뉴에서는 특정 파일(또는 URL)에 대한 요청을 제외할 수도 있음

- 그 밖에도 원하는 호스트를 스코프에 좀 더 간단하게 추가 가능, 사이트 맵의 호스트 항목에서 바로 스코프에 추가 가능 (호스트 항목을 선택하고 마우스 우클릭 메뉴에서 Add to scope 메뉴를 선택)

 

 

프록시(Proxy)

 

1. 인터셉트(Intercept)

인터셉트 기능을 이용 하면 웹 브라우저와 웹 서버가 주고받는 HTTP 요청 메시지와 응답 메시지의 내용을 변경할 수 있습니다.

- 인터셉트된 요청 메시지는 사용자가 Forward 버튼을 눌러 전송시킬 때까지는 웹 서버로 전송되지 않음

- 응답 메시지를 인터셉트할 경우에도 응답 메시지는 사용자가 전송시킬 때까지 웹 브라우저로 전달되지 않음

- Intercept is on 상태 : 웹 브라우저의 모든 요청을 인터셉트하고 대기열에 대기시켜 둔 후 인터셉트되어 있는 각 요청에 대해 하나씩 사용자의 입력을 기다리게 됨

- 사용자는 Forward 버튼을 눌러 인터셉트한 요청을 전송시키거나, Drop 버튼을 눌러 요청을 취소할 수 있음
Forward를 하기 전 메시지의 내용을 변경하는 것도 가능

- Intercept is off 상태 : on에서 off로 변경될 때 아직 대기열에 있던 인터셉트된 메시지가 있다면 모든 메시지를 서버로 전송시킴.

- 인터셉트 기능을 끄더라도 각 메시지는 다음에서 설명할 프록시의 히스토리 메뉴에서 계속 확인할 수 있음

 

2. 히스토리(HTTP history)

히스토리 기능의 화면은 사이트 맵과 유사합니다. 히스토리 기능은 접속 기록을 시간 순으로 정렬하여 보여주고, 사이트 맵보다 더 많은 정보를 보여줍니다.

- 화면의 상단 부분에서는 각 요청의 핵심적인 정보를 요약해서 보여줌(하단 부분에서 요청 메시지(Request 탭)와 응답 메시지(Response 탭)를 확인할 수 있음)

- 번호 부분을 누르거나 마우스 우클릭 메뉴를 이용해서 하이라이트할 수 있으며 여러 가지 색깔 지정이 가능

- 필터를 이용해서 스코프에 추가된 호스트만 표시하도록 할 수 있음 (사이트 맵에 서와 마찬가지로 필터로 원하는 항목만 표시 가능)

 

3. 옵션(Options)

옵션 메뉴에서는 프록시와 관련된 옵션을 설정할 수 있습니다.

- Proxy Listeners: 프록시의 인터페이스 주소와 상태를 설정한다.

- Intercept Client Requests: 어떤 요청을 인터셉트할지 설정한다.

- Intercept Server Responses: 어떤 응답을 인터셉트할지 설정한다.

- Response Modification: 응답 메시지를 자동으로 수정한다.

- Match and Replace: 요청/응답 메시지의 특정 부분을 패턴 매칭하고 자동으로 변경한다.

 

 

스파이더(Spider)

웹사이트의 링크를 자동으로 찾아 웹사이트의 전체 구조를 빠르게 알아내고자 할 때 사용하는 기능입니다. 링크를 분석하여 새로운 웹 페이지를 찾아내는 것을 크롤링이라고 하는데 스파이더 기능은 자동으로 크롤링을 수행 하는 기능

- 타깃의 사이트 맵에서 호스트 항목의 마우스 우클릭 메뉴 중 Spider this host 메뉴나 프록시 히스토리의 마우스 우클릭 메뉴 중 Spider from here 메뉴를 이용하여 실행

- 실행 중 로그인이 필요한 경우가 발생하면 스파이더는 사용 자로부터 로그인 정보를 입력받기 위해 팝업창을 생성 가능

- 사용자 아이디와 패스워드를 입력하여 Submit form 버튼을 눌러 진행하면 인증 이후의 콘텐츠들도 크롤링 가능

- 요청이 전송된 횟수와 바이트 등의 통계 정보를 확인 가능 - Spider is running 버튼을 눌러 스파이더 실행을 멈출 수 있으며 이때 버튼의 내용이 Spider is paused로 변경되며 버튼을 다시 눌러 스파이더를 다시 동작시킬 수 있음

 

 

인트루더(Intruder)

요청 메시지의 특정 위치를 지정하여 여러 개의 데이터를 자동으로 반복해서 전송하는 기능. 이 때 보내는 데이터를 페이로드(payload)라고 하며, 이러한 테스팅 방법을 퍼징이라고도 함

- 타깃 탭에서는 공격 대상을 정할 수 있습니다. 호스트 주소와 포트를 지정 가능

- 포지션(Positions) 탭에서는 공격 종류(Attack type)를 선택할 수 있고, 아래에 표시된 요청 메시지를 임의로 생성한 다음, 페이로드를 삽입할 위치를 지정할 수 있음

- 페이로드 입력 위치는 주로 파라미터나 쿠키 등과 같이 동적으로 변경될 수 있는 부분을 지정함. 공격 유형에 따라, 각 위치마다 페이로드를 일일이 하나씩 입력하여 전송할 수도 있고, 모든 위치에 동일한 페이로드를 입력하여 전송할 수도 있음

- 공격의 유형에 대한 자세한 내용은 Help -> Burp Suite Documentation에서 확인 가능

- 사이트 맵 또는 프록시 히스토리 항목의 우클릭 메뉴에서 Send to Intruder 메뉴를 이용하면 기본이 될 요청 메세지를 쉽게 생성할 수 있음

- 페이로드(Payloads) 탭에서 어떤 페이로드를 입력하여 테스트할지 지정 가능

- 페이로드 타입으로 패스워드와 같은 문자열의 리스트, 숫자나 문자의 범위 등을 정하여 랜덤한 값, 대소문자를 구분하여 입력하거나 비정상적인 값들을 입력할 수도 있음

 

 

리피터(Repeater)

인트루더와 비슷한 기능을 수행하지만 수동으로 메세지를 조작하며 반복적인 테스트를 하기 위한 기능

- 프록시 히스토리 항목의 우클릭 메뉴 중 Send to Repeater를 이용하여 쉽게 요청을 리피터로 보낼 수 있음

- Go 버튼을 누르면 요청이 전송되고, 요청에 대한 응답이 응답(Response) 부분에 표시 됨

- Go 버튼을 누를 때마다 반복 요청이 가능하기 때문에 수동으로 값을 조작하고, 그 값에 따라 응답이 어떻게 변하는지 쉽게 확인 가능

 

 

스캐너(Scanner)

웹 애플리케이션의 보안 취약점을 자동으로 찾는 기능 (유료 버전에서만 제공)

 

 

시퀸서(Sequencer)

세션 값을 추측하는 데 사용하거나, 세션 값이 얼마나 랜덤하게 생성되는지 테스트하는 데 사용 가능

- 세션 값이 추측될 수 있는 경우, 세션 하이재킹 공격에 쉽게 노출될 수 있음

 

 

디코더(Decoder)

각종 문자열의 인코딩, 디코딩 값을 확인하는 데 사용 가능

- URL 인코딩, HTML 인코딩, 헥스 값 및 Base64로 인코딩된 값을 디코더를 이용하여 쉽게 디코딩하여 확인 가능

 

 

컴페어러(Comparer)

두 개의 요청 메세지나 응답 메세지를 일대일로 비교하여 두 메세지 간의 차이점을 알아내고자 할 때 사용

- 프록시 히스토리에서 컨트롤 키를 이용하여 동시에 항목을 두 개 선택한 후 마우스 우클릭 메뉴의 Send to Comparer 메뉴를 이용하여 컴페어러로 요청(또는 응답)을 보낼 수 있음

 

 

익스텐더(Extender)

자신이 개발한 코드나 서드 파티에서 개발한 확장 기능을 춫가로 설치하여 사용할 수 있음

 

 

 

 

 

728x90
728x90

 

 

 

 

 

파이어 폭스 프록시가 켜진 상태에서 https 사이트에 들어가려고 하면 접속 에러가 뜰 것 입니다.

네이버에 진입하는 것부터 막히는데, 이러한 상황을 해결하려고 합니다.

 

 

 

 

 

 

먼저 파이어폭스에서 http:s//burp에 접속합니다.

 

 

 

 

 

 

burp 사이트 입장했다면 오른쪽 상단의 CA Certificate 메뉴를 클릭한 후, CA 인증서를 다운 받습니다.

 

 

 

 

 

 

정상적으로 다운로드 되었다면 Downloads 폴더에서 cacert.der이란 파일이 있을 것입니다.

 

 

 

 

 

 

이렇게 다운 받은 CA 인증서를 파이어폭스에 가져와야하는데, 파이어폭스 설정에 들어가서 certificates를 검색하여 View Certificates 버튼을 찾습니다.

 

 

 

 

 

 

올바르게 왔다면 아래와 같은 화면이 뜰 것입니다.

 

 

 

 

 

해당 화면에서 스크롤을 조금 내리면 Import가 있으며, 이것을 눌러 CA 인증서를 임포트합니다.

Trust~ 이런 내용은 대충 CA를 믿느냐고 물어보는 것이기 때문에 체크하고 OK를 눌러 넘어가면 됩니다.

 

 

 

 

 

 

그러면 접속 에러는 뜨지 않을 것 입니다..

(사실 왜 접속은 안되는진 모르겠음 나중에 공부하면 알게 되겠지)

 

 

 

 

 

728x90
728x90

 

 

 

 

 

폭시프록시 : 프록시 스위치 역할..?

 

 

 

어쨋든 설정 방법입니다.

파이어폭스 메뉴에서 [Add-ons and themes]를 선택합니다.

 

 

 

 

 

 

검색창에 foxy를 검색하면 새 창이 열리면서 검색 결과가 나오는데,

그 중에서 FoxyProxy Basic을 찾아 선택 후 파이어폭스에 추가합니다.

 

 

 

 

 

 

추가하면 파이어폭스를 다시 시작하면 주소창 옆에 못 보던 아이콘이 생깁니다.

이 아이콘을 클릭하여 Options를 선택하면 폭스프록시 애드온의 설정을 변경할 수 있습니다.

 

 

 

 

 

 

이번에는 새로운 프록시를 추가하기 위해서 add를 클릭한 후에 IP주소와 포트 번호를 입력합니다.

 

 

 

 

 

 

그 외에는 선택사항으로 작성하고 싶은 것들 작성한 후에 save를 눌러 저장합니다.

 

 

 

 

 

정상적으로 추가가 되었다면 주소창 옆 폭스프록시 아이콘을 누르면 Turn Off일 때는 프록시가 꺼진 것이고, ip주소를 누르면 해당 ip로 프록시가 켜진 것을 볼 수 있습니다.

 

 

 

 

 

 

그리고 그 전에 추가한 파이어 폭스의 프록시 설정은 Use system proxy settings로 변경해줍니다.

 

(파이어폭스 메뉴 - Settings - General - Network Settings - Settings...)

 

 

 

 

이상으로 폭스프록시에 관한 설정이 끝났습니다!

 

 

 

 

 

728x90
728x90

 

 

 

 

 

책은 칼리 리눅스 2021 버전이고 나는 2022 버전이라서 기본 설정하는 것도 완전 다름...

그래서 하나하나 기록하면서 적고 있음..

 

 

 

 

파이어폭스의 첫 화면입니다.

오른쪽 상단 쪽 햄버거 버튼을 눌러서 Settings를 찾아서 클릭해야 합니다.

 

 

 

 

 

 

Settings를 누르면 보이는 화면

 

 

 

 

 

 

여기서 General -> Network Settings -> Settings를 찾아 클릭합니다.

General의 가장 밑에 Network Settings 항목이 있어요.

 

 

 

 

 

 

Settings를 누르면 Connection Settings 화면이 나옵니다.

 

 

 

 

 

 

기본값은 Use system proxy settings로 되어있는데 Manual proxy configuration을 선택합니다.

 

 

 

 

 

그 후 HTTP Proxy에 127.0.0.1 를, Port에 8080을 입력한 후 OK를 선택합니다.

이 때 무조건 이 값이 아니라 버프 스위트에서 IP 주소와 포트값을 입력해주셔야 합니다.

 

 

 

 

 

 

잘 설정이 됬다면 파이어 폭스의 주소 창에 우분투의 IP 주소로 접속하면 버프 스위트의 프록시 탭이 열리면서

인터셉트(Intercept) 탭의 색이 주황색으로 변합니다.

이게 변하지 않았다면 프록시 IP 주소와 포트를 확인하고 다시 설정해야 합니다.

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

HTTP 프록시 기능을 사용하기 위해 버프 스위트를 사용할건데,

저의 경우에는 미리 프로그램 메뉴에서 바탕화면으로 옮겨놨습니다.

 

 

 

 

 

 

프로그램을 처음 시작하면 라이선스 동의를 구하는 창이 표시되는데, 이것은 그냥 동의하고 넘어갑니다.

 

 

 

 

그리고 나타나는 화면이 프로젝트 선택 화면.

 

 

 

 

 

 

유료 버전은 프로젝트를 불러오거나 저장하는 기능을 제공하지만 무료 버전은 제공하지 않아서

제일 위의 버튼인 Temporary project(임시 프로젝트)를 선택후 Next를 누릅니다.

 

 

 

 

 

 

그 다음 화면은 설정파일을 선택하는 화면인데, 저도 잘 모르니까 그냥 기본값 선택하고 Start Burp를 눌러

프로젝트를 시작하면 됩니다.

 

 

 

 

 

 

이렇게 하면 모든 설정이 끝났고, 아래의 화면이 버프 스위트가 실행되는 첫 화면입니다.

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

버추얼 박스 관리자의 머신 도구의 스냅샷 메뉴를 선택해줍니다.

(캡쳐가 안되서 스냅샷 메뉴까진 못 찍었지만, 아래 사진의 빨간 박스를 선택하면 보입니다.)

 

 

 

 

 

 

그 후 찍기 메뉴를 눌러 스냅샷의 이름과 설명을 작성 후 확인을 누르면 됩니다.

 

 

 

 

 

 

추가되면 아래와 같이 화면이 바뀐 것을 볼 수 있습니다.

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

 

터미널에서 실행할 명령어

# apt-get install -y fcitx-lib*
# apt-get install -y fcitx-hangul

 

 

 

 

 

그리고 나서 다음에 할 것들이 중요하다.

 

 

 

 

 

 

 

시스템 메뉴에서 Input Method를 찾아서 눌러줍니다.

그러면 아래와 같은 화면이 나올건데, 오른쪽 하단의 OK 누르고, Yes를 눌러줍니다.

 

 

 

 

 

 

 

 

그러면 뭔가를 선택하라고 나오는데 fcitx를 선택하고 OK 누르고, 또 눌러줍니다.

 

 

 

 

 

 

 

 

 

그러면 1차적인 설정은 끝났는데, 일단은 터미널에서 sudo reboot 명령어를 입력하여 재부팅합니다.

그리고 나서 아래와 같이 Input Method에 Hangul이 뜨면 설정이 잘 됬고,

안 뜨면 다시 설정을 해주어야 합니다.

 

 

 

 

 

 

시스템 메뉴에서 Fcitx Configuration을 찾아서 클릭합니다.

 

 

 

 

 

저는 Hangul이 잘 뜨기 때문에 아래에 있지만, 없어서 여기까지 왔기 때문에 +를 눌러 추가해야 합니다.

 

 

 

 

 

Only Show Current Language의 체크를 풀고, 맨 밑 쪽에 Hangul을 찾아 추가하면 됩니다.

저는 추가가 되어 있기 때문에 따로 뜨지 않아서 캡쳐에는 없습니다.

어쨋든 찾아서 Ok를 눌러 추가해줍니다.

 

 

 

 

 

 

한영키는 Global Config를 눌러 두번째의 Extra key ~~~ 이 부분의 키가 한영키인데, 따로 변경이 가능하며

저의 경우에는 왼쪽 시프트키가 한영키를 대신하고 있습니다.

 

 

 

 

 

 

이로써 한글 입력이 가능해졌습니다.

감사합니다.

 

 

 

 

 

728x90

+ Recent posts