2025/02/10 3

00_angr_find

대상 프로그램 분석password를 입력 받아서 complex_function()이랗는 함수를 통해 반환된 문자열을 "ILIUFVJF"와 비교하여 일치할 경우, "Good Job"을 출력한다. 따라서 "Good Job"을 출력하는 입력값을 찾는 것이 목표이다. 솔루션import angrimport sysdef main(argv): # Create an Angr project. # If you want to be able to point to the binary from the command line, you can # use argv[1] as the parameter. Then, you can run the script from the command # line as follows: # pyt..

Security & Hacking 2025.02.10

angr 핵심 개념

[1]  Projectangr로 분석할때 사용하는 object는 대부분 project object에 의존하기 때문에 만들어줘야한다. [2] Loadingbinary file을 va space 표현으로 바꿔야하는데 그걸 하는 녀석이 CLE이고, 로더이다. 해당 cle 객체(proj.laoder)로 va space에 대한 질의를 수행할 수 있다.[3]  The factoryangr에 많은 클래스가 존재하는데, 대부분의 클래스가 project가 초기화되어야한다. 그래서, 그냥 proejct.factory를 제공하고 그걸로 클래스 객체를 생성하든 하면된다.3.1) Blocksproject.factory.bloc()으로 basic block을 얻을 수 있다.  그리고, agnr는 basic block단위로 분석을..

Security & Hacking 2025.02.10

SSL Stripping

SSL StrippingSSL Stripping 이란 HTTPS 를 HTTP 로 downgrade시키는 공격 기법이다.장점은 브라우저에서 인증서 에러를 표시하지 않아 피해자는 실제 공격이 진행되고 있는지 모른다.SSL Stripping을 수행하면 평문 통신을 볼 수 있어서 개인정보들을 탈취할 수 있다.  동작 원리동작 원리는 mitm(e.g,. proxy, arp poisoning) 이 선행되어야한다. (1) mitm된 상황에서,(2) 공격자는 중간에서 https redirect 응답을 차단하고,(3) http로 downgrade 시켜서 클라이언트에게 응답을 준다. 이렇게 되면, 브라우저는 그냥 실제 원하는 서버와 잘 통신하고 있다고 생각한다.비록 실제 구조는 아래와 같지만 말이다. victim --(h..

Security & Hacking 2025.02.10