SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Güvenlik denetimi yapanlar için python araçları

Güvenlik araştırma, reverseengineering veya sızma testleri ile ilgileniyorsanız python programlama
dilini denemenizi öneririm. Çok sayıda kütüphaneler ve programlara sahip. Bu sayfa bunlardan
bazılarını listeliyor.

Listelenen araçların çoğu Python'da yazılmış, diğerleri ise mevcut C kütüphaneleri için Python
bağlayıcıları (yani python programlardan bu kütüphanelere kolay erişim sağlıyorlar).

Agresif araçların bazıları (pentestframework, bluetoothsmasher, webappvulnscanner, war-dialervs)
çıkarıldı çünkü bu araçların kanunlara uygunluğu konusunda kesin bir bilgim yok. Bu liste beyaz
şapkalara yardım için hazırlandı.

Ağ
Scapy - ağ paketlerini gönderme, dinleme ve işleme. İnteraktif olarak veya kütüphane olarak
kullanılabilir.
pycap, Pcapy ve pylibpcap - libpcap için çeşitli Python bağlayıcıları
dpkt - hızlı, basit paket yaratma parse etme, temel TCP/IP protokollerinin tanımlarına sahip
Impacket - Ağ paketleri yaratma ve decode etme. NMB ve SMB gibi yüksek-seviye protokoller için
desteği de var.
pynids - dinleme, IP defragmentation, TCP stream tekrar birleştirme ve port tarama tespiti sunan
libnidswrapper
Dirtbagspy-pcap - libpcap olmadan pcap dosyalarını okuma
flowgrep - regularexpression kullanarak paket yüklerine grep
httplib2 - Diğer HTTP kütüphanelerinde eksik olan çok sayıda özelliğe sahip kapsamlı bir HTTP istemci
kütüphanesi
KnockSubdomainScan - hedef bir alandaki alt alanları bir kelime listesi kullanarak listeler
Mallory - man-in-the-middleproxy
mitmproxy - SSL destekli, mitmproxy. Konsol arayüzünde trafik akışı geçiş anında incelenip
değiştirilebilir.

Debug ve reverseengineering
Paimei - Reverseengineeringframework, PyDBG, PIDA, pGRAPH'ı içeriyor
ImmunityDebugger - script destekli grafik arayüz ve komut satırı debugger
IDAPython - Python programlama dili ile entegre olupscript'lerin IDA Pro içinde çalıştırılabilmesini
sağlayan bir IDA Pro plugini.
PyEMU - IA-32 emulator, zararlı yazılım analizinde kullanışlı
pefile - PortableExecutable dosyalarını okuma ve çalışma
pydasm - libdasm x86 disassembling kütüphanesi için Python arabirimi
PyDbgEng - Microsoft Windows Debugnig Engine için Pythonwrapper
uhooker - DLL'ler içinden yapılan API çağrılarını yakalama ve çalıştırılabilir dosyanın hafızasında
istenilen adresler...
diStorm64 - AMD64 için dissambler kütüphanesi, BSD lisanslı
python-ptrace - ptrace kullanan debugger (işlemleri trace için Linux, BSD ve Darwin sistem çağrısı)

Fuzzing
Sulley - Genişletilebilir bileşenlere sahip fuzzer geliştirme ve fuzz test framework
PeachFuzzing Platform - Generation ve mutation tabanlı fuzzing için genişletilebilir fuzzingframework
antiparser - fuzz test ve faultinjection API
TAOF, ProxyFuzz ile, bir mitmnon-deterministic network fuzzer
untidy - Genel amaçlı XML fuzzer
Powerfuzzer - Tamamen otomatikleştirilebilen ve özelleştirilebilen wefuzzer (HTTP protoklü tabanlı
uygulama fuzzer)
FileP - Dosya fuzzer. Kaynak dosya listesinden mutate edilmiş dosyalar yaratır ve bunları harici bir
programa verir.
SMUDGE
Mistress - Önceden belirlenmiş pattern'lere göre dosya formatları ve bozuk veriye sahip protokol
testi
Fuzzbox - çoklu-codec medya fuzzer
ForensicFuzzing Araçları - fuzzed dosyalar, fuzzed dosya sistemleri yaratıp forensic araçlarının ve
inceleme sistemlerinin test edilmesi
Windows IPC Fuzzing Araçları - Windows InterprocessCommunication mekanizmalarını kullanan
uygulamaları fuzz etmekte kullanılan araçlar
WSBang - SOAP tabanlı web servislerinin otomatik güvenlik testi
Construct - Binary veya textual veri yapılarını parse ve inşa. Kendi veri yapılarınızı tanımlayın.
fuzzer.py (feliam) - FelipeAndresManzano'dan basit bir fuzzer
Fusil - Fuzzing programları yazmak için python kütüphanesi

