컴퓨터2008.06.10 10:15
웹나이트 로그를 분석하다 보면 여러가지 정보를 수집하려는 하기도 하고, 흥미로운(?) 웹해킹로그를 발견하게도 됩니다.

시스템정보를 알아보기 위해 사용하는 프로그램은 여러가지가 있습니다.
사용자가 직접 만든 프로그램일수도 있으며, nmap 과 같이 무료로 배포되어서 사용되는
프로그램도 있습니다

하지만 대걔 특정 프로그램을 이용해서만 해킹시도를 하는 경우를 많습니다. 즉 사용자 에이젼트가 어떤것인지만 안다면 어느정도 차단을 할수 있는 웹해킹시도가 많다는 것입니다.

저는 다음과 같은 Webknight 로그를 매일 리포팅 받고 있습니다.
다음은 Webknight 로그를 파싱한 화면으로 특이한 부분이 발견되었습니다.


처음 구문부터 분석을 해보도록 하겠습니다.
 13:03:20 ; W3SVC440 ; OnUrlMap ; 140.129.22.12 ; ; ; ; GoogleBot ; #########
  시간        사이트ID     차단된분류   접속자 IP             사용자에이젼트

즉, 13시 03분 20초에 W3SVC440 의 사이트 ID 를 가지는 웹사이트로 (140.129.22.12)라는 공인 IPAddress 를 가지는 사용자가 GoogleBot 이라는 사용자에이젼트를 이용해서 접속을 시도하다가 차단된 예입니다.

이런.. 구글봇(GoogleBot) 인것 같습니다. 다음은 구글의 구글봇 도움말입니다.
[ 구글 웹마스터 도움말 센터 ]
Googlebot: 웹 색인 및 Google 뉴스 색인의 페이지 크롤링
링크 : 웹마스터 도움말 센터

그렇다면 정말 구글봇(googlebot) 이 이 웹사이트를 해킹하려 했다는 말일까요?

일단, 공격자 정보를 확인해보겠습니다.

타이완으로 타이페이에 할당된 IP 라고 합니다. 호스트명이 imail.ttu.edu.tw 인것으로 봐서는 타이완쪽 학교내 컴퓨터인듯합니다.

공격자는 학교내 컴퓨터를 이용해서 사용자에이젼트를 변경하는 방법으로 웹방화벽을 우회하고자 하였지만 SQL 인젝션차단설정에 의해서 차단되었습니다.

일반적으로 웹해킹은 거의 비슷한 사용자 에이젼트를 가지는 특성이 있습니다.
같은 툴을 사용해서 코드만 바뀌기때문이죠.

하지만 이렇듯 사용자 에이젼트는 수정이 가능하기때문에 에이젼트로 막는것은 약간의 도움은 되겠지만, 해결책이 되지는 못하는것 같습니다.

참고로 webknight 2.1 은 사용자 에이젼트로 차단하는 설정이 있으니 참고하시기 바랍니다.

덧글. 사용자 에이젼트에 의한 차단을 테스트할때는 다음 도구를 이용하면 편리하다
Posted by Zasfe
컴퓨터2008.01.29 11:52
Webknight 2.1 가 배포되었다는 이야기를 Serveris.pe.kr 에서 들었습니다.
우리나라에서 윈도우 웹방화벽의 대표적인 존재가 되어버린 Webknight.

사실 지금 주로 사용하는 버젼은 Webknight 1.3 입니다.
관리해야할 서버가 많아지면서 웹나이트차단로그에 대한 조사및 관리를 조금이라도 편하게 해보려고 특정서버로 데이터베이스화하도록 스크립트를 만들어서 사용하고 있었는데, Webknight 2.0 으로 바뀌면서 웹나이트차단로그의 용이함을 위해 기능적으로 좋아졌다는 2.0을 포기하고 기존의 1.3 을 사용하고 있었습니다. (사실 버젼업을 하면 전반적인 부분의 수정이 불가피하기때문에 귀찮아서 미루고 있었던거죠.)
 
KISA 에서 배포하는 설정파일도 있고하니 예전부터 가지고 있단 설정파일을 참고해서 변경을 하는 테스트를 진행하고 있습니다.
 
...
...
 
항상 그렇지만 버젼을 올린다는 것은 좋은점도 있고 나쁜점도 있는것 같습니다.
기존의 문제가 되던 부분이 해결이 되는것이 좋은점이고, 나쁜점은 해결이 됨으로써 발생하는 2차적인 문제들입니다.관리자의 게으름으로도 표현할수 있는 나쁜점들중 하나일뿐이지만 말이죠.
 
각설하고, 우선 변경된 내용이 어떤것이 있는지 확인을 해보면 Webknight 2.0 으로 변경이 되면서 나아진 점은 검색봇에 대한 차단이나, 사용자환경과 인증 검색, 레퍼러를 이용한 내부자료의 직접링크방지, 그리고 로그를 볼수있는 프로그램을 추가한 것 정도 입니다.
그리고 Webknight 2.1 로 변경되면서는 한국어와 같은 비영어권도 지원하도록 변경이 되었다고 합니다.( 1.3 버젼에는 없던 버그라고 하는군요) 특정 IP 를 지정해서 감시를 할수 있고, 로그를 읽는 프로그램과 검색봇목록도 갱신되었다고 합니다,
 
...
현재 한개의 서버에서 여러개의 사이트를 운영하고 있는 저에게는 그다지 나아진 것에 대해서 체감할수가 없었었고, 지금도 마찬가지 입니다.
 
