IT 그리고 정보보안/Knowledge base 227

취약점 스캐너 - 넥스포즈(NeXpose)

. 넥스포즈란? 넥스포즈(NeXpose)는 메타스플로잇 제작사인 rapid7에서 제공하는 취약점 스캐너이다. 유료 무료 버전 두가지 있는데, 테스트 한번 하려고 유료버전을 쓸 수 없으니.. 무료인 커뮤니티 버전을 이용해 보기로한다. http://www.rapid7.com/vulnerability-scanner.jsp 에서 넥스포즈에 대한 세부 정보들을 알 수 있다. 2. 설치 및 환경 설정 위 rapid7사의 url을 타고 들어가면 넥스포즈 커뮤니티 버전을 다운 받을 수 있다. 다운로드하기 전에 등록창에 뜨는데, 다른 항목은 몰라도 e-mail 주소는 정확하게 써주어야 한다. (기재한 e-mail주소로 설치할 때 필요한 키가 날아오기 때문) 다운로드 후 설치가 완료 되었다면 https://localhos..

메타스플로잇을 활용한 각종 스캔 작업

메타스플로잇을 활용한 각종 스캔 작업에 대해 알아보자. 이번 포스트에서 알아볼 스캔 종류는 하기와 같음 - SNMP - SSH - FTP - MS-SQL 서버 - SMB 1. SNMP 스캔 SNMP(Simple Network Management Protocol)는 관리자가 네트워크 장비 및 문제점을 손쉽게 처리하도록 하기 위해 고안된 프로토콜이다. 보통 대역폭 이용이나 충동률, 그 밖의 정보를 보고하기위해 네트워크 장치에서 사용한다. 그리고 일부 OS는 CPU정보, 비점유 메모리, 시스템 세부 정보를 제공하기 위해 SNMP 서버를 운용한다. 이 부분에서 문제가 생긴다. 관리자의 편의가 해커들에겐 좋은 먹잇감이 될 수 있다는 것..( SNMP v3를 쓰는걸 추천. v1, v2는 태생부터 취약함.) 예를 들..

Nmap 스캐너

스캐너의 대장 nmap에 대해 알아보자. nmap을 위한 책이 따로 있을 정도로 활용 범위가 높은 도구이다. 실무에서도 당연히 활용도 높게 사용되어지고 있다. 이놈의 많은 기능들을 여기에 다 쓸 수 없기에.. 자주 사용되는 기능, 명령어들을 알아보자. 윈도우 환경은 따로 다운 받아야 하지만, https://nmap.org/ 리눅스 환경은 기존에 설치돼있는 OS가 많다. nmap 치고 그냥 옵션 달아서 쓰면된다. 아래는 nmap에서 자주 사용되는 스캔 타입이다. TCP나 half-open은 알거고.. * FIN, X-MAS, NULL 스캔 방화벽으로 필터돼있을 때 사용. 3가지 전부다 똑같은 반응이 옴. 포트 열려있으면 응답 없음 포트 닫혀있으면 RST 수신 * Ping 스캔 말 그대로 ping ( ICM..

메타스플로잇을 활용한 수동적 정보 수집

* 수동적 정보 수집 이란? - 수동적이고 간접적인 수집 방법으로, 피해자 시스템에 직접 접근하지 않은 상태에서 정보를 얻는 행위를 말한다. 네트워크 영역, 관리자 정보, 대상 시스템 정보 (OS, 웹서버) 등을 알 수 있다. Yeti 혹은 whois 같은 일부 도구는 대상에 영향을 미치지 않고 정보 수집이 가능하다. 여기에 대한 내용은 너무 방대하므로.. 개념 도입 위주로 포스팅한다. * OSINT(Open Source Intelligence : 오픈 소스 정보) - 대상에 대한 정보 검색, 조회, 수집이 가능한 공개된 정보를 수집하는 저장 공간이다. * Whois 룩업 whois [url] 을 입력하면 그 웹사이트의 도메인 서버 이름과 그 외 각각의 정보 수집이 가능하다. 큰 기관의 경우 DNS를 사..

메타스플로잇을 이용한 Exploit 테스트 (MS08-067_NetAPI)

1. MS08-067_NetAPI 발생 원인 - 마이크로소프트 윈도우 서버 서비스들은 파일 이나 프린트 서비스의 공유를 지원한다. 이 서비스에서 원격 실행 코드에 취약하다는 것이 발견 되었다. 예를 들어, 서버 서비스 구성 요소에 특수한 경로로 조작된 RPC 요청으로 인해 스택 메모리에 손상을 준다. netapi32.dll의 NetprPathCanonicalize() 영향을 받는다. netapi32.dll 파일에서 비롯된 취약점이라 이름도 MS08-067_NetAPI 이다. 2. 테스트 환경 - 공격자: 192.168.117.129 (OS: Backtrack5 R3) - 피해자: 192.168.117.130 (OS: Windows XP SP2) 3. 테스트 과정 및 결과 a. msfconsole을 실행하..

메타스플로잇(Metasploit ) 개요

