dll 삽입형 목마 바이러스의 원리, 조사 및 예방

5429 단어

dll 삽입형 목마 바이러스의 원리, 조사 및 예방


앞에 쓰여있다. 많은 사람들의 시스템에 엉뚱한 문제가 자주 발생하고 인터넷에 접속해도 각종 이상한 창이 자주 뜬다. 각종 목마 바이러스는 폭발적인 증가를 보이고 대부분이 목마나 바이러스에 걸려서 생긴 것이다. dll삽입형 목마 바이러스의 원리에 대해 비교적 깊이 있게 쓰고 싶다. 조사와 예방에 관한 글을 쓰고 싶었지만 시간에 얽매여 복고만 하고 모양을 갖추지 못했다. 노동절에 집에 돌아와 마침내 시간이 생겼다.그래서 이 문장이 생겼다
                  
dll 삽입형 목마 바이러스의 원리, 조사 및 예방
         
문장을 시작하기 전에, 나는 몇몇 명사를 설명할 필요가 있다고 생각한다. 먼저 목록은 다음과 같다
Rootkit: 이 명사가 낯설지 않으신가 봐요. rising의 카드 인터넷 조수 홍보에서 Anti-rootkit 기술을 많이 사용했다는 건 Rootkit가 좋은 것이 아니라는 뜻이에요. 허허, 사실 이것은 최초로 linux에서 나온 명사예요. 일반적으로 관리자 권한을 직접 얻을 수 있는 뒷문을 숨기는 기술 도구를 가리키는데 나중에 win으로 파생됐어요.
dll: 간단하게 말하면 DLL은 여러 프로그램이 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리이기 때문에 dll는 동적 링크 프로그램 라이브러리라고도 부른다.exe 프로그램이 실행될 때 많은 dll 파일을 동시에 호출하여 확장 기능을 실현한다.
dll 삽입: 백엔드 기능을 실현한 코드를 DLL 파일로 작성한 다음 EXE 파일에 삽입하여 실행할 수 있도록 합니다. 그러면 프로세스를 차지할 필요도 없고, 대응하는 PID 번호도 없고, 작업 관리자에 숨길 수도 있습니다.우리는 이렇게 이해할 수 있다. dll은 기생충과 같고exe는 숙주이다. dll을exe프로그램이 실행하는 공간에 주입해야만 우리의 dll가 살아남을 수 있다. 일단exe프로그램이 종료되면 dll도 따라서 죽는다.
위의 목록을 보면 여러분은 dll 삽입에 대해 대략적인 이미지를 가지고 있을 것입니다. 사실 dll 삽입 기술은'원격 스레드 주입 기술'이라고도 하는데 신선한 것이 아닙니다. 루트키 기술 중의 하나에 속합니다. 루트키 기술은 크게 링0(내부 핵 레벨)과 링3(사용자 레벨) 두 종류로 나눌 수 있습니다. 링3에는 원격 스레드 주입 기술, 훅api 기술,포트 복용 기술 등등 ring0급에 도달하려면 구동 개발과 관련된다. 루트키트에 대해 깊이 알고 싶으면 ww.rootkit에 가면 된다.com 올라가봐.
만약에 우리가 dll의 관련 코드를 짰다면 어떻게 그것을 실행하게 할 것인가. 처음에 내가 말했듯이 우리는 숙주, 즉exe프로세스를 찾아서 우리의 dll를 불러올 것이다. 그리고 dll를 불러오는 것은 다음과 같은 몇 가지 방식으로 나눌 수 있다.
  
