반응형
SMALL

bandit23 -> bandit24

[1] 프로그램은 시간 기반 작업 스케줄러인 cron에서 정기적으로 자동으로 실행됩니다. /etc/cron.d/에서 구성을 확인하고 어떤 명령이 실행되는지 확인합니다.

bandit 23 -> bandit24

[2]  bandit23@bandit:~$ cat /etc/cron.d/cronJob_bandit24

      bandit23@bandit:~$ cat /usr/bin/cronjob_bandit24.sh

bandit23 -> bandit24

 [3] #! /bin/bash

      myname =$(whoami)

      cd  /var/spool/$myname/foo  이동한 후 모든 파일에 대해 반복작업을 수행한다. 

      "$i" != "." 조건과 "$i"  != ".." 조건을 모두 충족되는 경우 "Handling $i"를 출력한다. owner 할당한다.

      owner가 bandit23 이면 해당 파일을 실행하고 60초가 지나면 SIGKILL 프로세스를 종료한다.

bandit23 ->bandit24

     

   위 내용와 이어진다.

bandit23 -> bandit24

[4] bandit23@bandit:~$ ls -al /var/spool/bandit24

     foo 파일이 보인다.

bandit23 -> bandit24

[5] bandit23@bandit:~$ mkdir -p /tmp/dub2

     bandit23@bandit:~$ cd /tmp/dub2

     bandit23@bandit:/tmp/dub2$ cat > passwords.sh

     아래 코드를 직접입력한다.

           #! /bin/bash

           cat /etc/bandit_pass/bandit24 > /tmp/dub2/bandit_pass

      Ctrl+c 누르면 종료된다.

      bandit23@bandit:/tmp/dub2$ chmod 777 passwords.sh

      bandit23@bandit:/tmp/dub2$ chmod 777 /tmp/dub2

      bandit23@bandit:/tmp/dub2$ cp passwords.sh /var/spool/bandit24/foo

bandit23 -> bandit24

[6]  bandit23@bandit:/tmp/dub2$ cat bandit_pass

      bandit24 비밀번호 확인

   

 

반응형
LIST
반응형
SMALL

bandit22 -> bandit23

[1] 프로그램은 시간 기반 작업 스케줄러인 cron에서 정기적으로 자동으로 실행된다.  /etc/cron.d/에서 구성을 확인하고 어떤 명령이 실행되는지 확인합니다.

[2] bandit22@bandit:~$ ls -al

     bandit22@bandit:~$ cd /etc/cron.d

     bandit22@bandit:/etc/cron.d$ ls -al

bandit22 ->bandit23

[3] bandit22@bandit:/etc/cron.d$ cat cronjob_bandit23

      bandit22@bandit:/etc/cron.d$ cat /usr/bin/cronjob_bandit23.sh

bandit22 -> bandit23

[4] bandit22@bandit:/etc/cron.d$ echo I am user bandit23 | md5sm | cut -d '' -f1

[5] bandit22@bandit:/etc/cron.d$ cat /tmp/8ca319486b**********  복사후 붙이기 엔터

    bandit23비빌번호 확인

반응형
LIST
반응형
SMALL

bandit21 ->bandit22

[1] 프로그램은 시간 기반 작업 스케줄러인 cron 에서 정기적으로 자동으로 실행됩니다. ./etc/cron.d/에서 구성을 확인하고

    어떤 명령이 실행되는지 확인합니다.

bandit21 -> bandit22

[2] Host Name : bandit.labs.overthewire.org  Port:2220

bandit21 -> bandit22

[3] bandit21@bandit:~$ ls -al

[4] bandit21@bandit:~$ cd /etc/cron.d/

[5] bandit21@bandit:/etc/cron.d$ ls -al

bandit21 -> bandit22

[6] bandit21@bandit:/etc/cron.d$ cat cronjob.bandit22

     @reboot bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null

       ******** bandit22 / usr/bin/cronjob_bandit22.sh &> /dev/null

      휴지통에 버려진다.

bandit21 ->bandit22

 

[7] bandit21@bandit:/etc/cron.d$ cat /usr/bin/cronjob_bandit22.sh

     #! /bin/bash

     chmod 644 /tmp/t70~~~~~~~~~~~

     cat /etc/bandit_pass/bandit22 > /tmp/t70~~~~~~~~~~

 

