IT&보안151

우리집에서 메일 보고갈래? 안녕하세요!! 5월이가 가고 6월이가 오고 있는 지금은 편지를 주고받기 좋은 계절이네요! 맞다고 해주세요! 하하.. 우리집에서 메일을 보고가라고 여러분들을 꼬신 이유가 궁금하신가요? 바로바로바로 두구두구두구두구... 그저께 제가 휴가간 사이에 저의 사수?분께서 메일과 관련된 이것저것 쪽지를 보냈는데 덜떨어진 부사수(저에요;;)는 이해하지 못했기 때문에 관심을 가져볼까 합니다.. 메일이라는 너에게! 시작! 메일 헤더는 알고있다?! 여러분은 메일을 받으면 보낸사람정보를 알 수 있습니다. 이게 정말 믿을만한지는? 메일 헤더가 알고 있습니다. 그렇다면 메일 헤더에는 어떤 정보가 있을까요? 메일서비스를 제공하는 회사마다 조금씩은 다르지만 기본구조(눈 두 개, 코 한개, 입 한 개 와 같이..)는 동일하기 때문에 .. 2020. 5. 24.
WEB 기초 안녕하세요. 또 처음으로 돌아왔네요.. 저는 웹지식에 대한 부실공사가 너무 잘돼있어서 이번에 웹 기반지식을 깔끔하게 다져볼까 합니다. 1. 각각의 기능과 종류 1) 브라우저 ▶ Internet Explorer, Firefox, Chrome 등이 있습니다. ▶ 사용자가 웹서비스 요청시 사용합니다. ▶ 서버로부터 온 응답을 해석하여 화면에 보여줍니다. ▶ 브라우저가 해석하는 클라이언트 언어는 html, css, java_script가 있습니다. 2) 웹서버 ▶ IIS, Apache, Tomcat, nginx 등의 웹서비스데몬이 있습니다. ▶ 사용자가 요청한 데이터를 읽습니다. ▶ 웹서버만으로 처리할 수 없는 것은 WAS(Web Application Server)와 DB(Database)서버와 함께 처리합니다.. 2020. 5. 4.
[전지적해커시점] DLL Injection 안녕하세요. 여기 들어오신 분은 DLL injection이 궁금해서 들어오셨겠죠? 음... DLL Injection은 전지적 해커시점에서 보아야 합니다. 시작부터 무슨말이냐고요? 프로세스 하나를 보는 것이 아니고 어떤 프로세스가 어떤 프로세스에게 어떤 행위를 했다.. 그럼 무슨 일이 일어난다.. 그런데 이것을 왜? 할까.. 이런식으로 보자는 말이죠! 1. 상식알고가기 운전을 하려면 신호등 색이 의미하는 것을 알아야겠죠? DLL인젝션을 하기 전에도 알아야할 상식이 있답니다. [1] DLL(Dynamic Link Library)이란? ▶ 실행파일이 실행될 때 프로세스에 할당된 메모리에 함께 로드된다. [2] DLL의 특성 ▶ DLL은 메모리에 로드되면 DllMain을 실행한다. ▶ 이 말은 DLL을 프로세스.. 2020. 5. 3.
[악성코드분석] 코로나바이러스 안녕하세요. 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.