우분투 설치

오픈 스택을 설치하는 방법으로는 3가지가 있다

1. 메뉴얼을 이용한 설치

2. Devstack을 이용한 설치

3. 자동화 툴을 이용한 설치


Devstack을 이용하여 설치하기 위해 OS는 리눅스 환경에서 진행해야 하기 때문에 OS를 먼저 설치해준다

대표적인 리눅스 OS인 CentOS와 Ubuntu가 있는데 오픈스택은 Ubuntu를 기반으로 만들어졌기 때문에 Ubuntu를 설치하도록 한다


준비 환경 : VMware, UbuntuOS.iso, 고급 사양의 PC

(오픈스택으로 사용자들에게 서비스를 제공해주어야 하기 때문에 사양은 높으면 높을수록 좋다)

최소 PC 사양 : CPU 8 Core / RAM 16GB - 뇌피셜



1. VMware - New Virtual Muchine 새로운 가상머신 Ubuntu로 만들어준다





2. 본인은 CPU Core 2개, 메모리 4GB 스펙의 가상머신을 만들었는데

나중에 오픈스택 인스턴트 하나도 못만들고 계속 뻗어서 아무것도 할 수 없었다

최소 가상머신 사양을 메모리 8GB를 권장




3. 보통 가상머신과는 달리 바로 본체 디스크에 가상 디스크 공간을 할당해준다




4. 언어는 혹시 모를 에러 방지를 위해 한국어가 아닌 영어로 진행한다




5. 우분투 설치를 진행한다




6. 다시 영어로 선택해서 진행




7. 어느 나라든 상관은 없지만 본인은 미국



8. 키보드 설정은 기본 설정값인 <No>



9. 다시 언어는 미국 영어




10. 기본값인 맨 위의 미국 영어




11. 네트워크 설정도 기본설정값인 <No>




12. 그리고 나중에 설치 이후에 네트워크를 설정할 수 있기 때문에 일단 설치를 위해 나중에 설정하겠다고 진행




13. Hostname은 아무 이름이나 상관없으나 본인은 openstack




14. username도 아무 이름이나 상관이 없기 때문에 본인 이니셜로 진행



15. user password 설정으로 본인은 암호1.




16. 비밀번호가 취약하다고 하지만 본인은 <Yes>로 강행




17. 홈 디렉토리를 암호화할지 설정하는 것으로 <Yes>로 진행




18. 지역시간을 설정하는데 본인은 미국을 택했기에 그냥 기본값으로 진행




19. 디크스 파티션 설정은 맨 위 설정으로 진행

Guided - use entire disk




20. 디스크 파티션 설정으로 기본 디스크로 진행




21. 기본값 그대로 <Yes>




22. 자동 업데이트는 하지 않는 걸로 진행

No automatic updates




23. 설치할 소프트웨어를 선택하는 단계로 맨 밑 3가지를 체크하고 진행

standard system uilities

Virtual Machine host

OpenSSH server

(체크/해제는 Space, 다음 설치 단계 진행은 Enter)




24. GRUB boot loader 설정으로 기본값인 <Yes>로 진행




25. 계속 진행하고나서 설정한 user로 로그인하면 우분투 준비 완료


우분투 설치 끝

Cloud Service of OpenStack


OpenStack

Iaas 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트로 원래는 NASN와 Rackspace가 공동으로 시작한 오픈소스 프로젝트


1. 시스템 관련 클라우드 서비스

- Nova

인스턴스를 생성하고 관리하는 서비스(쉽게 Nova = VM)

2. 스토리지 관련 클라우드 서비스

- Swift

객체 스토리지


- Cinder

블록 스토리지


3. 네트워크 관련 클라우드 서비스

- Neutron

네트워크와 IP 주소들을 관리하는 서비스로 OpneFlow나 SDN 기술로 큰 규모의 네트워크를 지원할 수 있으며

IDS, Load Balancing, VPN 등과 같은 서비스의 확장 프레임워크를 제공한다


4. 데이터 관련 클라우드 서비스

-Glance

이미지 파일 관련 관리 서비스(ex. ISO 파일, 스냅샷 등)


- Ceilometer


5. 기타 클라우드 서비스

- Horizon

대시보드 제공


- Keystone

인증 관련


- Designate

DNS Server

Cloud Service of Amazon

1. 시스템 관련 클라우드 서비스

- EC2(Elastic Compute Cloud)

