'[학습] WMware 환경설정 ( 중단 ) /1. 기초해킹 정보수집 과정'에 해당되는 글 5건

Scanning 개요

 

앞서서 우리는 Foot Printing 으로 대상의 위치를 알아냈습니다.

이젠 그 서버가 현재 죽어있는지, 살아있는지, 만약 살아있다면 이제 어떤 경로로 침투해야 할지 길을 찾아야 합니다. 


 - 목표 네트워크에서 동작중인 시스템 탐색(os, 서비스 등등)
 

 


종류

앞 글의 전반적인 로드맵 글반드시 숙지하시기 바랍니다!!


 - Active Host Scanning ( 해당 네트워크의 동작중 유/무 확인 )
 - Port Scanning ( 살아있을 경우 포트 확인 )
 - Vulnerability Scanning

 

로 구성이 됩니다.

 

 

 

 • (4계층 장비) Port 란?


 1. 서비스의 종류
 2. 전송방식을 결정

 

OSI Layer 7계층에서 Port 를 사용하는 것은 4계층이라고 이미 아실 겁니다.
 
윈도우는 "웹서버는 포트80이고, tcp/ip 프로토콜을 사용한다"는 사실을 로컬 컴퓨터의 C:\Windows\System32\drivers\etc\services 에 저장하고 있습니다.

보내는 입장에서는 이미 계층의 정보를 알고 보내기에 상관없으나, 받는 입장(목적지)에서는 데이터가 들어오는 포트를 보고 데이터의 종류를 알 수 있게 되지요.

포트 번호 = 2byte(=16bit)
0~65535 의 총 65536(2의16승) 의 번호를 가지게 됩니다.

 

 1. 0~1023 = Well Known Port 
 - 잘 알려진 서비스를 구분하기 위한 서비스 ( 이미 지정된 포트 )
 - 25 smtp(메일 보내기), 110 pop3(메일 받기), 80 http . 43 whois 20,21 ftp, 22 ssh 67/68 dhcp 69 tftp 53 dns 161/162 snmp 등등...

위의 services 파일을 열어보시기 바랍니다.
 


 2. 1024~49151 = DCCP well Known Port = Registed port 
 - 등록된 포트 ( 주로 업체들이 사용 )


 
 3. 49152~65535 = Random Port
 - 데이터가 생성된 후 출발지 포트 등으로 사용합니다.

 


 

 

(1) Active Host Scanning
( 해당 네트워크의 동작중 유/무 확인 )


 Scanning 기법 중 가장 기본적인 방법으로 ping 을 보내서 흔히 확인하는 방법입니다. ( ICMP 프로토콜을 사용 )


ICMP : IP 를 도와주는 프로토콜 ( 3계층 )


 - Internet Control Message Protocol
 - IP 는 신뢰성을 보장할 수 없으므로, 장애 발생시 수신측에서 송신측으로 TYPE값을 통해 정보를 전달할 필요가 있습니다. 그에 사용되는 프로토콜입니다.
 - type 0,8 (echo reply/request) - 통신 전달 검증 ( 8번을 통해 요청 - 0번으로 응답 = 통신 정상 )
 

개수가 많을 경우 자동화된 툴을 이용할 수 있습니다.


(백트랙 기본설치) NMAP
 - 네트워크 보안을 목적으로 하는 스캐닝 툴.


(백트랙 기본설치) hping
 - TCP/IP packet generator 로써 packet 내부의 값을 옵션을 통해 지정해서 변경할 수 있는 툴. 일반적으로 포트 스캔, 방화벽 룰 테스트 등의 네트워크 성능과 보안성을 검증하기 위해 사용합니다.

 


활용 : 네트워크 통신 검증
 에러 메시지 검출

 

