场景:
kali渗透机器
Me and My Girlfriend 目标机器
网络:
均使用NAT(不把目标机器视为内网机器,固均使用nat网络)
使用VMware加载
Tip:使用kali进行ifconfig查看NAT网段(10.10.10.0/24)
一、目标主机信息收集:
1. 确定目标主机IP
使用kali的nmap对网段进行扫描
命令:nmap 10.10.10.0/24 -sn --exclude 10.10.10.128
参数讲解:
–exclude(设置扫描目标的参数):后面跟随的主机或网段不在扫描范围内
-sn(与主机发现的相关参数[注意参数大小写,不能混淆大小写]):Ping Scan,只进行主机发现,不进行端口扫描
确定目标主机IP为10.10.10.143
2.kali使用nmap对目标进行端口扫描,并确定端口服务版本
命令:nmap 10.10.10.143 -sN -sV -O -p 0-65535
参数讲解:
-sN(常用端口扫描方法参数):使用TCP Null私密扫描的方式进行TCP端口扫描
-sV(版本探测相关参数):指定Nmap进行端口服务版本侦测
-O:进行对目标使用的操作系统进行识别
-p(端口参数):设定扫描端口
得知目标开启22端口,以及80端口,22端口为ssh服务且版本为OpenSSH6.6. 1p1
80端口运行http服务且版本为Apache httpd 2.4.7 (ubuntu)
系统为Linux系统由上述信息可以推测目标操作系统为ubuntu系统
到此信息对主机信息收集告一段落
二、对目标服务进行渗透
1.对80端口服务进行渗透
使用浏览器访问目标主机(只有一串英文:Who are you? Hacker? Sorry This Site Can Only Be Accessed local!),给的信息就是,只能站点本地进行访问(产生思路:能否在包中添加XFF)
进行目录探测
访问robots.txt,看看里头还有点啥(发现有个heyhoo.txt)
访问一下heyhoo.txt 文件,理解了一下:你现在需要的是侦察,攻击并得到目标的shell
访问config,发现有一个config.php文件,点进去看看
Config.php,空界面,配置文件一般才命名为config文件
访问misc,发现一个process.php文件,访问,也是个空界面
之后访问剩下的目录,大都是如下图的内容,要不就是没啥用的
按照刚开始看到这个标识时的思路
使用burp进行尝试
Tips:设定Intercept Client Requests,只抓取10.10.10.143这个域名的数据包,避免其他数据包也被抓取
首先将访问10.10.10.143的数据发送到repeater模块,手动添加X-Forwarded-for:127.0.0.1
进行尝试,添加完成之后,点击Go,返回是个302(网页跳转),估计是有戏了。
配置Match and Replace(在请求头处,添加X-Forwarded-for:127.0.0.1)
302跳转访问得到的是/?page=index这个界面
点击Login,是个登陆界面(产生思路:SQL注入,弱口令),点击Register,是个注册页面
试了一下弱口令,无果(SQL注入测试先放着)
那就试试注册一个吧
注册完成,之后登陆一下试试,登完之后看到连接10.10.10.143/index.php?page=dashboard&user_id=13
(产生思路:user_id=13,可能存在SQL注入,或者存在越权访问,前面还有12个账号)
点击Profile,看看是啥,是个修改账号密码的地方。
可以直接看到密码,或者将type=”password”中的password改为text直接查看密码(产生思路:如果存在越权漏洞的话,那就能直接查看别人的账号密码了),
试试将id=13改为id=1,返回其他用户信息
不用修改type类型,可以直接看到密码,这么多个id,应该有个是管理员的账号
就只有前五个id有账号密码,将账号密码拿出来(产生思路:web获取到这些账号的话,应该已经就差不多了,还有22端口没有测试,拿这些账号去登一登,看看能不能通过,ssh直接连上)将账号和密码分为两个txt,一个为username.txt另一个为password.txt,为ssh**做准备
2.对22端口服务进行渗透
使用kali中的medusa进行ssh**
命令如下:
medusa -P Desktop/password.txt -M ssh -U Desktop/username.txt -h 10.10.10.143 -O Desktop/result1.txt
参数讲解:
-P:指定**使用的密码
-U:指定**时使用的账号
-O:指定**结果输出到指定的文件中
-M:指定**模块名称(后面跟ssh,就是对ssh进行**)
得到ssh连接的账号:alice密码:4lic3
使用Xshell连接上
使用ls -la查看文件,看到一个my_secret的文件夹,估计有好东西,打开文件夹,查看文件夹中的文件,找到一个flag1.txt,查看flag1,得到第一个flag