목록수업기록/악성코드 (13)
Bazinga!
snapshot작업하다가 뒤로 뒤돌려야 할 때 스냅샷 찍은곳으로 원상복귀 가능 --- ---- (시스템 모니터링 도구)Autoruns프로그램을 통해의심스러운 네트워크 통신 있는지의심스러운 설치파일 있는지 부팅할때 실행되는 특정 경로에 있는지 이런것들을 이 도구를 통해 확인 가능 ----- 리버싱 exe파일은 혼자 실행되기 어려움 윈도우api필요윈도우 api 이 dll 에 저장되어있다. 변수 = 메모리 주소함수 = 코드 블록함수를 호출하고 실행한 결과는 eax 레지스터를 통해 전달된다. 구조환된 파일 포멧(PE, ELF 등등) - 그 파일을 읽어서 메모리에 맞게 로드해서 실행시켜줘야한다.로더를 통해 메모리에 로드 시켜준다.
하나의 프로세스는 무조건 하나의 스레드를 갖는다. 1. F9를 통해 EIP로 이동2. 문자열 참조를 통해 분석해야 하는 코드를 찾아간다. --- how_to_use_dbg함수의 시작 위치 설정하고있음28만큼 스택 할당
---- ---eax = A 가 되면 ZF =1 jne 실행되어 함수 벗어난다. ------ 포인터 402000이 갖고있는 값을 가져온다.
8211번 서버로 문을 열고 대기 대기하고있따가 연결되면 accept하고 연결 수행되면 서버는 recv(클라이언트가 데이터 보내는거 대기) &burf를 서버로 보낸다 이걸 역순으로 해보면----
----CreateToolhelp32Snapshot 스냅샷 = 현재 상태를 저장 현재 시스템내에서 실행중인 전체 프로세스의 상태를 스냅샷-Process32First여기서 pe는 구조체 - Process32Next ( 원하는 프로세스 찾는다.) ---openprocess api handle을 가져오기 위해 openprocess (process injection에서 많이 쓰임/ 의심을 피하기위해 기생할때 이 api를 이용해 권한을 가졍온 다음에 타겟 프로세스에 공간을 할당하는 api를 이용해 악용)프로세스에 대한 접근 권한을 얻기 위해 프로세스 고유의 값(processId)을 지정해줘야함. ----terminateProcess 프로세스 죽이기---closeHandle ----이거 뭐하는 프로그램이야? 찾는 ..
IDA training 1 어디서 사용하는지 알아보기(주소가 서로 맞지 않아 찾기 힘들다면 api 이름, 문자열 등을통해 찾으면 된다.)> null일 경우 자기자신이 0 들어감.> 현재 실행중인 경로를 준다. dbg에서 [ebp-208] 0018FD40 -----gettemppathA 임시 경로의 위치를 buffer에 저장 -----pathappendA buffer곳에 "mal_edu" 를 합친다 ----CreateDirectoryA디렉토리를 만들어라 ----PathAppendA 그 디렉토리에 "malicious_sample.exe"파일명을 합쳐라 -----CopyFileA ----shellexecuteA ----DeleteFileA ---메인도 하나의 함수 api도함수 함수는 인자를 받는다. 메인함수도..
변수명 & 함수명 바꾸기 n 함수 더블 클릭하면 함수 안으로 들어감 / ESC누르면 다시 나옴 주석comment 달기 x(cross reference) 어디서 호출되고있는지 알 수 있다. 글자가 안보일경우 Print only ~ 체크해제해주면된다. ------------------
ebp 에 원래값 저장(백업 공간 만들기위해 백업을 한다) 지역변수를 위해 할당(x,y 2개라서 8바이트)
IAT / DLLLoadLibrary9792에 있는 문자열 user32.dll불러와보자 9792번째를 보면 dll이름이 USER32.dll인 것을 확인할 수 있다. GetProcAddress 메세지박스는 9784번에 위치한것을 알수있다. IAT에 실제 주소 담음