개요
- 오픈소스 워드프레스 취약점 스캔 툴인
WPScan
의 사용법을 정리해둔다. - WPScan은 루비로 작성되었다.
스캔할 수 있는 것
- 설치된 WordPress 버전과 관련된 취약점
- 설치된 플러그인과 관련된 취약점
- 설치된 테마와 관련된 취약점
- 사용자 이름 열거
- 비밀번호 무차별 대입으로 약한 비밀번호를 가진 사용자찾기
- 액세스 가능한 백업된 wp-config.php 파일
- 액세스 가능한 데이터베이스 덤프
- 오류 로그가 플러그인으로 인해 공개된 경우
- 미디어 파일 열거
- 취약한 Timthumb 파일
- WordPress readme 파일이 존재하는 경우
- WP-Cron이 활성화된 경우
- 사용자 등록 가능하게 되어 있는 경우
- 풀패스 공개
- 디렉토리 리스팅
설치
Ruby gem이나 Docker 컨테이너로 설치할 수 있다.
Ruby Gem
gem install wpscan
Docker
docker pull wpscanteam/wpscan
라이센스
- Kali Linux에서는 기본으로 설치되어 있다.
- 그 외의 리눅스에서는 사용하려고 하면 API 키를 요구한다. (취약점DB와 연결할 때 API 키가 필요하다)
- 하루에 25번까지의 API 호출이라면 무료로 사용가능하다. (회원가입이 필요하다.)
- 상용으로 이용하려면 유료 라이센스를 구매해야 한다.
사용법
스캔
docker run -it --rm wpscanteam/wpscan --url https://example.com/ --enumerate u
API 토큰 얻기
API 토큰은 –api-token옵션 또는 config 파일을 통해 지정한다.
curl -H "Authorization: Token token=API_TOKEN" https://wpscan.com/api/v3/wordpresses/494
옵션
유저명 찾기
docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --enumerate u
취약한 플러그인 찾기
- 취약한 플러그인을 찾으려면 -e vp을 사용한다.
- WordPress Vulnerability Database API를 사용하므로 API 토큰을 설정하여 사용한다.
docker run -it --rm wpscanteam/wpscan --url http://XXXXXX/WordPress/ -e vp --api-token xxxxxxxxxxxxxxxxxxxxxxxx
테스트 하기
당연한 말이지만 아무 곳이나 스캔해서는 안된다. Damn Vulnerable WordPress가 Github에 공개되어 있으니 이 것을 설치해서 테스트해보면 좋을 것 같다.
참고
- https://wpscan.com/
- https://wpscan.com/how-to-install-wpscan/
- https://github.com/wpscanteam/wpscan/wiki/WordPress-Plugin-Security-Testing-Cheat-Sheet
- https://qiita.com/koujimatsuda11/items/d49e8642dea1a1b0d067
- https://github.com/vavkamil/dvwp