IT&보안151

3DES를 이용한 암호화 1. 3DES를 이용한 메세지 암호화 (1) 암호운용모드 중 CBC(Cipher-Block Chaining)를 사용 (2) 시나리오 [1] 메세지를 입력한다. [2] 초기벡터를 입력한다. [3] 키를 입력한다. (3) 소스 from Crypto.Cipher import DES3 def basic_des(): msg = b'12345678'# 8byte IV = b'abcdefgh' # 8byte, 첫 블록을 암호화할 떄 사용하는 값 key = b'001234567891234567890123'# 24byte des3 = DES3.new(key, DES3.MODE_CBC, IV) # 키, 암호운용모드, 초기벡터를 넣고 des3객체 생성 e_msg = des3.encrypt(msg) # 메세지를 넣고 암호화 .. 2019. 4. 11.
[codegate_2017] angrybird 1. 문제풀이 (1) 실행결과 [1] './angrybird'와 같이 그냥 실행하면 반응이 나오지 않는다. [2] './angrybird abcd'와 같이 인자를 넣고 실행해도 반응이 나오지 않는다. [3] './angrybird abcd $(python -c 'print "a"*0x100')와 같이 오버플로우를 예상하고 실행해도 아무런 반응이 나오지 않는다. (2) start 함수 [1] 현재 화면은 'angrybird'바이너리를 IDA에 올릴 때 가장먼저 나오는 화면이고 start함수이다. [2] 이후 main함수를 첫 번째 파라미터에 넣고 호출하는 부분이 보인다. [3] main을 더블클릭해서 이동한다. (3) main함수 [1] 프롤로그부터 보면 쭉 가다가 종료하는 부분이 조금 이상하다. [2] .. 2019. 4. 8.
[csaw CTF 2015] wyvern 1. 문제 풀이 (1) 실행결과 [1] 용의 비밀을 입력하라는 메세지가 나온다. [2] 'test'를 입력 후 Enter를 누른 결과이다. [3] 용의 힘과 스피드와 지능이 더 크기 때문에 실패했다는 내용이 담겨있다. (2) 시작부분 정적분석 [1] IDA에 올려보면 처음 보이는 화면이다. [2] 함수의 프롤로그 이후 빨간 네모를 보면 프로그램을 실행했을 때 출력되는 문구와 call하는 부분이 있다. [3] call하는 부분은 난독화 되어 알 수는 없지만 느낌상 출력하는 함수를 호출하는 느낌이 든다. [4] 이 프로그램은 C++로 작성되었으며 난독화가 되어있다. (3) rename [1] call하는 난독화된 함수명을 클릭한 후 n을 누르면 이름을 변경할 수 있다. [2] C++의 대표적인 출력함수인 c.. 2019. 4. 8.
Application 취약점[브로드캐스트] 1. 어플리케이션 취약점 점검 ▶ 먼저 [insecurebankv2]를 다운로드 받고 이 어플리케이션의 취약점 중 하나인 브로드캐스트의 취약점을 점검해보려고 한다. ▶ 안드로이드의 취약점점검은 대부분 화이트박스(소스를 보면서) 테스트이다. + 이유는? 이전 장에서 다룬 것과 같이 원본소스로 거의 복원이 가능하기 때문이다. (1) 환경구축 [1] 취약점을 점검할 수 있는 환경(OS) ▶ 필자는 Ubuntu_18.04로 진행했다. ▶ 이 환경을 점검PC라고 명명하려고 한다. ▶ JD-GUI, Bytecode-Viewer, apk-tools 정도의 점검 툴을 설치했다. ▶ 설치하는 방법 : [2] 점검 당할 환경(Android) ▶ 실제로 안드로이드 장비를 연결해서 하면 더욱 좋겠지만... ▶ 환경이 되지않아.. 2019. 4. 8.
안드로이드의 소스파일, 목적파일, 실행파일 1. 안드로이드의 파일 ▶ 파일확장자에 대한 소스파일, 목적파일, 실행파일 (1) .java [1] 자바로 프로그램을 작성한 경우 .java라는 확장자를 가진 소스파일이 생성된다. [2] 결국 프로그래머가 작성하는 소스라고 생각하면 된다. [3] javac 컴파일러를 사용해서 컴파일한다. (2) .class [1] .class 파일은 자바의 중간코드이다. [2] .java 파일을 컴파일한 바이트코드를 말하며 실행파일은 아니다. [3] C로 예를 들면 컴파일후 오브젝트파일이 생성되지만 이 파일이 실행파일이 아닌 것과 동일하게 생각해도 좋다. (3) .jar [1] 하나의 소스파일에 모든 명령을 작성할 수 없으므로 .class파일의 묶음 정도로 생각하면 된다. [2] .class를 모아놓았기 때문에 .dex.. 2019. 4. 1.
시저암호 1. 시저암호 ▶ 고전암호의 일종으로 굉장히 간단한 암호종류 중 하나이다. (1) 정의 ▶ 왼쪽이나 오른쪽으로 key만큼 밀어서 암호화한다. ▶ 복호화는 암호화를 반대로 진행하면 된다. ▶ 단, key는 동일해야 한다. (2) 암호화 [1] 소스 def enc(msg, k): table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' rmsg = '' for x in msg: if x in table: index = table.find(x) index += k if len(msg) 2019. 3. 19.
ipython3 install 후 에러 1. ipython3 설치방법 ▶ sudo apt install ipython3 -y 2. ipython3설치 후 발생하는 에러 ▶ ipython3를 ubuntu18.04의 서버버전에서는 문제가 없었으나.. ▶ ubuntu18.04의 데스크톱버전에서는 설치가 되지 않는다. (1) 에러내용 ▶ ipython3 importerror cannot import name 'create_prompt_application'... (2) 해결방법 ▶ sudo pip3 install 'prompt-toolkit==1.0.15' (3) 실행 ▶ 이제 ipython3명령어를 입력하면 정상적으로 돌아간다. 2019. 3. 12.
python 에서 발생한 예외찾기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. python에서의 예외처리 ▶ 가끔 예외처리를 따로따로 해주고 싶은데 도데체 무슨 타입인지 알 수가 없다. ▶ 그렇다고 항상 공식사이트에서 찾기도 그렇고... ▶ 어떤 예외타입이 어떤 예외타입을 상속받는지 외울 수도 없는 노릇이고.. ▶ 이럴 때 sys.exc_info()를 사용하면 예외가 발생한 정보를 알 수 있다. (1) 발생한 에러가 무엇인지 모를 때 [1] 위 그림은 이전 글에서 다룬 내용이다. [2] 보이는 것과 같이 예외가 하나가 아니다... [3] 이럴 때 sys.exc_info()를 사용한다. [4] 출력은 아래와 같다. (2) sys.exc_info()란? [1] 발생한 예외에 대한 3가지 정보를 담은 튜플을 반환한다.. 2019. 1. 29.
python으로 zip파일 크랙하기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 이전에는 단계별로 6자리 숫자에 대해서만 찾아보았다. 참고 : https://ccurity.tistory.com/228 그렇다면 이제는 zip파일이 어떠한 비밀번호로 잠겨있어도 비밀번호를 알아내보자!! 1. zip파일 크랙 (1) 실행파일 소스(zip_crack7.py) from zip_crack import * import sys def usage(): print('Usage: {} [OPTION] '.format(sys.argv[0])) sys.exit(1) def main(): if len(sys.argv) != 2: usage() try: zFile = Crack(sys.argv[1]) zFile.crack() except Keyb.. 2019. 1. 28.
Linux System Call 1. 이론 ▶ 먼저 아래 그림을 보려고 한다. (그림 그리기 힘들다 ㅠㅠ) ▶ 위로 갈수록 하이레벨이고 아래로 갈수로 로우레벨이다. (1) 이 그림으로 하고 싶은 말은 OS별로 제공되는 [Linux에서는 system call | Windows에서는 API]은 다르다. (2) 예를 쉽게보면 우리가 프로그램을 설치할 경우에... ▶ Windows 7용, Windows 10용, Ubuntu18.04용, CentOS7 용 등등 같은 프로그램이지만 OS에 따라 다른 것을 다운 받는다. ▶ 그렇다면 하나의 프로그램을 다 같이 사용하면 안될까? 라는 의문이 든다. (3) 아직은? 불가능하다.. [1] 이제 다시 그림을 보고 설명을 하려고 한다. [2] 커널 위에 System call은 각각의 호출되는 번호가 있다. .. 2019. 1. 26.
자바스크립트 [Windows 시스템이 손상되었습니다.] ※ 먼저 아래와 비슷한 창이 뜰 경우 절때 업데이트를 하면 안된다. - 먼저 위와 같은 디자인이 흰색바탕의 웹브라우저 한가운데 나와있다. - 그리고 한 1~2초쯤 지났을까 뭔가 읽어봐야할 것 같은 메세지가 출력된다. - 굉장히 불길하고 뭔가 불편하다. - 타이틀에는 웹 페이지 메세지라고 나와있으니 웹 사이트에서 보낸 경고창임을 그냥 봐도 알 수 있다. - x표시를 누르고 alert창을 닫으니.. - 또 이상한 무슨 중국가서 한글말 배워온 것마냥 부자연스러운 멘트를 날린다. - 결국은 사회공학적으로 불안감을 주고 업데이트를 하면 문제가 해결될 것이다라는.. - 이 문제는 비단 우리나라의 문제가 아니고 익스플로러를 이용해서 해외 쇼핑몰 사이트를 들어가거나 하는 경우도 포함된다. - 나의 경우 네이버 실시간검.. 2019. 1. 26.
python으로 매크로 제작하기 ※ 이 글은 파이썬3을 기준으로 작성되었으니 참고하시기 바랍니다. 1. 매크로 ▶ 살다보면 반복적인 작업을 해야하는 경우가 생각보다 많다. ▶ 또한 한정판 혹은 선착순 같은 상황에서 선택받지 못한 경우도 많다. ▶ 뮤지컬을 보러가거나 야구 티켓을 예매하는 경우도 마찬가지이다. ▶ 하다못해 RPG게임의 에픽퀘스트를 자동으로 깨주는 것도 포함이다. 2. pyautogui 모듈 사용 ※ 시작하기 전 설치해야할 패키지와 파이썬 모듈이 있다. ▶ [sudo apt-get install python3-pip -y]는 파이썬 라이브러리를 설치 및 관리한다. ▶ [sudo apt-get install scrot -y]는 스크린샷 기능 및 사진 관련한 작업을 할 때 필요하다. ▶ [pip3 install pyautogu.. 2019. 1. 26.