클라우드 환경에서 서버를 할당받아 사용하는 서비스, 서버 호스팅과 유사한 개념이지만 실제 물리적인 서버를 할당받는 서버 호스팅과 달리

클라우드 환경에서 가상 서버를 할당받는다는 점이 다르고 쉽게 가상 머신 하나를 할당받아서 사용하는 거라 생각하면 쉽다


- Auto Scaling(Scale up & down)

수요에 따라 EC2의 규모를 자동으로 조절할 수 있는 서비스

ex. Web Server의 CPU load가 50% 이상일 때 새로운 Web Server를 추가하도록 설정 가능


2. 스토리지 관련 클라우드 서비스

- S3(Simple Storage Service) : 네트워크 스토리지 개념

객체 스토리지 서비스로 네트워크로 접근이 가능하고 EC2에서 마운트해서 사용할 수도 있다

스토리지 혼자 존재 가능(ex. NAS Server)    // iptime + 디스크 개념으로 네트워크 접근이 가능한 저장 공간


- EBS(Elastic Block Storage) : 서버에 추가할 수 있는 HW 스토리지 개념

EC2 인스턴스에서 사용할 수 있는 블록 스토리지로 용량 및 IOPS 설정 등이 가능

스토리지 혼자 존재 불가능


- Glacier

저비용 데이터 보관 및 백업 서비스로 자주 사용되지 않는 데이터를 보관 및 백업하는데 유용한 서비스


- CloudFront

콘텐츠 전송용 웹 서비스로 CDN과 비슷한 서비스(보통 콘텐츠 데이터가 크다)

EC2나 S3같은 서비스에서 사용 시 가장 가까운 엣지로 자동 라우팅되어 콘텐츠 전송 속도를 향상시킬 수 있다


- Storage Gateway

AWS 스토리지와 로컬 스토리지를 연동해주는 서비스(ex. 네이버 클라우드 마운트)

로컬에 있는 DAS, NAS, SAN 등과 같은 장비와 S3을 연동해서 메인 데이터는 S3에 두고 접근 빈도가 높은 데이터는 로컬 스토리지에 캐싱하거나

모든 데이터는 로컬 스토리지에 두고 일정 시간에 따라 주시적으로 데이터ㄹ의 스냅샷을 S3에 저장하는 등의 서비스

- Import / Export

대용량 데이터를 이동식 디바이스에 직접 Import / Export해주는 서비스

ex. 외장 하드를 직접 Amazon에 보내서 데이터를 Import 또는 Export 후 다시 돌려받는 것


3. 네트워크 관련 클라우드 서비스

- DirectConnect

AWS와 직접 연결된 전용 네트워크 서비스


- Route 53

DNS 서비스


- VPC(Virtual Private Cloud)

VPN 개념의 사설 네트워크 서비스


- Elastic Load Balancing

L4 장비가 해주는 Load Balancing 서비스


4. 데이터 관련 클라우드 서비스

- RDS(Relational Database Service)

RDBMS 클라우드 서비스(MySQL, Oracle, PostgreSQL, SQL Server 지원)

EC2에 새로운 인스턴스 생성 후 RDBMS를 직접 설치하여 사용할 수도 있지만

RDS를 사용할 경우 AWS 전문가가 관리해주기 때문에 유지보수 및 보안 이슈를 획기적으로 줄일 수 있다

하지만 서버에 직접 접근 권한은 없기 때문에 사용 시 제한이 있을 수 있다


- DynamoDB

Amazon에서 제공하는 NoSQL 데이터 베이스


- Elastic Cache

Caching 서비스, Memcached, Redis 지원


- EMR(Elastic MapReduce) : 데이터 분석기술 - 큰 데이터를 분석 후 관련지어 맵핑, 축소 과정을 반복하는 기술

AWS에서 제공하는 Hadoop 프레임워크 상에서 사용할 수 있는 MapReduce 서비스

데이터의 종류나 크기에 따라 MapReduce에 필요한 리소스의 가변폭이 큰 경우 유용하다

하지만 EMR를 이용하기 위해서 반드시 Hadoop도 AWS에 구축되어야 한다

* Hadoop(하둡) : 크게 HDFC, MapReduce 2가지 기능이 있는 프레임워크로 저사양 시스템들을 묶어서 슈퍼 컴퓨터로 만드는 방식

* MapReduce는 알고리즘이고 Word Cloud가 이 알고리즘을 이용한 것


