이 프로젝트는 작년 10월달 즈음에 진행했던 프로젝트 입니다.
학교에서 IoT 강의를 듣게 되어서 아두이노를 다뤄볼 기회가 생겼었는데
아두이노를 계속해서 다루다보니 들던 생각으로는, 일단 아두이노도 엄연한 컴퓨터라고 볼수있는데
윈도우에서는 아두이노와의 연결과 여러 작업들에 대해서 별다른 검사나 조치를 하는거 같지 않다고 생각했습니다.
그래서 저는 이런 아두이노를 이용해서 컴퓨터에 프로그래머가 원하는 작업을 자동으로 처리해주는 도구를
만들수 있지 않을까 라는 생각을 했습니다.
물론 해커의 관점에서는 타인의 시스템에 해커가 원하는 작업을 자동으로 처리해주는 도구이기도 합니다.
마침 간단한 동아리 프로젝트로 어떤걸 해볼지 고민하고 있던 찰나에, 흥미로운 주제가 생각나서 바로 실행에 옮기게 되었습니다.
먼저 이런 도구를 제작하기 위해서는, 기존에 실습시간에 사용하던 보드인 아두이노 우노는 시리얼 통신만 가능하기 때문에 이를 통해서는 제작이 힘듭니다.
그러므로 저는 ATmega32u4 칩셋이 있는 아두이노 레오나르도를 통해서 제작하였습니다.
물론 이 모델이 아니더라도 ATmega32u4 칩셋이 장착된 보드이거나 USB통신이 가능한 보드이면 전부 가능하지만,
예산적인 부분에서 이 보드가 가장 저렴하고 쓸만했기 때문에, 이 보드로 선정하였습니다.
제가 최종적으로 만든 자동화 도구의 작동 로직은 다음과 같습니다.
1. 대상 시스템에 아두이노 보드를 연결
2. 연결되면 아두이노 자체적으로 프로그래밍 되어있는 작업을 수행 or
따로 구축된 C2서버에서 원하는 프로그램을 가져온뒤 실행
3. 적절한 작업을 통해서 윈도우 디펜더 우회
4. 위의 과정은 대략 10초 내외로 끝나므로 10초가 지난뒤에는 아두이노 보드를 바로 뽑아서 회수
해당 도구는 원하는 작업이 따라서 프로그램을 바로바로 수정해서 사용할수 있다는 장점이 있습니다.
저는 일단 해커의 관점에서 제작을 진행했기 때문에,
혹시모를 펌웨어 리버싱에 대비해서 프로그램 로직에대해서 암복호화 코드를 적용하면서 제작을 했기 때문에
만약 해당 보드가 리버싱 당하더라도 정적분석을 하기 힘들것입니다.
아래에는 제작한 도구를 테스트 해본 영상입니다.
가상머신을 사용하더라도 실제 바이러스나 랜섬웨어로 테스트 해보기에는 어느정도 위험이 있기 때문에
저는 윈도우 리버스 커넥션 쉘을 대상 시스템의 윈도우 디펜더를 우회하고 실행시켜서
시스템에 원하는 명령을 내리는 방식으로 테스트 해봤습니다.
이 프로젝트를 통해서 사람들이 기본적인 윈도우 비밀번호 설정과 물리보안의 중요성에 대해서 경각심을 느끼도록 하는것이 저의 목표 입니다.