Matasano는 어떻게 해킹 당했습니까?


답변:


34

Matasano는 어떻게 해킹 당했습니까?

게시물의 정보를 전체 공개에 답하는 것은 불가능합니다. 그러나 그들은 약간의 정보를 제공하기 때문에 항상 추측하는 것이 흥미 롭습니다.

# ./th3_f1n4l_s0lut10n www.matasano.com
[-] 69.61.87.163:22.에 연결
[/] 루트가 아닌 유효한 사용자를 찾고 있습니다.
******** R3D4CT3D h4h4h4h4 ********

그들은 th3_f1n41_s01ut10nssh 포트에 연결된 Matasano 서버에 대해 바이너리 " "를 실행합니다 . 알 수없는 수단을 통해 루트가 아닌 유효한 사용자를 찾고 나머지 출력을 수정합니다.

# ./th3_f1n4l_s0lut10n -u adam -t 3 www.matasano.com
[*] 209.112.118.10:3338의 연결 리스너.
[!] SSH2_MSG_SERVICE_ACCEPT [OpenSSH_4.5p1, OpenSSL 0.9.8g 2007 년 10 월 19 일] 

바이너리는 찾은 사용자 이름을 사용하여 다시 실행되며 포트 3338에서 서버에 다시 연결됩니다 (이름에 등록되지 않았 으면합니다).

adam_at_www : ~ $ uname -a
Linux www 2.6.20.1-1-686 # 1 SMP Sun Mar 4 12:44:55 UTC 2007 i686 GNU / Linux
**** h4h4h4hh4h4h4 l3tz us3 m0r3! 0D4Y! H4H4H4H4H4H4H4 ****

그들은이 커널에 대해 0 일이 있음을 암시 할 수 있습니다.이 회사의 주식 거래를 고려할 때 꽤 오래되었습니다.

adam_at_www : ~ $ cd / tmp
*********** B0R1NG ***********
root_at_www : ~ # 고양이 / etc / shadow 

으악-갑자기 사용자는 이제 뿌리입니다. / tmp에 참조한 0 일일 수있는 로컬 권한 에스컬레이션 익스플로잇이 있습니다.

따라서 적어도 두 가지 익스플로잇이 진행 중입니다. OpenSSH 익스플로잇은 시스템에서 루트가 아닌 유효한 사용자를 얻고 해당 사용자로 로그인 한 다음 로컬 권한 에스컬레이션입니다.

OpenSSH에 버전 4.5 이후 알려진 몇 가지 보안 문제가 있다는 것을 고려하면 :

에서 OpenSSH의 보안 페이지 :

  • 버전 5.2 이전의 OpenSSH는 CPNI-957037 "SSH에 대한 일반 텍스트 복구 공격"에 설명 된 프로토콜 취약점에 취약합니다. 그러나 사용 가능한 제한된 정보에 따라이 설명 된 공격은 대부분의 상황에서 실행 불가능한 것으로 보입니다. 자세한 내용은 cbc.adv 권고 및 OpenSSH 5.2 릴리스 정보를 참조하십시오.
  • OpenSSH 4.9 이상은 ~/.ssh/rcsshd_config (5) ForceCommand 지시문으로 명령이 재정의 된 세션에 대해서는 실행되지 않습니다 . 이것은 문서화되었지만 안전하지 않은 동작입니다 (OpenSSH 4.9 릴리스 노트에 설명되어 있음).
  • OpenSSH 4.7 릴리스 노트에 설명 된대로 신뢰할 수없는 쿠키 생성에 실패한 경우 (예 : 고의적 인 리소스 고갈 등) ​​OpenSSH 4.7 이상은 신뢰할 수있는 X11 인증 쿠키 생성으로 대체되지 않습니다.

나는이 오래된 리눅스 커널과 오래된 SSH 데몬이 그것들을 위해 가지고 있다고 생각합니다. 또한 인터넷에서 사용할 수있는 www 서버에서 실행 중이므로 제 생각에는 자신감이 있습니다. 침입 한 사람들은 당황스러워하고 싶었습니다.

이러한 공격을 방지하는 방법은 무엇입니까?

이는 사전 예방 적 관리를 통해 방지 할 수 있습니다. 인터넷 연결 서비스를 패치하고 사람들이 어디에서나 연결하지 않고 연결할 수있는 사람의 수를 제한하십시오. 이 에피소드는 보안 시스템 관리가 어렵다는 교훈을 더욱 복잡하게 만들고, 최소한 소규모 회사에서는 쉽게 일어나는 일이 아니라 실제로 IT가 일을 패치 할 수있는 시간을 제공하기 위해 비즈니스에 전념해야합니다.