Web
ProxMon - Proxy log'larını işleyip bulunan problemleri raporlar
WSMap - web servis endpoint'leri bulmada ve dosyaları keşfetmede
Twill - Webe komut satırından bakın. Otomatik webn testi destekliyor.
Windmill - Web uygulamanızı otomatik olarak test ve debug etmenizi sağlayan web test aracı
FunkLoad - Fonksiyonel ve yük testi

Forensic
Volatility - Volatile hafıza (RAM) örneklerinden dijital bulgular çıkarma
SandMan - Windows sürümüne bağlı olmadan hibernation dosyasını okuma
LibForensics - Dijital forensic uygulamaları geliştirmek için kütüphane
TrIDLib - Dosya tiplerini binary imzalarından tanıma. Artık Python bağlantısı da içeriyor.

Zararlı Yazılım Analizi
pyew - komut satırı hexadecimaleditor ve disassembler, temelde zararlı yazılım testi için
Exefilter - e-postalardaki, web sayfalarındaki veya dosyalardaki dosya formatlarını filreleme. Çoğu
genel dosya tipini tespit ediyor ve aktif içeriği çıkarabiliyor.
pyClamAV - Python yazılımınıza virüs tespit yetenekleri ekleyin
jsunpack-n - Genel JavaScriptunpacker: browser fonksiyonlarını emüle ederek browser ve browser
plug-in açıklarını hedefleyen exploit'leri tespit etmek için
yara-python - zararlı yazılım örneklerini tanımlama ve sınıflandırma için

PDF
Didier Stevens'ın PDF Araçları - PDF dosyalarını analiz, tanıma ve yaratma (PDFiD, pdf-parser,
mPDFve make-pdf dahil)
Opaf - Open PDF Analysis Framework. PDF'i analiz edilip değiştirilebilen bir XML ağacına dönüştürür.
Origapy - PDF dosyalarını sanitze eden OrigamiRubymodülü için Pythonwrapper
pyPDF - python PDF toolkit. bilgi ayrıştırma, bölme, birleştirme, kesme, kriptolama ve dekriptolama...
PDFMiner - PDF dosyalardan text çıkarma
python-poppler-qt4 - Poppler PDF kütüphanesi için Pythonbağlantısı , QT4 desteği dahil

Genel
InlineEgg - Python'da küçük assembly programlar yazmak için sınıflar
Exomind - sosyal ağ hizmetleri, arama motorları ve anlık mesajlaşma üzerine grafikler yaratmak ve
açık kaynak intelligence modülleri ve fikirleri geliştirmek için
RevHosts - Verilen IP adresi için sanal host'ları listeleme
simplejson - JSON kodlayıcı/dekoder ör. Google AJAX API
PyMangle - diğer sızma testi araçlarıyla kullanmak için kelime listeleri yaratma komut satırı aracı ve
python kütüphanesi
Hachoir - Bir binarystreamfield'lerini görüntüleme ve düzenleme

Diğer yararlı kütüphane ve araçlar
IPython - Object introspection ve sistem shell erişimi için kendi özel komut sistemi gibi çok sayıda
özelliğe sahip gelişmiş interaktif Pythonshell
BeautifulSoup - ekrandan bilgi toplama için optimize HTML parser
matplotlib - array'ların 2D plot'larını yapmak için
Mayavi - 3 boyutlu bilimsel veri görselleştirme ve plot
RTGraph3D - 3B dinamik grafikler yaratma
Twisted - event-driven ağ motoru
Suds - Web hizmetleri için basit SOAP istemcisi
M2Crypto - OpenSSLwrapper
NetworkX - grafik kütüphanesi (edge,node)
pyparsing - genel parse modülü
lxml - Python dilinde XML ve HTML ile çalışmada en zengin özelliklere sahip ve kullanımı en kolay
kütüphane.
Pexpect - Diğer programları kontrol ve otomatikleştirme, Don LibesExpect sistemine benzer
Sikuli - GUI'leri ekran görüntüleri ile arama ve otomatikleştirme teknolojisi. Jython script'ler ile
kullanılabiliyor
PyQt ve PySide - Qtapplicationframework ve GUI kütüphanesi için Python bağlantıları

Başka kütüphaneler için PyPI, PythonPackageIndex'e bakabilirsiniz.

Dirk Loss http://dirk-loss.de/python-tools.htm




Kaynak: http://www.olympos.net/belgeler/urun/python/guvenlik-denetimi-yapanlar-icin-python-
araclari-2851314.html#ixzz2FspblzMY
Follow us: @olymposnet on Twitter | olympos.net on Facebook
PYHTON ile SOKET PROGRAMLAMA

Python'la soket programlama:

1.socket modülü
socket() fonksiyonu: soketin oluşturulması için kullanılır.

Ġstemci Program

host= "localhost"
port= 21567
buf = 1024
addr = (host,port)


host: Bir host ismi veya IP adresi olabilir. Ben yerel olarak programları denemek istediğim için
host="localhost" yazdım. Sunucu internet üzerindeyse IP adresi ve ya domain name kullanılır.
port: Bir numara veya sembolik servis ismi olabilir.
buf: Soketten transfer edilecek verinin maximum büyüklüğünü ayarlamak için kullanılan
değişkendir.
addr: Ġki elemanlı bir demettir ( tuple ). Bu değişken sunucuya mesaj gönderirken kullanılır.
Soketin oluşturulması:

