기준
취약점 설명
로그인 페이지에서 ID와 PW 탈취 시에 자동화 공격으로 사용자 계정 탈취를 주목적으로 하고 있습니다.
하지만 위의 기준에서 말하고 있는 바는 로그인 페이지를 대상으로 계정 탈취를 주로 하는 공격도 있지만 DoS(Denial of Service) 포함하여 표기해 놓고 있습니다.
DoS(Denial of Service)는 서버스의 자원을 고갈시키거나 서비스 이용을 저해하는 행동을 통해 가용성을 저해하는 공격을 말합니다.
게시판에 대량의 글 등록을 하거나 로그인 제한이 설정되어 있는 경우 무작위 접근을 통해 사용자 아이디를 전부 정지시키는 방식으로 공격하는 방법을 말합니다.
자동화 공격을 통해 사용자의 계정을 대량 탈취하거나 서버의 자원을 고갈시켜 서비스의 가용성을 저해할 수 있습니다.
공격 방법
(DoS / DDoS 공격 방법은 자세히 다루지 않겠습니다.)
1. 자동화 공격
1) burpsuite
(Proxy 설정 방법에 관한 부분은 제외하도록 하겠습니다.)
위의 사지은 Burpsuite의 파라미터 값 변조 상황입니다.
이렇게 Intruder로 보내기를 합니다.
그럼 Intruder에 이렇게 뜨는 것을 확인할 수 있습니다.
오른쪽에 있는 Add, Clear, Auto, Refresh를 통해 자동화 공격을 진행하고 싶은 필드를 선택하여 진행하게 됩니다.
대부분 Add와 Clear를 가장 많이 사용하는데 Clear를 통해 처음에 원하지 않는 부분에 등록된 공격 범위를 모두 취소해준 수 Add로 드래그한 부분을 자동화 공격 범위에 포함시켜 공격하는 방식입니다.
Payloads에서 Payload type을 brute forcer로 설정하여 공격을 시작하면 공격이 시작됩니다.
공격할 문자열의 길이와 공격할 문자에 대입할 문자 목록을 위의 Payload Options를 통해 설정할 수 있습니다.
이후 위의 Start attack을 눌러서 공격을 시작할 수 있습니다.
시작하면 위의 사진과 같은 창이 뜨는데 Length값이 다른 Paylaod를 확인해서 공격하려는 대상의 정보를 획득할 수 있습니다.
2) fiddler
http://yamagata.int21h.jp/tool/BurplikeInspector/
fiddler로 자동화 공격을 진행하기 위해서는 위의 URL에 접근하여 Inspector를 다운로드하여 적용해주어야 합니다.
BurplikeInspector-ver0_02.zip (현재로써 최신)을 다운로드하여 C:\Users\[사용자ID]\Documents\Fiddler2\Scripts에 BurplikeInspector.dll를 옮겨준 후 fiddler를 재실행해주면 사용 가능합니다.
fiddler의 UI는 위의 사진과 같습니다.
왼쪽의 패킷 목록에서 공격이 필요한 패킷을 선택합니다.
그럼 Send to Intruder21을 눌러 자동화 공격을 준비할 수 있습니다.
사진과 같은 창이 뜨면 사용 방법은 Burpsuite와 별반 다르지 않습니다.
Clear로 지워주고 Add로 공격할 범위를 설정하면 자동화 공격을 진행할 수 있습니다.
Burpsuite와 다른 점은 좀 더 공격에 가까운 방법에 속하는 것입니다.
Payloads에 사용자가 원하는 공격 Pasload를 Load 해서 공격을 할 수도 있습니다.
Results 탭에서 공격을 시작하여 결과를 확인할 수 있습니다.
burpsuite와 마찬가지로 Length값이 달라지는 Payload을 확인하여 공격 대상의 원하는 정보를 획득할 수 있습니다.
자동화 공격 도구는 공격 대상에 따라 다양하게 존재합니다.
SQL을 대상으로 할 경우 SQLmap, WIFI를 대상으로 할 경우 AirCrack-ng, 비밀번호를 알아내야 할 경우 Hydra, 디렉터리 구조를 알아야 할 경우 Dirbuster, 이 외에도 Metasploit, John the Ripper 등등 각각의 용도에 따라 사용할 수 있는 자동화 툴은 많이 있습니다.
하지만 본인의 상황에 맞춰 사용할 수 있도록 직접 작성할 수 있는 방법을 배워둔다면 훨씬 더 효과적으로 공격할 수 있습니다.
하지만 대부분의 공격에서 사용될 툴들을 모두 들고 가거나 작성하여 사용할 수 없기 때문에 위의 burpsuite와 Fiddler가 일반적으로 가장 많이 사용되는 것으로 알고 있습니다.
2. DoS / DDoS
DoS (Denial-of-Service) 공격은 서비스를 제공하는 컴퓨터를 공격하여 서비스를 거부하게 만드는 공격 방식으로 단일 호스트가 수행하는 공격 유형입니다. DDoS (Distributed Denial-of-Service) 공격은 여러 호스트가 동시에 수행하는 DoS 공격입니다.
1) DoS (Denial-of-Service)
- 파괴 공격 : 디스크, 데이터, 시스템 파괴
- 시스템 자원 고갈 공격 : CPU, 메모리, 디스크의 과다한 사용으로 인한 부하 가중
- 네트워크 자원 고갈 공격 : 쓰레이 데이터로 네트워크 대역폭의 고갈
공격으로 인해 위에 나열해놓은 것과 같은 부분들이 파괴되거나 고갈되어 서비스를 사용할 수 없게 되는 공격입니다.
과거에는 DoS 공격으로도 서비스에 영향을 줄 수 있었지만 현재에 PC의 성능이 좋아지면서 과거 단일 호스트로 진행하던 공격으로 인한 피해는 많이 줄어들었습니다.
다음은 공격 방식에 따른 분류입니다.
- OS 또는 서버 프로그램, 네트워크 프로토콜 취약점 DoS : SYN Flooding, Ping of Death, HTTP Get Flooding 등
- Route 경로 조작 DoS : Land attack, Ping of Death, Teardrop
- 네트워크 대역폭 고갈 DoS : ICMP Router Discovery
이외에도 Smurf, UDP Diagnostic Port Denial service 등이 존재합니다.
또한 공격이 실행되는 각각의 레이어 별로 나눌 수도 있습니다.
L4 Layer : SYN, SYN-ACK, Reset Flooding, ACK Flooding, UDP Flooding
L3 Layer : Land, ARP, RARP Flooding, ICMP Flooding
L2 Layer : VLAN double-encapsulated, VLAN non-IP flood
L7 Layer : HTTP GET Flooding, DNS Lookup Flooding, cache control
DoS 공격은 위와 같이 많은 종류가 존재하고 있으며 앞으로도 더 발생할 수 있는 공격입니다.
각각의 DoS 공격 중 몇 가지를 선택하여 간략하게 설명해보도록 하겠습니다.
- Ping of Death
공격자가 Ping을 이용하여 크기가 큰(65500Byte) ICMP 패킷을 피해자 PC로 전송하면 전송 과정 중 각각의 네트워크의 패킷의 최대 길이가 한정되어 있고 또한 전송 과정 중에 무수히 많은 조각으로 패킷이 분할되어 전송되게 됩니다.
이때 피해자 PC가 분할된 패킷을 전송받으면 이를 분할된 순서에 맞게 재조립 과정을 통해 데이터를 확인하게 됩니다. 하지만 전송받은 패킷을 재조립하지 못하여 발생되는 DoS 공격이 Ping of Death입니다.
과거에 Windows 95/98과 Redhat 6.0 이하에서 발생하던 취약점으로 초기 DoS 공격입니다.
hping3, wireshark를 활용하여 실습이 가능합니다.
- SYN Flooding
사용자는 서버에 접근하기 위해 3-Way HandShake를 통해 데이터를 요청합니다.
여기에서 접근하는 방법을 우선 간단하게 설명하겠습니다.
순서는 1) SYN, 2) SYN+ACK, 3) ACK 순서로 진행됩니다.
1) SYN : 안녕하세요? 접근해도 괜찮을까요?
2) SYN + ACK : 접근해도 괜찮습니다. 언제 오세요?
3) ACK : 지금 가겠습니다.
위와 같이 생각하시면 과정은 대략적으로 이해 가실 거라 생각합니다.
여기에서 SYN Flooding가 발생하는 이유는 공격자가 1)을 한 상태로 서버가 2)를 통해 언제 오는지 기다리고 있을 때 답을 하지 않아 서버가 해당 사용자에 관한 리소스를 대기상태로 두어 발생하는 DoS 공격 방법입니다.
네트워크에서 시스템에 동시에 접근할 수 있는 사용자 수가 제한되어 있는데 이를 SYN을 통해 전부 채워버려 다른 사용자가 서비스를 이용할 수 없도록 만드는 방식입니다.
해당 공격은 hping3를 활용하여 실습이 가능합니다.
- Bonk, Boink, Teardrop
세 가지 방법을 한 번에 하는 이유는 방식에 작은 차이들이 있지만 TCP가 오류제어를 통해 손실된 패킷을 다시 요청하는 문제를 이용한 DoS 공격이기 때문입니다.
공격 방법도 TCP 패킷의 번호를 조작하여 보내는 방식으로 각각의 차이는 있지만 비슷한 방식을 보여주고 있습니다.
Bonk : 전송하는 모든 패킷의 시퀀스 넘버를 1로 작성하여 전송
Boink : 정상적으로 패킷을 전송하는 중간에 하나의 시퀀스 넘버를 지속적으로 포함시켜 전송
Teardrop : 시퀀스 넘버를 조작하여 일정 부분이 겹치거나 빈상태로 전송
시퀀스 넘버를 예로 각각의 방법을 설명해보겠습니다.
번호 하나는 각 데이터의 시퀀스 넘버입니다.
Bonk : 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Boink : 1,2,101,3,4,101,5,6,101,7,8,101,9,10,101
Teardrop : 1,2,3,2,3,4,7,8,9,15,16,17,16,17,18
해당 공격은 hping3를 활용하여 실습이 가능합니다.
- Land
패킷 전송 시에 출발지 IP와 도착지 IP를 같게 전송하는 방식의 DoS 공격입니다.
위의 패킷을 받게 되면 SYN 요청 값이 밖으로 나가지 않고 피해자 PC에서 계속 돌게 됩니다. 이렇게 서버에 요청을 보내는 방식으로 서버는 서버 자신의 IP로 설정된 IP를 기다리게 되는 형식의 DoS입니다.
해당 공격은 hping3를 활용하여 실습이 가능합니다.
- Smurf
패킷을 전송할"때 목적지 IP를 255.255.255.255로 전송하면 브로드케스트되어 같은 LAN에 있는 모든 호스트에 전송하도록 됩니다. 이때 ICMP 패킷의 목적지 IP는 255.255.255.255로 출발지 IP는 공격 대상의 IP로 설정하여 보내면 응답 패킷이 공격자가 아닌 공격 대상으로 대량으로 보내지게 됩니다.
이렇게 보낸 패킷이 꼭 Smurf 같다고 해서 지어진 이름의 공격 방식입니다.
해당 공격은 hping3를 활용하여 실습이 가능합니다.
----------------------------------------------------------------------------------------------------------------
이외에도 잘 알려진 방법인 폭탄 메일이나 HTTP 프로토콜을 이용한 공격이 있습니다.
2) DDoS (Distributed Denial-of-Service)
DDoS는 각각의 좀비 PC를 만들어 다수의 PC가 공격 대상을 한 번에 공격하는 방식으로 파급력이 큽니다.
위의 그림과 같은 구조로 공격자가 Master PC를 관리하고 Master는 Agent PC를 통해 공격자의 명령을 실행하는 방식으로 진행됩니다.
잘 알려진 공격 도구로는 Trinoo가 있고 악성 코드(Ransomware)를 통해 감염시켜 진행하는 방식도 있습니다.
'Web' 카테고리의 다른 글
파일 업로드 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.29 |
---|---|
프로세스 검증 누락 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.28 |
불충분한 인가 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.28 |
세션 예측 | 세션 고정 | 불충분한 세션 만료 (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.24 |
CSRF (Cross-Site Request Forgery) (주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) (0) | 2022.03.24 |