Proxychains의 사용법을 모르는 분들은 이전 포스팅을 읽으시면 도움이 되실거 같네요



Proxychains 으로 IP 숨기기 (1/2)



Proxy Chain 으로 Tor 서비스를 설정해서 사용하면 간단하고 편리합니다.

하지만 나의 패스워드나 개인정보가 어떤 Proxy를 타고가는지 알 수 없기 때문에 정보보안에 불안할 수 밖에 없죠

이번 포스팅에서는 그 불안한 문제를 해결할 수 있는 나만의 Proxy 서버 설정하는 법을 알려드리겠습니다.

먼저, Proxy Chain을 만들기 위해선 자신이 직접 Proxy 서버와 포트를 찾아야 합니다.


귀찮죠? 하지만 귀찮을수록 정보보안은 향상됩니다.

하지만 번거로움을 조금 덜고자 Proxy 서버를 알려주는 가장 깔끔하고 직관적인 사이트 소개해드립니다.

Proxy-List라는 사이트인데요 이 사이트의 UI 한번 감상하시죠~



제가 찾아본 사이트 중 가장 깔끔하고 직관적이여서 저는 이 사이트를 이용합니다.


위 사진에서 궁금할 법한 것들 하나씩 소개해드릴께요.

먼저, 프로토콜이 크게 4가지로 구분되어 있습니다. HTTP, HTTPS, SOCKS4, SOCKS5

이중 HTTP와 HTTPS의 차이는 익히 아실거고 SOCKS4 와 SOCKS5는 뭐가 다를까요?


SOCKS4 vs SOCKS5

이 둘의 차이는 SOCKS4는 TCP 만 지원하는 반면 SOCKS5는 UDP까지 지원한다는게 가장 큰 차이 입니다.

UDP를 지원하니까 당연히 DNS도 이용이 가능하겠죠? 

이 둘의 차이의 자세한 정보는 아래 글을 참고해 주세요~



Difference Between SOCKS4 and SOCKS5




그리도 중간부분에 Anonymity 라는 컬럼이 보입니다. 이 컬럼은 익명성을 나타내는 것으로

익명성 옵션은 크게 3가지 로 나뉩니다. Transparent, Anonymous, Elite


Anonymity

  • Transparent 서버를 이용하면 목적지에서 HTTP 헤더 분석만으로 출발지의 진짜 IP주소를 찾아낼 수 있습니다.

  • Anonymous 서버를 이용하면 목적지에서 HTTP 헤더 분석만으로는 출발지의 진짜 IP주소를 찾아낼 수 없습니다. 하지만 출발지에서 Proxy 서버를 경유해서 왔구나라는 것은 알 수 있습니다. HTTP 헤더에 정보가 나오기 때문이죠

  • Elite 서버를 이용하면 목적지에서 출발지IP가 진짜인지 경유한IP인지 알 수 없으며 출발지의 원래의 IP도 찾을 수 없습니다.


따라서 저는 Elite Proxy 서버만 이용하고 있지요~


자신이 선호하는 Proxy 서버를 골라서 /etc/proxychains.conf 파일을 열고 맨 아래에 보면 [ProxyList] 라는 곳이 있습니다.

거기에 자신만의 Proxy List 를 만들면 됩니다. 2개도 좋고 3개도 좋지요 늘리면 늘릴수록 추적이 더 어려워지겠죠?

속도는 더 느려지겠지만요



Proxy 서버 List 를 추가하는 방법은 위 사진과 같은 순서만 지켜 주시면 됩니다.

프로토콜  |  IP  |  포트번호


해커에 의해 침해사고가 났다는 뉴스를 보다보면

공격자가 Proxy 서버를 경유했다는 문구를 확인할 수 있습니다.

공격자는 어떻게 Proxy 서버로 어떻게 자신의 IP를 숨겼을까요?


Proxychains 이라는 툴을 이용하면 아래사진에서 보이는 것처럼 간단하게 자신의 IP를 숨길 수 있습니다.

2~로 시작하는게 원래 저의 NAT IP인데 proxychains를 사용하여 150.109.105.160으로 변경되었습니다.



Proxychains 은 Kali 리눅스에 기본적으로 설치되어 있습니다.

사용을 하기 전 먼저 설정에 대해 짚고 넘어가야 하는 부분은 크게 2가지 입니다.


첫째, 어떤 종류의 체인을 사용할 것인가

둘째, Tor를 사용할 것인가


먼저 첫째로, 체인의 종류는 크게 3가지가 있습니다.

1. Strict Chain

2. Dynamic Chain

3. Random Chain


1. Strict Chain은 체인의 순서를 사용자가 지정하는 것입니다.