1: 시스템 중의rundll32를 이용exe 로드
등록표의 시작 항목에서 유사한 키 값을 발견하는 사람이 종종 있다
rundll32.exe c:\temp\XXX.dll dllmain
그럼 무슨 뜻일까요?사실rundll32.exe 이 프로그램은 말 그대로 32비트의 dll 프로그램을 실행한다. 기능은 명령줄의 방식으로 동적 링크 프로그램 라이브러리를 호출하는 것이다. 명령줄 아래의 사용 방법은 다음과 같다.
Rundll32.exe dll 이름 호출된 함수 이름
만약 우리 dll에서test () 함수를 작성했다면, 호출 방식은 다음과 같습니다:Rundll32.exe  C:\dlltest.dll  test
이렇게 dll의 함수가 실행되었다.
2: 시스템의 DLL 파일 교체
이것은 위의 업그레이드 버전이라고 할 수 있다. 뒷문 기능을 실현한 코드를 시스템과 일치하는 DLL 파일로 만들고 원래의 DLL 파일의 이름을 바꾸었다.응용 프로그램이 원래의 DLL 파일을 요청할 때 DLL 뒷문은 전송하는 역할을 하고'파라미터'를 원래의 DLL 파일에 전달한다.특별한 요청이 있을 때(예를 들어 클라이언트) DLL 뒷문이 시작되어 시작되고 실행되었지만 실현이 쉽지 않아 유행하지 않았다.
3:바로 우리가 말하고자 하는 dll 주입 기술입니다.
DLL 파일을 실행 중인 시스템 프로세스에 포함시킨다는 의미입니다.Windows 시스템에서 모든 프로세스는 자신의 개인 메모리 공간을 가지고 있지만 프로세스의 개인 메모리 공간에 들어가 동적 삽입식을 실현하는 여러 가지 방법이 있다.
뭐가 좋을까요? 우선 숨김을 실현했습니다. 작업 관리자에 우리의 dll 뒷문이 보이지 않습니다. 그 다음에 윈도우즈와 linux가 다르기 때문에 실행 중인 프로그램을 삭제할 수 없습니다.이것이 바로 왜 자주 물건을 삭제할 때'xxx가 실행 중이어서 삭제할 수 없습니다. 아마도 가장 중요한 것은 절대 다수의 방화벽을 뚫을 수 있다는 것입니다. 방화벽이 i를 막지 않을 거라고 생각하면 우리는 dll을 i프로세스에 삽입하면 방화벽을 뚫을 수 있지 않습니까?
   
그러면 우리는 어떻게 dll을exe에 주입하는 것을 실현합니까?dll 자기는 다리가 없는데, 허허, 우리는 dllorder가 필요해.exe, 또 어디서 해요?스스로 써라, 코드를 dllorder에 써라.exe에서 dllorder만 실행하면 됩니다.exe, 상응하는 dll 파일은 프로그램에 주입할 수 있습니다.dllorder가 있으면 하기 쉽다. 시스템이 매번 dllorder를 자동으로 시작할 수만 있다면 뒷문의 생존 기간이 크게 증가할 것이다. 어떻게 스스로 시작하는지, 등록표, 서비스, BHO, activex, 계획 임무 등이 있으면 소개하지 않겠다.
dll 목마의 방비 및 제거
첫 번째 클래스 dll 파일
다음에 프로세스에rundll32가 있는 것을 보십시오.exe, 호출된 dll만 찾으면 숨겨진 프로그램을 삭제할 수 있습니다
  
