study/악성코드 분석 15

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로 다시 들..

WannaCrypto 웜 동작 함수 찾기 (2)

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

WannaCrypto 웜 동작 함수 찾기 (1)

워너크립토를 실행하고 SysAnalyzer로 분석을 해보자 레지스트리 모니터로 들어가면 실행파일을 확인 할 수 있다. 일단 워너크립토의 전체적인 암호화 분석 보다는 드로핑된 파일과 서비스된 파일 중에 네트워크를 담당하는 부분이 있는데 그 웜 부분만 분석을 해보장 아이다로 a.exe(랜섬웨어 실행파일)을 분석해봅쉬당 메인 함수에 킬스위치라는 부분이 나옴! 이렇게 생김 킬 스위치란? 랜섬웨어가 실행될때 저 인터넷 주소에 접속이 된다면 랜섬웨어가 실행을 안하고 종료됨. 가상기기를 우회하기 위해 넣었다는 의견도 있다.(https://www.boannews.com/media/view.asp?idx=54809) 저기서 접속이 잘 되면 인터넷 오픈을 한다 원래는 InternetOpenUrl 이라는 api를 쓴다! 이..

WannaCrypto 랜섬웨어 웜 동작시키기

웜의 동작을 리버싱해보자! 윈도우 환경을 두개를 깔아줍니다. 이때 네트워크 설정은 'host only network'로 해서 외부 인터넷과 차단되게 설정해줍니다. (이때 ip가 각각 달라야함!!) 왜냐면 외부와 연결이 되면 그 연결이 끊겨버리는, 더 이상 악성코드가 동작하지 않는 환경이 됨!! 6b~ 로 시작하는 악성코드를 압축 해제하고 a.exe로 저장해준다 이때 이 실행파일을 SysAnalyzer에 넣고 분석하면 됨. 근데,,, 원래 얘가 부팅을 리부트를 할때 감염을 시켜서 SysAnalyzer에 넣고 분석을 하려고 해도 잘 안 보임 -> 그래서 와이어샤크로 분석해보자!! 우선 두 pc 모두 네트워크를 홈네트워크로 바꿔주자 와이어샤크 실행시키고 캡쳐하기~ 갑자기 이런 에러가 떴지만.. 일단 프로그램 ..

MSF를 활용한 SMB 취약점 공격

칼리 리눅스 가상환경을 만들어주고, msfconsole을 켜준다! (윈도우7도 가상환경 만들어주고 둘다 NAT network로 설정해서 ip 주소 다르게) 이터널블루를 검색해보자 이터널블루란? 이터널블루는 취약점 분석 도구이며, 워너크라이 랜섬웨어 공격에 일부로 사용되었다. 이터널블루는 마이크로소프트의 서버메세지블록(SMB) 프로토콜 구현의 취약점을 공격한다. 5개의 모듈이 보이는데, 이중에서 0번 모듈을 선택해서 사용하자! (use 명령어 사용) 이 다음, show options를 입력해서 공격할 곳에 대한 정보를 얻자 Required 에 Yes라고 되어있으면 반드시 필요한 부분, no는 필요 없는 부분 근데 지금 보면 yes라고 되어있는데 옆에 Current Setting에 비어있는 부분이 보임!! ..