Docker Tor+Proxy

Run tor and proxy server in docker and set Chrome browser to send all traffics to docker tor proxy server


Step 1: Create docker-compose-tor.xml

version: '2'
    image: jess/tor-proxy
      - "9050"
    restart: "always"
    image: jess/privoxy
      - torproxy
      - "8118:8118"
      - "8118"
    restart: "always"

Step 2: Run Docker Quickstart Terminal

Step 3: Run docker-compose

# docker-compose -f docker-compose-tor.yml run -d

Step 4: Get docker machine IP

# docker-machine ip


Step 5: Open Chrome browser and install Proxy Helper extension

Note: can use system proxy configuration if want or other proxy helper extensions. I use Proxy Helper extension to set proxy server only for the Chrome browser.

Step 6: Set Proxy Servers into the Proxy Helper extension


Step 7: Test connection


Idea – USB Lego Hub

Since using lots of devices require USB cable charging, I had to use USB hub.

However, most of USB hubs are fixed, not flexible. I had to buy 10 ports USB hub, even if I don’t need 10 ports, or If I buy 3 ports USB hub, I need more ports. So end to buy more USB hub and my desk gets messy.

So I came up with this idea – USB Lego Hub.

You can buy “Main USB Hub” and extend with lego type USB port.

Main USB Hub 
USB Lego Hub - Main Part

  • Has USB male jack to connect computer for data transmission
  • Has electricity jack to provide sufficient electricity
  • Has LED light to depict on/off power
  • Has female connecting link point that can extend to another USB socket




Basic Lego Type USB 3.0 Socket

USB Lego Hub - Basic USB 3.0 Socket

  • Has male connecting link point to attach Main USB Hub or another USB socket
  • Has female connecting link point that can extend to another USB socket
  • Has USB 3.0 plug  that can connect any USB devices/cables
  • Has LED light that displays power on/off
  • Has LCD voltage screen that displays current voltage
  • Has on/off button to turn on/off – even if this socket is turned off, attached sockets still can get electricity/data transmission


iPhone Lighting Charger/Data Sync Socket
USB Lego Hub - iPhone USB Charge/Data Transmission Socket

  • Has male connecting link point to attach Main USB Hub or another USB socket
  • Has female connecting link point that can extend to another USB socket
  • Has iPhone lighting charger cable that can be retractable to inside of socket. The cable can be extendable/rotatable to provide long cable
  • Has LED light that displays power on/off
    • Has on/off button to turn on/off – even if this socket is turned off, attached sockets still can get electricity/data transmission


Micro USB Charger/Data Sync Socket

USB Lego Hub - Micro USB Charge/Data Transmission Socket

    • Has male connecting link point to attach Main USB Hub or another USB socket
    • Has female connecting link point that can extend to another USB socket
    • Has Micro USB charger cable that can be retractable to inside of socket. The cable can be extendable/rotatable to provide long cable
      • Has LED light that displays power on/off
        • Has on/off button to turn on/off – even if this socket is turned off, attached sockets still can get electricity/data transmission



This is just concept design. Not sale on anywhere yet.

As I don’t have an ability to develop this device, I hope one day someone develop.



CryptoLocker 랜섬웨어 복구 방법/How to recover from CryptoLocker Ransomware

CryptoLocker 랜섬웨어 복구 방법
How to recover from CryptoLocker Ransomware

이 복구 방법은 암호화된 파일을 복호화시키는게 아니라 CryptoLocker가 암호화 시키는 과정에서 삭제된 파일을 복구를 시키는 방법이며, 100% 완벽한 복구 방법이 아니다. 조사를 해보니 CryptoLocker는 먼저 파일을 복사하여 복사본을 만든다음에 그 복사본을 암호화하고, 원본 파일을 삭제하는 기법을 사용한다. 그렇기 때문에 CryptoLocker에 걸리고 나서 데이터 변화가 없다는 가정하에, 아래 복구 방법을 통해 파일을 복구시킬수있는 확률이 높아진다.