[8] bandit21@bandit:/etc/cron.d$ cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv

    bandit22 비번 확인

반응형
LIST
반응형
SMALL

bandit20 -> bandit21

[1]  명령줄 인수로 지정한 포트에서 로컬호스트에 연결합니다. 그런 다음 연결된 텍스트줄을 읽고 이전 레벨

      bandit20의 비밀번호와 비교합니다. 비빌번호가 맞으면 다음 레빌 bandit21의 비밀번호를 전송합니다.

bandit20 ->banddit21

[2] bandit20@bandit:~$ ls -al

    ELF파일 succonnect 확인 

bandit20 -> bandit21

 

[3] bandit20@bandit:~ $ ./succonnect

     이프로그램은 TCP를 이용해서 localhost의 포트로 접속을 하고 다른쪽에서 bandit20의 password를

     보내면 bandit21의 paswword를 전송을 한다.

bandit20 ->bandit21

[4] 왼쪽창 상단에 마우스 갖다대고 오른쪽을 클릭하며 Dupllicate Session 클릭하면 창 하나가 더뜬다.

bandit20 ->bandit21

 

[5] bandit20@bandit:~$ ns -lp 1112                                                 (1)번째

    bandit20@bandit:~$ ./suconnect  1112                                       (2) 번째

   (1)번째  입력 후 아래 칸에 bandit20 비번을 복사하여 붙여넣기   (3)번째 

  bandit21 비번확인

   

 

 

반응형
LIST
반응형
SMALL

bandit19 -> bandit20

[1] 홈 디렉토리에 있는 setuid바이너를 사용해야합니다.인수없이 실행하여 사용방법을 알아보세요. 이 레벨의 비밀번호

     setuid바이너리를 사용한 후 일반적인 위치(/etc/banidt_pass)에서 찾을 수 있습니다.

 

bandit19 -> bandit20

[2] Host Name : bandit.labs.overthewire.org  Port: 2220

bandit19 ->bandit20

 

[3] bandit19@bandit:~$ ls -al

   소유자의 permission부분에서 s는 setuid 파일음을 의미한다.

   * 일시적으로 자신의 id를 변경할수 있는 파일이다.

   [ 한마디로 일시적으로 id 를 bandit20으로 변경하여 비밀번호를 알아낼수 있다]

 

[4] bandit19@bandit:~$ ./bandit20-do

[5] bandit19@bandit:~$ ./bandit20-do cat /etc/bandit_pass/bandit20 

    bandit20 비밀번호 확인됨

반응형
LIST
반응형
SMALL

bandit18 ->bandit19

 

[1]  bandit19 비번을 알아내는 방법은 홈 디렉토리의 readme 파일에 저장되어있으며, 누군가 ssh로 로그인할때

     로그아웃되록 . bashrc 수정했다. 

[2] windows에서 Powershell 로 들어가서 bandit19 확인할수 있다.

bandit18 ->bandit19

[3] bandit18@bandit.labs.overthewire.org's paswords :  bandit18비번 입력

   

bandit18 -> bandit19

 

[4] bandit19 비번 확인

반응형
LIST
반응형
SMALL

bandit17 -> bandit18

[1] bandit18 비밀번호는 passwords.old and passwords.new 사이에서 달라진 코드에 비밀번호가 명시되어 있다.

bandit17 -> bandit18

[2] Host Name : bandit.labs.overthewire.org  Port:2220

bandit17 ->bandit18

[3] bandit17@bandit:~$ ls -al

    passwords.new

    passwords.old   두개의 파일을 비교해서 차이나는 코드가 bandit18 비밀번호가 된다.

bandit17 ->bandit18

[4] bandit17@bandit:~$ diff passwords.old passwords.new 

    2개의 코드가 보인다. 2개중에 하나가 bandit18 비번이다.

    x2gLTTjFwMOhQ8oWNbMN362QKxfRqGlO  [비번]

[5] 그런데 !!!  여기서 bandit18  비번을 입력하면 화면이 사라진다.

bandit17 ->bandit18

