이곳에서 작성되는 Network Hacking 기법들은 다른곳에서 악의적으로 사용할시에는 처벌을 받으실수도 있습니다 부디 악의적인마음으로 사용하지 마시고 이곳이 지식을 쌓는 장소가 되었으면 좋겠습니다 조심해서 사용해 주시길 바랍니다

SSL Strip Attack

공격자가 중간에서 SSL로 보호되는 세션을 벗겨내는것입니다


즉 공격자는 MiTM 상태를 클라이언트 -- 공격자 -- Web 서버 로 만들어서

클라이언트와 공격자 사이에서는 HTTP로 통신되게끔 유도하고

공격자와 Web서버에서는 HTTPS(SSL)로 통신한다


클라이언트 입장에서는 인증서를 조작하는것이 아니기 때문에

인증서 에러메시지도 출력되지않고 url창에 HTTPS로 접속되어야 하는부분이

HTTP로 변한것 뿐이어서 공격당하고 있는지 확인도 어렵습니다


또한 SSL MiTM 공격은 현재 안되는곳이 대부분이지만

SSL Strip Attack은 아직까지도 가능합니다


공격순서







실제 공격

1.sslstrip tool을 받기 위해 해당 사이트로 접속한다


다운로드를 받은뒤에 파일을 확인한다


2.파일압축을 해제하여 sslstrip을 설치한다


→ SSL strip을 설치한다


3. ARP Spoofing , 리눅스 방화벽을 이용한 포트 변환 , SSLstrip을 실행한다

※ iptables = 리눅스 방화벽

→ 방화벽을 이용한 포트변환을 실시하여 클라이언트가 보내는 80번 포트를 10000번 포트 (SSLstrip이 이용하는 포트)로 전달하게끔 실시한다


SSLstrip을 이용하여

10000번 포트로 전달받은 패킷을 test.log에 저장하는 방법이다


★port 번호는 지정된것이 아닌 마음대로 변경이 가능하다 (지금은 10000으로 설정)


==================================================================


즉 포트 X를 지정하여 80번 포트로 들어오는정보를 전달시켜

공격자는 X 포트를 이용하여 외부망과 https 통신을 시도하고

클라이언트와는 80번으로통신 (http)로 통신하는 방법이다


==================================================================


4. 클라이언트가 다른 사이트 접속시 https로 통신되어야 하는부분이 http로 통신되고있다


또한 공격자는 클라이언트가 통신한부분을


로그 파일을 통해 확인할수도 있다



SSL Strip Attack 방어방법

1.MiTM 상태가 되지않는 환경을 구성한다

2.사용자가 HTTPS로 접속되는곳을 파악하여 HTTP로 접속되는곳은 이용하지않는다

















이곳에서 작성되는 Network Hacking 기법들은 다른곳에서 악의적으로 사용할시에는 처벌을 받으실수도 있습니다 부디 악의적인마음으로 사용하지 마시고 이곳이 지식을 쌓는 장소가 되었으면 좋겠습니다 조심해서 사용해 주시길 바랍니다

SSL MITM Attack

→ 웹 서버와 브라우저간의 보안통신을 위해 사용되는 프로토콜

SSL 사용시 https를 사용합니다

인증서를 받고 확인하는 작업을 먼저하는데 만약 인증서에 문제가 있을시 미리 경고를 하게됩니다


  1. http로 보안페이지 접속시 잘못접속시 서버에서 https주소를 알려주고 https로 재접속한다

  2. 자신의 인증서와 공개키를 브라우저에게 보냄 , 서버가 진짜인지 가짜인지 확인할수있게한다

  3. 인증서를 확인한다

  4. 세션키를 만들어서 웹서버의 공개키로 암호화 해서 전달한다

→ 가짜 서버라면 웹서버의 개인키가 없기 때문에 복호화가 불가능하다

웹브라우저가 요청하는 정보를 암호화해서 보낸다

  1. 웹서버가 진짜라면 개인키로 복호화해서 전송한다


==================================================================


SSL MITM Attack

공격자가 인증서를 가로채고 공격자가 만든 인증서를 주는방법

→ 인증서 위조 , 인증서에 문제가 있는 상태로 웹브라우저에 전송

= 경고창이 계속 팝업 창이 떠서 , 클라이언트가 알수있게 된다


SSL Strip Attack

공격자가 SSL 로접속하게 하는것이 아닌 HTTP 메시지로 보내게 하는것이다

공격자가 클라이언트 대신 SSL 로접속하는것이다


→ 서버가 주는 인증서를 조작하는 공격

클라이언트에게는 인증서 오류 메시지가 출력되어 공격이 발각될 가능성이 높다

최신의 업데이트된 웹 브라우저 같은 경우에는 공격이 잘되지 않는다


공격자가 중간에 MITM 상태를 만들어서 (DNS Spoofing으로)