- Data Pipeline

서버 또는 스토리지 간 주기적인 데이터 이동을 지원하는 서비스


** MySQL, Oracle, PostgreSQL, SQL Server, Redis, Memcached를 제외한 다른 애플리케이션들은 직접 설치하거나

EC2에 새로운 인스턴스를 생성할 때 Amazon Marketplace에서 포함된 OS를 선택해야 한다

Cloud Computing


Cloud

정의

Cloud = Cloud Computing

클라우드 컴퓨팅이란 내 자원이 아닌 네트워크를 통해 제공되는 클라우드 사업자의 컴퓨터에서 작업을 처리하는 것


NIST(미국 국립 표준 기술 연구소 : National Institute of Standards and Technology)에서 말하는 클라우드 컴퓨팅

공유 구성이 가능한 컴퓨팅 리소스(네트워크, 서버, 스토리지, 애플리케이션 서비스)의 통합을 통해 어디에서나 편하게

요청에 따라 네트워크를 통해 접근이 가능한 모델


NIST에서 말하는 클라우드의 특징

- 주문형 셀프 서비스 : 개별 관리 화면을 통해 서비스 이용 가능(이용자가 직접 웹에서 주문하여 이용)

- 광범위한 네트워크 접속 : 여러 가지 장비를 통해 서비스에 접속(컴퓨터, 모바일 등)

- 리소스 공유 : 사업자의 컴퓨터 리소스를 여러 사용자가 공유하는 방식

- 신속한 확장성 : 이용자의 필요에 따라 스케일 업 & 다운 가능

- 측정 가능한 서비스 : 이용한 만큼의 요금 부과, 종량제



등장 배경

1980    메인 프레임에서 대부분 처리        // 메인 컴퓨터 하나가 모든 것을 처리하고 나머지 클라이언트의 사양은 좋지 않다

1990    클라이언트에서도 처리 기능이 추가        // 어느 정도 클라이언트에서도 처리 가능

2000    사내 서버에서 처리        // 같은 작업에 대한 공유 문제 때문에 중앙 서버에서 많은 것을 처리

현재    서버에서 처리하는 것을 같으나 서버 소유X        // 네트워크 내 서버가 아닌 다른 어딘가의 서버에서 많은 것을 처리


클라우드는 이전부터 존재했던 개념이었고 이전까지는 실제로 구현하는데 여러 문제가 존재(가상화문제, 네트워크 속도, 보안 문제 등)

하지만 계속된 기술적 발전으로 현재는 실제 상용화 가능



Cloud 장점

On-Premise(기존에 사용하던 인프라)와 Cloud를 비교

- 비용 : 특정 영역에서는 기존 방식보다 저렴할 수 있지만 모든 부분에서 그런 것은 아니다(이용자의 상황마다 다르다)

클라우드 이용료냐 VS 온프레미스 운영비(서버실 임대료, 시스템 장비, 운영비)냐

- 안전성과 신뢰성 : 지리적, 물리적, 관리적으로 안전한 곳에 데이터 센터를 구축하고 전문가가 관리하기 때문에 비교적 안전하다

하지만 한 번 피해를 입을 경우 피해 규모는 훨씬 크다(온프레미스 피해 : 교통사고 / 클라우드 기업 피해 : 비행기 추락사고)

아직까지 클라우드 서비스가 공격받아서 피해를 받은 사례는 없다

- 확장성 : 이용자가 언제든지 원할 때 확장 또는 축소 가능, 프로그램이나 서비스를 통해 자동화 가능

확실하게 Cloud의 확장성은 On-Premise보다 우수하다

- 생산성과 퍼포먼스 그리고 속도


클라우드 서비스 모델

사업자

- Saas(Software as a Service)    // 사스라고 읽는다

시스템 + OS + SW, 모두 설치된 완제품 시스템을 제공

- Paas(Platform as a Service)    // 파스라고 읽는다

시스템 + OS 만 설치된 시스템을 제공하며 SW는 사용자가 직접 설치

- Iaas(Infra as a Service)    // 이아스라고 읽는다

시스템 만 설치된 시스템을 제공하며 OS나 SW는 사용자가 직접 설치

기존

Iaas 

Paas 

Saas 

애플리케이션

애플리케이션

애플리케이션 

애플리케이션 

데이터 

데이터 

데이터 

데이터 

런타임 

런타임 

런타임 

런타임 

미들웨어 