Ping 정보의 TTL = Time to Live ( 루프로 인한 다운 현상을 방지하기 위해, 최대한 패킷이 살아있을 시간 TTL 을 지정하게 됩니다.

 

목적지의 시스템 운영체제에 따라 디폴트 값이 달라짐.

 

TTL 값

 1. Linux Kernel 2.2 ~ 2.4 : ( ICMP 요청패킷 : 255 / 응답패킷 : 64 )
 2. Linux Kernel 2.0 ( 요청패킷 : 64 / 응답패킷 : 64 )
 3. Free BSD ( 요청패킷 : 255 / 응답패킷 : 255 )
 4. Solaris ( 요청패킷 : 255 / 응답패킷 : 255 )
 5. HP-UX ( 255/255 )
 6. Windows 95 ( 32 / 32 )
 7. Windows 98 ( 128 / 32 )
 8. Windows NT ( 128 / 32 )
 9. Windows 2000 ( 128 / 128 )

 

NMAP


 - 다운로드 및 설치 : www.nmap.org
 

 

 

프리피스 입력으로 해당 네트워크의 모든 살아있는 호스트를 체크할 수 있습니다.

추가로 네임서버조회도 동시에 실행됩니다.

 외부망 ICMP 외에 내부망(로컬) ARP 프로토콜 테스트도 가능합니다.

(죽어있는 호스트는 보이지 않으므로, 파악이 용이합니다. )

 

이제 우리는 DNS 서버를 공격하여 test.co.kr 의 여러 admin, cafe, ns1, ss 등의 트리 서버들을 알아내었고, nmap 을 이용하여, 현재 그 중 진짜로 살아있는 서버는 ns1.test.co.kr 하나뿐이라는 사실까지 확인할 수 있었습니다.

이제 저 살아있는 하나의 서버를 Port Scan 기법인 TCP scanning 을 해 봅시다

 

[ 다음 단원으로 ]

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

DNS ( Domain Name System ) 란?

 

- 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석해주는 TCP/IP 네트워크 서비스이다. ( 백과사전 )

 

FQDN - (절대경로) blog.naver.com.

= Fully QulifIied Domain Name

PQDN - (상대경로) blog(.naver.com.)
  상위 naver 에 소속되어 있는 구간에서의 독립 사용가능한 주소를 의미.

최대 63자까지만 사용가능.

마지막에 . 을 안 붙여도 보통 상관이 없습니다만 실제로는 존재한다고 보시면 됩니다.

 

차후 DNS Spoofing 이라는 공격 기법에서 DNS 의 정의와 포맷 등을 자세하게 다룰 예정이니, 지금은 이 DNS 의 간략한 정의와, 타겟의 DNS 정보를 어떻게 수집하여, 공격 기반의 초석을 다질 것인지 알아봅니다.

 

 

 

 

 

클라이언트가 DNS 를 요청하는 순서


 1. 클라이언트의 hosts 파일
 2. DNS 캐쉬
 3. DNS 요청(쿼리) - 내부 ( 로컬 쿼리 ) , 외부 DNS 서버 연동된 질의( 재귀 쿼리 )
 - DNS 서버 세팅된 곳을 목적지로 지정합니다.
 
DNS 서버도 일단 

 1. 자신의 캐쉬를 확인후 해당 도메인 정보가 없으면
 2. ZONE 영역을 확인. 거기서도 없으면
 3. Root Hint 지정 ( 상위의 ROOT DNS 에게 모르는 것을 묻습니다. )
 
 www.naver.com.     오른쪽의 .부터 역순으로 하나씩 DNS질의를 합니다.
 보통 해당 dns서버는 상위 한 단계의 정보만 가지고 있습니다.
 
 Ex).은 앞의 com의 정보만. Com의 dns서버는 naver 라는 곳의 정보만 가지고 있습니다.

즉, 순서대로 거슬러 올라가면, 결국 상위 루트 DNS 에서 알려주기 때문에, DNS 서버에 해당 도메인 서버의 정보가 없어도, 세계 어느 곳이던지 도메인명으로 찾아갈 수 있게 되는 것입니다.
 
 

 


 

