취약점분석 단계 - (5) nmap script - php, mysql
nmap -sV --script=http-php-version <ip> -p80
- 해당 ip, port에 접근하여 <ip,port>에 해당하는 php서비스의 버전정보를 획득하는 스크립트이다.
local LOGO_HASHES = {
-- Bunny (Carmella)
["37e194b799d4aaff10e39c4e3b2679a2"] = {"5.0.0 - 5.0.3"},
-- Black Scottish Terrier (Scotch)
["4b2c92409cf0bcf465d199e93a15ac3f"] = {"4.3.11", "4.4.0 - 4.4.9", "5.0.4 - 5.0.5", "5.1.0 - 5.1.2"},
-- Colored
["50caaf268b4f3d260d720a1a29c5fe21"] = {"5.1.3 - 5.1.6", "5.2.0 - 5.2.17"},
-- PHP Code Guy With Breadsticks (Thies C. Arntzen)
["85be3b4be7bfe839cbb3b4f2d30ff983"] = {"4.0.0 - 4.2.3"},
-- Brown Dog In Grass (Nadia)
["a57bd73e27be03a62dd6b3e1b537a72c"] = {"4.3.0 - 4.3.11"},
-- Elephant
["fb3bbd9ccc4b3d9e0b3be89c5ff98a14"] = {"5.3.0 - 5.3.29", "5.4.0 - 5.4.45"},
}
스크립트의 아이디어는 다음과 같다.
php index page에는 php logo.png 이미지파일이 존재한다. 그런데, 이 이미지 파일은 php버전에 따라 조금씩 달라져서 각 버전별 hash값이 다르다.
이것을 이용하여 script내부에 각 버전별 logo 이미지에 대한 해시값을 저장해두고, <ip,port> 서비스에 접근하여 logo 이미지 파일을 해시한 결과값과 비교하여 매칭되는 php 버전을 찾는 것이다.
nmap -sV --script=mysql-empty-password <ip> -p3306 --packet-trace
- <ip,3306>에 해당하는 mysql 서비스에 접근한다. mysql 데이터베이스는 기본적으로 root 사용자이름이 존재하는데 데이터베이스 관리자의 실수로 root 사용자에 대한 비밀번호가 empty인 경우가 있다.
이것을 확인하는 .nse 스크립트이다.
nmap -sV --script=mysql-brute <ip> -p3306
- <ip,3306>에 해당하는 mysql 서비스에 접근하여 통상적으로 사용되는 <username,password>를 무작위 대입 공격하는 것이다.(= Credential Stuffing) 예를들어, 사용자이름 : admin 비밀번호 : 1234로 설정된 mysql 서비스가 존재하는 경우 무작위 대입 공격에 의해 해킹되는 것이다.
'모의해킹 > 취약점분석 단계' 카테고리의 다른 글
취약점분석 단계 - (7) vulners (0) | 2019.03.09 |
---|---|
취약점분석 단계 - (6) vulscan (0) | 2019.03.09 |
취약점분석 단계 - (4) zenmap의 활용 (0) | 2019.03.09 |
취약점분석 단계 - (3) 오픈소스 nmap-bootstrap-xsl 활용 (0) | 2019.03.09 |
취약점분석 단계 - (2) nmap 결과 생성 (0) | 2019.03.09 |