| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- Slab free list poisoning
- mips
- linux ring 권한 구조
- exit handler overwrite
- memory
- physmap
- hardware hakcing
- Pwnable
- e
- 익스플로잇
- 커널
- tl mr 100
- 라우터
- fini array
- mr 100
- openwrt
- Router
- UART
- SMM
- System Management Mode
- 공유기
- Cross-cache attack
- kernel exploit
- tp link
- protection ring
- Kernel
- exploit
- ROP
- Today
- Total
목록전체 글 (25)
haehet
이번 글에서는 예전 RF 정리에 이어서 무선 통신에 대해 조금 더 공부해보겠다. 본격적으로 LTE나 다른 무선 통신 표준을 공부하기 전에 먼저 가장 익숙한 무선 네트워크인 Wi-Fi의 기본 구조를 정리해보려고 한다. (아래 내용 중 틀린 부분이 있을 수 있으며, 찾으신 경우 댓글로 알려주세요!) 1. Wi-Fi란 사람들이 집, 사무실, 동네 카페 등에서 흔히 접하는 일반적인 무선 네트워크를 Wi-Fi라고 부른다. Wi-Fi 네트워크는 여러 장치를 중간 정도의 거리에서 서로 연결하며 일반적으로 최대 약 100m 정도까지 통신할 수 있다. Wi-Fi는 IEEE 802.11 표준을 사용하고 2.4GHz, 5GHz, 6GHz의 비면허 주파수 대역에서 동작한다. 저번 글에서 정리했던 RF가 무선 신호를 공기 중으..
최근 LTE 관련 디바이스의 구조와 공격 표면을 공부해보고 싶어서 TP-Link TL-MR100을 분석 대상으로 고르게 되었다.이 공유기를 고른 이유는 LTE 라우터 중에서 가격이 비교적 저렴하고 구하기 쉬워 보였기 때문이다.하지만 구하기 쉬울 것이라는 생각은 오산이었다... 생각보다 인기 제품이라 재고가 없었고 중간에는 이 제품을 사려다 사기도 당했다. 분명 TL-MR100을 샀는데 TP-Link TL-MR100 Outdoor 제품이 도착했다. (3배 가격 눈탱이는 덤 하ㅏㅏ) 어쨌거나 우여곡절 끝에 겨우 용산에서 재고를 구할 수 있었다.따라서 이번 글에서는 이 LTE 라우터의 하드웨어 구성, UART 인터페이스, LTE 모뎀, 내부 네트워크 구조를 중심으로 분석해보겠다. 1. TP-Link TL-MR..
이번 글에서는 TP-Link Archer C50에 openwrt를 설치해보는 과정을 서술하겠다.1. openwrt란? OpenWrt(Open Wireless Router)는 공유기, 라우터, 임베디드 네트워크 장비 등에 설치할 수 있는 오픈소스 기반의 라우터 운영체제이다. 일반적인 공유기는 제조사가 제공하는 펌웨어를 그대로 사용해야 하지만 OpenWrt를 설치하면 사용자가 라우터 내부 시스템을 직접 확인하고 수정할 수 있다. 2. openwrt를 사용하는 이유 내가 갑자기 OpenWrt를 라우터에 올리려는 이유는 공유기 내부에 직접 접속해서 네트워크 구현을 분석해보기 위해서이다. 원래는 TP-Link 기본 펌웨어 상태에서 UART를 통해 라우터 내부에 접근하고 부팅 로그와 내부 프로세스를 확인하면서 ..
최근 라우터 분석을 진행하면서 단순히 펌웨어를 풀고 바이너리를 정적 분석하는 것만으로는 한계가 있다는 생각이 들었다. (특히 하드웨어 의존적인 기능이 존재하는 LTE 라우터 등..) 따라서 이번 글에서는 동적 분석을 하기 위해 UART가 무엇인지부터 라우터 기판에서 UART 핀을 찾는 방법, 멀티미터로 핀을 구분하는 과정, 핀헤더 납땜, USB-UART 어댑터 연결, 그리고 serial console을 통해 부팅 로그를 확인하는 전체 흐름을 정리해보겠다. (실습은 지인에게 받은 TP link Archer C50으로 진행한다.) 1. 직렬 통신과 병렬 통신 장치끼리 데이터를 주고받으려면 서로 같은 통신 방식을 사용해야 한다. 이때 데이터를 전송하는 방식은 크게 병렬 통신(Parallel)과 직렬 통신(..
최근에 무선통신 보안등에 관심이 생겨서 무선 통신을 공부해보고자 한다. 사실 LTE 라우터가 왔으면 직접 모뎀을 제어하는 바이너리(mobile 어쩌구)을 디버깅하면서 공부하려고 했는데... 라우터를 사다가 사기를 당해서 먼저 무선통신의 기초부터 정리를하겠다. (라우터 재고가 떨어져서 3주 뒤에나 받을듯..하ㅏㅏㅏㅏ)1. 무선통신이란? 우리가 기존에 사용하는 네트워크는 유선을 통해 통신한다. 유선 통신은 빠른 통신과 신뢰성, 보안성을 제공하지만 이동성을 제한한다는 단점이 있다. 무선통신은 이러한 단점을 없애고 별도의 케이블이 필요없는(Wire less)한 통신을 제공한다. 무선 통신은 무선 주파수 신호(Radio Frequency signals, 앞으로 RF로 통칭)을 사용하여 사용자로 하여금 기동성과..
최근 임베디드 장비를 분석하던 중 발견한 취약점을 실제로 검증하고 공략하기 위해서는 해당 제품이 사용하는 아키텍처에 대한 이해가 필요하다는 것을 느꼈다. 특히 공유기와 같은 IoT 장비에서는 ARM뿐만 아니라 MIPS 기반 바이너리도 자주 등장한다. MIPS는 x86과는 다른 레지스터 구조, 함수 호출 규약, 스택 프레임, 분기 방식 등을 가지고 있다. 따라서 기존에 x86-64 환경에서 익스플로잇을 작성하던 방식만으로는 MIPS 바이너리를 분석하거나 ROP 체인을 구성하기 어렵다. 이번 글에서는 MIPS Architecture의 기본적인 구조와 주요 명령어 호출 규약 스택 프레임의 특징을 정리하고 이를 바탕으로 MIPS 환경에서 BOF와 ROP를 어떤 관점으로 분석해야 하는지 살펴보려고 한다. 1. ..
매우 오랜만에 블로그 글을 쓰는 것 같다. 3개월 동안 중간고사랑 학업을 하느라 해킹이랑 컴퓨터 공부할 시간이 많이 없었다. 이번 글에서는 블로그 운영 방향과 앞으로의 계획 등에 정리해보겠다..1. 블로그 운영 계획 내가 블로그를 운영하는 가장 큰 이유는 지식의 장기적인 보관과 포트폴리오 정리이다. 공부하면서 알게 된 내용을 글로 정리하면 나중에 다시 복습하기도 좋고 내가 어떤 분야를 어떤 방식으로 공부해왔는지도 자연스럽게 남길 수 있다.다만 블로그를 작성하다 보니 모든 유형의 글을 하나의 플랫폼에 모아두는 것이 조금 불편하다는 생각이 들었다. 단순한 개념 정리, 공부 기록, 삽질 과정과 실제 보안 연구 결과, 취약점 분석, 프로젝트 성과는 글의 성격이 다르기 때문이다.따라서 앞으로 Tistory에는 내..
이번 글에서는 kernel exploit을 할 때 강력한 primitive를 얻을 수 있는 Dirty Pagetable에 대해서 정리해보겠다. 1. page table이란? 멀티레벨페이징을 공부했다면 알겠지만 page table은 CPU가 가상주소(VA)를 물리주소(PA)로 변환할 때 쓰는 테이블이다. CR3레지스터를 통해 확인 가능하다. (여기서는 따로 이론적인 내용을 길게 설명 안하겠다.)page table은 항상 미리 다 만들어져 있는 게 아니라 Linux는 대부분의 매핑을 지연(lazy) 생성한다. 즉 실제 페이지테이블 엔트리는 첫 접근(page fault)가 발생하면서 할당되는 경우가 많다. Dirty Pagetable 기법은 이를 이용한다. 2. Dirty pagetableDirty page..