웹 요청을 직접 받아 포워딩하면서 정보를 탈취한다


==================================================================


Webmitm 과 DNS spoofing , ARP Spoofing 공격은 중간에 중단 X

tcpdump로 공격대상이 입력한 메시지를 생성하고 web…..c..로 복호화 한다


※중간중간에 모든 공격이 잘되고 있는지 확인이 필요하다

특히 DNS Spoofing 공격 같은 경우에는 상대방이 내부에 있는 DNS 서버를 이용할 경우

공격이 잘 안될 가능성이 있다


==================================================================





SSL MITM Attack


→ webmitm tool은 해당 상태까지만 진행한다

또한 재시작시 해당 메시지는 보이지않는다



→ DNS Spoofing으로 유도할 사이트들

※모든공격이 원활히 성사되야지 재대로된 SSL MITM 공격이 가능하다

모든공격이 되었을때 클라이언트에서 DNS 해당 사이트로 접속시도시

보안경고 인증서 오류가 뜨게 되지만 만약 클라이언트가 그냥 이용하게될시


공격자는 만들어둔 attack.txt파일을 확인하여 클라이언트가 입력한

정보를 그대로 확인할수있다


=================================================================

SSL MITM Attack 결론


클라이언트에게 Web요청을 받아 웹서버 쪽으로 포워딩하고

인증서를 조작해서 클라이언트에게 포워딩 하는방법이다


단점으로는 트래픽이 우회가 불가능하고

자기자신에게 Web요청이 와야함

(MITM 상태로 만들어야한다 또한 DNS Spoofing을 통해 특정 사이트 접속시 자기 자신에게 요청이 와야한다)

인증서 자체에 문제가 있어서 계속 클라이언트에게 인증서 에러 메시지가 출력 된다


웹브라우저 에서 조치를 해두면 실패할 가능성이 높다

최근에는 거의 모든곳에서 불가능합니다


=================================================================


SSL MiTM Attack 방어방법

1.MiTM 상태가 되지않는 환경을 구성한다

2.사용자가 HTTPS로 접속되는곳을 파악하여 HTTP로 접속되는곳은 이용하지않는다




이곳에서 작성되는 Network Hacking 기법들은 다른곳에서 악의적으로 사용할시에는 처벌을 받으실수도 있습니다 부디 악의적인마음으로 사용하지 마시고 이곳이 지식을 쌓는 장소가 되었으면 좋겠습니다 조심해서 사용해 주시길 바랍니다


SNMP Vulnerability

SNMP


→ 단순한형태를 가진 네트워크관리용 프로토콜

NMS = 네트워크 장비들을 관리하기위해 만들어진것


Manager = 관리자

Agent = 관리자에게 수집한 정보를 보고 관리자에게 명령받은것을 수행하는 대리인

MIB 형태로 저장 []

라우터에 SNMP 서버를 설치하여 사용할것이다


Polling 방식

Manager가 Agent에게 명령하고 Agent가 수행하고 보고하는 형식

UDP 161번


Event Reporting

Agent가 특정상황 발생시 Manager에게 보고하는 형식

UDP 162번






→SNMP는 그래픽 환경으로 네트워크의 정보를 손쉽게 실시간으로 얻을수있다


★Community String = 관리자가 Agent에게 명령시 특정 명령어를 입력해야지 Agent가 명령을 수행한다 ( Agent가 관리자인지 확인하는 유일한 수단 )


→ Sniffing을 시도하면 Community String을 바로 얻어낼수있음 , 보안성 취약


SNMP는 암호화 통신이 되지않아 Community String에 의존하는 경향이 있다

공격자가 SNMP 공격에 성공하게 되면 모든 설정을 한눈에 파악할수있다


SNMP에서 사용되는 메시지


==================================================================

→ CMIP는 리소스를 많이 소모하고 구조가 복잡하여 사용하지않고 SNMP를 더많이 사용함


==================================================================



Cisco OID 확인 방법


site 주소 = tools.cisco.com/Support/SNMP/do/BrowseOID.do

ID = wingofbluesky27

PW = P@ssw0rd



N은 OID 명령어의 끝을 의미한다

→ (x)의 경우에는 OID 명령어후 세부 설정을 의미한다

즉 1.3.6.1.4.1.9.9.96.1.1.1.1.3.(3) = 복사할 환경설정 파일을 Startup config로 지정


TFTP로 업로드를 하게되면

병합이 된다 즉 명령어를 수정할때 명령어를 입력하는것처럼 해야한다


XP가 Manager

Router가 Agent 이다


XP에서 실행한 명령어 기준으로 라우터의 정보를 받게 되면

라우터 입장에서는 업로드 XP 입장에서는 다운로드

즉 입장이 반대로 되어있다








SNMP Manager 설정 방법


Manager은 여러가지 방법이 있지만 이번에는 Solarwind 를 사용해 보겠다


