Hack the PXE booting!

인터넷에서 우연찮게 아래의 기사를 보게 되었다.
http://dailysecu.com/news_view.php?article_id=12221
기사의 내용은 PXE 부팅과정에서 이미지를 바꿔치기 하는 식으로 해킹이 가능하다는 것 이다.
마침 학교에서도 랩실 컴퓨터를 포멧할때 PXE를 활용하기 때문에 관심이 갔다.
그래서 어떤식으로 해킹이 이루어질지 생각해 보았다.

일단 PXE 부팅은 내부적으로 dhcp와 tftp 프로토콜을 이용한다.
일단 DHCP client가 먼저 동작해서 ip와 몇 가지 추가정보를 얻게 된다. 그리고 추가정보를 이용해서 tftp client가 tftp server에서 이미지 파일을 수신하고 부팅하게 된다. (http://blog.pages.kr/156)

즉, 해킹을 하려면 dhcp spoofing을 이용해서 PXE booting을 시도하는 PC를 속이고, PC가 해커가 의도한 server로 부터 이미지를 수신받게 하면 되는 것이다.
아래링크는 DHCP spoofing과 방어기법 DHCP snoofing에 관련된 글이다.
http://ryusstory.tistory.com/entry/DHCP-Snooping-Prevent-DHCP-Starvation-Attacks

PXE spec 문서를 보면 자세한 내용을 알 수 있다.
http://www.pix.net/software/pxeboot/archive/pxespec.pdf
위 문서의 13페이지를 보면 PXE Boot 과정에 대한 그림과 설명이 나와있다. DHCP Server와 통신후 Boot Server와 통신하는 것을 알 수 있다.
14페이지의 Step3를 보면 "The Boot Server list from the Boot Server field in the PXE tags from the DHCPOFFER." 란 부분을 볼 수 있다.
즉 이를 통해 hacker는 DHCP가 unauthorized 하다는 점을 이용해서 실제 dhcp서버보다 먼저 victim PC와 패킷을 주고받는다. 그를 통해서 IP정보를 물론 Boot Server list도 hacker의 boot server로 조작해서 PXE tags에 담아 보낸다. 그러면 victim PC가 hacker가 조작한 image 파일을 수신하게 하게 할 수 있고 결국에는 hacker가 만들어놓은 이미지로 부팅되게 되는 것이다.

내 나름대로 생각한 거라 글에 혹시 오류가 있을 수도 있다.. ㅎㅎ

댓글