C.S`niper 2004학년도 겨울방학 중 스터디
해킹(Hacking)실습 정리
들어가는 말
운영체제 관련 해킹 입니다.
툴을 사용하는 것이 대부분 입니다.
실습에 관련된 보안 이론을 다루는 것이 주 목적입니다.
문서 보는 법
3장이 하나의 묶음으로 되어 있습니다.
관련 사이트
CSniper PDS -> UPLOAD -> OS-해킹(방중)
차 례
1. 백도어 프로그램 - 백 오리피스(p2~4)
2. 포트스캔 프로그램 - 수퍼 스캔(p5~7)
3. CS WebServer 공격 - 툴과 소스(p8~10)
날짜 / 시간
|
2005년 1월 14일 금요일 2시 배지현, 하준호
|
테스트 환경
|
TARGET : windows 2000 profesional
HOST : windows 2000 profesional
|
해킹
관련 이론
|
백도어 프로그램(BackDoor Program)이란 외부에서 접속할 수 있도록 특정 포트를 열어주는 프로그램을 말한다. 텔넷이나 SSH, FTP, HTTP의 데몬들도 서비스를 이용하도록 포트를 열어두기 때문에 백도어랑 유사하지만 정상적인 서비스이기 때문에 뒷문(?)이라는 용어를 쓰지 않는다. 백도어의 목적은 크레킹에 있다.
백도어 프로그램은 백도어 서버와 더불어 백도어 서버를 조정하는 클라이언트도 같이 포함한다. 백 오리피스같은 프로그램은 보서버라는 것을 공격할 컴퓨터에 깔고 b2kgui라는 클라이언트로 조정한다.
|
해킹 실습에 관한 정보
|
백오리피스는 cDc(The Cult of the Dead Cow)에서 만든 프로그램으로 한 때 엄청난 파장을 몰고왔던 백도어 프로그램이다. cDc가 크레킹 그룹이 아니라 보안 해커들의 모임이라서 공개가 되었다. 구하기도 쉬운 툴이고 지금은 V3에 기본적으로
|
해킹 실습
|
V3 문제 - 우선 인스톨을 했는데 보서버(포트 열어주는 프로그램)이 자꾸만 삭제가 되었다. V3에서는 보서버가 보이는 즉시(폴더가 열렸을 때 그 안에 보서버가 있디면) 그 파일을 지워버렸다. 트레이에서 지우고 프로세서를 다 죽여도 자꾸 삭제가 되어 할수 없이 V3를 언 인스톨하고 진행하였다.
보서버를 깔고 접속을 하는데(서버이름, IP만 입력하고 나머지는 Default) 컴퓨터 몇 대를 바꾸어 봐도 접속이 안되었다. windows XP 에서도 마찬가지였다. 포트 스캔으로 알아보니 보서버가 포트를 열어주지 못했다.
윈도우 98에서는 잘 되었다. 98에서 잘되는 것으로 보아 95에서도 동작이 가능하고 2000부터는 운영체제 자체에서 막은 듯 하다(cDc에서 MS사에 경고를 위해서 발표했는데 대응했음은 당연하다) 접속 후에는 메뉴만 보아도 간단한 내용이라서 reboot나 메시지창 띄우기, 프로세서 죽이기 등을 할 수 있었다.
제일 유용한 키로그를 만들어서 비밀번호등을 캐내기는 실패했다. 키로그 자체가 타켓 컴퓨터에 저장이 되어 전송해야 하는데 전송하는 법을 모르고 정말 구체적인 매뉴얼(책에도)도 구할 수 없었다.
|
날짜 / 시간
|
1월 14일 금요일 2시
|
실습 후 확인할 수 있었던
해킹 이론
|
특정 포트에 서비스를 받는 데몬이 있다면 서비스를 받을 수 있다.
이것이 http, ftp, telnet 원리이고 백도어의 원리이기도 하다.
|
효과적인 해킹 방법
토론 내용
|
백오리피스 2000에는 보서버 configure 기능을 지원한다. 여기에는 여러 플러그인을 부착 할 수도 있는데 사용해 본 것은 자신의 e-mail로 보서버에 감염된 IP를 자동으로 보내주는 기능이 있는 것이었다. 덕분에 zeroline@hotmail.com에서 zeroline6@hotmail.com으로 아이디를 변경 해야만 했다. 보서버를 막 퍼뜨려도 감염된 IP가 자동으로 날아오니 암거나 해킹 할 수가 있었다. cDc에서 이것을 공개하지 않았다면 ... ...
그리고 보서버를 다른 파일과 합체 시키는 프로그램도 구할 수 있었다. exe파일은 물론 그림파일과도 합체가 가능했다. 그림파일이 변경되기에 윈도우의 미리보기 기능에서 보이지 않게 된다. 그림을 클릭하면 윈도우에 있는 그림파일 보기 기능으로 그림파일이 보이면서 보서버가 자동적으로 실행되기 때문에 감염 시키기도 쉬웠다. 이메일로 첨부파일에 ‘아름다운 풍경’ 등으로 메일을 보낸다면 쉽게 보서버를 설치 시킬수가 있다.
|
토론 정리
|
이 툴 패치가 나오지 않았다고 가정한다면...
전세계 90% 이상이 사용하는 컴퓨터가 보서버에 감염되고 감염된 IP가 크레커의 이 메일로 날아 간다고 상상해 보자. 알수 없이 컴퓨터가 꺼지거나 이상한 메시지 박스가 뜨고, 게임 개정이 해킹당하고, 프로그램이 갑자기 종료되고 파일이나 디렉토리가 자동으로 지워지고 레지스트리가 망가져서 부팅이 안되고 동영상 파일이 자동적으로 실행되는 등의 증상이 나타나도 왜 그런지 모를 것이다. 한 컴퓨터에게만 장난을 계속해서 친다면 바이러스임을 감지 하겠지만. 전체 1M도 되지않고 보서버는 수십 킬로바이트 임을 감안한다면 실로 엄청난 해킹 툴임에 틀림이 없다.
|
날짜 / 시간
|
1월 14 일 금요일 2시
|
관련된
보안 이론 수집
|
실습해 본 결과 윈도우 2000부터는 먹혀들지 않는다.
V3에서는 자동으로 지워 버린다.
다잡아 같은 스파이웨어 감지에서도 감지를 한다.
너무도 잘 알려져 있어서 다른 anti-virus 프로그램에서도 다 있다.
Ctrl+Shift+ESC를 눌러서 뜨는 프로세서에 bk2.exe라고 보서버가 표시됨.
|
보안 토론과 실습
|
얼마 전까지만 해도 게임 때문에 PC방에서는 98을 운영체제로 사용했으나 지금은 2000 밑으로는 찾아보기 힘들다. 그리고 V3는 운영체제와 더불이 같이 인스톨하는 프로그램으로 인식이 되어서 특별히 신경을 쓰지 않더라도 이 프로그램에 타격을 받는 일은 없을 듯하다.
하지만 오래된 컴퓨터를 혹 사용해서 윈도우 98 이전 버전을 깔게 되는 경우에는 이런 류(백도어) 프로그램이 있다는 것을 꼭 알아야 하겠다.
|
토론과
보안 방법
정리
|
가장 좋은 방법은 ‘자기 컴퓨터를 해킹 당하지 않도록 이상한 파일은 보거나 받지도 아니하고 해킹 방지 툴을 받아서 설치하도록 한다.’이다. 백 오리피스가 아니라도 얼마든지 변종이 나와서 체크하지 못할 수도 있으며 안티 바이러스 프로그램을 피해가는 풀그림이 나올수도 있다. 하지만 대부분 프로그램이 실행되어야 작동을 하기 때문에 컴퓨터가 이상이 있을시에는 한번씩 프로세스창을 보는 것도 괜찮을듯 하다. 그리고 엉뚱한 프로세스에 의심이 가지 않게 기본적으로 윈도우에서 관리하는 프로세서 이름 정도는 외워야 하겠다.
|
날짜 / 시간
|
1월 20일 목요일 2시 배지현 하준호
|
테스트 환경
| |
해킹
관련 이론
|
포트 스캔은 열린 포트를 알아보는 것이다. 서버를 공격하는데 가장 먼저 선행되어야 할 것은 정보 수집이다. 정보는 그 자체만으로 유용할 수 있고 때로는 추가 정보와 리소스를 얻는 수단이 되기도 한다.
포트스캔 동작 원리 : target컴퓨터에 연결 요청하는 SYN패킷전송을 하면 target 컴퓨터의 포트가 열린 경우 host에 연결요청을 받아 들이는 SYN/ACK 패킷을 보낸다. 만약 열리지 않은 경우 에는 RST/ACK 패킷을 보낸다.
|
해킹 실습에 관한 정보
|
superscan은 유명한 포트 스캐닝 도구이다.
어떤 시스템에 열린 포트 저장하는 것으로 로컬 피시 뿐만 아니라 원격 지의 피씨까지 조사 할수 있다.
|
해킹 실습
|
한 컴퓨터에 superscan 을 깔고 210.119.3 아래의 컴퓨터를 스캔을 해보았다. 스캔한것을 보니 열린 포트는 + 표시 아래 정확히 어떤 포트가 열려 있는지 표시 되어 있다. 열린 포트로 서비스를 받는 데몬의 이름과 버전도 나온다.
이것은 저장도 할 수 있고 , 열린포트로 접속을 시도 해 볼 수 도 있다. 조사할 포트 범위를 지정할 수가 있어서 필요한 포트(특히 보안에 취약한 23번포트)만 스캔할 경우 속도가 전체 스캔보다 빠르다.
|
날짜 / 시간
|
1월 20일 목요일 2시
|
실습 후 확인할 수 있었던
해킹 이론
|
표준 TCP 접속 포트 스캔(standard TCP connection port scan)의 내용을 알 수 있었다.
|
효과적인 해킹 방법
토론 내용
|
포트 스캔을 해서 열려진 포트로 들어 간다고 해서 마음대로 조작을 할 수 있는 것은 아니다 예를 들면 어떤 집을 도둑질 한다 할 때 대문안까지 들어온다 해도 물건을 훔칠 수 있는 것은 아니다 . 연장을 이용해서 창문으로 들어오던가 ,열쇠를 복제 하거나 훔쳐서 현관으로 들어오던가 해야 할 것이다.
이와 같이 열쇠의 역할을 하는게 root 권한이라고도 볼 수 있고 연장은 백도어 같은 프로그램으로 볼 수 있다 . 이처럼 포트를 이용해서 해킹을 하려면 이것도 역시 백도어 프로그램이나 원격지 컴퓨터를 이용 할 수 있는 권한이 필요 하다.
그래서 각 포트에서 작동중인 데몬들의 알려진 취약성을 이용해서 해킹한다.
|
토론 정리
|
포트 스캔만으로는 해킹을 할 수 있는 것은 아니다. 이 프로그램은 열린 포트만 보여 주기 때문이다. 해킹을 하려면 열린 곳 으로 들어가 백도어를 깔거나 권한이 있어야 컴퓨터를 마음대로 주무릴 수 있다.
|
날짜 / 시간
|
1월 20일 목요일 2시
|
관련된
보안 이론 수집
|
실습과 자료를 접해 본 결과 포트 스캔할 때 열린 포트가 보이지 않게 하는 것은 전문적 기술이기 때문에 일반 유저로서는 힘들다. 네트워크 침입 감지 시스템을 구현해야할 필요가 있다.
|
보안 토론과 실습
|
포트 스캔의 원리는 superscan에서 쓰는 것 말고도 많이 있다. 포트 스캔만으로 해킹을 할 수 있다는 것도 아니다. 하지만 수퍼스캔 으로 네트워크 취약점 스캔 후 스크립트 공격이 있다고 하니 실습을 해 보고 그 실습 결과를 토대로 보안 토론을 해야할 필요성이 있다.
|
토론과
보안 방법
정리
|
슈퍼 스캔 점검 항목은 다음과 같다.
운영체제 버전확인, 네트워크 포트 스캐닝, QPOP root 버퍼 오버플로우, IMAP root 버퍼 오버플로우, Sendmail EXPN, solarix x86 listen/nlps_serv 원격 root 버퍼 오버플로우 리눅스 mSQL2.0 원격 스택 오버플로우, 리눅스 bind/iquery 버퍼 오버플로우, 취약한 CGI 점검... 백오리피스 시스템 점검. NFS 취약점(export목록, 모든 사용자에 읽기/쓰기 가능 여부), X11 점검, wingate동작 유무, finger점검(사용자 확인, 한번도 로그인하지 않은 사용자 확인), 스트립트 모듈 수행
스캔 당하는 부분들을 보고, 취약점에 대한 이해가 필요하겠고 보안 대책이 필요하다.
|
날짜 / 시간
|
2005년 2월 20일 일요일 12시 하준호.
|
테스트 환경
|
TARGET : CS WEB SERVER(www.csniper.com) 210.119.3.185
HOST : 우리집 컴퓨터( windows XP Profesional )
|
해킹
관련 이론
|
웹서버 해킹용 툴을 사용해 보고 우리 서버에도 실현 가능한지 알아 본다. 웹서버 공격 방법은 DOS공격, 포트 열기, userhelper 버그 이용, suidperl 버그를 이용하여 내부에서 공격하고 외부에서는 툴을 이용하여 사용자 계정을 훔쳐보려고 한다. DOS는 서비스 거부 공격인데 내부에서 프로세서를 무한으로 생성해서 리소스를 딸리게 한다. 포트 열기 역시 내부에서 포트를 열어주는 소스를 컴파일하고 실행하여 포트 열기를 할 것이고 suidperl와 userhelper 버그는 툴을 이용할 것인데 내부에 심어놓고 실행만 하면 된다. 두 개의 버그는 경쟁상태와 suid를 이용하는 것이다. 레이스컨디션은 여러개의 프로세서가 같은 자원에 접근하려고 할 때 높은 경쟁상태가 되어 순서가 뒤죽박죽되거나 예측 불가능한 상황을 만드는 것이다. suid를 이용하는 것은 어떤 파일을 실행시킬 때 관리자 권한이 되어 그동안 관리자 명령어를 수행(/etc/passwd수정등)하여 해킹한다.
|
해킹 실습에 관한 정보
|
잘 알려진 소스에다가 잘 알려진 툴이다. 게다가 웹서버는 최근 버전의 페도라 서버가 설치되어 있다.
|
해킹 실습
과
해킹 정리
|
185(웹서버)에 접근하기 위해서 사용자 계정을 알아야 한다. 사용자 계정을 알기 위해서 툴을 사용하였다.
wwwhack98과 webcracker + patch - 웹에 접속해서 아이디와 비번 리스트를 이용해 검색을 실시한다. 자동적으로 잘 알려진 ID와 패스워드를 넣어준다. 무차별 대입으로 찾은 뒤 보고 한다.
결과 : 찾지도 안 해놓고 찾았다고 나온다. -> 제대로 작동도 안됨.
내 계정 zeroline를 넣고 패스워드로 찾아봐도 찾기는 커녕 작동도 안된다. 로그인 페이지를 읽는 형식도 고정되어 있는 듯 하다.
해킹 했다고 치고 내 계정을 이용해서 185에 접속하려고 한다.
22번 포트가 학교 방화벽 때문에 막혀 있었다.
unicorn.pknu.ac.kr에 계정이 있어서 23번 포트로 접속후 ssh -l zeroline 210.119.3.185로 접속하여 로그인 하였다.
- 계속 -
|
날짜 / 시간
|
2월 20일
|
해킹 실습
과
해킹 정리
|
gcc는 잘 작동을 했다. 185는 ftp도 작동하기에(슈퍼 스캔으로 검색됨) 소스를 올려서 손쉽게 컴파일 할 수 있었다. (gcc -o [출력파일] [입력파일])
gcc -o dos.sh dos.c 로 컴파일 후 실행해 보았다. 안먹힌다. 웹서버 잘 돌아가고 zeroline 쉘만 리소스 제약을 받는다. Ctrl+Z로 재우면 다른 쉘 명령어 하나도 안듣고 fork()가 작동되는 프로세서를 죽여야 한다.
port open - openport.c 학교 서버가 21, 23, 25, 80 외에는 다 막고 있어서 집에서 포트스캔으로 확인 불가. 수퍼유저가 열린 포트를 확인해야 할 것 같음. 중요한 것은 1023 까지 포트는 열어도 자동으로 닫힌다.
ex ) $> ./openport.out &
$> ps
해보면 #define PORT 가 1023 이하인 것들은 자동으로 exit가 됨을 알수 있다. 1024이상은 프로세스가 계속해서 남아 있다.
--- 돌아댕기는 툴 구했는데 실행만 되고 기능은 안되는 것들 ---
X82user.sh - userhelper 버그를 이용한 루트가 되는 익스플로잇
pamslam.sh - userhelper 버그를 이용한 익스플로잇
userrooter.sh - userhelper 버그를 이용한 익스플로잇
X82suid.sh - suidperl 버그를 이용한 루트가 되는 익스플로잇
X82end.sh - 루트가 된후 자동으로 백도어 심어주는 툴
|
토론 정리
|
리눅스가 업그레이드 되면서 잘 알려진 것들은 다 패치가 된 듯 하다. 하지만 openport.c의 경우 학교서버에서는 방화벽으로 막혀있지만 내부에서는 방화벽이 없기에 1024 이상 포트를 이용해서 해킹할 가능성이 있다.
|
날짜 / 시간
|
2월 21일
|
관련된
보안 이론 수집
|
DOS 공격은 내부 공격 말고 외부 공격도 있다. 웹서버의 경우 수많은 사용자가 접속을 요청하도록 하는 것처럼 해서 서버에 과부하가 걸리는 방법을 쓰는데 너무 오래된 웹서버가 아니라면 사용자 제한이 발동한다. 자동적으로 DOS 공격을 막는다. OPEN 포트의 경우 1024 이상 포트가 열렸는데 아직 받는 서비스만 없을 뿐이지 포트 자체가 열린 상태라 telnet, ssh, ftp 데몬들을 이용해서 접속이 가능하다. 크랙된 서비스 데몬의 경우 접속자에게 바로 루트 권한을 줄 수도 있다.
|
보안 토론과 실습
| |
토론과
보안 방법
정리
|
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.