Fascination
article thumbnail

# Proxy

- proxy를 통해 웹 서버에 접근

# yum -y install squid // proxy 설치
# systemctl restart mariadb // db 재시작

 

- proxy 설정 파일 수정

# cd /etc/squid
# vi squid.conf // 웹 서버의 환경설정 파일

safe_ports만 허용하고 있음

 

다음과 같이 사용하는 ip를 추가하여 접근 제어 목록에 추가

 

변경 내용(centos7)의 접근 통제를 허용해 줌(적용하는 과정)

 

- Client에서 web proxy를 찾아가도록 설정

firefox 설정에서 network proxy 찾기

 

수동으로 설정

port는 설정 파일에서 찾아보면 "http_port 3128"이라는 부분에서 알 수 있음

(아까 설정파일에서 localhost도 allow되어 있었기 때문에 위와 같이 작성해도 됨)

 

이전에 접속되던 웹 페이지가 접속이 되지 않는 것을 확인할 수 있음

proxy server를 시작하지 않아서 뜨는 오류임

 

# systemctl restart squid // proxy server 재시작

proxy server 재시작 후 페이지가 잘 로드되는 것을 확인할 수 있음

 

이제 web proxy가 대리자 역할을 하게 되었음

1. 보안성이 강화됨

2. 캐싱 기능

squid.conf

캐싱한 정보를 다음 경로에 저장

(현재는 주석처리 되어있음)

 

 

# WhatWeb

1. WhatWeb이란?

  • 웹 서비스 정보를 수집할 수 있는 도구
  • 웹사이트를 식별하고, 콘텐츠 관리 시스템, 블로그 플랫폼, 통계 분석 패키지, 자바 스크립트 라이브러리, 웹서버와 임베디드 장치 등의 웹 기술을 인식
  • 웹 앱/서버에서 사용하는 기본 기술에 대한 정보를 공개하는 오래된 서버 버전이나 헤더 등을 탐색

 

2. Function

  • 1000개 이상의 플러그인
  • 속도, 스텔스와 안정성 간의 상충관계(trade off)를 제어
  • 성능 튜닝, 동시에 스캔하는 방법을 많은 웹사이트에서 제어
  • 사용자 정의 HTTP 헤더
  • 기본 HTTP 인증
  • 웹 페이지에 리디렉션 이상 제어
  • NMAP 스타일의 IP 범위 지정
  • 퍼지(fuzzy) 검색
  • 결과 확실한 인식
  • 사용자 정의 플러그인을 명령 줄에 정의
  • 여러 개의 로그 형식

 

3. Usage

usage 1

보통 -v(verbose) 옵션을 많이 사용

 

usage 2

공백을 기준으로 나열도 가능

 

usage 3

-a: 깊이

 

4. 실습

- Kali-Linux에 다음과 같이 명령어 작성

# whatweb 192.168.56.131 // centos ip address

- http protocol 사용 확인 가능

- 응답했으므로 200 OK

- Apache version 확인 가능

- CentOS 운영체제 사용 확인 가능

- 웹 어플리케이션으로 xe를 사용하고 있는 것 확인 가능

- php version 확인 가능

 

# whatweb 192.168.56.131 -v // -v: 더 자세하게 보여줌

더 자세하게 확인 가능

 

-v 옵션을 주지 않았을 때 확인할 수 없었던 sessionid 확인 가능

→ sessionid를 통해 서버에 직접 접근이 가능해지기 때문에 이것이 노출되면 위험함

- Pragma: no-cache // 캐시를 사용하고 있지 않음

- HTTP header의 자세한 내용을 볼 수 있음

 

# whatweb 192.168.56.0/24  // c클래스 전체
# whatweb --no-error 192.168.56.0/24  // --no-error option

--no-error 옵션을 주지 않을 때는 error opening도 모두 표시

 

옵션을 주게되면 다음과 같이 error가 아닌 것만 출력

현재 metasploitable2와 centos7(Server)를 확인할 수 있음

 

# whatweb --no-error 192.168.56.0/24 --log-brief brief.txt  // 실행결과(요약)를 txt 파일로 변환하여 저장

brief.txt에 동일한 내용이 저장된 것을 확인할 수 있음

 

# whatweb --no-error 192.168.56.0/24 --log-verbose verbose.txt  // 실행결과(상세)를 txt 파일로 변환하여 저장

 verbose.txt에 상세 내용들이 저장된 것을 확인 가능

 

 

# wafw00f