미들웨어 

미들웨어 

미들웨어 

OS 

 OS

OS 

OS 

가상화 

가상화 

가상화 

가상화 

서버 

서버 

서버 

서버 

스토리지 

스토리지 

스토리지 

스토리지 

네트워크 

네트워크 

네트워 

네트워크 

 빨간 글씨 클라우드 서비스로 제공되는 서비스




사용자

- Public Cloud

클라우드 사업자(ex. 구글, 아마존)가 구축한 시스템, 네트워크를 통해 사업자가 제공하는 서비스를 이용하는 방식

- Private Cloud

사용자가 직접 클라우드 사업자처럼 시스템을 구축하거나, 서비스를 이용하여 클라우드 환경을 구성하여 이용하는 방식

> On-Premise Private Cloud

사용자가 데이터 센터와 클라우드 환경 직접 구축

> Hosted Private Cloud

데이터 센터는 클라우드 서비스를 이용, 클라우드 환경만 직접 구축

- Community Cloud

여러 기업이나 단체가 하나의 데이터 센터 및 클라우드 환경 구축

- Hybrid Cloud

위의 클라우드 종류들 중 2가지 이상 혼합된 클라우드 방식

포트 스캔

타겟의 어느 포트의 서비스를 운영하는지 파악하기 위해 수행

타겟이 특정 서비스를 운영 중이라면 해당 서비스와 관련된 프로그램의 취약점으로 공격 가능


준비 환경

1. CentOS - 타겟, NAT, 192.168.1.100/24

2. Kali Linux - 해커, NAT, 192.168.1.77/24

데비안 계열인 Kali Linux 네트워크 설정법

/etc/network/interfaces 파일 수정

auto eth0

iface eth0 inet static

address 192.168.1.77

netmast 255.255.255.0

gateway 192.168.1.2

dns-nameservers 8.8.8.8


service networking restart

/etc/init.d/networking restart



수동 스캔

telnet [타겟 IP] [포트 번호]

텔넷으로 직접 타겟 IP와 포트 번호로 접근하여 확인



nmap 스캔 툴 이용

Kail Linux에서 CentOS로 포트 스캔하는 과정을 WireShark로 캡쳐 / 22번 포트만 열려 있는 상태


TCP Open Scan

nmap -sT -p [포트번호]-[포트번호] [타겟IP]

nmap -sT -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 TCP Open Scan 명령어

TCP 프로토콜의 3 Way-Handshake 과정

열려있는 포트에 TCP SYN 패킷을 보내면 SYN+ACK가 서버로부터 전달

닫혀있는 포트에 SYN 패킷을 보내면 RST+ACK가 서버로부터 전달, 이를 이용해서 확인하고 싶은 서비스의 포트로 SYN를 보내서 확인 가능

Open Scan의 경우 3 Way Handshake 과정을 전부 수행하기 때문에 타겟에게 해커의 정보가 남게된다


CentOS(192.168.1.100)의 22번 포트를 스캔

TCP의 3-Way HandShake 과정을 모두 거친 것을 확인할 수 있으며

마지막에 Kali(192.168.1.77)가 CentOS(192.168.1.100)에게 응답을 보냄으로써 타겟에게 접근 정보를 남기게 된다



CentOS(192.168.1.100)의 23번 포트를 스캔

TCP의 3-Way HandShake 과정이 실패한 것을 확인할 수 있으며 23번 포트는 닫혔다는 것을 확인할 수 있다



TCP Half Scan

nmap -sS -p [포트번호]-[포트번호] [타겟IP]

nmap -sS -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 TCP Half Scan 명령어

Half Scan의 경우 3 Way-handshake 과정을 전부 수행하지않고 중간에 확인만하고 중단하기 때문에 타겟에게 해커의 정보가 남지 않는다


CentOS(192.168.1.100)의 22번 포트를 스캔

TCP의 3-Way HandShake 과정을 모두 거친 것이 아니라 ACK 패킷을 보내지 않음으로써 일방적으로 끊은 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

TCP의 3-Way HandShake 과정이 실패한 것을 확인할 수 있으며 23번 포트는 닫혔다는 것을 확인할 수 있다


FIN Scan

nmap -sF -p [포트번호]-[포트번호] [타겟IP]

nmap -sF -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 FIN Scan 명령어

열려있는 포트는 FIN 패킷을 받았을 때 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 FIN 패킷을 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 FIN 패킷을 보낸 결과, RST, ACK 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다



