11. 해킹기술 (2) - hacking & security -
1. IP 주소 추적 메일을 이용한 방법 메일 헤더에는 보낸 사람의 IP 주소, 중간 Relay Host 등에 대한 정보가 포함되어 있다. 2
1. IP 주소 추적 P2P 서비스를 이용한 방법 P2P 서비스 이용 시 두 클라이언트 사이에 직접적인 세션이 생성되며, 이를 이용해 상대방의 IP 주소를 획득할 수 있다. 3
1. IP 주소 추적 P2P 서비스 이용 시 세션 확인하기 MSN을 통해서 파일을 전송할 때의 ‘netstat -an' 결과에서172.16.0.3:3029와 172.16.0.4:1051 사이의 세션을 확인할 수 있다. 4
1. IP 주소 추적 웹 게시판을 이용한 방법 웹 서버의 일반 계정을 이용해서 웹 게시판의 로그 파일을 알수 있다. Root# vi /var/http/access_log 5
1. IP 주소 추적 채팅을 이용한 방법 IRC의 경우에는 알아내고 싶은 사람의 이름을 ‘/dns' 뒤에 넣어주면 된다. ICQ에서도 User List에 있는 사용자들의 User Info만으로 상대의 IP 주소를 알아낼 수 있다. 6
1. IP 주소 추적 Traceroute를 이용한 방법 Traceroute에서 알고자 하는 것은 상대방에게 인터넷 서비스를 제공하고 있는 회사를 알아내는 것이 목적이다. 다음의 두 TraceRoute 결과와 같이 시도할 때마다 똑같은 결과가 나오는 것은 아니다. 하지만 항상 하나의 경로를 지나는 경우가 있으며, 대부분 그 라우터가 서비스 업체의 경계 라우터다. 7
2. DoS와 DDoS DoS 공격의 이해 DoS(Denial of Service) 공격은 공격대상이 수용할 수 있는 능력 이상의 정보나 사용자 또는 네트워크의 용량을 초과 시켜 정상적으로 작동하지 못하게 한다. DoS 공격 1. 파괴 공격 : 디스크나 데이터, 시스템의 파괴 2. 시스템 자원의 고갈 : CPU, 메모리, 디스크의 사용에 과다한 부하를 가중시킴 3. 네트워크 자원의 고갈 : 쓰레기 데이터로 네트워크의 대역폭을 고갈시킴 8
2.1 서비스거부(DoS) 공격 2.1 DoS 공격 Ping of Death 공격의 기본은 Ping을 이용하여 ICMP 패킷을 크게 만들어 네트워크를 통해 라우팅(Routing)되어 공격 네트워크에 도달하는 동안 아주 작은 조각(Fragment)이 된다. 공격대상 시스템은 이렇게 작게 조각화된 패킷을 모두 처리해야 하므로 정상적인 Ping의 경우보다 훨씬 많은 부하가 걸린다. 9
2.1 서비스거부(DoS) 공격 Ping of death 예 공격자: C:\>ping -n 100 -l 65500 172.16.0.3 공격대상에서의 TCPDump 10
2.1 서비스거부(DoS) 공격 Syn Flooding 11
2.1 서비스거부(DoS) 공격 TCP 3 Way 핸드쉐이킹 정상적인 3 Way 핸드쉐이킹 12
2.1 서비스거부(DoS) 공격 Syn Flooding 공격 시 3 Way 핸드쉐이킹 Syn Flooding 공격 컴파일 : gcc -o synk synk.c 공격 실행 : root# ./synk 0 172.16.0.3 80 80 13
2.1 서비스거부(DoS) 공격 Syn Flooding 공격의 TCP Dump Root# tcpdump eth0 14
2.1 서비스거부(DoS) 공격 Syn Flooding 공격 시 서버측의 ‘netstat –an’ 결과 Root# netstat -an 15
2.1 서비스거부(DoS) 공격 Boink, Bonk, Teardrop 여러 가지 프로토콜은 기본적으로 신뢰성을 높이고자 하는 목적을 가지고 있다. 1. 패킷의 순서가 올바른가? 2. 중간에 손실된 패킷은 없는가? 3. 손실된 패킷의 재전송 요구 Boink, Bonk, TearDrop은 위의 사항을 위반함으로써 공격 대상 시스템에 DoS 공격을 가하게 된다. 16
2.1 서비스거부(DoS) 공격 Bonk Bonk는 처음 패킷을 1번으로 보낸 후 두번째, 세번째 패킷 모두 시퀀스 넘버를 1번으로 조작해서 보낸다. Boink Boink 공격은 처음 정상적으로 보내다가 중간에서 일정한 시퀀스 넘버로 보낸다. TearDrop TearDrop 은 패킷을 겹치게 또는 일정한 간격의 데이터가 빠지게 전송한다. 17
2.1 서비스거부(DoS) 공격 LAND 공격 패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소 값을 공격대상의 IP 주소 값으로 똑같이 만들어서 공격대상에게 보낸다. 이 공격법은 Syn Flooding처럼 동시 사용자 수를 점유해버리며, CPU 부하까지 올리게 된다. 18
2.1 서비스거부(DoS) 공격 Win Nuke(OOB) 공격 먼저 상대방 시스템에 139번 포트를 스캔하여 열려 있는지 확인. NetBIOS 패킷에 URG(Urgent)를 On 상태로 하여 패킷을 전송. URG가 On 상태는 송수신 중간에 발생할 수 있는 비정상적인 상태를 의미한다. 서비스 중 ‘Ctrl + Break’ 또는 ‘Ctrl + C’와 같은 역할을 한다. 공격대상은 수많은 Urgent 패킷을 인식하고 모든 시스템의 세션을 닫은 뒤 재연결을 요구하게 된다. 이때 CPU에 과부하가 걸리게 된다. 19
2.1 서비스거부(DoS) 공격 WinNUKE 공격 예 20
2.1 서비스거부(DoS) 공격 Smurf, Fraggle 공격자가 ICMP Request 패킷으로 Direct 브로드캐스트를 했을 경우 다음과 같이 패킷이 전달된다 ICMP Requset 패킷을 전달받은 에이젼트들은 공격대상에게 ICMP Replay 패킷을 보낸다 . 21
2.1 서비스거부(DoS) 공격 Mail Bomb Mail Bomb는 흔히 폭탄 메일이라고 한다. 스팸 메일도 이와 같은 종류다. 메일이 폭주하여 디스크 공간을 가득 채우면 정작 받아야 하는 메일을 받을 수 없다. 이 때문에 스팸 메일은 DoS 공격이 될 수도 있다. 윈도우용 Mail Bomber Upyours 22
2.2 DDoS 공격 DDoS 공격 DDoS 공격의 구성 요소 DoS 공격이 짧은 시간에 여러 곳에서 일어나게 하는 공격 1. 공격자(Attacker) 2. 마스터(Master) 3. 에이전트(Agent) 23
2.2 DDoS 공격 DDoS 공격의 일반적인 순서 1. 일반 계정을 획득하여 스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나 루트 권한을 획득한다. 2. 잠재적인 공격대상을 파악하기 위해 네트워크 블록 별로 스캐닝을 실시하여, 원격지에서 버퍼 오버플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악한다. 3. 취약한 시스템의 리스트를 확인한 뒤, 실제 공격을 위한 Exploit을 작성한다. 4. 권한을 획득한 시스템에 침투하여 Exploit을 컴파일하여 설치한다. 5. 설치한 Exploit로 공격을 시작한다. 24
2.2 DDoS 공격 Trinoo Trinoo는 1999년 6월 말부터 7월 사이에 퍼지기 시작했으며, 미네소타 대학의 사고 주범이었다. 원래 이름은 Trin00이다. 처음 솔라리스 2.x 시스템에서 발견되었으며, 최소 227 개의 시스템이 공격에 쓰였던 것으로 알려져 있다. UDP를 기본으로 하는 공격을 시행하며 서버에서 실행되는 데몬이 주 공격대상이다. 주요 이용 포트 접속자 접속대상 프로토콜 포트 공격자 마스터 TCP 27665 에이전트 UDP 27444 31335 공격대상 25
2.2 DDoS 공격 TFN Trinoo와 마찬가지로 ‘statd, cmsd, ttdb' 데몬의 취약점을 공격. 클라이언트를 구동하면 패스워드가 사용되지 않고 클라이언트와 데몬간에는 ICMP Echo Request 패킷이 사용 클라이언트의 각 명령은 ICMP Echo Request 패킷에 16비트 이진수로 데몬에 전송되며, 시퀀스 넘버는 0x0000으로 설정되어 있어, ping의 최초 패킷처럼 보여 찾기 어려움 TFN은 공격자 시스템과 마스터 시스템간 연결이 평문으로 전달되는 약점을 가지고 있다. 26
2.2 DDoS 공격 TFN 2K의 특징 1. 통신에 특정 포트가 사용되지 않고 암호화되어 있으며, 프로그램에 의해 UDP, TCP, ICMP가 복합적으로 사용 2. TCP Syn Flooding, UDP Flooding, ICMP Flooding, Smurf 공격을 쓰고 있다. 3. 모든 명령은 CAST-256 알고리즘으로 암호화된다. 4. 지정된 TCP 포트에 백도어를 실행시킬 수 있다. 5. 데몬은 설치시 자신의 프로세스 이름을 변경하여 모니터링을 회피한다. 6. UDP 패킷의 헤더가 실제 UDP 패킷보다 3바이트만큼 더 크다. 7. TCP 패킷의 헤더의 길이는 항상 0이다. 27
2.2 DDoS 공격 Stacheldraht Stacheldraht는 독일어로서 '철조망'이라는 뜻이다 1999년 10월 처음 출현한 것으로 알려져 있으며, TFN을 발전시킨 형태다. Stacheldraht 공격자와 마스터, 에이전트, 데몬과의 통신에 암호화 기능이 추가되었다 공격자가 마스터에 접속은 패스워드기반 인증. 패스워드는 최초 설치되기 전에 ‘Authentication‘의 ‘Passphrase’를 사용하여 암호화된 상태로 공격자에게서 핸들러로 보내진다. 28
2.2 DDoS 공격 DoS, DDoS 공격에 대한 대응책 1. 방화벽 설치와 운영 2. IDS 설치와 운영 3. 안정적인 네트워크의 설계 4. 시스템 패치 5. 스캐닝 6. 서비스별 대역폭 제한 29