2020년 4월 26일 일요일

honeypot 서버 운영 경험기

오랫동안 개인 블로그에 글이 업데이트 되지 않는것을 보고 빨리 재밌는거 하나 찾아서 글 올려야지 다짐을 했었는데 이제야 올리게 되네요.

앞으로는 열심히 살아서 꾸준하게 올리도록 하겠습니다.


=====


결론부터 말하면 얻은 것이 아무것도 없습니다. 뭔가 흥미로운 내용을 원하셨다면 그냥 이 창을 끄고 자기의  삶에 조금 더 시간을 쏟는 것을 권장 드립니다

이런 잉여짓을 하는 사람이 실제로 있구나 하면서 읽어주시면 감사하겠습니다.

honeypot 서버를 구축하게 된 계기는 다음과 같았습니다.  

인터넷 서핑 또는 일을 하다가 많은 wordpress 서버가 해킹 당하여 디페이스 혹은 악성코드가 심어져 있는것을 확인 하였습니다.

이것을 보고, 의문점이 들었습니다.  wordpress 서버는 내가 알고 있는 프레임워크중 손꼽힐 정도로 튼튼한데 어찌 해킹을 당할까에서 출발된 아이디어였습니다.

제가 만든 honeypot 서버의 스펙(?)은 아래와 같습니다.

1.  apache
2. wordpress 엄청 옛날 버전
3. mysql
4. php
5. ubuntu

apache 설정은 아래와 같습니다. (이쁘게 올리고 싶었는데 Blogger가 기능 지원  해주는게 없어서 그냥 대충 올립니다.)

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SecRuleEngine On
SecAuditEngine On
SecRequestBodyAccess On
SecAuditLogParts ABCFE
SecAuditLog /var/log/apache2/detail_log
</VirtualHost>

위와 같이 서버를 구성 한뒤 로그를 관찰하고 있었습니다. 

그런데 신기하게도 사이트에 대한 별 홍보가 없었음에도 불구하고 약 1시간뒤 스캐너들이 제 서버에 슬금슬금 들어오는게 포착이 되었습니다.

이것을 통해 전 운이 좋으면 wordpress  1-day exploit 더 운이 좋으면 0-day까지 얻을수 있겠다라는 희망이 생겼습니다.

그 후  다시 나의 삶을 돌아와서 살다보니 내가 허니팟 서버를 만들었다는 사실을 잊어버린채 살게 되었습니다. (원래는 한 일주일만 돌려볼려고 생각했음)

그리고 1년이 지난 어제, 일이 너무 하기싫어 이것저것 클릭하고 있던 도중 나의 허니팟 서버를 발견 하게 되었고, 로그 데이터도 보니 생각보다 많이 쌓여있어 회사일 보다 이게 더 가치있는 일인거 같다 라는 합리적인 생각이 들었습니다.

서버에서 로그를 다운 받고 먼저 URI 부분만 파싱 하였습니다.

파싱후 중복된 내용을 제거한 데이터는 아래와 같습니다.
https://gist.github.com/adm1nkyj/5df1a1d21324f4debe1537c8a3c766b1

확인 결과 해커들이 그냥 단순 스캐닝이 많다는것을 확인 할수 있었습니다.

그런데, 여기서 주목 해야 할점은 

https://gist.github.com/adm1nkyj/5df1a1d21324f4debe1537c8a3c766b1#file-honeypot_uri_data-L2097
https://gist.github.com/adm1nkyj/5df1a1d21324f4debe1537c8a3c766b1#file-honeypot_uri_data-L2454

와 같은 부분입니다. 저 공격 기록들을 통해 CVE-2020-9054, CVE-2019-11510 와 같이 최근에 발견된 취약점들도 빠르게 exploit을 개발하여 자신들의 스캐너에 추가하여 공격에 사용한다는 것을 알 수 있었습니다.  (만약 이 글을 보안 담당자가 보고 계신다면, 자신의 회사 소프트웨어들이 최신 버전인지 다시 한번 확인 하는 것을 추천 드립니다)

하지만 제가 생각한 결과가 나오지 않아 아쉬운 나머지 추가적인 부분을 더 보았으나 딱히 흥미를 유발한 무언가가 없어 그냥 대충 마무리를 지었습니다.

아래는 제 서버에 로그인을 시도한 ID/PW 딕셔너리 데이터입니다. (중복제거한 데이터임)
https://gist.github.com/adm1nkyj/20f5397a39aa5b666e233a1a21e805ce

생각보다 적은 데이터를 시도해서 다시 한번 놀랐습니다.

위에 있는 데이터들을 바탕으로 스캐너들이 wordpress를 해킹하는 방법을 정리해보면 아래와 같습니다.

1. https://hackertarget.com/wordpress-user-enumeration/ 에 서술된 방법으로 wordpress 유저들을 열거
2. 열거된 유저를 기준으로 딕셔너리로 비밀번호 브루트포싱함
3. 걸리면 장땡 안되면 말고....


이렇게 저의 어떻게 보면 얻은게 있는 간단한 허니팟 프로젝트가 마무리 되었습니다.

다 쓰고 보니 글이 뭐 너무 두서가 없는데 그냥 일하기 싫어서 쓰는거니간 그냥 이 사람은 이렇게 시간을 버렸구나 하면서 생각 해주세요. 이 글에 대해서 뭐 따로 질문이 있으시다면 페이스북 메세지로 연락 주시면 답변 해드리겠습니다.



 이 프로젝트에서 아쉬웠던점은 아래와 같습니다.

먼저, 전  해커들이 엄청난 무언가를 이용해 사이트들을 해킹 할줄 알았으나 단순 스캐닝과 브루트포싱 같은 단순한 방법으로 해킹을 한다는거에 아쉬웠습니다.

 두번째로는 이 단순한것들에 많은 사이트들이 무방비로 당한다는것이 아쉬웠습니다


아 글 어떻게 끝낼지 모르겠으니깐 그냥 대충 이렇게 마무리 지어야겠다 으아아아악

다음에는 재밌는 취약점 찾아와서 제대로 글을 써보도록 하겠습니다.
(최근에 제가 제대로 적은 글을 보고 싶으시다면 회사 홈페이지 가시면 됩니다!)

https://enki.co.kr/blog/2020/03/06/xe_vuln.html
https://enki.co.kr/blog/2020/02/27/cce_writeup.html