CVE-2023-27350 Exploiti Nedir ? PaperCut Dünyaca Ünlü Yazılım

a3b2jeo.png

logo.png


CVE-2023-27350 Exploiti Nedir ? PaperCut Dünyaca Ünlü Yazılım Nedir ?

PaperCut NG , dünya çapında 70.000'den fazla kuruluşta 100 milyon kullanıcısı olan popüler bir baskı yönetimi yazılımıdır . Son keşifler, bu yaygın olarak kullanılan yazılımdaki kritik güvenlik açıklarını, özellikle de CVE-2023-27350 kimlik doğrulamasını atlama güvenlik açığını ortaya çıkardı. Bu güvenlik açığından yararlanılırsa, bir saldırganın hedef sistemde yükseltilmiş ayrıcalıklarla rasgele kod yürütmesine olanak tanır. Savunmacılar, bu kritik güvenlik açığının ardındaki mekanizmaları anlayarak sistemlerini daha iyi koruyabilir ve daha güvenli bir baskı ortamı sağlayabilir. Bu Yazı, Splunk Tehdit Araştırma Ekibinin sürecini anlatıyor bir PaperCut NG sunucusu kurmak için kullanıldığını, CVE-2023-27350 konsept kanıtı komut dosyalarının ayrıntılarını ve bunların nasıl çalıştırılacağını, Splunk günlük kaydının nasıl kurulacağını araştırır ve rakipleri belirlemek için bazı yeni güvenlik içeriğine dalar.

18 Nisan 2023 Tarihinde Ne Oldu ?


Trend Micro, PaperCut NG'ye şunları bildirdi: “... dünya çapında 100 milyondan fazla kullanıcı tarafından kullanılan bir baskı yönetimi yazılımı çözümü olan Papercut'ta iki güvenlik açığı, CVE-2023-27350 ve CVE-2023-27351. Bu iki güvenlik açığından biri olan CVE-2023-27350'nin kötü niyetli aktörler tarafından uzaktan kod yürütme (RCE) için aktif olarak kullanıldığına dair kanıtlar bulundu ."

18 Nisan 2023'te bir PaperCut müşterisi, en son yamalara sahip olmayan sunucuların CVE-2023-27350 aracılığıyla istismara açık olabileceğini belirten olağan dışı olaylar fark etti. Kapsamlı bir araştırma yürüttükten sonra PaperCut, CVE-2023-27350 ile potansiyel olarak ilişkili etkinliğin en erken belirtilerinin 14 Nisan 2023'e kadar izlenebileceğini buldu.


6OfL8I.gif


Paper Cut Hangi Ürünleri CVE-2023-27350 Etkileniyor ?

Aşağıdaki PaperCut sürümleri ve bileşenleri CVE-2023-27350'den etkilenir:

Tüm işletim sistemi platformlarında PaperCut MF veya PaperCut NG sürüm 8.0 veya üstü
PaperCut MF veya PaperCut NG Uygulama Sunucuları
PaperCut MF veya PaperCut NG Site Sunucuları
Bu arada, aşağıdaki PaperCut sürümleri ve bileşenleri CVE-2023-27351'den etkilenir:

Tüm işletim sistemi platformlarında PaperCut MF veya PaperCut NG sürüm 15.0 veya üzeri
PaperCut MF veya PaperCut NG Uygulama Sunucusu

Tüm ayrıntılar burada PaperCut sitesinde bulunabilir .

6OfL8I.gif


Windows Üzerinden Paper Cut Kurulumu Yapıp İnceleyelim ?

Windows Kurulumu
Kurulumumuz için Windows Server 2019 kullandık ve savunmasız sürüm 17'yi PaperCut kaynağından yükledik : https://cdn.papercut.com/files/pcng/17.x/pcng-setup-17.4.4.exe


1.png


Başlamak için yükleyiciye çift tıklayın. İstemler çok basit.

Yükleme tamamlandıktan sonra URL şu şekildedir :




12fc24c4e60a3f376.png




Windows için, Splunk Tehdit Araştırma Ekibi ayrıca tüm ağ trafiğini yakalamak istedi. Bu betiği bir süre önce, ayrıntılı ağ verilerini sağlamak için Windows'ta Suricata'yı yüklemek için yazdık. Önce TA'yı Universal Forwarder'a kurun. Windows'ta Suricata için komut dosyası şu şekildedir: notes/utilities/Install-Suricata.ps1 at master · MHaggis/notes


npcap yazılımı manuel tıklamalar gerektirdiğinden, bu iki aşamalı bir işlemdir:

1.

Suricata TA'yı

