본문 바로가기

분류 전체보기

(113)
[Bomb Lab] Phase1 https://studyforall.tistory.com/98 [Bomb Lab]Bomb Lab이란? Bomb Lab은 컴퓨터 사이언스로 유명한 카네기 멜론 대학교에서 만든 실습 프로그램이다. 이 프로그램을 통해 디버거 사용법을 익히고 바이너리 분석을 연습해볼 수 있다. 폭탄을 터뜨리지 않고 안 studyforall.tistory.com 실습 환경에 대해서는 위의 게시물 하단에 적어놓았다. 본격적으로 phase1부터 시작해본다. 먼저 disassemble phase_1 명령어를 입력하여 phase_1 함수를 어셈블리 코드로 출력해보았다. 에 explode_bomb이 있다. 이 부분을 밟지 않고 phase_1 함수를 종료해야 폭탄을 해체할 수 있으므로 부터가 안전지대이다. 에서 je명령어가 으로 분기할 수..
[Bomb Lab]Bomb Lab이란? Bomb Lab은 컴퓨터 사이언스로 유명한 카네기 멜론 대학교에서 만든 실습 프로그램이다. 이 프로그램을 통해 디버거 사용법을 익히고 바이너리 분석을 연습해볼 수 있다. 폭탄을 터뜨리지 않고 안전하게 해체하는 컨셉으로, 총 6단계로 이루어져 있다. 각 단계에서 적절한 문자열을 입력하면 폭탄이 해체되고 다음 단계로 넘어간다. 적절한 문자열을 찾기 위해서는 디버거를 이용해 바이너리를 분석해야 한다. 아래 링크에서 프로그램을 다운받을 수 있다. http://csapp.cs.cmu.edu/3e/labs.html CS:APP3e, Bryant and O'Hallaron Lab Assignments This page contains a complete set of turnkey labs for the CS:APP3..
[드림핵 로드맵] System Hacking - Quiz: x86 Assembly 3 먼저 main함수의 코드를 보면 push rbp와 mov rbp, rsp는 스택 프레임을 생성하는 부분이므로 중요하게 생각하지 않아도 될 것 같고, 5행에서 write_n 함수를 호출하는 부분이 눈에 띈다. write_n 함수의 코드에서는 syscall 명령어에 주목해보자. 드림핵 로드맵에서 x64 syscall 테이블을 가져와봤다. rax, rdi, rsi, rdx에 값을 세팅해놓은 뒤 syscall 명령어를 실행하면 세팅한대로 시스템콜 요청이 이루어진다. rax, rdi, rsi, rdx이 어떻게 세팅되었는지 문제 코드에서 살펴보자. 1. write_n함수의 9행에서 mov rax, 0x1을 확인할 수 있다. rax에는 0x1이 세팅되어있고, 이는 write 시스템콜을 요청한다는 의미이다. 2. wr..
[드림핵 로드맵] System Hacking - Quiz: x86 Assembly 2 프로그램이 종료된 시점에 데이터가 어떻게 바뀌어 있을 지를 알아내야 하는 문제이다. end로 점프하면 프로그램이 종료된다고 한다. 어떤 조건에서 end로 점프하게 되는지 살펴보자. [code]의 6행을 보면 jg end 라는 코드를 확인할 수 있다. jg 명령어는 jump if greater라는 뜻으로, 직전에 비교한 두 피연산자 중 전자가 더 크면 피연산자로 주어진 주소로 jump하는 명령어이다. 그렇다면 직전에 있는 비교 명령어를 살펴봐야할 것 같다. 5행의 명령어는 cmp rcx, 0x19이다. rcx에 들어있는 값과 0x19를 비교한다. 결과적으로, rcx에 들어있는 값이 0x19보다 크면 end로 점프하고, 그때 프로그램이 종료된다는 것을 알 수 있다. 그리고 rcx의 값이 0x19보다 크지 ..
[VishwaCTF2024-misc] Who am I? 플래그 형식이 VishwaCTF{}라고 되어있기 때문에 디스코드에서 해당 형식을 검색해보았다. 이런 식으로 플래그를 찾으려는 시도를 방해하기 위해 참가자들이 가짜 플래그를 마구 올려놓았다. 운영자들도 의도한 바였는지 계속 하라는 메시지를 중간에 남겨놓았다. 진짜 재미있는 사람들이다. 이리저리 돌아다니다가 결국 플래그를 찾았다. 어디에서 찾았냐하면 저기 멤버 창에서 운영진들 프로필을 하나씩 열어보았다. 그중 한 사람이 ABOUT ME에 플래그 형식의 문자열을 적어놓은 걸보고 제출해봤는데 ACCEPT됐다! 풀고 나서 문제의 의도를 해석해보면 who am I 라는 문제의 이름을 보고 '어떤 사람'이 플래그를 갖고 있는지 찾아보라는 뜻임을 유추했어야하는 것 같다. 아직 나의 논리적인 문제 해석능력이 부족한 것 ..
[블루투스 취약점]BlueBorne 취약점과 공격실습 🌟BlueBorne 취약점 - BlueBorne 취약점은 2017에 발견된 블루투스의 대표적인 취약점 중 하나로, 다수의 CVE가 BlueBorne 취약점에 해당한다. - 블루투스가 활성화 되어있는 장치에 공격자가 페어링하지 않아도 장치를 제어할 수 있는 공격 형태이다. - (1)피해자 기기의 블루투스가 활성화되어있고, (2)가까운 위치에 있기만 하면 공격이 가능하다. - 발견 당시 안드로이드, iOS, 윈도우, 리눅스, 사물인터넷 기기 등 약 53억대 이상의 기기에 영향을 미칠 수 있음이 확인되었다. 🌟BlueBorne 공격실습 BlueBorne 취약점을 공격해볼 수 있는 코드를 제공하는 깃허브 오픈소스를 찾았다. https://github.com/mailinneberg/BlueBorne.git Git..
[블루투스 통신]virtualbox 환경에서 칼리 리눅스 블루투스 통신 🌟사용한 블루투스 어댑터 정보 제작사: 아이퀸 제품명: 블루투스 듀얼 무선 USB 동글 v5.0 모델명: YB-BT00050 지원 OS : Windows 7/Win8/Win8.1/Win10(32/64비트), 리눅스(베타 드라이버 지원) 🌟실습 환경 호스트: macOS Ventura 13.6.1 가상머신: virtualbox 게스트: kali linux 🌟실습 과정 1. 블루투스 어댑터 연결후 kali linux USB 필터에 추가 2. kali linux 부팅 3. 터미널에 hciconfig 입력하여 블루투스 장치 확인(ifconfig를 닮은 hciconfig는 블루투스 디바이스의 설정을 보거나 변경하는 데 사용하는 명령어다! Bluetooth 어댑터의 상태, MAC 주소, 이름 등의 정보를 확인할 수 ..
[오류 해결]virtualbox에서 usb를 인식하는 문제 호스트 : macOS 가상머신 : ubuntu linux 호스트PC의 USB 포트에 연결한 USB를 virtualbox에서 실행 중인 ubuntu linux에서 인식하도록 하는 것이 목표였다. 몇 시간동안 구글링과 챗GPT를 통해 수집한 정보들을 바탕으로 수많은 시도를 해보았지만 다 실패했다. 그런데 그 모든 정보에서 공통적으로 알려준 것이 있었다. virtualbox에서 USB 필터로 내가 인식시키고자 하는 USB를 등록하는 것이었다. 그렇게 해야 해당 USB를 호스트PC한테 빼앗기지 않고 가상머신이 인식하게 할 수 있다. 그 방법은 다음과 같다. 1. 가상머신(ubuntu linux) 선택 2. 설정 아이콘 > 포트 > USB로 들어가기 3. USB 컨트롤러를 USB 2.0 또는 3.0으로 선택(숫자..