Reverse connection으로 방화벽우회하기
흔히 방화벽정책을 살펴보면, 인바운드 정책에 대한 필터는 설정되어 있는 반면에 아웃바운드에 대한
정책은 없는 경우가 있습니다. 그래서 이것을 이용한 해킹시도에 취약할 수 밖에 없습니다.
가령, 이러한 사정을 해커가 인지하고 코드를 만들어서 악용되면, 그것이 바로 '악성코드' 가 되는 것입니다.
악성코드,공격코드 라는 것이 따로 있는것이 아니죠. 예를 들어 '칼'이 있는데 그것을 음식을 만드는데 사용하면
식칼이 되고, 전쟁에 사용되면 무기가 될 수 있지요. 그래서 그 목적에 맞게 칼의 모양과 크기, 무게가 각각
달라지듯이 악성코드 또한 이미 설계 단계부터 어떻게 사용될지를 해커가 설계하고 생성 됩니다.
Reverse Connection 의 원리
위의 그림에서 보시는 바와 같이 일반적인 원격 프로그램은 사용자가 서버에 요청을 시도 하고
이를 서버에서 접속 허가를 내려주는 형태 입니다.
그러나 Reverse Connection 의 형태는 서버가 사용자에게 접속요청을 하고 사용자가 접속허가를
내려주는 형태가 됩니다.
내부망에 있는 사용자의 경우 서버와의 신뢰(Trust) 관계에 놓여 있기 떄문에 취약한 PC를 점령하고
그다음 단계로 Step by Step 형태로 하나씩 먹어갈수도 있다는 것이죠.
그래서 이에 대한 보안설정이 필요 합니다.
악성코드로 인한 좀비PC 생성
위의 사진은 왼쪽은 제 로컬 PC 이며, 오른쪽은 VM웨어 가상PC 입니다.
해커PC에서 Listen 상태에 있고 Reverse connection 을 이용한 프로그램을 희생자(VICTIM PC)로 보내서
실행하게 되면 이와 같이 HACKER PC에서 화면을 보는 것 뿐만 아니라 원격제어가 가능 하게 합니다.
물론 약간 느리기는 하지만 명령이 잘 먹는것을 실습을 통해서 확인 해 보았습니다.
보안관리자는 이러한 공격에 대한 정책을 수립해야 하며, 사용자는 확인되지 않은 첨부파일을 다운로드
하거나 실행해서는 안된다는 것을 알 수 있었습니다.