X-max Scan

nmap -sX -p [포트번호]-[포트번호] [타겟IP]

nmap -sX -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 X-mas Scan 명령어

FIN+PSH+URG 플래그를 이용하여 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 FIN+PSH+URG 플래그를 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 FIN+PSH+URG 플래그를 보낸 결과, RST, ACK 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다



NULL Scan

nmap -sN -p [포트번호]-[포트번호] [타겟IP]

namp -sN -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 NULL Scan 명령어

아무 플래그도 사용하지 않으며 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 플래그 없이 패킷을 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 플래그 없이 패킷을 보낸 결과, RST, ACK 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다



UDP Scan

nmap -sU -p [포트번호]-[포트번호] [타겟IP]

namp -sU -p 1-100 192.168.1.100    // 192.168.1.100의 포트 번호 1~100번까지 UDP Scan 명령어

UDP를 이용하여 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 ICMP Port Unreachable 패킷으로 응답


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 UDP 패킷을 보냈지만 응답이 없는 것으로 보아 22번 포트는 열려있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 UDP 패킷을 보낸 결과, Destination unreachable 응답을 보냈고 23번 포트는 닫혔다는 것을 확인할 수 있다




Decoy Scan

nmap -sT -p [포트번호]-[포트번호] -D [임의 IP],[임의 IP],.. [타겟IP]

nmap -sT -p 1-100 -D 1.1.1.1, 2.2.2.2 192.168.1.100

스캔할 때 설정한 IP를 출발지 IP로 설정해서 실제 해커의 IP와 섞어서 보내는 공격


CentOS(192.168.1.100)의 22번 포트를 스캔

CentOS(192.168.1.100)에게 X-mas Scan과 동일하게 FIN+PSH+URG 플래그를 보내지만 Kali Linux를 포함하여

설정한 IP주소(1.1.1.1, 2.2.2.2)도 포함하여 패킷을 보냈고 응답이 없는 것으로 보아 22번 포트는 열려 있다는 것을 확인할 수 있다



CentOS(192.168.1.100)의 23번 포트를 스캔

CentOS(192.168.1.100)에게 X-mas Scan과 동일하게 FIN+PSH+URG 플래그를 설정한 IP주소(1.1.1.1, 2.2.2.2)를 포함하여 보낸 결과,

RST, ACK 응답을 보냈고 23번 포트가 닫혀 있다는 것을 확인할 수 있다




IDLE Scan

nmap -sI [도메인] -p [포트번호]-[포트번호] [타겟IP]

다른 IP로 위장해서 스캔 공격



'IT > Network' 카테고리의 다른 글

네트워크 보안  (0) 2018.10.23

Network Security


준비물 : Kali Linux(우분투 리눅스 기반 OS, 여러 종류의 해킹 및 보안 관련 프로그램이 설치되어 있는 OS)


일반적인 해킹 과정

정보 수집 -> 취약점 확인 -> 관리자 권한 획득

(정보 : OS 버전, 응용 프록램, IP주소, 도메인 등)



정보 수집

구글 검색

intilte:[검색어] - 탭 제목에 포함된 내용으로 검색

filetype:[검색어] - 특정 파일 확장자로 검색

site:[검색어] - 특정 도메인 주소 검색

inurl:[검색어] - URL에 포함된 문자 검색


정보 수집 사이트

news.netcraft.com : Internet Data Mining -> Hosting Provider -> Analysis -> 오른쪽에 정보를 수집하고 싶은 도메인 입력

(서버의 OS정보, 웹 서버 정보 , IP 등 확인 가능)

archive.org : 특정 도메인의 업데이트 내역 기록

zone-h.org : 취약점이 존재하는 홈페이지 기록



네트워크 패킷을 이용한 해킹

포트스캔을 이용한 정보수집

타겟이 서비스 중인 서비스를 파악하기 위해 수행(ex. 포트번호 80번은 웹, 53번은 DNS 등 해당 서비스가 서비스 중인지 확인)

타겟이 특정 서비스를 실행 중이면 해당하는 서비스와 관련된 프로그램의 취약점으로 공격 가능


TCP Open Scan

TCP 프로토콜의 3 Way-Handshake 과정으로 열려있는 포트에 TCP SYN 패킷을 보내면 SYN+ACK가 서버로부터 전달

