본문 바로가기

네트워크 관련/시스템보안

[시스템보안] 기초다지기 (시스템해킹, dll, dll Injection)

정보수집

* OS
* 서비스
* 네트워크

정보분석

* 취약점
* 대상선정
- 사용자
- 조직도
- 관리자




시스템 해킹

시스템 해킹에는 리눅스와 윈도우 2가지의 경우를 예로 들겠습니다.

@리눅스와 윈도우의 해킹은 관리자 부터 권한 획득을 한다 (그래야 무슨짓을 할 수 있으니까)

@백도어는 사용자와 공격자가 세션이 맺어졌을때 해커가 계속해서 사용자 컴퓨터로 접속을 할 수 있게 하는 일종의 뒷문이라고 보시면 됩니다. 

쉽게 말하자면 제가 매일매일 지각을 해서 몰래 학교에 들어가기 위한 개구멍으로 보시면 됩니다. 제가 학교에 몰래 들어가고 싶을떄마다 들어가면 되겠죠?


밑의 2가지는 공격관련

@관리자 권한을 획득하면 APT라는 지능형 공격을 할 수 있다.

APT(Advanced Persistent Threat)란? 지능형 지속 위협을 의미하며 공격자가 특정 대상을 목표로 다양한 해킹 기슬을 이용해 은밀하게 지속적으로 공격하는 행위를 말합니다.

@그리고 또한가지의 공격사건인 스턱스넷(Stuxnet)은 웜바이러스이다. 마이크로 소프트 윈도우를 통해서 감염되어 지멘스 산업의 소프트웨어 및 장비를 공격하였고 이것이 중요한 이유는 당시 폐쇄망인 스카다망(인트라넷)을 뚫어서 산업시설을 감시하고 파괴하는 악성 소프트웨어로는 최초이기 때문에 중요하다

- 그렇다면 스턱스넷은 어떻게 이루어졌는가?

=>이 웜은 마이크로소프트 윈도가 설치된 컴퓨터에 감염이 되지만 지멘스의 SCADA 시스템만을 감염시켜  장비를 제어하고 감시하는 특수한 코드를 내부에 담고 있다/





dll(Dynamic-link library DLL)

윈도우에서 구현된 동적 라이브러리이다. 내부에는 다른 프로그램이 불러서 쓸 수 있는 다양한 함수를 가지고 있는데 그중 DLL확장자를 가지고 있는경우.
쉽게말하자면 컴파일할때 함수코드가 파일에 복사되는 경우가 아니라X
실행중에 라이브러리에 있는 함수를 호출O  하는 방법이다

동적링크

컴파일시에 함수가 실행파일에 연결되는것
실행파일에 함수의 코드가 복사되기 때문에 파일의 크기가 커지지만, 파일은 완전한 단독실행파일이 된다

정적링크

실행시에 함수가 실행파일에 연결되는것
실행파일에는 호출할 함수의 정보만 포함되고 실제 함수 코드는 복사되지 않아 파일크기가 작아진다.
하지만 실제코드를 가지고 있지 않기 때문에 DLL이 꼭 있어야함

참고: http://yonghello.tistory.com/entry/Dll%EC%9D%B4%EB%9E%80


따라서 이 dll을 가지고 해커가 공격하는 방법이 dll Injection 이다


dll Injection

  쉽게말해 '다른 프로세스에 특정 DLL파일을 강제로 삽입시키는 것이다'

그림이 부담스럽게 크지만 설명드리겠습니다

하나의 프로세스가 있습니다.

프로세스 안에는 이렇게 함수들의 위치를 호출해줄 DLL들도 있습니다. 커널32 유저32 ......

거기안에 내가 조작한 dll을 주입해버리는 것입니다.


이렇게된다면 어떤일이 발생할까요?

만약 해커가 dll에 해당 위에 프로세스 메모리에 대한 접근권한을 넣어놨다고 가정합시다

그렇게된다면 Injection안의 dll이 접근권한을 탈취하는데 도와주고 해당 파일에 통신기능을 추가하여 다른 나쁜짓도 할 수 있게 된다는 겁니다.

- 악성코드

정상적인 프로세스에 몰래 숨어들어가 악의적인 나쁜짓들을 합니다. dll을 넣어서 다른 악성파일을 다운받거나, 몰래 백도어를 열어두고 외부에서 접속하거나 키로깅(키보드에 무엇을 타이핑하나 다보여서 계정해킹등에 유용)등 할 수 있습니다.









주의!! 해당 자료들은 제가 직접 이해한 관점에서 작성한 글이기 때문에 사실과 다를 수 있습니다.
틀린 내용은 댓글달아주시면 언제든지 수정하겠습니다.