벨트 앤 괄호 방식을 사용하는 것이 가장 좋습니다. 공개 키 인증, ssh 데몬의 허용 목록, 2 단계 인증, IP 제한 및 / 또는 VPN 뒤에있는 모든 항목을 잠그는 경로 일 수 있습니다.

내일 직장에서 무엇을할지 알고 있다고 생각합니다. :)


2
OpenSSH를 통해 로그인하려면 유효한 공개 키가 필요합니다. 바보 증거는 아니지만 도움이됩니다. 좋은 포스트 btw.
Andrioid

좋은 지적, 추가 :)
Cawflands

1
OpenSSH 버전 문자열은 다양한 Linux 버전의 백 포트 수정으로 인해 Vunerabilite가 패치되었는지 여부에 대한 신뢰할 수있는 가이드와 거리가 멀다는 것을 지적 할 가치가 있습니다. 또한, 여기에있는 버그 중 어느 것도 사용자가 상당히 심각한 다른 위반자없이 로그인 할 수있게하지는 않습니다.
Cian

3

사람들은 그것을 통해 FUD를 만드는 것을 좋아하지만, 사용자 아담이 이미 있다는 것을 알고 자신의 암호도 알고 있습니다 (무차별 한 방법이나 다른 방법을 통해). 그러나 그들은 시원하게 보이고이 혼란을 만들고 싶어합니다.

주목해야 할 또 다른 점은 사용자 adam이 1 년 이상 해당 상자에 로그인하지 않았다는 것입니다.

(라스트 로그 출력)

 adam             pts/1    ool-4350ab48.dyn Sat Jul 26 20:45:18 -0400 2008

그래서 그는 아마도 그 암호 (나쁜 암호 일 수도 있음)를 잠시 동안 유지했을 것입니다.

* 실제로 SSH를 통해 사용자 이름을 검색하는 도구가있는 경우 다른 모든 사용자를 사용하여 원격 액세스를 얻을 수 있었지만 해당 상자에서 가장 일반적인 사용자 이름을 사용했습니다 (쉽게 추측).


2

프로그래밍 관점에서 왜 이것을 시도하고 해결 하시겠습니까?

대신 스마트 서버 관리자의 관점에서 해결해야합니다. 허용 된 사이트 목록 사용과 같이 게시 한 링크의 의견에 대한 몇 가지 훌륭한 제안이 있습니다.

또한 여기에 요청하기 때문에 보안 전문가가 아닐 가능성이 높으며 작성하려고 생각할 수있는 것은 더 많은 구멍을 추가 할 것입니다. 이것은 실제로 프로그래밍 질문이 아닙니다.


한 가지 제안은 화이트리스트였습니까?

이것은 여전히 ​​프로그래밍 문제가 아니라 구성 문제입니다.
blowdart


@Sneakyness 저는 보안 전문가가 아닙니다.하지만 지적 해 주셔서 감사합니다.이 질문을했기 때문에 배울 수 있습니다. 배우고 싶은 것에 대해 글을 쓸 수 없게 해주셔서 감사합니다. 이 프로그래밍 여부를 progamming의 질문 - 나는 대답 보안 전문가로 떠날거야 - 당신이 포함 (난 당신이 교육 코멘트에서 기반의 하나입니다 있으리라 믿고있어)
user14898

2

0 일 공격으로부터 소프트웨어를 보호하십시오 ... 불가능합니다.

어쩌면 한 가지 좋은 접근 방식은 소프트웨어를 해킹 할 수 없다고 주장하는 것입니다. 이로 인해 화이트 햇이 소프트웨어를 사용 해보고 모든 것을 공개하여 구멍을 거의 남기지 않을 것입니다. Oracle 10은 이러한 주장을했으며 다음 날 9 개의 새로운 구멍이 발견되었습니다. 지금은 안전합니다.

아마도 해커는 완벽하게 좋은 소프트웨어의 구성을 남용했습니다.


우리는 이것이 심지어 제로 데이라고 확신합니까?
Josh Brower

2

그들은 그 기계에 쉘을 가진 많은 사용자를 가지고 있다는 것을 생각 나게한다. 그것이 그들이 확실히 소유 한 방법입니다. 다른 모든 것들은주의를 산만하게합니다. 그들 중 하나는 다른 쉘 시스템에서 ssh 클라이언트를 백도어로 얻었고 게임이 끝났습니다. 모든 사람들에게 쉘 계정을 제공하고 sshd 세계에 액세스 할 수있게하는 것은 게으르고 어리 석습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.