IT 그리고 정보보안 279

네트워크 개념 및 토폴로지

네트워크가 무엇인지 알아보자. 네트워크가 무엇일까? 여러분이 맨날 쓰는게 뭐다? 인터넷...! 인터넷 쓰려면 무엇이 선행되어야 하나. 뭐 흔히들 쓰는 말로 인터넷이 연결이 되어 있어야 한다. 그렇다면 그놈에 인터넷은 도대체 뭘 어떻게 어디로 연결을 한다는 것인가? 자, 생각을 좀 해볼 여지가 있다. 먼저 네트워크라는 단어의 의미부터 알아보자. 네트워크는 Net + Work 의 합성어 인데.. 따로 놓고 보면 그물 작업?? 약간 완곡한 표현으로 돌려보자. '그물 처럼 서로 얽혀 협력하여 수행하는 작업' 정도로 표현할 수 있을 것이다. 한 단계만 더 가보자. 우리가 네트워크를 사용하는 건 컴퓨터이다. '컴퓨터들이 서로 연결된 상태로 자원을 공유하는 작업' 이라고 표현하겠다. 그렇다면 인터넷은 무엇인가. 전 ..

netstat 명령어 활용

netstat 이라는 네트워크 상태를 파악하는 명령어 옵션에 대해 알아보자. 네트워크를 조금이라도 다루는 사람이라면 옵션들을 다 외워두면 좋다. 1. 네트워크 인터페이스 관련 정보 ($netstat -i) 2. 시스템 라우팅 정보 ($netstat -r) - destination, genmask 가 0.0.0.0 이 돼있다면, 디폴트 게이트웨이를 말한다. 즉, 게이트웨이로 패킷을 던지겠다 이말. - gateway가 0.0.0.0 이 돼있다면, 자기자신이라는 말이다. 즉, 게이트웨이를 안쓴다는 말. (로컬 통신) 3. 소켓 상태 정보 ($netstat -a) / tcp 소켓만 보기 ($netstat -t) / udp 소켓만 보기 ($netstat -u) 위 명령은 linux 환경에서만 유효하고 window..

WMIC (Windows Management Instrumentation Command-line)

WMIC (Windows Management Instrumentation Command-line) 명령에 대해 알아보자. pc정보 조회시, 별도의 툴없이 이것저것 라이브에서 확인할 수 있는 명령이다. 는 설명은 성의가 없고, 사실 wmic는 로컬 또는 원격지의 프로세스, OS상태, 실행중인 서비스 등을 확인하는 명령어다. 아무런 대상 선정없이 명령어를 수행하면 로컬의 상태를 확인하게 되고, /node:dongwoo, /user:haha\dongwoo(도메인\유저) 등으로 대상을 지정하면, 그 대상에 대한 상태를 출력한다. CMD에서 wmic를 치면 프롬프트가 제어권이 wmic로 넘어간다. 그냥 cmd 프롬프트 상에서 wmic치고 명령어를 사용해도 무방하다. 이 상태에서 각종 wmic 기능들을 이용하여 P..

윈도우 레지스트리(Registry)