- 윈도우즈에서의 DNS 캐쉬 초기화 


c:\windows\system32\driver\etc\hosts

Hosts 변경후 웹브라우저를 닫고
Ipconfig /flushdns 로 dns정보를 초기화

Hosts에 의한 dns요청정보를 확인하려면
Ipconfig /displaydns

 

 - 리눅스의 DNS 캐쉬 정보 초기화
 
 1. 리눅스의 hosts 는 /etc/hosts
 
 2. 서비스 초기화 ( service nscd restart )
 

 - MAC OS 의 DNS 캐시정보 초기화하기
 
 dscacheutil -flushcache

 

[ 특정 사이트의 DNS 정보 검색하기]

 

 

1. Whois 서비스 ( 4계층 스위치 )

 

한국  http://whois.kisa.or.kr

DNS LIST
(통신사별)
 1. SK Broadband 
   - 주 : 219.250.36.130
 - 보조 : 210.220.163.82
 2. KT
 - 168.126.63.1 / 2
 3. LG 파워콤
 - 164.124.101.2 / 203.248.252.2
 4. KT 지역별 DNS
 - 서울 : 168.126.63.1 / 2
 - 인천 : 61.74.63.1 / 168.126.63.1
 - 수원 : 61.77.63.1 / 168.126.63.1
 - 대전 : 61.81.63.1 / 168.126.63.1
 - 광주 : 203.251.63.1 / 168.126.63.1
 - 대구 : 211.229.63.1 / 168.126.63.1
 - 부산 : 211.216.63.1 / 168.126.63.1

보통 다음과 같은 정보들을 획득할 수 있습니다.

 

naver.com

 

 등록, 관리 기관
 도메인 이름
 목표 사이트 네트워크 주소와 IP 주소
 관리자, 기술 관련 정보
 등록자, 관리자, 기술 관리자
 레코드 생성 시기와 업데이트 시기
 주 DNS 서버와 보조 DNS 서버
 IP 주소의 할당 지역 위치
 관리자 이메일 계정

 

2. Linux 의 NC ( network cat ) 을 이용한 DNS 정보 수집

 

- 테스트 조건(Backtrack 환경)


 

 

 - NAT 랜카드를 입력후 DHCP 로 자동 임대 받아서 공인아이피 인터넷이 가능한 환경을 구성합니다. 

= ( 랜카드 VMnet8 (NAT ) 로 세팅 )

= 그 후 , dhclient eth0 입력하여 자동 IP 를 할당 받습니다. ifconfig 로 확인!
 

통신 구성 및 연결 확인 하기

 1. 게이트웨이 연결 여부를 확인 ( 로컬 if/pconfig /all ) , route
 2. IP/도메인으로 각각 외부 통신여부 확인 ( ping )

 

 

 

nc -v whois.kisa.or.kr 43 을 입력

( -v :상세 보기  , 43 = port )

그 후 원하는 검색 도메인명( ex : nate.com )을 입력.

whois nate.com 도 동일한 결과값을 얻을 수 있습니다.

 

 

 

 

3. Windows의 SmartWhois 를 이용한 DNS 정보 수집

 

 

 

 

4. netcraft 를 이용한 정보 수집

www.netcraft.com 에 접속하여 사이트를 검색.

 

 

5. nslookup 을 이용한 DNS 정보 수집

리눅스/윈도우즈 공통적으로 사용할수 있는 기본 내장 "네임서버 조회" 입니다.

 

조회를 거칠 네임서버를 직접 지정할 수 있습니다. 

 

 

ns1.nate.com 을 글로벌 도메인으로 연결 후, nate 관련 정보 검색

 

 

검색 타입을 SOA 로 바꾸고 세부 정보 검색

DNS에서의 SOA Type?

= 해당 도메인 네임서버에서의 이름을 할당 후, 해당 캐쉬(세션의 개념으로 이해하시면 됩니다 )의 유지/지속시간을 설정하는 Record 입니다. 즉 아래와 같이 각종 상황에 대한 지속시간의 정보가 나오는 것을 보실 수 있습니다.

 

 

 

