홈페이지 취약점 분석 이야기 파일 지도 사진 깨알






>> 목록보이기
#Apache log #공격로그 #CONNECT #프록시 #proxy #ProxyAbuse #Bash Shellshock #쉘쇼크 #CVE-2014-6271 #QNAP NAS #/cgi-bin/authLogin.cgi #Joomla! #plugin_googlemap2_proxy.php #Apache Tomcat Default Manager #/manager/html

오늘의 웹서버 공격로그 (2016년 11월 30일)

웹핵누리집에 대한 2016년 11월 30일자 웹서버 공격로그를 뽑아 보았다. 현재 이 웹페이지는 구글에도 노출되지 않은 상태임에도 불구하고 지속적으로 공격 흔적이 옅보인다. 어떠한 장비라도 HTTP/HTTPS 포트가 외부에 열려있는 경우에는 주의하여야 한다.

CONNECT 메소드 탐색

111.248.114.67 - - [30/Nov/2016:08:16:02 +0900] "CONNECT 163mx02.mxmail.netease.com:25 HTTP/1.0" 200 19103 "-" "-"

접속자 IP주소: 111.248.114.67 (대만)
CONNECT HTTP 메소드를 접근하려고 하였다. 이 메소드가 허용되면 프록시로 사용하여 IP주소세탁에 악용할 수 있다고 한다. 이 공격의 경우에는 HTTP의 COONECT method를 통해 프락시 요청을 한 것이다. CONNECT 163mx02.mxmail.netease.com:25 요청은 이 웹서버를 경유하여 163mx02.mxmail.netease.com 서버의 25번 포트(SMTP)로 접속한 후 스팸 메일을 발송하려는 것이다. 163mx02.mxmail.netease.com 메일서버 입장에서는 스팸 발송지 IP주소가 웹핵누리집 웹서버가 되므로, 스팸 발송자의 위치를 숨길 수 있게 된다.

서버의 응답이 200이고 19103 바이트를 전송했기 때문에 실제로 어떠한 데이타가 공격자에게 전송되었는 지 확인하여야 한다. telnet을 이용하여 위의 공격을 재현하면 알 수 있다.

root@kali:~# telnet webhack.dynu.net 80
Trying 122.32.19.138...
Connected to webhack.dynu.net.
Escape character is '^]'.
CONNECT 163mx02.mxmail.netease.com:25 HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 07:59:46 GMT
Server: Apache
Set-Cookie: NormalCookie=Not-HttpOnly-Cookie
Set-Cookie: HttpOnlyCookie=HttpOnly-Cookie; httponly
X-Frame-Options: DENY
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=UTF-8

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko_KR" lang="ko_KR">
<head>
	<title>웹개발자를 위한 홈페이지 취약점 분석 누리집: 웹해킹, 웹취약성분석, 모의침투</title>
	<style type="text/css" media="all">@import "/css/script-daddy.css";</style>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<link rel="shortcut icon" href="/favicon.ico">
	<link rel="icon" href="/favicon.ico">
	<meta name="author" content="A Script Daddie" />
	<meta name="robots" content="all" />
	<meta name="viewport" content="user-scalable=yes, initial-scale=1.0, width=device-width" />
</head>
<BODY>
[생략]
root@kali:~#

웹핵누리집은 CONNECT 메소드 요청에 대해서 GET과 동일한 결과를 전송하는 것을 알 수 있다. 따라서 200 응답이라고 하여도 CONNECT가 실행되지는 않았다.

QNAP NAS 장비의 Bash Shellshock 탐색

198.89.126.132 - - [30/Nov/2016:09:12:27 +0900] "GET /cgi-bin/authLogin.cgi HTTP/1.1" 404 448 "http://www.google.com" "() { :; }; echo; echo `uname -a`x-sh3llsh0ck;"
198.89.126.132 - - [30/Nov/2016:12:30:33 +0900] "GET /cgi-bin/authLogin.cgi HTTP/1.1" 404 448 "http://www.google.com" "() { :; }; echo; echo `uname -a`x-sh3llsh0ck;"

