본문 바로가기

정상을향해48

파이썬(Python)_변수 / 표현식 / 문장 출처 : https://www.py4e.com/lessons/memory 참조 : https://www.py4e.com/html3/02-variables Python Lecture2. Variables, expressions and statements 상수(Constants) 값이 변하지 않는 숫자, 문자, 문자열과 같은 고정값을 상수(constants) 라고 한다. 숫자 -> 상수 작은따옴표(') 혹은 큰따옴표(")로 표시된 문자열 -> 상수 >>> print(123) 123 >>> print(98.6) 98.6 >>> print('Hello World!') Hello World! 예약어(Reserved Words) 예약어(reserved words) 는 파이썬이 정한 의미로만 쓰이는 특별한 단어다. .. 2019. 2. 16.
스마트 퍼저의 혁명(The Smart Fuzzer Revolution) 출처 : https://blog.trailofbits.com/2017/02/16/the-smart-fuzzer-revolution/Trail of Bits 팀이 BSidesLisbon 에서 스마트 퍼징(smart fuzzing)에 대해 발표를 했다. 최근, CGC, AFL, libFuzzer 등이 개발되면서 취약점 자동 탐지 분야가 빠르게 성장하고 있다. 이러한 연구 분야가 어디에서 왔고, 현재의 위치는 어떠하고, 어떻게 발전할 지 간단하게 알아보자.Indroduction지난 2년(2015~2016) 동안 보안 테스트 자동화(automated security testing)은 빠르게 성장했다. AFL(American Fuzzy Lop) 은 사용하기 쉬운 실용적인 도구로 알려졌으며, DARPA Cyber .. 2019. 1. 17.
BNIL Part 2. Devirtualizing C++ with Binary Ninja 보호되어 있는 글 입니다. 2018. 10. 1.
BOLO: Reverse Engineering  -  Part 1 (Basic Programming Concepts) 출처 : https://medium.com/bugbountywriteup/bolo-reverse-engineering-part-1-basic-programming-concepts-f88b233c63b7 Preface 이 기사에서는 C++ 코드 및 어셈블리 코드의 스크린샷을 통해 설명을 진행한다. 이 기사 시리즈에서는 어셈블리의 기본 사항을 다루지 않으며, 패턴 및 디컴파일된 코드만 표시하기 때문에 어셈블리 코드를 해석하는 방법에 대한 일반적인 지식을 얻을 수 있다. 이 기사에서는 다음의 내용을 다룬다. 변수 초기화(Variable Initiation) 기본 출력(Basic Output) 수학 연산(Mathmetical Operations) 함수(Functions) 루프(Loops) - For loop /.. 2018. 7. 28.
BNIL Part 3. Vulnerability Modeling with Binary Ninja 보호되어 있는 글 입니다. 2018. 5. 3.
BNIL Part 1. Breaking Down Binary Ninja’s Low Level IL 보호되어 있는 글 입니다. 2018. 4. 8.
Ponce(2016, IDA Plugin) - symbolic execution 출처 : https://github.com/illera88/Ponce Ponce IDA Plug-in(2016)Ponce는 2016 IDA Plug-in Contest에서 1등을 차지한 프로그램이다. 이 플러그인에 대해 차근차근 알아보자. Definition Ponce는 바이너리 기반의 직관적인 taint analysis 및 symbolic execution을 수행하는 기능을 제공하는 IDA Pro 플러그인이다. Ponce를 사용하면 클릭 한 번을 통해 최신 symbolic execution 기능을 모두 사용할 수 있다. 전체 코드는 C/C++로 작성되었다. Why?Symbolic execution은 새로운 컨셉의 보안 개념은 아니다. 이미 몇 년 전부터 Triton이나 Angr과 같은 오픈소스 프로젝트.. 2016. 12. 28.
Mac OS에 Metasploit Framework 설치 방법 msfvenom은 Msfpayload와 Msfencode가 결합된 도구이다. -h 옵션을 통해 세부 옵션 및 기능을 확인할 수 있다.더 자세한 내용은 아래 링크에서 확인할 수 있다.https://www.offensive-security.com/metasploit-unleashed/msfvenom/ 이 도구는 메타스플로잇(Metasploit) 프로젝트에 포함되어 있기 때문에 사용을 위해선 당연히 메타스플로잇을 설치해야한다.칼리 리눅스(Kali Linux)를 사용한다면 기본적으로 설치되어 있지만 그 외 운영체제에서는 직접 설치해야 한다.Mac OS에 설치를 한 번 해보자. 먼저, 아래 링크에서 설치파일을 다운받는다.http://osx.metasploit.com 설치한 후, 터미널에서 명령어 실행 설정을 해주.. 2016. 12. 26.
웹 애플리케이션 사전조사 및 스캐닝(2) - ZAP(Zed Attack Proxy) ※ 본 포스팅은 '웹 해킹 입문 - 조쉬 파울리 / BJPUBLIC'의 내용을 참고하였습니다. 웹 애플리케이션 스캐너가 애플리케이션의 취약점을 자동으로 찾는 것과 Nessus가 웹서버의 설정이 잘못된 것이나 빠뜨린 패치를 찾는 방식은 비슷하다.대개의 웹 애플리케이션 스캐너는 웹 프록시와 같이 브라우저와 웹 애플리케이션의 중간에 자리잡으며, Burp Suite와 ZAP처럼 큰 도구모음의 일부 기능으로 구현되어 있다.웹 스캐너는 다듬어진 입력값을 애플리케이션에 보내고 그 응답값을 분석하여 알려진 취약점 징후를 찾아본다.또한 웹 애플리케이션의 입력 필드에 요청내용을 수백가지로 입력하여 취약점의 시그니처 유형을 확인하는게 보통이다. 웹 스캐너(Burp Suite Professional, ZAP 등과 같은)가 인.. 2015. 4. 14.
웹 애플리케이션 사전조사 및 스캐닝(1) - Burp Suite ※ 본 포스팅은 '웹 해킹 입문 - 조쉬 파울리 / BJPUBLIC'의 내용을 참고하였습니다. 웹 애플리케이션을 사전조사하고 스캔하는 단계에서는 웹 애플리케이션을 구성하는 자원(페이지, 파일, 디렉토리, 링크, 이미지 등)에 대한 상세한 정보를 얻을 수 있다.이러한 정보는 이후 웹 애플리케이션을 공격할 때 매우 중요한 정보로 사용된다.웹 애플리케이션을 사전조사하는 방법에는 여러 가지가 있지만, 그 중 목표물을 공격하는 가장 훌륭한 방법은 "애플리케이션이 어떻게 동작하는지 완전히 이해"하는 것이다.- 데이터의 진입지점 확인 (HTML 입력 필드 - 폼 필드, 숨겨진 필드, 드롭다운 박스, 라디오 버튼 목록 등)- HTTP 헤더, HTTP 쿠키, URL 질의 검사- 클라이언트 측 HTML과 JavaScrip.. 2015. 4. 8.
웹 해킹의 기초 - 테스트 환경 설정하기 ※ 본 포스팅은 '웹 해킹 입문 - 조쉬 파울리 / BJPUBLIC'의 내용을 참고하였습니다. 웹 해킹 실습을 위해 가상머신 위에 '칼리 리눅스(Kali Linux)'를 설치했다.칼리 리눅스는 데비안(Debian) 기반의 리눅스로 보안을 지향하는 고급 운영체제로 널리 받아들여지고 있다.개발이 중단된 '백트랙(BackTrack)'의 최신버전으로 생각하면 될 것 같다.칼리 리눅스는 수백 가지의 전문적인 해킹 도구를 갖고 있어 사전조사, 디지털 포렌식, 퍼징, 오류 탐색 등 수많은 해킹 기술을 시연하는 것이 가능하다.칼리 리눅스는 다음의 주소에서 다운로드할 수 있다.Kali Linux - https://www.kali.org/downloads/ 목표로 공격할 웹 애플리케이션은 'DVWA(Damn Vulnera.. 2015. 4. 7.
3. 응용프로그램과의 통신 1. 디바이스 스택 (Device Stack)윈도우는 하나의 디바이스를 여러 개의 디바이스로 나누어서 생각하려 한다. 이 때 여러 개의 디바이스들은 그들끼리 상하 관계를 유지하는 모습으로 스택을 구성하고 있다. 이를 ‘디바이스 스택(Device Stack)’이라고 부른다.디바이스 스택은 최소한 2개의 계층을 가지도록 설계되는데, 아래 그림에서 보게되는 ‘물리층’과 ‘기능층’이다. 모든 추상적인 디바이스는 항상 최소한 이렇게 ‘물리층(PDO)’과 ‘기능층(FDO)’으로 구분된다. 이렇게 나누는 이유는 모든 디바이스는 CPU에 소개되기 위해서는 반드시 버스에 연결되어야 한다는 사실 때문이다.따라서 버스에 연결되는 특징으로 인해 디바이스 자체가 동작하려면 우선 버스로부터 해당 디바이스가 동작하도록 허용되는 과.. 2015. 3. 9.