
들어가며 최근에 리액트도 뚫리고, 쿠팡 개인정보도 유출됐다고 하고 보안 관련 이슈가 많다. 해킹/보안 쪽은 아예 모르지만 그래도 개발자인데 어떤 식으로 해킹을 하고 어떻게 막을 수 있는지 기초 정도는 알아야 할 거 같아서 해킹 기초 강의를 수강하며 배운 것을 정리해봄 네트워크 배경지식 클라이언트 라우터 인터넷 네트워크의 기본 구조는 클라이언트 ...

SSL 스트립(SSL Stripping) 앞서 보았던 것처럼 HTTP는 암호화가 없이 평문으로 데이터를 전송한다. 그래서 스니핑이 가능했다. 하지만 HTTPS는 평문을 암호문으로 감싸 전송한다. 즉, 패킷을 캡처해도 바이트는 알 수 있지만 내용은 복호화할 수 없다. 그래서 HTTPS를 HTTP로 다운그레이드하여 스니핑하는 방식이 한때 가능하기도 했다....

DNS 스푸핑 이제 DNS 스푸핑을 배워보자. DNS는 google.com 같은 도메인 이름을 서버 IP로 바꿔주는 도메인 네임 서버다. 사용자가 도메인을 입력하면 DNS에 질의하고, DNS가 IP를 주면 브라우저는 그 IP에서 사이트를 로드하는 구조다. 여기서, DNS 스푸핑은 DNS 요청이 먼저 공격자 장비를 지나가서, 공격자가 원래 IP 대신 ...

ARP 스푸핑 탐지 여태까지 공격에 관련된 얘기를 했으니 이제 탐지를 해보자. 수동 확인 가장 처음 접근할 수 있는 방법은 수동으로 MAC 주소를 확인하는 것이다. 를 통해 정상 라우터 MAC 확인해보는 것! 하지만 이렇게 수동으로 매번 체크하는 것은 굉장히 불편하다 그래서 도구를 사용해야 한다. 자동 탐지 도구 XRP 이렇게 평상시엔 문제가 없...

서버사이드 공격 개요 자, 이제 서버사이드 공격을 해보자. 대상이 일반 개인용 컴퓨터라고 하자. 나와 같은 네트워크가 아니며 단지 타켓 컴퓨터의 IP만 알고 있다. 하지만 대부분의 개인 컴퓨터는 라우터(NAT) 뒤에 숨었기 때문에 외부에서 직접 IP 접근이 불가하다. 그래서 그 IP를 통해 어떤 OS이고 어떤 프로그램이 설치됐고 살펴보려고 해도 컴퓨...

Client-side Attacks 클라 사이드 공격은 서버 사이드와 다르게, 사용자의 인터렉션이 필수적이다. 링크를 클릭하거나 파일을 실행하거나 하는 행위가 필요하다 또한, 사회공학적 해킹으로 NAT이나 라우터 뒤 숨겨진 PC도 접근이 가능도 가능하다. 서버사이드가 취약한 프로그램을 발견하는 것이 전제 조건이었다면 클라 사이드는 정보 수집과 사회공학이...

사회 공학적 공격 여태까지 예제들은 대부분 해피 케이스였다. 같은 네트워크인 상황에서 중간자가 쉽게 끼어들 수 있었고, 원하는 대로 행동을 만들어냈다 이번 예제는 그러한 제한 조건이 걸린 상황이다. 대상이 멀리 있고(원격) 같은 네트워크가 아니고 중간자가 끼어들 수 없을 때 이럴 때 사회공학 공격이 등장한다. 사회 공학 전략은 대상에 맞춘 전략이라...

LAN 밖에서 여태까지의 실습은 LAN에서 가정한 것이다. 내부망(집이나 회사LAN)에서는 사설 IP로 서로 바로 통신이 가능하지만, 인터넷(외부)에서는 라우터의 공인 IP만 보이기 때문에 외부에서 내부 장치로 들어오는 연결은 기본으로 막힌다. 공격자가 공인 IP로 연결을 시도해도 라우터가 어디로 포워딩할지 모르기 때문에 침투가 실패한다. 포트 포워딩...

사이트에 대한 정보 모으기 이제 드디어 웹 해킹에 대해 알아본다. 본격적인 실습에 앞서 개념만 정리하고 가자. 웹 사이트란 무엇인가? 웹 사이트란 쉽게 말해 서버가 설치된 웹 애플리케이션이다. 그렇다면 흔히 말하는 웹 서버와 웹 애플리케이션은 무엇이 다른가 웹 서버는 컴퓨터에 설치하는 프로그램이라고 할 수 있다. 보통 컴퓨터 안 특정 폴더를 웹 루트 ...

SQL Injection SQL Inejction이란 공격자가 웹 애플리케이션의 입력 필드에 악성 SQL 코드를 주입하여 데이터베이스를 조작할 수 있게 하는 보안 취약점이다. 웹앱의 동작을 생각해보면 웹앱과 DB는 결국 SQL로 대화한다. 즉, 반대로 SQL을 조작하면 웹앱을 조작할 수 있다는 것이다. 자, 그럼 SQLi의 접근을 살펴보자 1. 취약...

Broken Authentication Broken Authentication이란 인증이나 세션 관리가 제대로 이루어지지 않을 때 발생하는 취약점으로, 공격자가 다른 사용자의 계정에 무단 접근하거나 세션을 탈취할 수 있다. 세션이란 세션의 사전적 정의는 동일 사용자에 대한 일련의 요청을 연결하는 임시 식별자다. 쉽게 말해 서버로부터 동일한 사용자라고 ...