Webknight 2.1 버젼을 쓰시는 분들은 어떤 차이가 있기때문에 쓰는걸까요...

2007/10/11 - [Tech] - Webknight 로그의 데이터베이스화 클래스
Posted by Zasfe
컴퓨터2007.10.11 14:53

서버를 관리하는 사람들은 하루에도 엄청난 로그를 남기고 관리한다.
하지만 온갖 잡다한 로그속에서 필요한 로그를 찾기란 정말 힘들다. 그렇다보니 문제가 생기기 전까지 서버상에 기록된로그를 경시하려는 경향이 있다. 봐도 안봐도 그만인 정말 티 안나는 일이 로그 관리이기 때문 이다.

그렇다보니 조금이라도 편하게 관리를 하기 위해서 일부 프로그램이 제공하는것처럼 데이터베이스에 넣는 방법을 생각하게 되었다.
실시간이 아닌 사후처리 라는 점이 문제이기는 하지만 어차피 하루종일 쳐다보고 있지 않을 로그라면 데이터베이스에 넣어두고 사후관리시에도 용이하게 사용할수 있으리라는 막연한 생각때문에 스크립트를 만들기 시작했다.
실행속도와 서버부하를 생각하면 당연 C++ 같은 언어를 사용해야 하지만 VBScript 밖에 모르는 나에게 그것들은
그것들 일뿐이고, 지금 당장 불편함을 해소하기위해 성능은 떨어지더라도 기능에 만족할수 있는 스크립트를 만들었다.

Webkinght Class ( Webknight 로그의 데이터베이스화용 클래스 )

  • 추후 수정이 용이하도록 일반함수의 조합이 아닌 클래스형태 로 제작.
  • 각각의 필드를 개별적으로 반환 함으로써 사용자가 편하게 이용할수 있음.

다만 이 클래스는 웹나이트로그를 라인단위(1줄씩)로 읽어들인 값을 기준 으로 처리하도록 되어있다.
Posted by Zasfe
컴퓨터2007.09.05 19:02

윈도우쉘을 처음에 웹해킹시도에 사용된 파일을 분석하다가 알게 되었습니다.
window 서버를 관리하면서 보안설정을 확인하고 웹방화벽의 로그를 조사하다보면
여러가지의 웹해킹 파일을 찾게 됩니다.

05 년만 하더라도 아무곳에나 파일을 업로드해서 인터넷 게스트 계정으도 실행시켜버리더니,
06 년에는 윈도우 쉘을 통해서 원하는 작업을 해버리는 방법으로 진화를 하였습니다.
올해에는 직접 윈도우 쉘을 통해서 컨트롤하는 방법과 실행파일을 이용하는 방법을 이용하였습니다.

실행파일을 이용하는 방법은 IISlockdown, Webknight 를 이용하면 막을수 있습니다.

문제는 윈도우쉘로 컨트롤하는 방법인데, 이 방법은 NTFS 접근권한을 제거하였음에도 불구하고
실행이 됩니다.

Windows Shell VBscript ' 스크립트내부에서 cmd.exe 파일을 실행하는 예.
' 내부 쉘을 이용함으로써 cmd.exe 부분을 타프로그램이나 소스로 변경가능.


악용의 소지가 있어 소스는 생략합니다.


이렇게 함으로써 간단히 웹상에서 특정파일을 실행할수가 있습니다.
사실상 커맨드라인을 사용할수 있기때문에 원격지에서 서버를 관리하기에는 그만입니다.

하지만 양날의 검같이 단점도 있는데 윈도우쉘은 관리자권한을 획득하려는 사용자에게도 정말 꿀물같은
존재입니다. 웹상에서 커맨드라인을 사용할수 있다는것은 서버에 관리자권한으로 접속한거나 마찬가지이니까요.
(윈도우는 리눅스와는 달리 사용자에 대한 설정이 어렵습니다. 돌아가는 원리를 공개안하기때문이죠..)

가령 윈도우쉴을 이용하면 다음과 같이 입력을 얻어낼수있습니다.

V:\tmp>cscript cmd.vbs
Microsoft (R) Windows Script Host 버전 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

 V 드라이브의 볼륨: HDD-LSH
 볼륨 일련 번호: ACAA-B9A5

 V:\tmp 디렉터리








 C 드라이브의 볼륨: HDD-C
 볼륨 일련 번호: 70A9-A08A

 c:\ 디렉터리

2007-06-04  오전 09:23                 0 AUTOEXEC.BAT
2007-06-25  오전 11:04             9,406 BTWSTKInstall.Log
2007-06-04  오전 09:23                 0 CONFIG.SYS
2007-06-09  오전 09:00    <DIR>          Documents and Settings
2007-07-18  오전 11:32    <DIR>          Inetpub
2007-08-17  오후 02:04               628 is.html
2007-07-20  오전 10:45    <DIR>          Log
2007-08-23  오후 01:31    <DIR>          MSSQLData
2007-09-05  오후 02:32    <DIR>          Program Files
2007-08-17  오후 02:04            19,590 temp.txt
2007-08-31  오후 04:38               372 terminallog.txt
2007-09-03  오후 01:06    <DIR>          tmp
2007-09-04  오전 10:52    <DIR>          WINDOWS
               6개 파일              29,996 바이트
               7개 디렉터리  14,350,336,000 바이트 남음


V:\tmp>

다음은 웹상에서 실행한것이다.

Posted by Zasfe