- 웹 방화벽에게 쉬운 내용을 전송해서 웹 방화벽이 되고 있는지 판단할 수 있음

 

 

# DIRBUSTER

1. DirBuster이란?

  • 일종의 디렉터리와 파일 정보 수집 도구
  • 웹/애플리케이션에서 숨겨진 파일이나 디렉터리들을 브루트포스(brute force) 방식으로 검출해 공격 팩터를 찾는 멀티스레드(multi thread) 애플리케이션

 

2. Fuction

  • 에러가 연속으로 20개 발생할 때 자동으로 일시중지
  • 멀티스레드 능력 향상
  • 맞춤법 실수 수정
  • 프록시 설정
  • jbrofuzz 디렉터리 목록 추가
  • 보고서 형식 추가 지원

① port 번호까지 잘 기입해야 함 그러지 않은 경우 에러 발생

③ 스레드가 많으면 많을 수록 스캐닝을 빠르게 할 수 있음

 

3. 실습

# dirbuster

dirbuster는 GUI 기반임

 

미리 구축해둔 CentOS(Server)의 ip주소 및 dirs/files의 리스트를 선택해준 후 start를 누름

* /usr/share/dirbuster/wordlists 안에는 많은 wordlist들이 있음

 

스캐닝 되는 것을 확인할 수 있음

스캐닝 결과는 report로 저장 가능

 

 

# Nikto

1. Nikto란?

  • a Practical Website Vunlerability Scanner
  • 오픈 소스로, 웹 서버와 애플리케이션에 대한 취약성을 자동으로 점검해주는 도구
  • 6500 이상의 CGI(common gateway interface) 파일을 포함하여, 여러 방법에 대한 테스트를 진행하여 타겟에 취약점이 존재하는지 확인하는 오픈 소스 웹 스캐너

 

2. Testing Item

  • 서버의 버전을 확인하고 여러 항목에 대하여 포괄적인 테스트를 진행
  • 설치 시 기본으로 설치되는 파일이나 스크립트 존재 유무
  • 추측 가능한 기본 디렉터리 사용 여부
  • 안전하지 못한 파일이나 스크립트의 유무
  • 웹 서버의 각종 설정 파일이나 구성 항목에 대한 검사
  • 버전 정보 등 불필요한 정보 제공 여부
  • 불필요하게 허용되어있는 메소드 등을 검사

 

3. Usage

command line interface

 

clickjacking: 링크를 클릭했을 때 악의적 의도가 담긴 페이지로 이동하게 하는 것

허용되는 메소드의 종류를 알 수 있음

OSVDB:  Open Source Vunlerability DataBase

Directory indexing: Directory listing과 같은 것

 

4. Options

 

5. 실습

# nikto -h 192.168.56.131 -C all

CentOS(Server) scanning

실제로는 버전, 운영체제 등은 숨길 수 있다면 최대한 숨겨야 함

(반대로 공격자는 찾을 수 있다면 정보를 최대한 찾아야 함)

 

그렇다면 스캐닝 결과로 나온 맨 위의 줄에 대한(버전, 운영체제 등) 정보는 어떻게 숨길까?

# cd /etc/httpd/conf
# vi httpd.conf
# systemctl restart httpd

다음과 같이 ServerTokens를 추가

현재 default 값이 Full이기 때문에 Scanning을 할 때 모든 정보가 다 출력된 것

Prod로 옵션을 주게 되면 패키지명만 출력됨

Major로 옵션을 주면 주 버전까지 출력

Minor는 보조 버전까지 출력

Min은 패치 버전까지 출력

OS는 운영체제까지 출력

 

다시 스캐닝을 해보면 아까와 다르게 Apache만 출력되는 것을 확인할 수 있음

(whatweb에서도 노출값이 달라지는 것을 확인할 수 있음)

 

그 외에도 OSVDB-3268에 나와있는 취약점처럼

실제로 directory indexing이 되는 것을 확인할 수 있음

 

metasploitable2 scanning

 

OSVDB-3268에 나와있는 취약점처럼 실제로 directory indexing이 되는 것을 확인할 수 있음

 

# nikto -h 192.168.56.131 -C all -Format txt -o nikto.txt // 텍스트 파일로 결과 저장

CentOS(Server)

nikto.txt 로 파일이 생성된 것을 확인할 수 있음

 

nikto.txt

저장된 파일 내용도 확인할 수 있음

 

+) 추가적으로 txt는 가독성이 떨어질 수 있는데 확장자를 .html로 저장하게 되면 가독성이 높아짐

 

profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!