세 번째 클래스 dll 파일
첫 번째 방법: dll의 숨겨진 곳,temp,시스템32,windows 이 세 폴더가 가장 흔한 폴더입니다.temp에서 어떤 dll 파일을 삭제할 수 없다는 것을 발견하면 이 파일에 문제가 있다는 것을 거의 확신할 수 있습니다.
시스템과 모든 응용 프로그램을 설치한 후 시스템 32 디렉터리에 있는 EXE와 DLL 파일을 백업합니다: CMD를 열고 WINNT\system32 디렉터리에 와서 실행하십시오:
클립보드에 내용 복사
코드:dir *.exe >exefirst.txt   dir *.dll   >dllfirst.txt
이렇게 하면 모든 EXE와 DLL 파일을 ex로 백업합니다.txt와 dll.txt 파일에서 나중에 이상이 발견되면 같은 명령을 사용하여 EXE와 DLL 파일을 다시 백업할 수 있습니다
클립보드에 내용 복사
코드:  dir *.exe >exeSecond.txt       dir *.dll   >dllSecond.txt
다음을 사용합니다.
클립보드에 내용 복사
코드:fc exefirst.txt exeSecond.txt >dllresult.txt    fc dllfirst.txt dllSecond.txt   >exeresult.txt
FC 명령을 사용하여 EXE 파일과 DLL 파일을 두 번 비교하고 비교 결과를 exedll에 저장한다는 뜻이다.txt 파일에서이렇게 하면 EXE와 DLL 파일이 많이 생성되고 파일 크기와 생성 시간을 통해 DLL 후문인지 여부를 판단할 수 있습니다.
두 번째 방법:
관련 도구, 예를 들어icesword,ring 방화벽, i,exeplorer 데스크톱 프로세스에서 알 수 없는 dll 불러오는 파일이 있는지 중점적으로 검사합니다. 사실 저는 ring 방화벽을 더 좋아합니다. 안에 알 수 없는 dll이 빨간색으로 표시되어 있어서 보기 편합니다.
세 번째 방법:
창설 시간을 통해 찾기 win의 파일 검색 기능을 이용하여 시간을 설정하고 파일을 찾을 수 있습니다
네 번째 방법:
등록표 시작 항목, 서비스 목록, win 등 시스템이 자동으로 불러오는 곳을 정기적으로 검사합니다.ini,system.ini....,인터넷에서 더 많은 시동을 걸 수 있는 곳을 검색할 수 있어요.
다섯 번째 방법:
관련 도구로 포트 목록을 보십시오. cmd를 사용하지 않으려면 모든 tcp가 연결된 프로그램 경로를 주의하십시오. 파일을 발견할 수 있습니다.
여섯 번째 방법:
우리가 앞의 몇 가지 방법을 운용하여 의심스러운 문서를 찾아냈을 때, 어떻게 삭제합니까?어떻게 기생충을 죽입니까?가장 간단한 방법은'숙주'를 죽이고 삽입된exe 프로세스를 끝내는 것이다. i와 같이 데스크톱 같은 프로세스는 작업 관리자kill를 직접 사용할 수 있다. 여기서 말하자면 kill 데스크톱exeplorer 프로세스를 눌렀을 때 작업 표시줄이 사라진 것을 발견할 수 있다. 그러면 어떻게 dll을 삭제할까. ctrl+alt+del을 누르면 작업 관리자를 불러내고 메뉴 표시줄의 파일을 순서대로 눌러서 새로 만들면'새 작업 만들기 창이 나타난다.아래에 있는 '탐색' 을 누르면 데스크톱에 삽입된 dll 파일, 즉 '기생충' 을 찾을 수 있습니다. 허허, 오른쪽 단추를 누르면 삭제됩니다. 삭제한 후에 '새로운 작업 만들기' 창 실행 표시줄에'exeplorer '를 입력하면 우리의 숙주가 부활합니다. 하하, 체내의 기생충도 사라집니다.
만약 삽입된crss라면.exe 등 시스템 핵심 프로세스는?숙주를 죽일 수 없으면 어떻게 합니까?괜찮아, 우리는 아직 안전 모드가 있잖아, 켜서 f8을 누르면 안전 모드에 들어가, 네가 확정한 의심스러운 파일을 찾아, 삭제해, 이 세상은 마침내 깨끗해졌어...
뒤에 적혀있다: 현실에서 분석하면 의심스러운 서류를 조사하는 것은 물론 이렇게 간단하지 않다. 그러나 핵심만 잡으면 된다. 72가 변하든 그대로 원형을 드러낸다. 마지막으로 모두가 목마, 바이러스를 멀리하기를 바란다!타자를 치는 것은 정말 피곤하다. 비록 매우 평범하지만, 시스템에 익숙하지 않은 네티즌들에게 도움이 되었으면 좋겠다~
일부 인터넷 문장과 서적을 참고하여 함께 감사합니다
                                                                                    by willy
                                                                                  2007.5.2

좋은 웹페이지 즐겨찾기