리눅스의 dig 명령어를 이용한 사이트 정보 획득

1) 기본적으로 알아낸 네임서버 주소를 입력하여, 아이피를 획득

 

2) 해당 글로벌 네임서버 주소를 @로 기입하고 nate의 전체 도메인 구조 검색.

 

해당 네임서버의 구조와 아이피를 적에게 노출시키는 자체가 사실 공격의 빌미를 제공하게 되죠.  그래서 요즘은 보통 특정 대상에게만, 또는 외부에 정보를 노출하지 않도록 설정하는 곳이 많습니다. ( 이런 정보 노출했다가 작년에 국내 대형포털 n 모 곳이 해킹의 빌미를 제공했었죠 .. 일명 Zone Transfer 공격 기법이라고 합니다. ) 그 설정 방법은 DNS 서버를 구성하면서, 알 수 있을 것입니다.

 

6.Zone Transfer 를 이용한 DNS 정보 획득

타입 정의에는 axfr ( Full scan ) 방식과 ixfr( 증분 ) 방식이 있습니다.

타입 정의를 위와 같이 하고, 네임서버 조회를 하면, 해당 서버의 모든 구조가 다 보여지게 됩니다.

 

 

단순한 기본 검색과 set type=axfr 로 지정하고 같은 검색어로 조회한 결과 차이

 

해당 서버의 하위 모든 DNS 구성 정보가 보여집니다.

 

리눅스의 dig 명령어에 axfr 로 입력해도 잘 나옵니다

 

dig @ [ @다음에는 거쳐갈 네임서버의 아이피를 적어준다 ]

axfr = Full scan

 

이렇게 죄다 보여져 버리면 공격해달라고 광고하는 격이 되버리겠죠?

그래서 반드시 보안상 문제로, 외부에서는 이러한 조회를 할 수 없게 설정해야 합니다.

DNS 서버에서 외부에서 조회를 하지 못하도록 설정해야 합니다.

 

DNS서버구성 파일( /etc/named.rfc1912.zones )

allow-transfer { any; } 를 반드시 { none; } 또는 지정 아이피로 해주어야 합니다.

 

any = 모두에게 허용

none = 검색 불가

특정 아이피 = 해당 아이피만 검색 허용

 

 

 

 앞에서 행한 nslookup, dig, tansfer , 구글 해킹 등으로 해당 DNS 서버의 구조와 목록을 유추할 수 있습니다. ( 정보 수집 )

지금까지 보시다시피, axfr 로 transfer 를 질의하면, 해당 dns 서버의 모든 정보와 구조를 보여줄 수 있기에 named.rfc1912.zones 파일에서 transfer { none; 또는 특정 보조 dns 서버로 설정 } 를 수정해야 한다는 것까지 보았구요.

위의 수법이 막혔을 경우, 이제 무차별 대입(Brute Forcing) 이라는 방법을 사용할 수도 있습니다.


무작정 하나씩 서버에 질의를 보내, 해당 아이피가 진짜인지 아닌지 파악하는 행위를 이어서 행할 수 있는데, 일일이 하나씩 보내는 것이 아닌(Brute) 를 자동으로 프로그램화시켜(dictionary attack) 알아내는 기법이 존재합니다.

BackTrack 에 자체 내장된 DNSBrutefocing Tool 또는 DNSenum Tool 을 사용합니다.

보통 더 편리한 DNSenum 을 쓰게 됩니다.

 

백트랙 Bruteforcing

 - Backtrack R3 에서의 경로
 - /pentest/enumeration/web/revhosts/data/plugins/pig/DNSBruteforce/DNSBruteforce.py
 
 
 - 사용 방식
 - ./DNSBruteforce.py [ 도메인 ] [서버목록파일] [서비스목록파일]
 - (ex) ./DNSBruteforce.py test.co.kr server.lst hosts.txt