bir Windows Sisteminde $splunkUF/etc/apps konumuna kurun.

1 A. Ayıklandıktan sonra, inputs.conf'u değiştirin ve Windows'ta günlük verilerini toplamak için aşağıdakini ekleyin:



monitor://C:\Program Files\Suricata\log\eve.json host = suricata sourcetype = suricata
index = network




İzleme yolunun, Suricata için eve.json dosyasına özel pencereler olduğundan emin olun



2. Bu betiği diskten çalıştırın veya kopyalayıp
PowerShell/PowerShell_ISE'ye yapıştırın ve çalıştırın.



1b1d505fe02334361.png




2a. Yüklemenin ortasında, gezgin penceresini
c:\temp; npcap'e çift tıklayın ve kurulum için istemleri izleyin.



Tamamlandığında,
Suricata başlayacak:



1685df4711b017a5a.png




Şimdi Suricata başarıyla başladı. Suricata günlük verileri şu anda toplanıyor ve Splunk'a gönderiliyor.



TA'ya sahip Windows Server'a ek olarak, uygun veri modeli kullanımını sağlamak için Surcata TA'nın Splunk Arama Başlığına yüklenmesi gerekecektir.



Ağ ve uç nokta günlüklerine ek olarak, PaperCut NG için hata ayıklama günlüğünü etkinleştirdiğinizden emin olun.



Hata ayıklama günlüğünü etkinleştirmek için PaperCut NG web portalında aşağıdaki adımları izleyin:
Seçenekler -> Gelişmiş -> seçeneğine gidin



Hata Ayıklama Modunu Etkinleştir onay kutusunu seçin.



14be3b6c117c7bca2.png




Yerel


C:\Program Files\PaperCut NG\server\logs\server.log



Artık daha fazla veriyle doldurulacak. Muhtemelen bunu sonsuza kadar açık bırakmamak en iyisidir, ancak zamanında yama yapamayan ortamlarda bu günlükler izleme için önemli olacaktır.



Şuna benzer server.log dosyasını toplamak için inputs.conf'u değiştirin:



monitor://C:\Program Files\PaperCut NG\server\logs\server.log host = papercutng sourcetype = papercutng
index = win



Artık PaperCut NG'yi çalıştırıp ağ trafiği ve hata ayıklama günlüğü için yapılandırılmış günlük kaydına sahip olduğumuza göre, istismara bakabilir ve bu iki betiğin nasıl çalıştığını görebiliriz.



6OfL8I.gif



PaperCut Zafiyetini İnceleylim (Exploit)

Testimiz için burada Horizon3 tarafından sağlanan POC betiğini kullandık .


Ne işe yaradığını daha iyi anlamak için biraz açalım. Her bir URL yoluna gönderilen HTTP isteklerinin bir özeti aşağıda verilmiştir:





168fc477d88984186.png




1.

`/app?service=page/SetupCompleted`

: Oturumu başlatmak ve ilk çerezleri almak için bu yola bir


HTTP GET

isteği gönderilir. Yanıt,

"JSESSIONID"

değerini içermelidir.



2.


`/app`

: Bu yol, komut dosyası boyunca birkaç

HTTP POST

isteği için kullanılır:



A. İlk POST isteği, ilk kurulumu tamamlamak ve hedef uygulamayla geçerli bir oturum elde etmek için gönderilir. Gerekli verileri ve başlıkları içeren bir form gönderir.



B. Güncelleme ayarlarına

('print-and-device.script.enabled' ve 'print.script.sandboxed')

ve verilen komutu hedef sistemde yürütmeye başka POST istekleri gönderilir.



3.


`/app?service=page/PrinterList`

: Yazıcı listesi sayfasına gitmek için bu yola bir HTTP GET isteği gönderilir.



4.

`/app?service=direct/1/PrinterList/selectPrinter&sp=l1001`: `l1001`



kimliğine sahip bir yazıcı seçmek için bu yola bir HTTP GET isteği gönderilir. Bu, sabit olarak kodlanmış bir yazıcı kimliğidir ve her hedef sistem için çalışmayabilir.



5.

`/app?service=direct/1/PrinterDetails/printerOptionsTab.tab`

: Seçilen yazıcı için yazıcı seçenekleri sekmesine gitmek için bu yola bir HTTP GET isteği gönderilir.



Bu HTTP istekleri, oturum bilgilerini almak, ayarları güncellemek ve hedef sistemde kullanıcı tarafından sağlanan komutu yürütmek için özel bir yazdırma işi kanca komut dosyası eklemek için kullanılır.



Testimizde, betiği aşağıdaki gibi iki kez çalıştırdık:






