raisep0wn

Geek Stuff & IT Security

Posts Tagged ‘bruteforce

NDH 2k10 Public WarGame level3

leave a comment »


Le level3 ne contient pas de code source. Il s’agit d’un programme qui nous demande de casser un algorithme de chiffrement. Après quelques tests, on peut supposer qu’il s’agisse d’un chiffrement par substitution linéaire. Il ne nous reste plus qu’à l’attaquer par force brute. Nous allons essayer toutes les possibilités caractère par caractère. Je vous propose ci-dessous un code source python qui se chargera de ce travail pour nous.

#!/usr/bin/python
import os

target = '/home/level3/crackme'
wanted = '2:8vytm&*9|)].l(ol;a'
arg = 'a'*20
solution_string = ''
size = 1024

print "-->Brute force cracking"
for char in range(20): # bf one by one
 for ascii in range(1, 256): # for all but \0 (ascii)
  arg = solution_string + chr(ascii) + 'a'*(19-char)
  # beware of bad char :
  if arg.find("'") == -1:
   # /home/level3/crackme 'all but single quote'
   cmd = "%s '%s'"%(target, arg)
  else:
   # /home/level3/crackme "all but double quote"
   cmd = '%s "%s"'%(target, arg)
  # reading the output
  res = os.popen(cmd).read(size)
  # searching for ciphered
  pos = res.find('Ciphered:')
  # ciphered is 20 bytes length
  ciphered = res[pos+10:pos+30]
  # check current ciphered char matching with wanted
  if ciphered[char] == wanted[char]:
   solution_string = ''.join([solution_string, chr(ascii)])
   break
 print '>%d%%'%(char*5)

# print solution string
print "\nSolution string: %s"%solution_string
# print string as a list to get unprintable ascii
print "Solution ascii: %s"%[solution_string]

Références :

Publicités

Written by Ralph

28/05/2011 at 08:07

Publié dans IT Security

Tagged with , , ,