닫혀있는 포트에 SYN 패킷을 보내면 RST+ACK가 서버로부터 전달된다 이를 이용해서 확인하고 싶은 서비스의 포트로 SYN를 보내서 확인 가능

Open Scan의 경우 3 Way Handshake 과정을 전부 수행하기 때문에 타겟에게 해커의 정보가 남게된다

nmap -sT -p [포트번호]-[포트번호] [타겟IP]


TCP Half Scan

Half Scan의 경우 3 Way-handshake 과정을 전부 수행하지않고 중간에 확인만하고 중단하기 때문에 타겟에게 해커의 정보가 남지 않는다

nmap -sS -p [포트번호]-[포트번호] [타겟IP]


FIN Scan

열려있는 포트는 FIN 패킷을 받았을 때 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답

nmap -sF -p [포트번호]-[포트번호] [타겟IP]


X-mas Scan

FIN+PSH+URG 플래그를 이용하여 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답

nmap -sX -p [포트번호]-[포트번호] [타겟IP]


NULL Scan

아무 플래그도 사용하지 않으며 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 RST+ACK로 응답

nmap -sN -p [포트번호]-[포트번호] [타겟IP]


UDP Scan

UDP를 이용하여 열려있는 포트는 아무 반응이 없지만, 닫혀있는 포트는 ICMP Port Unreachable 패킷으로 응답

nmap -sU -p [포트번호]-[포트번호] [타겟IP]


Decoy Scan

스캔할 때 설정한 IP를 출발지 IP로 설정해서 실제 해커의 IP와 섞어서 보내는 공격

nmap -sT -p [포트번호]-[포트번호] -D [임의 IP],[임의 IP],.. [타겟IP]


IDLE Scan

다른 IP로 위장해서 스캔 공격