Kod:
python3 CVE-2023-27350.py --url 'http://<remoteIP>:9191' --command 'cmd.exe /c powershell.exe calc.exe'

Kod:
python3 CVE-2023-27350.py --url 'http://<remoteIP>:9191' --command 'powershell.exe -EncodedCommand "V3JpdGUtSG9zdCAnSGVsbG8gV29ybGQn"'



1b480d69ceea0bb24.png




Ekran görüntüsünde gösterildiği gibi, her iki test de yeni PaperCut NG ortamımıza karşı başarılı oldu.



MetasPloit


Bu çekme isteğinde PaperCutNG Authentication Bypass with RCE by catatonicprime · Pull Request #17936 · rapid7/metasploit-framework bulunan MetaSploit modülü çok benzer adımlar gerçekleştirir:

1. /app?service=page/SetupCompleted

HTTP Yöntemi: GET

Amaç: Gelecekteki istekler için CSRF belirtecini alırken kimlik doğrulamasını atlayın ve bir oturum oluşturun.



2. /app?service=direct/1/ConfigEditor/quickFindForm

HTTP Yöntemi: POST

Amaç: Belirli bir yapılandırma seçeneği için hızlı bulma gerçekleştirin. Bu, 'print-and-device.script.enabled' ve 'print.script.sandboxed' seçeneklerinin değerlerini ayarlamak ve kontrol etmek için kullanılır.



3. /app?service=direct/1/ConfigEditor/$Form

HTTP Yöntemi: POST

Amaç: Sunucu yapılandırma seçeneklerini güncelleyin. Bu, betikleri etkinleştirmek (gerekirse) ve korumalı alanı devre dışı bırakmak (gerekirse) için kullanılır.



4. /app?service=direct/1/PrinterDetails/$PrinterDetailsScript.$Form

HTTP Yöntemi: POST

Amaç: Yükü daha sonra yürütülecek olan yazıcı komut dosyasına enjekte edin.



5. /app?service=direct/1/PrinterList/selectPrinter

HTTP Yöntemi: GET

Amaç: Değişiklik için yazıcıyı (Şablon Yazıcı) seçin. Bu, onu yük ile değiştirilmek üzere Goblen oturumuna yükler.



Modül MetaSploit'e yüklendikten sonra, bilgileri kontrol edebilir ve istismar için ayarlayabiliriz.




MetaSploit içinden bilgi:




146d78dff24c950d3.png




Ve seçenekler:



1e673c7cd843076dd.png




Artık her şey ayarlandığına göre, exploit çalıştırabiliriz ve işte - meterpreter burada: :cool:



Meterpreter'dan Shell ve whoami'yi çalıştırın:



pic10.png





İki komut dosyası arasındaki benzerlikleri biraz genişletmek için, aşağıdaki tabloda URI'ler yan yana gösterilmektedir:
MetaSploit​
Horizon3.ai​
/app​
/app​
/app?service=page/SetupCompleted​
/app?service=page/SetupCompleted​
/app?service=page/PrinterList​
/app?service=page/PrinterList​
/app?service=direct/1/PrinterList/selectPrinter​
/app?service=direct/1/PrinterList/selectPrinter​
/app?service=direct/1/PrinterDetails/printerOptionsTab.tab​
NA​
NA​
/app?service=direct/1/PrinterList/selectPrinter&sp=l1001​

Aynı PaperCut uygulamasını hedeflediklerinden, her iki komut dosyasında kullanılan URI'lerin çok benzer olduğunu unutmayın. Ancak, MetaSploit betiğinin "PrinterDetails/printerOptionsTab.tab" için ek bir URI'si vardır ve Horizon3.ai betiğinin "PrinterList/selectPrinter" bitiş noktasında fazladan bir URI parametresi vardır.

Bir laboratuvar kurduk, günlük kaydı aldık ve PaperCut NG'den başarıyla yararlandık. Artık bu günlükleri inceleyebilir ve bazı güvenlik içeriği oluşturmaya başlayabiliriz.


Güvenlik İçeriği
Windows PaperCut NG Spawn SHELL
Aşağıdaki analitik, pc-app.exe'den ortaya çıkan bir Windows kabuğunu - Cmd.exe veya PowerShell veya java.exe'yi tanımlar.


Kod:
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
  as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name=pc-app.exe `process_cmd` OR `process_powershell` OR Processes.process_name=java.exe
  by Processes.dest Processes.user Processes.parent_process_name Processes.process_name
  Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id

125642224899ca237.png


MetaSploit için bir java yükü varsayılandır; bu nedenle, uygulama istismar edildiğinde pc-app.exe java.exe'yi doğurur

