DVWA의 Medium 단계에서는 통하던 파이프, & 공격이 High 단계에서는 통하지 않는다. 소스코드를 확인해 보자. 그런데 위의 소스 코드를 보면 개발자가 약간의 실수를 했다는 것을 확인할 수 있다. 파이프를 보면 '| ' 공백 하나가 들어가 있다. 이렇게 되면 파이프만 넣고 명령어를 실행하면 그 부분은 그대로 실행이 된다.
DVWA Security를 Medium으로 설정하고 Command Injection을 실습해 보자. 먼저, medium 단계의 소스 코드를 확인해 보면 윈도우의 '&&', 리눅스의 ';'를 지우는 구문이 들어 있다. 위의 코드로 인해 예를 들어 ping -c 4; id 의 공격이 ping -c 4 id (세미콜론이 없어짐)으로 시스템이 받아들이고 id 명령은 실행 되지 않는다. 하지만 세미 콜론만 막아서는 충분하지 않다. 세미 콜론 이외에도 다른 특별한 의미를 가지는 문자들이 있다. 파이프(|)나 '&' 같은 것들이다. 세미 콜론 대신 파이프로 id를 확인해 보자. 파이프는 앞 명령의 결과를 뒤 명령어의 입력으로 넘겨 줄 때 사용하는 특수 문자인데 보다시피 뒤의 명령어(id)가 실행 된다. 이번에는 '&..
DVWA의 Command Injection으로 접속 목록에서 localhost로 ping을 보낸다. 소스코드를 살펴보면 $target이라는 변수는 ip주소를 받고 있음을 알 수 있다. 이렇게 시스템 명령을 내리는 것은 터미널에서 명령을 내리는 것과 동일하다고 볼 수 있으므로 터미널에다가 ping명령어를 실행해보자. 리눅스에서는 세미콜론을 이용해서 뒤의 명령어를 여러 개를 실행할 수 있다. ping명령뒤에 세미콜론을 붙이고 ls 명령을 실행해 보자. 사실 우리의 관심은 뒤에 실행할 명령에만 있기 때문에 ping에다가 ip를 주지 않고 ls만을 입력할 수 있다. 이제 dvwa로 돌아가서 ls를 입력해 보자. 이번에는 ;cat /etc/passwd 명령으로 시스템 사용자의 리스트를 알아내보자.
웹을 통해 시스템명령어(커맨드)를 실행하는 공격으로 어떤 웹 사이트가 내부에서 시스템 명령어를 실행하는 경우, 만약 사용자가 입력한 값을 올바른지 검사하지 않고 시스템 명령어의 일부분으로 전달하면 해커는 이 값을 조작하여 마음대로 다른 시스템 명령어를 실행 할 수 있다. 해커가 정상적인 웹페이지에 접속했다고 가정. 이 웹페이지는 서버에서 ping명령어를 실행하고 그 결과를 알려주는 페이지이다. ping 명령어는 ip주소를 가진 어떤 시스템이 현재 동작하고 있는지 확인할 때 사용하는 명령어이다. 이때 해커는 ip주소 뒤에 세미콜론(;)을 입력하고 다른 시스템 명령어를 추가로 전송한다. cat /etc/passwd는 리눅스의 사용자 목록을 확인할 때 사용하는 명령어이다. 만일 웹 application이 해커..
Brute force 공격 이란 사용자의 패스워드를 알아내기 위한 공격이다. 알파벳 순 가장 단순한 방법으로 사용자가 직접 알파벳, 숫자 순으로 차례대로 대입 하는 방법 딕셔너리 공격 사람들이 자주 사용하는 패스워드 위주로 입력하는 방법으로 마치 패스워드로 이루어진 사전을 이용하는 것처럼 공격하여 붙여진 이름 이러한 Brute force 공격 작업을 도와주는 프로그램들이 있는데 우리는 Burp Suite의 intruder 기능을 이용해 보자. 우선 Burp Suite의 Proxy 탭에서 Intercept 기능이 꺼져있는지 확인 한다. 켜져있다면 꺼준다. 다음으로 DVWA에서 Username : admin, Password : aaaa를 입력해 본다. Burp Suite의 Proxy -> HTTP hist..
버그바운티란 보안 취약점을 발견하고 보고하면 이에 대한 보상을 해주는 제도를 말한다. 구글, 페이스북, 마이크로소프트 등 유명한 외국 IT 기업들이 운영하고 있는데 버그바운티 보상 금액은 500$에서 2만$ 까지 이른다. 액수는 발견한 보안 취약점이 심각한 것일수록 많은 금액이 지급 된다. 주목할 점은 이들이 모두 자사의 웹 사이트들에 대한 보안 취약점을 포함하고 있다는 것이다. 예를 들어, 구글에는 google.com, youtube.com, blogger.com 등의 웹 사이트가 버그 바운티 제도에 대상이 되고 있고 페이스북의 경우는 facebook.com, instagram.com, oculus.com과 그 이외의 다른 페이스북 관련 사이트들이 모두 버그 바운티의 대상이 되고 있다. 최근에는 버그 ..
· 웹이 일상인 시대에 살고 있다. 웹은 우리의 일상 생활이 되었다. 웹이 처음 세상에 나온 이후로 웹은 계속해서 발전해 왔다. 웹 사이트에 접속해서 뉴스와 동영상을 보고 모르는 것이 있으면 웹에서 바로 검색을 한다. 이제는 클라우드 시대가 되어 각종 문서의 편집과 저장 또한 웹에다가 한다. · 모바일앱도 웹과 통신한다. 웹 이후 새로운 모바일 시대가 되었는데 거의 모든 모바일 앱은 사실 웹 서버와 통신을 하고 있다. 사용자 인터페이스는 모바일 앱으로 제공하고 각종 데이터를 저장하거나 가져오기 위해서는 웹 서버와 통신을 하게 된다. · 웹은 방화벽에 대해서 항상 열려 있다. 기업 환경에서 웹 사이트를 서비스 하기 위해서는 웹이 사용하는 네트워크 포트를 방화벽에서 열어 주어야만 한다. 그렇다 보니 모의 해..
특정 기업의 네트워크에 침투하여 중요한 정보를 가져 오는 시나리오. 특정 기업을 구글이라고 가정해보자. 1. 정찰(reconnaissance) 첫 번째 단계는 정찰을 수행하는 것이다. 구글에 대한 각종 정보를 수집하는 단계이다. 정찰을 통해 구글이 어떤 서비스를 제공 하는지, 웹 서버의 ip 주소는 무엇인지 등을 알아 낸다. 2. 스캐닝 및 취약점 분석(scanning and enumeration) 두 번째 단계는 스캐닝을 하고 취약점을 분석하는 단계로 서버의 운영체제가 무엇인지, 웹 서버 프로그램의 버전이 무엇인지 등을 알아내고 각 버전 별로 어떤 취약점이 있는지 분석한다. 3. 침투(gaining access) 이전 단계에서 찾은 취약점을 공격하여 시스템으로 침투하는 단계이다. 4. 권한상승(priv..
칼리 리눅스를 다운받고 처음 웹 브라우저를 열어보면 위와 같이 한글과 관련된 웹 사이트 들은 화면이 깨져서 나온다. 다음과 같은 순서로 한글깨짐 현상을 해결 할 수 있다. 1. apt-get install -y fonts-nanum 명령으로 한글 폰트 패키지를 설치한다. 2. fc-cache -f -v 명령으로 폰트 파일 캐시를 갱신한다. 3. 화면 왼쪽 Show Applications 버튼을 누르고 Settings -> Region & Language 클릭 4. Lauguage 항목에 들어가서 제일 밑에 부분을 보면 한국어로 설정 할 수 있다. 한국어를 선택한 후, 바뀐 사항을 적용하려면 다시 시작해야 하므로 다시 시작하도록 한다. 리눅스를 다시 시작한 후 브라우저를 띄어보면 한글이 정상적으로 출력되는..
칼리 리눅스 한글 입력 설정 방법 1. 한글 입력기인 나비를 설치한다. 터미널을 열고 apt-get install -y nabi 명령 실행 2. 입력기 설정을 위한 im-config 패키지 설치 3. 터미널에서 im-config를 실행한다. 모든 설정이 끝나면 계정을 로그아웃 한 후, 다시 로그인을 한다. 이제 부터는 한글과 영어를 모두 사용할 수 있다. 한/영 전환은 shift + space키를 사용한다.
x86 어셈블리 코드를 작성할 때 AT&T 문법이나 intel 문법을 사용하는데 at&t 문법은 레지스터 앞에 %와 $가 붙는다. eax 레지스터를 나타낸다고 하면 AT&T는 %eax를, intel은 eax로 표현한다. 오퍼랜드 순서 또한 차이가 있다. eax에서 ebx로의 데이터 복사를 예로 들면 AT&T => mov %eax, %ebx (source가 왼쪽, des가 오른쪽에 위치한다) intel => mov ebx, eax (AT&T와 반대이다) gdb를 사용할 때 AT&T 문법을 intel문법으로 바꾸고 싶다면 아래와 같은 명령어를 입력하면 된다.
모든 패킷은 2계층 정보인 MAC 주소와 3계층 정보인 IP 주소를 가지고 있다. 패킷이 네트워크를 돌아다닐 때, 각 PC는 패킷에 기록된 MAC 주소와 IP 주소를 보고 자신에게 전달된 것인지 판단한다. 정상적인 경우 자신의 네트워크 카드로 흘러 들어온 패킷에 기록된 MAC 주소와 IP 주소가 PC와 일치하면 패킷을 분석하여 운영체제에 해당 패킷을 넘겨주고, 다르면 버린다. 프러미스큐어스 모드는 네트워크 카드의 동작방식 모드 중 하나로 자신에게 온 패킷이 아니더라도 패킷을 무조건 수용하는 모드이다. 윈도우에서는 프러미스큐어스 모드가 존재하지 않지만(드라이버 설치 필요) 리눅스에선 랜카드에 대한 모드 설정이 가능하다. ifconfig 명령으로 현재 네트워크 카드를 확인한다. 'ifconfig ens33 ..