= 이 방법은, Wireshark 같은 패킷 감시 프로그램으로, 일일히 결과값을 확인해 봐야 한다는 단점이 있어, 잘 쓰지 않습니다.

 

백트랙 DNSenum

 - 경로 : /pentest/enumeration/dns/dnsenum/


 
 - 형식 : ./dnsenum.pl --dnsserver ( 서버 ip주소) -f (호스트 리스트의 사전파일) ( 도메인 )

 

예제 : ./dnsenum.pl --dnsserver 172.16.1.2 -f ./dict.txt test.co.kr

dick.txt 파일에는 앞의 호스트 네임들을 기입합니다.

생각보다 cafe.  ftp. mail. 등의 고정된 호스트 도메인을 쓰는 경우가 많기 때문에

이런 단어 기입(Dictionary Attack) 기법이 잘 통할 수도 있습니다.

 

 ./dict.txt 파일에 단어를 기입해 줍니다.

 

커맨드

172.16.0.2 => 정보를 얻어낼 해당 dns 도메인 서버의 아이피

 

결과값 = 일치하는 정보가 나옵니다.

 

여기까지 하면 도메인 서버의 네임주소 = IP 일치까지는 획득할 수 있습니다

하지만 실제로, 지금도 이 도메인 명을 사용하는지는 알 수 없지요.

그래서, 해당 주소에 이제 Port 를 이용한 Scan 과 접근으로, 탐지하고, 또 계속된 공격 수립을 준비할 수 있게 됩니다.

다음 편은 PORT 입니다.

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

Google Hacking?

 

 

 - 구글링으로 타겟의 정보 검색 및 습득.
 - 디렉토리 검색 기법
 - 파일 내용 등에 저장된 패스워드 , 신용카드, 주민등록번호 등의 개인 정보 획득
 - 단어와 구 검색을 지원한다. ( " _ _ _ "로 묶어서 검색 )


 
 - 고급 검색 기법 ( intext, intitle, inurl, site )
 디렉토리검색 기법 : ( site:co.kr intext:"index of/" )
 

 

 


서버 기본 페이지를 이용한 버전 정보 획득 후
해당 버전의 취약점을 파악하여 공격계획을 수립할 수 있습니다.

Foot Printing 의 가장 기본적인 방법 중 하나입니다.

요즘은 이런 검색기법으로도 힘들게, 기본 보안이 잘 된 곳도 많긴 합니다만

어디까지나 시작일 뿐이겠죠?

 고급 검색의 예시 

 

1. 아파치가 설치를 위한 테스트 페이지를 찾는다.
 Intitle:"아파치 설치를 위한 테스트페이지"

 -> 기본적인 상태의 서버들이 많으므로, 보안상 취약한 곳이 많습니다.

 

2. Apache SSL/TLS 기본 페이지를 검색.
 Intitle:test page "Hey. It worked!" "SSL/TLS-aware"

 Intitle:"index of" "microsoft-IIS/5.0"

-> 해당 버젼의 취약점에 맞는 공격 기법을 준비할 수 있습니다.

 


 3. 구글 캐쉬 안에 저장된 페이지 직접 접근(없으면 뜨지 않는다)  

구글 검색 후, 저장된 페이지 보기를 클릭.

http://webcache.googleusercontent.com/search?q=cache:lcRNi_6dEk:abc.egloos.com/+&cd=1&hl=ko&ct=clnk&gl=kr

 "&strip=1" 을 뒤에 붙이면 캐쉬 페이지의 접근을 의미 합니다.

 -> 이미 지웠더라도, 구글의 캐쉬서버에 기존 정보가 남아 있습니다.

그래서 일부 정보가 노출될 수 있습니다.

구글에 삭제 요청 하시면, 1~2주 처리기간을 두고 삭제해 줍니다.

 


4. 디렉토리 목록화

site:co.kr intext:"index of/"

