본문 바로가기

전체 글156

Arachni를 이용한 XSS 취약점 스캔 및 검증 오늘은 Arachni를 이용하여 스캐닝을 하고 그에 대한 검증까지 해보는 시간을 갖도록 하겠습니다. 1. XSS의 개념일단 스캐닝을 하기 앞서 간단하게 XSS의 개념을 이해하고 가도록 하겠습니다. XSS(Cross Site Script)는 OWASP top 10의 A7에 위치하고 있습니다. 공격자가 웹 페이지(게시판 등)에 악성 스크립트를 삽입하면 사용자 측에서 해당 스크립트가 동작하여 사용자의 정보(쿠키, 세션 등)탈취 등 여러 공격을 수행할 수 있습니다. XSS는 크게 Stored XSS, Reflected XSS, DOM based XSS로 나누어집니다.Stored XSS는 사용자의 입력 데이터가 DB에 저장되고, DB에서 해당 값을 추출하는 경우에 발생됩니다.Reflected XSS는 사용자 입력.. 2018. 3. 14.
Arachni scanner 설치 및 스캔 오늘은 Web application scanner인 'Arachni scanner' 설치와 간단한 스캔방법을 알아보겠습니다.해당 글은 Windows 10 (64bit) 기준으로 작성하였습니다. 1. Download먼저 아래의 주소를 클릭하여 자신의 OS에 맞게 DOWNLOAD 버튼을 눌러줍니다.무료로 다운로드가 가능합니다.(설치 경로에 한글이 들어가 있으면 에러가 나면서 실행이 되지 않으니 주의해야 합니다.)=> http://www.arachni-scanner.com/download/ 다운로드가 완료되면 다운받은 exe파일을 실행시켜 설치를 진행합니다.설치는 저절로 진행이되니 어려울 건 없습니다. 설치가 완료되면 다운받은 파일의 이름으로 폴더가 하나 생성됩니다.해당 폴더로 들어가면 bin, system .. 2018. 3. 10.
살아있는 호스트 IP 스캔하기 같은 네트워크 대역에 살아있는 호스트의 IP를 스캔하는 소스를 작성해 보려고 한다. 찾아보니 방법은 아래와 같이 나왔다. 1. ping을 이용하는 방법(ICMP Echo Reply를 보내오는 호스트가 살아있는 것으로 판별) 2. 특정 포트로 메시지를 보내는 방법(Port Unreachable를 보내오는 호스트가 살아있는 것으로 판별) 이중에서 나는 ping을 이용하는 방법을 선택했다. ping을 이용하는 방법에도 찾아보니 여러가지가 있었다. 1. pyping 모듈의 ping을 이용 2. os모듈의 system을 이용 3. ICMP Echo Request 패킷을 직접 만들기 나는 이중에서 ICMP Echo Request 패킷을 직접 만들어 보기로 결정했다. 일단 참고하기 위해서 wireshark로 ping.. 2018. 2. 13.
OWASP Top10 2017 https://www.owasp.org/ 2018. 2. 12.
HTTP Session Hijacking * HTTP 특징- HTTP는 기본적으로 비연결유지(stateless) 프로토콜이다. 따라서 웹 사이트 로그인 후 다른 페이지 방문시마다 매번 로그인해야 하는 불편함이 있는데 이는 Session ID를 사용해서 해소할 수 있다. * Session ID- 웹 서버가 다수의 웹 페이지 요청자를 구별하기 위하여 각각의 사용자의 세션에 대해서 부여한 임의의 긴 문자열을 말한다.- 사용자가 홈페이지 방문시 혹은 로그인시에 생성이 된다.- 사용자의 계정, 암호, 그 밖의 IP 주소, times tamp 등의 여러 파라미터들을 조합하여 생성할 수 있다.- 사용자와 일련의 웹 서핑 동작을 연결시켜줌으로써 웹 사이트 로그인 후 다른 페이지 방문시마다 매번 로그인을 하지 않아도 되는 편리함을 제공해준다. 1. 쿠키에 저장.. 2018. 2. 6.
TCP Session Hijacking * 세션- 두 대의 컴퓨터 간의 활성화된 상태를 말한다. * TCP 세션 하이재킹-> 개념- TCP가 가지는 고유한 취약점을 이용해 세션을 가로채는 공격이다.(즉, 로그인된 상태를 가로챈다.) -> 원리- TCP는 시퀀스 넘버가 잘못되면 이를 바로잡기 위한 작업을 하는 데, 이를 이용한다.- 서버와 클라이언트에 각각 잘못된 시퀀스 넘버를 위조해서 연결된 세션에 혼란을 준 뒤 자신이 끼어들어가는 방식이다. 1. 공격자는 ARP Spoofing을 이용하여 서버와 클라이언트 사이에서 패킷을 스니핑하고 있다가 서버에 RST패킷을 보내 서버쪽 연결을 끊는다.2. 그 후 공격자는 새로운 시퀀스 넘버를 생성하여 서버로 보낸다.4. 서버는 새로운 시퀀스 넘버를 받고 다시 세션을 연다. 5. 공격자는 정상적인 연결처럼 .. 2018. 2. 5.
DHCP Starvation * DHCP Starvation-> 개념- DOS공격 기법 중 하나이다.- 공격자가 MAC Address를 계속 변경하여 DHCP Server로부터 IP를 할당받아서 DHCP Server가 보유하고 있는 모든 IP 주소를 할당받아 정작 정상적인 호스트가 IP를 할당받지 못하게 하는 방식이다.- DHCP Server는 클라이언트가 전송하는 DHCP Discover안에 있는 MAC Address만을 보고 다른 장비 임을 구분하기 때문에 공격에 성공할 수 있다. [실습 1]- 실습을 진행하기 전 아래와 같은 토폴로지를 구성해준다. R1은 DHCP Server로 동작하고 있는 상태이다. -> 실습 환경 - WinXP - BT(Attacker) -> 실습 도구 - dhcpx - 현재 XP와 BT에서는 아래와 같이.. 2018. 2. 2.
IP Spoofing * IP Spoofing-> 개념- 송신자의 IP를 신뢰된 IP로 속이는 공격이다. -> 원리- /etc/host.equiv파일에 클라이언트의 IP와 접속 가능한 아이디를 등록해 놓으면 트러스트 설정을 할 수 있다. 즉, 패스워드 없이 IP주소만을 가지고 인증이 이루어진다. Attacker는 이러한 트러스트 관계를 이용하여 /etc/hosts.equiv파일에 동륵된 IP주소로 스푸핑하여 인증에 성공하게 된다. [실습 1]- 실습을 진행하기 전 아래와 같은 토폴로지를 구성해준다.- 현재 R1에는 Telnet서비스가 올라가져 있는데, access-list를 등록하여 WinXP는 Telnet에 접속하지 못하는 상태이다. 이를 IP Spoofing을 통해 접속할 수 있도록 할 것이다. -> 실습 환경 - Win.. 2018. 1. 31.
DNS Spoofing * DNS Soofing-> 원리- ARP Spoofing이 선행되어서 스니핑이 가능한 상태에서 Attacker는 클라이언트가 DNS 서버로 DNS Query를 보내는 패킷 을 볼 수 있는데, 이 Query에 대해서 Attacker가 위조된 DNS Response패킷을 보낸다. Attacker는 Victim과 같은 네트워크에 존재하므로 Attacker의 DNS Response가 DNS 서버의 Response보다 먼저 도착하므로 Victim은 Attacker의 DNS Response를 받아들이고 늦게 도착한 DNS 서버의 Response패킷은 버린다. [실습]- 일단 아래와 같은 토폴로지를 구성해준다.- Attacker는 Victim이 www.google.com으로 접속하면 Attacker자신의 Web S.. 2018. 1. 30.
Buffer Overflow-2 [소스코드 1]- Buffer Overflow공격을 진행하기 전에 우선 아래의 소스코드를 분석해본다.- Callee인 Func함수에서의 스택 구조는 아래와 같다. 0012FB68 BUF[4] 공간 => Test 0012FB6C EBP => sta 0012FB70 RET => ck B 0012FB74 uffe 0012FB78 r Ov 0012FB7C er F 0012FB80 low 0012FB84 0000 0012FB88 0000 ... ...- memcpy함수를 실행하면 EBP는 물론 RET까지 attack배열의 문자열로 덮어 버린다. 즉, memcpy함수는 Buffer Overflow에 취약한 함수임을 알 수 있다. [소스코드 2]- 그렇다면 RET값을 임의의 값으로 변경할 수 있지 않을까? 라는 의문.. 2018. 1. 29.
일본 암호화폐 거래소 코인체크 해킹 사고로 580억 엔 도난 http://m.boannews.com/html/detail.html?idx=66404​ 2018. 1. 28.
Buffer Overflow-1 - 실습은 RedHat에서 진행한다.- 2편으로 넘어가기 전에 공격이 어떤식으로 진행되는지 간단하게 살펴본다. 자세한건 2편부터 소개한다. [실습 1]- 우선 아래와 같은 코드를 bof.c라는 이름으로 작성하여 분석해본다. - 작성한 bof.c파일을 컴파일해준다. (gdb를 사용할 것이기 때문에 꼭 -g옵션을 넣어줘야 한다.) - gdb를 실행한다. (-q 옵션은 gdb를 처음에 실행할때 나오는 문구를 보여주지 않는 옵션이다.) - 브레이크 포인트를 걸기 전에 소스 코드를 한번 확인한다. - strcpy함수가 6번째 줄에 위치해 있으므로 6에 브레이크 포인트를 걸어준다. - AAA인자를 넘겨 실행한다. - argv[1]에 넘겨준 AAA가 잘 들어갔는지 확인한다. - buffer을 확인해보니 아직 strc.. 2018. 1. 27.
RET값 변조 * 문제)-> 다음 코드에서 RET 값을 적절히 변경하여 첫 번째 printf함수가 아닌 다음 printf함수가 수행되도록 수정해본다. * cdecl 함수호출 규약에서의 풀이- 일단 아래와 같이 코드를 바꿔주면 문제를 해결할 수 있다. - 우선 main함수에서 0040101C가 Func함수, 00401029가 첫 번째 printf함수, 00401036이 두 번째 printf함수라는 것을 확인한다.- 첫 번째 함수를 건너 뛰고 두 번째 함수를 실행시켜야 하기 때문에 RET값을 첫 번째 printf함수를 실행하고 난 뒤의 주소로 바꾸어 줘야 한다. - 포인터 연산으로 RET값을 바꾸기 전에는 아래와 같이 RET값이 정상적으로 들어가져 있다. - 포인터 연산을 한 뒤에는 두 번째 함수를 실행하기 바로 전의 주.. 2018. 1. 27.
SYN Flooding * SYN Flooding-> 원리- 3way handshake취약점을 이용하여 Backlog Queue가 초과하도록 만드는 공격이다. 1. Attacker가 SYN 패킷을 보낸 후 SYN+ACK 패킷이 돌아와도 ACK 패킷을 보내지 않아 Victim이 SYN Received 상태로 ACK 패킷을 계속 기다리는 상태로 만든다. (Backlog에 빠지도록 만든다.)2. 이런식으로 계속 SYN 패킷을 보내어 Victim의 Backlog Queue를 초과하도록 만든다. -> 대응책1. Backlog Queue크기를 늘려준다. 2. System 보안 패치를 한다.3. SYN Cookie를 이용한다.4. IDS, IPS에서 정형화된 SYN Flooding 패킷을 탐지한다. -> SYN Cookie- 클라이언트로 .. 2018. 1. 26.
Ping of Death * Ping of Death-> 원리- ICMP Echo Request 패킷의 크기를 정상 크기보다 아주 크게 만들어 공격 네트워크에 도달하는 동안 아주 작은 조각으로 쪼개져 Victim이 쪼개진 조각을 모두 처리하게 하여 부하가 걸리도록 하는 공격이다. -> 대응책1. 반복적으로 들어오는 일정한 수 이상의 ICMP 패킷을 무시하도록 설정한다. (대부분의 시스템에서 이미 설정이 되어있다.)2. System 보안 패치를 한다. [실습]- 실습을 진행하기 전 다음과 같은 토폴로지를 구성한다. - R2에서 MTU를 500으로 설정해준다. - R1에서 R3로 패킷 size를 1000으로 설정하여 ping을 보낸다.- R2에서 MTU을 500으로 설정했으므로 패킷이 쪼개져 도달할 것이다. - 실제로 쪼개져 도달하.. 2018. 1. 26.