Try Attack91

[악성코드분석] 코로나바이러스 안녕하세요. 4월 30일은 치킨을 먹으면서 행복하게 마무리했고, 자고 일어나니 5월 첫 날 새벽이 되었네요. 코로나 핑계로 탱자탱자 놀면서 4월을 흘려버렸는데 5월부터는 3가지정도 계획하고 지켜볼까합니다. 사람이라면여..? 하하 아무리 바빠도 한 달에 한 번정도는 놀러다니면서 말이죠!! 오늘은 4월이 끝나기 전 나타난 시스템파괴형 스크린락커 악성코드를 분석해보려고 합니다. 자기자신을 코로나바이러스라고 부르는데요? 상세분석이라고하면 조금 거창?하고 흐름만 살펴볼까 합니다. 악성코드 MD5 : 09387DAD1341F534AD51966168C0E4AF 매우 성가신 코로나 바이러스 스크린락커 발견돼 New Coronavirus screenlocker malware is extremely annoying 가짜 .. 2020. 5. 1.
(키보드훔쳐보기) 메세지후킹/키로거제작 후킹이란 무엇일까요? 위키백과왈 "후킹은 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다." 라고 합니다. 딱 봐도 나쁜기술로 보이네요. 쉬운 예로 조금 비싼?키보드에는 일반키보드에 없는 기능들이 있죠? volumn UP키, 잠금키 등은 원래 정의되어 있지 않기 때문에 키보드제조사에서 훅을 걸어놓고 특정한 키가 입력이 되었다면 원하는 동작을 하도록 재정의를 해준 것 입니다. 즉, 가로채서 변경한 것이죠! KVM스위치도 마찬가지입니다. 사용자가 키보드 입력을 할 때 특정 키가 입력이 되었다면 어떤 곳으로 보낼지 정의가 되어있는 것이지요! .. 2020. 3. 30.
PE파일 섹션 추가 및 삭제하기 종종 무언가를 하다보면 "나름대로 열심히했는데..." 되지 않을 때가 있죠? "나름대로"라는 말이 빠지고 "1분 1초도 아껴가며"라는 말이 들어가면 "1분 1초도 아껴가며 열심히 했는데..."가 되고 그러면 왠지 뭐든 될 것 같지 않나요? 하하 이와같이 PE파일에서도 필요없는 섹션은 제거하고 필요에 따라 섹션을 몇 개든 추가할 수 있답니다. 물론 한 바이트, 한 바이트 바이트수공업을 해야한다고 하면 포기하실수도 있으니 쉿,,, 전에 다룬 내용에서 .reloc섹션을 다루었으니 .reloc섹션을 지워보려고 합니다. exe파일은 제거해도 정상적으로 동작하지만 dll과 sys파일은 기본적으로 적재되는 위치가 정해져있기 때문에 실행되지 않을 가능성이 무지무지 높죠! 우선 .reloc섹션을 제거하기 위한 방법 1).. 2020. 3. 24.
PE재배치 화장실에 갔는데 말이죠! 앞사람이 계속 나오지 않는다면 어떻게 할까요? 다른 방법을 찾아봐야겠져? 실행파일도 마찬가지에요. 내가 메모리에 적재되어야 하는 장소에 다른 실행파일이 적재되어있다면 그 파일이 종료될 때까지 목빠지게 기다리다가 망부석이 될 가능성이 크지요. 망부석이 되면 안되기 때문에 다른 메모리장소(기준주소)를 얻어서 재배치 후 메모리에 적재가 됩니다. 파일이 메모리에 로딩될 때 재배치과정을 살펴보면 1) 하드코딩된 주소를 찾은 후 2) ImageBase만큼 뺍니다.(VA에서 RVA만 남겠죠?) 3) 실제 로딩된 ImageBase를 더해줍니다.(RVA에서 VA로 변경) 4) 그리고 메모리에 적재가 됩니다! 아 그런데 하드코딩된 주소는 누가 어떻게 찾냐구요? IMAGE_NT_HEADER - IM.. 2020. 3. 23.
EasyCrackMe - reversing.kr 처음에는 어떤 것도 나와 맞지 않는 것 같지만.. 어떤 것이든 도전해보세요! 자석도 N극과 S극이 끌리듯이 나와는 맞지 않다고 생각했던 것도 반복하다보면 어느순간 가까워져 흥미를 느끼고 있는 분야를 발견할지도 몰라요. 우선 reversing.kr의 EasyCrackMe부터 들여다보겠습니다. 1. 정적분석 1) 기초정보확인 Type이 PE인 것을 보니 32비트 exe파일이네요. EntryPoint(ImageBase+Address of entrypoint)는 0x401188 입니다. 총 4개의 섹션(text, rdata, data, rsrc)이 존재합니다. 나와있는 섹션에 대한 간단한 설명을 보태면 .text 섹션은 코드영역(명령어 서식지)이라고 보면 됩니다. [그림1]에서 ImageBase가 0x40000.. 2020. 3. 12.
TCP/UDP/IP/ICMP 헤더구조 TCP/UDP/IP/ICMP 네트워크나 컴퓨터 쪽 공부했던 사람이라면 한 번쯤은 들어봤겠죠? 오늘은 들어만 보았던 헤더들과 멀어질 기분이 아니기 때문에 어떠한 내부구조와 항목으로 이루어져 있는지 보다 가까이 다가가서 들여다보겠습니다. 1. UDP 헤더 1) UDP헤더의 길이는 8바이트(64비트)로 구성되어 있습니다. 2) 출발지포트(16비트), 목적지포트(16비트), 길이(16비트), 오류검사(16비트) 4가지 항목으로 구성되어 있습니다. 3) 길이는 응용계층에서 생성한 UDP페이로드와 전송계층에서 생성한 UDP헤더가 더해진 데이터그램의 길이정보가 들어있습니다. 요약하면 아래 그림과 같이 구성이 됩니다. 4) 오류검사 항목은 일반적으로 비활성화상태이나 활성화상태인 경우도 있습니다. 위의 [그림2]의 경우.. 2020. 3. 3.
main함수 위치를 찾는방법 가끔 목적지을 바라보지만 반대방향으로 가고있는 고장난 네비게이션(나)을 발견합니다. 분석할 때도 마찬가지입니다. 그래서! 바이너리 내에서 메인함수에 가기위한 이정표를 만들어볼까 합니다. 그 전에 분석을 하기 위해서는 분석 툴이랑 친해져야겠죠? 올리디버거와 이뮤니티 디버거의 단축키를 보겠습니다. 이정도만 익숙해지기로 하고 메인함수를 찾으러 갈게요. 메인함수로 가는 길 1. stub code를 지나기 stub code인지 아는 방법은 call을 만날 때마다 [F7]을 눌러서 들어가보고 실행되야 하는 함수가 보이지 않으면 [Ctrl + F9]를 눌러서 RETN까지 실행합니다. 7ip. 만약 CALL Kernel32.*가 있다면 우선은 패스하는 것을 권장합니다. 이유는 그 API의 내부 구현이 어떻게 되는지는 .. 2020. 3. 2.
사내 해킹메일 대응훈련 일반 회사의 경우 보안팀에서 직접 해킹메일 대응훈련을 하고 이를 인사고과에 반영합니다. 즉, 관련없는 이상한파일을 열람하지 말라는 의미겠죠? 그럼에도 불구하고 메일을 하나라도 안 열어보면 입 안에 가시가 돋는 사람들도 있습니다. 스팸으로 차단되었지만 복구해서 확인하려는 섬세함까지 갖춘 사람도 있습니다. 이런분들은 공격자를 설레게 만들어주는 분들이죠!! 제가 있는 곳만해도 보안뉴스나 데일리시큐 기사에 나온 악성메일이 날라옵니다. 실제로 악성코드 분석할 능력은 안되지만 관심이 있는만큼 분석을 하기위해 노력이라는 것을 해볼까 합니다! 아는 지인은 회사에서 해킹메일훈련을 한다고 해킹메일에 사용될 악성파일(착한)을 만들어야 한다고 연락이 왔습니다. 보통은 악성첨부파일을 실행시킨 IP정보와 사용자이름 등을 Comm.. 2020. 2. 15.
PE 파일 포맷 사람을 볼 때 외면보다는 내면의 아름다움을 보는 것이 중요하다는 말이 있죠? 실행파일도 마찬가지랍니다. 겉에 보이는 아이콘과 파일명을 보지말고 실행파일의 내면(PE구조)를 보면 나쁜파일을 걸러내기 유리하겠죠? 이러한 마인드를 소유하고 계시다면 분석할 기본소양이 갖추어지셨다고 생각합니다. 구글에 "PE구조"라고 검색 후 이미지를 보면 ... ... 할 말을 잃죠.. "이것을 모르고 분석을 하면 어떨까?" 라는 생각을 하게 되죠? 그러나 프로그램을 실행시키면 메모리에 올라가서 프로세스가 됩니다. 프로세스에 로드할 때 어떻게 적재가 되는지도 알 수가 없습니다. 1) 어디서 시작하고 각 섹션별 위치나 크기정보를 알 수 없으며 결론은 해야한다는 말이 되겠네요.. 그러나 외우다가 지쳐서 분석은 해보지도 못할 가능성.. 2020. 1. 21.
[악성코드 분석]드롭퍼/다운로더(2) [악성코드 분석] 드롭퍼/다운로더(1) 요즘 영화나 드라마 볼 시간은 없지만.. 가끔.. 아주 가아끔.. 영화나 드라마를 볼 때 자신은 뒤에 숨고 다른사람을 이용해서 지저분한 짓(비리, 불법행위 등) 하는 사람을 본 적이 있나요? 또한 ccurity.tistory.com 위 페이지에서 분석을 완료했지만 프로그램 시작부분에서 계속 삽입했던 shellcode부분에 대한 내용은 다루지 않아서 이 페이지에서 적어볼까 합니다. (사실 shellcode 부분을 이제서야 다루는 이유는 FS레지스터, TEB, PEB 등에 대한 이해도가 부족했기 때문입니다 하하) 원래 Entry Point부분부터 스택영역에 값을 삽입하고 있는 shellcode를 Entry Point에 그대로 복사를 해보도록 하겠습니다. EP부분에 복사.. 2019. 11. 14.
[악성코드 분석] 드롭퍼/다운로더(1) 요즘 영화나 드라마 볼 시간은 없지만.. 가끔.. 아주 가아끔.. 영화나 드라마를 볼 때 자신은 뒤에 숨고 다른사람을 이용해서 지저분한 짓(비리, 불법행위 등) 하는 사람을 본 적이 있나요? 또한 왜 자신이 직접 지저분한 짓을 하지 않고 돈주고 시킬까요? 아마도 지저분한 짓을 하는 과정에서 문제가 생기더라도 자신은 걸리지 않도록 하기 위해서가 아닐까요? 프로그램 내에서도 이러한 지저분한 짓을 하는 프로그램이 있답니다. 그 프로그램은 드롭퍼랑 다운로더 두 가지가 있습니다. 드롭퍼는 악성코드를 자신의 몸에서 꺼내서 생성하고 실행시키는 프로그램입니다. 다운로더는 악성코드를 외부에서 다운로드 후 실행시키는 프로그램입니다. 왜 드롭퍼와 다운로더가 악성코드를 따로 만드는지 궁금한가요? 똑같습니다. 악성코드를 자신이.. 2019. 11. 13.
파일을 입력받는 프로그램의 취약점분석 및 공격 어느새 Exploit을 작성하기 좋은 계절?인 겨울이 다가왔습니다. Exploit을 작성할 생각에 벌써 설레지만 이론부터 볼까요? 위 그림에 대해서 간단히 설명을 드리겠습니다. 시나리오 1) 인사담당자들 혹은 이력서와 같이 hwp확장자의 파일을 메일로 보내면? 이력서.hwp를 다운받고 더블클릭을 합니다. 이력서.hwp는 한글프로그램을 실행키면서 자신을 입력으로 넣습니다. 만약 이력서.hwp가 한글프로그램에 대한 payload이고? 확장자만 hwp라면? 어떨까요? 시나리오 2) 파일공유 사이트에 많은 사람들이 흥미로워 할만한 파일명으로 올린다. .mp4 등을 실행시키면 레지스트리에 등록된 플레이어가 실행되고 동영상파일이 입력으로 들어가겠죠. 이것도 확장자만 mp4이고 실제로는 플레이어의 취약점에 대한 공격.. 2019. 11. 12.