-> 해당 서버의 파일 및 소스가 그대로 노출됩니다.

 

5. 로그 파일

db filetype:log

intitle:"index of/" intext:"(backup[백업]bak|dump)"

-> DB 백업용 파일이나, 데이터베이스 저장 파일을 검색.

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

Hacking?
컴퓨터 네트워크의 보안 취약점을 찾아내어 그 문제를 해결하고 이를 악의적으로 이용하는 것을 방지하는 행위를 말한다


유래
1950년대 미국의 MIT 동아리 hack에서 유래.


 

Hacking? Cracking?

긍정적인 해킹과 부정적인 해킹으로 구분
악의가 없는 해킹은 그래도 해킹이라고 한다.
악의적인 의도가 있는 시도는 크래킹이라고 한다.

    

해커의 분류

 

v화이트 햇(White hat)

§„착한 사람이라는 뜻으로 악의가 없는 해킹을 말한다. 예) 보안 전문가

 

v블랙 햇(Black hat)

§„악당이라는 뜻으로 정보 삭제, 용카드 도용, 해적판 제작 등 타인에게 피해를 주는 불법적 해킹을 말한다. 크래커와 동의어로 사용됨

 

v그레이 햇(gray hat)

§화이트 햇과 블랙햇을 섞어 놓은 해킹이다. 그레이햇 해커들은 해킹을 한 후 해당 관리자에게 이 사실을 알린다. 해당 취약점을 수정해주는 대가로 실비를 받으려는 속셈이다.

 

v블루 햇(blue hat)

§보안 분야의 베타테스터로 생각하면 된다. 특정 시스템을 본격적으로 구동하기 젂에 버그를 찾아내는 보안 컨설팅 회사를 블루 햇이라고 한다.

 

v아마추어 해커(script kiddie)

§컴퓨터 지식이 부족해 남이 만들어 놓은 프로그램을 이용하여 해킹을 시도하는 사람을 말한다.

 

v핵티비스트(hacktivist)

§해커와 정치운동가를 합성한 용어로 정치, 사회, 종교 등의 메시지를 알리는 것이 주목적인 해커들이다. 이들은 특정 목적을 위해 해당 기관의 시스템을 다운 시키거나 관련 이미지 또는 문구를 홈페이지에 걸어놓는다.

 

 

 

Haking History


태동기 ( 1960 ~ 1970 )
폰 프리킹이라고 하는 1960년대 말에 공짜로 전화를 걸던 히피 대학생으로부터 태동.

 


성장기 ( 1970 ~ 1980 )
컴퓨터의 보급이 확산되고 정보 통신망이 발달하자 많은 폰 프리커들이 해커로 변경됨.
1970년대 후반에 수많은 개인용 컴퓨터가 가정, 학교, 사무실에 보급되면서 컴퓨터 해커들의 활동이 본격화 됨

 


전환기 ( 1980 ~ 1990 )
1980년대 들어오면서 컴퓨터가 널리 보급되고, 해커들의 사회적 비행이 시작.


 

 

탄압기 ( 1990 ~ 2000 )
1990년대 들어서면서 크래커들의 사회적 비행이 국가 안보를 위협하는 존재로 발전하고 정치적 이념을 가진 핵티비스트(hacktivist)들이 등장.

 


발전기 ( 2000 ~  이후 )
2000년대 부터 인터넷이 대중화 되면서 해킹기술이 급속도로 발전

 

 

 

해킹에 사용하는 기술

 

1.취약점 검사

-  시스템에 침투하기 위한 구멍(취약점)을 찾아내는 프로그램 또는 행위


2.비밀번호 크래킹

- 시스템에 저장되어 있는 비밀번호를 알아낸다


3.루트킷

- 피해자가 알아채지 못하게 특정 시스템에 몰래 설치되어 있는 프로그램


4.키로거

- 피해자가 입력한 정보를 로그를 훔친 후 복원하는 기술


5.스푸핑 (패킷 변조)