Following recovering methods are not decrypting infected files, but restore files that deleted by CryptoLocker while encryption. And this method may not be suitable for everyone or some cases. From the research, CryptoLocker will use the method that copy target files, encrypt target files and then delete original files. Therefore, you may have higher chance to restore your files back on the assumption that you haven’t changed your data after infection.

저는 보안전문가가 아니기 때문에 아래 과정을 단순히 참고만 하시기 바랍니다. 아래 과정은 복구 방법을 설명하는 많은 사이트들을 참고하여 나온 과정입니다.

As I am not a professional security advisor, please use following steps as just references. Below steps are from the research of many websites that explain how to recover.

복구 순서/Recovery steps

  1. 먼저 랜섬웨어에 걸린 컴퓨터의 인터넷을 차단하고 연결된 외장하드/USB를 뺀다. 이는 네트워크로 연결된 드라이브나 외장하드들까지 암호화되는것을 방지하기 위함이다.
    Firstly, turn off internet on the infected computer and remove your portable hard drives or USB from the computer to prevent ransomware.
  2. Malwarebytes사에서 공개한 Anti-Ransomware 프로그램을 설치한다.
    Install Malwarebytes Anti-Ransomware application.

  3. Malwarebytes사의 또 다른 프로그램인 Chameleon을 다운로드한 뒤, 압축을 푼다. Chameleon폴더안에 여러 실행 파일(firefox.exe, iexplorer.exe등)이 있는데 그중에 한개를 실행하면  콘솔창이 뜨는데 거기에 나오는 설명대로 하면, Malwarebytes Anti-Malware가 설치되고 악성코드를 찾아 삭제한다. 카멜레온에 대한 자세한 설명은 제작사 사이트를 참고하기 바란다.
    Download Malwarebytes Chameleon and extract compressed file. In the Chameleon folder, you will see executable files such as firefox.exe or iexplorer.exe. Just run one of executable file, then you will see console screen with instructions. If you follow the instruction then it will download latest Malwarebytes Anti-Malware and scan your computer for malwares. You will be able to remove malwares with this method. If you want to know more information about Malwarebytes Chameleon, please go to their website.

이제 복구를 하기 위한 전초작업은 완료되었다. 실제 복구작업은 이제부터다.
Now we just finished prerequisite tasks. Actual recovery is starting now.

  1. Shadow Explorer
    • Shadow Explorer는 윈도우의 내장된 기능인 Shadow Copy Volumn에서 특정 시간대의 파일/폴더의 복사본(스냅샷)을 남겨놓을 찾아 볼수있게 하는 프로그램이다. 운이 좋다면, 이 프로그램을 이용해 특정파일을 복구가 가능할수도 있다.
      Shadow Explorer allows to browse folders/files in Shadow Volumn, which is the technology that included in the MS Windows. MS Windows do automatically or manually taking snapshot of files/folders on certain time. If you are lucky enough, then you may be able to recover documents using Shadow Explorer.
    • 하지만 이 방법은 도움이 되지 않았다. 폴더구조나 파일 이름은 알려주나, 파일 복구 시에 대부분의 파일이 깨져서 열리지가 않았다.
      However, this method was not helpful. It tells you the folder structures or file name, but most of files were corrupted after recovered.
    • 다운로드(Download):
    • 사용법 (How-to Video):
  2. (추천) 파일 복구 프로그램으로 삭제된 파일 복구
    (Recommend) Restore deleted files with recovery tools

    • 위에서 설명했듯이, CrpytoLocker는 암호화 시킨후 원본을 삭제하기 때문에 원본이 아직 남아있을 수 있다. 그렇기 때문에 파일 복구 프로그램을 이용하여 복구가 가능할 수도 있다. 실제 이 방법으로 파일을 다수 복구하였다.
      As explained above, CryptoLocker deletes original files after encrypting files. Therefore, deleted files may be able to recover by recover program. Using this method, I was able to recover many affected files.
    • Recuva <- 추천(Recommend)
      • 다른 프로그램보다는 이 프로그램이 가장 사용하기 편하고 좋았다. 이 프로그램은 파일 복구 가능 여부와 간혹 파일 이름까지도 복구하였다.
        Compare to other recovery applications, this one was best convenient and easy to use. This application tells you whether you can recover certain files or not and it often recovers filename as well.
      • 다운로드(Download):
      • 사용법 (How-to Video):
    • Disk Drill
  3. 윈도우 복원/System Restore
    • 어느 사이트에서 윈도우 복원이 도움이 된다고 하였으나, 실제 파일을 복구시키진 않았다.
      Some forum suggested that system restore will help; however, it didn’t recover any files.

