Website defacement

I bumped into a ‘hacked’ page while checking my page this morning.  I found the following script has been inserted into all WordPress-based pages. Also, the title was altered by a hacker. I was able to find similar attacks around the globe.

Because I have updated into the latest version of WordPress since last week, I doubt it was caused by WordPress vulnerability itself.  After I looked into web logs, other traces, and related attacks, it looks like the hosting server has been compromised recently. The attack looks quite similar to ‘Hacked by Badi‘ a few years ago.

For those who have gone through the defacement, the following link would help. (Hopefully the server should be patched immediately.)

https://wordpress.org/support/topic/hacked-by-badi-1
http://whmscripts.net/misc/2013/apache-symlink-security-issue-fixpatch/

Looking at Redstar 3.0 (붉은별) closely

북한의 운영체제라 불리는 붉은별 3.0 (Redstar) Desktop 버전이 지난해 말 익명의 pastebin에서 공개되었다. 해외에서는 벌써 신기한 눈으로 이를 뜯어보기 시작했는데, 정작 국내에서는 정보를 찾아보기 힘들어 한 번 살펴봤다.

I. Overview

전반적인 모습은 Mac OS X의 외모를 한 Redhat 기반의 Linux다. 개인용으로 배포되어 그런지 외관상 미려해 보이며, 김정일이 Mac을 써 본 후 만족해서 그의 지시하에 Linux기반의 Mac 외관을 갖추게 되었다는 얘기도 있다.  아래는 본인이 configuration을 손수 설정해 본 화면이다.

서광사무처리는 오피스에 해당하며 본문문서(워드), 자료표(엑셀), 연시물(파워포인트) 3대 기본 소프트웨어를 모두 갖추고 있다. 이밖에도 계산기는 전자수신기, 브라우저는 내나라열람기, media player는 다매체 재생기라 부르는 아이콘으로 실행할 수 있다. 특히 terminal은 조작락이라고 부르고 있으며, default로 접근할 수 있지 않다. 전체적인 느낌은 상당히 사무용에 한정해 (일부 게임도 있지만) 사용하도록 구성했다는 점이다.

소프트웨어 배포는 Redhat 기반의 Linux에서 사용하는 rpm만 이용하는 것으로 보이며, ubuntu기반의 apt-get은 없다.

Linux Kernel은 상당히 오래된 안정 버전인 2.6.38을 사용 중이며 release 정보 또한 확인할 수 있다.  Forbes에서 Thomas는 전문가의 말을 인용해 보안에 취약한 구버전의 소프트웨어를 사용하고 있으며, 기본적인 실수나 보안을 고려하지 않은 코딩으로 인한 취약점도 여럿 발견되었다고 했다.

 

II. Features & Security

가상환경에서 설치를 마친 직후는 호스트와 상호 ICMP 메시지도 보낼 수 없다. 대부분이 막혀 있는 것으로 보이는데 뒤에서 살펴보도록 하자. 기본으로 열려있는 포트를 확인해 보면 의외로 445번(SMB)을 확인할 수 있는데, 이를 통해 Windows에서 읽기전용으로 root directory 전체와 쓰기 권한이 있는 Public Folder에 접근할 수 있다.

작년에 큰 이슈가 되었던 openssl의 heartbleed 가능여부를 보면, 영향을 받지 않는 버전(0.9.8g)임을 알 수 있다.

좀 더 나아가 root 권한을 획득해 보자.  richardg867는 그의 블로그에서 Software Manager가 sudo를 통해 root권한으로 동작하는 점을 이용해 root 권한을 획득할 수 있는 rpm을 제공한다. 해당 rpm은 /bin/rootsh을 복사하며, 다음과 같이 setuid 권한을 가지고 있다.

또한 지난 9일 Seclist에서  local privilege escalation 취약점이 보고(CVE)되었다. 모든 이가 쓸 수 있는 권한을 가지도록 잘못 설정되어 이를 이용해 “RUN+” 인자를 추가하고 root 권한으로 실행할 수 있다.

위 취약점을 이용한 코드도 이미 다음과 같이 공개되었다. (Credit: http://sprunge.us/cIKN?sh)

이제 여러가지 정보를 더 확인해 볼 수 있다. root는 /sbin/nologin으로 인해 로그인을 할 수 없도록 되어 있다. /etc/passwd에서 root가 /bin/bash를 이용할 수 있도록 편집하면 root로 로그인할 수 있을 것이다.

기본적으로 동작하고 중지된 서비스는 다음과 같다. 예상했던 대로 smbd이 동작하고 있다.

처음 설치 후에는 Redhat에서 기본적으로 제공하는 SELinux와  iptables를 이용한 방화벽 때문에 내부에서 외부로 접속하는 일부 포트를 제외하고 ICMP, DNS를 포함한 대부분의 서비스가 모두 막혀 있다.  다음과 같이 이를 제거하면 외부망에 접속할 수 있다.

마지막으로 로드되어 있는 모듈을 살펴보자.

특이한 점은 Forbes에서 보도했듯이 rtscan이라는 커널 모듈이다. description을 통해 rt가 real time이라는 사실과 해당 모듈이 모니터링을  용도라는 점, 그리고 작성자와 이메일을 알 수 있다. Forbes는 해당 메일로 문의했다고 하나 현재까지 답변을 받지 못하고 있다고 한다.

 

III. Wrap-up

북한의 운영체제 하나만을 보고 사이버 전력을 결론짓기엔 물론 무리가 있으나, 유출된 운영체제를 통해 그들의 상황을 짐작할 수는 있다. 오래된 버전의 소프트웨어를 사용하거나 알려진 취약점이 있음에도 배포하는 이유는 모르겠지만, 원활한 감시체계를 위해 의도적으로 만들었을 가능성 또한 배제할 수 없다. 제한된 포트만을 내부에서 외부로 접속할 수 있도록 방화벽이 설정되어 그 외부를 차단해 일반인은 내부망만을 이용하도록 강제되어 있다.  자세한 사항은 알 수 없지만 특정 커널 모듈은 rootkit 형태로 모니터링 용도로 존재한다.

 

IV. References

http://www.forbes.com/sites/thomasbrewster/2015/01/09/hacking-north-korea-red-star-is-easy/
http://richardg867.wordpress.com/2015/01/01/notes-on-red-star-os-3-0/
https://stewilliams.com/surprise-norks-linux-disto-has-security-vulns/
http://seclists.org/oss-sec/2015/q1/101

Changing the Directory Color in the Bash Shell

While running Linux distribution,  I often found it that I could hardly see directory names due to dark color (well, it is dark blue in black background, which is hard to believe why this combination is chosen)

Thanks to this posting, I could change the color. Here’s a simple way.

1. Open .bashrc in your home directory.
2. Create the following entry. Check out the [value] below. The first number is the degree of darkness, followed by a semicolon, and then the actual number of the color.

3. Restart bash shell.