Brute Forcing (무작위 대입공격)은 정말 구닥다리가 되었나?

<Caution> : 본 포스팅은 연구 목적으로 작성되었으며, 허가 받지 않은 대상에 대한 공격 테스트를 절대 금합니다. 악의적인 목적으로 이용할 시 발생하는 모든 법적 책임은 자신에게 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.    얼마전 iCloud 해킹으로 인해 헐리우드 스타들의 누드 사진이 노출되는 소동이 있었다. 사실 이것을 애플이 “해킹 당한것”으로 봐야할지 말아야할지는 의견이 분분한 것 같다 (개인적으로는 애플이 “해킹” 당했다는 의견에 동의하는 편이다.) 많은 이들이 Brute Forcing Attack을 이제는 구닥다리 공격법이라고 이야기하지만, 여러 측면으로 접근해보면, SQL 인젝션만큼의 파급력을 갖고 있다고 생각한다. 이번 포스팅에서는 모의해킹 경험을 바탕으로 다양한 BruteForcing 시나리오를 다룰 예정이다.   – Case 1 : 아무런 제약이 없는 조건에서의 공격법 [ 논란이 된 Find My iPhone 접속 화면 – 어떠한 보안 장치도 없었던 상황 ] BruteForcing 공격을 방어하기 위해 일반적으로 웹 서비스는 다음과 같은 보안장치를 한다. 1. ID / 비밀번호 입력 횟수 제한 (본인 경험상 가장 많은 방식이라 생각됨) 2. ID / 패스워드 중 어떤 항목이 틀렸는지 불명확한 용어를 표시 (Ex. “아이디 또는 패스워드가 정확하지 않습니다”) 3. 일정 횟수 이상 입력이 잘못된 경우 해당 계정 잠금(Lock) 어이없게도 이번 iCloud 계정이 털린 FindMyiPhone 웹 사이트의경우 위 세가지 보안조치 사항 중 단 하나도 제대로 설정되어 있지 않았다. 다시 말해 공격자에게는 매우 “땡큐”스러운 상황이었던 것이다. 첨에는 이 기사를 보고 ‘애플 내부에 스파이라도 있는건가?’는

Continue Reading

예제를 통해 알아보는 Use-After-Free 발생 원인

Use After Free 취약점은 IE나 Chrome 과 같은 브라우저 버그 헌팅시 자주 언급되곤 한다. 구글링을 통해 검색해본 결과 한글어 검색 결과는 대부분 IE취약점과 관련된 내용이었으며, 영어 검색 결과 역시 IE관련 내용이 많아, 대부분의 예제가 자바스크립트로 작성되어 있다. 불행하게도 자바스크립트 까막눈인지라, 기존에 공개되어 있는 코드 분석은 쉽지 않을 것 같아 C언어 자료구조를 공부하면서 정리한 Use-After-Free 예제를 소개하고자 한다. 예제 코드 설명 코드 수준은 매우 간단하므로, C코드를 읽을 수 있다면 이해하는데 큰 어려움은 없을 것이다. 먼저 예제 코드는 아래와 같다. [crayon-5a89de5bf1116819749001/] 코드 흐름은 다음과 같다. [crayon-5a89de5bf1124469791424/] 일단 44 라인까지 실행하면 아래와 같이 정상적으로 값이 출력되는 것을 볼 수 있다. Struct내 선언되어 있는 각각의 포인터가 정상적인 값을 가리키고 있는 것으로 보인다. 디버깅을 통해 힙메모리 주소를 좀 더 자세하게 들여다 보도록 하자. 44번 라인까지 실행된 상태에서의 힙 메모리 구조는 아래와 같다. 구조체 내 각각의 포인터 (m1.m_pAddr, m1.m_pName, m1.m_pTelno) 가 힙 메모리 영역의 “AAAA” / “BBBB” / “CCCC”를 가리키고 있으며 정상적으로 스트링이 카피 되어있다.   페이로드에 따른 힙 메모리 재사용 문제 이제 문제가 되는 다음 코드 영역을 살펴보도록 하자. [crayon-5a89de5bf112f258315271/] 구조체에서의 두번째 포인터 변수 (m1.m_pAddr / “BBBB” 값이 저장)가 가리키고 있는 힙 메모리 영역을 해제 (free) 시킨 후, m1.m_temp 포인터 변수에 힙 메모리 영역을 새로 할당하였다. 사용자로 부터 새로운 값을 입력받아 (gets()) 이곳에 Strcpy하면 힙

Continue Reading

해커스쿨 F.T.Z 로컬환경 구축하기

