Авторские статьи Сбор информации

Discussion in 'Статьи' started by e17, 18 Apr 2014.

  1. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    Вступление.

    В данном топике я предлагаю отойти на минуту от основной тематики уязвимости web интерфейсов в целом и
    исследований исходного кода различных CMS в часности.
    Хочу поговорить с вами о ситуации которая большинство из нас и приводит на подобные форумы - взлом любой ценой.
    На написание подобного текста меня навела тема "ваши вопросы по уязвимостям".
    По тем или иным причинам мы выбираем жертву, не обладая нужными навыками мы просим помощи, руководствуясь поверхностным
    пониманием что взлом это набор знаний о уязвимых скриптах и возможных уязвимостях в скриптах.

    С чего же всетаки должен начинатся взлом? Со сбора инфорации о жертве.

    Вообще любое достижение цели можно представить в виде графика где одна ось будет отображать наши навыки, а вторая объем инфорации которой
    мы обладаем, таким образом в контексте уязвимостей получается что действительно уязвимо все, если мы не можем что-то взломать либо у нас
    не достаточно информации о жертве, либо мы не умее ее правильно применять.

    На этом закрываю страничку философии, как вы уже поняли речь пойдет о сборе инфорации о жертве, в данной статье
    я постараюсь максимально поделится собвственным опытом с живыми примерами, автоматизацией и прочими плюшками.




    1.Whois.

    Дает возможность увидеть информацию о регистрационных данных, владельцах доменных имён, IP-адресов и автономных систем.

    Живой пример того что это может дать с точки зрения взлома:

    exploit.in

    http://r01.ru/whois/check-domain.php?domain=exploit.in

    Секретный вопрос

    Code:
    Номер паспортa
    Code:
    Tech Name:Ivan Leskov Tech Organization: Tech Street1:ul.Smolnaya,43, kv.15 Tech Street2: Tech Street3: Tech City:Moscow
    
    Можно украсть домен.

    Нужна база жителей МСК.



    2.Cкан вэб директорий.

    Часто на директории не выставляются нужные права или же конфигурационные фаилы лежат с читаемым расширением в одной из папок на сервере.
    В поисках подобного мне помагает dirbuster:
    http://sourceforge.net/projects/dirbuster/

    Вы скажете, что это удел маленьких сайтов?

    Вот вам живой пример одного из самых посещаемых покер сайтов в мире:

    888poker.com

    Code:
    How is this site ranked relative to other sites?
    Global Rank
    1,275
    Rank in Russia
    198
    

    На поддомене лежит открытая директория _ttps://shop.888poker.com/tests/selenium/ в которой спрятан логин/пасс от админ панели.

    Многии сканеры не отличают существующую дерикторию от несуществующей в nginx, проверить это достаточно просто, если дериктория существует
    по уолчанию там находится .htaccess.


    3.Reverse IP Domain Check.

    Инструент:yougetsignal.com/tools/web-sites-on-web-server/
    Все мы прекрасно знаем как устроены хостинги, лишний раз напоминаю что стоит проверять список сайтов на 1 ип.
    Таким-же способом стоит проверять все потдомены и ресурсы одной организации как в примере с 888.com взломанной через
    shop.888poker.com.


    4.Сайты разработчиков.

    Иногда на сайтах устанавливается не распространенная CMS "под ключь", подобные CMS и их разработчики грешат тем что перед
    установкой и настройкой всем импортируют один дамп бд, с штатным паролем администратора, после чего не деактивируют свою
    учетную запись.


    5.Сайты провайдеров.
    Не забывайте что любой vds/vps у кого-то куплен, провайдеры/хостеры такие-же люди.
    Частой ошибкой подобных организаций является открытый доступ к роутерам из вне и стандартные пароли на них.
    Стоит лишний раз просканировать весь дианазон ип адресов в поисках подобного.
    Доступ к роутерам/каммутаторам дает вам возожность снифать трафик, например атаки вида MITM и двигатся дальше по подсети.
    http://www.shodanhq.com/ - так-же в помощь.

    6. Сканирование портов
    Стандартная продцедура, позваляет понять какие сервисы крутятся и не задавать вопросов почему я не могу раскрутить sql-inj
    когда на машине стоит MSSql.

    Накидал под свои нужды и делюсь с вами ,асинхронный сканер портов, очень быстро, удобно, модно, молодёжно.

    Code:
    
    #define MAX_SOCKETS		100		//	Ports to scan
    #define MAX_THREADS		100		//	Threads limit
    
    int				Threads = 0;
    extern char		StartIP[MAX_PATH],
    				EndIP[MAX_PATH];
    
    VOID
    WINAPI
    ScanRoutine(
    	WORD Port
    	)
    {
    	DWORD	dwStart,
    			dwEnd;
    	SOCKET	Sockets[MAX_SOCKETS];
    	int		BusySocks,
    			Options,
    			Length,
    			BusyAddrs[MAX_SOCKETS];
    
    	struct sockaddr_in addr;
    	fd_set fdWaitSet;
    	struct timeval tv;
    
    	do 
    	{
    		if (!strlen(StartIP) || !strlen(EndIP)) {
    			break;
    		}
    
    		dwStart = htonl(inet_addr(StartIP));
    		dwEnd = htonl(inet_addr(EndIP));
    		
    		if (!dwStart || !dwEnd) {
    			break;
    		}
    
    		for (DWORD i=dwStart; i<dwEnd; i++)
    		{
    			BusySocks = 0;
    
    			memset(Sockets, 0, sizeof(Sockets));
    			memset(BusyAddrs, 0, sizeof(BusyAddrs));
    
    			for (int j=0; j<MAX_SOCKETS; j++)
    			{
    				Sockets[j] = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    				if (!Sockets[j]) {
    					continue;
    				}
    
    				BusySocks++;
    
    				addr.sin_family = AF_INET;
    				addr.sin_port = htons(Port);
    				addr.sin_addr.S_un.S_addr = htonl(i);
    
    				ULONG ulBlock;
    				ulBlock = 1;
    				if (ioctlsocket(Sockets[j], FIONBIO, &ulBlock) == SOCKET_ERROR) {
    					continue;
    				}
    
    				connect(Sockets[j], (struct sockaddr *)&addr, sizeof(addr));
    				if (WSAGetLastError() == WSAEINPROGRESS) 
    				{
    					closesocket(Sockets[j]);
    					BusySocks--;
    					BusyAddrs[j] = 0;
    				}
    				else {
    					BusyAddrs[j] = i;
    				}
    
    				if (i<dwEnd) {
    					i++;
    				}
    				else {
    					break;
    				}
    			}
    
    			FD_ZERO (&fdWaitSet);
    			for (int k=0; k<MAX_SOCKETS; k++)
    			{
    				if (BusyAddrs[k]) {
    					FD_SET(Sockets[k], &fdWaitSet);
    				}
    			}
    
    			tv.tv_sec = 1;
    			tv.tv_usec = 0;
    			if (select(1, NULL, &fdWaitSet, NULL, &tv) == SOCKET_ERROR) { 
    				continue;
    			}
    
    			for (int i=0; i<MAX_SOCKETS; i++)
    			{
    				if (BusyAddrs[i])
    				{
    					if (FD_ISSET (Sockets[i], &fdWaitSet))
    					{
    						Length = sizeof(Options);
    						if (getsockopt(Sockets[i], SOL_SOCKET, SO_ERROR, (char*)&Options, &Length) == SOCKET_ERROR) {
    							continue;
    						}
    
    						if (Options == 0)
    						{
    #ifdef _DBG_PRINT_
    							addr.sin_addr.S_un.S_addr = htonl(BusyAddrs[i]);
    							char tmp[MAX_PATH];
    							DWORD dwtmp;
    							wsprintf(tmp, "\r\n%s:%d OPENED [%d:%d]\r\n", inet_ntoa(addr.sin_addr), Port, Threads + 1, MAX_THREADS);
    							WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), tmp, strlen(tmp), &dwtmp, NULL);
    #endif
    							switch (Port)
    							{
     								// payload
    
    								default: break;
    							}
    							
    						}
    					}
    				}
    			}
    
    			for (int j=0; j<MAX_SOCKETS; j++) {
    				closesocket(Sockets[j]);
    			}
    
    			while (Threads >= MAX_THREADS) {
    				Sleep(1000);
    			}
    		}
    
    	} while (FALSE);
    
    	ExitThread(ERROR_SUCCESS);
    }
    
    7. Человеческий фактор.
    Не забывайте что все пользуются копьютерами, даже систеные администраторы не всегда уделяют много времяни безопасности именно своих ПК или телефонов,напримере BBC,
    Часто получив реальный IP можно с легкостью попасть в целевую систему и найти нужные нам данные.

    Тема будет пополнятся, буду рад вашему опыту.
     
    #1 e17, 18 Apr 2014
    Last edited: 20 Apr 2014
    Sharingan, makag and Kamik like this.
  2. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Попробую дополнить своим скромным опытом:
    - Google security research
    Крупнейшая поисковая система порой реально помогает на определенных этапах сбора информации. Для того, чтобы запустить поиск по конкретному сайту нужно воспользоваться оператором поиска site: (https://support.google.com/websearch/answer/136861?hl=en). Что конкретно можно найти таким образом?
    - директории/файлы, на которые нет линков с основного сайта, но которые по воле неведомого случае оказались в индексе поисковой системы (админ убрал линк, гугл нашел линк в другом месте, etc..).
    - информацию о внутреннем устройстве сайта (возможно, в гугле сохранились данные о вывале сайта в ошибки с раскрытием путей, имен переменных, имен файлов, имен БД, таблиц и т.п.).
    - Чужой шелл, если таковой имеется и попал в индекс (почти шутка).
    e17, а nmap как сканер портов чем тебя не устраивает?
     
    2 people like this.
  3. e17

    e17 Member

    Joined:
    8 Feb 2013
    Messages:
    47
    Likes Received:
    57
    Reputations:
    81
    Быстродействием когда речь идет о диапазонах, спасибо за дополнение.
    Кстати по теме поиска через гугл, редкость но можно найти уязвимые скрипты или расскрытие путей гугя : имя сайта error in SQL , и тд.

    В таком случае либо ошибка должна провисеть долго, либо попасть в момент индексации.
    8. Хостеры.
    В частных случаях хостеры создают резервную копию баз данных и www каталога, есть вероятность поймать момент переезда, либо взлом e-mail с целью запроса восстановления данных.
     
    #3 e17, 20 Apr 2014
    Last edited: 20 Apr 2014
  4. chuna

    chuna New Member

    Joined:
    2 Apr 2013
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    0.google,bing,yahoo,yandex,....

    1.http://dazzlepod.com/ip/?ip_address=antichat.ru

    2.http://bgp.he.net/dns/antichat.ru

    3.https://www.owasp.org/index.php/Category:OWASP_DirBuster_Project

    4.https://www.owasp.org/index.php/Category:OWASP_Webslayer_Project

    5.exploit-db.com > думать

    6.Chromebleed 1.1.1 >http://goo.gl/nsmxjc

    lulz > http://ahack.ru/articles/how-antichat-ru-was-hacked.htm

    2014 > http://9796933.ru/pravo/
     
    1 person likes this.