비밀번호의 일부가 알려진 크랙 zip 파일

비밀번호의 일부가 알려진 크랙 zip 파일

나는지퍼비밀번호를 잊어버려서 열 수 없는 파일입니다. 이 비밀번호의 일부 내용은 꽤 알고 있지만 비밀번호에 추가한 변형이 기억나지 않습니다. 나는 노력했다fcrackzip하지만 비밀번호의 일부를 알고 있음을 나타내는 방법을 알 수 없습니다. 요약:

  • 비밀번호의 일부를 알고 있습니다. 예: "안녕하세요", "세계" 그리고 "엉뚱한 패스".
  • 이러한 부품은 순서에 관계없이 사용할 수 있으며 모두 사용할 수는 없습니다.
  • 3~5개의 소문자 등 일부 추가적인 작은 부분이 나타날 수 있습니다.

그렇게 할 수 있는 소프트웨어를 알고 있나요?

답변1

방법 개요:

  1. 다음과 같은 유틸리티를 사용하십시오crunch사용자 정의 사전 파일을 생성합니다.

  2. 해당 사용자 정의 사전으로 실행하십시오 fcrackzip.

문제:

  • 최대 3개의 문자열과 3~5개의 소문자를 혼합하면 1조 개 이상의 비밀번호를 만들 수 있습니다. 해당 사전을 생성하는 데 시간이 좀 걸립니다.

  • crunch문자 기반 와일드카드 사용을 허용하지만 사용자 정의 문자열 처리는 유연하지 않습니다. 이 Q를 해결하려면 grep, sedsort필요한 것 같습니다. 어느 쪽이든 필요한 시간이 늘어납니다(예: 몇 시간, 어쩌면 며칠...).

다음과 같은 것이 아마도 작동할 것입니다:

crunch 3 9 abcdefghijklmnopqrstuvwxyz123 | \
  grep '[123]' | # at least one number per dict entry
  egrep -v '([123]).*\1' | # remove repeated numbers
  sed 's/1/hello/;s/2/world/;s/3/shittypass/' | # replace numbers with strings
  sort -u | \
  fcrackzip -D -p /dev/stdin foo.zip 

더 작은 문제 세트가 포함된 테스트 사례(하나 또는 두 개의 문자열, 최대 두 개의 소문자, 순서 무관):

echo foo > bar.txt  # file to archive
zip -P xhellobworld baz bar.txt   # archive with password
time crunch 2 4 abcdefghijklmnopqrstuvwxyz12 | \
     grep '[12]' | egrep -v '([12]).*\1' | \
     sed 's/1/hello/;s/2/world/' | \
     sort -n | fcrackzip -u -D -p /dev/stdin baz.zip 

산출:

Crunch will now generate the following amount of data: 3163440 bytes
3 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 637392 


PASSWORD FOUND!!!!: pw == xhellobworld

real    0m5.942s
user    0m2.240s
sys 0m1.040s

관련 정보