106f862ca2a588dde.png


Saldırgan tarafında meterpreter çalışırken,
"execute -f whoami.exe" komutunu çalıştırdık ve sonuç olarak java.exe'den cmd.exe çıktı.

Yavaş Yavaş Sona geliyoruz...


1b459b3bada8c0ad4.png


MetaSploit'ten:


1c700ffa22dbbe1a1.png


Kullanıcı içeriğinin
NT AUTHORITY\SYSTEM olduğunu unutmayın.

6OfL8I.gif


PaperCut NG Uzaktan Web Erişimi Denemesi


Bu analitik, kötüye kullanılan yaygın URI yollarını belirlemek için Web veri modelini kullanır. Özel IP alanını göz ardı ediyoruz ve yalnızca uygulamayı numaralandıran genel bir IP adresine odaklanıyoruz.

Kod:
| tstats count from datamodel=Web where Web.url IN ("/app?service=page/SetupCompleted", "/app", "/app?service=page/PrinterList", "/app?service=direct/1/PrinterList/selectPrinter&sp=*", "/app?service=direct/1/PrinterDetails/printerOptionsTab.tab") NOT (src IN ("10.*.*.*","172.16.*.*", "192.168.*.*", "169.254.*.*", "127.*.*.*", "fc00::*", "fd00::*", "fe80::*")) by Web.http_user_agent Web.http_method, Web.url,Web.url_length Web.src, Web.dest Web.dest_port sourcetype | `drop_dm_object_name("Web")` | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)`

1dbbef5bd531ae368.png


Bu ekran görüntüsü, MetaSploit modülü kullanıldığında nasıl göründüğüdür. Kullanıcı aracılarındaki farka dikkat edin.

18818b8a4e9875906.png


MetaSploit kullanan ek bir yapı, java yükü için C2 ile iletişim kuran PaperCut NG sunucumuz olan src IP'dir:


1af8e6f6524b55559.png

PaperCut NG Şüpheli Davranış Hata Ayıklama Günlüğü

Bu özel günlük, doğrudan PaperCut NG Uygulamasından gelir ve etkinleştirilmesi gerekir . Süresiz olarak açık bırakılmaması şiddetle tavsiye edilir. Ancak, test amacıyla veya yama oluşana kadar buna değer olabilir. Bu analitik, hata ayıklama günlüğünde genel IP adreslerini, yönetici kullanıcıyı ve yukarıda tanımlanan URI'lerden birini arayarak farklı bir yaklaşım benimsiyor.

Kod:
`papercutng` (loginType=Admin OR userName=admin)
  | eval uri_match=if(match(_raw, "(?i)(\/app\?service=page\/SetupCompleted|\/app|\/app\?service=page\/PrinterList|\/app\?service=direct\/1\/PrinterList\/selectPrinter&sp=l1001|\/app\?service=direct\/1\/PrinterDetails\/printerOptionsTab\.tab)"), "URI matches", null())
  | eval ip_match=if(match(_raw, "(?i)((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))") AND NOT match(_raw, "(?i)(10\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|(172\.(1[6-9]|2[0-9]|3[0-1])\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|(192\.168\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))"), "IP matches", null())
  | where  (isnotnull(uri_match) OR isnotnull(ip_match))
  | stats sparkline, count, values(uri_match) AS uri_match, values(ip_match) AS ip_match latest(_raw)
    BY host, index, sourcetype

175afa4e2c292c9a3.png


Bu ekran görüntüsü, uygulamaya karşı MetaSploit kullanımını ve Horizon3.ai POC komut dosyasına nasıl çok benzediğini gösterir.

1814eda9e1ee375da.png


PaperCut NG'de CVE-2023-27350 güvenlik açığının keşfedilmesi, sürekli gelişen siber güvenlik dünyasında tetikte kalmanın önemini vurguluyor. Savunmacılar, bu kritik güvenlik açığının arkasındaki mekanizmaları anlayarak sistemlerini daha iyi koruyabilir. PaperCut NG kullanan kuruluşlar için gerekli yamaları uygulamak ve şüpheli etkinliklere karşı ortamlarını yakından izlemek çok önemlidir. Kuruluşlar, bu blogda özetlenen adımları izleyerek, kavram kanıtlama komut dosyalarını anlayarak ve güçlü günlük kaydı ve Splunk güvenlik içeriği uygulayarak, bu güvenlik açığıyla ilişkili tehditleri etkili bir şekilde algılayabilir ve bunlara yanıt verebilir.


Yararlandığım Kaynak : Splunk Yabancı Yazılım Şirketi

a3b2jeo.png



 
Moderatör tarafında düzenlendi:

kaçay

Üye
23 Haz 2021
249
33
21
a3b2jeo.png

logo.png


CVE-2023-27350 Exploiti Nedir ? PaperCut Dünyaca Ünlü Yazılım Nedir ?

PaperCut NG , dünya çapında 70.000'den fazla kuruluşta 100 milyon kullanıcısı olan popüler bir baskı yönetimi yazılımıdır . Son keşifler, bu yaygın olarak kullanılan yazılımdaki kritik güvenlik açıklarını, özellikle de CVE-2023-27350 kimlik doğrulamasını atlama güvenlik açığını ortaya çıkardı. Bu güvenlik açığından yararlanılırsa, bir saldırganın hedef sistemde yükseltilmiş ayrıcalıklarla rasgele kod yürütmesine olanak tanır. Savunmacılar, bu kritik güvenlik açığının ardındaki mekanizmaları anlayarak sistemlerini daha iyi koruyabilir ve daha güvenli bir baskı ortamı sağlayabilir. Bu Yazı, Splunk Tehdit Araştırma Ekibinin sürecini anlatıyor bir PaperCut NG sunucusu kurmak için kullanıldığını, CVE-2023-27350 konsept kanıtı komut dosyalarının ayrıntılarını ve bunların nasıl çalıştırılacağını, Splunk günlük kaydının nasıl kurulacağını araştırır ve rakipleri belirlemek için bazı yeni güvenlik içeriğine dalar.

18 Nisan 2023 Tarihinde Ne Oldu ?


Trend Micro, PaperCut NG'ye şunları bildirdi: “... dünya çapında 100 milyondan fazla kullanıcı tarafından kullanılan bir baskı yönetimi yazılımı çözümü olan Papercut'ta iki güvenlik açığı, CVE-2023-27350 ve CVE-2023-27351. Bu iki güvenlik açığından biri olan CVE-2023-27350'nin kötü niyetli aktörler tarafından uzaktan kod yürütme (RCE) için aktif olarak kullanıldığına dair kanıtlar bulundu ."

18 Nisan 2023'te bir PaperCut müşterisi, en son yamalara sahip olmayan sunucuların CVE-2023-27350 aracılığıyla istismara açık olabileceğini belirten olağan dışı olaylar fark etti. Kapsamlı bir araştırma yürüttükten sonra PaperCut, CVE-2023-27350 ile potansiyel olarak ilişkili etkinliğin en erken belirtilerinin 14 Nisan 2023'e kadar izlenebileceğini buldu.


6OfL8I.gif


Paper Cut Hangi Ürünleri CVE-2023-27350 Etkileniyor ?

Aşağıdaki PaperCut sürümleri ve bileşenleri CVE-2023-27350'den etkilenir:

Tüm işletim sistemi platformlarında PaperCut MF veya PaperCut NG sürüm 8.0 veya üstü
PaperCut MF veya PaperCut NG Uygulama Sunucuları
PaperCut MF veya PaperCut NG Site Sunucuları
Bu arada, aşağıdaki PaperCut sürümleri ve bileşenleri CVE-2023-27351'den etkilenir:

Tüm işletim sistemi platformlarında PaperCut MF veya PaperCut NG sürüm 15.0 veya üzeri
PaperCut MF veya PaperCut NG Uygulama Sunucusu

Tüm ayrıntılar burada PaperCut sitesinde bulunabilir .

6OfL8I.gif


Windows Üzerinden Paper Cut Kurulumu Yapıp İnceleyelim ?

Windows Kurulumu
Kurulumumuz için Windows Server 2019 kullandık ve savunmasız sürüm 17'yi PaperCut kaynağından yükledik : https://cdn.papercut.com/files/pcng/17.x/pcng-setup-17.4.4.exe


1.png


Başlamak için yükleyiciye çift tıklayın. İstemler çok basit.

Yükleme tamamlandıktan sonra URL şu şekildedir :




12fc24c4e60a3f376.png




Windows için, Splunk Tehdit Araştırma Ekibi ayrıca tüm ağ trafiğini yakalamak istedi. Bu betiği bir süre önce, ayrıntılı ağ verilerini sağlamak için Windows'ta Suricata'yı yüklemek için yazdık. Önce TA'yı Universal Forwarder'a kurun. Windows'ta Suricata için komut dosyası şu şekildedir: notes/utilities/Install-Suricata.ps1 at master · MHaggis/notes


npcap yazılımı manuel tıklamalar gerektirdiğinden, bu iki aşamalı bir işlemdir:

1.

Suricata TA'yı

bir Windows Sisteminde $splunkUF/etc/apps konumuna kurun.

1 A. Ayıklandıktan sonra, inputs.conf'u değiştirin ve Windows'ta günlük verilerini toplamak için aşağıdakini ekleyin:



monitor://C:\Program Files\Suricata\log\eve.json host = suricata sourcetype = suricata
index = network




İzleme yolunun, Suricata için eve.json dosyasına özel pencereler olduğundan emin olun



2. Bu betiği diskten çalıştırın veya kopyalayıp PowerShell/PowerShell_ISE'ye yapıştırın ve çalıştırın.



1b1d505fe02334361.png




2a. Yüklemenin ortasında, gezgin penceresini c:\temp; npcap'e çift tıklayın ve kurulum için istemleri izleyin.



Tamamlandığında, Suricata başlayacak:



1685df4711b017a5a.png




Şimdi Suricata başarıyla başladı. Suricata günlük verileri şu anda toplanıyor ve Splunk'a gönderiliyor.



TA'ya sahip Windows Server'a ek olarak, uygun veri modeli kullanımını sağlamak için Surcata TA'nın Splunk Arama Başlığına yüklenmesi gerekecektir.



Ağ ve uç nokta günlüklerine ek olarak, PaperCut NG için hata ayıklama günlüğünü etkinleştirdiğinizden emin olun.



Hata ayıklama günlüğünü etkinleştirmek için PaperCut NG web portalında aşağıdaki adımları izleyin: Seçenekler -> Gelişmiş -> seçeneğine gidin



Hata Ayıklama Modunu Etkinleştir onay kutusunu seçin.



14be3b6c117c7bca2.png




Yerel


C:\Program Files\PaperCut NG\server\logs\server.log



Artık daha fazla veriyle doldurulacak. Muhtemelen bunu sonsuza kadar açık bırakmamak en iyisidir, ancak zamanında yama yapamayan ortamlarda bu günlükler izleme için önemli olacaktır.



Şuna benzer server.log dosyasını toplamak için inputs.conf'u değiştirin:



monitor://C:\Program Files\PaperCut NG\server\logs\server.log host = papercutng sourcetype = papercutng
index = win



Artık PaperCut NG'yi çalıştırıp ağ trafiği ve hata ayıklama günlüğü için yapılandırılmış günlük kaydına sahip olduğumuza göre, istismara bakabilir ve bu iki betiğin nasıl çalıştığını görebiliriz.



6OfL8I.gif



PaperCut Zafiyetini İnceleylim (Exploit)

Testimiz için burada Horizon3 tarafından sağlanan POC betiğini kullandık .


Ne işe yaradığını daha iyi anlamak için biraz açalım. Her bir URL yoluna gönderilen HTTP isteklerinin bir özeti aşağıda verilmiştir:





168fc477d88984186.png




1.

`/app?service=page/SetupCompleted`

: Oturumu başlatmak ve ilk çerezleri almak için bu yola bir


HTTP GET

isteği gönderilir. Yanıt,

"JSESSIONID"

değerini içermelidir.



2.


`/app`

: Bu yol, komut dosyası boyunca birkaç

HTTP POST

isteği için kullanılır:



A. İlk POST isteği, ilk kurulumu tamamlamak ve hedef uygulamayla geçerli bir oturum elde etmek için gönderilir. Gerekli verileri ve başlıkları içeren bir form gönderir.



B. Güncelleme ayarlarına

('print-and-device.script.enabled' ve 'print.script.sandboxed')

ve verilen komutu hedef sistemde yürütmeye başka POST istekleri gönderilir.



3.


`/app?service=page/PrinterList`

: Yazıcı listesi sayfasına gitmek için bu yola bir HTTP GET isteği gönderilir.



4.

`/app?service=direct/1/PrinterList/selectPrinter&sp=l1001`: `l1001`



kimliğine sahip bir yazıcı seçmek için bu yola bir HTTP GET isteği gönderilir. Bu, sabit olarak kodlanmış bir yazıcı kimliğidir ve her hedef sistem için çalışmayabilir.



5.

`/app?service=direct/1/PrinterDetails/printerOptionsTab.tab`

: Seçilen yazıcı için yazıcı seçenekleri sekmesine gitmek için bu yola bir HTTP GET isteği gönderilir.



Bu HTTP istekleri, oturum bilgilerini almak, ayarları güncellemek ve hedef sistemde kullanıcı tarafından sağlanan komutu yürütmek için özel bir yazdırma işi kanca komut dosyası eklemek için kullanılır.



Testimizde, betiği aşağıdaki gibi iki kez çalıştırdık:






Kod:
python3 CVE-2023-27350.py --url 'http://<remoteIP>:9191' --command 'cmd.exe /c powershell.exe calc.exe'

Kod:
python3 CVE-2023-27350.py --url 'http://<remoteIP>:9191' --command 'powershell.exe -EncodedCommand "V3JpdGUtSG9zdCAnSGVsbG8gV29ybGQn"'



1b480d69ceea0bb24.png




Ekran görüntüsünde gösterildiği gibi, her iki test de yeni PaperCut NG ortamımıza karşı başarılı oldu.



MetasPloit


Bu çekme isteğinde PaperCutNG Authentication Bypass with RCE by catatonicprime · Pull Request #17936 · rapid7/metasploit-framework bulunan MetaSploit modülü çok benzer adımlar gerçekleştirir:

1. /app?service=page/SetupCompleted

HTTP Yöntemi: GET

Amaç: Gelecekteki istekler için CSRF belirtecini alırken kimlik doğrulamasını atlayın ve bir oturum oluşturun.



2. /app?service=direct/1/ConfigEditor/quickFindForm

HTTP Yöntemi: POST


Amaç: Belirli bir yapılandırma seçeneği için hızlı bulma gerçekleştirin. Bu, 'print-and-device.script.enabled' ve 'print.script.sandboxed' seçeneklerinin değerlerini ayarlamak ve kontrol etmek için kullanılır.



3. /app?service=direct/1/ConfigEditor/$Form

HTTP Yöntemi: POST


Amaç: Sunucu yapılandırma seçeneklerini güncelleyin. Bu, betikleri etkinleştirmek (gerekirse) ve korumalı alanı devre dışı bırakmak (gerekirse) için kullanılır.



4. /app?service=direct/1/PrinterDetails/$PrinterDetailsScript.$Form

HTTP Yöntemi: POST

Amaç: Yükü daha sonra yürütülecek olan yazıcı komut dosyasına enjekte edin.



5. /app?service=direct/1/PrinterList/selectPrinter

HTTP Yöntemi: GET


Amaç: Değişiklik için yazıcıyı (Şablon Yazıcı) seçin. Bu, onu yük ile değiştirilmek üzere Goblen oturumuna yükler.



Modül MetaSploit'e yüklendikten sonra, bilgileri kontrol edebilir ve istismar için ayarlayabiliriz.



MetaSploit içinden bilgi:




146d78dff24c950d3.png




Ve seçenekler:



1e673c7cd843076dd.png




Artık her şey ayarlandığına göre, exploit çalıştırabiliriz ve işte - meterpreter burada: :cool:



Meterpreter'dan Shell ve whoami'yi çalıştırın:



pic10.png





İki komut dosyası arasındaki benzerlikleri biraz genişletmek için, aşağıdaki tabloda URI'ler yan yana gösterilmektedir:
MetaSploit​
Horizon3.ai​
/app​
/app​
/app?service=page/SetupCompleted​
/app?service=page/SetupCompleted​
/app?service=page/PrinterList​
/app?service=page/PrinterList​
/app?service=direct/1/PrinterList/selectPrinter​
/app?service=direct/1/PrinterList/selectPrinter​
/app?service=direct/1/PrinterDetails/printerOptionsTab.tab​
NA​
NA​
/app?service=direct/1/PrinterList/selectPrinter&sp=l1001​

Aynı PaperCut uygulamasını hedeflediklerinden, her iki komut dosyasında kullanılan URI'lerin çok benzer olduğunu unutmayın. Ancak, MetaSploit betiğinin "PrinterDetails/printerOptionsTab.tab" için ek bir URI'si vardır ve Horizon3.ai betiğinin "PrinterList/selectPrinter" bitiş noktasında fazladan bir URI parametresi vardır.

Bir laboratuvar kurduk, günlük kaydı aldık ve PaperCut NG'den başarıyla yararlandık. Artık bu günlükleri inceleyebilir ve bazı güvenlik içeriği oluşturmaya başlayabiliriz.


Güvenlik İçeriği
Windows PaperCut NG Spawn SHELL
Aşağıdaki analitik, pc-app.exe'den ortaya çıkan bir Windows kabuğunu - Cmd.exe veya PowerShell veya java.exe'yi tanımlar.


Kod:
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
  as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name=pc-app.exe `process_cmd` OR `process_powershell` OR Processes.process_name=java.exe
  by Processes.dest Processes.user Processes.parent_process_name Processes.process_name
  Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id

125642224899ca237.png


MetaSploit için bir java yükü varsayılandır; bu nedenle, uygulama istismar edildiğinde pc-app.exe java.exe'yi doğurur

106f862ca2a588dde.png


Saldırgan tarafında meterpreter çalışırken, "execute -f whoami.exe" komutunu çalıştırdık ve sonuç olarak java.exe'den cmd.exe çıktı.

Yavaş Yavaş Sona geliyoruz...


1b459b3bada8c0ad4.png


MetaSploit'ten:


1c700ffa22dbbe1a1.png


Kullanıcı içeriğinin NT AUTHORITY\SYSTEM olduğunu unutmayın.

6OfL8I.gif


PaperCut NG Uzaktan Web Erişimi Denemesi


Bu analitik, kötüye kullanılan yaygın URI yollarını belirlemek için Web veri modelini kullanır. Özel IP alanını göz ardı ediyoruz ve yalnızca uygulamayı numaralandıran genel bir IP adresine odaklanıyoruz.

Kod:
| tstats count from datamodel=Web where Web.url IN ("/app?service=page/SetupCompleted", "/app", "/app?service=page/PrinterList", "/app?service=direct/1/PrinterList/selectPrinter&sp=*", "/app?service=direct/1/PrinterDetails/printerOptionsTab.tab") NOT (src IN ("10.*.*.*","172.16.*.*", "192.168.*.*", "169.254.*.*", "127.*.*.*", "fc00::*", "fd00::*", "fe80::*")) by Web.http_user_agent Web.http_method, Web.url,Web.url_length Web.src, Web.dest Web.dest_port sourcetype | `drop_dm_object_name("Web")` | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)`

