[2024.07.23]
[Web Server 취약점 스캔 및 제거]
> 취약점 1: /manual/images/: Directory indexing found.
> 파일명: /etc/httpd/conf.d/manual.conf
> 취약점 2: /icons/: Directory indexing found.
> 파일명: /etc/httpd/conf.d/autoindex.conf
> 취약점 3: /manual/: Web server manual found.
> 파일명: /etc/httpd/conf.d/manual.cof
> 취약점 4: /icons/README: Apache default file found.
> 파일명: /etc/httpd/conf.d/autoindex.conf
오늘도 이전 시간에 이어서 취약점에 대해 먼저 실습을 진행한다
먼저 conf.d 디렉터리의 manual.conf로 들어가서 Options 옆의 Indexes를 삭제 후 저장
그런 다음 Kali Linux에서 nikto를 실행시키게 되면
manual.conf 파일에서 수정했기 때문에 manual/images/의 취약점이 사라진다
icons의 경우도 마찬가지로 conf.d 디렉터리의 autoindex.conf 파일에서
Options의 옆에 있던 Indexes를 삭제시킨 후 저장한다
그렇게 되면 icons가 사라지며 icons/README만 남게 된다
마저 남아 있던 manual까지 없애기 위해 다시 파일 수정을 진행한다
이번에는 기존에 있던 granted를 주석(#) 처리 하고,
denied로 새로 적어서 저장한다
그렇게 되면 이번에도 기존에 남아 있던 manual과 manual/images까지 모두 없어진다
남은 icons/README도 없애기 위해 파일 수정 후 저장
아까는 보였던 취약점들이 모두 말끔하게 없어졌다
반면에 특정 IP 주소만 허용하는 것도 가능한데
Kali Linux의 IP 주소를 허용시켜 봤다
nikto로 스캔 시에도 icons/README가 확인되며,
마찬가지로 Firefox로 웹 페이지를 열어 확인해도 icons/README는 접속이 가능하다
현재 Kali Linux만 허용을 한 상태이기 때문에,
100번 서버의 Rocky Linux와 202번 서버인 Windows 10의 경우 접속이 차단되는 걸 확인할 수 있다
=======================================================
01. OWASP-ZAP 설치
> 취약점 점검 도구 및 공격 도구: OWASP-ZAP
#apt-get -y install zaproxy
실습 진행에 앞서 어떤 도구를 사용하는지에 알아보는 시간을 가졌다
OWASP ZAP의 경우 오픈 소스 웹 애플리케이션 취약점 점검 도구이다
진행되는 과정
진행하게 되는 순서에 대해서도 미리 알아보게 됐다
실습 진행을 하기 위해 zaproxy를 설치 진행
* etc/resolv.conf에서 dnsnameserver 주소가 맞지 않으면 설치가 진행되지 않으므로,
도구 설치 전과 update, upgrade 진행 시 유의해야 된다
02. 실행
#ZAPROXY
> Indstalled -> 업데이트: update all(클릭)
> Market Place > 항목 선택 > Install Selected(클릭)
설치 후 실행시키면 해당 화면이 타나나게 된다
처음 들어가게 되면 이런 화면이 나오게 되는데 No를 클릭하고 Start 클릭
그 다음 화면을 넓혀 준 상태에서 우측 하단의 Update All을 누른다
누르게 되면 해당 화면이 나타나는데 그대로 Yes를 눌러 준다
그럼 해당 화면이 나타나게 되는데 이때 이 부분에서
업데이트 목록을 선택하고 업데이트를 시도한다
체크되어 있는 것들을 똑같이 체크 후
Install Selected을 누른다
Yes 선택
필요 항목 설치가 완료되면 시작 화면이 나타나게 된다
03. Firefox에서 Proxy 설정
http: 127.0.0.1 포트: 8080
Kali Linux의 Firefox를 열어 우측의 아이콘을 누르고 Settings를 눌러 준다
그런 다음 검색 창에 proxy를 검색하게 되면 바로 나타나는데
노란색 박스의 proxy라고 되어 있는 부분을 눌러 준다
이제 화면과 같이 입력하고 수정이 완료되면 OK를 누르고 나간다
다음은 시작 화면에서 Automated Scan을 선택하고
들어가서 50번의 Rocky Linux IP 주소를 입력한 후 Attack을 눌러 준다
Attack을 누르게 되면 이렇게 퍼센트가 뜨면서 스캐닝을 진행하게 된다
현재 50번 서버로의 접속을 시도했다는 뜻이다
주황색 깃발의 경우 높은 취약점이다
zaproxy의 경우 취약점의 등급까지 확인할 수 있다
이 부분은 취약점을 자동으로 점검하여 나타내는 곳이다
취약점 스캐닝을 진행한 것이기 때문에,
당연히 nikto로 실행시켜 확인해 봐도 같은 내용의 취약점이 나타난다
이렇게 Request 요청과 Response 응답을 확인할 수도 있다
정보보안기사 시험에도 몇 번 나온 문제이며,
GET:robots.txt의 경우 해당 robots.txt에 의해 검색 엔진이 차단된다
이렇게 확인할 수 있듯이 검색 로봇 제한을 두는 게 robot.txt의 역할이다
내 사이트의 로그를 허용하는 상태
Disallow를 하면 차단이 되어 내 사이트에서 데이터를 가져갈 수 없다
Active Scan <-- 설정 정보를 정해서 스캐닝
Passive Scan <-- zap이 알아서 정한 후 스캐닝
Force Browsing <-- 디렉터리나 파일을 접근 가능한지 테스트
Brake <-- 패킷을 잠시 잡아두는 역할
Fuzzer <-- 특정한 상세 값을 입력해서 스캐닝
거미로 된 것들을 Spider로 보면 된다
각각의 스캐닝이 어떤 역할을 하는지 알고 있으면 좋다
dirbuster를 실행시켜 확인해 보려고 하는데
실행시킨 다음 50번 서버의 IP 주소를 입력하고 Brows를 선택하게 되면 해당 화면이 나타난다
usr/share/woldlist 디렉터리의 목록에서 화면의 1.0.txt를 선택
그렇게 되면 선택한 파일을 스캐닝 진행 중인 화면이 나타난다
여기에서 성공한 것들은 디렉터리가 상세하게 보여진다
attive와 fuzzer는 취약점 진단을 하고, 나머지는 스캐닝만 한다
전체적인 진단은 acitve, 세부적인 진단은 fuzzer를 이용하면 좋다
Automated Scan을 이용하지 않아도 마우스 우클릭으로
Attack을 선택하여 스캐닝을 진행할 수도 있다
port scanner가 없기 때문에 강사님께서 다음 시간까지
추가 후 진행하자는 말을 마지막으로 수업이 마무리가 되었다
강의 소감
갈수록 난이도가 어려워지고 이해하고 넘어가야 될 부분이 늘고 있다
오늘은 zaproxy가 있으며, 그것도 취약점 점검 및 공격 도구인 것을 알게 됐다
wireshark를 처음 실행했을 때도 오늘과 같이 아무것도 몰라서 헤맸던 기억이 있는데,
이번에도 처음 보는 zaproxy에 사용법까지 미숙해서 아직까지는 어렵다
그래도 계속 반복하다 보면 내가 알고자 하는 부분과 취약점에 대한
부분들도 더 뿌리깊게 알게 될 것 같다