TCPSock=socket(AF_INET, SOCK_STREAM)

Bu kod haberleşmenin TCP protokolüyle yapılacağını gösterir. Bununla yapmamın sebebi FTP
'nin TCP üzerinde çalışması.

Bu parametrelerin anlamı:
 AF_INET: TCP ve UDP için IPv4 protokolleri
 AF_INET6: TCP ve UDP için IPv6 protokolleri
 AF_UNIX: UNIX domain protokolleri

Soket tipi,soket akışında kullanılan iletişim tipidir.Bunlar beş çeşit:

SOCK_STREAM: Ġletişim tabanlı TCP byte akışı
SOCK_DGRAM: Datagramların UDP ile transferi, sunucu- istemci doğrulamasına gerek
duymayan kendi kendine yeten IP paketleri için...
SOCK_RAW: Henüz olgunlaşmamış soketler
SOCK_RDM: Güvenilir datagramlar için
SOCK_SEQPACKET: Bağlantı üzerinden kayıtlar için bir dizi transfer.
sendto() fonksiyonunu kullanarak sunucuya mesaj göndermek için kod

msg="Sunucuya                                   gönderilecek                            mesaj"

TCPSock.sendto(data,addr)
--------------------------------------
#!/usr/bin                                                                              python
#                  -*-                 coding:utf-8                                        -*-
fromsocketimport                                                                                      *

#                          Soket                               parametreleri                 oluşturulur
host                                                       =                                 "localhost"
port                                                            =                                  21567
buf                                                             =                                   1024
addr                                                       =                                 (host,port)

#                                                Soketin                                oluşturulması
TCPSock                                      =                            socket(AF_INET,SOCK_STREAM)

def_msg             =         "===Sunucuya                     gönderilecek    mesajı       giriniz===";
print                                                                                       "n",def_msg

#                          Mesajın                                                          gönderilmesi
while                                                                                               (1):
data                 =                 raw_input('>>                                                  ')
if                               not                                                               data:
break
else:
if(TCPSock.sendto(data,addr)):
print                  "Sendingmessage                                                  '",data,"'....."

#                                                 Soketin                                Kapatılması
TCPSock.close()
----------------------------------------------------------------------------------------
Sunucu Programı
Sunucu programda socketi aynı şekilde kuruyoruz. Ġlk başta değişkenleri oluşturuyorulur:

host= "localhost"
port= 21567
buf = 1024
addr = (host,port)

Soket oluşturulur:


TCPSock = socket(AF_INET,SOCK_STREAM)
Adresi bağlamak için gerekli kod:

TCPSock.bind(addr)

data,addr=TCPSock.recvfrom(buf)
print data
--------------------------------------------------------
#!/usr/bin python
# -*- coding: utf-8 -*-

# Server program

fromsocketimport *

# Set thesocketparameters
host = "localhost"
port = 21567
buf = 1024
addr = (host,port)

# Createsocketandbindtoaddress
TCPSock = socket(AF_INET,SOCK_DGRAM)
TCPSock.bind(addr)

# Receivemessages
while 1:
data,addr = TCPSock.recvfrom(buf)
if not data:
print "Client has exited!"
break
else:
print "nReceivedmessage '", data,"'"

# Close socket
TCPSock.close()

-------------------------------------------------------------------------------------------
Ben projemde öncelikle ftp protokolünü kullanacağım. Bunun için pythondaftplibmodülü
bulunmaktadır.

Python'da FTP istemcisi oluşturmak

Ġlk adım ftplibmodülünüimport etmektir.

importftplib

"socket" modülüarayüzeihtiyac duyan tüm python modülleri tarafından kullanılır. FTP kütüphanesi
bunlardan farklı değildir. FTP kütüphanesi öncelikle SOCKS modülüne dayanır, ama eğer model
bulunmazsa socket modülüne başvurulur.

Bağlantının başlatılması

Python'a hangi siteye bağlanması gerektiğini söylüyoruz:

ftp = ftplib.FTP('ftp://baglantikurulacaksite.com')

Burada ftplib kütüphanesinin FTP sınıfından bir nesne oluşturuyoruz. Bu sınıftan bir nesne
oluşturabilmek için gerekli minimum argüman sunucunun URL'sidir. Bu URL başlangıç değeridir
ve geriye bir soket nesnesi döndürür. Bunu ftp değişkenine atadık. Eğer istersek log in bilgilerini
de buradan girebiliriz. Bunun söz dizimi şöyle;

handle=ftplib.FTP(host,username,passwd,account_name)

Soket bağlantısı oluşturuldu ama henüz sunucuda oturum açamadık. FTP sınıfı sunucuda oturum
açmak için şöyle bir metoda sahip;

ftp.login("mylogin","mypassword")