접속자 IP주소: 198.89.126.132 (미국 텍사스 오스틴)
2014년에 밝혀진 Gnu Bash의 쉘쇼크(Shellshock) 취약점을 탐지하려는 공격자의 접속 로그이다. User-Agent 문자열 대신 bash shellshock 취약점을 공략하기 위한 문자열이 전달된 것을 볼 수 있다. /cgi-bin/authLogin.cgi는 QNAP NAS 장비의 관리자 로그인 페이지라고 한다. Shellshock 취약점이 공개되자마자 가장 초기에 대규모로 행해진 공격이며, NAS 장비에서 사용하는 임베디드 리눅스의 root 권한을 탈취할 수 있었다고 한다.

Joomla! 구글맵 플러그인 탐색

95.215.60.214 - - [30/Nov/2016:15:29:02 +0900] "GET /plugins/content/plugin_googlemap2_proxy.php?url= HTTP/1.1" 404 449 "-" "-"
95.215.60.214 - - [30/Nov/2016:15:29:03 +0900] "GET /plugins/system/plugin_googlemap2_proxy.php?url= HTTP/1.1" 404 448 "-" "-"
95.215.60.214 - - [30/Nov/2016:15:29:04 +0900] "GET /plugins/system/plugin_googlemap2/plugin_googlemap2_proxy.php?url= HTTP/1.1" 404 466 "-" "-"

접속자 IP주소: 95.215.60.214 (스페인 발렌시아)
이 아파치 접속 로그는 Joomla! CMS의 구글맵 플러그인(Google Maps Plugin)을 찾으려는 시도이다. 2013년 7월 경에 줌라!의 구글맵 플러그인을 공격하여 서비스거부(Denial of Service), XML 삽입, 크로스 사이트 스크립팅 등이 가능한 취약점이 공개된 바 있다. 다음은 참고 자료이다.

공개된지 벌써 3년 이상이 지난 취약점이지만 아직도 공격이 이루어진다는 것은 취약점이 있는 Joomla!를 사용하는 누리집이 다수 존재한다는 뜻이다.

Apache Tomcat Default Manager 로그인 페이지 탐색

210.103.172.136 - - [30/Nov/2016:21:54:27 +0900] "GET /manager/html HTTP/1.1" 404 420 "-" "Mozilla/3.0 (compatible; Indy Library)"

접속자 IP주소: 210.103.172.136 (대한민국 강원도 또는 서울)
http://target.site/manager/html 또는 http://target.site:8080/manager/html는 아파치 톰캣이 기본으로 제공하는 관리자(Apache Tomcat Default Manager) 로그인 URL이다. Apache Tomcat의 기본 관리자 기능이 활성화되어 있고 관리자 계정이 취약한 경우에는 war 형태의 웹쉘을 업로드하여 시스템 침투가 가능하다. 자동화 공격도구들이 흔하게 탐색하는 표적 중의 하나이다. 관리자 계정은 $TOMCAT_HOME/conf/tomcat-users.xml 파일에서 평문으로 생성하기 때문에 유출에 주의하여야 한다.

<tomcat-users>
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->

	<role rolename="manager-gui"/>
	<user username="admin" password="admin" roles="manager-gui"/>

</tomcat-users>

위와 같이 역할이 manager-gui인 계정이 취약하다면 추정하기 힘들게 변경하여야 한다. 가능한 톰캣 관리자 기능은 사용하지 않는 것이 안전하다. 불가피한 경우에는 필요할 때만 사용하고 평상시에는 비활성화시키는 것이 좋다. 완전히 비활성화가 귀찮을 경우에는 관리자 계정 설정부분을 주석처리하는 것도 하나의 방법이다.

[처음 작성한 날: 2016.11.30]    [마지막으로 고친 날: 2016.12.02] 


< 이전 글 : WebGoat: Blind Numeric SQL Injection (추리기반 SQL 구문삽입의 이해) (2016.12.18)

> 다음 글 : OWASP TOP 10 (2013) 문서의 각종 해킹 시나리오 모음 (2016.11.29)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문