Setup파일을 keygen을 이용 크랙하여 설치한다


==================================================================

SNMP Agent 설정 방법


라우터를 Agent로 설정시


Snmp-server community [community string] [권한] 순으로 입력하면된다

즉 snmp를 동작시키는데 private는 읽기 쓰기 권한주는것

public 은 읽기 권한만 주는것 으로 설정 할수있다


==================================================================


Solarwind 프로그램을 이용하면 GUI 환경으로 SNMP를 사용할수있다

TFTP 의 기능을 사용할시


TFTP의 간단한 설정을 한후

Agent에서 Config정보도 다운로드 받을수 있다

Agent IP와 Community String을 입력후

Config정보를 다운받게 되면 설정 TFTP 기본경로에 Config 파일이 들어오게된다


패킷을 분석하게되면 UID 정보가 사용된것을 확인할수있다

업로드 시에는 병합과 덮어쓰기중 잘 선택하여 사용해야한다



















SNMP Vulnerability

공격방법


1.공격 시작전 라우터에 SNMP 설정이 되어있는지 확인

포트스캐닝을 이용하면된다 [udp]


SNMP를 이용하기 위해 Community String을 얻어내야 한다



==================================================================


만약 스니핑이 불가능한 상황에서 SNMP를 공격하는 방법

onesixtyone = Brute Forcing을 이용한 Community String을 얻어내는 방법

사전공격을 통하여 Community String을 알아낼수도 있고 만약 불가능하다면

무차별 대입기법을 통하여 기다려보는 방법도 있다


※스니핑이 가능하다면 그냥 스니핑 하면  Community String은 암호화가 되어있지 않기 때문에 그냥 공격할수있다


==================================================================














2.무차별 대입기법을 통한 Community String 알아내는 방법


→ 해당 위치로 들어간다음

→ 무차별 대입기법을 통한 Community String 알아내는 방법

= Community String은 private와 public 이였다


























3.공격할 방향에 따라서 Community String을 이용하여 공격

→ 예를들어 TFTP를 이용해서 라우터의 정보를 얻어내고 싶다면



snmpset -v 2c -c private 10.10.10.100 1.3.6.1.4.1.9.9.9.96.1.1.1.1.2.200 i 1

→  snmpset -v [버전] -c [Community String] [SNMP Agent 주소] [OID] [입력할내용]


※입력할 내용에 따라서 숫자는 = i , 문자는 = s , 주소는 = a로 입력한다

★만약 재공격시 OID의 맨 마지막 숫자 N 을 변경해서 공격해야 한다


TFTP를 통해서 공격자에게 running config의 정보를 다운받아

running-config라는 이름으로 저장하는 방법

확인해보면 정상적으로 전송되어 있다


※반대로 업로드를 해서 공격을 하고싶으면  OID의 마지막 옵션들을 수정해서 공격하면 된다

방어방법

  1. 스니핑 방지하는 방법

  2. Community String을 알아내기 힘들게 복잡하게 사용하는 방법



==================================================================


BT에서 TFTP 설정 하는 방법


1.BT에서 window의 유틸을 사용할수 있는 Wine을 설정해야 한다




→ Autodetect로 드라이브들을 자동으로 찾아서 잡아준다




2.사용할 tool에 권한을 올려 사용할수 있게 해야한다

→ TFTP를 사용해야 하기 때문에 TFTP의 권한을 높여 줘야 한다



→ TFTP를 사용하게되면 이런식으로 로그가 남는다



=======================================================
=======================================================




격방법 2


BT에서 snmpset을 자동으로 입력해주는 파일을 만들어서 좀더 편한 방식으로

SNMP Vulnerability 공격을 할수있다 한줄씩 입력해야하는것에 비해서 편하게 공격할수있는방법이다  


=================================================================

※ echo = printf 와 비슷하게 동작한다

→  “”에 묶여 있는 문자열을 출력해준다 또한 -n 옵션을 같이사용하면

다음입력을 받기전까지 대기상태로 남아 있는다


※ read = 변수처럼 사용하며 해당 문자열을 입력 받아 넘겨주는 역할을 한다


즉 Enter a Number을 출력하고 대기하고 있다가 숫자를 입력해주면 NO에

들어가서는 방식이다

==================================================================


해당 파일을 생성후 실행 하게되면 몇가지 필요한 정보를 입력하게 된다

→ 해당 명령어들은 SNMP 서버에서 running-config를 받아오는 방법으로

SNMP 서버 주소 , Community String , TFTP의 주소 , 저장할 파일 이름을 입력하게 되면


running config를 다운받을수 있다

==================================================================




해당 파일이 생성되는것을 확인할수있다 하지만 SNMP 서버가 TFTP의 기능을 관리자에게만

설정을 했다면


파일이 생성되지않는다




+ Recent posts