- 공격자가 자신을 감추고 신뢰성 있는 장치/사람으로 변장하는 것을 뜻한다.

 

6.패킷스니퍼(패킷 가로채기)

- 네트워크를 통해 오가는 데이터 패킷을 가로채는 기술.


7.그 외 트로이 목마, 바이러스, 웜 등..의 사이버 테러도 넓은 의미로 범주에

넣을 수 있다.

 

 

 

 

Hacking Flow 과정 ( 상세 목록은 앞의 로드맵을 참조 )

   Target  -   Information gathering   -  Vulnearabillity Analyze   -   Attack

대상지정

      정보수집       

      정리 분석        

     공격     

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

모의 해킹 전반적인 로드맵

 

기초해킹에 관련된 다양한 정보 수집과, 그 정보를 바탕으로 한 기본적 공격. 그리고 그 과정에서 다양한 경험을 습득할 수 있는 전반적인 흐름입니다.

당장 이해가 어려워도, 코스를 돌고 다시 이 글을 본다면, 거대한 흐름이 조금은 느껴지리라 생각합니다

 

 

1. FootPrinting ( 풋 프린팅 )

- 백과사전 : 해킹 시도 대상의 관련 정보를 수집하는 사전 작업. 침입하기 위한 보안상 취약점, 도메인 이름, IP 주소, 침입 탐지 시스템 설치 여부, 사용자 목록, 시스템의 하드웨어 사양, 사용 중인 네트워크 프로토콜, 인증 메커니즘 등의 정보 수집을 말한다.

 

해킹을 시도하려면, 시도할 대상. 목적지에 대한 정보를 수집해야 합니다.

대상의 서버 OS, 버젼, IP 정보 등을 통해, 해당 버젼에서 취약한 해킹 공격 방법 등의 목적을 수립할 수 있고, 해킹 성공 확률을 높여주게 됩니다.

 

비기술적 정보수집 - Social Engineering ( 사회적, 내부공모, 인맥, 대화 정보수집 )

기술적 정보수집 - Scanning 이라고 정의합니다.

 

 

가장 기초적인 정보수집 - 구글 해킹 기법

공격하고자 하는 서버의 종류/버전/네트워크 DNS 서버명 등을 탐지할 있습니다.

고급 검색 명령어를 통해, 기초적인 보안과정을 거치지 않은 다양한 사이트와 서버들의 정보를 습득할 수 있습니다.

 

해당 DNS 서버의 기본적인 구조 파악

Whois

Dig

Nslookup

 

그외

Zone transfer -> DNS Brute forcing 공격 기법  

 

2-1. 스캐닝 ( Scanning )

 

목표 네트워크에서 "실제로" 동작중인 시스템의

IP,OS,PORT,Service ,Version 등을 탐지하는 과정입니다.

 

  1.Active host scanning - 호스트(IP) 생사 유무를 탐지합니다.

Ping ( hping )

Nmap

Nmap 다용도 정보수집에 활용가능하다.

 

  2. 살아있는 호스트 탐지(Port 열려 있는지 유무) - 접근

 --> Port scanning

TCP Full Connect Scanning

TCP SYN Connect Scanning

TCP FIN Connect Scanning

X-Mas scanning

 

위의 방법은 공격자 직접접근이라 역추적 우려가 있습니다.

그럴 경우, IDLE Scanning 이용합니다.

 

3. Vulnerability Scanning : 취약점 스캐닝

  --> 시스템의 취약점을 찾고 공격합니다.  -

  --> Firewalking

( 방화벽 등의 설치로, 접근이 힘든 경우 )

  1) traceroute

  2) firework

  3) Banner grubbing

 

3. Enumeration ( 목록화, 권한 상승 단계 )

사용자 이름이나, 패스워드, 공유하고 있는 네트워크 자원이나 , 서비스 등을 알아내는 것을 의미.

주로 목적 타겟의 직접적인 연결을 통해 이루어집니다.