장점 : Traffic 흐름이 지정된 Proxy 서버체인 순서대로 움직인다.

단점 : Proxy 서버체인 중 한곳에서라도 동작하지 않으면 체인이 끊어져 통신이 안된다.


2. Dynamic Chain은 체인의 순서를 사용자가 지정하는 것입니다. (단 예외 상황 발생 시 문제가 된 서버는 건너 뜁니다)

장점 : Proxy 서버체인 중 한곳에서라도 동작하지 않으면 그 다음 순서로 이동하여 끊김이 없다

단점 : Traffic 흐름이 예외 상황(Proxy 서버 응답 없음 등) 발생 시 지정된 순서대로 움직이지 않는다. 이걸 굳이 단점이라고 해야하나


3. Random Chain은 체인의 순서가 랜덤으로 배정됩니다.

장점 : 상대방이 IP를 추적하기가 매우 어렵다.

단점 : 추가 환경설정을 해야 한다.


둘째로 Tor를 사용할 여부 입니다.

Tor를 사용하면 따로 프록시 서버를 찾을 필요 없이 proxychains 설정파일에 기본값으로 설정 되있어서 간편합니다.

단순히 service tor start 명령어를 통해 서비스 시작만 해주면 됩니다.




How to Setup Proxychains with Tor in Kali Linux




Dynamic Chain 설정방법 (예시)

저는 Dynamic Chain을 사용하고 있는데 환경 설정을 위해 Proxychains 환경설정 파일인 

/etc/proxychains.conf 파일로 들어갑니다.


3가지 체인중 나머지는 다 주석처리 하고 dynamic_chain 만 주석을 삭제합니다.


기본 설정으로 되어 ProxyList에 Tor 서비스 (포트 9050)가 설정되어 있을 겁니다.


Tor 서비스를 시작해 준다면 모든 설정은 마쳤습니다.



아래 두 명령어를 통해 자신의 공인IP가 변경되는지 확인해 봅니다.

# curl bot.whatismyipaddress.com

# proxychains curl bot.whatismyipaddress.com



이렇게 되면 간단하게 자신의 NAT IP를 숨길 수 있습니다.

Clear~!



Proxychains 으로 IP 숨기기 - Proxy Server List



후일담으로 하나 말씀드리자면 저는 Proxychains를 사용할 때 tor 서비스를 사용하지 않습니다.

이유는, tor는 간단히 브라우저나 웹 서핑을 위해서는 적당할 수 있으나

저는 제가 구축한 서버를 대상으로 취약점 분석을 위해 nikto를 사용했는데

tor가 프록시로 사용하는 Proxy서버 중 중간 경유지에 웹방화벽이나 IPS가 있는지... 패킷이 응답이 없더라구요

그래서 저는 따로 무료료 서비스 하는 Proxy 서버 리스트 중 선택해서

Proxy 서버 체인 구축하는 방법은 다음 포스팅에서 알려 드리도록 하겠습니다.


Kali를 한글판을 설치하면 root에 있는 폴더가 아래 이미지와 같이 영어로 되어있지 않고

한글로 되어 있어서 폴더 이동하기가 까다롭습니다.



하지만 Kali 영어 버전을 설치하면 한글이 깨지는 증상이 발생하죠. 흠...

한글 깨짐은 참고 본다 치더라도 한글이 입력까지 안되니 여간 불편한게 아닙니다.


위 증상을 해결하기 위해 구글링으로 정보 찾아보면

일반적으로 아래와 같이 fcitx 패키지를 설치해서 해결하는 방법을 알려주는 블로그가 많습니다.


# apt-get install fcitx-hangul

# apt-get install fcitx-lib*


하지만 왜일까요.. 저는 안되더라구요.. 왜 항상 나만 안되


다시 구글링!!!

찾다찾다 보니까 해답을 발견했습니다!!!


아래 4줄의 명령어만 입력하면 모든 문재는 해결입니다.

[ Kali 한글 깨짐 해결 및 한글 입력 명령어 ]

# apt-get update

# apt-get install fonts-nanum*

# apt-get install nabi

# reboot


재부팅 하면 바탕화면 왼쪽 상단에 문자정보 아이콘이 보이게 됩니다.


Firefox를 실행하고 네이버 접속 ㄱㄱ

화면에 깨졌던 한글이 다 잘보입니다ㅎㅎ 입력도 잘 되고요~

참고로 한글을 입력하기 위해선 한/영 키가아닌 왼쪽 Shift + Space bar 를 누른다는거 기억하세요~




저는 dork94님의 블로그를 참고하여 제 문제를 해결하였습니다.

dork94님 감사합니다. 덕분에 해결했어요~

+ Recent posts