메타스플로잇 기본 용어 * Exploit: 공격자나 침투 테스터들이 시스템, 응용프로그램 또는 서비스에 있는 결함을 이용하는 거을 의미한다. 시스템을 공격해 개발자가 결코 의도하지 않은 특정한 결과를 도출하기 위한 방법으로 exploit을 사용한다. 일반적인 exploit은 버퍼오버플로우, 웹 어플리케이션 취약점 그리고 설정상의 오류를 포함한다. * payload: 시스템 상에서 실행되길 원하는 코드이자, framework에 의해 선택 되고 처리되는 코드이다. 예를 들어, 리버스 쉘은 공격 대상의 시스템으로부터 공격자에게 윈도우 명령 프롬프트 연결을 생성해주고, bind shell은 공격 대상의 열린 포트에 공격자가 연결할 수 있는 명령창을 bind해주는 페이로드이다. 페이로드는 공격 대상의 운영체제 상..

리눅스 환경의 스레드(Threads)

우리가 흔히 다중 작업을 떠올려본다면 fork를 이용하여 여러개의 프로세스를 생성하여 각각 작업을 하는 것을 떠올릴 것이다. 근데 프로세스를 새로 생성한다는 것은 생각보다 무거운 작업이다. 그래서 스레드라는 것이 나온다. 스레드는 하나의 프로세스가 여러개의 작업을 동시에 할 수 있도록 해주는 것이다. 이렇게 하나의 프로세스에 여러개의 스레드를 둔다면, 프로세스가 동시에 여러가지 작업을 할 수 있게 된다. (시간을 쪼개어 CPU 점유를 분할하는 것임) 아파치 웹서버를 예를 들어보자. 위 처럼 웹서버 같은 데서는 스레드를 이용하여 여러 명의 사용자와 세션을 맺어 다중 처리 서버를 구현할 수 있다. 스레드는 다른 영역은 공유하지만, 스택영역은 별개로 쓴다. ​그리하여 fork 보다 훨씬 효율적이다. 스레드간에..

리눅스 환경의 시그널(signal)

시그널에 대해 알아보자. 이미 여러번 시그널에 대한 얘기를 했지만 이번에 이게 뭔지 제대로 알아 보자. 시그널은 소프트웨어(S/W) 인터럽트이다. 하드웨어 인터럽트도 있겠지? 그건 H/W 장치의 입출력에 대한 인터럽트이고, 시그널은 소프트웨어의 상황에 따른 인터럽트로, 비동기적인(asynchronous) 이벤트에 대한 핸들링을 하는 것이다. 예를 들어, 사용자가 프로그램을 멈추거나 종료시키면 발생하는 "메세지"정도로 보면 되겠다. (실제로 windows 환경에서는 signal 을 message 라고 표현함) 비동기적 이벤트란, 예측이 불가능 한 이벤트를 말한다. (동기적(synchronous) 이벤트는 scanf가 실행됐을 때 입력을 받아야 block이 풀리는 것 같이 예측 가능한 상황을 말함) 시그널의..

표준 입출력 라이브러리 (Standard I/O Library)

standard i/o 라이브러리 즉, #include 에 정의된 라이브러리 함수들에 대해 알아볼 것이다. 얘네들은 UNIX관련 표준은 아닌데.. 왜냐면 다른 OS에서도 이 친구들을 사용할 수 있기 때문이다. 표준 I/O 라이브러리 들이 대단한 이유는.. 역사를 좀 타고 올라가보면 Mike Lesk라는 사람이 처음에 Portable I/O 라이브러리를 만들었는데, 데니스 리치님께서 1975년경에 이것을 크게 뜯어고쳤는데 이게 지금까지도 별로 수정된 부분없이 계속해서 쓰이고 있다는 점이다. 쩐다.. 먼저 stdio를 공부하기 위해 스트림(stream)과 FILE 구조체에 대한 개념을 알아야 한다. 저번에 배운 File I/O 함수들, read, write, open 등의 함수들을 컨트롤하기 위해 파일 디스..

리눅스 프로세스 상호 관계

이전까지 프로세스를 어떻게 제어하는지에 대한 내용을 보았다. 이제 이 프로세스들이 서로 어떤 관계들이 성립하는지에 대한 내용을 볼 것이다. 먼저 UNIX 시스템에 사용자가 로그인하는 과정에 대한 얘기를 해볼까 한다. 터미널 로그인에 대한 내용을 보겠다. 먼저, init 프로세스가 터미널이 생성될 때마다 fork로 복사가 된다. 하나의 터미널당 한번 init을 하나씩 복사하는 것이다. 그리고 exec류 함수를 이용하여 fork로 생성된 자식 init 프로세스를 getty 라는 프로그램으로 변경한다. 지금 상태의 getty는 텅텅 비어있다. (getty는 터미널을 열고 초기환경 설정 및 시스템에 열린 터미널을 관리하는 프로그램이다.) 자 이제 getty가 실행이 되었다. 그다음은 getty가 다시 exec류..

반응형