Napisał: Patryk Krawaczyński
29/07/2022 w Hacks & Scripts
python3 -m pip install cidr-trie
>>> from cidr_trie import PatriciaTrie
>>> ip_owner = PatriciaTrie()
>>> ip_owner.insert("10.0.0.0/8", "LAN-A")
>>> ip_owner.insert("172.16.0.0/12", "LAN-B")
>>> ip_owner.insert("192.168.0.0/16", "LAN-C")
>>> ip_owner.insert("192.168.1.0/24", "LAN-C-Office-Toronto")
>>> ip_owner.insert("104.16.0.0/12", "Internet-Cloudflare")
>>> ip_owner.insert("31.171.152.0/22", "Internet-HostileVPN")
>>> ip_owner.find_all("31.171.152.25")
[('31.171.152.0/22', 'Hostile VPN')]
>>> ip_owner.find_all("192.168.1.13")
[('192.168.0.0/16', 'LAN-C'), ('192.168.1.0/24', 'LAN-C-Office-Toronto')]
>>> ', '.join((v[1] for v in ip_owner.find_all("192.168.1.13")))
'LAN C, LAN-C-Office-Toronto'
Więcej informacji: Skompresowane drzewo trie, Store CIDR IP addresses (both v4 and v6) in a trie for easy lookup
Napisał: Patryk Krawaczyński
15/12/2019 w Pen Test
J
eśli posiadamy podatność, która bazuje na adresie IP, ale zapora pośrednicząco-filtrująca utrudnia nam zadanie eksploatacji pamiętajmy, że adres IP od strony klienta można zapisać na wiele sposobów. Na przykład:
$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
$ ping 3232235521
PING 3232235521 (192.168.0.1): 56 data bytes
$ ping 0xC0A80001
PING 0xC0A80001 (192.168.0.1): 56 data bytes
$ ping 192.168.1
PING 192.168.1 (192.168.0.1): 56 data bytes
$ ping 192.168.257
PING 192.168.257 (192.168.1.1): 56 data bytes
$ ping ::ffff:c0a8:0001
PING ::ffff:c0a8:0001(::ffff:192.168.0.1) 56 data bytes
$ ping 0000:0000:0000:0000:0000:ffff:c0a8:0001
PING 0000:0000:0000:0000:0000:ffff:c0a8:0001(::ffff:192.168.0.1) 56 data bytes
Więcej informacji: IPv4 Converter, inet_aton(3), IPv6 address formats,
Napisał: Patryk Krawaczyński
08/11/2014 w Bezpieczeństwo
P
rzez długi czas firewall w Linuksie oparty o iptables nie miał żadnego efektywnego sposobu, aby dopasowywać reguły do zbiorów adresów IP. Jeśli mieliśmy wiele adresów IP, aby dopasować do nich różne reguły (na przykład: setki lub tysiące adresów IP, które należało trzymać z daleka od portu SMTP) trzeba było tworzyć jeden wpis iptables dla każdego adresu IP, a następnie wprowadzać te wpisy sekwencyjnie. To wprowadzało wiele komplikacji w utrzymywanie takiego rozwiązania. Na szczęście w jądrach od serii 2.6.39 (Ubuntu 12.04, 14.04, Fedora 20, RHEL / CentOS 7) pojawiło się rozszerzenie ipset.
[ czytaj całość… ]
Ostatni komentarz :