Daha sonra ne yapılacağı ftp bağlantısını neden açtığımıza bağlı. ftplibmodülübinary ve text
formatında saklama ve bulup getirmek için metod sağlar.

Text formatı için metodlar:
x.storlines(command,file): satır modunda bir dosyayı saklamak için kullanılır.
x.retrlines(command,callback): satır modunda bir dosyayı getirmek için kullanılır.
Her method için minimum 2 argüman verilmesi lazım. Her ikiside çalıştırılacak olan komutun
açıkça deklare edilmesine gereksinim duyar.

Saklamak için en yaygın komut 'STOR', bulup getirmek içinse 'RETR' dir. Bunlardan başka
kullanılan komutlarda vardır.


Söz konusu olan her iki komutun ikinci bölümü dosya ismidir.


'STOR filename' 'RETR filename'

Her metodun ikinci argümanı ne yaptığımızla alakalıdır. Saklamak için dosya nesnesi getirmek
için bir callback içerir. Bu callback dosya getirildiğinde ne yapılacağını söylemek için bir
fonksiyondur.

Binary mode'ta FTP saklama (store) ve getirme (retrieve)

Binary mode'takimetodların söz dizimi de bir önceki ile aynı ;

x.storlines(command,file[,blocksize]): satır modunda bir dosyayı saklamak için kullanılır.
x.retrlines(command,callback[,blocksize[,rest): satır modunda bir dosyayı getirmek için kullanılır.
Binary ve text arasında 2 önemli fark vardır.

Birincisi her iki binary komutu seçimli blocksizeargümanı için olanak sağlıyor. Bu yüzden
binarymode daha hızlıdır.

Ġkincisi binaryretrieve fonksiyonlu seçimli rest argumanına sahiptir. Bu argüman bir dosyanın
ortasından indirmeye başlamaya yarar. Bu fonksiyon bütün FTP serverlar tarafından
desteklenmez. Eğer sunucu desteklemiyorsa bir error_reply uyarısı alınır.

PYTHON ile SOSYAL AĞ ANALĠZĠ

Recep vaktin olduğu bir zamanda Bu videoyu izleyip sosyal ağ analizi konusunda yapılanları
görüp neler yapabileceğimizi tartışalım.



http://www.youtube.com/watch?v=qgGqaBAEy3Q



Ayrıca aşağıdaki linki de incele güzel bir library dosyası hakkında bilgiler var

http://www.libsna.org/

Şu linktede özellikle saldırı tespit sistemine yönelik host temelli bir kod yazılmış python ile.

http://sourceforge.net/projects/pyids/ bunu da incele gerekirse bir benzerini yazıp veya bunu
kodunda işleyip kodun yapısına göre farklı analizler yapabilirmiyiz bakalım.
Python ile yapılabilecekler

Mais conteúdo relacionado

Destaque

Python Programlama Dili Eğitimi
Python Programlama Dili EğitimiPython Programlama Dili Eğitimi
Python Programlama Dili EğitimiEnes Ateş
 
HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)BGA Cyber Security
 
Man in the Middle Atack (Ortadaki Adam Saldırısı)
Man in the Middle Atack (Ortadaki Adam Saldırısı)Man in the Middle Atack (Ortadaki Adam Saldırısı)
Man in the Middle Atack (Ortadaki Adam Saldırısı)Ahmet Gürel
 
10-Kablosuz Ağlardaki Zaafiyetler
10-Kablosuz Ağlardaki Zaafiyetler10-Kablosuz Ağlardaki Zaafiyetler
10-Kablosuz Ağlardaki ZaafiyetlerÖnay Kıvılcım
 
Hping Kullanarak Ağ Keşif Çalışmaları
Hping Kullanarak Ağ Keşif ÇalışmalarıHping Kullanarak Ağ Keşif Çalışmaları
Hping Kullanarak Ağ Keşif ÇalışmalarıBGA Cyber Security
 
Büyük Veri ve Risk Yönetimi
Büyük Veri ve Risk YönetimiBüyük Veri ve Risk Yönetimi
Büyük Veri ve Risk YönetimiFatma ÇINAR
 
AI - Tekil 12 GSÜ
AI - Tekil 12 GSÜAI - Tekil 12 GSÜ
AI - Tekil 12 GSÜBurak Evren
 
Ruby - Dünyanın En Güzel Programlama Dili
Ruby - Dünyanın En Güzel Programlama DiliRuby - Dünyanın En Güzel Programlama Dili
Ruby - Dünyanın En Güzel Programlama DiliSerdar Dogruyol
 
Python mu Java mı?
Python mu Java mı?Python mu Java mı?
Python mu Java mı?aerkanc
 
Python İle Ağ Programlama
Python İle Ağ ProgramlamaPython İle Ağ Programlama
Python İle Ağ ProgramlamaOguzhan Coskun
 
Kara Sistemlerinde Yapay Zeka Uygulamaları
Kara Sistemlerinde Yapay Zeka UygulamalarıKara Sistemlerinde Yapay Zeka Uygulamaları
Kara Sistemlerinde Yapay Zeka UygulamalarıFerhat Kurt
 
Özgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşlemeÖzgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşlemeEnes Ateş
 
Yapay Zeka, Deep Learning and Machine Learning
Yapay Zeka, Deep Learning and Machine LearningYapay Zeka, Deep Learning and Machine Learning
Yapay Zeka, Deep Learning and Machine LearningAlper Nebi Kanlı
 
Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.
Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.
Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.Zekeriya Besiroglu
 

Destaque (15)

Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
Python Programlama Dili Eğitimi
Python Programlama Dili EğitimiPython Programlama Dili Eğitimi
Python Programlama Dili Eğitimi
 
HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)
 