1dbbef5bd531ae368.png


Bu ekran görüntüsü, MetaSploit modülü kullanıldığında nasıl göründüğüdür. Kullanıcı aracılarındaki farka dikkat edin.

18818b8a4e9875906.png


MetaSploit kullanan ek bir yapı, java yükü için C2 ile iletişim kuran PaperCut NG sunucumuz olan src IP'dir:


1af8e6f6524b55559.png

PaperCut NG Şüpheli Davranış Hata Ayıklama Günlüğü

Bu özel günlük, doğrudan PaperCut NG Uygulamasından gelir ve etkinleştirilmesi gerekir . Süresiz olarak açık bırakılmaması şiddetle tavsiye edilir. Ancak, test amacıyla veya yama oluşana kadar buna değer olabilir. Bu analitik, hata ayıklama günlüğünde genel IP adreslerini, yönetici kullanıcıyı ve yukarıda tanımlanan URI'lerden birini arayarak farklı bir yaklaşım benimsiyor.

Kod:
`papercutng` (loginType=Admin OR userName=admin)
  | eval uri_match=if(match(_raw, "(?i)(\/app\?service=page\/SetupCompleted|\/app|\/app\?service=page\/PrinterList|\/app\?service=direct\/1\/PrinterList\/selectPrinter&sp=l1001|\/app\?service=direct\/1\/PrinterDetails\/printerOptionsTab\.tab)"), "URI matches", null())
  | eval ip_match=if(match(_raw, "(?i)((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))") AND NOT match(_raw, "(?i)(10\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|(172\.(1[6-9]|2[0-9]|3[0-1])\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|(192\.168\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))"), "IP matches", null())
  | where  (isnotnull(uri_match) OR isnotnull(ip_match))
  | stats sparkline, count, values(uri_match) AS uri_match, values(ip_match) AS ip_match latest(_raw)
    BY host, index, sourcetype

175afa4e2c292c9a3.png


Bu ekran görüntüsü, uygulamaya karşı MetaSploit kullanımını ve Horizon3.ai POC komut dosyasına nasıl çok benzediğini gösterir.

1814eda9e1ee375da.png


PaperCut NG'de CVE-2023-27350 güvenlik açığının keşfedilmesi, sürekli gelişen siber güvenlik dünyasında tetikte kalmanın önemini vurguluyor. Savunmacılar, bu kritik güvenlik açığının arkasındaki mekanizmaları anlayarak sistemlerini daha iyi koruyabilir. PaperCut NG kullanan kuruluşlar için gerekli yamaları uygulamak ve şüpheli etkinliklere karşı ortamlarını yakından izlemek çok önemlidir. Kuruluşlar, bu blogda özetlenen adımları izleyerek, kavram kanıtlama komut dosyalarını anlayarak ve güçlü günlük kaydı ve Splunk güvenlik içeriği uygulayarak, bu güvenlik açığıyla ilişkili tehditleri etkili bir şekilde algılayabilir ve bunlara yanıt verebilir.


Yararlandığım Kaynak : Splunk Yabancı Yazılım Şirketi

a3b2jeo.png



Hocam güzelde biraz uzun olmuş
Elinize sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.