상대방의 권한을 습득하고, 원격으로 제어하거나 조작, 설치 등의 행위가 가능합니다.

 

(1). Null session ( Win 2000 이하에 통할 있는 기초적 개념 )

-> NetBios 라는 Windows 의 통신 프로토콜의 보안상 헛점 이용

 

(2). Brute Forcing ( 무차별 대입 ) - Cain & Abel Program

-> Dictionary Attack 등으로 병행.

 

(3). Tunneling ( SSH , HTTP )

-> 침투 후 원격 레지 조작으로 telnet을 위한 원격 service 등의 강제 구동이 필요.

 

SSH - 오리지널 패킷을 방화벽에 터널 뚫어서 다이렉트 연결

암호화된 패킷 직접전달이므로 악성코드 탐지에 걸리지 않습니다.

 

1) Local 터널링 - 피해자의 방화벽 안쪽에 SSH 서버역할을 하는 경유지 설치

공격자가 클라이언트 역할. SSH 서비스의 관리자 권한 요구.

방화벽에서 포트가 열려 있어야 합니다.

 

2) Remote 터널링 - 공격자가 서버역할, 방화벽 내부의 경유지 서버가

클라이언트 역할 -- 리버스 기법이라고 합니다.

( 내부에서 바깥으로 패킷을 내보낸다 )

내부 경유지 서버의 PC 제어해야 하는 선결조건.

( plink 등의 클라이언트측 설치가 필요 )

 

내부의 리버스 클라이언트에 설치하거나, 추후 연결통로를 위해

Backdoor 만들고, 설치하여, 차후 침입을 용이하게 만듭니다.

 

3) Backdoor -> SFX

MS08-014 ( 2003 이전 )

- 원격접속 프로그램류 -> RAT(Remote Administration Tools)

- R-Admin(로컬터널, 피해자 서버역할, 공격자 클라이언트, 피해자의 방화벽 포트 개방 요구) , VNC(리모트 터널류, 리버스 커넥션 기법, 방화벽이 있는 경우, callhome 의해 공격자의 흔적이 피해자의 내부에 남는다)-> Wollf ( 공격자가 웹서버 경유지를 만들어서 그곳에 자신에게 통하는 .txt 파일을 만들어, 피해자가 웹서버로 접속한 경유하도록 만들어, 자신의 정보가 직접 피해자의 서버에 남지않게 한다 )

 

4) 로그정보 지우기 - Covering track

 

 

윈도우즈

  • 감사정책 해제시키기 : secpol.msc
  • 로그 삭제 : eventvwr.msc
  • 감사정책 다시 활성화

 

백도어 은닉화 - ads 영역 ( Meta data - Binary ) - 실제동작 -> 링크

 

NTFS 4, 5 시스템은 ADS 영역이 존재합니다. ( 일반적으로 접근불가 )

용량 영역 검색불가 용량 비할당 영역

[ 일반 디스크 영역 ] [ 접근불가 ads 영역 ]

|----------- 링크 ----------------|

file : file

type 리다이렉트 : ads 영역 링크 가능

start 링크파일로 ads 영역 실행 가능.

ADSspy 등으로 영역 탐지 가능.

 

 

리눅스

  • 감사정책 해제 : syslog 서비스 데몬 비활성화
  • 로그정보 수정/삭제 : /var/log/messages , secure, lastlog
  • history 삭제작업 ( 히스토리 삭제 /dev/null 심볼릭 링크로 연결 )
  • 감사정책 다시 활성화.

 

 

이하의 방법들은 네트워크의 보안이 무력화된 , 또는 없는 상태에서

사용가능한 기법들입니다. 현재의 대부분의 간단한 백신에게도 탐지되는 툴들이 많습니다. 다만 지금까지 방법으로, 해킹의 전반적인 개념과 방식을 이해할 있었다면 훌륭한 기초해킹 과정을 마쳤다고 보시면 되겠습니다.

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,