- Kali Network Debugging
- Contents
- IP Address
- ifconfig
- network-manager
- dhclient
- Gateway
- route
- DNS
- resolvconf
- hosts
- Connection
- ping
- Digging Deeper
- Using Router for DNS
- Network Dropping Everything
- Wireless Network Not Dropping Everything
- Changing Wired Cable and Port
- The Clues
- The Solution
- Использование Ping на Kali Linux
- Что такое Ping
- Работа с Ping в Kali Linux
Kali Network Debugging
Note: These notes cover Kali version 1 and are out of date. After booting into Kali v 1, I had no ability to reach the internet.
$ ping google.com ping: unknown host: google.com
I was sitting on a small network on a wireless router, with another installation of Kali Linux also on the network and able to get out to the internet. So, the problem was with the laptop running Kali Linux. First thing to check is the IP address.
Contents
- 1 IP Address
- 1.1 ifconfig
- 1.2 network-manager
- 1.3 dhclient
- 2.1 route
- 3.1 resolvconf
- 3.2 hosts
- 4.1 ping
- 5.1 Using Router for DNS
- 5.2 Network Dropping Everything
- 5.3 Wireless Network Not Dropping Everything
- 5.4 Changing Wired Cable and Port
IP Address
ifconfig
I could see my ip address with
and I could type 10.0.0.1 into a browser and connect to my router. But I couldn’t get past the router. I tried resetting the eth0 network interface:
$ ifconfig eth0 down $ ifconfig eth0 up
No such luck. Still couldn’t reach the outside.
$ ping -c 4 google.com ping: could not reach host: google.com
network-manager
Also tried restarting the network manager service:
$ service network-manager restart
dhclient
I tried using dhclient to obtain a new IP address for eth0:
but this simply acquired a new IP address from the router that was the same as the old IP address.
Gateway
The next thing to check was the gateway. Since I could reach my router, which is my gateway, I figured this was okay, but checked anyway.
route
I used route to check the current routing path:
This showed that my gateway was 10.0.0.1, and my subnet was 255.255.255.0, as expected.
DNS
resolvconf
I suspected that the problem with reaching the host had something to do with DNS. The resolvconf file, in /etc/resolv.conf , lists a couple of nameserver entries. If an IP address is listed as a nameserver, it means that server is providing you with DNS information. Because ping was returning «unknown host», I suspected this was due to a DNS error.
In the resolvconf file were some nameservers added automatically by the network manager:
nameserver 75.75.75.75 nameserver 75.75.76.76
Okay, these seem fine. But they don’t work.
I tried a couple of other pairs:
OpenDNS: 208.67.222.222 and 208.67.220.220
None of these led to any changes.
hosts
Just in case, I checked /etc/hosts for anything unusual, but all I saw were the loopback interfaces for 127.0.0.1/localhost.
Connection
ping
The next step, at this point in debugging, is to run ping to see if you can connect to anything. But that’s exactly the problem.
If ping returns «unknown host» it indicates an issue with the DNS address.
If ping returns «destination host unreachable», you have a DNS route or gateway address issue.
So, at this point I was completely stumped.
Digging Deeper
I really didn’t want to have to spend another 2-3 hours reinstalling Kali just because of some dumb network configuration that I had screwed up, so I kept digging.
Using Router for DNS
At this point, I knew I was dealing with a DNS issue — ping was returning «destination host unreachable,» I couldn’t reach Google.com, but I could reach any computer inside the network.
I also knew I was dealing with a DNS issue between my laptop and the router — since I knew that the DNS service worked fine for the other Kali Linux desktop running on the local network.
I started by forcing the DNS server to be the router itself:
$ echo "nameserver 10.0.0.1" > /etc/resolv.conf
Then I gave ping another try:
$ ping linux.org PING linux.org (107.170.40.56) 56(84) bytes of data.
At this point, we had SOME success — the router worked as a DNS server, and we were able to successfully turn a domain name (linux.org) into an IP address. But we still had a problem: ping wasn’t actually returning anything. Everything was being dropped.
Network Dropping Everything
Okay, now the problem was that the network was dropping everything. I had no idea what was going on.
I rebooted into Mac OS X. I left the network cable plugged in. I got to the desktop, and opened a browser, and typed linux.org.
It said «Connecting to host. «
Wireless Network Not Dropping Everything
I pulled out the network cable and hit refresh — and there it was! Linux.org!
Something very fishy was going on with the ethernet wire I was using.
Changing Wired Cable and Port
At this point, I tried switching ethernet cables and ports with the Kali Linux desktop that I knew was working. This cable was guaranteed to work, this port was guaranteed to work.
I rebooted into Kali, and tried to ping google.com and linux.org.
The Clues
Here are the clues we have:
- The problem is particular to the connection between my laptop and my router.
- (Wireless wasn’t working in Kali.)
- Ethernet problems in Kali showed up in Mac, too (couldn’t find a route to the host).
- Wireless works ok in Mac, so it isn’t a problem with the laptop itself.
- Another computer on the network works, so it isn’t a problem with the router itself.
With all of these clues, I determined that the problem was with THE MAC ADDRESS OF MY MAC LAPTOP’S WIRED PORT.
So anytime I tried to connect, FROM my laptop’s wired network port, TO the router, using any cable or any port, the problem would arise.
The Solution
I opened the router’s configuration page in a browser at 10.0.0.1 and logged in.
I released the network address for my wired mac laptop connection (it was plugged into the network — remember, I could access 10.0.0.1 and the whole subnet just fine using the wired connection).
I refreshed the router configuration page.
I opened a browser window and typed «Linux.org». Voila! Linux.org came up! The wired router connection now worked!
It just came down to some crud in the network cache.
Man in the Middle attack vectors on wired networks: Man in the Middle/Wired
Packet analysis with Wireshark: Packet Analysis
Many Ways to Crack a Wifi: Cracking Wifi
Setting Up a Static Key VPN: OpenVPN/Static Key
Settings, Services, and Protocols:
Domain Name Servers: DNS · Linux/DNS
Penetration testing Linux distribution.
Использование Ping на Kali Linux
Мы уже рассказывали про основы работы в терминале Kali Linux. В этой статье поговорим об использовании Ping на Kali Linux. Я покажу, как пинговать IP-адрес или доменное имя, а также расскажу о некоторых важных параметрах запуска команды ping.
Что такое Ping
Ping — известный всем инструмент, который используется для проверки доступности конкретного хоста. Инструмент работает, отправляя пакет ICMP на целевой хост. Если целевой хост доступен и брандмауэр не блокирует пакет запрос ICMP, он ответит пакетом ответа ICMP.
Работа с Ping в Kali Linux
Ping не находиться в меню приложений Kali Linux, но доступен в терминале. Для изучения, откройте справку:
Для примера выполним команду ping добавив IP-адрес Facebook:
По умолчанию ping будет работать непрерывно, пока не остановим процесс нажав на Ctrl + C.
Можно также использовать доменное имя вместо IP-адреса. Команда ping автоматически получит IP-адрес, если цель не находится за брандмауэром.
На следующем скрине показано выполнение команды ping для IP-адреса сайта Facebook.
Это был базовый пример использования ping. Кроме этого есть множество параметров запуска, но они используются редко:
- — c count — задает количество пакетов эхо-запроса, которые необходимо отправить.
- — I — задает сетевой интерфейс исходного адреса. Аргументом может быть числовой IP-адрес (например, 192.168.0.108) или имя устройства (например, eth0, wlan0). Эта опция необходима, если мы хотим пропинговать локальный адрес IPv6.
- — s — указывает количество отправляемых байтов данных (размер пакета). Значение по умолчанию — 56 байтов, что соответствует 64 байтам данных ICMP в сочетании с 8 байтами данных заголовка ICMP.
Рассмотрим на примере. Предположим, клиент предоставил нам физический доступ к своей сети LAN и список IP-адресов целевых серверов. Первое, что следует сделать перед запуском арсенала пентестера, — это проверить, доступны ли данные серверы с нашей машины. Для этой задачи прекрасно подойдет команда ping.
Целевой сервер расположен по адресу 192.168.0.1, а IP-адрес нашей машины 192.168.0.108. Чтобы проверить доступность целевого сервера, нужно выполнить команду:
На скрине выше видно, что в пункт назначения отправлен один пакет эхо-запроса ICMP (IP-адрес: 192.168.0.1). Кроме того, узел-отправитель (IP-адрес: 192.168.0.108) получил один пакет эхо-ответа ICMP. Время приема-передачи 2,208 мс (миллисекунды), и во время процесса не было потери пакетов.
Чтобы понять, какие сетевые пакеты передаются и принимаются нашей машиной воспользуемся популярным сниффером (анализатором сетевых пакетов) Wireshark:
На скрине видно, что наш хост (192.168.0.1) отправил один пакет эхо-запроса ICMP на хост назначения (192.168.0.108). Целевая машина активна, приняла пакет эхо-запроса ICMP и ответила пакетом эхо-отвера ICMP.
Если наша цель использует адрес IPv6, например fe80::e82a:e363:100d:9b02, мы можем использовать инструмент ping6, чтобы проверить его доступность. Для этого необходимо указать параметр — I :
Здесь ping6 использует запрос и ответ ICMPv6.
Чтобы заблокировать запрос ping, нужно настроить брандмауэр Kali Linux соответственным образом, так чтобы он разрешал пакет эхо-запроса ICMP только от определенного хоста и отклонял пакеты, отправленные с других хостов.
Вот так можно использовать ping на Kali Linux.