upx unpacking
·
악성코드 및 포렌식
간단히 만들어진 파일을 분석해보자 sln을 이제 열어보니까 main내용을 보면 messagebox하나만 실행된다 F5 로 실행해보니까 UPX 로 패킹하고 언패킹해보면된다. 여기로 들어가서 CMD로 저경로로 간뒤에 진행을 합니다. 그러면 압축을 진행했습니다. 메세지 박스는 압축을해도 똑같이 메세지박스가 나오지만 PE구조를 보게되면 이게패킹된것과 패킹되지 않은것의 차이가 가장컷다. 패킹이되면 가상메모리를 할당하고 그런 내용만있지만 언패킹된 원래 프로그램은 구조 자체가 틀리고 자세하게볼 수 있습니다. 푸는것은 upx.exe -d MsgBox_upx.exe -o Msg_unpack_upx.exe 풀어서 peview로도 관찰하니까 아주 잘됬다. 그래프 버튼을누르게되면 압축이 된애와 압축이 풀린애의 그래프를 관찰도..
Analysis practive malware 기초정적분석
·
악성코드 및 포렌식
ㅂㅂㅂㅂ
c로 컴파일된 악성 코드 3 - 고급 동적 분석
·
악성코드 및 포렌식
f8 을 누르고 계속 진행한다. 여기가 main함수인데 이유가 push 가 3개가 한번에 동작을한다 일반적으로 cmd에 입력하는 argument가 넘어가게되는데 arg갯수 이런정보가 넘어가는데 여기서 담고있다. 총 3개가 남어가게된다 simpleba.00401000 으로 넘어가게된다. 안으로 들어가려면 f2를 누르면 break가 걸리는데 f7이나 엔터를 누르고 -를 누르면 돌아간다. 이렇게 정적 분석에서 봤던 결과들이 나오게되고있다. 여기서 createThread를 실행해보면 simple backdoor를 호출하는 곳에서 걸리게되는데 여기에 break point를 걸어야한다. 궁극적인 쓰레드가 저것이기 때문이다. control + g를 눌러서 4011d0으로 접속을하고 f2 를누른다 즉break poin..
il2cpp game hacking
·
악성코드 및 포렌식
https://play.google.com/store?hl=ko com.starring.zgirls2 를 다운받습니다 apkcombo.com/en-dk/apk-downloader/ APK Downloader - Download APK from Google Play Store™ (Online) The Online APK Downloader is a 3rd-party web tool for APK & OBB downloading from GooglePlay Store. It provides you with the simplest method of downloading the latest versions and the older versions of any Android app. Google Play Stor..
mono 방식 game 해킹 시작..
·
악성코드 및 포렌식
mono, il2cpp 보안성이올라감 뒤에껄로 mono c#으로만들어진 그대로 컴파일시킨것 il2cpp 이미컴파일된 것으로 가져다 실행시켜서 빠르고 보안성도강함 붉은보석2 게임을 해킹할것이다. https://play.google.com/store?hl=ko 여기에들어와서 붉은보석2를 친다. 게임명을 구분할때 패키지명으로 구분한다. com.ftt.redstone2.kr.gl로 구분할수있다. 패키지명 apk를 다운받을수있는사이트. https://apkcombo.com/en-dk/apk-downloader/ 여기서 이패키지명을 복사해서 검색을한다. 패키지명을 검색해서 다운을받는다. 이것을 실행해볼수있는 블루스택, ld플레이어가 있지만 ld플레이어로 진행을한다. ldplayer를 사용한다 https://kr.l..
c로 컴파일된 악성 코드 3 - 고급 정적 분석
·
악성코드 및 포렌식
ida를 이용해 simple backdoor 를 분석 솔직하게 어셈블리언어보다는 api 함수들을 보는것이 낫다. console의 윈도우를 얻어오고있다. 그뒤에 showwindow를 하고있는데 콘솔창에대한 윈도우상태를 바꾼다 지금은 보이지만 보이지않게 바꾸는것 그런 루틴으로진행한다. xor esi, esi 를 하면 0으로 초기화하는 것이다 si를 그것을 push esi로해서 cmdshow로하는데 보이지않게 쇼를 한다. 0으로 쓰기때문에 보이지도않는다고생각하면될거같고 createMutex 를 생성하고 쭉 진행을 하고있다. 즉 분기점이없다는 소리이다. 결과에상관없이 진행하겠다는 의미라 생각하면된다. WSAStartup 을 하고있는데 소켓프로그래밍을 할때 가장먼저나오는 함수라고 생각하면됩니다. 물론 win so..
c로 컴파일된 악성 코드 2 - 기초 동적 분석
·
악성코드 및 포렌식
sysanalyzer 사용 netstat -ano 만약 이 포트번호 1337이 열려있다면 현재 이백도어가 작동중인 것이기 때문에 pskill을 해야한다. pskill -t 508 을 하면 508의 pid가 죽는다. 소켓 관련된 라이브러리 엔터를 넣어야지만 동장되고 cmd가 시작될떄시작된다. cmd 에 어떤 명령어를 쳤을때 그 데이터를 받고 그데이터를 보낸다고 생각하면 된다. 계속해서 무한루프를 하게된것이고 소켓을 만약 닫지못하게되면 닫는것이다. 실제로 이렇게 백도어를 실행했을때 이런 문구가 사용이가능하다. ========================================= sysanalyzer 사용 sysanalyzer를 실행했더니 cmd 창과 simplebackdoor가 실행하고있다 cmd 의 ..
c로 컴파일된 악성 코드 1 - 기초 정적 분석 (api 위주)
·
악성코드 및 포렌식
window 와 프로그램의 통신하기위한 도구가 필요하게되는데 이통신하는 이것들을 dll 파일로 보통정의하고 있다 dll 내부에 api가 들어가있다. import address Table에서 알수있다. 굉장히 빠르게 판단을 할 수있다. kernel32.dll 은 대부분의 프로그램에서 사용한다. createMutexA 중복 실행 방지이름이 있거나 이름이없는 뮤텍스 오브젝트 하나를 만든다 그걸 만드는 이유는 동기화를 위한 것. 다른 프로그램이 침범할 수 없게끔 한다. releaseMutex CreateThread 쓰레드를 생성한다 프로세스를 만들게 되면 일종의 작업공간이 프로세스인데 프로세스를 만들면 쓰레드가 만들어지는데 애가 메인 쓰레드라고하고 메인쓰레드가 프로세스 내부에서 일을한다 이쓰레드는 동작을하면서 ..
연습 샘플 분석 - 3 - 고급 정적 분석
·
악성코드 및 포렌식
no cache가 나오면 계속 새로운 요청을 받아와라는 뜻인데 계속해서 똑같은 요청이 날아옵니다. 타이머가 잘등록이되서 수행이되야하는데 수행이 잘되지않는 거 같습니다. ============================================= ida pro 활용 Main 함수를 잘보면 startservice 즉 서비스를 실행해라 이런내용으로 보입니다. 서비스를 실행하고나서 sub_401040으로 들어갑니다. 실질적인메인함수라 판단된다. 실질적인 메인함수를 들어와보니까 들어오자마자 mutex를 생성한다. 두가지의 길이 존재하는데 만들고 exit 프로세스를 나올건지 뮤텍스를 계속만들건지를 정하고있습니다 중복방지를 막기위해서 HGL345를 쓴것을 알수있고 서비스를 등록한다는 사실도 알수가있습니다. 그것..
연습 샘플 분석 - 2 기초 동적 분석
·
악성코드 및 포렌식
sysanalyzer 다운로드를 하기 동적분석 도구인 sysanalyzer를 사용하자. 아무것도 누르면 안된다 만약 누르게되면 sysanalyzer가 전부판단을해서 정확한 분석이 이뤄지지가않습니다. 그래서 시간동안 아무것도 누르지 말기 실행시간은있지만 잘보면 End가 없다 이게무슨의미냐면 아직 실행중이라는의미입니다. pid 3704 가 IEUser의 권한을 가지고 실행했다. 여기를 잘보면 포트가 열렸었는지도 확인을할 수가있습니다. 포트를 4개를 열었었고 정황이보입니다. 그리고 Reg Monitor에서는 레지스트리가 변경된 상황이보입니다. 실제로 등록이 되서 이곳을 뭐하는 경로인지 알아보니 서비스 의 등록결로였습니다. 그리고 실제로 서비스가 등록이 된것이 여기에서도 확인을 할 수가 있엇습니다. api lo..
연습 샘플 분석 - 1 기초 정적 분석
·
악성코드 및 포렌식
7-1번 exeifo 와 pestudio를 통해 일단은 분석을 해봅시다. 여러가지 플러그인을 제공하는데 해보는 것도괸찮다. 특히 언패킹에 대한 기능이나와서 어디서 어떻게하는지를 알수있다. microsoft visual c++ ver 5.0/6.0에서 컴파일된걸로 확인이됩니다. 이제 pestudio를 이용해서 확인해봅시다. 애는 다양하게 정보를 줍니다. 이프로그램에대한 대략적인 정보를 파악해서 악성코드가 아닌지 기준을 가지고 때려줍니다 virustotal에서는 42/67 개의 백신이 탐지를하고있고 블랙리스트의 string이 38개가 판별됬고 interneturl을 오픈하는 api 가 두번 들어있고 scm 서비스 컨트롤 매니저가 들어가있다고 확인도해줄수있습니다. 검은색은 특이한 상황이지만 인포메이션쪽이고 위..
네트워크, dll, 스레드 등
·
악성코드 및 포렌식
소켓 구현 관련 함수등 여러개 이런것을 하면 보통은 네트워크 통신을 하겟구나 하고 생각하면됩니다. 서버는 요청을 기다리는자로 나눠지고 client는 요청하는 사람으로 나눠진다 wsastartup 을 실행시키고 wsasocket 을 통해 소켓을 만들고 bind는 주소를 정한다고 생각하자 ip와 포트 등 listen 은 듣기 시작합니다. client는 위에처럼 소켓까지는 만드는데 주소를정하지않고 듣기를 시작하지않고 바로 전화를 건다고 생각하면됩니다. 통신을 하기위해 보낸다. 그때 서버쪽에서 client한테 뭐가왔어~~ 그러면 WSAAccept 연결을 승낙을 해줍니다 그리고 데이터를 주고받는내용이나옵니다. 그리고 WSARecv, WSASend, 가 나오는데 서버가 send를 먼저할수있고 recv를 먼저할수도있..
자동실행 레지스트리
·
악성코드 및 포렌식
시작메커니즘에 대체 알아봅니다. 여기의 RUN이 가장 많이 자동실행에 관련된 그런 프로그램들이 등록되어있다. 그래서 주의깊게 봐야합니다. 매실행시마다 내컴퓨터가 부팅시마다 자동실행하는 매커니즘을 운영체제가 가지게된다 여기에 악의적으로 새로운게 생기거나 바뀌게되면 위험하다고 생각하자. 일반적인 프로그램을 설치하면 정상적인것인데 악성코드라면 문제가 클 확률이 많습니다 특정기능에 서비스를 등록해놓고 부팅시마다 자동실행이된다. 권한이높기때매 주의가 필요하다. 서비스는 권한을 얻어오고 서비스를 만들고 서비스를 시작하는 루틴이있다. 이렇게 서비스 관련된 기능을 사용할수있다. 콘솔에서 sysinternals 가 제공하는 autoruns가 있다. 너무의존하지말고 다른것도 다봐야한다. 콘솔을 통해 실행이 가능하고 레지스..
악성코드 주요 행위 분석 1- API, 파일시스템
·
악성코드 및 포렌식
windows api api는 application programing interface 사용자가(프로그래머가) 프로그래밍을 할떄 os 에서 자원을빌려옵니다. 그래서 자원을 프로그래밍을 할때 인터페이스를 제공해주는 함수들을 api라고 부릅니다 파일을 읽는다던지 소켓을 연다던지 os상에서 해줘야하긴한다. 원래는 일반적으로 os에 api기능을 빌려서서파일을 만들거나 소켓을 만들거나 프로세스를 만들거나 과정을 거칩니다. 악성코드도 윈도우 운영체제에서 돌아갈려면 윈도우에서 제공하는 api를 써야한다.. 윈도우 api를 알면알수록 분석하기가 편해진다. 윈도우 api를 쓸때 빌린다는 말을 썻는데 그빌리는애가 핸들입니다. Executive object 는 os의 kernel에 위치한애다 모두 커널안에서 오브젝트를 관..
고급 정적 분석 - ida
·
악성코드 및 포렌식
lab 05 .dll을 분석하자. 1. dll main의 주소는 무엇인가? -DLL 의 메인함수 DLL 이 로드 될떄 -4가지 정도의 정의를 할수 있다. DLL로드, 언로드 , DLL 어태치 이곳이 바로 Dllmain의 부분이고 이 선택된 창에서 space바를 누를시 이렇게주소가 나온다. name에서도 찾을 수가 있었다. 1000D02E에 있다. 2. imports 윈도우를 이용해 gethostbyname 을 탐색 해보자. 임포트 위치는 어디인가? 0x100163CC 에 위치해있다. 3. gethostbyname을 호출하는 call 명령어는 몇개 인가? jump to cross reference를 합니다. 어디서 gethostbyname 을 참조하는지 9개가 나오게됩니다. 4. 0x10001757에 위치..
고급 정적 분석 아이다활용
·
악성코드 및 포렌식
auto comments 자동 주석을 달아주는거 좋다고함 sub_401000 처럼 수식어가 바뀌는 케이스가 존재한다. 함수를 참조하는 링크가 나오면 보통 sub라고 나온다. 일반적으로 call 명령어뒤에 sub_401000 이 붙어 있는것 항상 그런건아닙니다. mov eax, sub_401000 함수를 eax에 넣었다가 나중에사용하려고 하는것인데 적는 케이스 들이있다 Loc 는 목적지로 점프하는 링크 예를들면 jmp, jz, jnz 같은 점프 관련 명령어가 나올떄 loc가 등장할수있다. 일반적으로 주소가나오는것인데 메세지를 해석해서 text 와 caption이 나오는것이다 offset 에 주소가 붙으면 주소를가져온다 데이터를 가져온다 push는 4byte 인데 뒤에 스트링이붙어있다. 포인터라는 뜻인데 이..
기초 동적 분석
·
악성코드 및 포렌식
기초 동석 분석 도구를 이용해 Lab03-01.exe 파일에서 발견된 악성코드를 분석하라 vm 32to 64.exe 를 만든뒤에 videodriver가 실제로 등록이된거같습니다 그래서 레지스트리를 확인해보니까 실제로 등록되있고 자동실행이되게 만든거같습니다 여기서도 악성코드에서 video driver레지스트리를 등록했다는것을 알 수가 있었습니다 그래서 의심이가서 vm32to64.exe를 꺼내왔습니다. 실제로 파일크기도 변경이되고 어떤작업을 했다는 과정을 알게됬습니다. 악성코드의 해쉬값과 vm32to64.exe의 해쉬값을 비교해서 해보니까 똑같은 결과가 나왔습니다. 이것을 보면 악성코드의 파일을 자동실행되게 등록을 해놨다. 라는 것을 알수가있었습니다.
기초 동적 분석 도구
·
악성코드 및 포렌식
최고의 프로세스 탐지도구 레지스트리는 것은 윈도우의 데이터베이스의 일종이라생각하면되고 윈도우에서 필요한 몇가지 정보들 윈도우에 대한 대부분의 정보. 이것을 건들인다면 민감한정보 한글판은 unicode 영문판은 ansi를 써야한다.
기초 정적 분석 실습 - 2
·
악성코드 및 포렌식
어떤 바이러스를 분석하기를 시작합니다. 바이러스 파일을 현재 peview로 보니까 upx 로 패킹이 되있는거같다. 그래서 unpacking을 진행합니다 unpacking이 성공적으로 진행됬고 이제 peview 로 다시import를 봅니다. 잘보니까 이제 구조가 잘보입니다. Advapi32.dll 서비스관리자나 레지스트리 ,자동시작 프로그램에 크게 관여 하기때문에 악성코드가 이것을 다루고있으면 주의깊게 봐야한다 자동실행 메커니즘을 가지고있기때문이다. 그리고 WaitForSingleObject 라는 의미가 있는것을 보고 지정된 개체가 신호 상태가되거나 시간 제한 간격이 경과 할 때까지 기다리는 행위가 있을거라고 유추해보고 근데 이상하게 KERNEL32.dll이 kernel32.dll일텐데 대문자로 진행이되있..
기초 정적 분석 실습 -1
·
악성코드 및 포렌식
실습 1-1 1.exe 와 1.dll에 대한 기초 정적 분석 실습 1. virus total에 파일을 업로드 한 보고서를 보자. 기존 안티바이러스 시그니처에 일치하는 파일이 존재하는가? 이 파일을 virus total에 넣어봤습니다. 그리고 먼저 이파일의 해쉬값을 확인을 합니다. 2. 이 파일은 언제 컴파일 되었는가? 이파일이 언제 컴파일 되었는 가를 판단합니다. 이것을 알아보려면 peview.exe를 봅니다. time Date Stamp 로 2010년 12월 19일에 컴파일이 된것입니다. 이번에 dll도 올려보게되면 애도 같은 위치에 같은 환경에서 같은 날짜로 같이 개발됫다고 추측할수있다. 이파일이 패킹되거나 난독화 징후가 있는지를 확인해봅시다. 3. 이파일이 패킹되거나 난독화 징후가 있는가 ? 그러면..