얼마전 포스팅 했던 CVE-2013-4011 AIX InfiniBand 취약점을 통해 본 고전해킹글을 보신 어떤 분께서 아래와 같은 질문을 하셨습니다.


"A3는 모의해킹 시, 내부 침투를 위해 어떤 방법을 사용합니까?"


해당 포스팅 글 중 캡쳐화면의 일부에서 192.x 로 시작하는 사설아이피 정보가 노출되어 궁금해지셨다고 합니다.

모의해킹을 하기 위한 방법은 팀마다 소유하고 있는 노하우가 다르고, 개개인 역시 사용하는 툴이나 방법도 다양합니다.

따라서 이것이 정답이다! 라고 하기 보다, 많은 방법들 중 포트포워딩을 통한 내부 침투의 케이스를 공유해볼까 합니다.


본 포스팅에서 설명 드리게 될 포트포워딩에 사용되는 툴은 lcx라는 툴로, 한때 웜 바이러스나 중국발 해킹 등에 사용된 포트포워딩 악성프로그램입니다.

악성프로그램이지만 동작구조가 응용하기 쉽게 되어 있는 프로그램이기 때문에 모의해킹에 사용되기도 합니다.


우선 다음 구조도를 참고하시면 lcx를 사용한 내부 침투가 어떻게 이루어지는지 간단하게 이해하실 수 있을 듯 합니다. 


[그림 1] lcx를 사용하여 포트포워딩으로 구성한 내부 침투 구조도


lcx의 경우 중국발 해킹에 사용되었기 때문에 소스코드는 유출이 되지 않은 것으로 알고 있습니다.

2007년경 침해사고 분석 시, Windows 서버에서 lcx를 접하고 이를 모의해킹에 응용하기 위해 구조를 분석하여 Clone 프로그램을 만드는 개인 프로젝트를 했었습니다.

현재 저희 팀 모의해킹에 사용되는 lcx Clone 프로그램은 해당 프로젝트의 산출물인 셈 입니다.

lcx Clone 프로그램은 Windows 용 lcx와 호환이 가능할 뿐 아니라 소스코드가 온전히 보존되어 있기 때문에 타 플랫폼에서 사용도 가능하며, lcx를 악성프로그램으로 탐지하는 백신의 경우 재 컴파일하여 우회할 수 있는 등의 특징이 있습니다.


Web Server가 Windows인 경우, SQL Injection 취약점으로 명령어를 실행할 수 있는 환경이거나 파일 업로드 취약점을 이용하여 웹쉘을 통해 명령어를 실행 할 수 있는 경우 lcx를 업로드 하고, 이를 통해 내부 네트워크에 있는 다른 서비스들을 접근할 수 있습니다.

다음 화면들은 위 [그림 1] lcx를 사용하여 포트포워딩으로 구성한 내부 침투 구조도 그림에서 보실 수 있는 구조와 같이 lcx를 이용해 Web Server의 터미널 서비스(3389 포트)에 접근하는 과정입니다.


[그림 2] lcx를 사용하여 loopback(127.0.0.1)의 터미널 서비스 포트(3389) 리다이렉트


[그림 3] 포트포워딩을 통해 방화벽 Inbound 룰셋을 우회하여 터미널 관리권한 획득


위 화면들을 통해 포트포워딩으로 Inbound 룰셋을 우회하고 내부의 다른 서비스포트로 접근이 가능한 것을 볼 수 있습니다.

slave 역할을 하는 서버에서 loopback이 아닌 다른 아이피 주소와 포트를 지정하면 다음과 같은 시나리오도 가능하다는 것을 알 수 있습니다.

[그림 4] 포트포워딩을 통해 물리적으로 별도 존재하는 DB 서버 접근


위와 같이 물리적으로 별도 서버로 존재하는 경우는 아니지만, 다음 화면들을 통해 MS-SQL 서비스 포트(1433)를 포워딩하여 GUI 환경의 데이타베이스 관리 및 점거가 가능함을 볼 수 있습니다.


[그림 5] MS-SQL 서버의 서비스 포트(1433) 리다이렉트 설정


[그림 6] 리다이렉트 된 포트를 사용하여 MS-SQL GUI 관리프로그램을 통한 로그인 성공


저희 TeamCR@K이 모의해킹 중 내부침투를 위해 어떤 방법을 사용하는지..에 대한 궁금증이 조금은 풀리셨는지 모르겠습니다.

이러한 방법이 탐지되고 막히면 저희는 또 다른 연구를 통해 우회방안을 만들어야겠지요.. ^^;

그러나 대한민국 IT보안을 위하는 것이라면 그러한 수고(?)쯤은 하나도 힘들지 않을 것 같습니다. ^^

보안이라는 것은 강조하고 또 강조해도 모자름이 없을테니까요..


읽어주셔서 감사합니다.