1. pwntools 기능 공부 및 정리
- pwntool의 사용법 및 다양한 기능 정리
https://foxtrotin.tistory.com/289?category=890138
2. pwntool을 이용한 간단한 문제풀이
덧셈 foxtrotin.tistory.com/290?category=890138
더블피스톨 foxtrotin.tistory.com/294?category=890138
3. 간단한 암호 학습
- RSA , AES 등 대표적 암호 학습(하스타드 어택, 위너 어택 등등)
RSA 공격들
foxtrotin.tistory.com/291?category=894738
1. d값 계산
RSA에서 n값과 phi값을 계산할 수 있으면 d값이 나와서 복호화가 가능하다
아니면 p, q, e값이 주어졌을 때도 n과 phi값을 계산할 수 있다
만약 p, q, e가 주어졌으면 n = p*q로 n 구하고, phi=(p-1)*(q-1)로 phi를 구하면 된다
2. 낮은 지수
너무 작은 e값과 너무 큰 n값이 같이 주어졌을 때 가능한 공격에 낮은 지수 공격이 있다
보통 이런 경우 e값은 3을 주는데, 암호문의 세제곱근을 구하면 평문이 된다
gmpy2의 iroot나 cbrt를 사용하여 풀 수 있다
3. 작은 n값
작은 수의 n과 e만 주어졌을 경우, p, q값을 구하기 위해서 n을 무작정 소인수 분해해 볼 수 있다
아니면 소인수 분해 DB에 나와있는 소인수 분해값인 경우에도 이런 식으로 구할 수 있다
4. 위너 어택
e값이 너무 큰 경우 가능한 공격 방법
e값이 65537보다 훨씬 클 경우에 d값을 도출할 수 있는 특징을 이용한다
5. 하스타드 어택
e값이 작고(주로 3), n값과 c값이 3개씩 주어질 때 사용 가능한 공격 방법
6. fermat factorization attack foxtrotin.tistory.com/329?category=894738
q값을 만들 때 next_prime함수를 사용했는데, gmpy2 모듈의 next_prime 함수를 이용할 경우 p, q값이 거의 차이 나지 않는다
이런 경우에는 n값만 주어져도 p, q값을 구할 수 있게 된다
n, e값만 있으면 gmpy2의 isqrt와 t_divmod를 이용해서 문제를 풀 수 있다
AES
https://foxtrotin.tistory.com/462
4. sage 모듈과 pycrypto 모듈 학습
sage: 수학계산
pycrypto: 파이썬 암호화 툴킷
https://foxtrotin.tistory.com/292
5. 간단한 암호 문제 풀이
- 암호 문제를 sage모듈과 pycrypto를 이용하여 해결
이렇게 너무 작은 e값과 너무 큰 n값이 같이 주어졌을 때 가능한 공격에 낮은 지수 공격이 있다
너무 작은 e값은 보통 3
RSA에서 n값과 phi값을 계산할 수 있으면 d값이 나와서 복호화가 가능하다
아니면 p, q, e값이 주어졌을 때도 n과 phi값을 계산할 수 있다
만약 p, q, e가 주어졌으면 n = p*q로 n 구하고, phi=(p-1)*(q-1)로 phi를 구하면 된다
n과 phi값을 구했으면 d를 구하기 위해 mod n에 대한 곱셈의 역원(곱했을 때 1이 나오는 수)을 구한다
곱셈의 역원은 gmpy2의 invert나 divm으로 계산할 수 있다
6. 리눅스 메모리구조(스택 , 힙 , BSS etc.) 공부
https://foxtrotin.tistory.com/312?category=859077
일반 지역 변수, 매개변수를 선언하면 메모리: 스택
데이터 영역에 값을 저장: 초기값이 있는 전역, 정적 변수를 선언
힙 영역 값 할당: malloc을 이용한 동적할당
코드 영역: 그냥 코드
bss영역: 초기값이 없는 전역, 정적 변수, 0이나 null로 초기화한 변수들 할당
7. 리눅스 서버구축(도커를 이용한 apm구축)
arm .. 할 예정이었지만..
8. 패킷쪽 분석이랑 네트워크 기본이론(와이어샤크, tcp) 공부
- 와이어샤크 사용법
- 기본적인 네트워크 이론(소켓, 3way-handshaking etc...)
- 프로토콜 기초(tcp, udp, http etc)
https://foxtrotin.tistory.com/category/Network
9. ARP Spoofing 공격 실습
https://foxtrotin.tistory.com/299?category=754276
10. vagrant 기반 멀티서버 환경 구성하기
https://foxtrotin.tistory.com/484
11. pcap 프로그래밍 공부
헤더들 정보: foxtrotin.tistory.com/324
ARP 패킷 만들고 전송하기: foxtrotin.tistory.com/323
RP 스니핑 프로그램 ARP reader: foxtrotin.tistory.com/325
TCO,UDP 패킷 분석 https://foxtrotin.tistory.com/326
12. 와이어샤크 패킷 분석하기
https://foxtrotin.tistory.com/321
https://foxtrotin.tistory.com/322
13. 포렌식 - 파일 복구
https://foxtrotin.tistory.com/258?category=890137
https://foxtrotin.tistory.com/259?category=890137
14. 각종 CTF 문제 많이 풀어보기
https://foxtrotin.tistory.com/category/CTF