nmap -sI [도메인-p [포트번호]-[포트번호] [타겟IP]


스니핑과 스푸핑

스니핑 : sniff에서 유래되어 상대 네트워크 패킷을 훔쳐보는 공격(소극적)

스푸핑 : spoof에서 유래되어 무언가를 조작해서 속이는 공격(적극적)


ARP 스푸핑을 이용한 스니핑

ARP 프로토콜은 IP주소를 이용해서 MAC주소를 알아오는 프로토콜

ARP 요청 패킷을 브로드캐스트로 보내고 상대방에게 ARP 응답 패킷을 받으면 해당 내용을 ARP 테이블에 등록

이 때 응답 패킷을 받는 시스템에서는 어떠한 확인 절차 없이 응답 패킷의 내용을 등록

만약 해커가 ARP 응답 프로토콜을 출발지 IP주소를 GW 주소로 설정하고, 출발지 MAC주소를 해커의 MAC주소로 변경한 후

응답 패킷을 보내면 해당 패킷을 받는 시스템은 GW와 통신할 때 해커에게 모든 패킷을 전달


보안

방화벽, 공유기의 설정에서 ARP 보안 설정, ARP 테이블을 Static으로 설정


사이드 재킹

MITM 공격을 수행 중일 때 사용자의 인터넷 이용 기록(쿠키)을 기록하는 공격


promiscuous모드를 이용한 스니핑

promisc모드는 자신이 목적지가 아닌 패킷도 전부 받아들이는 것


리눅스 네트워크 장치의 기능을 이용하는 방법

ifconfig [네트워크 장치명] promisc    //설정

ifconfig [네트워크 장치명] promisc    //해제


Wireshark의 기능을 이용하는 방법

Wireshark 패킷 캡처 전 설정에서 promiscuous모드 체크


ICMP Redirect를 이용한 스니핑

ICMP의 Type 5번 패킷을 이용한 타겟의 라우팅 테이블의 특정 라우팅 정보를 수정 또는 추가


hping3 -1 --icmptype 5 -- icmpcode 1 -a [GW IP] --icmp-ipdst [타겟->목적IP] -- icmp-gw [해커IP] --icmp-ipsrc [타겟IP] [타겟IP]

(개행없이 한 줄 코드)



dsniff 도구

각종 스니핑 기법들을 위한 자동화 도구, 단순한 도구가 아닌 스니핑을 했을 때 필요한 추가적인 툴을 가지고 있다

filesnarf : NFS를 이용해서 파일을 접근 또는 저장할 때 해당 파일을 해커 디스크에 저장

urlsnarf : HTTP의 모든 URL을 기록

mailsnarf : SMTP, POP3 프로토콜로 통신하는 메일 송수신 내용을 기록

arpspoof : ARP 스푸핑 공격

dnsspoof : DNS 스푸핑 공격

'IT > Network' 카테고리의 다른 글

네트워크 보안 : 포트 스캔 실습  (0) 2018.10.31

Windows 2012 OS를 설치하기 위해 VMware 프로그램의 가상 머신을 생성하여 설치해보자


준비 환경 : VMware 프로그램, Windows2012.iso



1. VMware 프로그램에서 새로운 가상 머신을 만든다

VMware 좌측 상단 - File - New Virtual Machine




2. 새 가상 머신 마법사 창이 뜨면 Typical Type을 체크하고 진행한다




3. OS를 어떻게 설치하냐는 창이 뜨면 나중에 설치하겠다는 항목으로 진행




4. 설치할 OS(Windows2012)를 항목에서 골라서 진행한다




5. 가상 머신 이름과 저장할 위치를 지정해준다




6. 가상 머신의 디스크 용량과 어떻게 저장할지는 기본 설정값으로 진행한다

(Split virtual disk into multiple files : 파일을 여러 개로 쪼개어 분산하여 저장하는 방식)




7. 그대로 설치 종료




8. 설치된 가상 머신에 OS를 설치하기 위해 준비한 OS의 iso파일을 가상 머신 부팅에 연결해 주기 위해 CD/DVD 설정을 누른다



9. 준비한 iso파일을 지정해준다




10. 좌측 상단의 버튼으로 가상머신을 실행해준다




11. Windows2012 설치를 진행한다




12. Windows Server 2012 R2 Datacenter로 진행해준다

Standard보다는 Datacenter가 더 비싸고 서비스 기능도 많기 때문에 당연히 Datacenter

Windows OS인데 GUI가 없으면 의미가 없으니 GUI 포함




13. 사용자 지정으로 진행해준다




14. 디스크 포맷인데 추후 디스크에 대해 자세히 알아보고 기본 설정값으로 진행한다




15. 비밀번호 설정해준다




16. VMware Tools 설치

VMware 상단 메뉴 - VM - Install VMware Tools




17. 자동으로 진행이 되지 않는다면 내 PC에 들어가서 직접 D드라이브 실행한다




18. VMware 상단 메뉴 - View - Autosize - Autofit Guest

앞으로 자동으로 화면을 사이즈에 맞게 조정되기 때문에 화면 잘리는 일 없이 잘 보일 거다




19. 인터넷 접속 후 '권장되는 보안 및 호환성 설정 사용'으로 설정한다




20. 네트워크 연결 - Ethernet0 우클릭 - 속성

네트워크 연결에서 IPv6는 Off 그리고 IPv4는 설정 진입

(네트워크 연결 : 실행창 - ncpa.cpl)

(차후 네트워크 테스트 시 갑자기 IPv4가 아닌 IPv6로 연결을 시도해서 헷갈리게 될 경우를 방지하기 위해 IPv6는 Off)




21. 가상 머신의 IP주소를 설정한다




22. 컴퓨터 이름을 변경해준다

시스템 속성 - 변경

(시스템 속성 : 실행창 - sysdm.cpl)




23. 컴퓨터 이름을 FIRST로 변경한다




24. 복잡한 비밀번호를 간단하게 바꾸기 위해 암호 정책 변경한다

로컬 보안 정책 - 계정 정책 - 암호 정책 - 암호는 복잡성을 만족해야 함

(로컬 보안 정책 : 실행창 - secpol.msc)




25. 사용 안 함으로 설정한다




26. 암호를 변경한다

컴퓨터 관리 - 로컬 사용자 및 그룹 - 사용자 - Administrator 우클릭 - 암호 변경

(컴퓨터 관리 : compmgmt.msc)




27. 화면이 자동으로 꺼지는 화면보호기를 설정한다

제어판 - 하드웨어 - 전원 옵션 - 전원 관리 옵션 설정 편집 - 디스플레이 끄기 '해당 없음' 




28. Windows 자동 업데이크를 꺼준다

제어판 - 시스템 및 보안 - Windows 업데이트




29. '업데이트를 확인하지 않음'으로 설정한다




30. 모든 기본 설정이 완료되었다면 VMware에서 제공하는 스냅샷 기능으로 저장해준다(일종의 백업기능)

VMware 상단 메뉴의 스냅샷 버튼




31. 스냅샷 저장한다


+ Recent posts