해커스쿨 (www.hackerschool.org) 에서 오래전부터 운영해온 F.T.Z 서버에 접속이 되질 않아서 구글링을 해보았더니 역시나 로컬환경을 구축할 수 있는 방법이 있었다. 일단 현재 구글링에서 찾을 수 있는 대부분의 이미지 파일 링크가 깨져있으므로 많은 사람들이 이용할 수 있도록 나의 구글드라이브에 공유해두고자 한다. [구글 드라이브에서 F.T.Z 이미지 다운로드 하기] 다운로드가 완료되면 적당한 폴더에 압축을 해제한 다음 VM Ware에서 해당 이미지 파일을 로드한다 Red Hat 기반의 리눅스이며 부팅하면 아래와 같이 root로 로그인 한다. ID : root /Password :  hackerschool 로그인 후 ifconfig 명령을 통해 가상머신에 셋팅된 IP 어드레스를 확인한다. 이제 Xshell 혹은 Putty 프로그램을 통해 ssh로 접속해보자. F.T.Z는 레벨별로 ID/PW가 동일하다. 일단 Level1을 풀기 위해서 level1/level1 계정으로 접속한다. 일단 홈디렉토리에서 hint 파일이 눈에 띈다. vi를 통해 열어보면… 영어 빼고 한글은 전부 깨져서 보이는 바람에 힌트를 제대로 확인할 수 없다. export LANG=EUC-KR 명령을 통해 인코딩 방식을 수정해 준 후 다시 hint 파일을 열어본다. 이제 한글이 깨지지 않고 제대로 출력 되는 것을 확인했다. level1 문제는 쉽게 풀 수 있는데 힌트는 “level2 권한” 그리고 “setuid” 마지막으로 “찾는다” 이 세가지 요소를 결합한 명령어 한 줄 이면 풀 수 있었다. 이미 오래전 부터 공개된 CTF문제들이므로 인터넷상에 공개된 Write-up문서도 많이 있다. 일단은 해결방법을 보지 않고 하나씩 풀어보도록 하자.  

Continue Reading

PeachFuzzer를 활용한 Remote BoF 공격

이번 포스팅에서는 Peach Fuzzer 3 퍼징도구를 활용하여 원격 서버에 BoF 공격을 하는 과정을 소개한다. 참조 문헌 : http://blog.techorganic.com/2014/05/14/from-fuzzing-to-0-day/ 원격 서버에 대한 BoF 공격도 로컬 프로그램과 크게 다르지 않으며. 다만 공격 Payload를 네트워크 패킷을 통해 전달한다는 차이점만 염두해두면 되겠다. 본 포스팅은 BoF에 대한 기초 개념만 있다면 쉽게 따라할 수 있는 수준이라 생각한다.   필요한 도구 및 소프트웨어 1. Immunity Debugger : 서버측 프로그램 디버깅을 위해 필요하다. OllyDbg를 사용해도 무방함 2. Easy File Sharing Web Server : 공격대상 S/W.  HTTP(S) 프로토콜을 통해 로컬파일을 공유할 수 있는 프로그램이다. 3. Peach Fuzzer 3 : 패킷 퍼징에 사용될 도구이다. 홈페이지에서 Community Edition을 다운받으면 된다. 4. SocketSniff : 각 프로세스 별 패킷을 캡쳐하여 분석할 수 있는 도구, NirSoft 에서 다운받는다. 5. 기타 : Sublime Text 2, Python 2.7 을 사용하였다. ※ 공격 환경 : Windows XP ServicePack3 (x86) / DEP OFF /   기본 어플리케이션 분석 Easy File Sharing Web Server (이하, EFSWS) 어플리케이션에 대해 먼저 간단히 알아보자. EFSWS는 80 / 443 포트를 통해 로컬 PC 드라이브를 공유할 수 있는 프로그램이다. 다시 말해 웹브라우저를 통해 서버 내 로컬 파일을 다운로드 하거나 업로드 할 수 있도록 환경을 만들어주는 프로그램이다. 프로그램을 실행하면 아래와 같은 팝업 윈도우가 표시된다.   매번 프로그램을 실행할 때 마다 이 메시지가 뜨게 되는데 (정식 등록을

Continue Reading

쇼단(shodan) 을 이용한 모의해킹 (Pen-testing)

  2014년 보안 분야에서 화두가 되고 있는 키워드 중 하나가 바로 사물 인터넷 (Internet of Things – IoT)이 아닐까 싶다. 기존에 컴퓨터(혹은 스마트폰)에 국한되어 있던 ‘네트워킹’의 영역이 냉장고, 청소기, 비데(?)와 같은 일반 사물로 확장되면서, 이에 대한 보안의 중요성 역시 커지고 있다. 이 포스팅은 사물 인터넷과 관련된 검색 엔진 서비스 ‘쇼단(shodan)’에 대해 알아보고 나아가 쇼단 API를 활용한 모의해킹 활용 방법을 다룰 것이다. ※ 주의 : 본 포스팅의 내용을 악용할 시 법적 문제를 야기할 수 있으므로, 반드시 법적 테두리 안에서 허용되는 경우에만 사용하시기 바랍니다.   쇼단(Shodan)이란 무엇인가? 쇼단을 정의하자면 “검색 엔진”에 가깝다고 할 수 있다. 다만 일반적인 Search Engine처럼 웹사이트의 정보를 가져오는 것이 아니라 라우터, 스위치, FTP, 특정 웹 서버(Apache, IIS 등)에 대한 정보를 수집하고 그 결과를 보여준다. 쇼단의 대략적인 운영 현황은 아래와 같다 (2013년 자체 조사 결과이며 현재와 다를 수 있음) 서버 위치 : 샌프란시스코 (클라우드 서비스 이용) 유료 회원 : 9,000명 이상 수집 대상 : 서버, 네트워크 장비, 관리자용 서비스, 산업용 제어시스템(SCADA), 인터넷 전화, 화상 기기(CCTV) 등 기타 : 스크립트 언어용 API를 제공함 (유료 결재 필요)   쇼단 둘러 보기 웹사이트 주소는 http://shodanhq.com 이며, 접속하면 아래와 같은 화면을 볼 수 있다. [ Expose Online Deivces ] 문구 아래, 이 사이트의 특징을 말해주는 단어들이 보인다. 웹캠, 라우터, 발전소, 아이폰, Wind Turbines(아마도

Continue Reading

Site Footer

Sliding Sidebar

About Me

About Me

June Park