Man in the Middle Atack (Ortadaki Adam Saldırısı)
Man in the Middle Atack (Ortadaki Adam Saldırısı)Man in the Middle Atack (Ortadaki Adam Saldırısı)
Man in the Middle Atack (Ortadaki Adam Saldırısı)
 
10-Kablosuz Ağlardaki Zaafiyetler
10-Kablosuz Ağlardaki Zaafiyetler10-Kablosuz Ağlardaki Zaafiyetler
10-Kablosuz Ağlardaki Zaafiyetler
 
Hping Kullanarak Ağ Keşif Çalışmaları
Hping Kullanarak Ağ Keşif ÇalışmalarıHping Kullanarak Ağ Keşif Çalışmaları
Hping Kullanarak Ağ Keşif Çalışmaları
 
Büyük Veri ve Risk Yönetimi
Büyük Veri ve Risk YönetimiBüyük Veri ve Risk Yönetimi
Büyük Veri ve Risk Yönetimi
 
AI - Tekil 12 GSÜ
AI - Tekil 12 GSÜAI - Tekil 12 GSÜ
AI - Tekil 12 GSÜ
 
Ruby - Dünyanın En Güzel Programlama Dili
Ruby - Dünyanın En Güzel Programlama DiliRuby - Dünyanın En Güzel Programlama Dili
Ruby - Dünyanın En Güzel Programlama Dili
 
Python mu Java mı?
Python mu Java mı?Python mu Java mı?
Python mu Java mı?
 
Python İle Ağ Programlama
Python İle Ağ ProgramlamaPython İle Ağ Programlama
Python İle Ağ Programlama
 
Kara Sistemlerinde Yapay Zeka Uygulamaları
Kara Sistemlerinde Yapay Zeka UygulamalarıKara Sistemlerinde Yapay Zeka Uygulamaları
Kara Sistemlerinde Yapay Zeka Uygulamaları
 
Özgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşlemeÖzgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşleme
 
Yapay Zeka, Deep Learning and Machine Learning
Yapay Zeka, Deep Learning and Machine LearningYapay Zeka, Deep Learning and Machine Learning
Yapay Zeka, Deep Learning and Machine Learning
 
Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.
Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.
Bigdata Nedir? Hadoop Nedir? MapReduce Nedir? Big Data.
 

