전체 글 114

[써니나타스] 16번

다운로드를 받으면 pcap 파일이 보인당 와이어샤크로 분석해보자!! 일단 무작정 tcp 스트림을 따라가긴 했는데 이렇게 중간중간 HTTP 패킷들이 보인다. HTTP면 암호화가 되어있지 않아 로그인 정보가 평문으로 보일 것 같으니 http 필터링을 해주자!! 그리고 로그인을 하려고 요청을 보내는 건 POST 요청이므로 http.request.method == "POST" 로 필터링을 하자!! 그러면 요렇게 5개 정도가 보이는데 (맨 마지막은 로그아웃 흔적) 당연히 마지막이 로그인 성공 시도일 것 같으니,,, 들어가보자 요렇게 id와 pw가 평문으로 뜬다!! 이 로그인 정보로 써니나타스 로그인을 해보자 오예~~~

WARGAME/forensic 2024.03.27

[코드엔진/CodeEngn] Advance RCE L03

실행파일 분석 문제를 실행하기 전에 exeinfo로 봅시다 패킹은 안되어있으니 바로 분석해봅시당 실행을 하면 이렇게 뜬다 좀 킹받게 살짝 투명하긴 한데, name와 serial을 입력받는 부분을 볼 수 있다. 문제에서 name이 CodeEngn일때의 시리얼값을 찾으라고 했으니 아마 name값에 따라서 시리얼값이 바뀌는것으로 예상된다. 실제로 아무거나 입력하고 check를 누르면 이렇게 뜬다 :) IDA 정적 분석 시작 함수는 다음과 같고 이 파일에 있는 함수들은 다음과 같다 이때 핑크색으로 되어있는 부분은 GUI 관련 함수인것 같으니 딱히 신경을 안써도 되고, 저기 start 밑에 있는 DialogFunc 부터 분석을 해보면 될 것 같다! 일단 엄청나게 크고... 우리는 저 메세지 출력 문자열을 찾으면 ..

WARGAME/reversing 2024.03.27

WannaCrypto t.wnry 복호화

저번에 b.exe로 저장한 taskche.exe를 IDA로 다시 열어보자 이 실행파일 내에서 t.wnry를 사용하는 부분을 찾아야 하기 때문에 strings 에 들어가서 찾아준다! 그러면 요기에 이렇게 보인다. 더블클릭해서 들어가서 ctrl+x 누르면 XREF 따라갈 수 있음!! (또는 그냥 XREF 부분 더블 클릭) 그러면 이쪽으로 온다 (Win Main 함수임) 여기에서 자세히 보면 이렇게 밑에서 함수를 호출하는 것을 볼 수 있다!! 이 함수를 들어가서 더 자세하게 분석을 해보면, 함수 호출 전 오프셋으로 지정한 파일명(t.wnry)의 파일을 열고 사이즈 얻고 등등 작업을 해주고 파일 시그니처가 WANACRY! 가 맞는지 확인 하는 부분이 있다. 이 부분은 전 게시글에서도 파일 분석하면서 적어놨지만 ..

WannaCrypto 리소스 파일 내용 분석

2024.03.23 - [study/보안] - WannaCrypto 리소스 파일 추출 WannaCrypto 리소스 파일 추출 워너크립토 랜섬웨어를 실행하게 되면 킬스위치, 네트워크 전파, 파일 드로핑 되는 것 까지 나와있음 그 다음에는 리소스가 동작함! 리소스에서 tasksche.exe 실행파일이 동작한다. 여기에서 a.zip lucykorea414.tistory.com 위 게시글에서 파일에 대한 설명을 간략히 알아볼 수 있었는데, 실제로 분석을 해봅시다!! msg 폴더 언어 종류별로 다 적혀있다. 아마 화면에 랜섬웨어 메세지 띄울때 시스템의 언어를 감지하여 언어별로 출력할 수 있게 미리 만들어놓은것인듯!! b.wnry 얘를 실행하니 갑자기 바탕화면이 까만색으로 바뀌었다... 내용은 이렇게 되어있는데 아..

WannaCrypto 리소스 압축 패스워드 찾기

전에 이미 랜섬웨어에 걸린 윈도우에서 pestudio를 열어준다 여기에 이제 C드라이브에 있는 a.exe를 드롭해주면 이렇게 떠야 하는데... 더보기 나는 왜 안뜰까 ㅜㅜ 이렇게 아무것도 안뜸... 뭐지? 일단 강의 내용 바탕으로 쓰기.. 이 a.exe 같은 경우에는 킬스위치, 네트워크 전파, 드로핑하고 파일을 설치하는 등의 일들을 함!! 여기서 리소스를 클릭하면 a.exe 안에 숨겨진 파일을 볼 수 있음!! 맨 위에 있는 R 의 dump를 떠서 바탕화면에 b.exe로 저장해줍니당 (얘가 사실 나중에 taskche.exe 임) 이걸 다시 pestudio로 열자~~ 여기에 resources(PKZIP) 이라고 있음!!! 여기서 보면, 전체 b.exe 파일의 크기의 98퍼를 이 pkzip 파일이 차지하는 것..

