본문 바로가기

OLD 2018 ~ 202115

[wargame.catsecurity] Forensic _ HDCON 본선문제 (블로그 이사 : flagmingo->pogn) 2017.09.13 작성된 글 > ( 공격자 ) --> [[ 웹 서버 ]] -접속-> [[ PMS 서버 ]] 비밀압축파일인 cash.zip 압축암호 규칙 공격자는 웹 서버에 침투하여 // 여기까지는 어떻게 들어왔는지 몰라도 된다. PMS 서버에 저장된 압축암호 규칙을 알아냈다. "웹 서버에서 어떻게 PMS 서버로 접속했는지 혹은 접속기록"을 찾아내면 된다.?? 1. 백도어 2. 원격접속 등이 있을 수 있다. 원격 접속(Remote Desktop Protocol) 을 한 경우, 접속을 시도한 컴퓨터(웹 서버)에 " bitmap_cache" 가 남게된다. bitmap cache란, 원격접속을 할 시, 사진단위로 접속할 PC의 화면(PMS서버)를 전송해줄때 남는.. 2023. 10. 30.
[CodeBlue2017]_[MISC]_incident_response Solving Process 아래의 패킷을 보면 스트림 14번에서 cookie의 sessid 값 쪽에 버퍼오버플로우로 보이는 페이로드들이 넘어가고 body 쪽에 쉘코드로 추정되는 데이터를 http 통신을 통해 보내는 것을 볼 수 있다. 다음 스트림인 15번 TCP 스트림에서는 쉘 코드가 올라간 이후, 공격자(172.17.0.10) 측에서 명령어를 입력하면 웹서버(172.17.0.2) 측에서 응답 패킷을 보냈을 것이다. 그런데 아마 암호화 된 것으로 보인다... 음..... 그냥 쉘코드이겠거니 하고 넘어가려 했지만 통신이 어떻게 암호화 되어 있는지 명령어로 내렸을 ( 그렇지만, 보통 쉘은 (명령어 - 응답)의 쌍으로 이루어지니깐 아마 두글자는 id 가 아닐까싶다....ㅋㅋㅋㅋ ) 쉘코드 쪽을 분석해야 되겠.. 2018. 7. 26.
[System Hacking ] PLT / GOT 영역 이론적 배경 Linking : 실행파일이 호출하는 라이브러리의 API 함수를 정상적으로 실행시킬 수 있도록 라이브러리의 printf 오브젝트 파일을 서로 연결시켜 주는 과정이다. Static Link : 파일 생성시에 라이브러리 파일을 실행파일에 포함하기 때문에 따로 라이브러리를 설치할 필요가 없으며 실행 시에도 라이브러리 연동과정이 필요없다. Dynamic Link : 메모리에 로딩시킨 라이브러리를 여러 프로그램이 공유한다. 이 때에, PLT와 GOT는 다이나믹 링킹과정에서 프로그램이 해당 라이브러리의 위치를 찾아가기 위해 쓰이는 영역이다. PLT/GOT 함수 호출과정 junior@catpwn:~/System_Hacking$ gdb -q ./plt_got Reading symbols from ./plt.. 2018. 7. 10.
[pwnable.kr] fd / collision / bof / mistake Hands-on Practice 실습 1. 개인 로컬 서버에 pwntools python 모듈 설치 설치 : pip install pwntools 사용 : from pwn import * 2-1. pwnable.kr fd File Descriptor 리눅스에서 시스템이 할당하여 준 파일이나 소켓을 대표하는 정수이다. 이 정소를 이용하여 파일에 접근할 수 있으며, 윈도우의 HANDLE과 비슷한 개념이다. 이 중, 예약되어 있는 값이 있는데 표준입력 : 0 // 사용자 키보드 입력 표준출력 : 1 // 화면출력 표준 에러 출력 : 2 이다. [ 문제 소스코드 ] #include #include #include char buf[32]; int main(int argc, char* argv[], char* en.. 2018. 7. 10.
180522_Suninatas Forensic(day1) 심심해서 풀었당 Concept 개념정리 WinHex 파일 카빙모드 Tools > DiskTools > File Recovery Type 에서 원하는 파일타입을 설정하고 output path를 설정한 뒤, Complete byte-level search를 선택하면된다. - Complete byte-level search - Hands-on Practice 실습 - Suninatas 14 john the ripper 이라는 크래킹 툴을 사용하여 보았다. 저번에 윈도우로 했다가 잘 안됬어서 리눅스에 apt-get install john 해서 설치했다. 뭐, 사전파일로 어떻게 넘기고 뭐하고 하는 사용법들이 많이 검색되었지만 복잡하길래 john shadow(파일명) 해서 기다리다가 john shadow --sho.. 2018. 5. 22.
180127_REVERSING(5)_key Hands-on Practice 실습 start 함수 부분에서 처음에 어떤 인자 값을 기준으로 exit() 함수로 분기하였다. 그 뒤에는 파일 포인터를 fclose 하는 것이 있어서 문자열 검색을 통해 보니, C\....\flag.txt 라는 경로가 보였다. fopen 하는 부분을 쉽게 찾을 수는 없었지만 해당 경로에 같은 이름의 파일을 만들어 주니, 분기문을 지나올 수 있었다 . 'Congrats You got it' 이라는 문자열을 출력하기 위해서는 sub_D920C0에서 0이 아닌 값을 반환받아야 한다. 그러기 위해서는 아래의 line45의 조건을 만족시킨 다음, label21로 뛰어야 했다. 해당 함수에 들어가니, 문자를 하나씩 비교하는 구문이 보였다. 입력한 문자열과 해당 문자열을 비교하는 부분.. 2018. 1. 28.
180122_[Incident Response report]_WebShell_upload_attack Concept 개념정리 웹서버를 공격해서 할 수 있는 것. 1) SQL 인젝션 : 2) 리다이렉트 취약점 크로스사이트(XSS) --> 심화(CSRF) : 3) 파일 업로드 : 위의 3가지 공격은 " 취약점이 발생하는 지점 "에서 차이점을 가진다. XSS는 클라이언트 취약점인 반면, File upload나 SQL injection은 서버사이드 취약점 이다. 일반적으로 서버사이드에서 발생하는 취약점이 더 critical 하다고 여겨진다. File upload attack ( web shell ) - File uplaod가 가능 한 조건 (1) 업로드된 파일이 서버에서 실행이 가능해야해 ( 파일을 업로드한 서버 내에 파일이 있어야 한다.) (2) 파일을 업로드 할 수 있어야 한다. ( .php 파일은 막혀있는.. 2018. 1. 23.
180121_REVERSING(4)_winme Concept 개념정리 index 주의!! x 는 출력시킬 값이고, y 는 연산 시킬 값이므로 각 인자의 수가 15,14 이기 때문에 for 문 range에서 인덱스를 잘못 주기 쉽다. 연산과 출력을 변수에 따로 따로 저장해놓고 하는 습관을 들이는게 작은 실수나 오류를 줄일 수 있을 것 같다. --> Q. 그런데 왜 atomic 이후로는 출력이 안 되었을까? 변수 x 는 쓰레드마다 1씩 증가하는데 어떤 역할을 할까? Hands-on Practice 실습 주어진 문제를 실행 시켜보면 flag가 atomic 까지 나온다. 그러나 해당 함수를 동적분석을 통해 살펴보니, MSDN 에서 beginthreadex 함수는 3번째 인자 - 쓰레드로 호출할 함수 4번째 인자 - 해당 함수로 넘겨줄 리스트 ( MSDN에서.. 2018. 1. 23.
180118_[REVERSING]_닷지게임_안죽게_패치하기 Concept 개념정리 윈도우의 WM_USER 메시지 : WM_USER은 사용자가 메시지를 전달하고 싶은 경우를 대비하여 시스템에서 쓰는 주소와 곂치지 않도록 미리 시스템에서 사용자가 Windows Messge로 활용할 수 있게 예약해둔 공간을 가리키는 포인터다. WM_USER+1 과 같이 쓴다. 윈도우의 메시지를 처리하는 함수인 WndProc이 있다면, 윈도우 자체에서 메시지를 발생시키는 함수에는 PostMessage와 SendMessage가 있다. WM_USER에서 보내는 메시지 넘버는 닷지가 죽고, 안죽고와 같은 사용자측의 이벤트가 아니라 운영체제와 관련된 메시지 인것 같다. Hands-on Practice 실습 닷지게임 안죽게 패치하기 1) 언패킹 해당 파일은 FSG 1.0으로 패킹되어 있었다. .. 2018. 1. 19.