доброго времени суток всем. гидрой пытаюсь брутить айпишник порт 8080 гидра с разными логинами ( admin/root) выдает результат, что можно войти с паролем 123456 причем в обоих случаях на одном и том же айпишнике. однако не подходят они. не авторизуется с этими логинами и паролями. почему так гидра находит не верные логины и пароли ? как исправитть? скринн не вставляется почему то вот ссылка http://uploads.ru/8LOno.jpg
руками повтори, желательно с таким же p/pm скрин один виден, удали (s) в протоколе на скрин, если конечно на них присутствует конфиги. А так, проще повтори посмтри, получишь ответ. Только не забывай валидировать попытки не как хомосапиенс, а как ты в гидре это указал. p.s. ну или просто делай валдацию по кукам, если конечно это консольная сатана так вообще умеет) Имхо, яб даже быстрее руками бы сбрутил чем эту гидру пока настроишь, пока она покрехтит..
Эмм... признаться я с гидрой и брутом очень мало знаком. Брут осуществлял практически из инструкций гугла copy/past.)) Если возможно напишите как обычному пользователю ПК как это руками сделать? Что такое p/pm тож не знаю(( И как это "валидировать"? в гидру ввел такой запрос (тож в гугле нашел ) hydra -l root -P passwords.txt -o ./hydra_result.log -f -V -s 8080 111.11.111.111 http-post-form "/cgi-bin/luci:username=^USER^&password=^PASS^:Invalid username" (айпи другой конечно же)
p/pm - passwords per minute ну тогда все ясно) ну типичная ошибка, у вас идет валидация по строчке invalid username Даже по скрину как я понял, видно, хотя не столь важен конкретный пример. Допустим движки ipb/vbulletin форумов если взять, дефолтно в конфигах выставлено 5 попыток пароль выести на 1 логин в течении 30-60 минут. И все 4 первые будь да что-то вроде неверный пароль осталось Х попыток. Но при пятой не удачной эта строчка заменяется на "пользовтель заблокирован на ХХ минут" Ну это понятно и валенку, суть в том что, обычно в подоьных системах как у вас, да тот же pma, может вообще грубо говоря вернуть ответ пустой, может быть там waf стоять кооторый будет фильтровать попытки как это реализовано довольно часто в ftp/ssh Элементарно говоря, конечно все куда замудренней и зависит зачастую от ситуации. В конкретном случае с gpon, посмотрите сорс странички (ctrl+u) явным "валидатором" будет строчка Code: XUsername = "Guest"; var XPasswdTip = ''; var XHasLogin = '0'; в случае авторизации предпологаю значение сменится на '1' var XHasLogin = '0'; Добавьте еще -vV, по логу будет ясна ошибка, в случае если он все еще будет присутсвовать вместо invalid user, мануал глянул бегло, вроде как в гидре это делаетьсч так :S=XHasLogin = '1'; где :S= последняя опция указывающая на то, что если Source страницы содержит текст после "=", такая автортзация удачна. p.s. не забываем экранировать пробелы и ковычки в зависимоти от ОС и требованиям гидры. если просто так добавить, бось гидра это прочтет не как строчку haslogin а как праметр со значением '1'. Хз, может вообще нельзя ковычки использовать как текст, я один раз в жизни гидру эту открывал, и славу богу что последний) Ну вообщем либо другую строчку, но invalid username только когда 100% всегда один ответ при не удачной попытке но в иделае по хедерам фильтровать, во первых это быстрее, не надо тянуть сорс, во вторых это уневерсально, в RFC расписаны стандарты ответов, под все случая так скажем. 100-200 коды - успех, до 399 педиректы, остальное либо fail либо ошибки сети. но впрочем это уже точно не под гидру)
вот код страницы, но там нету XUsername = "Guest"; var XPasswdTip = ''; var XHasLogin = '0'; Code: <!-- vim:fenc=utf-8 --> <html> <head> <title>GPON Home Gateway</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script>if(self!=top) top.location=self.location </script> <link rel="stylesheet" href='/css/main.css' type='text/css'/> <style> body { margin:0px; padding:0px; background:#ffffff; font-size:12px; color:#E36813; line-height:170%; text-align:center; vertical-align: middle ; padding-top: 150px; } .ct_text{ width:115px;border:1px #87a6c3 solid;background:#ffffff; } </style> <script src="js/jquery-1.6.1.min.js" charset="UTF-8"></script> <script> var err_t=[]; var ns4 = (document.layers) ? true : false; var ie4 = (document.all) ? true : false; var hexVals = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"); var unsafeString = "\"<>%\\^[]`\+\$\,'#&"; // deleted these chars from the include list ";", "default.htm", "?", ":", "@", "=", "&" and # // so that we could analyze actual URLs function isUnsafe(compareChar) // this function checks to see if a char is URL unsafe. // Returns bool result. True = unsafe, False = safe { if ( unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) > 32 && compareChar.charCodeAt(0) < 123 ) return false; // found no unsafe chars, return false else return true; } function decToHex(num, radix) // part of the hex-ifying functionality { var hexString = ""; while ( num >= radix ) { temp = num % radix; num = Math.floor(num / radix); hexString += hexVals[temp]; } hexString += hexVals[num]; return reversal(hexString); } function reversal(s) // part of the hex-ifying functionality { var len = s.length; var trans = ""; for (i = 0; i < len; i++) trans = trans + s.substring(len-i-1, len-i); s = trans; return s; } function convert(val) // this converts a given char to url hex form { return "%" + decToHex(val.charCodeAt(0), 16); } function encodeUrl(val) { var len = val.length; var i = 0; var newStr = ""; var original = val; for ( i = 0; i < len; i++ ) { if ( val.substring(i,i+1).charCodeAt(0) < 255 ) { // hack to eliminate the rest of unicode from this if (isUnsafe(val.substring(i,i+1)) == false) newStr = newStr + val.substring(i,i+1); else newStr = newStr + convert(val.substring(i,i+1)); } else { // woopsie! restore. alert ("Found a non-ISO-8859-1 character at position: " + (i+1) + ",\nPlease eliminate before continuing."); newStr = original; // short-circuit the loop and exit i = len; } } return newStr; } function onlogin() { with ( document.forms[0] ) { if(username.value.length <= 0) { alert("user name is null"); return; } var loc = "login.cgi@username=" + encodeUrl(username.value) + "&psd=" + encodeUrl(password.value); var code = 'location="' + loc + '"'; eval(code); } } function onlogindiag() { with ( document.forms[0] ) { if(username.value.length <= 0) { alert("user name is null"); return; } var loc = "login.cgi@diag=1" + "&username=" + encodeUrl(username.value) + "&psd=" + encodeUrl(password.value); var code = 'location="' + loc + '"'; eval(code); } } function myKeyDown(e) { if(ns4 && e.which==13){ //onlogin(); return e.which; } else if(ie4 && window.event.keyCode==13) { //onlogin(); return window.event.keyCode; } return 0; } document.onkeydown = myKeyDown; if(ns4) { document.captureEvents(Event.KEYDOWN); } var popUpWin=0; function popUpRegWin() { if(popUpWin) { if(!popUpWin.closed) popUpWin.close(); } popUpWin = open("reg.cgi", 'popUpWin', 'toolbar=yes,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,copyhistory=yes,width=800,height=600,left=200, top=200'); } function frmLoad() { with (document.forms[0]) { username.focus(); if ($("#tip").val() != undefined) { tip_stat=""; tt="<font color='black'>Password Tip:</font>"; if ($("#tip").text() == ""){ tip_stat=tt+"<font color='red'>Default web password is WiFi WPA password</font>"; $("#tip").text(""); $("#tip").html(tip_stat); }else{ stt="<font color='red'>"+$("#tip").text()+"</font>"; tip_stat=tt+stt; $("#tip").html(tip_stat); } } if(err_t.length >0){ err1=parseInt(err_t[0]); if((err1>0)&&(err1<4)){ err_str="<font color='red'>You have failed</font>"; err_str+=" "+err1+" "; err_str+="<font color='red'>times</font>"; $("#err_times").html(err_str); }else{ $("#err_times").html(""); } } } } </script> </head> <body leftmargin="0" topmargin="0" onload="frmLoad()"> <form method="post" action="login.cgi" > <table width="300" height="20%" cellpadding="0" cellspacing="0" bgcolor="#ffffff" align="center" > <tr height="32" bgcolor="#4393A3" align="center" > <td colspan=2 style="FONT-WEIGHT: bold;color:#000000;">GPON Home Gateway Login </td> </tr> <tr height= "100" > <td width="100%" style="border:2px solid #4393a3 "> <table > <tr height="50%" align="top"> <td align="center" width="55%" style="color:#000000">Username</td> <td align="center" width="120" height="15" > <input type="text" name="name" id="username" class="ct_text" style="background-color:0xffffff" value="" maxlength="55"/> </td> </tr> <tr height="10" background-color:#ffffff></tr> <tr> <td align="center" width="55%" style="color:#000000">Password</td> <td align="center" width="120" height="15"><input type="password" name="pswd" id="password" class="ct_text" style="background-color:0xffffff" maxlength="88"/></td> </tr> <tr height="5" align=center> <td colspan=2 id="err_times"></td> </tr> </table> </td> </tr> <tr height="12" bgcolor="#4393A3" align="center"> <td colspan=2> <table width="100%"> <tr> <td width="40%" align="right"> <input type="submit" height="10" value="Login" /> </td> <td align="center"> <input type="reset" height="10" value="Reset"/> </td> </tr> </table> </td> </tr> </table> </form> </body> </html> заменил в команде Invalid username на S=XHasLogin = '1' как вы написали. ну из библиотеки нескольких логинов и паролей ( у меня не большой список паролей (текстовый файл на 1 кб всего) на этот раз не обнаружено ни одного пароля и логина.
lifescore правильно написал, видимо лочит по кол-ву попыток. 1. Можно попробовать изменить валидацию 2. Брутить через telnet или ssh
это программой SSH bruteforse ? простите, а у кого-нибудь есть словари для брута этой программой ? найти не могу в интернете. там я так понял логин и пароль в одном файле и через точку с запятой.
а как через гидру ssh сделать этот ? не подскажете команду? в гугле что находил не получается( пишет ERROR cjmpiled without LIBSSH v.o.4.x support, module is not available
hydra -L logins.txt -P pws.txt 192.168.1.1 ssh перед этим нужно убедится что ssh или telnet открыты...
попробовал эту команду, с запущенным в другой командной строке telnet ничего не вышло ( если я правильно понял у меня не установлены библиотеки libssh в hydra. а как установить не понимаю. Уже и скачал отдельный архив libssh-0.4.8.... а установить не получается никак((
может у меня версия hydra не полная. не подскажете ссылку на версию с ssh ? или я опять не правильно понял все ? ))) выдает эту ошибку ERROR cjmpiled without LIBSSH v.o.4.x support, module is not available и все тут ( поставил kalilinux попробовал этой командой hydra -L User.txt -P password.txt -o ./hydra_result.log -t 6 ssh://116.58.241.185 пишет что атакует 22 порт. потом пишет что не может с ним соединиться (( а еще у меня теперь комп ужасно тормозит. вирусов накачал ?? )))
так же и вот так попробовал hydra -L logins.txt -P pws.txt 192.168.1.1 ssh (telnet) - не может пишет такую ошибку Error: Child with pid (рандомное число) terminating, can not connect - что это значит ?
Эта тулза тоже брутит http://zalil.su/9771351 Вот его вирустотал https://www.virustotal.com/ru/file/...8803efe441ccbeca141f5d57/analysis/1487765084/ Вот другая прога,но антивирус показывает вот это https://www.virustotal.com/ru/file/...8bc46158ef058cf55adf1284/analysis/1484430995/ Делай выводы сам. http://zalil.su/9529288
я правильно понимаю, что через телнет или ssh можно зайти на компьютер (рабочий стол, диск С )? еще вопрос такой: заходил сначала по айпи под 80 портом. теперь видимо увидели и сменили пароль. и порт 8080 был открыт - там страница авторизации была. но теперь её нет - значит убрали совсем этот порт ? nmap его не видит(( или заблокировали вход на него ?
я и прошелся. порт 8080 теперь отсутствует. я не очень хорошо понимаю как он работает потому и спросил: nmpam если не показал порт - то его убрали или заблокировали? при чем я один айпи с разными командами сканировал и в первы раз показал : 21/tcpclosedftp 23/tcpopen telnet 80/tcpopen ssl/http а второй раз: 21/tcp filtered ftp 22/tcp filtered ssh 23/tcp filtered telnet 80/tcp filtered http 443/tcp filtered https 1723/tcp open pptp MikroTik (Firmware: 1) 2000/tcp open bandwidth-test MikroTik bandwidth-test server 8291/tcp open unknown т.е. выходит что nmap не всегда может видеть порты ?
Все фильтруются кроме 1723,2000,8291. 1723 это порт VPN-тунеля (pptp) можно перехватить логин:пасс от впн туннеля , зайти туда и можно выйти на роутер. Порт 2000 не интересный , это проверка пропускной способности канала. 8291 не известно, попробуй через веб зайти возможно это форвард 80 порта... По фильтрованым портам можно еще раз пройтись, возможно лочит фаерволл, чуть позже скажу флаги... попробуйте с флагом -A запустить... (агрессивное сканирование, отображает больше информации и длиться чуть дольше обычного) nmap -A 192.168.1.1 -p 21,22,23,80,443 > output.txt
попробовал. результат такой: 21/tcp closed ftp 22/tcp closed ssh 23/tcp closed telnet 80/tcp closed http 443/tcp closed https так же с флагом -А попробовал без портов, результат: 1024/tcp open rtsp Hikvision DVR rtspd 2000/tcp open bandwidth-test MikroTik bandwidth-test server 3389/tcp open ssl/ms-wbt-server? 8000/tcp open http-alt? 8001/tcp open vcom-tunnel? 8291/tcp open unknown 9000/tcp open cslistener? не подскажете на каком из этих портов может сидеть ip камера и какой командой с помощью hydra подобрать пароль ?