WannaCrypto 리소스 파일 추출

워너크립토 랜섬웨어를 실행하게 되면 킬스위치, 네트워크 전파, 파일 드로핑 되는 것 까지 나와있음 그 다음에는 리소스가 동작함! 리소스에서 tasksche.exe 실행파일이 동작한다. 여기에서 a.zip 파일을 꺼내서 추가적인 작업을 실행한다. 이 a.zip에 대한 파일들을 간략히 분석하면 다음과 같다. 파일/폴더명 내용 b.wnry 파일 암호화 후 설정되는 바탕화면 이미지 c.wnry Tor 네트워크 설정파일 (다운로드, 비트코인 계좌 주소) r.wnry 랜섬웨어 감염에 따른 비트코인 결제 안내문 (txt 파일) s.wnry Tor 네트워크 실행 모듈 (zip 압축 파일) t.wnry 암호화 모듈 파일 (.WNRY 형태로 암호화 되어 있음) -> 프로세스 시스템에 들어가서 직접적으로 암호화 수행 (암호..

랜섬웨어란?

랜섬웨어 - 몸값을 뜻하는 Ransome + 제품을 뜻하는 Ware - 사용자의 동의 없이 컴퓨터에 불법으로 설치되어 사용자의 파일을 암호화 - 암호화된 파일을 인질로 잡아 금전을 요구하는 악성코드 랜섬웨어의 주요 증상 - "랜섬웨어에 감염이 되었습니다" 돈을 요구하는 협박 메세지 페이지 출력 - 파일, 문서 등 암호화 되어 있음 - 암호화된 파일을 열 수 없음 - 중요 시스템 프로그램이 열리지 않음 - 별도의 다른 악성코드를 심기도 함 - 실행되면 숙주 파일이 사라지는 경향이 있어 한번 암호화 끝나면 다시 암호화 되지 않음 - MBR을 악성 MBR로 교체하여 부팅 안되게끔 함 주요 전파 경로 - 침투: 이메일이나 악성 사이트에 악성코드 삽입 - 감염: 사용자의 이메일 첨부파일이나 악성사이트에 의한 감염..

study/보안 2024.03.23

WannaCrypto 웜 분석

beginthreadex 함수를 실행하는 407720 이 주소를 올리디버거에서 따라가보자!! 여기서 강제로 프로그램 실행을 이 줄부터 실행되게 할 거기 때문에 오른쪽 클릭해서 New origin here를 클릭한다. 407720 주소 안에 들어가보면 adapter info를 받는 이 함수를 호출하는걸 볼 수 있는데, 이 부분을 올리디버거에서 한번 분석해보자. 주소값 409160을 찾아보자 bp 걸고 보면 409173에서 GetAdapterInfo 함수 call 하는 부분이 보인다. 이때 이 부분(inet)을 잘 봐야되는데 여기서 EDX에 주소값이 보임. (192.168.56.102) 이게 자신의 IP 값을 구하고 여기는 네트워크 대역대인 255.255.255.0을 구함! 이제 다시 407720로 다시 들..

[안티디버깅] INT3 (CC 패치)

INT3 - 디버거가 실행중인 프로그램에 브레이크 포인트를 거는 역할 (일시적으로 실행중인 프로그램에 bp 거는데 적합) - 다른 명령어들은 2바이트를 사용하는데 INT3 은 1바이트를 사용해서 명령어 패치하는데 적합함 - opcode: CC - 소프트웨어 브레이크 포인트로 사용됨 C/C++ 코드 bool IsDebugged() { __try { __asm int 3; return true; // debugger detected } __except(EXCEPTION_EXECUTE_HANDLER) { return false; // no debugger detected } } 만약 디버거가 없다면 예외가 발생하고 예외처리를 핸들러가 함 만약 디버거가 있다면 예외를 핸들러가 처리하지 않음 [참고] https:..

study/보안 2024.02.23

WannaCrypto 웜 동작 함수 찾기 (2)

저번 글에 이어, 워너크립토의 메인함수... sub_407BD0을 분석해봅쉬당 더블 클릭 들어오자마자 beginthreadex 가 보이는데 이건 쓰레드를 만드는 함수 ㅎㅎ 쓰레드를 만들때 당연히 start_address 가 있어야함 워너크립토에서는 start_address가 loc_407720 으로 확인됨! 더블클릭~ 여기 안에도 beginthreadex가 보임!!!! 그 위에 있는 sub_409160을 더블클릭~ 여기서 GetAdapterInfo 라는 함수가 보이는데, 이 함수가 중요함!! 네트워크 어댑터를 식별하는 함수이다! 여기서 어댑터 드라이버에 대한 정보를 가지고 오고 이후에 네트워크 어댑터의 ip, subnet, gateway 주소 등을 가져오게 됨 -> 이거를 직접 확인해보기 위해서 직접 실..