[9] 여기서 windows에서 PowerShell 들어와서 

     PS C:\User|\ADMIN> ssh bandit18@bandit.labs.overthewire.org -p2220 "cat redme" 

반응형
LIST
반응형
SMALL

bandit16 -> bandit17

[1] 31000-32000 범위의 로컬호스트 에 제출하여 검색할수 있습니다. 먼저 이러한 포트 중 어느 포트에 서버가 수신중인지 알아냅니다. 그런 다음 SSL/TLS를 사용하는 포트와 사용하지 않는 포트를 알아냅니다. 다음 자격 증명을 제공하는 서버는 하나뿐이며, 다른 서버는 귀하가 보내 모든것을 다시 보냅니다.

bandit16 -> bandit17

[2] bnandit16@bandit:~$ nc -zvn 127.0.0.1 31000-32000

     포스트캐닝을 통해 열린 포트를 확인을 하니 , failed: connection refused 함께 뜬다. 

     여기서 succeeded :Connection 찾으면 된다.

bandit16 -> bandit17

[3] bandit16@bandit: ~$ nc -zvn 127.0.0.1 31000-32000

     Connection to 127.0.0.1 31046 ~31960 port [tcp/'] succeeded!  확인

[4] bandit16@bandit: ~$ open s_Client -connect localhost:31046

     bandit16@bandit: ~$ open s_Client -connect localhost:31518

     bandit16@bandit: ~$ open s_Client -connect localhost:31790

     bandit16@bandit: ~$ open s_Client -connect localhost:31960

     5개 포트를 일일 확인해서 열려있는포트를 찾는다.

bandit16 -> bandit17

[5] read R Block 아래쪽에

    kSkvUpMQ7lBYyCM4GBPvCvT1BfWRy0Dx  (bandit16 비번을 복사후 붙여넣기) 

bandit16 -> bandit17

[6] RSA암호화 보인다. 

    ------ BEGIN RSA PRIVATE KEY ------   이부분을 복사한다.

    ------ END RSA PRIVATE KEY ------       여기까지 복사

bandit16 -> bandit17

[7] bandit16@bandit: ~$ mkdir /tmp/bandit17_sshkey

[8] bandit16@bandit: ~$ cat > /tmp/bandit17_sshkey

     복사본 붙이기

    --- BEGIN RSA PRIVATE KEY ---

    --- END RSA PRIVATE KEY ---  

[9] bandit16@bandit: ~$ cd /tmp/bandit17_ssheky

bandit16 ->bandit17

[9] bandit16@bandit: /tmp/bandit17_sshkey$ ssh -i sshkey bandit17@localhost -p2220

    bandit17@bandit:~$ 으로 접속되었다.

bandit16 -> bandit17

[10] bandit17@bandit:~$ cat /etc/bandit_pass/bandit17 

      bandit17비번이 확인됨

반응형
LIST
반응형
SMALL

bandit15 -> bandit16

[1] bandit16비번은 port30001on localhost 통해서 알수 있다.

bandit15 -> bandit16

[2] Host Name : bandit.labs.overthewire.org  Port:2220 입력

bandit15 -> bandit16

 

[3] bandit15@bandit: ~$ openssl s_client -connect localhost:30001

bandit15 ->bandit16
bandit15 -> bandt16

 

bandit15 -> bandit16

 

[4] read R BLOCK   

     bandit15 비번을 복사해서 붙여놓기 한다.

bandit15 -> bandit16

 

[5]  banidt16비번을 확인된다.

반응형
LIST
반응형
SMALL

bandit14 -> bandit15

[1] bandit15 비밀번호는 localhost : port30000 확인 할수 있다.

bandit14 -> bandit15

 

[2] Host Name :bandit.labs.overthewire.org   Port : 2220 

bandit14 -> bandit15

[3] bandit14@bandit : ~$  nc -zv 127.0.0.1 30000

     Connection to 127.0.01 30000 port [tcp/*] succeeded!         * 포트열림 확인됨

 

[4] bandit14@bandit : ~$ nc 127.0.0.1 30000

     bandit14비번을 입력하고 엔터치면

     Correct !

     bandit15비번을 확인할수 있다.

반응형
LIST

+ Recent posts