Python ile yapılabilecekler

  • 1. Güvenlik denetimi yapanlar için python araçları Güvenlik araştırma, reverseengineering veya sızma testleri ile ilgileniyorsanız python programlama dilini denemenizi öneririm. Çok sayıda kütüphaneler ve programlara sahip. Bu sayfa bunlardan bazılarını listeliyor. Listelenen araçların çoğu Python'da yazılmış, diğerleri ise mevcut C kütüphaneleri için Python bağlayıcıları (yani python programlardan bu kütüphanelere kolay erişim sağlıyorlar). Agresif araçların bazıları (pentestframework, bluetoothsmasher, webappvulnscanner, war-dialervs) çıkarıldı çünkü bu araçların kanunlara uygunluğu konusunda kesin bir bilgim yok. Bu liste beyaz şapkalara yardım için hazırlandı. Ağ Scapy - ağ paketlerini gönderme, dinleme ve işleme. İnteraktif olarak veya kütüphane olarak kullanılabilir. pycap, Pcapy ve pylibpcap - libpcap için çeşitli Python bağlayıcıları dpkt - hızlı, basit paket yaratma parse etme, temel TCP/IP protokollerinin tanımlarına sahip Impacket - Ağ paketleri yaratma ve decode etme. NMB ve SMB gibi yüksek-seviye protokoller için desteği de var. pynids - dinleme, IP defragmentation, TCP stream tekrar birleştirme ve port tarama tespiti sunan libnidswrapper Dirtbagspy-pcap - libpcap olmadan pcap dosyalarını okuma flowgrep - regularexpression kullanarak paket yüklerine grep httplib2 - Diğer HTTP kütüphanelerinde eksik olan çok sayıda özelliğe sahip kapsamlı bir HTTP istemci kütüphanesi KnockSubdomainScan - hedef bir alandaki alt alanları bir kelime listesi kullanarak listeler Mallory - man-in-the-middleproxy mitmproxy - SSL destekli, mitmproxy. Konsol arayüzünde trafik akışı geçiş anında incelenip değiştirilebilir. Debug ve reverseengineering Paimei - Reverseengineeringframework, PyDBG, PIDA, pGRAPH'ı içeriyor ImmunityDebugger - script destekli grafik arayüz ve komut satırı debugger IDAPython - Python programlama dili ile entegre olupscript'lerin IDA Pro içinde çalıştırılabilmesini sağlayan bir IDA Pro plugini. PyEMU - IA-32 emulator, zararlı yazılım analizinde kullanışlı pefile - PortableExecutable dosyalarını okuma ve çalışma pydasm - libdasm x86 disassembling kütüphanesi için Python arabirimi PyDbgEng - Microsoft Windows Debugnig Engine için Pythonwrapper uhooker - DLL'ler içinden yapılan API çağrılarını yakalama ve çalıştırılabilir dosyanın hafızasında istenilen adresler... diStorm64 - AMD64 için dissambler kütüphanesi, BSD lisanslı python-ptrace - ptrace kullanan debugger (işlemleri trace için Linux, BSD ve Darwin sistem çağrısı) Fuzzing Sulley - Genişletilebilir bileşenlere sahip fuzzer geliştirme ve fuzz test framework
  • 2. PeachFuzzing Platform - Generation ve mutation tabanlı fuzzing için genişletilebilir fuzzingframework antiparser - fuzz test ve faultinjection API TAOF, ProxyFuzz ile, bir mitmnon-deterministic network fuzzer untidy - Genel amaçlı XML fuzzer Powerfuzzer - Tamamen otomatikleştirilebilen ve özelleştirilebilen wefuzzer (HTTP protoklü tabanlı uygulama fuzzer) FileP - Dosya fuzzer. Kaynak dosya listesinden mutate edilmiş dosyalar yaratır ve bunları harici bir programa verir. SMUDGE Mistress - Önceden belirlenmiş pattern'lere göre dosya formatları ve bozuk veriye sahip protokol testi Fuzzbox - çoklu-codec medya fuzzer ForensicFuzzing Araçları - fuzzed dosyalar, fuzzed dosya sistemleri yaratıp forensic araçlarının ve inceleme sistemlerinin test edilmesi Windows IPC Fuzzing Araçları - Windows InterprocessCommunication mekanizmalarını kullanan uygulamaları fuzz etmekte kullanılan araçlar WSBang - SOAP tabanlı web servislerinin otomatik güvenlik testi Construct - Binary veya textual veri yapılarını parse ve inşa. Kendi veri yapılarınızı tanımlayın. fuzzer.py (feliam) - FelipeAndresManzano'dan basit bir fuzzer Fusil - Fuzzing programları yazmak için python kütüphanesi Web ProxMon - Proxy log'larını işleyip bulunan problemleri raporlar WSMap - web servis endpoint'leri bulmada ve dosyaları keşfetmede Twill - Webe komut satırından bakın. Otomatik webn testi destekliyor. Windmill - Web uygulamanızı otomatik olarak test ve debug etmenizi sağlayan web test aracı FunkLoad - Fonksiyonel ve yük testi Forensic Volatility - Volatile hafıza (RAM) örneklerinden dijital bulgular çıkarma SandMan - Windows sürümüne bağlı olmadan hibernation dosyasını okuma LibForensics - Dijital forensic uygulamaları geliştirmek için kütüphane TrIDLib - Dosya tiplerini binary imzalarından tanıma. Artık Python bağlantısı da içeriyor. Zararlı Yazılım Analizi pyew - komut satırı hexadecimaleditor ve disassembler, temelde zararlı yazılım testi için Exefilter - e-postalardaki, web sayfalarındaki veya dosyalardaki dosya formatlarını filreleme. Çoğu genel dosya tipini tespit ediyor ve aktif içeriği çıkarabiliyor. pyClamAV - Python yazılımınıza virüs tespit yetenekleri ekleyin jsunpack-n - Genel JavaScriptunpacker: browser fonksiyonlarını emüle ederek browser ve browser plug-in açıklarını hedefleyen exploit'leri tespit etmek için yara-python - zararlı yazılım örneklerini tanımlama ve sınıflandırma için PDF Didier Stevens'ın PDF Araçları - PDF dosyalarını analiz, tanıma ve yaratma (PDFiD, pdf-parser, mPDFve make-pdf dahil)
  • 3. Opaf - Open PDF Analysis Framework. PDF'i analiz edilip değiştirilebilen bir XML ağacına dönüştürür. Origapy - PDF dosyalarını sanitze eden OrigamiRubymodülü için Pythonwrapper pyPDF - python PDF toolkit. bilgi ayrıştırma, bölme, birleştirme, kesme, kriptolama ve dekriptolama... PDFMiner - PDF dosyalardan text çıkarma python-poppler-qt4 - Poppler PDF kütüphanesi için Pythonbağlantısı , QT4 desteği dahil Genel InlineEgg - Python'da küçük assembly programlar yazmak için sınıflar Exomind - sosyal ağ hizmetleri, arama motorları ve anlık mesajlaşma üzerine grafikler yaratmak ve açık kaynak intelligence modülleri ve fikirleri geliştirmek için RevHosts - Verilen IP adresi için sanal host'ları listeleme simplejson - JSON kodlayıcı/dekoder ör. Google AJAX API PyMangle - diğer sızma testi araçlarıyla kullanmak için kelime listeleri yaratma komut satırı aracı ve python kütüphanesi Hachoir - Bir binarystreamfield'lerini görüntüleme ve düzenleme Diğer yararlı kütüphane ve araçlar IPython - Object introspection ve sistem shell erişimi için kendi özel komut sistemi gibi çok sayıda özelliğe sahip gelişmiş interaktif Pythonshell BeautifulSoup - ekrandan bilgi toplama için optimize HTML parser matplotlib - array'ların 2D plot'larını yapmak için Mayavi - 3 boyutlu bilimsel veri görselleştirme ve plot RTGraph3D - 3B dinamik grafikler yaratma Twisted - event-driven ağ motoru Suds - Web hizmetleri için basit SOAP istemcisi M2Crypto - OpenSSLwrapper NetworkX - grafik kütüphanesi (edge,node) pyparsing - genel parse modülü lxml - Python dilinde XML ve HTML ile çalışmada en zengin özelliklere sahip ve kullanımı en kolay kütüphane. Pexpect - Diğer programları kontrol ve otomatikleştirme, Don LibesExpect sistemine benzer Sikuli - GUI'leri ekran görüntüleri ile arama ve otomatikleştirme teknolojisi. Jython script'ler ile kullanılabiliyor PyQt ve PySide - Qtapplicationframework ve GUI kütüphanesi için Python bağlantıları Başka kütüphaneler için PyPI, PythonPackageIndex'e bakabilirsiniz. Dirk Loss http://dirk-loss.de/python-tools.htm Kaynak: http://www.olympos.net/belgeler/urun/python/guvenlik-denetimi-yapanlar-icin-python- araclari-2851314.html#ixzz2FspblzMY Follow us: @olymposnet on Twitter | olympos.net on Facebook
  • 4. PYHTON ile SOKET PROGRAMLAMA Python'la soket programlama: 1.socket modülü socket() fonksiyonu: soketin oluşturulması için kullanılır. Ġstemci Program host= "localhost" port= 21567 buf = 1024 addr = (host,port) host: Bir host ismi veya IP adresi olabilir. Ben yerel olarak programları denemek istediğim için host="localhost" yazdım. Sunucu internet üzerindeyse IP adresi ve ya domain name kullanılır. port: Bir numara veya sembolik servis ismi olabilir. buf: Soketten transfer edilecek verinin maximum büyüklüğünü ayarlamak için kullanılan değişkendir. addr: Ġki elemanlı bir demettir ( tuple ). Bu değişken sunucuya mesaj gönderirken kullanılır. Soketin oluşturulması: TCPSock=socket(AF_INET, SOCK_STREAM) Bu kod haberleşmenin TCP protokolüyle yapılacağını gösterir. Bununla yapmamın sebebi FTP 'nin TCP üzerinde çalışması. Bu parametrelerin anlamı: AF_INET: TCP ve UDP için IPv4 protokolleri AF_INET6: TCP ve UDP için IPv6 protokolleri AF_UNIX: UNIX domain protokolleri Soket tipi,soket akışında kullanılan iletişim tipidir.Bunlar beş çeşit: SOCK_STREAM: Ġletişim tabanlı TCP byte akışı SOCK_DGRAM: Datagramların UDP ile transferi, sunucu- istemci doğrulamasına gerek duymayan kendi kendine yeten IP paketleri için... SOCK_RAW: Henüz olgunlaşmamış soketler SOCK_RDM: Güvenilir datagramlar için SOCK_SEQPACKET: Bağlantı üzerinden kayıtlar için bir dizi transfer. sendto() fonksiyonunu kullanarak sunucuya mesaj göndermek için kod msg="Sunucuya gönderilecek mesaj" TCPSock.sendto(data,addr) -------------------------------------- #!/usr/bin python # -*- coding:utf-8 -*-
  • 5. fromsocketimport * # Soket parametreleri oluşturulur host = "localhost" port = 21567 buf = 1024 addr = (host,port) # Soketin oluşturulması TCPSock = socket(AF_INET,SOCK_STREAM) def_msg = "===Sunucuya gönderilecek mesajı giriniz==="; print "n",def_msg # Mesajın gönderilmesi while (1): data = raw_input('>> ') if not data: break else: if(TCPSock.sendto(data,addr)): print "Sendingmessage '",data,"'....." # Soketin Kapatılması TCPSock.close() ---------------------------------------------------------------------------------------- Sunucu Programı Sunucu programda socketi aynı şekilde kuruyoruz. Ġlk başta değişkenleri oluşturuyorulur: host= "localhost" port= 21567 buf = 1024 addr = (host,port) Soket oluşturulur: TCPSock = socket(AF_INET,SOCK_STREAM) Adresi bağlamak için gerekli kod: TCPSock.bind(addr) data,addr=TCPSock.recvfrom(buf) print data -------------------------------------------------------- #!/usr/bin python # -*- coding: utf-8 -*- # Server program fromsocketimport * # Set thesocketparameters
  • 6. host = "localhost" port = 21567 buf = 1024 addr = (host,port) # Createsocketandbindtoaddress TCPSock = socket(AF_INET,SOCK_DGRAM) TCPSock.bind(addr) # Receivemessages while 1: data,addr = TCPSock.recvfrom(buf) if not data: print "Client has exited!" break else: print "nReceivedmessage '", data,"'" # Close socket TCPSock.close() ------------------------------------------------------------------------------------------- Ben projemde öncelikle ftp protokolünü kullanacağım. Bunun için pythondaftplibmodülü bulunmaktadır. Python'da FTP istemcisi oluşturmak Ġlk adım ftplibmodülünüimport etmektir. importftplib "socket" modülüarayüzeihtiyac duyan tüm python modülleri tarafından kullanılır. FTP kütüphanesi bunlardan farklı değildir. FTP kütüphanesi öncelikle SOCKS modülüne dayanır, ama eğer model bulunmazsa socket modülüne başvurulur. Bağlantının başlatılması Python'a hangi siteye bağlanması gerektiğini söylüyoruz: ftp = ftplib.FTP('ftp://baglantikurulacaksite.com') Burada ftplib kütüphanesinin FTP sınıfından bir nesne oluşturuyoruz. Bu sınıftan bir nesne oluşturabilmek için gerekli minimum argüman sunucunun URL'sidir. Bu URL başlangıç değeridir ve geriye bir soket nesnesi döndürür. Bunu ftp değişkenine atadık. Eğer istersek log in bilgilerini de buradan girebiliriz. Bunun söz dizimi şöyle; handle=ftplib.FTP(host,username,passwd,account_name) Soket bağlantısı oluşturuldu ama henüz sunucuda oturum açamadık. FTP sınıfı sunucuda oturum açmak için şöyle bir metoda sahip; ftp.login("mylogin","mypassword") Daha sonra ne yapılacağı ftp bağlantısını neden açtığımıza bağlı. ftplibmodülübinary ve text formatında saklama ve bulup getirmek için metod sağlar. Text formatı için metodlar:
  • 7. x.storlines(command,file): satır modunda bir dosyayı saklamak için kullanılır. x.retrlines(command,callback): satır modunda bir dosyayı getirmek için kullanılır. Her method için minimum 2 argüman verilmesi lazım. Her ikiside çalıştırılacak olan komutun açıkça deklare edilmesine gereksinim duyar. Saklamak için en yaygın komut 'STOR', bulup getirmek içinse 'RETR' dir. Bunlardan başka kullanılan komutlarda vardır. Söz konusu olan her iki komutun ikinci bölümü dosya ismidir. 'STOR filename' 'RETR filename' Her metodun ikinci argümanı ne yaptığımızla alakalıdır. Saklamak için dosya nesnesi getirmek için bir callback içerir. Bu callback dosya getirildiğinde ne yapılacağını söylemek için bir fonksiyondur. Binary mode'ta FTP saklama (store) ve getirme (retrieve) Binary mode'takimetodların söz dizimi de bir önceki ile aynı ; x.storlines(command,file[,blocksize]): satır modunda bir dosyayı saklamak için kullanılır. x.retrlines(command,callback[,blocksize[,rest): satır modunda bir dosyayı getirmek için kullanılır. Binary ve text arasında 2 önemli fark vardır. Birincisi her iki binary komutu seçimli blocksizeargümanı için olanak sağlıyor. Bu yüzden binarymode daha hızlıdır. Ġkincisi binaryretrieve fonksiyonlu seçimli rest argumanına sahiptir. Bu argüman bir dosyanın ortasından indirmeye başlamaya yarar. Bu fonksiyon bütün FTP serverlar tarafından desteklenmez. Eğer sunucu desteklemiyorsa bir error_reply uyarısı alınır. PYTHON ile SOSYAL AĞ ANALĠZĠ Recep vaktin olduğu bir zamanda Bu videoyu izleyip sosyal ağ analizi konusunda yapılanları görüp neler yapabileceğimizi tartışalım. http://www.youtube.com/watch?v=qgGqaBAEy3Q Ayrıca aşağıdaki linki de incele güzel bir library dosyası hakkında bilgiler var http://www.libsna.org/ Şu linktede özellikle saldırı tespit sistemine yönelik host temelli bir kod yazılmış python ile. http://sourceforge.net/projects/pyids/ bunu da incele gerekirse bir benzerini yazıp veya bunu kodunda işleyip kodun yapısına göre farklı analizler yapabilirmiyiz bakalım.