본문 바로가기

전체보기30

[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.
180118_[IR_Report]_Ransomware Concept DBD (Drive By Download) 공격 : 웹 사이트에 접속한 사용자가 바로 악성 파일에 감염되는 것. ( : 웹 사이트를 해킹하여, 악성코드 유포지에 접속하게 한 다음 사용자 컴퓨터에 있는 취약점을 이용하여 공격하는 방법. (1) 사용자가 해킹된 웹 사이트에 접속 (2) 해커가 해당 웹 사이트에 해킹을 통해 경유지로 자동 연결하기 위해 삽입한 등의 태그에 의해 유포지로 자동 연결된다. (3) 동일한 과정에 의해 다 단계의 경유지를 거침. 일반적으로 유포사이트를 숨기기 위해 여러 경유지를 생성) (4) 최종 유포 사이트에서는 사용자 컴퓨터에 악성 파일을 다운로드 시킨다. 취약점이 있는 컴퓨터는 바로 악성코드에 감염된다. internet exploer에서 어떻게 악성 파일을 바로 생.. 2018. 1. 18.
170119_REVERSING(3)_snake Concept python 바이트 코드 파이썬은 하이브리트 인터프리터 언어로, 컴파일러와 인터프리터를 보두 사용한다. 프로그램을 실행할 때 먼저, 프로그램을 바이트 코드로 어셈블링 한 다음, 파이썬 인터프리터에서 실행할 수 있다. 이때, dis 모듈은 클래스, 메소드, 함수 및 코드 객체를 디스 어셈블 하여 사람이 읽을 수 있는 python 바이트 코드를 만들 수 있다 . [ python source code ] --> [ byte code ] --> 인터프리터에서 해석 marshal 모듈 "internal python object serialization " 을 위한 모듈이다. 즉, marshal 포맷에 맞추어 데이터를 가용성있게 만드는 것을 Serialize( =직렬화 )라고 한다. ( 메모리에 올라.. 2018. 1. 18.
180107_[IR_report]_linux_webshell Concept 분석 기준 시간? 특정 행위를 기준으로 이전/이후 lsof 명령어는 파일시스템을 unmount 해야할 때, 해당 파일 시스템에 있는 파일을 사용하는 프로세스때문에 잘 되지 않을 때, 해당 파일시스템에 있는 파일에 접근하고 있는 프로세스들을 다 찾아 줄 수 있다. lsof -l 은 모든 네트워크 Socket들을 찾아낼 수 있고, 잘 활용하면 어떤 네트워크 Connection에 의해서 그 목적지, 시작지,등을 알아낼 수 있다. ( lsof -i@security.kaist.ac.kr ) netstat -t 와 함께 사용하여, 해당 파일을 어떤 PID를 가진 어떤 User가 사용하고 있는지 확인가능하다. lsof -iTCP@fool.bbana.co.kr:login cat cmdline root 권.. 2018. 1. 15.