윈도우 운영체제의 설정값을 담고 있는 DB이다. 레지스트리가 도입되기 이전, .ini 파일로 운영체제 설정을 지만 텍스트파일이기 때문에 속도문제 등과 같은 여러 단점으로 인해 레지스트리가 도입되었다. 레지스트리는 크게 키(key)와 값(value)으로 구분된다. 키는 쉽게 말해 폴더라고 생각하면된다. regedit에서 봤을 때 좌측 폴더들이 키, 우측이 값이다. 레지스트리의 키가 폴더라고 했는데, 폴더라고 생각하고 보면 최상위 폴더가 있을 것이다. 그걸 루트키(root key)라고 하는데 총 5가지가 있다. - HKEY_CLASSES_ROOT (HKCR) > 윈도우에서 사용하는 각종 파일정보가 담겨있다. 새로운 확장자를 다루거나 COM객체 정보가 등록돼있다. - HKEY_CURRENT_USER (HKCU..

윈도우 공유 폴더 종류

관리 목적으로 운영되는 공유 폴더에 대해 알아보자. 이름 뒤에 항상 $가 붙는다. * C$, D$, E$, ... 파티션 형태로 공유되는 폴더. 드라이브에 대한 관리 목적 공유폴더이다. 연결되어 있는 하드드라이브 문자수 만큼 공유되어있다. * ADMIN$ %SYSTEMROOT% 로 공유되는 폴더, 윈도우 설치 폴더 C:\Windows 폴더에 접근하여 공유되는 폴더이다. 이 공유로 접근하면 windows 폴더가 나온다. 파일 복사, 수정할 때 쓰인다. * IPC$ 원격접속을 위해 쓰이는 공유폴더, ID, PASSWORD는 Null로 해서 접속할 수 있다. 이 공유폴더들은 시스템 보안에 심각한 영향을 끼칠 수가 있다. 그래서 웬만하면 기능을 중지시켜 두는게 좋다. 애초에 공격받을 건덕지를 없애는 것임. C$..

윈도우 서버 파일 백업

윈도우 서버 파일 백업에 대해서 알아보자. (다른 플랫폼에서도 같이 적용되는지는 확인 후 다시 작성함.) 파일 백업은 뭐 다들 알거라 믿는다. 굳이 이해하기 쉽게 풀어 쓰자면, "파일을 날려 먹을 걸 대비하여 다른 곳에 저장해두는 것" 이정도가 되겠지. 파일 백업에는 4가지 종류가 있다. 일단 그전에 아카이브 비트 (Archive bit)를 알아야한다. * 아카이브 비트 (Archive bit) 란 파일 헤더에 포함된 1비트 값으로, 파일이 마지막 저장 이후 변경이 되었냐 안되었냐를 나타내는 비트이다. 그말인 즉, 백업 프로그램과 연관된 중요한 비트라 이말이다. 아카이브 비트를 기준으로 4가지 백업 방식으로 나뉜다. 1. 일반 백업 (Normal Backup) 또는 전체 백업 (Full Backup) 아..

PE File Format - 2

저번에 이어 PE파일 포맷에 대해 알아보겠습니당 이번에는 섹션 헤더들에 대해 알아볼 것임. 저번에 썼던 그림 재활용 한번 하겠습니다.. PE파일 포맷에서는 데이터들을 data, code, rdata 등의 "섹션"을 나누어 따로 저장한다고 했었다. (섹션명 변경가능) 이렇게 섹션을 나누어 저장하는 이유는 효율적인 관리, 프로그램의 안정성 때문이다. (진짜 이유는 만든 사람이 알겠지..) 각각의 섹션들은 각자 자신의 헤더를 가지고 있다. 그것이 섹션헤더. 한번 알아봅시다. * IMAGE_SECTION_HEADER 각 섹션들의 섹션 헤더에 무엇이 들어있는지 확인해보자. 구조는 모든 섹션헤더가 똑같이 생겨 먹었다. 위와 같은 여러가지 필드들을 품고 있다. 헥사코드를 보고 실제로 어떤식으로 구성되어 있는지 한번 ..

PE File Format - 1

PE(Portable Executable) 파일 포맷에 대해 알아보자. 이전에 포스팅했던 리눅스 시스템의 ELF 파일 포맷과 일맥상통하는 윈도우 시스템의 파일 포맷이다. 리버스 엔지니어링에는 PE파일 포맷 공부가 필수적이라 말할 수 있음. Unix 운영체제의 COFF file format 에서 나온 변종이라고 할 수 있다. PE 파일 포맷에 대해 완벽하게 파고드려면 한도 끝도 없으니 리버싱에 꼭! 필요한 부분을 집중적으로 설명하도록 하겠음. 먼저 PE 파일 포맷의 레이아웃부터 살펴보자. 그림 1은 PE파일 포맷의 기본 레이아웃과 PE View 라는 툴로 임의의 exe파일을 열어 네비게이터를 캡쳐한 화면이다. PE 포맷의 프로그램이 파일자체로 어떤 구조를 가지고 있는지 알 수 있다. PE는 이 파일자체로의..

DLL (Dynamic Link Library)

DLL을 막연하게 그냥 동적 링크 라이브러리라고 알고만 있으니 공부하다보니 지식의 부재를 느껴버렸다. 그냥 아예 정리를 하고 넘어가겠음 윈도우를 쓰다보면 'OOOO.dll' 요런 형태의 파일들을 많이 볼 수 있다. 무심코 윈도우를 쓰는 사람이라면 알 필요도 없다. 피자를 먹으러 피자헛에 가서 "지금 나온 피자에는 어떤 영양 성분으로 구성되어있고 어떻게 만들었는지" 등을 궁금해하지 않고 또한 알필요 없는 것 처럼. 동적 링크 라이브러리, DLL 은 이름에서 나와있듯이 라이브러리 파일이다. C언어 공부를 했다면 라이브러리가 대충 무엇인지 알것이다. 다른 프로그램에서 사용하는 함수를 모아둔 것이다. DLL은 일반 라이브러리 파일(OOO.lib) 들과는 다소 차이가 있다. 얘네들은 그냥 소스 컴파일시에 생성되는..

윈도우 XP 은폐 계정 생성

*테스트 환경 OS: Winows XP SP3 (VM 가상 이미지) Tool: PsExec, whoami --------------------------------------------------------------------------------------------------------------------------- 1. 은폐계정 생성 주로 공격자들이 windows 시스템을 점령한 후에 은폐계정을 생성하여 사용자의 PC를 휘젓고(?)다닌다. 기본적으로 계정명 뒤에 '$'을 붙이면 은폐계정이 생성된다. >net user [계정명]$ /add 명령을 수행하면 은폐계정이 생성된다. net user 명령어로 등록된 계정명을 검색하면 확인이 불가능하다. 하지만!! 윈도우 GUI 상에서는 은폐 계정이 확인..

반응형