참고 사이트



1. – 무료
2. – 무료, 유료($35/년)
3. – 무료

1. – 무료
2. – 무료

백업 방법
1. Crashplan – 유료 ($5/달/개인) 온라인에 무제한 백업 가능.
2. Time Machine – 애플 내장 백업. 하드디스크만 사면됨

주의 첨부파일

상황 정리:

  • 방금 전, 내 이메일로 나에게 수상한 압축파일이 하나 전달되었음.
  • 리눅스 VM을 열어 파일을 다운로드하고 압축을 해제함.
  • Document 2.zip안에는 RHE3451867925.js 자바스크립트 파일이 있어 파일을 열어본 결과 스크린샷과 같은 내용을 볼수있었음
  • 압축파일은 Locky Ransomware로 파악됨 최근 몇일 사이에 많이 퍼진듯함 (
  • 압축 파일은 Document 1.zip이 되기도 하고 Document 7.zip이 되기도하는듯 함.
  • 일단 내 메일주소였기 때문에 Gmail 스팸필터를 통과할수있었음.
  • 이메일 헤더를 보면 아이폰 애플 메일에서 보내진것으로 나오는데, 그렇다면 내 아이폰에서 보냈다는 말인가? 어떻게?
  • 아 도메인에 SPF레코드가 설정이 안되어있어서 위조를 당했구나. 아이폰 메일로 보낸것처럼 위장하다니…
  • 보낸 IP가, Saint Lucia/North America
  • 구글앱스를 사용하는데 도메인에 SPF 레코드를 확인해보니 구글앱스 레코드가 아니였음. 구글앱스 레코드로 설정 완료

업데이트: 25/03/2016


이메일 제목: Document 2









위조당한 이메일 헤더 정보:

Received: by with SMTP id d10csp1714947igl;
        Tue, 22 Mar 2016 04:55:38 -0700 (PDT)
X-Received: by with SMTP id ex10mr34161885wjc.8.1458647738906;
        Tue, 22 Mar 2016 04:55:38 -0700 (PDT)
Return-Path: &lt;;
Received: <strong>from [] ([])</strong>
        by with ESMTP id ln5si36932046wjb.38.2016.
        for &lt;;;
        Tue, 22 Mar 2016 04:55:38 -0700 (PDT)
Received-SPF: <strong>softfail ( domain of transitioning does not designate as permitted sender) client-ip=;
       <strong>spf=softfail ( domain of transitioning does not designate as permitted sender)</strong>
Content-Type: multipart/mixed; boundary=Apple-Mail-F191C416-F656-86F0-9E05-3F1EE3035333
Content-Transfer-Encoding: 7bit
From: &lt;;
Mime-Version: 1.0 (1.0)
Date: Tue, 22 Mar 2016 05:55:28 -0600
Subject: Document 2
Message-Id: &lt;;
To: &lt;;
X-Mailer: iPhone Mail (13B143)

Content-Type: text/plain;
Content-Transfer-Encoding: 7bit

Content-Type: application/zip;
Content-Disposition: attachment;
Content-Transfer-Encoding: base64




실제 아이폰으로 보내진 이메일 헤더

Return-Path: <>
Received: from [192.XXX.1.X] (14-XXX-78-XXX.XXXX.XXXX. [14.XXX.78.XXX])
        by with ESMTPSA id w27smXXXX2321pfa.67.2016.
        for <>
        (version=TLSv1/SSLv3 cipher=OTHER);
        Tue, 22 Mar 2016 06:27:08 -0700 (PDT)
From: Chris Lee <>
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (1.0)
Subject: Test email from iPhone 
Message-Id: <>
Date: Wed, 23 Mar 2016 00:27:05 +1100
X-Mailer: iPhone Mail (13E233)

Sent from my iPhone

Document 2.zip안에 RHE3451867925.js 파일









암호 관리 프로그램 짜투리팁

[오늘의 짜투리 간단팁]

각종 사이트의 암호를 다 같게 할 경우, 하나가 해킹당하면 모든 사이트 비밀번호를 다시 바꿔야하고! 암호를 다 다르게 하자니, 다 기억할 수 가 없네요. 암호를 쉽게 만들면 또 쉽게 만든다고 해킹당하고, 어렵게 만들면 또 내가 기억못하고, 이걸 어떻게 해야하나요!?

그래서 나온 프로그램들이 1Password나 LastPass같은 암호 관리 프로그램들이에요.
이런 암호 관리 프로그램들은 어떤사이트에 내가 가입을 했는지, 내 신용카드 번호, 보안 노트, 각종 소프트웨어 라이센스 관리까지 다 할수가 있어요.

어려워 보이지만, 알고보면 사실 아주 간단해요. 프로그램마다 틀리겠지만, 제가 쓰는 1Password로 이야기해볼게요.

아이디/암호 저장하기: 로그인폼에 아이디 비밀번호 쓴다. 1Password 아이콘을 누르고 저장하기를 누른다. 이름을 입력한다. 끝.

아이디/암호 불러오기: 사이트에 접속한다. 1Password 아이콘을 누르면 자동으로 접속한 사이트의 로그인 정보가 보인다. 클릭한다. 끝.

이런 암호관리 프로그램을 이용하면 더이상 복잡한 아이디/암호를 기억할 필요가 없어요.

단, 단점도 있습니다. 암호 관리 프로그램도 보안을 해야하니, 마스터 암호 (관리자 암호)가 존재합니다. 마스터 암호를 이용하여 내가 아닌 다른 사람은 못보도록 하고, 마스터 암호를 입력해야만 저장된 사이트 로그인 정보를 볼수가 있는 것입니다.

마스터 암호가 유출이 되면 모든 암호들이 유출이 되는것과 마찬가지이니, 이 부분은 또 유념해야합니다.

1Password 참고 자료:

  • 데이터를 로컬 저장소에 저장함으로써 외부접근이 되지 않음.
  • Cloud를 통해 기기들끼리 동기화가 가능하나, Dropbox같은 개인 Cloud를 이용하기 때문에, LastPass와 같은 Cloud 동기화 시스템과는 보안이 좋다고 함.
  • 유료

LassPass 참고 자료:

  • 데이터를 중앙 Cloud에 저장을 하여 각종 기기들끼리 동기화가 가능함.
  • 중앙 Cloud저장소를 해킹당한 경험이 있음(허나 암호들은 풀기가 어렵게 암호화가 되어있어서 안전하다고는 하지만, 그래도 찝찝함)
  • 무료


2015-12-22 크리스 올림

How to delete watch history in Facebook activity history

If you go to your Activity Log in Facebook and click Photos tab in the left menu, you will find the history of watched videos in your timeline.

I assume, even if you watched auto-played video in your timeline, Facebook assumed that you watched that video and log that you watched the video. It indicates the history is not visible to others, only I can see it; however, I was uncomfortable that Facebook recorded my history in their database.

They do provide the way to delete the video watched history; however, you have to delete the video history one by one, which is gonna taking very long time to delete all histories. Not sure why Facebook does not provide the way to prevent logging at first stage or delete all at once. (or even if I delete from the history, does it actually delete from their database?)

So I had to find out the way to delete at once, or at least semi-automated.

Here is how to do semi-automated way to delete video watching history in Facebook Activity Log.

  1. Open Google Chrome and log in to your Facebook
  2. Click your profile
  3. Click View Activity Log button in top right.
  4. Click Photos on the left panel, then you will see the watched video list like below:facebook_video_activity
  5. Click right mouse in any place in the page and open Inspect Element
  6. Click Console in Inspect Element
  7. Copy and Paste below code and press enter. You will see the histories are deleted
    var el = document.getElementsByClassName('_42ft'); 
    for (var i=0;i<el.length; i++) { 
    var el = document.getElementsByClassName('_54nc'); 
    for (var i=0;i<el.length; i++) { 
     setTimeout(function() { 
     }, 100); 
  8. If you click Photos tab again, you may see other histories that still are not deleted, try to load more activities by scrolling screen to bottom multiple times and do step 7 again.

If your page is reloaded or logged out, then try again.

You may see the activities even if executed the script. Sometimes, it may take a time to see actual deletion. Try to execute again or check some period later.

Gmail 피싱 사이트 관련

[Gmail 피싱 사이트 관련]

평화롭던 금요일 저녁, 급박한 이메일이 하나 도착했습니다.

누군가가 제 암호를 이용해서 구글 계정에 접근했다고 구글로부터 노티피케이션 메일이 온거지요.

자세하게 미국에서 접근했다는 내용과 함께 만약 제가 로그인한게 아니라면 바로 암호를 변경하라고 버튼이 있었습니다. 허술한 피싱메일과는 달리 완벽하게 구글 노티 메일을 카피하여서 인지, 바로  Reset Password버튼을 클릭하고 로그인 페이지로 들어가 이메일과 암호를 입력하고 있었습니다.

근데 저같은 경우는 Two-factor authentication을 이용하고 있었고, 제 핸드폰이 없이는 절대 구글계정에 로그인을 할 수가 없었기 때문에, 이상한 생각이 들었습니다.

그래서 보낸 사람 메일주소와, Reset Password 버튼의 주소를 확인한 결과 완벽한 피싱 사이트였던것입니다.

피싱 메일인지 확인하는 방법은 다음과 같습니다.

  • 보낸사람의 메일 주소를 확인한다.
    • 이 피싱메일의 경우에는 메일주소가 support-noreply@account.g.mail.com이였습니다.
    • g와 mail사이에 .이 있음으로 인해 구글의 피싱경고를 피한것 같습니다.
    • 보통 Gmail에서는 도메인이 일치하지 않으면 피싱 경고 메시지를 보여주는데 이번에는 보여주지 않은것으로 보입니다.
  • 웹페이지의 주소를 확인한다.
    • Reset Password를 클릭하고 들어갔을때 구글과 거의 동일한 로그인 페이지가 보이는데, 위 주소를 보면 도메인이 greenbackconsulting.com이라고 보입니다. 구글의 도메인이 google.com이니 이건 피싱 사이트입니다.

만약 피싱 웹사이트에 암호를 입력하였다면, 바로 암호를 변경하시기 바랍니다.

이와 같은 피싱을 방지 하기 위해서 추천하는 방법은 다음과 같습니다.

  • 2단계 인증 사용하기 (Two-factor Authentication)
  • 암호를 자주 바꾸고, 어렵게 쓰기. 동일한 암호 쓰지 않기.
    • 위 권고사항이야 이미 알고 있으니 긴설명은 생략.

2단계 인증(Two-Factor Authentication)을 꼭 사용하시기 바랍니다.

2015-11-13 크리스 올림

참고 이미지 1: 이상한 메일 도메인


참고 이미지 2: Reset Password를 꾸욱 눌렀을때 나타난 가짜 도메인주소


참고 이미지 3: 구글 도메인이 아닌 가짜 도메인