Kali Linux – Web Penetration Testing Tools
By 2016, there were around 3424971237+ internet users over the world. Being a hub of many users, there comes a responsibility of taking care of the security of these many users. Most of the Internet is the collection of websites or web applications. So in order to prevent these web applications, there is a need of testing them again payloads and malware and for that purpose, we have a lot of tools in Kali Linux.
Kali Linux comes packed with 300+ tools out of which many are used for Web Penetration Testing. Though there are many tools in Kali Linux for Web Penetration Testing here is the list of most used tools.
1. Burp Suite
Burp Suite is one of the most popular web application security testing software. It is used as a proxy, so all the requests from the browser with the proxy pass through it. And as the request passes through the burp suite, it allows us to make changes to those requests as per our need which is good for testing vulnerabilities like XSS or SQLi or even any vulnerability related to the web. Kali Linux comes with burp suite community edition which is free but there is a paid edition of this tool known as burp suite professional which has a lot many functions as compared to burp suite community edition.
To use burp suite:
- Read this to learn how to setup burp suite.
- Open terminal and type “burpsuite” there.
- Go to proxy tab and turn the interceptor switch to on.
- Now visit any URL and it could be seen that the request is captured.
2. Nikto
Nikto is an Open Source software written in Perl language that is used to scan a web-server for the vulnerability that can be exploited and can compromise the server. It can also check for outdated version details of 1200 servers and can detect problems with specific version details of over 200 servers. It comes packed with many features, a few of them are listed below.
- Full support for SSL
- Looks for subdomains
- Supports full HTTP Proxy
- Outdated component report
- Username guessing
To use nikto, download nikto and enter the following command.
3. Maltego
Maltego is a platform developed to convey and put forward a clear picture of the environment that an organization owns and operates. Maltego offers a unique perspective to both network and resource-based entities which is the aggregation of information delivered all over the internet – whether it’s the current configuration of a router poised on the edge of our network or any other information, Maltego can locate, aggregate and visualize this information. It offers the user with unprecedented information which is leverage and power.
Maltego’s Uses:
- It is used to exhibit the complexity and severity of single points of failure as well as trust relationships that exist currently within the scope of the infrastructure.
- It is used in the collection of information on all security-related work. It will save time and will allow us to work more accurately and in a smarter way.
- It aids us in thinking process by visually demonstrating interconnected links between searched items.
- It provides a much more powerful search, giving smarter results.
- It helps to discover “hidden” information.
To use Maltego, Go to applications menu and then select “maltego” tool to execute it.
4. SQLMap
SQLMap is an open-source tool that is used to automate the process of manual SQL injection over a parameter on a website. It detects and exploits the SQL injection parameters itself all we have to do is to provide it with an appropriate request or URL. It supports 34 databases including MySQL, Oracle, PostgreSQL, etc.
To use sqlmap tool:
- sqlmap comes pre-installed in Kali Linux
- Just type sqlmap in the terminal to use the tool.
5. Whatweb
Whatweb is an acronym of “what is that website“.It is used to get the technologies which a website is using, these technologies might me content management system(CMS), Javascript Libraries, etc. It is used for many purposes, a few of them are listed below.
- To get the Content Management System is used by a web application
- To get the Web Server details being used by the web application
- To get the embedded devices attached to the web application
- It consists of 1700+ plugins and every plugin is used to recognize something different.
To run whatweb, execute the following command and replace google.com with the domain name of your choice.
6. whois lookup
whois is a database record of all the registered domain over the internet. It is used for many purposes, a few of them are listed below.
- It is used by Network Administrators in order to identify and fix DNS or domain-related issues.
- It is used to check the availability of domain names.
- It is used to identify trademark infringement.
- It could even be used to track down the registrants of the Fraud domain.
To use whois lookup, enter the following command in the terminal.
Replace geeksforgeeks.org with the name of the website you want to lookup.
#41 Kali Linux для начинающих. Взламываем веб-сервис.
Продолжаем рассматривать тематику взлома систем, и давайте поищем еще один способ, как взломать нашу цель. В предыдущих уроках мы с Вами рассматривали некоторые инструменты для сканирования, такие как «nmap» и «nessus».
Сейчас рассмотрим инструмент под названием «Nikto». Этот инструмент предназначен для сканирования уязвимостей веб-приложений. Этот инструмент сканирует сайты на предмет возможных уязвимостей. Мы можем использовать «Nikto», так как на атакуемой машине мы имеем несколько веб-сервисов.
Если запустить этот сканер с помощью команды «nikto» без параметров, то мы увидим ошибку:
Иными словами, для корректной работы инструмента нам нужно указывать некоторые опции, в частности, «-host ». Имейте ввиду, что на атакуемой машине несколько веб-серверов. Один из них использует 80 порт (сервер Apache), а другой 8180 (Apache Tomcat).
Давайте поработаем с сервером Apache Tomcat.
В нашу команду добавляем опцию «-p», а также порт 8180, т.к. по-умолчанию используется 80 порт, который нам пока что не нужен. Команда будет иметь вид: «nikto -host 192.168.15.131 -p 8180»:
Nikto запустился, и нам нужно подождать результат работы инструмента:
Через некоторое время мы находим различные уязвимости, которые потенциально можно эксплуатировать, к примеру, методы HTTP, которые позволяют нам загружать или удалять файлы с сервера:
Не будем подробнее останавливаться на этой уязвимости, так как нас интересует другая уязвимость на этом сервере Tomcat. Эта уязвимость позволяет удаленно выполнять команды на этом сервере. Для начала эксплуатации данной уязвимости нам нужно авторизироваться на этом веб-сервере, т.е. мне нужны верные учетные данные.
К счастью, сканер «Nikto» обнаружил учетные данные, которые принадлежат ему:
На этом сервере используются стандартные имя пользователя и пароль. Можно проверить это вручную для авторизации на этом веб-сервере. Для проверки переходим в браузер и вводим айпи адрес и порт.:
Номер порта указывается для того, чтобы не использовались дефолтные порты, такие как 80 и 443.
Пробуем авторизироваться в Tomcat, и используем вкладку «Tomcat Manager»:
Отлично. Мы авторизировались в панели управления Tomcat:
Теперь я могу изменить сайт, изменить что-либо и так далее.
Можно создать для Ваших целей определенное ПО, или воспользоваться инструментом «Metasploit», воспользовавшись готовым модулем, для загрузки на сервер. Запустим Metasploit, и воспользуемся поиском. Команда будет выглядеть как: «search tomcat»:
В этом выводе есть две подходящие опции – это «tomcat_mgr_deploy» и «tomcat_mgr_upload»:
Обе эти опции отлично подходят нам против Tomcat. Выбираем вторую, и выполняем команду «use»:
Просмотрим опции с помощью команды «show options»:
Вспомните взлом vsftpd, который был в прошлом занятии. Сейчас ничего не отличается, кроме большего списка параметров, которые нужно настраивать.
Для начала укажем имя пользователя и пароль:
Далее нужно указать удаленный хост или айпи-адрес цели и порт. У меня это 192.168.119.130:8180. По-умолчанию стоит порт 80, который мы изменили:
Давайте перепроверим, что все опции настроены правильно. Это делается с помощью команды «show options»:
И, наконец, выполняем команду «run»:
Отлично. Теперь у меня есть шелл Meterpreter-a. Данный шелл является частью Metasploit. Он позволяет выполнять команды на атакуемой машине. Данные команды будут отличаться от обычных команд моей цели. Например, если мы выполним команду «id», то появляется ошибка:
Все дело в том, что meterpreter не знает этой команды, так как он является отдельным шеллом со своими командами, к которым не относится команда «id».
Можем ввести команду «pwd», и она сработает:
Данная команда работает и на meterpreter, и на linux-системах.
Если выполнить команду «whoami», то она не сработает:
Для того, чтобы узнать, какие команды нам нужно использовать, нужно ввести знак вопроса «?»:
Это длинный список команд meterpreter.
Если meterpreter кажется Вам непонятным, то не волнуйтесь и рассматривайте его следующим образом; при взломе атакуемой машины Metasploit загружает на нее программу, которая позволяет взаимодействовать с этой машиной, и выполнять различные команды. Это программа называется «meterpreter».
И сейчас мы взаимодействуем с этой программой, которая позволяет нам управлять системой на удаленной машине.
Если мне нужен линукс-шелл, то для этого нужно ввести команду «shell»:
В нем работают все команды, которые присущи линукс-системам.
Если выполнить команду «guid», то она уже не сработает:
Все из-за того, что я нахожусь в линукс-шелле.
Однако, можно выполнить команду «whoami», и «id», то они будут работать:
Обратите внимание, что вышеописанные команды не работали в meterpreter. После ввода команды «shell», я получил доступ непосредственно к стандартному линукс шеллу. Теперь я могу выполнять стандартные линукс команды.
Есть один момент, который заключается в том, что я не рут пользователь, а обычный пользователь «tomcat55».
Далее мы рассмотрим, как использовать определенные скрипты, с помощью которых мы можем обнаружить уязвимости, и которые помогут нам повысить права. Мы это будем рассматривать в последующих лекциях.
С помощью инструмента «Nikto», мы оказались там, где мы сейчас находимся. Имейте ввиду, что это не специализированный инструмент для работы с конкретными сайтами.
Существуют инструменты, которые заточены на работу с определенными веб-технологиями. К примеру, для работы с сайтом на вордпресс существует инструмент для поиска уязвимостей, который называется wpscan.
Все зависит от того, какая технология будет использоваться на сайте, и будет предпочтительнее, если Вы будете использовать инструменты, которые были созданы именно под это программное обеспечение.
Мы нашли несколько способов, как можно взломать нашу цель, используя разные уязвимости. Сначала мы взломали ftp-сервис, при этом мы использовали версию ftp, которую мы узнали с помощью «nmap». После этого мы использовали результат сканирования «nessus», где мы узнали, что есть эксплойт для попадания в систему. Как в случае с ftp и ssh сервисами, мы получали рут-права на системе жертвы. Далее мы использовали эксплойт веб-приложений, и смогли попасть в систему через веб-сайт. В последнем случае мы смогли попасть в систему только как обычный пользователь, а не как рут-пользователь. Нам осталось лишь повысить права. Однако, перед этим давайте взломаем систему еще одним способом.